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;
 }
Exemplo n.º 2
0
 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;
     }
 }
Exemplo n.º 3
0
 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;
     }
 }
Exemplo n.º 4
0
</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;
Exemplo n.º 5
0
 public function initDB()
 {
     global $dbConn;
     self::$dbConn = $dbConn;
     mysql_query('SET NAMES UTF8');
 }
Exemplo n.º 6
0
 /**
  * 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;
 }
Exemplo n.º 7
0
 /**
  * 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;
 }
Exemplo n.º 8
0
 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');
 }
Exemplo n.º 9
0
 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;
     }
 }
Exemplo n.º 10
0
 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');
 }
Exemplo n.º 11
0
 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;
         }
     }
 }
Exemplo n.º 12
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;
 }
Exemplo n.º 13
0
 /**
  * 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);
 }