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; } }
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) { /** 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;
/** * 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; }
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_export() { $checkUser = $_GET['checkUser']; $sku = $_GET['sku']; $startdate = $_GET['startdate']; $enddate = $_GET['enddate']; if (empty($checkUser) && empty($sku) && empty($startdate) && empty($enddate)) { echo "请选择导出条件"; exit; } if (!empty($checkUser)) { $where[] = "tallyUserId='{$checkUser}'"; } if (!empty($sku)) { $where[] = "sku = '{$sku}'"; } if (!empty($startdate)) { $start = strtotime($startdate); $where[] = "entryTime >{$start}"; } if (!empty($enddate)) { $end = strtotime($enddate); $where[] = "entryTime <{$end}"; } $where = implode(" AND ", $where); $where = " where is_delete=0 and entryStatus=0 and " . $where; $lists = packageCheckModel::selectList($where); $excel = new ExportDataExcel('browser', "pointKpiExport" . date('Y-m-d') . ".xls"); $excel->initialize(); /** edit by Gary**/ $tharr = array("点货人", "点货时间", "SKU", "数量", "良品数", "上架数", "批次号", '打标时间', '贴标时间', '检测时间', '上架时间', '备注'); $excel->addRow($tharr); foreach ($lists as $list) { $user = getUserNameById($list['tallyUserId']); $time = date('Y-m-d H:i:s', $list['entryTime']); $sku = $list['sku']; $num = $list['num']; $ichibanNums = $list['ichibanNums']; $shelvesNums = $list['shelvesNums']; $batchNum = $list['batchNum']; //新增打标、贴标、检测、上架时间 $printTime = $list['printTime'] ? date('Y-m-d H:i:s', $list['printTime']) : '无'; $pasteTime = getSkuTime(array('type' => 'paste', 'tallyList' => $list['id'])); $checkTime = $list['ichibanTime'] ? date('Y-m-d H:i:s', $list['ichibanTime']) : '无'; $inputArray = array('type' => 'input', 'sku' => $list['sku'], 'finishTime' => $list['finishTime'], 'shelvesNums' => $list['shelvesNums']); $inputTime = getSkuTime($inputArray); $tdarr = array($user, $time, $sku, $num, $ichibanNums, $shelvesNums, $batchNum, $printTime, $pasteTime, $checkTime, $inputTime, $list['note']); /** end**/ $excel->addRow($tdarr); } $excel->finalize(); exit; }