/** * 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; } } }
/** * OrderPrintAct::get_retAndProAdress() * 中国邮政获取退件单位和协议地址 * @param int $ebay_id 发货单号 * @author Gary * @return */ public function get_retAndProAdress($ebay_id) { $ebay_id = intval($ebay_id); $partion = WhOrderPartionRecordsModel::get_OrderPartionRecords($ebay_id); $address = array(); if (!empty($partion)) { $partion = $partion['partion']; if (strpos($partion, '深圳') !== FALSE) { //深圳 $address['retUnit'] = '协议客户:赛维网络科技有限公司'; $address['proCustomer'] = '退件单位:深圳邮局大宗邮件处理中心'; $address['fromAddress'] = '<strong>from:Shenzhen China</strong> <span style="margin-left: 10px;display:inline-block;font-weight:bold;"> 航站四路邮件处理中心 </span> <span style="display:inline-block;font-weight:bold;"> 国际业务部:赛维博 </span> <span style="margin-left: 10px;display:inline-block;font-weight:bold;"> 已验视 </span> <span style="margin-left: 10px;display:inline-block;font-weight:bold;"> 验视人:潘婷婷 </span> <span style="display:inline-block;font-weight:bold;"> 单位:国际业务部 </span> <strong>国际小包</strong> <span style="font-size:11px;font-weight:bold;display:inline-block;margin-left:4px;"> made in china </span>'; } else { if (strpos($partion, '泉州') !== FALSE) { //泉州 $address['retUnit'] = '协议客户:赛维网络科技有限公司'; $address['proCustomer'] = '退件单位:福建泉州邮件处理中心'; $address['fromAddress'] = '<strong>from: Mr. Chen</strong> <span style="display:inline-block;font-weight:bold;"> Quanzhou Riufeng Electronic Technology Co., Ltd., Quanzhou, Fujian </span> <span style="display:inline-block;font-weight:bold;"> 362000,China </span> <span style="font-size:11px;font-weight:bold;display:inline-block;margin-left:4px;"> made in china </span>'; } else { if (strpos($partion, '福建') !== FALSE) { //盘陀 $address['retUnit'] = '协议客户:陈文辉画室'; $address['proCustomer'] = '退件单位:福建盘陀邮件处理中心'; $address['fromAddress'] = '<strong>from:Chen Xiaoming</strong> <span style="display:inline-block;font-weight:bold;"> Zhangzhou,Fujian Pantuo,Zhangpu </span> <span style="display:inline-block;font-weight:bold;"> 363202,China </span> <span style="font-size:11px;font-weight:bold;display:inline-block;margin-left:4px;"> made in china </span>'; } } } } return $address; }
/** * 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; } }