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; }
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; }