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_showOrderList()
 {
     $pageSize = 50;
     //一页显示多少个备货单
     $where = '';
     //where条件语句
     $status = isset($_GET['status']) ? trim($_GET['status']) : NULL;
     //备货单状态
     if (!empty($status) && $status !== 'NULL') {
         $where .= " AND a.status='{$status}' ";
     }
     $orderSn = isset($_GET['ordersn']) ? trim($_GET['ordersn']) : NULL;
     //备货单号
     $orderSn = mysql_real_escape_string($orderSn);
     if (!empty($orderSn)) {
         $where .= " AND  a.ordersn='{$orderSn}' ";
     }
     $sku = isset($_GET['sku']) ? trim($_GET['sku']) : NULL;
     //料号
     $sku = mysql_real_escape_string($sku);
     if (!empty($sku)) {
         $where .= " AND b.sku = '{$sku}' ";
     }
     $con = '';
     $skustatus = isset($_GET['skustatus']) ? trim($_GET['skustatus']) : NULL;
     //料号
     if (!empty($skustatus)) {
         if ($skustatus == 1) {
             $con .= " AND scantime = 0 ";
             $where .= " AND a.status NOT IN(3,4) ";
         } else {
             if ($skustatus == 2) {
                 $con .= " AND scantime != 0 ";
             }
         }
     }
     $startTime = isset($_GET['startTime']) ? trim($_GET['startTime']) : NULL;
     //开始时间
     if (!empty($startTime)) {
         $startTimeStamp = strtotime($startTime);
         $where .= " and a.createtime>{$startTimeStamp} ";
     }
     $endTime = isset($_GET['endTime']) ? trim($_GET['endTime']) : NULL;
     //结束时间
     if (!empty($endTime)) {
         $endTimeStamp = strtotime($endTime);
         $where .= " and a.createtime<{$endTimeStamp} ";
     }
     $preGoodObj = new PreGoodsOrdderManageModel();
     $count = $preGoodObj->getBackOrderInfoCount($where);
     //culOrderCount($where);
     if (FALSE === $count) {
         //计算数量出错
         header('location:index.php?mod=owGoodsReplenishManage&act=showOrderList');
         exit;
     }
     $pageObj = new Page($count, $pageSize);
     $orderInfoList = $preGoodObj->getBackOrderInfo($where . $pageObj->limit);
     //getOrderListInfo($where.$pageObj->limit);
     foreach ($orderInfoList as &$order) {
         $order['createTimeStr'] = empty($order['createtime']) ? '' : date('Y-m-d H:i:s', $order['createtime']);
         $order['synctimeStr'] = empty($order['synctime']) ? '' : date('Y-m-d H:i:s', $order['synctime']);
         $order['statusStr'] = PreGoodsOrdderManageModel::statusCodeToStr($order['status']);
         $skuDetail = $preGoodObj->getSKUDetail($order['id'], $con);
         $order['ownerName'] = getUserNameById($order['owner']);
         foreach ($skuDetail as &$row) {
             $row['scantime'] = empty($row['scantime']) ? '未配货' : date('Y-m-d H:i:s', $row['scantime']);
             $row['userName'] = empty($row['scanuser']) ? '' : getUserNameById($row['scanuser']);
         }
         $order['skulist'] = $skuDetail;
     }
     if ($count > $pageSize) {
         $pagestr = $pageObj->fpage(array(0, 2, 3, 4, 5, 6, 7, 8, 9));
     } else {
         $pagestr = $pageObj->fpage(array(0, 2, 3));
     }
     $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('secondlevel', $secondlevel);
     $this->smarty->assign('orderSn', $orderSn);
     $this->smarty->assign('status', $status);
     $this->smarty->assign('sku', $sku);
     $this->smarty->assign('skustatus', $skustatus);
     $this->smarty->assign('third', 1);
     $this->smarty->assign('pagestr', $pagestr);
     $this->smarty->assign('orderList', $orderInfoList);
     $this->smarty->display('pregoodsorderlist.htm');
 }