function act_check_position() { $position = trim($_POST['position']); $return = array(); if ($position) { $positionInfo = WhPositionDistributionModel::get_position_info('pName', '', $position); if (empty($positionInfo)) { self::$errCode = 201; self::$errMsg = '没有该仓位信息!'; return FALSE; } $positionId = $positionInfo[0]['pName']; $relation = WhOldPositionRelationModel::select(array('old_positionId' => $positionId), 'id'); if (!empty($relation)) { self::$errCode = 203; self::$errMsg = '该仓位已关联新仓位!'; return FALSE; } } else { self::$errCode = 202; self::$errMsg = '请输入旧仓位!'; return FALSE; } self::$errCode = 200; return $positionId; }
function act_opisitionManage() { $data = array(); $position_a = array(); $position_d = array(); $mark = true; $position = $_POST['position']; $x_alixs = $_POST['axis_x']; $y_alixs = $_POST['axis_y']; $floor = $_POST['floor']; $storeid = $_POST['storeid']; $storey = $_POST['storey']; $areaId = $_POST['areaId']; $position_a = explode('|', $position); foreach ($position_a as $po_a) { $position_d = explode(',', $po_a); $alixs = array_splice($position_d, -3); //print_r($position_d);exit; $where = array('x_alixs' => $x_alixs, 'y_alixs' => $y_alixs, 'z_alixs' => $alixs[0], 'storey' => $storey, 'areaId' => $areaId, 'storeId' => $storeid); $info = WhPositionDistributionModel::delete_data($where); //先清空该位置仓位信息 foreach ($position_d as $pname) { if (!empty($pname)) { $lists = PositionModel::getPositionList("*", "where pName='{$pname}' and storeId={$storeid}"); if (!empty($lists)) { $data = array('x_alixs' => $x_alixs, 'y_alixs' => $y_alixs, 'z_alixs' => $alixs[0], 'floor' => $floor, 'storeId' => $storeid, 'storey' => $storey, 'areaId' => $areaId, 'is_enable' => $alixs[1], 'type' => $alixs[2]); if (!WhPositionModel::update($data, "and id='{$lists[0]['id']}'")) { $mark = false; } } else { $list = WhPositionModel::getPositionList("*", "where pName='{$pname}' and x_alixs='{$x_alixs}' and y_alixs='{$y_alixs}' and z_alixs='{$position_d['1']}' and floor='{$floor}' and storeId={$storeid}"); if (!empty($list)) { $data = array('pName' => $pname, 'is_enable' => $alixs[1], 'type' => $alixs[2]); if (!WhPositionModel::update($data, "and id='{$list[0]['id']}'")) { $mark = false; } } else { if (!empty($pname)) { $data = array('pName' => $pname, 'x_alixs' => $x_alixs, 'y_alixs' => $y_alixs, 'z_alixs' => $alixs[0], 'floor' => $floor, 'storey' => $storey, 'areaId' => $areaId, 'is_enable' => $alixs[1], 'type' => $alixs[2], 'storeId' => $storeid); if (!WhPositionModel::insertRow($data)) { $mark = false; } } } } } } //$pname = trim($position_d[0]); } if ($mark) { return true; } else { self::$errCode = "003"; self::$errMsg = "更新失败,请重试!"; return false; } }
public function view_getWhIoRecordsList() { $type = isset($_GET['type']) ? $_GET['type'] : ''; $status = isset($_GET['status']) ? $_GET['status'] : ''; $ioType = isset($_GET['ioType']) ? $_GET['ioType'] : ''; if (intval($ioType) != 1 && intval($ioType) != 2) { //1为出库,2为入库 $this->smarty->assign('$toptitle', '出入库记录列表'); $this->smarty->assign('status', '参数错误'); $this->smarty->assign('whIoRecordsList', null); //循环列表 $this->smarty->display("whIoRecords.htm"); } else { $ioType = intval($ioType); $whIoRecordsAct = new WhIoRecordsAct(); $where = "WHERE ioType='{$ioType}' "; if ($type == 'search') { $id = isset($_GET['id']) ? post_check($_GET['id']) : ''; $ordersn = isset($_GET['ordersn']) ? post_check($_GET['ordersn']) : ''; $ioTypeId = isset($_GET['ioTypeId']) ? post_check($_GET['ioTypeId']) : ''; $sku = isset($_GET['sku']) ? post_check($_GET['sku']) : ''; $purchaseId = isset($_GET['purchaseId']) ? post_check($_GET['purchaseId']) : ''; $userId = isset($_GET['userId']) ? post_check($_GET['userId']) : ''; $positionId = isset($_GET['position']) ? post_check($_GET['position']) : ''; $cStartTime = isset($_GET['cStartTime']) ? post_check($_GET['cStartTime']) : ''; $cEndTime = isset($_GET['cEndTime']) ? post_check($_GET['cEndTime']) : ''; if (!empty($id)) { $where .= "AND id='{$id}' "; } if (!empty($ordersn)) { $where .= "AND ordersn='{$ordersn}' "; } if (!empty($ioTypeId)) { $where .= "AND ioTypeId='{$ioTypeId}' "; } if (!empty($sku)) { $where .= "AND sku='{$sku}' "; } if (!empty($purchaseId)) { $purchaseId = getUserIdByName($purchaseId); $where .= "AND purchaseId='{$purchaseId}' "; } if (!empty($userId)) { $userId = getUserIdByName($userId); $where .= "AND userId='{$userId}' "; } if ($positionId) { $positionId = WhPositionDistributionModel::get_position_info('id', '', $positionId); $positionId = empty($positionId) ? '-1' : $positionId[0]['id']; $where .= "AND positionId = '{$positionId}' "; } if (!empty($cStartTime)) { $startTime = strtotime($cStartTime . '00:00:00'); $where .= "AND createdTime >='{$startTime}' "; } if (!empty($cEndTime)) { $endTime = strtotime($cEndTime . '23:59:59'); $where .= "AND createdTime <='{$endTime}' "; } } $total = $whIoRecordsAct->act_getTNameCount('wh_iorecords', $where); $num = 100; //每页显示的个数 $page = new Page($total, $num, '', 'CN'); $where .= "ORDER BY createdTime DESC " . $page->limit; $whIoRecordsList = $whIoRecordsAct->act_getTNameList('wh_iorecords', '*', $where); if (!empty($_GET['page'])) { if (intval($_GET['page']) <= 1 || intval($_GET['page']) > ceil($total / $num)) { $n = 1; } else { $n = (intval($_GET['page']) - 1) * $num + 1; } } else { $n = 1; } if ($total > $num) { //输出分页显示 $show_page = $page->fpage(array(0, 2, 3, 4, 5, 6, 7, 8, 9)); } else { $show_page = $page->fpage(array(0, 2, 3)); } $toptitle = '出库记录列表'; $ioSearchName = '出库类型'; $navlist = array(array('url' => 'index.php?mod=skuStock&act=getSkuStockList', 'title' => '库存信息'), array('url' => '', 'title' => '出库记录列表')); $this->smarty->assign('toplevel', 0); $this->smarty->assign('secondlevel', '34'); $ioTypeList = WhIoStoreModel::getIoTypeListByioType(0); if ($ioType == 2) { $toptitle = '入库记录列表'; $ioSearchName = '入库类型'; $this->smarty->assign('secondlevel', 35); $navlist = array(array('url' => 'index.php?mod=skuStock&act=getSkuStockList', 'title' => '库存信息'), array('url' => '', 'title' => '入库记录列表')); $ioTypeList = WhIoStoreModel::getIoTypeListByioType(1); } $this->smarty->assign('toptitle', $toptitle); $this->smarty->assign('ioSearchName', $ioSearchName); $this->smarty->assign('ioTypeList', $ioTypeList); $this->smarty->assign('navlist', $navlist); $this->smarty->assign('show_page', $show_page); $this->smarty->assign('status', $status); $usermodel = UserModel::getInstance(); foreach ($whIoRecordsList as $key => $val) { $whIoRecordsList[$key]['ioTypeName'] = WhIoStoreModel::getIoTypeNameById($val['ioTypeId']); $whIoRecordsList[$key]['whName'] = WhIoStoreModel::getWhNameById($val['storeId']); $purchase_user_info = $usermodel->getGlobalUserLists('global_user_name', "where a.global_user_id='{$val['purchaseId']}'", '', 'limit 1'); $whIoRecordsList[$key]['purchaseName'] = $purchase_user_info[0]['global_user_name']; //$user_info = $usermodel->getGlobalUserLists('global_user_name',"where a.global_user_id='{$val['userId']}'",'','limit 1'); //$whIoRecordsList[$key]['userName'] = $user_info[0]['global_user_name']; $whIoRecordsList[$key]['userName'] = getUserNameById($val['userId']); $position_info = whShelfModel::selectPosition("where id={$val['positionId']}"); $whIoRecordsList[$key]['pName'] = $position_info[0]['pName']; } $this->smarty->assign('whIoRecordsList', $whIoRecordsList ? $whIoRecordsList : null); //循环列表 $this->smarty->display("whIoRecords.htm"); } }
/** * WaveBuildAct::process_scan_details() * 处理订单详情生成对应的配货记录 * @param array $order_detail * @return void */ public function process_scan_details($order_detail) { $return = array(); if (is_array($order_detail)) { foreach ($order_detail as $key => $val) { $position_info = WhPositionDistributionModel::get_position_info(array('storey', 'areaId'), $val['positionId']); $areaName = WhWaveAreaInfoModel::get_area_info('areaName', $position_info[0]['areaId']); $return[$key] = array('sku' => $val['sku'], 'skuAmount' => $val['amount'], 'pName' => $val['pName'], 'storey' => $position_info[0]['storey'], 'area' => $areaName[0]['areaName']); } } return $return; }
/** * MakeRouteIndexAct::act_makePositionIndex() * 生成仓位索引 * @return void */ public function act_makePositionIndex() { $positionInfo = WhPositionDistributionModel::get_position_info_union_area(); if (empty($positionInfo)) { self::$errCode = 204; self::$errMsg = '没有关联的仓位信息!'; return FALSE; } //print_r($positionInfo);exit; $y = range(0, 10); //纵坐标范围 $num = floor(count($y) / 2); //循环次数 $y = -2; $sort = array(); //存放横纵坐标索引值 while ($num > 0) { //生成排序Y坐标索引,键名是Y坐标,值是索引级别,值越大越优先 $y_max = $y < 0 ? 0 : $y + 2; $sort[$y] = $sort[$y_max] = $num; //$sort[$num] = array($y, $y_max); $y += 3; $num--; } $new_arr = array(); foreach ($positionInfo as $position) { $new_arr[$position['areaId']][$sort[$position['y_alixs']]][$position['x_alixs']][$position['z_alixs']][] = $position; } //print_r($new_arr);exit; unset($positionInfo); WhBaseModel::begin(); $where = 'routeType = 4'; $info = WhWaveRouteRelationModel::delete_relation($where); if (!$info) { WhBaseModel::rollback(); self::$errCode = 202; self::$errMsg = '删除旧仓位索引失败!'; return FALSE; } $string = ''; $i = 1; //仓位排序判断 蛇形配货 $route = 1; //仓位索引排序 $data_arr = array(); //插入数据 $routeType = 4; //索引类型为仓位。 foreach ($new_arr as $area) { foreach ($area as $y_sort) { //按照Y轴排序的结果 //print_r($y_sort);exit; foreach ($y_sort as $x_sort) { //按照X轴排序的结果 $i % 2 === 0 ? rsort($x_sort) : sort($x_sort); //print_r($x_sort);exit; foreach ($x_sort as $z_sort) { //按照Z轴排序的结果 sort($z_sort); //print_r($z_sort);exit(); foreach ($z_sort as $position) { $data_arr[] = array('name' => $position['pName'], 'routeId' => $position['id'], 'route' => $route, 'routeType' => $routeType); if ($route % 100 == 0) { //每3000条插入一次数据\ //var_dump($data_arr);exit; $info = WhWaveRouteRelationModel::insert_data($data_arr); if (!$info) { WhBaseModel::rollback(); self::$errCode = 203; self::$errMsg = '插入新仓位索引失败!'; return FALSE; } $data_arr = array(); } $route++; } } } } $i++; } //print_r($data_arr);exit; unset($new_arr); if (!empty($data_arr)) { $info = WhWaveRouteRelationModel::insert_data($data_arr); if (!$info) { WhBaseModel::rollback(); self::$errCode = 203; self::$errMsg = '插入新仓位索引失败!'; return FALSE; } } WhBaseModel::commit(); self::$errCode = 200; self::$errMsg = '更新仓位索引成功!'; return TRUE; }