Example #1
0
 public function act_packingTracknumber()
 {
     $orderid = isset($_POST['orderid']) ? $_POST['orderid'] : "";
     $tracknumber = isset($_POST['tracknumber']) ? $_POST['tracknumber'] : "";
     $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;
     }
     if ($record[0]['orderStatus'] != 404) {
         self::$errCode = 405;
         self::$errMsg = "此发货单不在待包装!";
         if ($record[0]['orderStatus'] == 900) {
             self::$errMsg = "此发货单已废弃!";
         }
         return false;
     }
     //挂号的单需要再输入挂号条码
     $carrier = CommonModel::getShipingNameById($record[0]['transportId']);
     $partion = CommonModel::getChannelNameByIds($record[0]['transportId'], $record[0]['countryName']);
     $total_num = 0;
     $skuinfos = get_realskunum($record[0]['id']);
     foreach ($skuinfos as $or_sku => $or_nums) {
         $total_num += $or_nums;
     }
     if (carrier == '中国邮政挂号' && !preg_match("/^(RA|RB|RC|RR)\\d+(CN)\$/", $tracknumber)) {
         self::$errCode = 111;
         self::$errMsg = "录入失败,中国邮政挂号跟踪码不符合规范";
         return false;
     }
     if ($carrier == '香港小包挂号' && !preg_match("/^(RA|RB|RC|RR)\\d+(HK)\$/", $tracknumber)) {
         self::$errCode = 111;
         self::$errMsg = "录入失败,香港小包挂号跟踪码不符合规范";
         return false;
     }
     $p_str = "挂号条码:" . "<font color='#FF0000'>" . $tracknumber . "</font> <br>";
     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;
     }
     $msg = packingScanOrderModel::deleteTrackRecord($record[0]['id']);
     if (!$msg) {
         self::$errCode = 409;
         self::$errMsg = "删除跟踪记录失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     //录入挂号条码
     $msg = packingScanOrderModel::insertTrackRecord($tracknumber, $record[0]['id']);
     if (!$msg) {
         self::$errCode = 408;
         self::$errMsg = "插入包装记录失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     WhPushModel::pushOrderStatus($record[0]['id'], 'STATESHIPPED_BEWEIGHED', $userId, time(), '', $tracknumber);
     //状态推送
     $arr['partion'] = "<font color='#FF0000'>该订单属于" . $partion . ";含SKU总数:" . $total_num . "个</font><br>";
     $arr['carrier'] = $carrier;
     $arr['res'] = $arr['partion'] . "包装人员:" . "<font color='green'>" . $_SESSION['userCnName'] . "</font><br>" . "运输方式:" . "<font color='#FF0000'>" . $carrier . "</font> <br>" . $p_str . "扫描结果:<font color='#33CC33'>包装扫描成功!</font>";
     TransactionBaseModel::commit();
     return $arr;
 }
 public function act_return()
 {
     $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 = 401;
             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 = 402;
         self::$errMsg = "发货单号不存在!";
         return false;
     }
     if ($record[0]['orderStatus'] != 501) {
         self::$errCode = 403;
         self::$errMsg = "此发货单不是已发货!";
         return false;
     }
     $order_detail = get_realskunum($record[0]['id']);
     $return_info = PostReturnModel::getReturnList("*", "where shipOrderId={$record[0]['id']}");
     if (empty($return_info)) {
         $data = array();
         $qc_arr = array();
         $time = time();
         OmAvailableModel::begin();
         foreach ($order_detail as $sku => $num) {
             $data['shipOrderId'] = $record[0]['id'];
             $data['sku'] = $sku;
             $data['amount'] = $num;
             $data['returnTime'] = $time;
             $insert_info = PostReturnModel::insertRow($data);
             if (!$insert_info) {
                 self::$errCode = 404;
                 self::$errMsg = "订单录入失败";
                 OmAvailableModel::rollback();
                 return false;
             }
             $qc_arr[$record[0]['id']][$sku] = $num;
         }
         $qcinfo = CommonModel::qcOrderBackDetect(json_encode($qc_arr));
         if (!$qcinfo) {
             self::$errCode = 405;
             self::$errMsg = "订单录入失败";
             OmAvailableModel::rollback();
             return false;
         }
         OmAvailableModel::commit();
         self::$errMsg = "订单录入成功";
     } else {
         self::$errCode = 406;
         self::$errMsg = "该订单已录入系统,请不要重复录入";
         return false;
     }
 }
Example #3
0
 function act_checkOrder()
 {
     $userId = $_SESSION['userId'];
     $order_id = trim($_POST['ebay_id']);
     $state_status = array(PKS_WIQC);
     //先核对订单
     $p_real_ebayid = '#^\\d+$#';
     if (!preg_match($p_real_ebayid, $order_id)) {
         self::$errCode = "001";
         self::$errMsg = "发货单号[" . $order_id . "]格式有误";
         return false;
     }
     $ordercheck = ShippingOrderModel::getShippingOrder("*", "where id='{$order_id}'");
     if (empty($ordercheck)) {
         self::$errCode = '001';
         self::$errMsg = '未找到发货单[' . $order_id . ']';
         return false;
     }
     if ($ordercheck[0]['isExpressDelivery'] == 1) {
         self::$errCode = '001';
         self::$errMsg = '此发货单是快递运输方式,请转到快递复核界面操作!';
         return false;
     }
     $orderinfos = array();
     $skuinfos = array();
     $orderinfos = get_realskunum($ordercheck[0]['id']);
     //配货单所有料号及数量
     foreach ($orderinfos as $or_sku => $or_nums) {
         $sku_info = OrderReviewModel::getSkuInfo("goodsName", "where sku='{$or_sku}'");
         $skuinfos[] = array('sku' => $or_sku, 'goodsName' => $sku_info['goodsName'], 'num' => $or_nums);
     }
     $string = "";
     $time = strtotime(date('Y-m-d H:i:s'));
     foreach ($skuinfos as $info) {
         $string .= "('" . $ordercheck[0]['id'] . "','" . $info['sku'] . "','" . $info['goodsName'] . "','0','" . $info['num'] . "','" . $userId . "','" . $time . "','0'),";
     }
     $string = trim($string, ",");
     OrderReviewModel::update(array('is_delete' => 1), "and shipOrderId='{$ordercheck[0]['id']}'");
     $insert_info = OrderReviewModel::insert($string);
     if ($insert_info) {
         if (!in_array($ordercheck[0]['orderStatus'], $state_status)) {
             if ($ordercheck[0]['orderStatus'] == PKS_PROCESS_GET_GOODS) {
                 $where = "where shipOrderId='{$ordercheck[0]['id']}' and is_delete=0";
                 $list = OmAvailableModel::getTNameList("wh_order_picking_records", "*", $where);
                 $eosr_arrlist = array();
                 foreach ($list as $row) {
                     $eosr_arrlist[] = $row['shipOrderdetailId'];
                 }
                 //$skuinfos = get_realskunum($orderid);
                 $skuinfos = OmAvailableModel::getTNameList("wh_shipping_orderdetail", "*", "where shipOrderId='{$ordercheck[0]['id']}' and is_delete = 0");
                 foreach ($skuinfos as $info) {
                     $order_detail = array();
                     if (!in_array($info['id'], $eosr_arrlist)) {
                         $order_detail['shipOrderId'] = $info['shipOrderId'];
                         $order_detail['shipOrderdetailId'] = $info['id'];
                         $order_detail['sku'] = $info['sku'];
                         $order_detail['pName'] = $info['pName'];
                         $order_detail['totalNums'] = $info['amount'];
                         $order_detail['isScan'] = 0;
                         $order_detail['is_delete'] = 0;
                         $field = ' SET ' . array2sql($order_detail);
                         OmAvailableModel::addTNameRow("wh_order_picking_records", $field);
                     }
                 }
                 $where = "where shipOrderId='{$ordercheck[0]['id']}' and is_delete=0 and isScan=0";
                 $p_list = OmAvailableModel::getTNameList("wh_order_picking_records", "*", $where);
                 $str = '';
                 if (!empty($p_list)) {
                     foreach ($p_list as $eo) {
                         $op_amount = empty($eo['amount']) ? 0 : $eo['amount'];
                         $str .= "料号 {$eo['sku']} 未配货,";
                         $str .= " 已配货 {$op_amount} 还需配货 " . ($eo['totalNums'] - $op_amount);
                         $str .= " PDA扫描时间:" . ($eo['scanTime'] ? date('Y-m-d H:i:s', $eo['scanTime']) : ' 无 ');
                         $str .= "<br>";
                     }
                 }
                 self::$errCode = '004';
                 self::$errMsg = "该订单[{$order_id}]在等待配货状态,请确认!<br/>" . $str;
                 return false;
             }
             self::$errCode = '001';
             self::$errMsg = "该订单[{$order_id}]在" . LibraryStatusModel::getStatusNameByStatusCode($ordercheck[0]['orderStatus']) . "状态,请确认!";
             return false;
         }
         $fist_skuinfos = OrderReviewModel::getReviewList("*", "where shipOrderId='{$ordercheck[0]['id']}' and is_delete=0 and storeId=1");
         $note_info = OmAvailableModel::getTNameList("wh_shipping_order_note_record", "*", "where shipOrderId='{$ordercheck[0]['id']}'");
         if (!empty($note_info)) {
             self::$errMsg = "订单有效,请复核该订单下的料号及数量!<br/>备注:" . $note_info[0]['content'];
         } else {
             self::$errMsg = "订单有效,请复核该订单下的料号及数量!";
         }
         return $fist_skuinfos;
     } else {
         self::$errCode = '003';
         self::$errMsg = "订单料号初始化出错,请重试";
         return false;
     }
 }
Example #4
0
 public static function adjustIsLast($shipOrderId)
 {
     self::initDB();
     $whInfo = array();
     $relationInfo = OmAvailableModel::getTNameList("wh_shipping_order_relation", "originOrderId", "where shipOrderId={$shipOrderId}");
     $relationInfo = OmAvailableModel::getTNameList("wh_shipping_order_relation", "*", "where originOrderId={$relationInfo[0]['originOrderId']}");
     foreach ($relationInfo as $info) {
         $orderStatus = OmAvailableModel::getTNameList("wh_shipping_order", "orderStatus", "where id={$info['shipOrderId']}");
         if ($orderStatus[0]['orderStatus'] != 900) {
             $orderInfo = get_realskunum($info['shipOrderId']);
             foreach ($orderInfo as $sku => $num) {
                 if (isset($whInfo[$sku])) {
                     $whInfo[$sku] = $whInfo[$sku] + $num;
                 } else {
                     $whInfo[$sku] = $num;
                 }
             }
         }
     }
     $OmRealskulist = CommonModel::getRealskulist($relationInfo[0]['originOrderId']);
     foreach ($OmRealskulist as $sku => $num) {
         if (array_key_exists($sku, $whInfo)) {
             if ($num != $whInfo[$sku]) {
                 return false;
                 break;
             }
         } else {
             return false;
             break;
         }
     }
     return true;
 }