Пример #1
0
 public function act_packingOrder()
 {
     $orderid = isset($_POST['orderid']) ? $_POST['orderid'] : "";
     $userId = $_SESSION['userId'];
     //先核对订单
     //兼容 EUB或者 包裹 扫描的是 trackno 而非ebayid
     $p_real_ebayid = '#^\\d+$#';
     $p_trackno_eub = '#^(LK|RA|RB|RC|RR|RF|LN)\\d+(CN|HK|DE200)$#';
     $is_eub_package_type = false;
     if (preg_match($p_real_ebayid, $orderid)) {
     } else {
         if (preg_match($p_trackno_eub, $orderid)) {
             $is_eub_package_type = true;
         } else {
             self::$errCode = "001";
             self::$errMsg = "订单号[" . $orderid . "]格式有误";
             return false;
         }
     }
     if ($is_eub_package_type === true) {
         $record = ShippingOrderModel::getShippingOrderInfo("b.*", "where a.tracknumber='{$orderid}' and a.is_delete=0");
     } else {
         $record = ShippingOrderModel::getShippingOrder("*", "where id='{$orderid}'");
     }
     //验证发货单号 以及所属状态
     if (!$record) {
         self::$errCode = 404;
         self::$errMsg = "发货单号不存在!";
         return false;
         exit;
     }
     if ($record[0]['orderStatus'] != 404) {
         self::$errCode = 405;
         self::$errMsg = "此发货单不在待包装!";
         if ($record[0]['orderStatus'] == 900) {
             self::$errMsg = "此发货单已废弃!";
         }
         if ($record[0]['orderStatus'] == 405) {
             self::$errMsg = "该订单[{$record[0]['id']}]已经经过包装扫描了!";
         }
         if ($record[0]['orderStatus'] == 403) {
             self::$errMsg = "该订单[{$record[0]['id']}]还在待复核!";
         }
         return false;
     }
     //挂号的单需要再输入挂号条码
     $carrier = CommonModel::getShipingNameById($record[0]['transportId']);
     $partion = printLabelModel::showPartionScan($record[0]['id'], $record[0]['accountId'], $carrier, $record[0]['countryName']);
     $total_num = 0;
     $skuinfos = get_realskunum($record[0]['id']);
     foreach ($skuinfos as $or_sku => $or_nums) {
         $total_num += $or_nums;
     }
     if (in_array($carrier, array("中国邮政挂号", "香港小包挂号", "德国邮政"))) {
         self::$errCode = 222;
         self::$errMsg = "请录入挂号条码!";
         $arr['partion'] = $partion;
         $arr['carrier'] = $carrier;
         return json_encode($arr);
         exit;
     }
     TransactionBaseModel::begin();
     //更新订单状态
     $msg = OmAvailableModel::updateTNameRow("wh_shipping_order", "set orderStatus=405", "where id={$record[0]['id']}");
     if (!$msg) {
         self::$errCode = 409;
         self::$errMsg = "更新发货单状态记录失败!";
         $arr['partion'] = $partion;
         $arr['carrier'] = $carrier;
         TransactionBaseModel::rollback();
         return json_encode($arr);
         exit;
     }
     //更新操作记录
     $msg = packingScanOrderModel::updateOrderRecord($record[0]['id'], $userId);
     if (!$msg) {
         self::$errCode = 406;
         self::$errMsg = "更新发货单操作记录失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     //插入包装记录
     $msg = packingScanOrderModel::insertPackingRecord($record[0]['id'], $userId);
     if (!$msg) {
         self::$errCode = 407;
         self::$errMsg = "插入包装记录失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     WhPushModel::pushOrderStatus($record[0]['id'], 'STATESHIPPED_BEWEIGHED', $userId, time());
     //状态推送
     $arr['partion'] = "<font color='#FF0000'>该订单属于" . $partion . ";含SKU总数:" . $total_num . "个</font><br>";
     $arr['carrier'] = $carrier;
     $arr['userName'] = $_SESSION['userName'];
     $arr['res'] = $arr['partion'] . "包装人员:" . "<font color='green'>" . $_SESSION['userCnName'] . "</font><br>" . "运输方式:" . "<font color='#FF0000'>" . $carrier . "</font> <br>扫描结果:<font color='#33CC33'>包装扫描成功!</font>";
     TransactionBaseModel::commit();
     return $arr;
 }
Пример #2
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;
 }