} Core::getInstance(); global $dbConn; mysql_query('SET NAMES UTF8'); $sql = 'select id, sku from pc_goods where is_delete = 0'; //$sql = 'select id, sku from pc_goods where is_delete = 0 and sku="18558_P_140" order by id desc'; $sql = $dbConn->query($sql); $res = $dbConn->fetch_array_all($sql); //获取新仓库所有料号 $log_file = 'update_sku_stock/' . date('Y-m-d') . '.txt'; //print_r($res);exit; foreach ($res as $val) { $sku = $val['sku']; $pId = $val['id']; $date = date('Y-m-d H:i:s'); $erpSkuInfo = CommonModel::getErpSkuInfo($sku); //获取ERP仓位库存信息 //print_r($erpSkuInfo);exit; if ($erpSkuInfo['errocode'] != 200) { //获取信息失败 $log_info = sprintf("料号:%s, 时间:%s,信息:%s,返回值:%s \r\n", $sku, $date, '获取旧ERP库存失败', is_array($erpSkuInfo) ? json_encode($erpSkuInfo) : $erpSkuInfo); write_log($log_file, $log_info); continue; } //print_r($erpSkuInfo);exit; $sku_location = $erpSkuInfo['data']['goods_location']; if (!$sku_location) { //ERP仓位不存在 $log_info = sprintf("料号:%s, 时间:%s,信息:%s, 参数:%s, %s \r\n", $sku, $date, '没有仓位', $sku, $sku_location); write_log($log_file, $log_info); continue;
function act_checkSkuNum() { $bool = false; //标志是否有摒弃订单 $assignNUmber = $_POST['order_group']; $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); $skuinfo = whShelfModel::selectSku(" where sku = '{$sku}'"); //获取sku信息 //print_r($skuinfo);exit; //var_dump($skuinfo);exit; //$sku = getGoodsSn2($sku); $sku_num = $_POST['sku_num']; $assignId = $_POST['now_group_id']; $now_pname = $_POST['now_pname']; $sku_info = WhGoodsAssignModel::getDetail($assignId, " and a.sku='{$sku}' and a.checkUid=0"); //调拨单明细中的sku信息 //$sku_onhand = GroupDistributionModel::getSkuPositionStock("and c.sku='$sku' and b.pName='$now_pname'"); //$order_sku_info = $this->get_valid_order($sku_info[0]['shipOrderGroup'],$sku_info[0]['sku'],$sku_info[0]['pName']); $now_num = $sku_num + $sku_info['assignNum']; //已配货数加上本次配货数 if (!is_numeric($sku_num) || $now_num < 0) { self::$errCode = "007"; self::$errMsg = "出库数量必须为正整数,请确认!"; return false; } if ($sku_info['num'] < $now_num) { self::$errCode = "008"; self::$errMsg = "配货数量不能大于原始需求数量!"; return false; } //print_r($sku_info);exit; $erp_onhand = CommonModel::getErpSkuInfo($sku); //获取老ERP料号库存信息 if ($erp_onhand['errocode'] != 200) { self::$errCode = "014"; self::$errMsg = "拉取老ERP库存信息失败,请稍后再试!"; return false; } //根据转出仓库获取库存 $goods_count = $sku_info['storeId'] == 1 ? $erp_onhand['data']['goods_count'] : $erp_onhand['data']['second_count']; if ($sku_num > $goods_count) { self::$errCode = "009"; self::$errMsg = "配货数量不能大于旧ERP系统库存[{$goods_count}],请确认!"; return false; } $uid = $_SESSION['userId']; $scanTime = time(); $where = array('goodsAssignId' => $assignId, 'sku' => $sku); //拼接where条件 $update = array('scanUid' => $uid, 'scanTime' => $scanTime, 'assignNum' => "assignNum+{$sku_num}"); //拼接更新字段 TransactionBaseModel::begin(); $info = WhGoodsAssignModel::updateAssignDetail($where, $update); if ($info) { $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 = "010"; 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 = "011"; self::$errMsg = "更新仓位库存失败!"; return false; } /**** 插入出库记录 *****/ $paraArr = array('sku' => $sku, 'amount' => $sku_num, 'positionId' => $sku_info['positionId'], 'purchaseId' => $skuinfo['purchaseId'], 'ioType' => 1, 'ioTypeId' => 34, 'userId' => $_SESSION['userId'], 'reason' => '调拨出库'); $record = CommonModel::addIoRecores($paraArr); //出库记录 /** 暂时取消同步老ERP库存**/ $info = CommonModel::updateIoRecord($sku, $sku_num, 2, '仓库调拨', $_SESSION['userCnName'], $sku_info['pName']); //var_dump($info);exit; if ($info['errCode'] != 200) { TransactionBaseModel::rollback(); self::$errCode = "012"; self::$errMsg = "同步旧ERP库存失败!"; return false; } TransactionBaseModel::commit(); self::$errCode = "0"; self::$errMsg = "配货成功,请扫描下一个料号!"; $arr['sku'] = $sku; $arr['num'] = $sku_info['num']; $arr['assignNum'] = $sku_info['assignNum'] + $sku_num; return $arr; } else { self::$errCode = "013"; self::$errMsg = "更新料号状态失败!"; return false; } }