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