public function act_changeOutOfStockToDispathBill() { $orderids = $_REQUEST['orderids']; if (empty($orderids)) { self::$errCode = "001"; self::$errMsg = "发货单号为空!"; return false; } if (!is_numeric($orderids)) { $tracknumber = $orderids; $info = orderWeighingModel::selectOrderId($tracknumber); if (!$info) { self::$errCode = 501; self::$errMsg = "此跟踪号不存在!"; return false; } $orderids = $info[0]['shipOrderId']; } $orderStatus = ShippingOrderModel::getShippingOrder("orderStatus", " where id='{$orderids}'"); $orderStatus = $orderStatus[0]['orderStatus']; if ($orderStatus == '402' || $orderStatus == '703') { $changeStatus = new printAct(); $changeStatus->act_markUnusual1(); if (empty($ret) || $changeStatus::$errCode != '200') { self::$errCode = $changeStatus::$errCode; self::$errMsg = $changeStatus::$errMsg; return false; //失败 } else { self::$errCode = $changeStatus::$errCode; self::$errMsg = $changeStatus::$errMsg; return true; } } self::$errCode = "002"; self::$errMsg = "非待配货!"; return false; }
public function act_orderWeighingFlat() { $orderid = isset($_POST['orderid']) ? $_POST['orderid'] : ""; $mailway = isset($_POST['channelId']) ? $_POST['channelId'] : ""; //$partionId = isset($_POST['partionId'])?$_POST['partionId']:"";//不作处理 $orderweight = isset($_POST['orderweight']) ? $_POST['orderweight'] : ""; if (!is_numeric($orderid) || empty($orderid)) { self::$errCode = 501; self::$errMsg = "错误的发货单号!"; return false; } $where = "where id={$orderid}"; $lists = orderWeighingModel::selectRecord($where); $calcweight = $lists[0]['calcWeight'] * 1000; //估算重量 $userName = $_SESSION['userCnName']; /**重量拦截的逻辑**/ $vip_users = C('weight_vip'); //获取具有VIP权限的 $lists = orderWeighingModel::selectOrderDetail($orderid); if (!in_array($userName, $vip_users)) { //判断是否具有vip操作权限 $minRate = 0.8; $maxRate = 1.2; } else { $minRate = 0.5; $maxRate = 2; } if ($calcweight < 50 && $orderweight < 50) { if (abs($orderweight - $calcweight) >= 20) { self::$errCode = 509; self::$errMsg = "该订单重量与实际不符合!系统重量为{$calcweight}称重重量为{$orderweight}"; return false; } } else { if (($orderweight < $calcweight * $minRate || $orderweight > $calcweight * $maxRate) && $calcweight != 0) { self::$errCode = 510; self::$errMsg = "该订单重量与实际不符合!系统重量为{$calcweight}称重重量为{$orderweight}"; return false; } } TransactionBaseModel::begin(); //更新状态,插入记录 $userId = $_SESSION['userId']; $msg = orderWeighingModel::insertRecord($orderid, $userId); if (!$msg) { self::$errCode = 511; self::$errMsg = "插入称重记录失败!"; TransactionBaseModel::rollback(); return false; } $msg = orderWeighingModel::updateRecord($orderid, $orderweight, $userId); if (!$msg) { self::$errCode = 512; self::$errMsg = "更新操作记录表失败!"; TransactionBaseModel::rollback(); return false; } //更新发货单实际重量和状态 $orderData = array('orderWeight' => $orderweight, 'orderStatus' => PKS_WDISTRICT); $msg = WhShippingOrderModel::update($orderData, $orderid); //orderWeighingModel::updateStatus($orderid); if (!$msg) { self::$errCode = 513; self::$errMsg = "更新发货单重量和状态失败!"; TransactionBaseModel::rollback(); return false; } //插入运输方式跟踪号申请记录表 $transportData = array('shipOrderId' => $orderid, 'createTime' => time()); $msg = WhWaveOrderTransportModel::insert($transportData); if (!$msg) { self::$errCode = 514; self::$errMsg = "插入运输方式跟踪号记录表失败!"; TransactionBaseModel::rollback(); return false; } WhPushModel::pushOrderStatus($orderid, 'PKS_WDISTRICT', $userId, time()); //状态推送 TransactionBaseModel::commit(); return true; }
/** * pda_shippingGroupReviewAct::Act_orderReview() * 对随机扫描的发货单号进行判断 * @author cxy * @return */ public function Act_orderReview() { $userId = $_SESSION['userId']; $packageId = intval(trim($_POST['packageid'])); $shipOrderId = trim($_POST['ebay_id']); //先核对订单 //兼容 EUB或者 包裹 扫描的是 trackno 而非ebayid $p_real_ebayid = '#^\\d+$#'; $p_trackno_eub = '#^(LK|RA|RI|RL|RB|RC|RD|RM|RR|RF|LN|LM|AG)\\d+(CN|HK|DE200)$#'; $p_trackno_ups = '#^(1ZR)\\d+$#'; $p_trackno_bpost = '#^(BLVS)\\d+$#'; $is_eub_package_type = false; if (preg_match($p_real_ebayid, $shipOrderId)) { } else { if (preg_match($p_trackno_eub, $shipOrderId)) { $is_eub_package_type = true; } else { if (preg_match($p_trackno_ups, $shipOrderId)) { $is_eub_package_type = true; } else { if (preg_match($p_trackno_bpost, $shipOrderId)) { $is_eub_package_type = true; } else { if (strlen($shipOrderId) > 11) { $is_eub_package_type = true; } else { self::$errCode = '001'; self::$errMsg = '订单号[' . $shipOrderId . ']格式有误'; return false; } } } } } if ($is_eub_package_type == true) { //$is_eub_package_type是真的时候$ebay_id是跟踪号 $info = orderWeighingModel::selectOrderId($shipOrderId); if (!$info) { self::$errCode = 501; self::$errMsg = "此跟踪号不存在!"; return false; } //得到发货单号 $shipOrderId = $info[0]['shipOrderId']; } //得到发货单明细 $order_records = WhOrderPartionRecordsModel::get_OrderPartionRecords($shipOrderId); if (empty($order_records)) { self::$errCode = 0; self::$errMsg = "此跟踪号/发货单号还没有进行分区!"; return false; } if ($order_records['packageId'] != $packageId) { self::$errCode = 0; self::$errMsg = "此跟踪号/发货单号应该在{$order_records['packageId']}口袋编号中!"; return false; } $where = "where id={$shipOrderId}"; $order = orderPartionModel::selectOrder($where); if (!$order) { self::$errCode = 0; self::$errMsg = "此发货单不存在!"; return false; } if ($order[0]['orderStatus'] != PKS_WAITING_LOADING) { self::$errCode = 0; self::$errMsg = "此发货单没有在待装车扫描状态下!"; return false; } $order_str = $shipOrderId; $result_group_review = WhWaveOrderPartionShippingReviewModel::get_pocket($packageId); if (empty($result_group_review)) { self::$errCode = 0; self::$errMsg = "此口袋编号没有进行过分区复核!"; return false; } else { if ($result_group_review['orders'] != 0) { $order_str .= ',' . $result_group_review['orders']; $order_str = trim($order_str, ','); $order_str = explode(',', $order_str); $order_str = array_unique($order_str); $order_str = implode(',', $order_str); } $update_group_shipping = WhWaveOrderPartionShippingReviewModel::update_shipping_review($packageId, $order_str); if ($update_group_shipping) { self::$errCode = '200'; self::$errMsg = "请复核下一个发货单或者下一个口袋编号"; return true; } else { self::$errCode = '20'; self::$errMsg = "扫描发货单号失败,请联系负责人"; return false; } } }
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; }
public function act_markUnusual1() { $userId = $_SESSION['userId']; $orderids = isset($_POST['orderids']) ? $_POST['orderids'] : ''; if (empty($orderids)) { self::$errCode = 0; self::$errMsg = '请选择发货单号!'; return; } if (!is_numeric($orderids)) { $tracknumber = $orderids; $info = orderWeighingModel::selectOrderId($tracknumber); if (!$info) { self::$errCode = 501; self::$errMsg = "此跟踪号不存在!"; return false; } $orderids = $info[0]['shipOrderId']; } $order_arr = explode(',', $orderids); OmAvailableModel::begin(); $po_obj = new PackingOrderModel(); $qresult = $po_obj->changeStatusToUnusual($orderids); if ($qresult) { foreach ($order_arr as $order) { $order_info = orderWeighingModel::selectOrderDetail($order); foreach ($order_info as $o_info) { $data = array(); $sku_info = InvRecordModel::getSkuInfo($o_info['sku']); $data = array('sku' => $o_info['sku'], 'applicantId' => $userId, 'applicantionTime' => time(), 'invReasonId' => 4, 'invStatus' => 0, 'systemNums' => $sku_info['actualStock']); $insertid = WaitInventoryModel::insertRow($data); if (!$insertid) { self::$errCode = 0; self::$errMsg = '标记异常发货单失败!'; OmAvailableModel::rollback(); return false; } } } self::$errCode = 200; self::$errMsg = '标记异常发货单成功!'; OmAvailableModel::commit(); return true; } else { self::$errCode = 0; self::$errMsg = '标记异常发货单失败!'; return false; } }
/** * pda_ExpressWeighingAct::act_trackingCount() * @author cxy *快递箱子和跟踪号数量添加到数据库 * @return */ public function act_trackingCount() { $userId = $_SESSION['userId']; $ebay_id = trim($_POST['ebay_id']); $count_box = trim(intval($_POST['count_box'])); $tracking_count = trim(intval($_POST['tracking'])); $weighing = trim($_POST['weighing']); $weighing = $weighing * 1000; if (empty($userId)) { self::$errCode = '0'; self::$errMsg = '系统登录超时,请先关闭浏览器 然后登录扫描!!'; return false; } if (empty($ebay_id)) { self::$errCode = 0; self::$errMsg = '请填写单号!'; return; } if ($count_box <= 1) { self::$errCode = 0; self::$errMsg = '请输入正确的箱子数量,最小是2!'; return false; } if ($tracking_count < 1) { self::$errCode = 0; self::$errMsg = '请输入正确的跟踪号数量,最小是1!'; return false; } if ($weighing <= 0) { self::$errCode = 0; self::$errMsg = '请输入正确的重量!'; return; } $where = "where id={$ebay_id}"; $order = orderPartionModel::selectOrder($where); if ($order[0]['transportId'] == 48) { //顺丰快递的跟踪号值能是一个 $tracking_count = 1; } else { if ($tracking_count != $count_box) { self::$errCode = 0; self::$errMsg = '跟踪号数量与箱子数量不相等!'; return; } } //逻辑删除以前称重的记录 $update = WhWaveTrackingBoxModel::update(array('is_delete' => 1), array('shipOrderId' => $ebay_id)); $data = array('boxCount' => $count_box, 'trackingCount' => $tracking_count, 'shipOrderId' => $ebay_id, 'weighTime' => time()); $result = WhWaveTrackingBoxModel::insert($data); if ($result) { WhBaseModel::begin(); $status = PKS_PRINT_SHIPPING_INVOICE; $result = WhShippingOrderModel::update_shipping_order_by_id("id = '{$ebay_id}' and is_delete = 0", "orderStatus = '{$status}',orderWeight = '{$weighing}'"); if (!$result) { WhBaseModel::rollback(); self::$errCode = 0; self::$errMsg = '称重添加失败,请联系负责人'; return false; } $msg = orderWeighingModel::insertRecord($ebay_id, $userId); if (!$msg) { self::$errCode = 511; self::$errMsg = "插入称重记录失败!"; WhBaseModel::rollback(); return false; } $msg_update = orderWeighingModel::updateRecord($ebay_id, $weighing, $userId); if (!$msg_update) { self::$errCode = 512; self::$errMsg = "更新操作记录表失败!"; WhBaseModel::rollback(); return false; } WhPushModel::pushOrderStatus($ebay_id, 'PKS_PRINT_SHIPPING_INVOICE', $_SESSION['userId'], time()); //状态推送,需要改为待打印面单(订单系统提供状态常量) WhBaseModel::commit(); self::$errCode = 200; self::$errMsg = '操作成功,请称重下一个发货单号'; return true; } else { self::$errCode = 211; self::$errMsg = '操作失败,请联系IT部门'; return false; } }
public function initDB() { global $dbConn; self::$dbConn = $dbConn; mysql_query('SET NAMES UTF8'); }
/** * pda_partitionCheckingAct::act_scanOrderReview() * 在PDA扫描分区编号后对订单号进行分区复核 * @author cxy * @return boolean */ public function act_scanOrderReview() { $userId = $_SESSION['userId']; $ebay_id = trim($_POST['ebay_id']); $ebay_id = substr($ebay_id, -22); $partion = trim($_POST['partion']); $package_id = intval(trim($_POST['package_id'])); if (empty($userId)) { self::$errCode = '0'; self::$errMsg = '系统登录超时,请先关闭浏览器 然后登录扫描!!'; return false; } //先核对订单 //兼容 EUB或者 包裹 扫描的是 trackno 而非ebayid 拿LN229773466CN追踪号对应1012970发货单号测试 $p_real_ebayid = '#^\\d+$#'; $p_trackno_eub = '#^(LK|RA|RI|RL|RB|RM|RC|RD|RR|RF|LN|LM|AG)\\d+(CN|HK|DE200)$#'; $p_trackno_ups = '#^(BLVS|1ZR)\\d+$#'; $p_ups = '/^(1ZA)/'; $is_eub_package_type = false; if (preg_match($p_real_ebayid, $ebay_id)) { } else { if (preg_match($p_trackno_eub, $ebay_id)) { $is_eub_package_type = true; } else { if (preg_match($p_trackno_ups, $ebay_id)) { $is_eub_package_type = true; } else { if (preg_match($p_ups, $ebay_id)) { $is_eub_package_type = true; } else { self::$errCode = '001'; self::$errMsg = '订单号[' . $ebay_id . ']格式有误'; return false; } } } } if (strlen($ebay_id) > 20) { $is_eub_package_type = true; } if ($is_eub_package_type == true) { //$is_eub_package_type是真的时候$ebay_id是跟踪号 $info = orderWeighingModel::selectOrderId($ebay_id); if (!$info) { self::$errCode = 501; self::$errMsg = "此跟踪号不存在!"; return false; } //得到发货单号 $shipOrderId = $info[0]['shipOrderId']; } else { $shipOrderId = $ebay_id; } //得到发货单明细 $order_records = WhOrderPartionRecordsModel::get_OrderPartionRecords($shipOrderId); if (empty($order_records)) { self::$errCode = 0; self::$errMsg = "此跟踪号/发货单号还没有进行分区!"; return false; } if ($order_records['packageId'] != $package_id) { self::$errCode = 0; self::$errMsg = "此跟踪号/发货单号应该在{$order_records['packageId']}口袋编号中!"; return false; } if ($order_records['partion'] != $partion) { self::$errCode = 0; self::$errMsg = "此跟踪号/发货单号没有在{$partion}分区中!"; return false; } $where = "where id={$shipOrderId}"; $order = orderPartionModel::selectOrder($where); if (!$order) { self::$errCode = 0; self::$errMsg = "此发货单不存在!"; return false; } if ($order[0]['orderStatus'] != PKS_DISTRICT_CHECKING) { self::$errCode = 0; self::$errMsg = "此发货单状态不是在待分区复核!"; return false; } $review_list = WhWaveOrderPartionScanReviewModel::get_reviewById($shipOrderId); if (!empty($review_list)) { self::$errCode = 0; self::$errMsg = "此发货单已经分区复核过了!"; return false; } else { WhBaseModel::begin(); $data = array('shipOrderId' => $shipOrderId, 'partion' => $partion, 'userId' => $userId, 'scantime' => time(), 'packageId' => $package_id); $result = WhWaveOrderPartionScanReviewModel::insert($data); if ($result) { $update = WhWaveOrderPartionScanReviewModel::updateOrderRecords($shipOrderId, $userId); if (!$update) { self::$errCode = '206'; self::$errMsg = '更新操作记录失败,请联系负责人!'; WhBaseModel::rollback(); return false; } //更新发货表状态 $ostatus = WhWaveOrderPartionScanReviewModel::updateShippingOrderStatus($shipOrderId, $status = PKS_PRINT_SHIPPING_INVOICE); if (!ostatus) { self::$errCode = 608; self::$errMsg = "更新发货单状态失败!"; WhBaseModel::rollback(); return false; } WhPushModel::pushOrderStatus($shipOrderId, 'PKS_PRINT_SHIPPING_INVOICE', $_SESSION['userId'], time()); //状态推送,需要改为待打印面单(订单系统提供状态常量) } else { self::$errCode = '206'; self::$errMsg = '该订单分区复核失败,请联系负责人!'; WhBaseModel::rollback(); return false; } self::$errCode = '200'; self::$errMsg = '该订单分区正确,请复核下一订单!'; WhBaseModel::commit(); return true; } }