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