public function act_handelSubmit()
 {
     $expressdata = null;
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         // 以post方式提交的数据为 一个订单有多个跟踪号的情况
         $orderid = trim($_POST['orderid']);
         $expressid = trim($_POST['expressid']);
         $expressid = trim($_POST['expressid'], "\n");
         $exidar = explode("\n", $expressid);
         $len = count($exidar);
         for ($i = 0; $i < $len; $i++) {
             // 去除中间的空白
             $temp = trim($exidar[$i]);
             if (empty($temp)) {
                 unset($exidar[$i]);
             }
         }
         if (empty($exidar)) {
             // 提交的是空白
             self::$errCode = 0;
             self::$errMsg = '快递号为空!';
             return;
         }
         $expressdata = $exidar;
         // $expressid = implode('和', $exidar);
     } else {
         $orderid = trim($_GET['orderid']);
         $expressid = trim($_GET['expressid']);
         $expressdata = $expressid;
     }
     if ($orderid < 1 || empty($orderid)) {
         // 不合法的id
         self::$errCode = 0;
         self::$errMsg = '单号不合法!';
         return;
     }
     if (empty($expressdata)) {
         self::$errCode = 0;
         self::$errMsg = '追踪号码不能为空!';
         return;
     }
     $po_obj = new PackingOrderModel();
     $orderinfo = $po_obj->getOrderInfoById($orderid);
     if (empty($orderinfo)) {
         self::$errCode = 0;
         self::$errMsg = '单号不正确';
         return;
     }
     if ($orderinfo['orderStatus'] != PKS_EX_TNRCK) {
         //该订单不在快递待复核状态
         self::$errCode = 0;
         self::$errMsg = '该发货单不在快递待复核组!';
         return;
     }
     $tir_obj = new TrackInfoRecordModel();
     $result = $tir_obj->validataTracnumber($orderid, $expressdata, 1);
     self::$errCode = TrackInfoRecordModel::$errCode;
     self::$errMsg = TrackInfoRecordModel::$errMsg;
     return;
 }
Example #2
0
 public function act_packingscan()
 {
     $orderid = isset($_GET['orderid']) ? intval($_GET['order']) : 0;
     if (empty($orderid)) {
         self::$errCode = 0;
         self::$errMsg = '请输入订单号!';
         return;
     }
     $po_obj = new PackingOrderModel();
     $orderinfo = $po_obj->getOrderInfoById($orderid);
     if (empty($orderinfo)) {
         self::$errCode = 0;
         self::$errMsg = '该单号不存在!';
         return;
     }
     if ($orderinfo['orderStatus'] != PKS_WPACKING) {
         // 该订单不在待包装状态
         self::$errCode = 0;
         self::$errMsg = '该发货单不在待包装组!';
         return;
     }
     self::$errCode = 1;
     self::$errMsg = 'Ok!';
     return;
 }
Example #3
0
 public function view_editeForm()
 {
     $orderid = isset($_GET['orderid']) ? intval($_GET['orderid']) : 0;
     if (empty($orderid)) {
         //没有传入订单号
         $msgdata = array('data' => array('请指定发货单号!'), 'link' => $_SERVER['HTTP_REFERER']);
         goErrMsgPage($msgdata);
         exit;
     }
     $po_obj = new PackingOrderModel();
     $orderinfo = $po_obj->getOrderInfoById($orderid);
     if (empty($orderinfo)) {
         $msgdata = array('data' => array('单号不存在!'), 'link' => $_SERVER['HTTP_REFERER']);
         goErrMsgPage($msgdata);
         exit;
     }
     //获得配货记录信息
     $po_obj = new ShipingOrderDetailModel();
     $orderrecords = $po_obj->getShippingOrderRecordsById($orderid);
     if (!empty($orderrecords)) {
         $this->smarty->assign('actualweight', $orderrecords['actualWeight']);
         $this->smarty->assign('actualshipfee', $orderrecords['actualShipping']);
     }
     $this->smarty->assign('recipient', $orderinfo['username']);
     $this->smarty->assign('email', $orderinfo['email']);
     $this->smarty->assign('country', $orderinfo['countryName']);
     $this->smarty->assign('abbreviation', $orderinfo['countrySn']);
     $this->smarty->assign('state', $orderinfo['state']);
     $this->smarty->assign('city', $orderinfo['city']);
     $this->smarty->assign('street', $orderinfo['street']);
     $this->smarty->assign('address2', $orderinfo['address2']);
     $this->smarty->assign('address3', $orderinfo['address3']);
     $this->smarty->assign('currency', $orderinfo['currency']);
     $this->smarty->assign('shipping', $orderinfo['transportId']);
     $this->smarty->assign('sellaccount', $orderinfo['account']);
     $this->smarty->assign('status', $orderinfo['orderStatus']);
     $this->smarty->assign('channel', $orderinfo['channelId']);
     $this->smarty->assign('calcWeight', $orderinfo['calcWeight']);
     $this->smarty->assign('calcShipping', $orderinfo['calcShipping']);
     $this->smarty->assign('orderid', $orderid);
     //print_r($orderinfo);exit;
     $shippinglist = ShipingTypeModel::getShipingTypeList();
     $this->smarty->assign('shippinglist', $shippinglist);
     $navlist = array(array('url' => 'index.php?mod=dispatchBillQuery&act=showForm', 'title' => '出库'), array('url' => '', 'title' => '发货单编辑'));
     $this->smarty->assign('navlist', $navlist);
     $toptitle = '发货单编辑--单号【' . $orderid . '】';
     //顶部链接
     $this->smarty->assign('toptitle', $toptitle);
     $toplevel = 2;
     //顶层菜单
     $this->smarty->assign('toplevel', $toplevel);
     $this->smarty->assign('secnev', 3);
     //二级导航
     $this->smarty->display('showeditform.htm');
 }
Example #4
0
 public function view_rollBackStock()
 {
     $orderid = isset($_GET['orderid']) ? intval($_GET['orderid']) : 0;
     if ($orderid < 1) {
         //传参不合法
         $data = array('data' => array('参数不合法!'), 'link' => 'index.php?mod=unusualOrder&act=unusualOrderList');
         goErrMsgPage($data);
         exit;
     }
     $po_obj = new PackingOrderModel();
     $orderinfo = $po_obj->getOrderInfoById($orderid);
     if (empty($orderinfo)) {
         $data = array('data' => array('指定发货单不存在!'), 'link' => 'index.php?mod=unusualOrder&act=unusualOrderList');
         goErrMsgPage($data);
         exit;
     }
     if ($orderinfo['orderStatus'] != PKS_UNUSUAL) {
         //该订单不在待复核状态
         $data = array('data' => array('该订单不是异常订单!'), 'link' => 'index.php?mod=unusualOrder&act=unusualOrderList');
         goErrMsgPage($data);
         exit;
     }
     $sod_obj = new ShipingOrderDetailModel();
     $sku_havegot = $sod_obj->getSkuHavedone($orderid);
     //获得已经配货的sku列表
     $rollbackresult = $sod_obj->rollBackStock($sku_havegot);
     if ($rollbackresult) {
         $data = array('data' => array('回滚成功!'), 'link' => 'index.php?mod=unusualOrder&act=unusualOrderList');
         goOkMsgPage($data);
         exit;
     } else {
         $data = array('data' => array('该订单不是异常订单!'), 'link' => 'index.php?mod=dispatchBillQuery&act=showForm');
         goErrMsgPage($data);
         exit;
     }
 }
Example #5
0
 private function handelScanSubmit($ordertype)
 {
     $sku = isset($_POST['sku']) ? trim($_POST['sku']) : 0;
     //sku
     $sku = get_goodsSn($sku);
     if (empty($sku)) {
         self::$errCode = 0;
         self::$errMsg = '请输入sku';
         return FALSE;
     }
     $orderid = isset($_POST['orderid']) ? abs(intval($_POST['orderid'])) : 0;
     //单号
     if (empty($orderid)) {
         self::$errCode = 0;
         self::$errMsg = '请输入单号!';
         return FALSE;
     }
     $num = isset($_POST['num']) ? intval($_POST['num']) : 0;
     //数量
     if (!(is_int($num) && $num > 0)) {
         self::$errCode = 0;
         self::$errMsg = '请输入正确的数量!';
         return FALSE;
     }
     $pName = isset($_POST['pname']) ? trim($_POST['pname']) : '';
     //仓位
     if (empty($pName)) {
         self::$errCode = 0;
         self::$errMsg = '仓位有误,请联系it';
         return FALSE;
     }
     $pcko_obj = new PackingOrderModel();
     $orderinfo = $pcko_obj->getOrderInfoById($orderid, ' and orderStatus=' . PKS_WGETGOODS);
     //发货单完整信息
     if (empty($orderinfo)) {
         //订单号不存在
         self::$errCode = 0;
         self::$errMsg = '订单号不存在!';
         return FALSE;
     }
     /* 验证该订单的类型是否符合要求 */
     if ($ordertype == 1) {
         //为快递单
         if (!ShipingTypeModel::isExpressShiping($orderinfo['transportId'])) {
             self::$errCode = 0;
             self::$errMsg = '该订单为非快递单!';
             return FALSE;
         }
     } elseif ($ordertype == 2) {
         //为非快递单
         if (!ShipingTypeModel::isSmallpressShiping($orderinfo['transportId'])) {
             self::$errCode = 0;
             self::$errMsg = '该订单非小包订单!';
             return FALSE;
         }
     } elseif ($ordertype == 3) {
         if (!ShipingTypeModel::isInlandShiping($orderinfo['transportId'])) {
             self::$errCode = 0;
             self::$errMsg = '该订单非国内快递订单!';
             return FALSE;
         }
     }
     /***添加料号、配货数量验证 start ***/
     if ($ordertype == 1) {
         $sod_obj = new ShipingOrderDetailModel();
         $rtnNum = $sod_obj->checkOrderSku($orderid, $sku);
         if ($rtnNum == 0) {
             self::$errCode = 20;
             self::$errMsg = '发货单号不存在料号[' . $sku . ']';
             return false;
         } else {
             $rtnNum = $sod_obj->checkSkuPickRecord($orderid, $sku, $pName);
             if ($rtnNum != 0) {
                 self::$errCode = 20;
                 self::$errMsg = '料号[' . $sku . ']已配货';
                 return false;
             } else {
                 $actualNum = $sod_obj->checkSkuQty($orderid, $sku);
                 $diffNum = $num - $actualNum;
                 if ($diffNum > 0) {
                     self::$errCode = 20;
                     self::$errMsg = '料号[' . $sku . ']需配货' . $actualNum . '件现配' . $num . '件多配' . $diffNum . '件';
                     return false;
                 } else {
                     if ($diffNum < 0) {
                         self::$errCode = 20;
                         self::$errMsg = '料号[' . $sku . ']需配货' . $actualNum . '件现配' . $num . '件少配-' . $diffNum . '件';
                         return false;
                     } else {
                     }
                 }
             }
         }
     }
     /***添加料号、配货数量验证 end ***/
     $sod_obj = new ShipingOrderDetailModel();
     $skulist = $sod_obj->getSkuListByOrderId($orderid);
     //该发货单下的全部sku列表
     $sku_scaned = $sod_obj->getSkuHavedone($orderid);
     //该订单下的已配货的sku列表
     foreach ($sku_scaned as $skval) {
         //去掉已配货的
         if (array_key_exists($skval['shipOrderdetailId'], $skulist)) {
             unset($skulist[$skval['shipOrderdetailId']]);
         }
     }
     $matched = null;
     foreach ($skulist as $val) {
         if ($val['amount'] == $num && $val['sku'] == $sku) {
             //找到匹配的
             $matched = $val;
             break;
         }
     }
     $islast = FALSE;
     if (count($skulist) == 1) {
         //为最后一个配货料号
         $islast = TRUE;
     }
     if (empty($matched)) {
         //没找到数量匹配的
         self::$errCode = 0;
         self::$errMsg = 'sku数量不对!';
         return FALSE;
     }
     //删除库存 插入配货记录
     $data = array('num' => $num, 'sku' => $sku, 'pName' => $pName, 'orderid' => $orderid, 'detailid' => $matched['id'], 'amount' => $num, 'totalnum' => $matched['amount'], 'userid' => $_SESSION['userId'], 'islast' => $islast, 'orderTypeId' => $orderinfo['orderTypeId'], 'shiptype' => $ordertype);
     $dbresult = $sod_obj->recordDataToSystem($data);
     if (!$dbresult) {
         //插入数据失败
         self::$errCode = 0;
         self::$errMsg = '配货失败,请重试!';
         return FALSE;
     }
     if ($islast) {
         //最后一个配货完成
         // 			WhPushModel::pushOrderStatus($orderid,'STATESHIPPED_PENDREVIEW',$_SESSION['userId'],time());        //状态推送
         self::$errCode = 2;
         self::$errMsg = '配货成功!';
         return TRUE;
     } else {
         $skulist = $sod_obj->getSkuListInOneOrder($orderid);
         $sign = 0;
         $skulists = array();
         foreach ($skulist as $k => $v) {
             $sku = $v['sku'];
             $amount = $v['amount'];
             //配货数量
             $posId = $v['positionId'];
             //仓位ID
             $pName = $v['pName'];
             //仓位名称
             $storeId = $v['storeId'];
             //仓库ID,默认1:深圳赛维
             $skuInfo = getSkuInfoBySku($sku);
             //获取料号信息
             $skuId = $skuInfo['id'];
             //料号ID
             $stockQty = get_SkuStockQty($skuId, $posId, $storeId);
             //库存数量
             $skulists[$sign]['sku'] = $sku;
             $skulists[$sign]['amount'] = $amount;
             $skulists[$sign]['pName'] = $pName;
             $skulists[$sign]['positionId'] = $posId;
             $skulists[$sign]['stockqty'] = $stockQty;
             $sign++;
         }
         $skulist = $skulists;
         self::$errCode = 1;
         self::$errMsg = '配货成功!';
         self::$data = $skulist;
         return TRUE;
     }
 }
Example #6
0
 public function act_weighingSubmitFZ()
 {
     $weight = isset($_POST['num']) ? floatval($_POST['num']) : 0;
     if ($weight <= 0) {
         self::$errCode = 0;
         self::$errMsg = '请输入正确的重量!';
         return;
     }
     // $weight = $weight * 1000;
     $weight = round($weight);
     $packinguser = isset($_POST['userid']) ? intval($_POST['userid']) : 0;
     if ($packinguser <= 1) {
         self::$errCode = 0;
         self::$errMsg = '请输入配货人员!';
         return;
     }
     $orderid = isset($_POST['orderid']) ? intval($_POST['orderid']) : 0;
     if (empty($orderid)) {
         self::$errCode = 0;
         self::$errMsg = '请填写单号!';
         return;
     }
     $expressstr = isset($_POST['express']) ? trim($_POST['express']) : '';
     if (empty($expressstr)) {
         self::$errCode = 0;
         self::$errMsg = '请填写快递单号!';
         return;
     }
     $po_obj = new PackingOrderModel();
     $orderinfo = $po_obj->getOrderInfoById($orderid);
     if (empty($orderinfo)) {
         self::$errCode = 0;
         self::$errMsg = '单号不存在!';
         return;
     }
     if ($orderinfo['orderStatus'] != PKS_WWEIGHING_EX) {
         // 该订单不在国内称重状态
         self::$errCode = 0;
         self::$errMsg = '该发货单不在国内称重组!';
         return;
     }
     $data = array('weight' => $weight, 'userid' => $packinguser, 'orderid' => $orderid, 'status' => PKS_DONE, 'express' => $expressstr, 'storid' => 1);
     $result = $po_obj->recordWeightInfoFZ($data);
     if ($result) {
         //成功
         WhPushModel::pushOrderStatus($orderid, 'STATEHASSHIPPED', $_SESSION['userId'], time(), $weight);
         //状态推送
         self::$errCode = 1;
         self::$errMsg = 'OK';
         return;
     } else {
         self::$errCode = 0;
         self::$errMsg = '操作失败!';
         return;
     }
 }
Example #7
0
 public function act_recheckInfoSubmit()
 {
     $orderid = isset($_POST['orderid']) ? intval($_POST['orderid']) : 0;
     if (empty($orderid)) {
         self::$errCode = 0;
         self::$errMsg = '请输入发货单信息!';
         return;
     }
     $sku = isset($_POST['sku']) ? trim($_POST['sku']) : 0;
     $sku = get_goodsSn($sku);
     if (empty($sku)) {
         self::$errCode = 0;
         self::$errMsg = '请输入sku';
         return;
     }
     $num = isset($_POST['num']) ? intval($_POST['num']) : 0;
     if ($num < 1) {
         self::$errCode = 0;
         self::$errMsg = '请输入正确的数量';
         return;
     }
     $po_obj = new PackingOrderModel();
     $orderinfo = $po_obj->getOrderInfoById($orderid);
     if (empty($orderinfo)) {
         self::$errCode = 0;
         self::$errMsg = '订单不存在!';
         return;
     }
     if ($orderinfo['orderStatus'] != PKS_WIQC) {
         //该订单不在待复核状态
         self::$errCode = 0;
         self::$errMsg = '该发货单不在待复核组!';
         return;
     }
     $sod_obj = new ShipingOrderDetailModel();
     $skulist = $sod_obj->getSkuListByOrderId($orderid);
     if (count($skulist) == 0) {
         //没有料号
         self::$errCode = 0;
         self::$errMsg = '该订单下没有料号信息,请及时反馈!';
         return;
     }
     $rr_obj = new ReviewRecordsModel();
     $scan_rocords = $rr_obj->getRiewRecordsByOrderid($orderid);
     $scanskus = array();
     foreach ($scan_rocords as $sval) {
         if (array_key_exists($sval['shipOrderdetailId'], $skulist)) {
             $scanskus[] = $sval['sku'];
             unset($skulist[$sval['shipOrderdetailId']]);
         }
     }
     if (in_array($sku, $scanskus)) {
         self::$errCode = 0;
         self::$errMsg = $sku . '已复核过了';
         return;
     }
     $isfound = FALSE;
     $numcorrect = true;
     foreach ($skulist as $skuval) {
         if ($skuval['sku'] == $sku) {
             $isfound = $skuval;
             if ($skuval['amount'] != $num) {
                 $numcorrect = false;
             }
             break;
         }
     }
     if ($isfound === FALSE) {
         //没找到对应的料号信息
         self::$errCode = 0;
         self::$errMsg = '料号[' . $sku . ']不存在';
         return;
     }
     if ($numcorrect == false) {
         self::$errCode = 0;
         self::$errMsg = '复核数量与分拣数不符';
         return;
     }
     $data = array();
     $data['orderid'] = $orderid;
     //单号
     $data['detailid'] = $isfound['id'];
     //detailid号
     $data['sku'] = $sku;
     //sku
     $data['amount'] = $num;
     //复核数量
     $data['totalNums'] = $isfound['amount'];
     //料号原始总数
     $data['userid'] = $_SESSION['userId'];
     //复核扫描用户id
     $data['storeId'] = 1;
     //仓库id
     $islast = 0;
     if (count($skulist) == 1) {
         //当前为最后一个复核sku
         $data['islast'] = TRUE;
         $islast = 1;
     } else {
         $data['islast'] = FALSE;
     }
     $result = $rr_obj->recordReviewInfo($data);
     if ($result == FALSE) {
         self::$errCode = 0;
         self::$errMsg = '复核失败,复核记录插入失败';
         return;
     } else {
         self::$errMsg = '成功!';
         if ($islast) {
             //最后一个复核
             WhPushModel::pushOrderStatus($orderid, 'PKS_WWEIGHING', $_SESSION['userId'], time());
             //状态推送
             //更新状态为待包装称重
             $data = array('orderStatus' => PKS_WWEIGHING);
             WhShippingOrderModel::update($data, "id='" . $orderinfo['shipOrderId'] . "'");
             self::$errCode = 2;
             return;
         } else {
             self::$errCode = 1;
             unset($skulist[$isfound['id']]);
             return $skulist;
         }
     }
 }