Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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;
     }
 }
Exemplo n.º 3
0
 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");
     }
 }
Exemplo n.º 4
0
 /**
  * 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;
 }
Exemplo n.º 5
0
 /**
  * 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;
 }