Example #1
0
 public function act_whReturnSkuShelf()
 {
     //print_r($_POST);
     $sku = trim($_POST['sku']);
     $sku = get_goodsSn($sku);
     $nums = $_POST['nums'];
     $select_now_position = $_POST['select_now_position'];
     $select_now_store = $_POST['select_now_store'];
     $select_hope_position = $_POST['select_hope_position'];
     $select_hope_store = $_POST['select_hope_store'];
     if (empty($sku)) {
         self::$errCode = 401;
         self::$errMsg = "sku不能为空";
         return false;
     }
     if (empty($select_now_position) && empty($select_now_store) && empty($select_hope_position) && empty($select_hope_store)) {
         self::$errCode = 401;
         self::$errMsg = "上架位置不能为空";
         return false;
     }
     $where = "where sku='{$sku}' and status=0";
     $tallying_list = PostReturnModel::getReturnList("*", $where);
     if (empty($tallying_list)) {
         self::$errCode = 402;
         self::$errMsg = "无该料号退回信息";
         return false;
     } else {
         $tallying_num = 0;
         foreach ($tallying_list as $tallying) {
             $tallying_num += $tallying['ichibanNums'] - $tallying['shelvesNums'];
         }
         if ($nums > $tallying_num) {
             self::$errCode = 402;
             self::$errMsg = "上架数不能大于qc良品数[{$tallying_num}]";
             return false;
         }
     }
     if ($nums < 1) {
         self::$errCode = 403;
         self::$errMsg = "入库数量不能小于1";
         return false;
     }
     $where = " where sku = '{$sku}'";
     $skuinfo = whShelfModel::selectSku($where);
     if (empty($skuinfo)) {
         self::$errCode = 404;
         self::$errMsg = "无该料号信息";
         return false;
     } else {
         $skuId = $skuinfo['id'];
         $purchaseId = $skuinfo['purchaseId'];
     }
     $userId = $_SESSION['userId'];
     $in_positionId = 0;
     TransactionBaseModel::begin();
     /***无料号对应仓位的关系时更新关系表***/
     if ($select_hope_store != 0 || $select_hope_position != 0) {
         $type = 1;
         $positionId = $select_hope_position;
         if ($select_hope_store != 0) {
             $type = 2;
             $positionId = $select_hope_store;
         }
         $in_positionId = $positionId;
         $tname = "wh_product_position_relation";
         $set = "set pId='{$skuId}',positionId='{$positionId}',nums='{$nums}',type='{$type}'";
         $insert_relation = OmAvailableModel::insertRow($tname, $set);
         if (!$insert_relation) {
             self::$errCode = 408;
             self::$errMsg = "插入关系表失败!";
             TransactionBaseModel::rollback();
             return false;
         }
         //更新仓位使用状态
         $update_position = OmAvailableModel::updateTNameRow("wh_position_distribution", "set is_enable=1", "where id={$positionId}");
         if ($update_position === false) {
             self::$errCode = 409;
             self::$errMsg = "更新仓位使用状态失败!";
             TransactionBaseModel::rollback();
             return false;
         }
     }
     //更新指定仓位存货数量
     if ($select_now_store != 0) {
         $positioninfo = whShelfModel::selectRelation("where id={$select_now_store}");
         $in_positionId = $positioninfo[0]['positionId'];
         $update_position = whShelfModel::updateProductPositionRelation($nums, "where id='{$select_now_store}'");
         if (!$update_position) {
             self::$errCode = 410;
             self::$errMsg = "更新仓位库存失败!";
             TransactionBaseModel::rollback();
             return false;
         }
     }
     if ($select_now_store == 0 && $select_hope_position == 0 && $select_hope_store == 0) {
         $positioninfo = whShelfModel::selectRelation("where id={$select_now_position}");
         $in_positionId = $positioninfo[0]['positionId'];
         $update_position = whShelfModel::updateProductPositionRelation($nums, "where id='{$select_now_position}'");
         if (!$update_position) {
             self::$errCode = 411;
             self::$errMsg = "更新仓位库存失败!";
             TransactionBaseModel::rollback();
             return false;
         }
     }
     /**** 更新总库存 *****/
     $where = "where sku='{$sku}'";
     $info = whShelfModel::updateStoreNumOnly($nums, $where);
     if (!$info) {
         self::$errCode = 412;
         self::$errMsg = "更新总库存失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     /**** 插入出入库记录 *****/
     $paraArr = array('sku' => $sku, 'amount' => $nums, 'positionId' => $in_positionId, 'purchaseId' => $purchaseId, 'ioType' => 2, 'ioTypeId' => 14, 'userId' => $userId, 'reason' => '退货料号入库');
     $record = CommonModel::addIoRecores($paraArr);
     //出库记录
     if (!$record) {
         self::$errCode = 413;
         self::$errMsg = "插入出入库记录失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     //更新邮局退回记录状态
     $where = "where sku='{$sku}' and status=0 and ichibanNums>0";
     $list = PostReturnModel::getReturnList("*", $where);
     $i = 0;
     while ($list[$i] && $nums) {
         $need_nums = $list[$i]['ichibanNums'] - $list[$i]['shelvesNums'];
         if ($nums >= $need_nums) {
             //更改状态
             $msg = PostReturnModel::updateReturnStatus($list[$i]['id'], $need_nums);
             if (!$msg) {
                 self::$errCode = 413;
                 self::$errMsg = "更新邮局退回记录状态失败!";
                 TransactionBaseModel::rollback();
                 return false;
             }
             $nums = $nums - $need_nums;
         } else {
             $msg = PostReturnModel::updateReturnShelfNum($list[$i]['id'], $nums);
             if (!$msg) {
                 self::$errCode = 414;
                 self::$errMsg = "更新邮局退回记录已上架数量失败!";
                 TransactionBaseModel::rollback();
                 return false;
             }
             $nums = 0;
         }
         $i++;
     }
     TransactionBaseModel::commit();
     self::$errMsg = "料号[{$sku}]入库成功!";
     return true;
 }
Example #2
0
         write_log($log_file, $log_info);
         $positionId = whShelfModel::selectPosition("where pName = '{$sku_location}'");
     } else {
         $log_info = sprintf("料号:%s, 时间:%s,信息:%s,仓位:%s \r\n", $sku, $date, '插入仓位失败', $sku_location);
         write_log($log_file, $log_info);
         continue;
     }
 }
 /** 更新新系统料号仓位关系**/
 $info = updateNewPostion($sku, $sku_location);
 $msg = $info ? '更新仓位成功!' : '更新仓位失败!';
 $log_info = sprintf("料号:%s, 时间:%s,信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, $msg, $info, $sku, $sku_location);
 write_log($log_file, $log_info);
 $positionId = $positionId[0]['id'];
 TransactionBaseModel::begin();
 $relation = whShelfModel::selectRelation(" where pId={$pId} and positionId={$positionId}");
 /** 更新仓位库存**/
 $temp = whShelfModel::selectRelationShip($pId, 8290);
 $temp_nums = empty($temp) ? 0 : $temp[0]['nums'];
 //临时仓位表库存
 /** 更新A仓仓位库存**/
 $a_diff = $goods_count - $temp_nums;
 if ($a_diff < 0 && $temp_nums) {
     //如果临时仓位有库存且库存大于获取的A仓库存
     whShelfModel::updateProductPositionRelation_new(array('nums' => 0), array('pId' => $pId, 'storeId' => 1));
     //将A仓库存变为0
     whShelfModel::updateProductPositionRelation_new(array('nums' => $goods_count), array('pId' => $pId, 'positionId' => 8290));
     //A仓临时仓位变为获取的A仓库存
 } else {
     if ($a_diff > 0 && $temp_nums) {
         whShelfModel::updateProductPositionRelation_new(array('nums' => $a_diff), array('pId' => $pId, 'storeId' => 1));
Example #3
0
 public function act_whShelf()
 {
     //print_r($_POST);
     $userCnName = $_SESSION['userCnName'];
     $sku = trim($_POST['sku']);
     $sku = get_goodsSn($sku);
     $nums = $_POST['nums'];
     $select_now_position = $_POST['select_now_position'];
     $select_now_store = $_POST['select_now_store'];
     $select_hope_position = $_POST['select_hope_position'];
     $select_hope_store = $_POST['select_hope_store'];
     if (empty($sku)) {
         self::$errCode = 401;
         self::$errMsg = "sku不能为空";
         return false;
     }
     if (empty($select_now_position) && empty($select_now_store) && empty($select_hope_position) && empty($select_hope_store)) {
         self::$errCode = 401;
         self::$errMsg = "上架位置不能为空";
         return false;
     }
     /*
     $where = "where sku='{$sku}' and tallyStatus=0";
     $tallying_list  = packageCheckModel::selectList($where);
     if(empty($tallying_list)){
     	self::$errCode = 402;
     	self::$errMsg  = "无该料号点货信息";
     	return false;
     }else{
     	$tallying_num = 0;
     	foreach($tallying_list as $tallying){
     		$tallying_num += $tallying['ichibanNums']-$tallying['shelvesNums'];
     	}
     	if($nums>$tallying_num){
     		self::$errCode = 402;
     		self::$errMsg  = "上架数不能大于点货良品数[{$tallying_num}]";
     		return false;
     	}
     }
     */
     if ($nums < 1) {
         self::$errCode = 403;
         self::$errMsg = "上架数量不能小于1";
         return false;
     }
     $where = " where sku = '{$sku}'";
     $skuinfo = whShelfModel::selectSku($where);
     if (empty($skuinfo)) {
         self::$errCode = 404;
         self::$errMsg = "无该料号信息";
         return false;
     } else {
         $skuId = $skuinfo['id'];
         $purchaseId = $skuinfo['purchaseId'];
     }
     /*
     		$purInfo = CommonModel::endPurchaseOrder($sku,$nums);             //api获取采购订单处理情况
     		if($purInfo!=0){
     			self::$errCode = 405;
     			self::$errMsg  = "完结采购订单出错,上架失败";
     			return false;
     		}
     		
     		//更新旧erp库存
     		$update_onhand = CommonModel::updateOnhand($sku,$nums);
     		if($update_onhand==0){
     			self::$errCode = 415;
     			self::$errMsg = "更新erp库存失败";
     			return false;
     		}*/
     $return_num = $nums;
     $in_positionId = 0;
     $userId = $_SESSION['userId'];
     TransactionBaseModel::begin();
     /****插入采购未订单记录****/
     /*
     if($return_num>0){
     	$where = " where sku = '{$sku}' and tallyStatus=0";
     	$list  = whShelfModel::selectList($where);
     	$purchaseId = $list[0]['purchaseId'];
     	$totalNums = 0;
     	foreach($list as $key=>$value){
     		$totalNums += $value['num'];
     	}
     	if ($return_num==$nums){
     		$reach_note = "sku[{$sku}]到货{$nums}个,未找到该料号的订单,请物料点货确认和采购补单!";
     	}else{
     		$reach_note = "sku[{$sku}]到货{$nums}个,入库完毕后还多余{$return_num}个,请物料点货确认和采购补单!";
     	}
     	$msg = whShelfModel::insertNoOrder($sku,$return_num,$totalNums,$purchaseId,$userId,$reach_note);
     	if(!$msg){
     		self::$errCode = whShelfModel::$errCode;
     		self::$errMsg  = whShelfModel::$errMsg;
     		return false;
     	}
     }
     */
     /***无料号对应仓位的关系时更新关系表***/
     if ($select_hope_store != 0 || $select_hope_position != 0) {
         $type = 1;
         $positionId = $select_hope_position;
         if ($select_hope_store != 0) {
             $type = 2;
             $positionId = $select_hope_store;
         }
         $in_positionId = $positionId;
         $tname = "wh_product_position_relation";
         $set = "set pId='{$skuId}',positionId='{$positionId}',nums='{$nums}',type='{$type}',storeId=2";
         $insert_relation = OmAvailableModel::insertRow($tname, $set);
         if (!$insert_relation) {
             self::$errCode = 408;
             self::$errMsg = "插入关系表失败!";
             TransactionBaseModel::rollback();
             return false;
         }
         //更新仓位使用状态
         $update_position = OmAvailableModel::updateTNameRow("wh_position_distribution", "set is_enable=1", "where id={$positionId}");
         if ($update_position === false) {
             self::$errCode = 409;
             self::$errMsg = "更新仓位使用状态失败!";
             TransactionBaseModel::rollback();
             return false;
         }
     }
     //更新指定仓位存货数量
     if ($select_now_store != 0) {
         $positioninfo = whShelfModel::selectRelation("where id={$select_now_store}");
         $in_positionId = $positioninfo[0]['positionId'];
         $update_position = whShelfModel::updateProductPositionRelation($nums, "where id='{$select_now_store}'");
         if (!$update_position) {
             self::$errCode = 410;
             self::$errMsg = "更新仓位库存失败!";
             TransactionBaseModel::rollback();
             return false;
         }
     }
     if ($select_now_store == 0 && $select_hope_position == 0 && $select_hope_store == 0) {
         $positioninfo = whShelfModel::selectRelation("where id={$select_now_position}");
         $in_positionId = $positioninfo[0]['positionId'];
         $update_position = whShelfModel::updateProductPositionRelation($nums, "where id='{$select_now_position}'");
         if (!$update_position) {
             self::$errCode = 411;
             self::$errMsg = "更新仓位库存失败!";
             TransactionBaseModel::rollback();
             return false;
         }
     }
     /**** 更新总库存 *****/
     $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 = "更新总库存失败!";
             TransactionBaseModel::rollback();
             return false;
         }
     } else {
         $info = packageCheckModel::insertStore($sku, $nums, 2);
         if (!$info) {
             self::$errCode = 412;
             self::$errMsg = "更新总库存失败!";
             TransactionBaseModel::rollback();
             return false;
         }
     }
     /**** 插入出入库记录 *****/
     $paraArr = array('sku' => $sku, 'amount' => $nums, 'positionId' => $in_positionId, 'purchaseId' => $purchaseId, 'ioType' => 2, 'ioTypeId' => 13, 'userId' => $userId, 'reason' => '上架入库', 'storeId' => 2);
     $record = CommonModel::addIoRecores($paraArr);
     //出库记录
     if (!$record) {
         self::$errCode = 413;
         self::$errMsg = "插入出入库记录失败!";
         TransactionBaseModel::rollback();
         return false;
     }
     /*
     //更新点货记录状态
     $where = "where sku='{$sku}' and tallyStatus=0 and ichibanNums>0";
         	$list  = packageCheckModel::selectList($where);
     $i = 0;
     while($list[$i]&&$nums){
     	$need_nums = $list[$i]['ichibanNums']-$list[$i]['shelvesNums'];
     	if($nums >= $need_nums){
     		//更改状态
     		$msg = whShelfModel::updateTallyStatus($list[$i]['id'],$need_nums);
     		if(!$msg){
     			self::$errCode = 413;
     			self::$errMsg  = "更新点货记录状态失败!";
     			TransactionBaseModel :: rollback();
     			return false;
     		}
     		$nums = $nums-$need_nums;
     	}else{
     		$msg = whShelfModel::updateShelfNum($list[$i]['id'],$nums);
     		if(!$msg){
     			self::$errCode = 414;
     			self::$errMsg  = "更新点货记录已上架数量失败!";
     			TransactionBaseModel :: rollback();
     			return false;
     		}
     		$nums = 0;
     	}
     	$i++;
     }
     */
     /*
     $purInfo = CommonModel::endPurchaseOrder($sku,$return_num);             //api获取采购订单处理情况
     if($purInfo!=0){
     	self::$errCode = 405;
     	self::$errMsg  = "完结采购订单出错,上架失败";
     	TransactionBaseModel :: rollback();
     	return false;
     }
     
     //更新旧erp库存
     $position_info = PositionModel::getPositionList("pName","where id={$in_positionId}");
     $update_onhand = CommonModel::updateOnhand($sku,$return_num,$userCnName,$position_info[0]['pName']);
     if($update_onhand==0){
     	self::$errCode = 415;
     	self::$errMsg = "更新旧erp库存失败";
     	TransactionBaseModel :: rollback();
     	return false;
     }
     */
     TransactionBaseModel::commit();
     self::$errMsg = "料号[{$sku}]上架成功!";
     return true;
 }
 $ioTypeId = WarehouseManagementModel::whIoTypeModelList(" where typeName='{$msg_array['ioTypeId']}'");
 $msg_array['ioTypeId'] = empty($ioTypeId) ? 0 : $ioTypeId[0]['id'];
 //获取出入库类型id
 $skuinfo = whShelfModel::selectSku("where sku='{$sku}'");
 if (empty($skuinfo)) {
     $errCode = 409;
     $errMsg = "没有该料号";
     $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s\r\n", $sku, $date, $errMsg, json_encode($skuinfo));
     write_log($log_file, $log_info);
     OmAvailableModel::rollback();
     continue;
 }
 $nums = ($msg_array['ioType'] == 1 ? '-' : '') . $msg_array['amount'];
 //1出库 2入库
 //print_r($nums);exit;
 $positioninfo = whShelfModel::selectRelation("where pId={$skuinfo['id']}");
 //获取料号仓位关系
 //print_r($positioninfo);exit;
 OmAvailableModel::begin();
 /**** 更新仓位库存 ****/
 $update_position = whShelfModel::updateProductPositionRelation($nums, "where pId={$skuinfo['id']} and positionId != 8290 and is_delete = 0");
 if (!$update_position) {
     $errCode = 410;
     $errMsg = "更新仓位库存失败!";
     $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s \r\n", $sku, $date, $errMsg, $update_position, $nums);
     write_log($log_file, $log_info);
     OmAvailableModel::rollback();
     continue;
 }
 write_log($log_file, date('Y-m-d H:i:s') . '更新仓位库存成功!' . "{$sku}\r\n");
 /**** 更新总库存 *****/
 public function findPositionRelation($sku)
 {
     $result = array();
     $now_position = array();
     $now_storeposition = array();
     $where = "where sku='{$sku}'";
     $skuinfo = whShelfModel::selectSku($where);
     $skuId = $skuinfo['id'];
     $where = "where pId ={$skuId} and is_delete=0 and storeId =2";
     $positioninfo = whShelfModel::selectRelation($where);
     //print_r($positioninfo);die;
     foreach ($positioninfo as $key => $value) {
         if ($value['type'] == 1) {
             $where = " where id={$value['positionId']}";
             $info = whShelfModel::selectPosition($where);
             if ($info) {
                 if (!empty($info[0]['pName'])) {
                     $now_position[] = array('id' => $value['id'], 'pName' => $info[0]['pName'], 'nums' => $value['nums']);
                 }
             }
         }
         if ($value['type'] == 2) {
             $where = " where id={$value['positionId']}";
             $info = whShelfModel::selectPosition($where);
             if ($info) {
                 if (!empty($info[0]['pName'])) {
                     $now_storeposition[] = array('id' => $value['id'], 'pName' => $info[0]['pName'], 'nums' => $value['nums']);
                 }
             }
         }
     }
     $result['now_position'] = $now_position;
     $result['now_storeposition'] = $now_storeposition;
     return $result;
 }