public function act_changeStatus()
 {
     $retrunData = array('code' => 0, 'msg' => '');
     $orderId = isset($_GET['orderId']) ? intval($_GET['orderId']) : NULL;
     $status = isset($_GET['status']) ? intval($_GET['status']) : NULL;
     if (empty($orderId) || empty($status)) {
         $retrunData['msg'] = '缺少参数!';
         return $retrunData;
     }
     if (!PreGoodsOrdderManageModel::validateStatusCode($status)) {
         //不合法的订单状态
         $retrunData['msg'] = '不合法的订单状态!';
         return $retrunData;
     }
     $preGood_OBJ = new PreGoodsOrdderManageModel();
     $orderInfo = $preGood_OBJ->getOrderInfroByid($orderId);
     if (FALSE === $orderInfo) {
         $retrunData['msg'] = '备货单不存在!';
         return $retrunData;
     }
     $chageResult = $preGood_OBJ->changeOrderStatus($orderId, $status, $_SESSION['userId']);
     if (true === $chageResult) {
         //更新成功
         $retrunData['code'] = 1;
         return $retrunData;
     } else {
         $retrunData['msg'] = '更新状态失败!';
         return $retrunData;
     }
 }
 public function act_modifyPreGoodsSku()
 {
     $returnData = array('code' => 'fial', 'msg' => '', 'num' => 0);
     $orderSn = isset($_GET['ordersn']) ? trim($_GET['ordersn']) : '';
     //备货单号
     $sku = isset($_GET['sku']) ? trim($_GET['sku']) : '';
     //sku
     $amount = isset($_GET['amount']) ? trim($_GET['amount']) : '';
     //修改数据
     $operator = isset($_GET['operator']) ? intval($_GET['operator']) : '';
     //修改人Id
     //         print_r($_GET);exit;
     if (empty($orderSn) || empty($sku) || empty($operator)) {
         $returnData['code'] = 'fail';
         $returnData['msg'] = '缺少参数';
         return $returnData;
     }
     $preGoods_obj = new PreGoodsOrdderManageModel();
     $orderInfo = $preGoods_obj->getOrderInfo($orderSn);
     if (FALSE === $orderInfo) {
         $returnData['code'] = 'fail';
         $returnData['msg'] = '不存在的备货单号!';
         return $returnData;
     }
     $skuInfo = $preGoods_obj->getSKUinfo($orderInfo['id'], $sku);
     if (FALSE === $skuInfo) {
         $returnData['code'] = 'fail';
         $returnData['msg'] = 'sku不存在!';
         return $returnData;
     }
     if (intval($skuInfo['scantnum']) > $amount) {
         //如果修改的数量小于已经配货的数量 则报错
         $returnData['code'] = 'fail';
         $returnData['msg'] = '已配货数量大于修改数量!';
         return $returnData;
     }
     $reuslt = $preGoods_obj->updateSkuAmount($orderInfo['id'], $sku, $amount, $orderSn, $operator);
     if (FALSE === $reuslt) {
         $returnData['code'] = 'fail';
         $returnData['msg'] = PreGoodsOrdderManageModel::$errMsg;
         return $returnData;
     } else {
         $preGoods_obj->updPreOrderStatus($orderSn);
         //修改数量后验证备货单号是否已配货完成
         $returnData['code'] = 'success';
         $returnData['msg'] = '';
         $returnData['num'] = $amount;
         return $returnData;
     }
 }
 public function view_prePlenOrderApply()
 {
     $returnData = array('code' => 0, 'msg' => '');
     if (empty($_SESSION['userId'])) {
         $returnData['msg'] = '登陆过期,请重新登陆!';
         echo json_encode($returnData);
         exit;
     }
     $pre_obj = new PreGoodsOrdderManageModel();
     $result = $pre_obj->createNewPreOrder($_SESSION['userId']);
     if (FALSE === $result) {
         $returnData['msg'] = '生成失败,可能已存在此单号';
         echo json_encode($returnData);
         exit;
     } else {
         $returnData['code'] = 1;
         echo json_encode($returnData);
         exit;
     }
 }
 public function changeOrderStatus($orderId, $status, $opUser)
 {
     $orderInf = $this->getOrderInfroByid($orderId);
     if (FALSE === $orderInf) {
         self::$errMsg = '不存在订单信息!';
         return FALSE;
     }
     $originStatus = $orderInf['status'];
     $optime = time();
     $updataSql = "update wh_prepGoodsOrder set status='{$status}' where id='{$orderId}'";
     $logSql = "\n                insert into wh_preGoodsStatusChLog (orderId, originalStatus, changedStatus, opuser, optime) values (\n                '{$orderId}', '{$originStatus}', '{$status}', '{$opUser}', '{$optime}'\n                )\n                ";
     $this->dbConn->begin();
     $changeQuery = $this->dbConn->query($updataSql);
     //更新状态
     if (FALSE === $changeQuery) {
         $this->dbConn->rollback();
         self::$errMsg = '更新状态出错!';
         return FALSE;
     }
     $logQuery = $this->dbConn->query($logSql);
     //记录操作日志
     if (FALSE === $logQuery) {
         $this->dbConn->rollback();
         self::$errMsg = '记录日志失败!';
         return FALSE;
     }
     $this->dbConn->commit();
     return TRUE;
 }
 public function view_recheckSubmit()
 {
     $returnData = array('code' => 0, 'msg' => '');
     if (empty($_SESSION['userId'])) {
         //未登陆
         $returnData['msg'] = '登陆超时 请重新登陆!';
         echo json_encode($returnData);
         exit;
     }
     $orderSn = isset($_GET['orderSn']) ? trim($_GET['orderSn']) : NULL;
     //备货单号
     $sku = isset($_GET['sku']) ? trim($_GET['sku']) : NULL;
     //sku
     $num = isset($_GET['num']) ? intval($_GET['num']) : NULL;
     //数量
     if (empty($orderSn) || empty($sku) || empty($num)) {
         $returnData['msg'] = '参数不完整!';
         echo json_encode($returnData);
         exit;
     }
     $sku = get_goodsSn($sku);
     $preGoods_Obj = new PreGoodsOrdderManageModel();
     $orderInfo = $preGoods_Obj->getOrderInfo($orderSn);
     if (FALSE === $orderInfo) {
         $returnData['code'] = '备货单不存在';
         $returnData['sku'] = $sku;
         echo json_encode($returnData);
         exit;
     }
     /*
             if ($orderInfo['status'] != 3) {
                 $returnData['msg']     = '该备货待不是复核货配货单!';
                 $returnData['sku']     = $sku;
                 echo json_encode($returnData);
                 exit;
             }*/
     $skuInfo = $preGoods_Obj->getSKUinfo($orderInfo['id'], $sku);
     if (FALSE === $skuInfo) {
         $returnData['msg'] = 'sku不存在!';
         $returnData['sku'] = $sku;
         echo json_encode($returnData);
         exit;
     }
     if ($skuInfo['scantnum'] != $num) {
         //如果订单数量和扫描数量一致 则表示该料号已经扫描完成
         $returnData['msg'] = 'sku数量不匹配!';
         $returnData['sku'] = $sku;
         echo json_encode($returnData);
         exit;
     }
     $isend = FALSE;
     $orecheck = new OwOutReviewModel();
     $result = $orecheck->addNewRecheckRecord($orderSn, $orderInfo['id'], $sku, $num, $_SESSION['userId'], $isend);
     if (FALSE === $result) {
         $returnData['msg'] = OwPreGoodsOutStockModel::$errmsg;
         $returnData['sku'] = $sku;
         echo json_encode($returnData);
         exit;
     } else {
         $returnData['msg'] = '更新成功!';
         $returnData['code'] = $isend ? 2 : 1;
         $returnData['sku'] = $sku;
         echo json_encode($returnData);
         exit;
     }
 }
 public function view_printOrder()
 {
     @session_start();
     $orderId = isset($_GET['orderId']) ? trim($_GET['orderId']) : NULL;
     if (empty($orderId)) {
         goErrMsgPage(array('data' => array('缺少参数!'), 'link' => 'index.php?mod=owGoodsReplenishManage&act=showOrderList'));
         exit;
     }
     $preObj = new PreGoodsOrdderManageModel();
     $idar = explode(",", $orderId);
     $idar = array_map('intval', $idar);
     $finalAr = array();
     foreach ($idar as $id) {
         $newData = array();
         $orderInf = $preObj->getOrderInfroByid($id);
         if (FALSE == $orderInf) {
             continue;
         }
         //如果备货单状态为待处理更状态为待配货状态
         if ($orderInf['status'] == 1) {
             $preObj->changeOrderStatus($id, 2, $_SESSION['userId']);
         }
         $tempAr = array('orderInf' => $orderInf);
         $deatil = $preObj->getSKUDetailByStatus($id);
         $skuArr = '';
         foreach ($deatil as $k => $v) {
             $sku = $v['sku'];
             $skuArr .= "'" . $sku . "',";
         }
         $skuArr = substr($skuArr, 0, strlen($skuArr) - 1);
         $paramArr['method'] = 'wh.OverSeaGetSkuStock';
         //API名称
         $paramArr['sku'] = $skuArr;
         $rtnInfo = UserCacheModel::callOpenSystem2($paramArr);
         $code = $rtnInfo['errCode'];
         $data = array();
         $printArr = array();
         $skuStock = array();
         if ($code == 200) {
             $data = $rtnInfo['data'];
             foreach ($data as $m => $n) {
                 $sku = $n['sku'];
                 $qty = $n['qty'];
                 //B仓库存
                 if ($qty > 0) {
                     if (!in_array($sku, $printArr)) {
                         $printArr[] = $sku;
                         $skuStock[$sku] = $qty;
                     }
                 }
             }
         }
         $detail = array();
         $num = 0;
         foreach ($deatil as $kk => $vv) {
             $sku = $vv['sku'];
             if (in_array($sku, $printArr)) {
                 $detail[$num]['id'] = $vv['id'];
                 $detail[$num]['sku'] = $vv['sku'];
                 $detail[$num]['amount'] = $vv['amount'];
                 $detail[$num]['qtyB'] = $skuStock[$sku];
                 $num++;
             }
         }
         $tempAr['skulist'] = $detail;
         $finalAr[] = $tempAr;
     }
     include WEB_PATH . 'html/template/v1/pregoodsprint.htm';
 }
 public function outStock($sku, $num, $opuser, $orderid, &$isEnd, $waitScan, $orderSn)
 {
     $isLastOne = true;
     //是否为最后一个待配货sku
     $preGoods_Obj = new PreGoodsOrdderManageModel();
     $allSkuInfo = $preGoods_Obj->getSKUDetail($orderid);
     //订单的全部sku列表
     foreach ($allSkuInfo as $row) {
         //判断该料号配完以后是否可以终结该备货单
         if ($row['amount'] != $row['scantnum'] && $row['sku'] != $sku) {
             $isLastOne = FALSE;
         }
     }
     if ($waitScan != $num) {
         $isLastOne = FALSE;
     }
     $isEnd = $isLastOne;
     //$this->logRequest(" sku==> $sku 数量==> $num");                           //记录请求日志
     $paramArr['method'] = 'ow_pregood_changestock';
     //API名称
     $paramArr['sku'] = $sku;
     $paramArr['num'] = $num;
     $paramArr['orderSn'] = $orderSn;
     $paramArr['operUser'] = getUserNameById($opuser);
     $messageInfo = UserCacheModel::callOpenSystem2($paramArr);
     //先到老系统扣库存
     if (FALSE === $messageInfo) {
         //请求开发系统出错
         self::$errmsg = '请求开放系统出错!';
         return FALSE;
     }
     $code = isset($messageInfo['code']) ? trim($messageInfo['code']) : '';
     if ($code !== 'success') {
         //扣库存失败
         self::$errmsg = $messageInfo['msg'];
         return FALSE;
     }
     $sku = mysql_real_escape_string($sku);
     $this->dbConn->begin();
     $rcordInfo = $this->getSkuInboxRecords($sku);
     if (FALSE === $rcordInfo) {
         //还没有封箱库存记录 则新增一条记录
         $insertResult = $this->insertNewInboxRecords($sku, $num);
         if (FALSE === $insertResult) {
             //插入失败 回滚
             $this->dbConn->rollback();
             self::$errmsg = "新增封箱库存记录失败!";
             return FALSE;
         }
     } else {
         //追加库存
         $updateSql = "update wh_inboxStock set num=num+{$num} where sku='{$sku}'";
         $updateQuery = $this->dbConn->query($updateSql);
         if (FALSE === $updateQuery) {
             //更新封箱库存失败 回滚
             $this->dbConn->rollback();
             self::$errmsg = "更新封箱库存失败!";
             return FALSE;
         }
     }
     $time = time();
     $updateOrder = "\n                update wh_prepDetail set scantnum=scantnum+{$num}, scantime={$time}, scanuser='******' where \n                sku='{$sku}' and orderid='{$orderid}'\n            ";
     $upOrderQuery = $this->dbConn->query($updateOrder);
     //更新备货单的扫描数量
     if (FALSE === $upOrderQuery) {
         $this->dbConn->rollback();
         self::$errmsg = '更新备货单数据失败!';
         return FALSE;
     }
     if (TRUE === $isLastOne) {
         //配货完成 修改备货单状态
         $upStatusSql = "update wh_prepGoodsOrder set status=3 where id='{$orderid}'";
         $upStatusQuery = $this->dbConn->query($upStatusSql);
         if (FALSE === $upStatusQuery) {
             $this->dbConn->rollback();
             self::$errmsg = '更新备货单状态失败!';
             return FALSE;
         }
     }
     $originNum = isset($rcordInfo['num']) ? $rcordInfo['num'] : 0;
     $logSql = "insert into wh_skuscanLog (orderId, sku, scanNum, originNum, opuser, scanTime) values\n                    ({$orderid}, '{$sku}', '{$num}', '{$originNum}', '{$opuser}', '{$time}')\n                ";
     $logResult = $this->dbConn->query($logSql);
     //记录操作日志
     if (FALSE === $logResult) {
         //写日志失败 回滚
         $this->dbConn->rollback();
         self::$errmsg = '写入操作日志失败!';
         return FALSE;
     }
     $this->dbConn->commit();
     return TRUE;
 }
 public function view_editOrder()
 {
     $orderId = isset($_GET['orderId']) ? intval($_GET['orderId']) : FALSE;
     if (empty($orderId)) {
         goErrMsgPage(array('data' => array('缺少参数!'), 'link' => 'index.php?mod=owGoodsReplenishManage&act=showOrderList'));
         exit;
     }
     $preGoods = new PreGoodsOrdderManageModel();
     $orderInfo = $preGoods->getOrderInfroByid($orderId);
     if (empty($orderInfo)) {
         goErrMsgPage(array('data' => array('不存在的订单!'), 'link' => 'index.php?mod=owGoodsReplenishManage&act=showOrderList'));
         exit;
     }
     $navlist = array(array('url' => '', 'title' => '海外仓备货'), array('url' => '', 'title' => '编辑备货单'));
     $toplevel = 2;
     //顶层菜单
     $this->smarty->assign('toplevel', $toplevel);
     $secondlevel = '214';
     //当前的二级菜单
     $this->smarty->assign('navlist', $navlist);
     $this->smarty->assign('orderInfo', $orderInfo);
     $this->smarty->assign('secondlevel', $secondlevel);
     $this->smarty->display('editpregoodsorder.htm');
 }