Esempio n. 1
0
 function act_getGroupInfo()
 {
     $userId = $_SESSION['userId'];
     $shipOrderGroup = $_POST['order_group'];
     $group_sql = WhGoodsAssignModel::getOrderGroup("*", array('assignNumber' => $shipOrderGroup));
     //var_dump($group_sql);exit;
     if (empty($group_sql)) {
         self::$errCode = "001";
         self::$errMsg = "该调拨单号不存在,请重新输入!";
         return false;
     }
     if ($group_sql[0]['status'] != 106) {
         self::$errCode = "002";
         self::$errMsg = "调拨单只有在接收复核后才可完结!";
         return false;
     }
     $orderIds = WhGoodsAssignModel::getAssignOrderIds($group_sql[0]['id']);
     if (!$orderIds) {
         self::$errCode = "003";
         self::$errMsg = "该调拨单下没有关联的B仓订单!";
         return false;
     }
     $ids = array();
     foreach ($orderIds as $id) {
         $ids[] = $id['orderId'];
     }
     TransactionBaseModel::begin();
     //更新调拨单状态
     $info = WhGoodsAssignModel::updateAssignListStatus(array('id' => $group_sql[0]['id']), array('status' => 107));
     if (!$info) {
         self::$errCode = "004";
         self::$errMsg = "更新调拨单状态失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     $ids = implode(',', $ids);
     $info = CommonModel::updateOrderStatus($ids, 745);
     if ($info['errCode'] != 200) {
         self::$errCode = "004";
         self::$errMsg = "同步旧ERP订单状态失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     self::$errCode = "0";
     self::$errMsg = "调拨单完结成功!";
     TransactionBaseModel::commit();
     return TRUE;
 }
Esempio n. 2
0
 function act_getGroupInfo()
 {
     $userId = $_SESSION['userId'];
     $shipOrderGroup = $_POST['order_group'];
     $group_sql = WhGoodsAssignModel::getOrderGroup("*", array('assignNumber' => $shipOrderGroup));
     //var_dump($group_sql);exit;
     if (empty($group_sql)) {
         self::$errCode = "003";
         self::$errMsg = "该调拨单号不存在,请重新输入!";
         return false;
     } else {
         if ($group_sql[0]['status'] != 104) {
             self::$errCode = "003";
             self::$errMsg = "该调拨单不在待出库状态!";
             return false;
         }
         if ($group_sql[0]['status'] == 105) {
             self::$errCode = "0";
             self::$errMsg = "该调拨单已完成出库扫描,请扫描其他清单!";
             return false;
         }
         //$sku_info = WhGoodsAssignModel::getDetail( $group_sql[0]['id'] ," and a.checkUid = 0");
         //    		if(!empty($sku_info)){
         //    			self::$errCode = "004";
         //    			self::$errMsg  = "该调拨单仍有料号未复核!";
         //    			return FALSE;
         //    		}else{
         $where = array('id' => $group_sql[0]['id']);
         $update = array('status' => 105, 'statusTime' => time());
         $sku_info = WhGoodsAssignModel::updateAssignListStatus($where, $update);
         if (!$sku_info) {
             self::$errCode = "004";
             self::$errMsg = "调拨单出库状态变更失败!";
             return FALSE;
         } else {
             self::$errCode = "0";
             self::$errMsg = "调拨清单出库成功!";
             return TRUE;
         }
         //}
     }
 }
Esempio n. 3
0
 /**
  * WhGoodsAssignModel::getOrderGroup()
  * 根据条件获取调拨单信息
  * @param mixed $select
  * @param mixed $where
  * @return
  */
 public static function getOrderGroup($select, $array)
 {
     self::initDB();
     $sql = "select {$select} from wh_store_goods_assign where " . array2sql($array);
     $query = self::$dbConn->query($sql);
     if ($query) {
         $ret = self::$dbConn->fetch_array_all($query);
         return $ret;
     } else {
         self::$errCode = "003";
         self::$errMsg = "error";
         return false;
     }
 }
Esempio n. 4
0
 /**
  * whGoodsAssignView::view_editAssignList()
  * 调拨单修改界面
  * @return void
  */
 public function view_editAssignList()
 {
     self::bulidNav('修改调拨单', '修改调拨单', 51);
     $id = intval(trim($_GET['id'])) ? intval(trim($_GET['id'])) : 0;
     if ($id) {
         $where = 'where status = 1';
         $storeLists = WarehouseManagementModel::warehouseManagementModelList($where);
         //获取可用仓库列表
         $data = WhGoodsAssignModel::getAssignList(" and a.id={$id}", '', '', 'a.id');
         if (!empty($data)) {
             $res = $data[0];
             $detail = WhGoodsAssignModel::getsAssignListDetail($id);
             //调拨单明细
             $this->smarty->assign('detail', $detail);
             $this->smarty->assign('res', $res);
             $createUser = getUserNameById($res['createUid']);
             $this->smarty->assign('createUser', $createUser);
             //$user           =   array('name'=>$userName, 'uid'=>$_SESSION['userId']);
             $this->smarty->assign('storeLists', $storeLists);
             $this->smarty->display('editAssignList.htm');
         }
         //$userName       =   getUserNameById($_SESSION['userId']); //获取用户名
     }
 }
Esempio n. 5
0
 function act_endAssignList()
 {
     $assignNumber = $_POST['group'] ? $_POST['group'] : 0;
     //$goodsAssignId      =  intval($goodsAssignId);
     if (!$assignNumber) {
         self::$errCode = "014";
         self::$errMsg = "请输入调拨单号!";
         return false;
     }
     $assingInfo = WhGoodsAssignModel::getOrderGroup('id, status', array('assignNumber' => $assignNumber));
     if (empty($assingInfo)) {
         self::$errCode = "014";
         self::$errMsg = "该调拨单不存在!";
         return false;
     }
     if ($assingInfo[0]['status'] != 101) {
         self::$errCode = "015";
         self::$errMsg = "该调拨单不是待配货状态!";
         return FALSE;
     }
     $where = array('id' => $assingInfo[0]['id']);
     $update = array('status' => 102, 'statusTime' => time());
     $info = WhGoodsAssignModel::updateAssignListStatus($where, $update);
     if (!$info) {
         self::$errCode = "016";
         self::$errMsg = "更新调拨单状态失败!";
         return FALSE;
     } else {
         self::$errCode = "0";
         self::$errMsg = "该调拨单已完成配货,请输入下一调拨单号!";
         return TRUE;
     }
 }
 function act_checkSkuNum()
 {
     $bool = false;
     //标志是否有摒弃订单
     $assignNUmber = $_POST['order_group'];
     $sku = trim($_POST['sku']);
     //$sku         = getGoodsSn2($sku);
     $sku_num = $_POST['sku_num'];
     $assignId = $_POST['now_group_id'];
     //$now_pname 	    = $_POST['now_pname'];
     $assignStock = WhGoodsAssignModel::getAssignStock($sku);
     //获取该料号调拨库存
     if ($assignStock == 0) {
         self::$errCode = "004";
         self::$errMsg = "该调拨单无调拨库存,不能退库!";
         return FALSE;
     }
     if ($assignStock < $sku_num) {
         self::$errCode = "004";
         self::$errMsg = "退库数量大于调拨库存,不能退库!";
         return FALSE;
     }
     $sku_info = WhGoodsAssignModel::getDetail($assignId, " and a.sku='{$sku}'");
     if (empty($sku_info)) {
         self::$errCode = "004";
         self::$errMsg = "该调拨单无此料号!";
         return FALSE;
     }
     TransactionBaseModel::begin();
     $where = array('sku' => $sku, 'storeId' => $sku_info['storeId']);
     $update = array('actualStock' => "actualStock + {$sku_num}", 'assignStock' => "assignStock - {$sku_num}");
     $info = WhGoodsAssignModel::updateSkuLocation($where, $update);
     //更新wh_sku_location的调拨库存和总库存
     if (!$info) {
         TransactionBaseModel::rollback();
         self::$errCode = "003";
         self::$errMsg = "更新总库存失败!";
         return false;
     }
     $where = array('pId' => $skuinfo['id'], 'positionId' => $sku_info['positionId']);
     $update = array('nums' => "nums + {$sku_num}");
     $info = WhGoodsAssignModel::updateProdcutPosition($where, $update);
     //更新wh_product_position_relation的仓位库存
     if (!$info) {
         TransactionBaseModel::rollback();
         self::$errCode = "003";
         self::$errMsg = "更新仓位库存失败!";
         return false;
     }
     TransactionBaseModel::commit();
     self::$errCode = "0";
     self::$errMsg = "退库成功!";
     return true;
 }
Esempio n. 7
0
 /**
  * WhGoodsAssignAct::export_data()
  * 导出调拨数据 
  * @return void
  */
 public function export_data()
 {
     $ids = trim($_GET['ids']);
     if ($ids) {
         $assignList = WhGoodsAssignModel::getAssignList(" and a.id in ({$ids})", '', '', 'a.id');
         $assign_status = C('assign_status');
         //print_r($assign_status);exit;
         $name = 'assignList' . date('Y-m-d') . ".xls";
         //$name   =   iconv('UTF-8', 'gb2312//ignore', $name);
         $excel = new ExportDataExcel('browser', $name);
         $excel->initialize();
         $tharr = array("调拨单号", "SKU", "产品名称", "转出仓库", "转入仓库", "需求数量", "配货数量", '出库复核数量', '接收数量', '生成人员', '生成时间', '调拨单状态', '状态变更时间');
         $excel->addRow($tharr);
         if (!empty($assignList)) {
             foreach ($assignList as $assign) {
                 $outStore = WarehouseManagementModel::warehouseManagementModelList(" where id = {$assign['outStoreId']}");
                 $outStore = $outStore[0]['whName'];
                 $inStore = WarehouseManagementModel::warehouseManagementModelList(" where id = {$assign['inStoreId']}");
                 $inStore = $inStore[0]['whName'];
                 $maker = getUserNameById($assign['createUid']);
                 $make_date = date('Y-m-d H:i:s', $assign['createTime']);
                 $state_date = date('Y-m-d H:i:s', $assign['statusTime']);
                 $status = $assign_status[$assign['status']];
                 $details = WhGoodsAssignModel::getsAssignListDetail($assign['id']);
                 foreach ($details as $k => $val) {
                     $tdarr = array($k == 0 ? $assign['assignNumber'] : '', $val['sku'], $val['goodsName'], $outStore, $inStore, $val['num'], $val['assignNum'], $val['outCheckNum'], $val['inCheckNum'], $k == 0 ? $maker : '', $k == 0 ? $make_date : '', $k == 0 ? $status : '', $k == 0 ? $state_date : '');
                     //print_r($tdarr);exit;
                     $excel->addRow($tdarr);
                 }
             }
         }
         $excel->finalize();
         exit;
     }
 }
Esempio n. 8
0
 function act_checkSkuNum()
 {
     $bool = false;
     //标志是否有摒弃订单
     $assignNUmber = $_POST['order_group'];
     $sku = trim($_POST['sku']);
     $sku = get_goodsSn($sku);
     $sku_num = intval($_POST['sku_num']);
     $goodsAssignId = intval($_POST['now_group_id']);
     $sku_info = WhGoodsAssignModel::getDetail($goodsAssignId, " and a.sku='{$sku}' and a.scanUid != 0");
     if (empty($sku_info)) {
         self::$errCode = "001";
         self::$errMsg = "该调拨单无此出库复核料号!";
         return FALSE;
     } else {
         if ($sku_info['assignNum'] <= $sku_info['outCheckNum']) {
             self::$errCode = "002";
             self::$errMsg = "该料号已完成出库复核!";
             return FALSE;
         }
         $outCheckNum = $sku_info['outCheckNum'] + $sku_num;
         //系统累计出库复核数量
         if ($outCheckNum > $sku_info['assignNum']) {
             self::$errCode = "003";
             self::$errMsg = "总复核数量不能大于配货数量,请确认!";
             return false;
         }
         //print_r($sku_info);exit;
         $where = array('goodsAssignId' => $goodsAssignId, 'sku' => $sku);
         //生成where条件
         $update = array('outCheckNum' => $outCheckNum);
         if ($outCheckNum >= $sku_info['assignNum']) {
             $update['checkTime'] = time();
             $update['checkUid'] = $_SESSION['userId'];
         }
         $arr = array('sku' => $sku, 'sku_amount' => $sku_info['assignNum'], 'check_num' => $outCheckNum);
         $info = WhGoodsAssignModel::updateAssignDetail($where, $update);
         if (!$info) {
             self::$errCode = "004";
             self::$errMsg = "更新出库明细复核数量失败!";
             return $arr;
         }
         if (isset($update['checkUid'])) {
             $assignList = WhGoodsAssignModel::getDetail($goodsAssignId, ' and a.checkUid=0 and a.scanUid !=0');
             if (empty($assignList)) {
                 //该调拨单下所有料号复核完毕
                 $where = array('id' => $goodsAssignId);
                 $update = array('statusTime' => time(), 'status' => 103);
                 $info = WhGoodsAssignModel::updateAssignListStatus($where, $update);
                 if ($info) {
                     self::$errCode = "006";
                     self::$errMsg = "该调拨单出库复核完毕!";
                     return $arr;
                 } else {
                     self::$errCode = "005";
                     self::$errMsg = "调拨单更新失败!";
                     return FALSE;
                 }
             } else {
                 self::$errCode = "0";
                 self::$errMsg = "该料号复核完毕!";
                 return $arr;
             }
         } else {
             self::$errCode = "0";
             self::$errMsg = "该料号已复核,请录入下一料号!";
             return $arr;
         }
     }
 }
Esempio n. 9
0
$type = intval(trim($_GET['type']));
if (!empty($order_group)) {
    $sql = "select * from wh_store_goods_assign where id in ({$order_group})";
    $g_query = $dbConn->query($sql);
    if ($g_query) {
        $group_info = $dbConn->fetch_array_all($g_query);
    }
    if (empty($group_info)) {
        echo "调拨单不存在!";
        exit;
    }
    $order_groups = explode(',', $order_group);
    foreach ($order_groups as $key => $id) {
        $assignNumber = OmAvailableModel::getTNameList('wh_store_goods_assign', 'assignNumber', "where id = {$id}");
        $assignNumber = $assignNumber['0']['assignNumber'];
        $skuinfo = WhGoodsAssignModel::getsAssignListDetail($id);
        $page_num = 40;
        //一页几个sku
        $count = count($skuinfo);
        $pages = ceil($count / $page_num);
        for ($i = 1; $i <= $pages; $i++) {
            ?>
    <table width="100%" border="1" cellspacing="0" cellpadding="0">
    	<tr>
    		<td style="padding:5px;"><?php 
            echo $type == 1 ? '配货清单' : '调拨出库单';
            ?>
:<font color="black"><?php 
            echo $assignNumber;
            ?>
</font><span style="padding-left:100px" color="black"><?php 
Esempio n. 10
0
 /**
  * Pda_makeAssignListAct::act_makeAssignList()
  * 生成调拨单编号并更新调拨明细表 
  * @return void
  */
 public function act_makeAssignList()
 {
     $res = WhGoodsAssignModel::getDetail('0', '');
     //检测是否有未生成调拨单的料号信息
     if (empty($res)) {
         self::$errCode = '001';
         self::$errMsg = '没有可以生成调拨单的料号信息!';
         return FALSE;
     }
     $outStoreId = 1;
     $inStoreId = 2;
     $createdUid = $_SESSION['userId'];
     $whGoodsAssignAct = new WhGoodsAssignAct();
     $assignNumber = $whGoodsAssignAct->buildAssignNumber();
     //获取调拨单编号
     TransactionBaseModel::begin();
     //调拨单表中插入数据并获取插入id
     $goodsAssignId = WhGoodsAssignModel::addAssignList($assignNumber, $outStoreId, $inStoreId, time(), time(), $createdUid);
     if ($goodsAssignId == FALSE) {
         self::$errCode = 02;
         self::$errMsg = '生成调拨单失败!';
         return FALSE;
     }
     $where = array('goodsAssignId' => 0, 'is_delete' => 0);
     $update = array('goodsAssignId' => $goodsAssignId);
     $info = WhGoodsAssignModel::updateAssignDetail($where, $update);
     if ($info) {
         TransactionBaseModel::commit();
         self::$errCode = '200';
         self::$errMsg = '生成调拨单【' . $assignNumber . '】!';
         return TRUE;
     } else {
         TransactionBaseModel::commit();
         self::$errCode = '003';
         self::$errMsg = '生成调拨单失败!';
         return FALSE;
     }
 }
 /**
  * InCheckPdaAssignListAct::act_inCheckEnd()
  * 调拨单接收复核完成变更状态 
  * @return void
  */
 function act_inCheckEnd()
 {
     $assignNumber = trim($_POST['group_id']);
     if (!preg_match("/AN\\d{8}/", $assignNumber)) {
         self::$errCode = '001';
         self::$errMsg = '请不要输入非调拨单号!';
         return FALSE;
     }
     $group_sql = WhGoodsAssignModel::getOrderGroup("id, status", array('assignNumber' => $assignNumber));
     if (empty($group_sql)) {
         self::$errCode = '002';
         self::$errMsg = '没有该调拨单号!';
         return FALSE;
     }
     //print_r($group_sql);exit;
     if ($group_sql[0]['status'] != 105) {
         self::$errCode = '003';
         self::$errMsg = '该调拨单不在接收复核状态!';
         return FALSE;
     }
     $assignId = $group_sql[0]['id'];
     //$assignDetail       =   WhGoodsAssignModel::getDetail($assignId, ' and inCheckNum = 0');
     //        if(empty($assignDetail)){
     //
     //        }
     $where = array('id' => $assignId);
     $update = array('status' => 106, 'statusTime' => time());
     $info = WhGoodsAssignModel::updateAssignListStatus($where, $update);
     if ($info) {
         self::$errCode = '200';
         self::$errMsg = '该调拨单复核接收完成!';
         return TRUE;
     } else {
         self::$errCode = '004';
         self::$errMsg = '该调拨单复核接收完成!';
         return FALSE;
     }
 }
 public function act_whShelf()
 {
     //print_r($_POST);
     $log_file = 'whselfB_log/' . date('Ymd') . '.txt';
     //日志文件路径
     $date = date('Y-m-d H:i:s');
     $userCnName = $_SESSION['userCnName'];
     $sku = trim($_POST['sku']);
     $sku = get_goodsSn($sku);
     $nums = $_POST['nums'];
     $now_position_id = intval(trim($_POST['now_position_id']));
     //现在存放该料号的仓位id
     $goodsAssignId = intval(trim($_POST['now_group_id']));
     $positionId = intval(trim($_POST['position_id']));
     //分配的仓位id
     $assignList = WhGoodsAssignModel::getAssignList("and a.id = {$goodsAssignId}", '', '', '');
     if ($assignList[0]['status'] != 106) {
         self::$errCode = 400;
         self::$errMsg = "该调拨单不在等待上架状态!";
         $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg);
         write_log($log_file, $log_info);
         return false;
     }
     if (empty($sku)) {
         self::$errCode = 401;
         self::$errMsg = "sku不能为空";
         $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg);
         write_log($log_file, $log_info);
         return false;
     }
     if (empty($now_position_id) && !$positionId) {
         self::$errCode = 401;
         self::$errMsg = "上架仓位不能为空";
         $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg);
         write_log($log_file, $log_info);
         return false;
     }
     if ($nums < 1) {
         self::$errCode = 403;
         self::$errMsg = "上架数量不能小于1";
         $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg);
         write_log($log_file, $log_info);
         return false;
     }
     $sku_info = WhGoodsAssignModel::getDetail($goodsAssignId, " and a.sku='{$sku}' and a.inCheckNum != 0");
     if (empty($sku_info)) {
         self::$errCode = "404";
         self::$errMsg = "该调拨单无此料号!";
         return FALSE;
     }
     $whselfNums = $nums + $sku_info['whselfNum'];
     if ($whselfNums > $sku_info['assignNum']) {
         self::$errCode = "405";
         self::$errMsg = "总上架数不能大于配货数!";
         return FALSE;
     }
     $where = " where sku = '{$sku}'";
     $skuinfo = whShelfModel::selectSku($where);
     if (empty($skuinfo)) {
         self::$errCode = 404;
         self::$errMsg = "无该料号信息";
         $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg);
         write_log($log_file, $log_info);
         return false;
     } else {
         $skuId = $skuinfo['id'];
         $purchaseId = $skuinfo['purchaseId'];
     }
     $ioTypeId = 35;
     //35 调拨入库上架 出入库类型表id
     $return_num = $nums;
     $in_positionId = 0;
     $userId = $_SESSION['userId'];
     //$where           =  "where pId ={$skuId} and positionId = {$now_position_id} and is_delete=0 and storeId = 2";
     TransactionBaseModel::begin();
     if ($now_position_id) {
         //存在料号仓位关系
         $positioninfo = whShelfModel::selectRelationShip('', '', 2, $now_position_id);
         //检测该料号是否有对应仓位关系
         /***无料号对应仓位的关系时更新关系表***/
         $relationId = $positioninfo[0]['id'];
         $positionId = $positioninfo[0]['positionId'];
         //仓位id
         $update_position = whShelfModel::updateProductPositionRelation($nums, "where id='{$relationId}'");
         if (!$update_position) {
             self::$errCode = 410;
             self::$errMsg = "更新仓位库存失败!";
             $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, $update_position, $num, $select_now_store);
             write_log($log_file, $log_info);
             TransactionBaseModel::rollback();
             return false;
         }
         write_log($log_file, date('Y-m-d H:i:s') . '更新仓位库存成功!' . "{$sku}\r\n");
     } else {
         if ($positionId) {
             //没有料号仓位关系则插入一条数据
             $relationId = whShelfModel::insertRelation($skuinfo['id'], $positionId, $nums, 2);
             //插入关系表
             //$update_position = whShelfModel::updateProductPositionRelation($nums,"where id='$relationId'");
             if (!$relationId) {
                 self::$errCode = 410;
                 self::$errMsg = "插入仓位关系失败!";
                 $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, $update_position, $num, $select_now_store);
                 write_log($log_file, $log_info);
                 TransactionBaseModel::rollback();
                 return false;
             }
             write_log($log_file, date('Y-m-d H:i:s') . '插入仓位关系成功!' . "{$sku}\r\n");
         }
     }
     /**** 更新总库存 *****/
     $actualStock = whShelfModel::selectSkuNums($sku, 2);
     if (!empty($actualStock)) {
         $where = "where sku='{$sku}' and storeId=2";
         $info = whShelfModel::updateStoreNum($nums, $where);
         if (!$info) {
             self::$errCode = 412;
             self::$errMsg = "更新总库存失败!";
             $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, $info, $nums, $where);
             write_log($log_file, $log_info);
             TransactionBaseModel::rollback();
             return false;
         }
         write_log($log_file, date('Y-m-d H:i:s') . '更新总库存成功!' . "{$sku}\r\n");
     } else {
         $info = whShelfModel::insertStore($sku, $nums, 2);
         if (!$info) {
             self::$errCode = 413;
             self::$errMsg = "更新总库存失败!";
             $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, $info, $sku, $nums);
             write_log($log_file, $log_info);
             TransactionBaseModel::rollback();
             return false;
         }
         write_log($log_file, date('Y-m-d H:i:s') . '更新总库存成功!' . "{$sku}\r\n");
     }
     /**** 插入出入库记录 *****/
     $paraArr = array('sku' => $sku, 'amount' => $nums, 'positionId' => $positionId, 'purchaseId' => $purchaseId, 'ioType' => 2, 'ioTypeId' => $ioTypeId, 'userId' => $userId, 'reason' => '调拨入库上架');
     $record = CommonModel::addIoRecores($paraArr);
     //出库记录
     if (!$record) {
         self::$errCode = 414;
         self::$errMsg = "插入出入库记录失败!";
         $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s \r\n", $sku, $date, self::$errMsg, $record, json_encode($paraArr));
         write_log($log_file, $log_info);
         TransactionBaseModel::rollback();
         return false;
     }
     write_log($log_file, date('Y-m-d H:i:s') . '插入入库记录成功!' . "{$sku}\r\n");
     //更新调拨单料号上架数量
     $where = array('goodsassignId' => $goodsAssignId, 'sku' => $sku);
     $update = array('whselfNum' => $whselfNums);
     $info = WhGoodsAssignModel::updateAssignDetail($where, $update);
     if ($info === FALSE) {
         self::$errCode = 415;
         self::$errMsg = "更新上架数量失败";
         $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s ,参数:s%\r\n", $sku, $date, self::$errMsg, $nums);
         write_log($log_file, $log_info);
         TransactionBaseModel::rollback();
         return false;
     }
     //更新料号调拨库存
     $where = array('sku' => $sku, 'storeId' => $assignList[0]['outStoreId']);
     $update = array('assignStock' => "assignStock - {$nums}");
     $info = WhGoodsAssignModel::updateSkuLocation($where, $update);
     if ($info == FALSE) {
         self::$errCode = 416;
         self::$errMsg = "更新调拨库存失败";
         $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s ,参数:s%\r\n", $sku, $date, self::$errMsg, $nums);
         write_log($log_file, $log_info);
         TransactionBaseModel::rollback();
         return false;
     }
     /** 同步老ERP库存**/
     $pName = whShelfModel::selectPositionInfo('pName', array('id' => $positionId));
     //获取仓位名称
     $pName = $pName['pName'];
     $info = CommonModel::updateIoRecord($sku, $nums, 1, '仓库调拨入库上架', $_SESSION['userCnName'], $pName);
     //var_dump($info);exit;
     if ($info['errCode'] != 200) {
         TransactionBaseModel::rollback();
         self::$errCode = "004";
         self::$errMsg = "同步旧ERP库存失败!";
         $log_info = sprintf("料号:%s, 时间:%s,信息:%s ,参数:%s\r\n", $sku, $date, self::$errMsg, is_array($info) ? json_encode($info) : $info);
         write_log($log_file, $log_info);
         return false;
     }
     TransactionBaseModel::commit();
     self::$errMsg = "料号[{$sku}]上架成功!";
     return true;
 }
Esempio n. 13
0
 function act_checkSkuNum()
 {
     $orderId = intval(trim($_POST['orderId']));
     $sku = trim($_POST['sku']);
     $sku = get_goodsSn($sku);
     $sku_num = intval(trim($_POST['sku_num']));
     $log_file = 'pda_orderOutB/' . date('Y-m-d') . '.txt';
     $date = date('Y-m-d-H');
     if (!$orderId) {
         self::$errCode = "001";
         self::$errMsg = "请扫描订单id!";
         return FALSE;
     }
     if (!$sku) {
         self::$errCode = "002";
         self::$errMsg = "请扫描料号!";
         return FALSE;
     }
     if (!$sku_num) {
         self::$errCode = "003";
         self::$errMsg = "请输入料号配货数!";
         return FALSE;
     }
     $skuinfo = whShelfModel::selectSku(" where sku = '{$sku}'");
     //获取sku信息
     $where = array('orderId' => $orderId, 'sku' => $sku);
     $sku_info = Pda_orderOutBModel::selectOrderRecord($where);
     //获取订单下该料号的信息
     if (empty($sku_info)) {
         self::$errCode = "004";
         self::$errMsg = "该订单没有此料号!";
         return FALSE;
     }
     $sku_info = $sku_info[0];
     $sku_onhand = GroupDistributionModel::getSkuPositionStock("and c.sku='{$sku}' and a.storeId = 2");
     //查看该料号的B仓库存
     $now_num = $sku_num + $sku_info['scanNum'];
     //已配货数加上本次配货数
     if (!is_numeric($sku_num) || $now_num <= 0) {
         self::$errCode = "005";
         self::$errMsg = "配货数量必须大于0,请确认!";
         return FALSE;
     }
     if ($sku_info['amount'] < $now_num) {
         self::$errCode = "006";
         self::$errMsg = "配货数量不能大于订单数!";
         return false;
     }
     if ($sku_num > $sku_onhand[0]['nums']) {
         self::$errCode = "007";
         self::$errMsg = "配货数不能大于系统库存,请确认!";
         return false;
     }
     $uid = $_SESSION['userId'];
     $scanTime = time();
     $where = array('orderId' => $orderId, 'sku' => $sku);
     //拼接where条件
     $update = array('scanUser' => $uid, 'scanTime' => $scanTime, 'scanNum' => $now_num);
     //拼接更新字段
     TransactionBaseModel::begin();
     $info = Pda_orderOutBModel::updateOrderRecord($where, $update);
     if ($info) {
         $where = array('sku' => $sku, 'storeId' => 2);
         $update = array('actualStock' => "actualStock - {$sku_num}");
         $info = WhGoodsAssignModel::updateSkuLocation($where, $update);
         //更新wh_sku_location的调拨库存和总库存
         if (!$info) {
             TransactionBaseModel::rollback();
             self::$errCode = "010";
             self::$errMsg = "更新总库存失败!";
             return false;
         }
         $positionInfo = whShelfModel::selectPositionInfo('id', array('pName' => $sku_info['pName']));
         //仓位信息
         $where = array('pId' => $skuinfo['id'], 'positionId' => $positionInfo['id'], 'storeId' => 2);
         $update = array('nums' => "nums - {$sku_num}");
         $info = WhGoodsAssignModel::updateProdcutPosition($where, $update);
         //更新wh_product_position_relation的仓位库存
         if (!$info) {
             TransactionBaseModel::rollback();
             self::$errCode = "011";
             self::$errMsg = "更新仓位库存失败!";
             return false;
         }
         /**** 插入出库记录 *****/
         $paraArr = array('sku' => $sku, 'amount' => $sku_num, 'positionId' => $positionInfo['id'], 'purchaseId' => $skuinfo['purchaseId'], 'ioType' => 1, 'ioTypeId' => 6, 'userId' => $_SESSION['userId'], 'reason' => 'B仓订单配货出库', 'ordersn' => $orderId);
         $record = CommonModel::addIoRecores($paraArr);
         //出库记录
         /** 同步老ERP订单配货记录**/
         $is_scan = $sku_info['amount'] == $now_num ? 1 : 0;
         $info = CommonModel::updateOrderScanRecord($orderId, $sku, $sku_num, $sku_info['amount'], $is_scan, $_SESSION['userCnName']);
         if ($info['errCode'] != 200) {
             TransactionBaseModel::rollback();
             self::$errCode = "012";
             self::$errMsg = "更新ERP配货记录失败!";
             $log_info = sprintf("订单号:%s, 时间:%s, 提示信息:%s, 信息记录: %s \r\n", $orderId, $date, self::$errMsg, is_array($info) ? json_encode($info) : $info);
             write_log($log_file, $log_info);
             return false;
         }
         TransactionBaseModel::commit();
         $where = array('orderId' => $orderId, 'scanUser' => 0);
         $info = Pda_orderOutBModel::selectOrderRecord($where);
         //查看该订单下是否还有未配货料号
         if (empty($info)) {
             self::$errCode = "200";
             self::$errMsg = "该订单已配货完成, 请扫描下一订单号!";
             return TRUE;
         } else {
             self::$errCode = "0";
             self::$errMsg = "配货成功,请扫描下一个料号!";
             $arr['sku'] = $sku;
             $arr['num'] = $sku_info['amount'];
             $arr['assignNum'] = $now_num;
             return $arr;
         }
     } else {
         self::$errCode = "013";
         self::$errMsg = "更新料号状态失败!";
         return false;
     }
 }