コード例 #1
0
 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;
 }
コード例 #2
0
ファイル: boxManage.model.php プロジェクト: ohjack/newErp
 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;
     }
 }
コード例 #3
0
 /**
  * 发货扫描显示箱子装的料号信息
  * 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;
 }
コード例 #4
0
ファイル: owBoxManage.view.php プロジェクト: ohjack/newErp
 /**
  * 导出料号与箱号关联报表
  */
 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');
 }
コード例 #5
0
 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';
 }
コード例 #6
0
ファイル: owInBoxStock.model.php プロジェクト: ohjack/newErp
 /**
  * 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';
         }
     }
 }
コード例 #7
0
 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');
 }