Ejemplo n.º 1
0
 function inser_scan_record_by_sku($orderid, $sku, $sku_num, $userid)
 {
     $data = array();
     $time = time();
     $sku_info = OmAvailableModel::getTNameList("wh_shipping_orderdetail", "*", "where shipOrderId='{$orderid}' and sku='{$sku}' order by combineSku desc");
     foreach ($sku_info as $info) {
         $scan_exist = OrderPickingRecordsModel::getPickingRecords("*", "where shipOrderId='{$orderid}' and sku='{$sku}' and shipOrderdetailId='{$info['id']}' and is_delete=0");
         if (empty($scan_exist)) {
             $data = array('shipOrderId' => $orderid, 'shipOrderdetailId' => $info['id'], 'sku' => $sku, 'amount' => $info['amount'], 'totalNums' => $info['amount'], 'scanTime' => $time, 'scanUserId' => $userid, 'isScan' => 1);
             OrderPickingRecordsModel::insertRow($data);
         } else {
             $data = array('amount' => $info['amount'], 'scanTime' => $time, 'scanUserId' => $userid, 'isScan' => 1);
             OrderPickingRecordsModel::update($data, "and shipOrderId='{$orderid}' and sku='{$sku}' and shipOrderdetailId='{$info['id']}' and is_delete=0");
         }
     }
 }
Ejemplo n.º 2
0
 function act_orderDetail()
 {
     $userId = $_SESSION['userId'];
     $starttime = time();
     $state_status = array(402);
     //准备状态
     $final_status = array(403);
     //配货完成状态
     $no_express_delivery = array('中国邮政平邮', '中国邮政挂号', '香港小包平邮', '香港小包挂号', '德国邮政', '新加坡邮政', 'EUB', 'Global Mail');
     $order_id = $_POST['ebay_id'];
     //先核对订单
     //兼容 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, $order_id)) {
     } else {
         if (preg_match($p_trackno_eub, $order_id)) {
             $is_eub_package_type = true;
         } else {
             self::$errCode = "001";
             self::$errMsg = "订单号[" . $order_id . "]格式有误";
             return false;
         }
     }
     if ($is_eub_package_type === true) {
         $ordercheck = ShippingOrderModel::getShippingOrderInfo("b.*", "where a.tracknumber='{$order_id}' and a.is_delete=0");
     } else {
         $ordercheck = ShippingOrderModel::getShippingOrder("*", "where id='{$order_id}'");
     }
     if (empty($ordercheck)) {
         self::$errCode = '001';
         self::$errMsg = '未找到订单/跟踪号[' . $order_id . ']';
         return false;
     } else {
         $ebay_carrier = CommonModel::getShipingNameById($ordercheck[0]['transportId']);
         //print_r($ebay_carrier);exit;
         if (!in_array($ebay_carrier, $no_express_delivery)) {
             self::$errCode = '001';
             self::$errMsg = '请选择非快递订单!';
             return false;
         }
     }
     if ($ordercheck[0]['orderStatus'] == 900) {
         self::$errCode = '002';
         self::$errMsg = "该发货单[{$order_id}][已经废弃]!";
         return false;
     } else {
         if (in_array($ordercheck[0]['orderStatus'], $final_status)) {
             self::$errCode = '005';
             self::$errMsg = "该发货单已经扫描完成!";
             return false;
         }
     }
     if (!in_array($ordercheck[0]['orderStatus'], $state_status)) {
         self::$errCode = '002';
         self::$errMsg = "该发货单[{$order_id}][不在待配货]!";
         return false;
     }
     //检测是否有已扫描没作废料号(可不用插入)
     $eosr_arr = array();
     $scan_record = OrderPickingRecordsModel::getPickingRecords("shipOrderdetailId,sku,pName", "where shipOrderId={$ordercheck[0]['id']} and is_delete=0");
     if ($scan_record) {
         foreach ($scan_record as $scan) {
             //$eosr_arr[] = $scan['sku']."-".$scan['pName'];
             $eosr_arr[] = $scan['shipOrderdetailId'];
         }
     }
     //配货单所有料号及数量
     $skuinfos = array();
     $skuinfos = GroupRouteModel::getOrderPositionID($ordercheck[0]['id']);
     foreach ($skuinfos as $info) {
         //$sku_pName = $info['sku']."-".$info['pName'];
         if (!in_array($info['id'], $eosr_arr)) {
             $i_data = array('shipOrderId' => $ordercheck[0]['id'], 'shipOrderdetailId' => $info['id'], 'sku' => $info['sku'], 'pName' => $info['pName'], 'totalNums' => $info['amount'], 'scanUserId' => $userId, 'scanTime' => time());
             OrderPickingRecordsModel::insertRow($i_data);
         }
     }
     $eosr_arr2 = OrderPickingRecordsModel::getPickingRecords("*", "where shipOrderId={$ordercheck[0]['id']} and isScan=0 and is_delete=0 order by pName");
     if (!$eosr_arr2) {
         self::$errCode = '005';
         self::$errMsg = "该发货单已经扫描完成!";
         return false;
     } else {
         foreach ($eosr_arr2 as $value) {
             $goods_sn = array();
             $skuInfo = GroupRouteModel::getSkuPosition("where a.sku='{$value['sku']}' and c.pName='{$value['pName']}' and b.is_delete=0");
             $goods_sn['detailId'] = $value['shipOrderdetailId'];
             $goods_sn['sku'] = $value['sku'];
             $goods_sn['gl'] = $value['pName'];
             $goods_sn['nums'] = $value['totalNums'];
             $goods_sn['goods_count'] = $skuInfo[0]['nums'];
             $res_data['detail'][] = $goods_sn;
         }
     }
     if (!isset($res_data['detail']) || count($res_data['detail']) == 0) {
         self::$errCode = '006';
         self::$errMsg = "该订单没有需要包货料号!";
         return false;
     } else {
         $gl_arr = array();
         $s_arr = array();
         foreach ($res_data['detail'] as $value) {
             $s_arr[] = $value['sku'];
             $gl_arr[] = $value['gl'];
         }
         array_multisort($gl_arr, $s_arr, $res_data['detail']);
         $difftime = time() - $starttime;
         self::$errMsg = '开始料号扫描!' . '--' . $difftime;
         return $res_data;
     }
 }