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