public function act_whShelfSku() { $sku = isset($_POST['sku']) ? $_POST['sku'] : ""; $sku = get_goodsSn($sku); $where = "where sku='{$sku}' and tallyStatus=0 and is_delete=0 and num >0 and ichibanNums>0"; $list = packageCheckModel::selectList($where); $ichibanNums = 0; $totalNums = 0; if (empty($list)) { self::$errCode = 444; self::$errMsg = "无该料号点货信息"; return $sku; } foreach ($list as $key => $value) { $ichibanNums = $ichibanNums + ($value['ichibanNums'] - $value['shelvesNums']); //可上架良品数 $totalNums += $value['num'] - $value['shelvesNums']; //可上架点货数 } $shelvesNums = $totalNums > $ichibanNums ? $ichibanNums : $totalNums; //可上架数 $info = $this->findPositionRelation($sku); //$actualStock = whShelfModel::selectSkuNums($sku); //print_r($now_position);die; //$res['ichibanNums'] = $ichibanNums; //$res['actualStock'] = $actualStock['actualStock']; $res['position'] = $info['now_position']; $res['storeposition'] = $info['now_storeposition']; $res['sku'] = $sku; //print_r($res); self::$errMsg = "输入数量或选择其他上架位置(共:" . $shelvesNums . ")"; return $res; }
function act_deletPrint() { $id_arr = $_POST['id']; $type = $_POST['type']; if ($type == 1) { foreach ($id_arr as $id) { $info = packageCheckModel::selectList("where id={$id} and is_delete = 0"); if (empty($info)) { self::$errCode = "003"; self::$errMsg = "没有信息!"; return false; } if ($info[0]['printTime']) { self::$errCode = "003"; self::$errMsg = "已打标,不能删除!"; return false; } } } $info = packageCheckModel::deletRecord($id_arr, $type); if ($info) { self::$errMsg = "删除成功!"; return true; } else { self::$errCode = "003"; self::$errMsg = "删除失败,请重试!"; return false; } }
function act_deletPrint() { $id_arr = $_POST['id']; $type = $_POST['type']; if ($type == 1) { foreach ($id_arr as $id) { /** QC已返回良品、已有上架则不许删除 edit by Gary start**/ $info = packageCheckModel::selectList("where id={$id} and is_delete = 0"); if (empty($info)) { self::$errCode = "003"; self::$errMsg = "没有点货信息!"; return false; } if ($info[0]['shelvesNums']) { self::$errCode = "003"; self::$errMsg = "包含已上架记录,不能删除!"; return false; } if ($info[0]['ichibanNums']) { self::$errCode = "003"; self::$errMsg = "QC已返回良品,不能删除!"; return false; } if ($info[0]['printTime']) { self::$errCode = "003"; self::$errMsg = "已打标,不能删除!"; return false; } /** end**/ } } $info = packageCheckModel::deletRecord($id_arr, $type); if ($info) { self::$errMsg = "删除成功!"; return true; } else { self::$errCode = "003"; self::$errMsg = "删除失败,请重试!"; return false; } }
</style> </head> <body> <?php $printId = $_SESSION['userId']; //print_r($_GET); $max_num = 10000; //isset($_GET['max_num'])?$_GET['max_num']:1000000; $idarr = isset($_GET['idarr']) ? $_GET['idarr'] : array(); $idarr = explode(",", $idarr); $lists = array(); $time = time(); foreach ($idarr as $key => $id) { $where = "where id={$id}"; $list = packageCheckModel::selectList($where); $goodscode = get_skuGoodsCode($list[0]['sku']); $pname_info = GroupRouteModel::getSkuPosition("where a.sku='{$list[0]['sku']}' and b.is_delete=0"); if (!empty($pname_info)) { $pname = $pname_info[0]['pName']; } else { $pname = ''; } $print_num = $list[0]['num'] > $max_num ? $max_num : $list[0]['num']; $groupInfo = printLabelModel::getGroupInfoByTallyListId($id); if (!empty($groupInfo)) { $group_id = $groupInfo[0]['id']; } else { //没有打标ID则跳转到打标页面 header("Location:index.php?act=printLabelPrint&mod=printLabel&max_num=10000000&idarr={$id}"); exit;
public function initDB() { global $dbConn; self::$dbConn = $dbConn; mysql_query('SET NAMES UTF8'); }
/** * whShelfAct::act_whPackageShelf() * 包材入库 * @return void */ public function act_whPackageShelf() { $userCnName = $_SESSION['userCnName']; $sku = trim($_POST['sku']) ? trim($_POST['sku']) : ''; $nums = intval(trim($_POST['nums'])); $log_file = 'packageWheself/' . date('Y-m-d') . '.txt'; $date = date('Y-m-d H:i:s'); if (!$sku) { self::$errCode = 01; self::$errMsg = "sku不能为空"; return false; } if (!preg_match("/^MT\\d+\$/", $sku)) { self::$errCode = 02; self::$errMsg = "该模块只能入库包材!"; return false; } if (!$nums) { self::$errCode = 03; self::$errMsg = "数量不能为空"; return false; } $where = "where sku='{$sku}' and tallyStatus=0 and entryStatus = 0 and is_delete = 0"; $tallying_list = packageCheckModel::selectList($where); if (empty($tallying_list)) { self::$errCode = 04; self::$errMsg = "无该料号点货信息"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg); write_log($log_file, $log_info); return false; } else { $tallying_num = 0; foreach ($tallying_list as $tallying) { $tallying_num += $tallying['ichibanNums'] - $tallying['shelvesNums']; } if ($nums > $tallying_num) { self::$errCode = 05; self::$errMsg = "上架数不能大于点货良品数[{$tallying_num}]"; $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 = 06; self::$errMsg = "上架数量不能小于1"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg); write_log($log_file, $log_info); return false; } $where = " where sku = '{$sku}'"; $skuinfo = whShelfModel::selectSku($where); if (empty($skuinfo)) { self::$errCode = 07; 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']; } $return_num = $nums; $in_positionId = 0; $userId = $_SESSION['userId']; TransactionBaseModel::begin(); /**** 更新总库存 *****/ $actualStock = whShelfModel::selectSkuNums($sku); if (!empty($actualStock)) { $where = "where sku='{$sku}' and storeId=1"; $info = whShelfModel::updateStoreNum($nums, $where); if (!$info) { self::$errCode = 00; 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, 1); if (!$info) { self::$errCode = 00; 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' => $in_positionId, 'purchaseId' => $purchaseId, 'ioType' => 2, 'ioTypeId' => 13, 'userId' => $userId, 'reason' => '上架入库'); $record = CommonModel::addIoRecores($paraArr); //出库记录 if (!$record) { self::$errCode = 010; 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 = "where sku='{$sku}' and tallyStatus=0 and ichibanNums>0 and is_delete=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 = 011; self::$errMsg = "更新点货记录状态失败!"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, $msg, $list[$i]['id'], $need_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"); $nums = $nums - $need_nums; } else { $msg = whShelfModel::updateShelfNum($list[$i]['id'], $nums); if (!$msg) { self::$errCode = 012; self::$errMsg = "更新点货记录已上架数量失败!"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, $msg, $list[$i]['id'], $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"); $nums = 0; } $i++; } $time = time(); //添加时间戳 /*$purInfo = CommonModel::endPurchaseOrder($sku,$return_num, $time); //api获取采购订单处理情况 if( !isset($purInfo['errorCode']) || $purInfo['errorCode'] != 0){ self::$errCode = 405; self::$errMsg = "完结采购订单出错,上架失败"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, json_encode($purInfo), $sku, $return_num); write_log($log_file, $log_info); TransactionBaseModel :: rollback(); return false; } write_log($log_file, date('Y-m-d H:i:s').'完结采购订单成功'."{$sku}\r\n");*/ //更新旧erp库存 $update_onhand = CommonModel::updateOnhand($sku, $return_num, $userCnName, 0, '', $time); if ($update_onhand['errCode'] != 200) { self::$errCode = 415; self::$errMsg = "更新旧erp库存失败"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s, %s \r\n", $sku, $date, self::$errMsg, is_array($update_onhand) ? json_encode($update_onhand) : $update_onhand, $sku, $return_num, $userCnName); write_log($log_file, $log_info); TransactionBaseModel::rollback(); return false; } write_log($log_file, date('Y-m-d H:i:s') . '更新旧erp库存成功' . "{$sku}\r\n"); TransactionBaseModel::commit(); self::$errMsg = "料号[{$sku}]上架成功!"; return true; }
/** * WhOpenApiAct::act_getWaitShelfNum() * 获取料号等待上架数量 * @return void */ function act_getWaitShelfNum() { $sku = isset($_GET['sku']) ? trim($_GET['sku']) : ''; $sku = addslashes($sku); if ($sku) { $num = packageCheckModel::getSkuWaitShelfNum($sku); } else { $num = 0; } $res['num'] = $num; return $res; }
public function view_printLabelList() { $storeId = intval(trim($_GET['storeId'])); $storeId = $storeId ? $storeId : 1; $navlist = array(array('url' => '', 'title' => '入库'), array('url' => 'index.php?mod=printLabel&act=printLabel&storeId=' . $storeId, 'title' => '打标操作'), array('url' => '', 'title' => '打标清单')); $toplevel = 1; $secondlevel = $storeId == 1 ? 12 : 19; $this->smarty->assign('navlist', $navlist); $this->smarty->assign('toplevel', $toplevel); $this->smarty->assign('secondlevel', $secondlevel); $this->smarty->assign('storeId', $storeId); $checkUser = isset($_GET['checkUser']) ? $_GET['checkUser'] : ""; $sku = isset($_GET['sku']) ? $_GET['sku'] : ""; $start = isset($_GET['start']) ? $_GET['start'] : ""; $end = isset($_GET['end']) ? $_GET['end'] : ""; if (empty($checkUser) && empty($sku) && empty($start) && empty($end)) { $where = ""; } else { if (!empty($checkUser)) { $where[] = "printerId='{$checkUser}'"; $this->smarty->assign("checkUser", $checkUser); } if (!empty($sku)) { $where[] = "sku = '{$sku}'"; $this->smarty->assign("sku", $sku); } if (!empty($start) && !empty($end)) { $starttime = strtotime($start . " 00:00:00"); $endtime = strtotime($start . " 23:59:59"); $where[] = "(entryTime between {$starttime} and {$endtime})"; $this->smarty->assign("start", $start); $this->smarty->assign("end", $end); } elseif (!empty($start) && empty($end)) { $starttime = strtotime($start . " 00:00:00"); $where[] = "entryTime >{$starttime}"; $this->smarty->assign("start", $start); } elseif (empty($start) && !empty($end)) { $endtime = strtotime($start . " 23:59:59"); $where[] = "entryTime < {$endtime}"; $this->smarty->assign("end", $end); } $where = " AND " . implode(" AND ", $where); //$where = "where ".$where; } $where = "where printerId IS NOT NULL and is_delete=0" . $where . " and storeId = '{$storeId}' order by id desc"; $pagesize = 20; //$lists = packageCheckModel::selectList($where); //$nums = count($lists); $nums = packageCheckModel::getTotalNums($where); $pager = new Page($nums, $pagesize); $lists = packageCheckModel::selectList($where . " " . $pager->limit); if ($nums > $pagesize) { //分页 $pagestr = $pager->fpage(array(0, 2, 3, 4, 5, 6, 7, 8, 9)); } else { $pagestr = $pager->fpage(array(0, 2, 3)); } $usermodel = UserModel::getInstance(); //打标员 $Marking_user = $usermodel->getGlobalUserLists('global_user_id,global_user_name', "where a.global_user_job=168", '', ''); $this->smarty->assign('Marking_user', $Marking_user); foreach ($lists as $key => $list) { //到货库存 $sku_arrival = OmAvailableModel::getTNameList("wh_sku_location", "arrivalInventory", "where sku='{$list['sku']}'"); $lists[$key]['arrivalInventory'] = $sku_arrival[0]['arrivalInventory']; } $this->smarty->assign('pagestr', $pagestr); $this->smarty->assign("lists", $lists); $toptitle = '打标清单列表'; //顶部链接 $this->smarty->assign('toptitle', $toptitle); $userList = packageCheckModel::selectUser(); $this->smarty->display('printLabelList.htm'); }
public static function pushAbnormalPrint($idArr) { self::initDB(); if (!is_array($idArr)) { return false; } $o_count = count($idArr); foreach ($idArr as $id) { $ent_list = packageCheckModel::selectList("where id={$id} and entryStatus=2"); if (!empty($ent_list)) { return false; } } $info = array(); foreach ($idArr as $id) { $list = packageCheckModel::selectList("where id={$id}"); $waitShelfNum = packageCheckModel::getSkuWaitShelfNum($list[0]['sku']); //等待上架数量 $info[] = array('sku' => $list[0]['sku'], 'amount' => $list[0]['num'] + $waitShelfNum, 'tallymanId' => $list[0]['tallyUserId'], 'orderid' => $list[0]['id']); } $paramArr = array('protocol' => 'param2', 'method' => 'purchase.addSkuReach', 'orderArr' => json_encode($info)); //$data = UserCacheModel::callOpenSystem2($paramArr,"post"); //$url = 'http://test.purchase.valsun.cn/json.php?mod=sku&act=addSkuReach'; $url = 'http://purchase.valsun.cn/json.php?mod=sku&act=addSkuReach'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); //设置你要抓取的URL curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设置CURL参数,要求结果保存到字符串还是输出到屏幕上 curl_setopt($curl, CURLOPT_POST, 1); //设置为POST提交 curl_setopt($curl, CURLOPT_POSTFIELDS, $paramArr); //提交的参数 $data = curl_exec($curl); //运行CURL,请求网页 curl_close($curl); /** 添加推送日志**/ $log_file = 'UnNormalPackageRecord/' . date('Ymd') . '.txt'; //日志文件路径 $date = date('Y-m-d H:i:s'); $log_info = sprintf("推送信息:%s, 时间:%s,错误信息:%s \r\n", $paramArr['orderArr'], $date, is_array($data) ? json_encode($data) : $data); write_log($log_file, $log_info); $data = json_decode($data, true); if ($data['errCode'] == 0 && isset($data['errCode'])) { return true; } else { return false; } }
public function view_abnormal() { $storeId = intval(trim($_GET['storeId'])); $storeId = $storeId ? $storeId : 1; //仓库ID $navlist = array(array('url' => '', 'title' => '入库'), array('url' => 'index.php?mod=packageCheck&act=packageCheck&storeId=' . $storeId, 'title' => '点货操作'), array('url' => '', 'title' => '异常录入')); $toplevel = 1; $secondlevel = $storeId == 1 ? "11" : 18; $this->smarty->assign('navlist', $navlist); $this->smarty->assign('toplevel', $toplevel); $this->smarty->assign('secondlevel', $secondlevel); $this->smarty->assign('storeId', $storeId); $checkUser = isset($_GET['checkUser']) ? $_GET['checkUser'] : ""; $status = isset($_GET['status']) ? $_GET['status'] : 1; $sku = isset($_GET['sku']) ? $_GET['sku'] : ""; $start = isset($_GET['start']) ? $_GET['start'] : ""; $end = isset($_GET['end']) ? $_GET['end'] : ""; $where[] = "entryStatus='{$status}'"; $this->smarty->assign("status", $status); if (!empty($checkUser)) { $where[] = "tallyUserId='{$checkUser}'"; $this->smarty->assign("checkUser", $checkUser); } if (!empty($sku)) { $where[] = "sku = '{$sku}'"; $this->smarty->assign("sku", $sku); } if (!empty($start)) { $start_time = strtotime($start . " 00:00:00"); $where[] = "entryTime >={$start_time}"; $this->smarty->assign("start", $start); } if (!empty($end)) { $end_time = strtotime($end . " 23:59:59"); $where[] = "entryTime <={$end_time}"; $this->smarty->assign("end", $end); } $where = " AND " . implode(" AND ", $where); $where = "where is_delete=0 and entryStatus!=0" . $where; $where .= " and storeId ='{$storeId}'"; $pagesize = 200; //print_r($where);exit; $lists = packageCheckModel::selectList($where); $nums = count($lists); $pager = new Page($nums, $pagesize); $lists = packageCheckModel::selectList($where . " " . $pager->limit); if ($nums > $pagesize) { //分页 $pagestr = $pager->fpage(array(0, 2, 3, 4, 5, 6, 7, 8, 9)); } else { $pagestr = $pager->fpage(array(0, 2, 3)); } $usermodel = UserModel::getInstance(); //点货员 $Marking_user = $usermodel->getGlobalUserLists('global_user_id,global_user_name', "where a.global_user_job=209", '', ''); $this->smarty->assign('Marking_user', $Marking_user); $toptitle = '异常录入'; //顶部链接 $this->smarty->assign('toptitle', $toptitle); $this->smarty->assign('pagestr', $pagestr); $this->smarty->assign("lists", $lists); $userList = packageCheckModel::selectUser(); $this->smarty->display('abnormal.htm'); }
public function act_editPackageNote() { $id = intval(trim($_POST['id'])); $note = trim($_POST['note']); //$note = iconv('GBK', 'UTF-8', $note);write_log('aa/aaa.txt', $note."\r\n"); if ($id) { $a = packageCheckModel::update_note($id, $note); if ($a === FALSE) { self::$errCode = "001"; self::$errMsg = "更新备注失败"; return false; } else { self::$errCode = 0; self::$errMsg = "更新备注成功"; return TRUE; } } }
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; }
/** * WhGoodsAssignAct::process_sku() * 处理停售料号 * @return */ function process_sku($skus) { $log_file = 'clearSkuLocation/' . date('Y-m-d') . '.txt'; $skus = array_filter($skus); //处理料号数组 if (empty($skus)) { return FALSE; } $num_arr = array(); //库存不为空料号 $is_sale = array(); //非停售料号 $sucess = array(); //清空成功料号 $fail = array(); //清空失败料号 //print_r($skus);exit; foreach ($skus as $sku) { $goods_count = CommonModel::getGoodsCount($sku); //获取旧ERP库存 if ($goods_count !== FALSE && $goods_count != 0) { //库存非零情况 $num_arr[$sku] = $goods_count; continue; } $sku_info = packageCheckModel::selectSku($sku); //获取料号信息 if (!in_array($sku_info[0]['goodsStatus'], array(2, 3))) { $is_sale[] = $sku; continue; } TransactionBaseModel::begin(); //清空料号仓位 $info = whShelfModel::clearSkuLocation($sku_info[0]['id']); $date = date('Y-m-d H:i:s'); if ($info == TRUE) { $log_info = sprintf("料号:%s, 时间:%s, 信息:%s \r\n", $sku, $date, '新系统仓位清空成功'); write_log($log_file, $log_info); } else { $log_info = sprintf("料号:%s, 时间:%s, 信息:%s \r\n", $sku, $date, '新系统仓位清空失败'); write_log($log_file, $log_info); $fail[] = $sku; continue; } //同步清除老ERP仓位 $info = CommonModel::clearSkuLocation($sku); //接口 if ($info['errCode'] == 200) { $log_info = sprintf("料号:%s, 时间:%s, 信息:%s,返回值:%s \r\n", $sku, $date, '老ERP仓位清空成功', is_array($info) ? json_encode($info) : $info); write_log($log_file, $log_info); $sucess[] = $sku; } else { $log_info = sprintf("料号:%s, 时间:%s, 信息:%s,返回值:%s \r\n", $sku, $date, '老ERP仓位清空失败', is_array($info) ? json_encode($info) : $info); write_log($log_file, $log_info); $fail[] = $sku; TransactionBaseModel::rollback(); continue; } TransactionBaseModel::commit(); } return array('num_arr' => $num_arr, 'is_sale' => $is_sale, 'sucess' => $sucess, 'fail' => $fail); }