public function addBoxToaOrder($boxId, $orderid, $opuser) { $time = time(); $box_obj = new BoxManageModel(); $inBox_obj = new OwInBoxStockModel(); $skuDetail = $box_obj->getBoxSkuDetail($boxId); $this->dbConn->begin(); foreach ($skuDetail as $skuInfo) { $tmp = $skuInfo['num']; $inboxInfo = $inBox_obj->getInbocStockInfo($skuInfo['sku']); if (FALSE === $inboxInfo) { //该料号没有封箱库存信息 $this->dbConn->rollback(); self::$errMsg = $skuInfo['sku'] . "没有封箱库存信息!"; return FALSE; } if ($inboxInfo['num'] < $skuInfo['num']) { //如果封箱库存小于箱子中的库存数量 则会导致封箱库存不够扣 $this->dbConn->rollback(); self::$errMsg = $skuInfo['sku'] . "封箱库存小于发货数量!"; return FALSE; } $upsql = "update wh_inboxStock set num=num-{$tmp} where sku='{$skuInfo['sku']}'"; //扣除封箱库存 $upquery = $this->dbConn->query($upsql); if (FALSE === $upquery) { $this->dbConn->rollback(); self::$errMsg = $skuInfo['sku'] . "扣除封箱库存失败!"; return FALSE; } } $sql = "\n update wh_boxinuse set replenshId='{$orderid}', sendScanTime='{$time}', \n sendScanUser='******', status='3' where boxid='{$boxId}'\n "; $query = $this->dbConn->query($sql); if (FALSE === $query) { //更新状态失败 $this->dbConn->rollback(); self::$errMsg = '更新箱子状态失败!'; return FALSE; } $logSql = "\n insert into wh_boxOpLog (boxId, opcode, opuser, optime) values ('{$boxId}', 'send', '{$opuser}', '{$time}');\n "; $logquery = $this->dbConn->query($logSql); if (FALSE === $logquery) { //记录日志出错 $this->dbConn->rollback(); self::$errMsg = '记录日志出错!'; return FALSE; } $upd = "UPDATE wh_boxDetail SET stu = '2' WHERE boxId = '{$boxId}' AND is_delete = 0"; $rtnUpd = $this->dbConn->query($upd); if ($rtnUpd === FALSE) { $this->dbConn->rollback(); self::$errMsg = '更新装箱料号状态出错'; return FALSE; } $this->dbConn->commit(); return TRUE; }
public function checkIfAnIdCanUse($boxNum) { $sql_apply = "select * from wh_boxApply where boxnum='{$boxNum}'"; $app_row = $this->dbConn->fetch_first($sql_apply); if (FALSE === $app_row) { self::$errMsg = '不存在的箱号!'; return FALSE; } $sql_used = "select * from wh_boxinuse where boxid='{$boxNum}'"; $used_row = $this->dbConn->fetch_first($sql_used); if (FALSE === $used_row) { //未被使用 验证通过 return TRUE; } else { self::$errMsg = "箱号已被使用!"; return FALSE; } }
/** * 发货扫描显示箱子装的料号信息 * Enter description here ... */ public function view_chkBox() { $returnData = array('code' => 0, 'msg' => ''); if (empty($_SESSION['userId'])) { //未登陆 $returnData['msg'] = '登陆超时 请重新登陆!'; echo json_encode($returnData); exit; } $orderId = isset($_GET['orderId']) ? trim($_GET['orderId']) : ''; //补货单号 $boxid = isset($_GET['boxId']) ? intval($_GET['boxId']) : ''; //箱号 if (empty($orderId) || empty($boxid)) { $returnData['msg'] = '缺少参数!'; echo json_encode($returnData); exit; } $boxmg_obj = new BoxManageModel(); $boxInfo = $boxmg_obj->getBaseBoxInfo($boxid); if (false === $boxInfo) { $returnData['msg'] = '不存在的箱号!'; echo json_encode($returnData); exit; } $prePlen_obj = new PreplenshOrderModel(); $orderinfo = $prePlen_obj->getPrePlenshOrderInfo($orderId); if (FALSE === $orderinfo) { $returnData['msg'] = '不存在的补货单号!'; echo json_encode($returnData); exit; } if ($orderinfo['status'] != 1) { $returnData['msg'] = '已发货的补货单号!'; echo json_encode($returnData); exit; } if ($boxInfo['status'] != 2) { $returnData['msg'] = '该箱子不是待发柜箱!'; echo json_encode($returnData); exit; } if (empty($boxInfo['length']) || empty($boxInfo['width']) || empty($boxInfo['high']) || empty($boxInfo['grossWeight']) || empty($boxInfo['netWeight'])) { $returnData['msg'] = '箱号信息不完整!'; echo json_encode($returnData); exit; } $boxObj = new BoxManageModel(); $rtnInfo = $boxObj->getBoxSkuInfo($boxid); $returnData['code'] = 1; $returnData['info'] = $rtnInfo; echo json_encode($returnData); exit; }
/** * 导出料号与箱号关联报表 */ public function view_exportBoxInfo() { require_once WEB_PATH . 'lib/PHPExcel.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")->setTitle("Office 2007 XLSX Test Document")->setSubject("Office 2007 XLSX Test Document")->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")->setKeywords("office 2007 openxml php")->setCategory("Test result file"); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', '备货单号Shipment ID'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B1', '箱号CTN NO.'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C1', '料号SKU'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D1', '每箱个数'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('E1', '优先上架Priority for Putaway'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('F1', '纸箱长度L(cm)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('G1', '纸箱宽度W(cm)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('H1', '纸箱高度H(cm)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('I1', '体积CBM'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('J1', '每箱净重N.W(kg)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('K1', '每箱毛重G.W(kg)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('L1', '中文描述Goods Desc(CN)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('M1', '英文描述 Goods Desc'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('N1', '材质Material'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('O1', '单价U/P(RMB)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('P1', '总价TTL(RMB)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('Q1', '单价U/P(USD)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('R1', '总价TTL(USD)'); $serOrderSn = isset($_GET['orderSn']) ? $_GET['orderSn'] : ''; $serStatus = isset($_GET['status']) ? $_GET['status'] : ''; $serSku = isset($_GET['sku']) ? $_GET['sku'] : ''; $serStartTime = isset($_GET['startTime']) ? $_GET['startTime'] : ''; $serEndTime = isset($_GET['endTime']) ? $_GET['endTime'] : ''; $condition = ''; if (!empty($serOrderSn)) { $condition .= " AND a.replenshId = '{$serOrderSn}'"; } if (!empty($serSku)) { $condition .= " AND b.sku = '{$serSku}'"; } if (!empty($serStatus)) { $condition .= " AND a.status = '{$serStatus}'"; } if (!empty($serStartTime) && $serEndTime >= $serStartTime) { $serstart = strpos($serStartTime, ':') !== false ? strtotime($serStartTime) : strtotime($serStartTime . " 00:00:00"); $serend = strpos($serEndTime, ':') !== false ? strtotime($serEndTime) : strtotime($serEndTime . " 23:59:59"); $condition .= " AND a.addtime BETWEEN '{$serstart}' AND '{$serend}'"; } $boxModel = new BoxManageModel(); $rtnData = $boxModel->getListBoxInfo($condition); if (!empty($rtnData)) { $row = 2; foreach ($rtnData as $k => $v) { $orderSn = $v['replenshId']; $boxId = $v['boxid']; $length = $v['length']; $width = $v['width']; $high = $v['high']; $volume = round($v['volume'] / 1000000, 3); $grossWeight = $v['grossWeight']; $netWeight = $v['netWeight']; $addtime = date('Y-m-d', $v['addtime']); $status = $v['status']; $userName = getUserNameById($v['adduser']); $sku = $v['sku']; $num = $v['num']; $skuBase = $boxModel->getSkuBaseInfo($sku); $skuName = $skuBase['goodsName']; $skuPrice = $skuBase['goodsCost']; $totalRmb = $skuPrice * $num; switch ($status) { case '1': $stu = '已配货'; break; case '2': $stu = '已复核'; break; case '3': $stu = '已装柜'; break; case '4': $stu = '海外已收货'; break; default: $stu = ''; break; } $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . $row, $orderSn); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B' . $row, $boxId); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . $row, $sku); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D' . $row, $num); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('E' . $row, ''); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('F' . $row, $length); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('G' . $row, $width); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('H' . $row, $high); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('I' . $row, $volume); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('J' . $row, $netWeight); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('K' . $row, $grossWeight); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('L' . $row, $skuName); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('M' . $row, ''); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('O' . $row, $skuPrice); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('P' . $row, $totalRmb); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('Q' . $row, ''); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('R' . $row, ''); $row++; } } $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('H')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('I')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('J')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('K')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('L')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('M')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('N')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('O')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('P')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('Q')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('R')->setWidth(20); $title = "装柜清单" . date('Y-m-d'); $titlename = $title . ".xls"; $objPHPExcel->getActiveSheet()->setTitle($title); $objPHPExcel->setActiveSheetIndex(0); header('Content-Type: application/vnd.ms-excel'); header("Content-Disposition: attachment;filename={$titlename}"); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); }
public function view_printBoxPageLabel() { $orderId = isset($_GET['orderId']) ? trim($_GET['orderId']) : NULL; if (empty($orderId)) { goErrMsgPage(array('data' => array('缺少参数!'), 'link' => 'index.php?mod=OwBoxManage&act=boxManage')); exit; } $boxObj = new BoxManageModel(); $listData = $boxObj->getBoxData($orderId); //获取传递过来的箱号信息 $listDetail = array(); $idar = explode(",", $orderId); $idar = array_map('intval', $idar); foreach ($idar as $id) { $listDetail[$id] = $boxObj->getBoxSkuDetail($id); } $total = count($listData); include WEB_PATH . 'html/template/v1/printBoxPageLabel.htm'; }
/** * pda退箱扫描验证 * add time:2014-05-16 * add name:wangminwei * note:整箱退货,箱子状态需为已装柜,部分退货状态限制在已配货、已复核、已装柜状态;状态 1:已配货 2:已复核 3:已装柜 4:海外已收货 */ public function pdaCheckReturnBox($boxId, $sku, $num, $ismark) { $boxManage = new BoxManageModel(); $this->dbConn->begin(); if ($ismark == 'all') { //整箱 $sql = "SELECT status FROM wh_boxinuse WHERE boxid = '{$boxId}'"; $result = $this->dbConn->fetch_first($sql); if (!empty($result)) { $status = $result['status']; if ($status != 3) { return 'noPass'; } else { $updLink = "UPDATE wh_boxinuse SET replenshId = '', sendScanTime = 0, sendScanUser = 0, status='2' WHERE boxid = '{$boxId}'"; $rtnUpdLink = $this->dbConn->query($updLink); //去除补货清单关联 if ($rtnUpdLink === false) { echo '1'; $this->dbConn->rollback(); return 'failure'; } $skuInfo = $boxManage->getBoxSkuDetail($boxId); $skuArr = $skuInfo[0]['sku']; $stock = $skuInfo[0]['num']; $updBoxStock = "UPDATE wh_inboxStock SET num = num + {$stock} WHERE sku = '{$skuArr}'"; $rtnUpdBoxStock = $this->dbConn->query($updBoxStock); //添加封箱库存数量 if ($rtnUpdBoxStock === false) { echo '2'; $this->dbConn->rollback(); return 'failure'; } $time = time(); $logSql = "INSERT INTO wh_boxOpLog(boxId, opcode, opuser, optime) VALUES ('{$boxId}', 'return', '{$_SESSION['userId']}', '{$time}')"; $logQuery = $this->dbConn->query($logSql); //添加退箱记录 if ($logQuery === false) { echo '3'; $this->dbConn->rollback(); return 'failure'; } $this->dbConn->commit(); return 'success'; } } else { return 'Null'; } } if ($ismark == 'part') { //部份 $sql = "SELECT b.num FROM wh_boxinuse AS a JOIN wh_boxDetail AS b ON a.boxid = b.boxId WHERE a.boxid = '{$boxId}' AND b.sku = '{$sku}'"; $result = $this->dbConn->fetch_first($sql); if (!empty($result)) { $qty = $result['num']; if ($num > $qty) { return 'moreQty'; } else { if ($num == $qty) { return 'sameQty'; } else { $updBoxQty = "UPDATE wh_boxDetail SET num = num - {$num} WHERE boxId = '{$boxId}' AND sku = '{$sku}'"; $rtnUpdBoxQty = $this->dbConn->query($updBoxQty); //扣除装箱数量 if ($rtnUpdBoxQty === false) { $this->dbConn->rollback(); return 'failure'; } $time = time(); $logSql = "INSERT INTO wh_boxReturnPartSku (boxId, sku, num, user, time) VALUES ('{$boxId}', '{$sku}', '{$num}', '{$_SESSION['userId']}', '{$time}')"; $logQuery = $this->dbConn->query($logSql); //添加箱子部份退货记录 if ($logQuery === false) { $this->dbConn->rollback(); return 'failure'; } $sql = "SELECT status FROM wh_boxinuse WHERE boxid = '{$boxId}'"; $result = $this->dbConn->fetch_first($sql); $status = $result['status']; if ($status == '3') { //箱子在已发柜状态 $updBoxStock = "UPDATE wh_inboxStock SET num = num + {$num} WHERE sku = '{$sku}'"; $rtnUpdBoxStock = $this->dbConn->query($updBoxStock); //扣除封箱库存数量 if ($rtnUpdBoxStock === false) { $this->dbConn->rollback(); return 'failure'; } } $this->dbConn->commit(); return 'success'; } } } else { return 'Null'; } } }
public function view_showPreOrderDetail() { $orderId = isset($_GET['orderid']) ? $_GET['orderid'] : ''; $order_obj = new PreplenshOrderModel(); $orderInf = $order_obj->getPrePlenshOrderInfo($orderId); if (FALSE === $orderInf) { goErrMsgPage(array('data' => array('不存在的补货单'), 'link' => 'index.php?mod=owGoodsReplenishManage&act=preOrderList')); exit; } $box_obj = new BoxManageModel(); $pageSize = 100; $count = $box_obj->culBoxList($orderId); $pageObj = new Page($count, $pageSize); $navlist = array(array('url' => '', 'title' => '海外仓补货'), array('url' => '', 'title' => '补货单详情')); if ($count > $pageSize) { $pagestr = $pageObj->fpage(array(0, 2, 3, 4, 5, 6, 7, 8, 9)); } else { $pagestr = $pageObj->fpage(array(0, 2, 3)); } $detailList = $box_obj->getListBoxInfo(" and replenshId='{$orderId}' " . $pageObj->limit); foreach ($detailList as &$box) { $box['timestr'] = date('Y-m-d H:i:s', $box['addtime']); $box['statusstr'] = BoxManageModel::status2Name($box['status']); $box['userName'] = empty($box['sendScanUser']) ? '' : getUserNameById($box['sendScanUser']); } $toplevel = 2; //顶层菜单 $this->smarty->assign('toplevel', $toplevel); $secondlevel = '214'; //当前的二级菜单 $this->smarty->assign('pagestr', $pagestr); $this->smarty->assign('detailList', $detailList); $this->smarty->assign('navlist', $navlist); $this->smarty->assign('secondlevel', $secondlevel); $this->smarty->assign('third', 4); $this->smarty->display('PreOrderDetail.htm'); }