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