예제 #1
0
 public function act_changeOutOfStockToDispathBill()
 {
     $orderids = $_REQUEST['orderids'];
     if (empty($orderids)) {
         self::$errCode = "001";
         self::$errMsg = "发货单号为空!";
         return false;
     }
     if (!is_numeric($orderids)) {
         $tracknumber = $orderids;
         $info = orderWeighingModel::selectOrderId($tracknumber);
         if (!$info) {
             self::$errCode = 501;
             self::$errMsg = "此跟踪号不存在!";
             return false;
         }
         $orderids = $info[0]['shipOrderId'];
     }
     $orderStatus = ShippingOrderModel::getShippingOrder("orderStatus", " where id='{$orderids}'");
     $orderStatus = $orderStatus[0]['orderStatus'];
     if ($orderStatus == '402' || $orderStatus == '703') {
         $changeStatus = new printAct();
         $changeStatus->act_markUnusual1();
         if (empty($ret) || $changeStatus::$errCode != '200') {
             self::$errCode = $changeStatus::$errCode;
             self::$errMsg = $changeStatus::$errMsg;
             return false;
             //失败
         } else {
             self::$errCode = $changeStatus::$errCode;
             self::$errMsg = $changeStatus::$errMsg;
             return true;
         }
     }
     self::$errCode = "002";
     self::$errMsg = "非待配货!";
     return false;
 }
예제 #2
0
 public function act_orderWeighingFlat()
 {
     $orderid = isset($_POST['orderid']) ? $_POST['orderid'] : "";
     $mailway = isset($_POST['channelId']) ? $_POST['channelId'] : "";
     //$partionId   = isset($_POST['partionId'])?$_POST['partionId']:"";//不作处理
     $orderweight = isset($_POST['orderweight']) ? $_POST['orderweight'] : "";
     if (!is_numeric($orderid) || empty($orderid)) {
         self::$errCode = 501;
         self::$errMsg = "错误的发货单号!";
         return false;
     }
     $where = "where id={$orderid}";
     $lists = orderWeighingModel::selectRecord($where);
     $calcweight = $lists[0]['calcWeight'] * 1000;
     //估算重量
     $userName = $_SESSION['userCnName'];
     /**重量拦截的逻辑**/
     $vip_users = C('weight_vip');
     //获取具有VIP权限的
     $lists = orderWeighingModel::selectOrderDetail($orderid);
     if (!in_array($userName, $vip_users)) {
         //判断是否具有vip操作权限
         $minRate = 0.8;
         $maxRate = 1.2;
     } else {
         $minRate = 0.5;
         $maxRate = 2;
     }
     if ($calcweight < 50 && $orderweight < 50) {
         if (abs($orderweight - $calcweight) >= 20) {
             self::$errCode = 509;
             self::$errMsg = "该订单重量与实际不符合!系统重量为{$calcweight}称重重量为{$orderweight}";
             return false;
         }
     } else {
         if (($orderweight < $calcweight * $minRate || $orderweight > $calcweight * $maxRate) && $calcweight != 0) {
             self::$errCode = 510;
             self::$errMsg = "该订单重量与实际不符合!系统重量为{$calcweight}称重重量为{$orderweight}";
             return false;
         }
     }
     TransactionBaseModel::begin();
     //更新状态,插入记录
     $userId = $_SESSION['userId'];
     $msg = orderWeighingModel::insertRecord($orderid, $userId);
     if (!$msg) {
         self::$errCode = 511;
         self::$errMsg = "插入称重记录失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     $msg = orderWeighingModel::updateRecord($orderid, $orderweight, $userId);
     if (!$msg) {
         self::$errCode = 512;
         self::$errMsg = "更新操作记录表失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     //更新发货单实际重量和状态
     $orderData = array('orderWeight' => $orderweight, 'orderStatus' => PKS_WDISTRICT);
     $msg = WhShippingOrderModel::update($orderData, $orderid);
     //orderWeighingModel::updateStatus($orderid);
     if (!$msg) {
         self::$errCode = 513;
         self::$errMsg = "更新发货单重量和状态失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     //插入运输方式跟踪号申请记录表
     $transportData = array('shipOrderId' => $orderid, 'createTime' => time());
     $msg = WhWaveOrderTransportModel::insert($transportData);
     if (!$msg) {
         self::$errCode = 514;
         self::$errMsg = "插入运输方式跟踪号记录表失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     WhPushModel::pushOrderStatus($orderid, 'PKS_WDISTRICT', $userId, time());
     //状态推送
     TransactionBaseModel::commit();
     return true;
 }
 /**
  * pda_shippingGroupReviewAct::Act_orderReview()
  * 对随机扫描的发货单号进行判断
  * @author cxy
  * @return
  */
 public function Act_orderReview()
 {
     $userId = $_SESSION['userId'];
     $packageId = intval(trim($_POST['packageid']));
     $shipOrderId = trim($_POST['ebay_id']);
     //先核对订单
     //兼容 EUB或者 包裹 扫描的是 trackno 而非ebayid
     $p_real_ebayid = '#^\\d+$#';
     $p_trackno_eub = '#^(LK|RA|RI|RL|RB|RC|RD|RM|RR|RF|LN|LM|AG)\\d+(CN|HK|DE200)$#';
     $p_trackno_ups = '#^(1ZR)\\d+$#';
     $p_trackno_bpost = '#^(BLVS)\\d+$#';
     $is_eub_package_type = false;
     if (preg_match($p_real_ebayid, $shipOrderId)) {
     } else {
         if (preg_match($p_trackno_eub, $shipOrderId)) {
             $is_eub_package_type = true;
         } else {
             if (preg_match($p_trackno_ups, $shipOrderId)) {
                 $is_eub_package_type = true;
             } else {
                 if (preg_match($p_trackno_bpost, $shipOrderId)) {
                     $is_eub_package_type = true;
                 } else {
                     if (strlen($shipOrderId) > 11) {
                         $is_eub_package_type = true;
                     } else {
                         self::$errCode = '001';
                         self::$errMsg = '订单号[' . $shipOrderId . ']格式有误';
                         return false;
                     }
                 }
             }
         }
     }
     if ($is_eub_package_type == true) {
         //$is_eub_package_type是真的时候$ebay_id是跟踪号
         $info = orderWeighingModel::selectOrderId($shipOrderId);
         if (!$info) {
             self::$errCode = 501;
             self::$errMsg = "此跟踪号不存在!";
             return false;
         }
         //得到发货单号
         $shipOrderId = $info[0]['shipOrderId'];
     }
     //得到发货单明细
     $order_records = WhOrderPartionRecordsModel::get_OrderPartionRecords($shipOrderId);
     if (empty($order_records)) {
         self::$errCode = 0;
         self::$errMsg = "此跟踪号/发货单号还没有进行分区!";
         return false;
     }
     if ($order_records['packageId'] != $packageId) {
         self::$errCode = 0;
         self::$errMsg = "此跟踪号/发货单号应该在{$order_records['packageId']}口袋编号中!";
         return false;
     }
     $where = "where id={$shipOrderId}";
     $order = orderPartionModel::selectOrder($where);
     if (!$order) {
         self::$errCode = 0;
         self::$errMsg = "此发货单不存在!";
         return false;
     }
     if ($order[0]['orderStatus'] != PKS_WAITING_LOADING) {
         self::$errCode = 0;
         self::$errMsg = "此发货单没有在待装车扫描状态下!";
         return false;
     }
     $order_str = $shipOrderId;
     $result_group_review = WhWaveOrderPartionShippingReviewModel::get_pocket($packageId);
     if (empty($result_group_review)) {
         self::$errCode = 0;
         self::$errMsg = "此口袋编号没有进行过分区复核!";
         return false;
     } else {
         if ($result_group_review['orders'] != 0) {
             $order_str .= ',' . $result_group_review['orders'];
             $order_str = trim($order_str, ',');
             $order_str = explode(',', $order_str);
             $order_str = array_unique($order_str);
             $order_str = implode(',', $order_str);
         }
         $update_group_shipping = WhWaveOrderPartionShippingReviewModel::update_shipping_review($packageId, $order_str);
         if ($update_group_shipping) {
             self::$errCode = '200';
             self::$errMsg = "请复核下一个发货单或者下一个口袋编号";
             return true;
         } else {
             self::$errCode = '20';
             self::$errMsg = "扫描发货单号失败,请联系负责人";
             return false;
         }
     }
 }
예제 #4
0
 public function act_orderPartion()
 {
     $orderid = isset($_POST['orderid']) ? trim($_POST['orderid']) : "";
     if (!is_numeric($orderid)) {
         $tracknumber = $orderid;
         $info = orderWeighingModel::selectOrderId($tracknumber);
         if (!$info) {
             self::$errCode = 501;
             self::$errMsg = "此跟踪号不存在!";
             return false;
         }
         $orderid = $info[0]['shipOrderId'];
     }
     $where = "where id={$orderid}";
     $order = orderPartionModel::selectOrder($where);
     if (!$order) {
         self::$errCode = 601;
         self::$errMsg = "此发货单不存在!";
         return false;
     }
     if (!is_numeric($orderid)) {
         $orderid = $order[0]['id'];
     }
     $msg = orderPartionModel::selectPartionRecord($orderid);
     if ($msg) {
         self::$errCode = 603;
         self::$errMsg = "此发货单已扫描!";
         return false;
     }
     if ($order[0]['orderStatus'] != 406) {
         self::$errCode = 602;
         self::$errMsg = "此发货单不在待分区!";
         return false;
     }
     $shipping = CommonModel::getShipingNameById($order[0]['transportId']);
     if (!in_array($shipping, array('中国邮政平邮', '中国邮政挂号', 'EUB', 'Global Mail', '香港小包平邮', '香港小包挂号', '德国邮政'))) {
         self::$errCode = 604;
         self::$errMsg = "此发货单不是小包!";
         return false;
     }
     $partion = $shipping;
     $platformName = CommonModel::getPlatformInfo($order[0]['platformId']);
     if ($shipping == 'Global Mail') {
         if ($platformName == '亚马逊') {
             $partion = "非德国Global Mail";
         } elseif ($platformName == '海外销售平台') {
             if ($order[0]['countryName'] == 'Deutschland') {
                 $partion = "Global Mail";
             } else {
                 $partion = "非德国Global Mail";
             }
         }
     } elseif ($shipping == '中国邮政平邮') {
         $partion = printLabelModel::showPartionScan($orderid, $order[0]['accountId'], $shipping, $order[0]['countryName']);
     } elseif ($shipping == '中国邮政挂号') {
         $partion = printLabelModel::showPartionScan($orderid, $order[0]['accountId'], $shipping, $order[0]['countryName']);
     }
     /*
     		$lists = $memc_obj->get_extral('trans_system_carrierinfo');
     		//print_r($lists);
     		foreach($lists as $list){
     			foreach($list as $value){
     			    
     				if($record[0]['channelId']==$value['channelId']){
     					
     					$countries = $value['countries'];
     					$country_arr = explode("','",$countries);
     					$country_arr[0] = str_replace("'","",$country_arr[0]);
     					$country_arr[count($country_arr)-1] = str_replace("'","",$country_arr[count($country_arr)-1]);
     					if(in_array($record[0]['countryName'],$country_arr)){
     						
     						$partionId = $value['id'];
     					}
     				}
     			}
     		}*/
     TransactionBaseModel::begin();
     $weight = orderPartionModel::selectWeight($orderid);
     if (!$weight) {
         self::$errCode = 605;
         self::$errMsg = "此发货单无重量!";
         return false;
     }
     $userId = $_SESSION['userId'];
     $result = orderPartionModel::insertRecord($orderid, $partion, $weight, $userId);
     if (!result) {
         self::$errCode = 606;
         self::$errMsg = "插入分区记录失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     $ret = orderPartionModel::updateOrderRecords($orderid, $userId);
     if (!ret) {
         self::$errCode = 607;
         self::$errMsg = "更新操作记录失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     $ostatus = orderPartionModel::updateOrderStatus($orderid);
     if (!ostatus) {
         self::$errCode = 608;
         self::$errMsg = "更新发货单状态失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     $arr['orderid'] = $orderid;
     $arr['partion'] = urlencode($partion);
     TransactionBaseModel::commit();
     return $arr;
 }
예제 #5
0
 public function act_markUnusual1()
 {
     $userId = $_SESSION['userId'];
     $orderids = isset($_POST['orderids']) ? $_POST['orderids'] : '';
     if (empty($orderids)) {
         self::$errCode = 0;
         self::$errMsg = '请选择发货单号!';
         return;
     }
     if (!is_numeric($orderids)) {
         $tracknumber = $orderids;
         $info = orderWeighingModel::selectOrderId($tracknumber);
         if (!$info) {
             self::$errCode = 501;
             self::$errMsg = "此跟踪号不存在!";
             return false;
         }
         $orderids = $info[0]['shipOrderId'];
     }
     $order_arr = explode(',', $orderids);
     OmAvailableModel::begin();
     $po_obj = new PackingOrderModel();
     $qresult = $po_obj->changeStatusToUnusual($orderids);
     if ($qresult) {
         foreach ($order_arr as $order) {
             $order_info = orderWeighingModel::selectOrderDetail($order);
             foreach ($order_info as $o_info) {
                 $data = array();
                 $sku_info = InvRecordModel::getSkuInfo($o_info['sku']);
                 $data = array('sku' => $o_info['sku'], 'applicantId' => $userId, 'applicantionTime' => time(), 'invReasonId' => 4, 'invStatus' => 0, 'systemNums' => $sku_info['actualStock']);
                 $insertid = WaitInventoryModel::insertRow($data);
                 if (!$insertid) {
                     self::$errCode = 0;
                     self::$errMsg = '标记异常发货单失败!';
                     OmAvailableModel::rollback();
                     return false;
                 }
             }
         }
         self::$errCode = 200;
         self::$errMsg = '标记异常发货单成功!';
         OmAvailableModel::commit();
         return true;
     } else {
         self::$errCode = 0;
         self::$errMsg = '标记异常发货单失败!';
         return false;
     }
 }
예제 #6
0
 /**
  * pda_ExpressWeighingAct::act_trackingCount()
  * @author cxy 
  *快递箱子和跟踪号数量添加到数据库
  * @return
  */
 public function act_trackingCount()
 {
     $userId = $_SESSION['userId'];
     $ebay_id = trim($_POST['ebay_id']);
     $count_box = trim(intval($_POST['count_box']));
     $tracking_count = trim(intval($_POST['tracking']));
     $weighing = trim($_POST['weighing']);
     $weighing = $weighing * 1000;
     if (empty($userId)) {
         self::$errCode = '0';
         self::$errMsg = '系统登录超时,请先关闭浏览器 然后登录扫描!!';
         return false;
     }
     if (empty($ebay_id)) {
         self::$errCode = 0;
         self::$errMsg = '请填写单号!';
         return;
     }
     if ($count_box <= 1) {
         self::$errCode = 0;
         self::$errMsg = '请输入正确的箱子数量,最小是2!';
         return false;
     }
     if ($tracking_count < 1) {
         self::$errCode = 0;
         self::$errMsg = '请输入正确的跟踪号数量,最小是1!';
         return false;
     }
     if ($weighing <= 0) {
         self::$errCode = 0;
         self::$errMsg = '请输入正确的重量!';
         return;
     }
     $where = "where id={$ebay_id}";
     $order = orderPartionModel::selectOrder($where);
     if ($order[0]['transportId'] == 48) {
         //顺丰快递的跟踪号值能是一个
         $tracking_count = 1;
     } else {
         if ($tracking_count != $count_box) {
             self::$errCode = 0;
             self::$errMsg = '跟踪号数量与箱子数量不相等!';
             return;
         }
     }
     //逻辑删除以前称重的记录
     $update = WhWaveTrackingBoxModel::update(array('is_delete' => 1), array('shipOrderId' => $ebay_id));
     $data = array('boxCount' => $count_box, 'trackingCount' => $tracking_count, 'shipOrderId' => $ebay_id, 'weighTime' => time());
     $result = WhWaveTrackingBoxModel::insert($data);
     if ($result) {
         WhBaseModel::begin();
         $status = PKS_PRINT_SHIPPING_INVOICE;
         $result = WhShippingOrderModel::update_shipping_order_by_id("id = '{$ebay_id}' and is_delete = 0", "orderStatus = '{$status}',orderWeight = '{$weighing}'");
         if (!$result) {
             WhBaseModel::rollback();
             self::$errCode = 0;
             self::$errMsg = '称重添加失败,请联系负责人';
             return false;
         }
         $msg = orderWeighingModel::insertRecord($ebay_id, $userId);
         if (!$msg) {
             self::$errCode = 511;
             self::$errMsg = "插入称重记录失败!";
             WhBaseModel::rollback();
             return false;
         }
         $msg_update = orderWeighingModel::updateRecord($ebay_id, $weighing, $userId);
         if (!$msg_update) {
             self::$errCode = 512;
             self::$errMsg = "更新操作记录表失败!";
             WhBaseModel::rollback();
             return false;
         }
         WhPushModel::pushOrderStatus($ebay_id, 'PKS_PRINT_SHIPPING_INVOICE', $_SESSION['userId'], time());
         //状态推送,需要改为待打印面单(订单系统提供状态常量)
         WhBaseModel::commit();
         self::$errCode = 200;
         self::$errMsg = '操作成功,请称重下一个发货单号';
         return true;
     } else {
         self::$errCode = 211;
         self::$errMsg = '操作失败,请联系IT部门';
         return false;
     }
 }
예제 #7
0
 public function initDB()
 {
     global $dbConn;
     self::$dbConn = $dbConn;
     mysql_query('SET NAMES UTF8');
 }
 /**
  * pda_partitionCheckingAct::act_scanOrderReview()
  * 在PDA扫描分区编号后对订单号进行分区复核
  * @author cxy
  * @return boolean
  */
 public function act_scanOrderReview()
 {
     $userId = $_SESSION['userId'];
     $ebay_id = trim($_POST['ebay_id']);
     $ebay_id = substr($ebay_id, -22);
     $partion = trim($_POST['partion']);
     $package_id = intval(trim($_POST['package_id']));
     if (empty($userId)) {
         self::$errCode = '0';
         self::$errMsg = '系统登录超时,请先关闭浏览器 然后登录扫描!!';
         return false;
     }
     //先核对订单
     //兼容 EUB或者 包裹 扫描的是 trackno 而非ebayid 拿LN229773466CN追踪号对应1012970发货单号测试
     $p_real_ebayid = '#^\\d+$#';
     $p_trackno_eub = '#^(LK|RA|RI|RL|RB|RM|RC|RD|RR|RF|LN|LM|AG)\\d+(CN|HK|DE200)$#';
     $p_trackno_ups = '#^(BLVS|1ZR)\\d+$#';
     $p_ups = '/^(1ZA)/';
     $is_eub_package_type = false;
     if (preg_match($p_real_ebayid, $ebay_id)) {
     } else {
         if (preg_match($p_trackno_eub, $ebay_id)) {
             $is_eub_package_type = true;
         } else {
             if (preg_match($p_trackno_ups, $ebay_id)) {
                 $is_eub_package_type = true;
             } else {
                 if (preg_match($p_ups, $ebay_id)) {
                     $is_eub_package_type = true;
                 } else {
                     self::$errCode = '001';
                     self::$errMsg = '订单号[' . $ebay_id . ']格式有误';
                     return false;
                 }
             }
         }
     }
     if (strlen($ebay_id) > 20) {
         $is_eub_package_type = true;
     }
     if ($is_eub_package_type == true) {
         //$is_eub_package_type是真的时候$ebay_id是跟踪号
         $info = orderWeighingModel::selectOrderId($ebay_id);
         if (!$info) {
             self::$errCode = 501;
             self::$errMsg = "此跟踪号不存在!";
             return false;
         }
         //得到发货单号
         $shipOrderId = $info[0]['shipOrderId'];
     } else {
         $shipOrderId = $ebay_id;
     }
     //得到发货单明细
     $order_records = WhOrderPartionRecordsModel::get_OrderPartionRecords($shipOrderId);
     if (empty($order_records)) {
         self::$errCode = 0;
         self::$errMsg = "此跟踪号/发货单号还没有进行分区!";
         return false;
     }
     if ($order_records['packageId'] != $package_id) {
         self::$errCode = 0;
         self::$errMsg = "此跟踪号/发货单号应该在{$order_records['packageId']}口袋编号中!";
         return false;
     }
     if ($order_records['partion'] != $partion) {
         self::$errCode = 0;
         self::$errMsg = "此跟踪号/发货单号没有在{$partion}分区中!";
         return false;
     }
     $where = "where id={$shipOrderId}";
     $order = orderPartionModel::selectOrder($where);
     if (!$order) {
         self::$errCode = 0;
         self::$errMsg = "此发货单不存在!";
         return false;
     }
     if ($order[0]['orderStatus'] != PKS_DISTRICT_CHECKING) {
         self::$errCode = 0;
         self::$errMsg = "此发货单状态不是在待分区复核!";
         return false;
     }
     $review_list = WhWaveOrderPartionScanReviewModel::get_reviewById($shipOrderId);
     if (!empty($review_list)) {
         self::$errCode = 0;
         self::$errMsg = "此发货单已经分区复核过了!";
         return false;
     } else {
         WhBaseModel::begin();
         $data = array('shipOrderId' => $shipOrderId, 'partion' => $partion, 'userId' => $userId, 'scantime' => time(), 'packageId' => $package_id);
         $result = WhWaveOrderPartionScanReviewModel::insert($data);
         if ($result) {
             $update = WhWaveOrderPartionScanReviewModel::updateOrderRecords($shipOrderId, $userId);
             if (!$update) {
                 self::$errCode = '206';
                 self::$errMsg = '更新操作记录失败,请联系负责人!';
                 WhBaseModel::rollback();
                 return false;
             }
             //更新发货表状态
             $ostatus = WhWaveOrderPartionScanReviewModel::updateShippingOrderStatus($shipOrderId, $status = PKS_PRINT_SHIPPING_INVOICE);
             if (!ostatus) {
                 self::$errCode = 608;
                 self::$errMsg = "更新发货单状态失败!";
                 WhBaseModel::rollback();
                 return false;
             }
             WhPushModel::pushOrderStatus($shipOrderId, 'PKS_PRINT_SHIPPING_INVOICE', $_SESSION['userId'], time());
             //状态推送,需要改为待打印面单(订单系统提供状态常量)
         } else {
             self::$errCode = '206';
             self::$errMsg = '该订单分区复核失败,请联系负责人!';
             WhBaseModel::rollback();
             return false;
         }
         self::$errCode = '200';
         self::$errMsg = '该订单分区正确,请复核下一订单!';
         WhBaseModel::commit();
         return true;
     }
 }