Example #1
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;
     }
 }
Example #2
0
 public function act_whShelf()
 {
     //print_r($_POST);
     $log_file = 'update_onhandle/' . date('Ymd') . '.txt';
     //日志文件路径
     $date = date('Y-m-d H:i:s');
     $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'];
     $storeId = intval(trim($_POST['storeId']));
     $storeId = $storeId ? $storeId : 1;
     if (empty($sku)) {
         self::$errCode = 401;
         self::$errMsg = "sku不能为空";
         $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg);
         write_log($log_file, $log_info);
         return false;
     }
     if (preg_match("/^MT\\d+\$/", $sku)) {
         self::$errCode = 402;
         self::$errMsg = "包材料号请在包材入库添加入库!";
         $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg);
         write_log($log_file, $log_info);
         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;
     }
     if ($nums < 1) {
         self::$errCode = 403;
         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}' and tallyStatus=0 and entryStatus = 0 and is_delete = 0 and num >0 and ichibanNums>0";
     $tallying_list = packageCheckModel::selectList($where);
     if (empty($tallying_list)) {
         self::$errCode = 402;
         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;
         //良品总数减去上架总数
         $total_num = 0;
         //点货总数减去上架总数
         foreach ($tallying_list as $tallying) {
             $tallying_num += $tallying['ichibanNums'] - $tallying['shelvesNums'];
             $total_num += $tallying['num'] - $tallying['shelvesNums'];
         }
         if ($nums > $tallying_num) {
             self::$errCode = 402;
             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 > $total_num) {
             self::$errCode = 402;
             self::$errMsg = "上架数不能大于点货总数[{$total_num}]";
             $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 = 404;
         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'];
     }
     /**
      * 增加新品采购入库类型判断
      *@author Gary(yym)
      * 2014-04-01 
      * start
      */
     $is_new = self::judge_is_new($sku);
     $ioTypeId = $is_new === TRUE ? 33 : 13;
     //13为采购入库 33为新品采购入库 ,都是出入库类型表id
     /** end */
     /** 检测该料号及数量是否已在临时表中存放**/
     $temp_record = whShelfModel::getWhselfTempRecord($sku, $nums);
     if (empty($temp_record)) {
         //不存在失败记录
         $key = md5($sku . $nums . time() . $_SESSION['userId']);
         //$waitNum      =  $nums;//CommonModel::checkOnWaySkuNum($sku);
     } else {
         $key = $temp_record['rand_key'];
         //$waitNum      =  $temp_record['num'];
         //日志
         $log_info = sprintf("料号:%s, 时间:%s, 失败记录: %s \r\n", $sku, $date, json_encode($temp_record));
         write_log($log_file, $log_info);
     }
     //$key              =  empty($temp_record) ? substr(md5($sku.$nums.time().$_SESSION['userId']), 0, 16) : $temp_record['rand_key']; //生成判断key值
     /** end**/
     /** 取消判断上架数量是否满足采购在途数量**/
     /*if($nums > $waitNum){
                self::$errCode = 405;
     		self::$errMsg  = "上架数不能大于订单在途数量";
                $log_info      = sprintf("料号:%s, 时间:%s,错误信息:%s ,上架数量:%s, 在途数量:%s \r\n", $sku, $date, self::$errMsg, $nums, $waitNum);
                write_log($log_file, $log_info);
     		return false;
            }
            $log_info      = sprintf("料号:%s, 时间:%s,错误信息:%s ,上架数量:%s,在途数量:%s \r\n", $sku, $date, '小于在途数量', $nums,$waitNum);
            */
     $return_num = $nums;
     $in_positionId = 0;
     $userId = $_SESSION['userId'];
     TransactionBaseModel::begin();
     /***无料号对应仓位的关系时更新关系表***/
     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'";
         $insert_relation = whShelfModel::insertRelation($skuId, $positionId, $nums, $storeId, $type);
         if (!$insert_relation) {
             self::$errCode = 408;
             self::$errMsg = "插入关系表失败!";
             $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, $insert_relation, $tname, $set);
             write_log($log_file, $log_info);
             TransactionBaseModel::rollback();
             return false;
         }
         write_log($log_file, date('Y-m-d H:i:s') . '插入关系表成功' . "{$sku}\r\n");
         //更新仓位使用状态
         $update_position = OmAvailableModel::updateTNameRow("wh_position_distribution", "set is_enable=1", "where id={$positionId}");
         if ($update_position === false) {
             self::$errCode = 409;
             self::$errMsg = "更新仓位使用状态失败!";
             $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数: %s \r\n", $sku, $date, self::$errMsg, $update_position, $positionId);
             write_log($log_file, $log_info);
             TransactionBaseModel::rollback();
             return false;
         }
         write_log($log_file, date('Y-m-d H:i:s') . '更新仓位使用状态成功!' . "{$sku}\r\n");
     }
     //更新指定仓位存货数量
     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 = "更新仓位库存失败!";
             $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, $update_position, $num, $select_now_store);
             write_log($log_file, $log_info);
             TransactionBaseModel::rollback();
             return false;
         }
         write_log($log_file, date('Y-m-d H:i:s') . '更新仓位库存成功!' . "{$sku}\r\n");
     }
     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 = "更新仓位库存失败!";
             $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, $update_position, $nums, $select_now_position);
             write_log($log_file, $log_info);
             TransactionBaseModel::rollback();
             return false;
         }
         write_log($log_file, date('Y-m-d H:i:s') . '更新仓位库存成功!' . "{$sku}\r\n");
     }
     /**** 更新总库存 *****/
     $actualStock = whShelfModel::selectSkuNums($sku, $storeId);
     if (!empty($actualStock)) {
         $where = "where sku='{$sku}' and storeId={$storeId}";
         $info = whShelfModel::updateStoreNum($nums, $where);
         if (!$info) {
             self::$errCode = 412;
             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, $storeId);
         if (!$info) {
             self::$errCode = 412;
             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' => $ioTypeId, 'userId' => $userId, 'reason' => '上架入库');
     $record = CommonModel::addIoRecores($paraArr);
     //出库记录
     if (!$record) {
         self::$errCode = 413;
         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 and num >0 and ichibanNums>0";
     $list = packageCheckModel::selectList($where);
     $i = 0;
     while ($list[$i] && $nums) {
         $need_nums = $list[$i]['ichibanNums'] - $list[$i]['shelvesNums'];
         //良品数与上架数差值
         $list_nums = $list[$i]['num'] - $list[$i]['shelvesNums'];
         //点货数与上架数差值
         $need_nums = $list_nums > $need_nums ? $need_nums : $list_nums;
         if ($nums >= $need_nums) {
             //更改状态
             $msg = whShelfModel::updateTallyStatus($list[$i]['id'], $need_nums);
             if (!$msg) {
                 self::$errCode = 413;
                 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 = 414;
                 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++;
     }
     $position_info = PositionModel::getPositionList("pName", "where id={$in_positionId}");
     if (empty($position_info[0]['pName'])) {
         self::$errCode = 415;
         self::$errMsg = "上架仓位不能为空";
         $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg);
         write_log($log_file, $log_info);
         TransactionBaseModel::rollback();
         return false;
     }
     $time = time();
     //添加时间戳
     $status = 1;
     //临时表数据状态
     //更新旧erp库存
     $update_onhand = CommonModel::updateOnhand($sku, $return_num, $userCnName, $position_info[0]['pName'], '', $time, $key);
     if ($update_onhand['errCode'] != 200) {
         self::$errCode = 415;
         self::$errMsg = "更新旧erp库存失败";
         $status = 0;
         $log_info = sprintf("料号:%s, 时间:%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, $position_info[0]['pName']);
         write_log($log_file, $log_info);
         TransactionBaseModel::rollback();
         //将临时数据存入上架临时表中状态
         whShelfModel::insertFailSku($sku, $return_num, $_SESSION['userId'], $status, $key);
         TransactionBaseModel::commit();
         return false;
     }
     $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s, %s, %s \r\n", $sku, $date, '更新旧erp库存成功', is_array($update_onhand) ? json_encode($update_onhand) : $update_onhand, $sku, $return_num, $userCnName, $position_info[0]['pName']);
     write_log($log_file, $log_info);
     /** 完结采购订单**/
     $purInfo = CommonModel::endPurchaseOrder($sku, $return_num, $time, $key);
     //api获取采购订单处理情况
     if (!isset($purInfo['errorCode']) || $purInfo['errorCode'] != 0) {
         $status = 0;
         //临时表数据状态
         self::$errCode = 405;
         self::$errMsg = "完结采购订单出错,上架失败";
         $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, is_array($purInfo) ? json_encode($purInfo) : $purInfo, $sku, $return_num);
         write_log($log_file, $log_info);
         TransactionBaseModel::rollback();
         //将临时数据存入上架临时表中状态
         whShelfModel::insertFailSku($sku, $return_num, $_SESSION['userId'], $status, $key);
         TransactionBaseModel::commit();
         return false;
     }
     $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, '完结采购订单成功', is_array($purInfo) ? json_encode($purInfo) : $purInfo, $sku, $return_num);
     write_log($log_file, $log_info);
     //将临时数据存入上架临时表中状态
     //$where  =   array('sku'=>$sku, 'num'=>$return_num, 'rand_key'=>$key);
     if (!empty($temp_record)) {
         //有失败记录则更新临时表状态
         $update = array('status' => 1);
         whShelfModel::updateFailSku($key, $update);
     }
     TransactionBaseModel::commit();
     self::$errMsg = "料号[{$sku}]上架成功!";
     return true;
 }
Example #3
0
 function act_updatePositionIndex()
 {
     set_time_limit(0);
     $x_aixs = 80;
     $y_aixs = 40;
     //$z_aixs = 100;
     //$z_step = 100;
     $floor = 1;
     $f_step = 1;
     //清空数据库
     PositionModel::delPositonIndex("where storeId=1");
     //8级,一列一通道
     $x_step8 = 5;
     $y_step8 = 2;
     $i8 = 0;
     $g8 = 1;
     while ($i8 < $x_aixs) {
         $j = 0;
         while ($j <= $y_aixs) {
             $k = 0;
             while ($k <= $floor) {
                 $where = "where x_alixs>={$i8} and x_alixs<" . ($i8 + $x_step8) . " and y_alixs<={$j} and y_alixs>" . ($j - $y_step8) . " and floor={$k} and storeId=1";
                 //$position_info = PositionModel::getPositionList("id","where x_alixs>='{$i8}' and x_alixs<'{($i8+$x_step8)}' and y_alixs>'{($j-$y_step8)}' and floor='{$k}'");
                 $position_info = PositionModel::getPositionList("id", $where);
                 if (!empty($position_info)) {
                     $data = array();
                     $position_id = '';
                     foreach ($position_info as $position) {
                         $position_id .= ',' . $position['id'];
                     }
                     $position_id = trim($position_id, ',');
                     //$position_id = $position_id."-".$j."-".$k."-".$floor."-".$where;
                     $data = array('level' => 8, 'piece' => $g8, 'positionId' => $position_id);
                     $insertid = PositionModel::insertPositonIndex($data);
                     if ($insertid) {
                         $g8 += 1;
                     }
                 }
                 $k += $f_step;
             }
             $j += $y_step8;
         }
         $i8 += $x_step8;
     }
     //7级,一列两通道
     $x_step7 = 5;
     $y_step7 = 4;
     $i7 = 0;
     $g7 = 1;
     while ($i7 < $x_aixs) {
         $j = 2;
         while ($j <= $y_aixs) {
             $k = 0;
             while ($k <= $floor) {
                 $where = "where x_alixs>={$i7} and x_alixs<" . ($i7 + $x_step7) . " and y_alixs<={$j} and y_alixs>" . ($j - $y_step7) . " and floor={$k} and storeId=1";
                 //$position_info = PositionModel::getPositionList("id","where x_alixs>='{$i7}' and x_alixs<'{($i7+$x_step7)}' and y_alixs<='{$j}' and y_alixs>'{($j-$y_step7)}' and floor='{$k}'");
                 $position_info = PositionModel::getPositionList("id", $where);
                 if (!empty($position_info)) {
                     $data = array();
                     $position_id = '';
                     foreach ($position_info as $position) {
                         $position_id .= ',' . $position['id'];
                     }
                     $position_id = trim($position_id, ',');
                     $data = array('level' => 7, 'piece' => $g7, 'positionId' => $position_id);
                     $insertid = PositionModel::insertPositonIndex($data);
                     if (insertid) {
                         $g7 += 1;
                     }
                 }
                 $k += $f_step;
             }
             $j += $y_step7;
         }
         $i7 += $x_step7;
     }
     //6级,两列四通道
     $x_step6 = 10;
     $y_step6 = 8;
     $i6 = 0;
     $g6 = 1;
     while ($i6 < $x_aixs) {
         $j = 6;
         while ($j <= $y_aixs) {
             $k = 0;
             while ($k <= $floor) {
                 $where = "where x_alixs>={$i6} and x_alixs<" . ($i6 + $x_step6) . " and y_alixs<={$j} and y_alixs>" . ($j - $y_step6) . " and floor={$k} and storeId=1";
                 //$position_info = PositionModel::getPositionList("id","where x_alixs>='{$i6}' and x_alixs<'{($i6+$x_step6)}' and y_alixs<='{$j}' and y_alixs>'{($j-$y_step6)}' and floor='{$k}'");
                 $position_info = PositionModel::getPositionList("id", $where);
                 if (!empty($position_info)) {
                     $data = array();
                     $position_id = '';
                     foreach ($position_info as $position) {
                         $position_id .= ',' . $position['id'];
                     }
                     $position_id = trim($position_id, ',');
                     $data = array('level' => 6, 'piece' => $g6, 'positionId' => $position_id);
                     $insertid = PositionModel::insertPositonIndex($data);
                     if ($insertid) {
                         $g6 += 1;
                     }
                 }
                 $k += $f_step;
             }
             $j += $y_step6;
         }
         $i6 += $x_step6;
     }
     //5级,两列八通道
     $x_step5 = 10;
     $y_step5 = 16;
     $i5 = 0;
     $g5 = 1;
     while ($i5 < $x_aixs) {
         $j = 14;
         while ($j <= $y_aixs) {
             $k = 0;
             while ($k <= $floor) {
                 $where = "where x_alixs>={$i5} and x_alixs<" . ($i5 + $x_step5) . " and y_alixs<={$j} and y_alixs>" . ($j - $y_step5) . " and floor={$k} and storeId=1";
                 //$position_info = PositionModel::getPositionList("id","where x_alixs>='{$i5}' and x_alixs<'{($i5+$x_step5)}' and y_alixs<='{$j}' and y_alixs>'{($j-$y_step5)}' and floor='{$k}'");
                 $position_info = PositionModel::getPositionList("id", $where);
                 if (!empty($position_info)) {
                     $data = array();
                     $position_id = '';
                     foreach ($position_info as $position) {
                         $position_id .= ',' . $position['id'];
                     }
                     $position_id = trim($position_id, ',');
                     $data = array('level' => 5, 'piece' => $g5, 'positionId' => $position_id);
                     $insertid = PositionModel::insertPositonIndex($data);
                     if ($insertid) {
                         $g5 += 1;
                     }
                 }
                 $k += $f_step;
             }
             $j += $y_step5;
         }
         $i5 += $x_step5;
     }
     //4级,南北八通道(切半)
     $x_step4 = 40;
     $y_step4 = 16;
     $i4 = 0;
     $g4 = 1;
     while ($i4 < $x_aixs) {
         $j = 14;
         while ($j <= $y_aixs) {
             $k = 0;
             while ($k <= $floor) {
                 $where = "where x_alixs>={$i4} and x_alixs<" . ($i4 + $x_step4) . " and y_alixs<={$j} and y_alixs>" . ($j - $y_step4) . " and floor={$k} and storeId=1";
                 //$position_info = PositionModel::getPositionList("id","where x_alixs>='{$i4}' and x_alixs<'{($i4+$x_step4)}' and y_alixs<='{$j}' and y_alixs>'{($j-$y_step4)}' and floor='{$k}'");
                 $position_info = PositionModel::getPositionList("id", $where);
                 if (!empty($position_info)) {
                     $data = array();
                     $position_id = '';
                     foreach ($position_info as $position) {
                         $position_id .= ',' . $position['id'];
                     }
                     $position_id = trim($position_id, ',');
                     $data = array('level' => 4, 'piece' => $g4, 'positionId' => $position_id);
                     $insertid = PositionModel::insertPositonIndex($data);
                     if ($insertid) {
                         $g4 += 1;
                     }
                 }
                 $k += $f_step;
             }
             $j += $y_step4;
         }
         $i4 += $x_step4;
     }
     //3级,南北区
     $x_step3 = 40;
     $y_step3 = 40;
     $i3 = 0;
     $g3 = 1;
     while ($i3 < $x_aixs) {
         $j = 38;
         while ($j <= $y_aixs) {
             $k = 0;
             while ($k <= $floor) {
                 $where = "where x_alixs>={$i3} and x_alixs<" . ($i3 + $x_step3) . " and y_alixs<={$j} and y_alixs>" . ($j - $y_step3) . " and floor={$k} and storeId=1";
                 //$position_info = PositionModel::getPositionList("id","where x_alixs>='{$i3}' and x_alixs<'{($i3+$x_step3)}' and y_alixs<='{$j}' and y_alixs>'{($j-$y_step3)}' and floor='{$k}'");
                 $position_info = PositionModel::getPositionList("id", $where);
                 if (!empty($position_info)) {
                     $data = array();
                     $position_id = '';
                     foreach ($position_info as $position) {
                         $position_id .= ',' . $position['id'];
                     }
                     $position_id = trim($position_id, ',');
                     $data = array('level' => 3, 'piece' => $g3, 'positionId' => $position_id);
                     $insertid = PositionModel::insertPositonIndex($data);
                     if ($insertid) {
                         $g3 += 1;
                     }
                 }
                 $k += $f_step;
             }
             $j += $y_step3;
         }
         $i3 += $x_step3;
     }
     //2级,二三楼
     $g2 = 1;
     $k = 0;
     while ($k <= $floor) {
         $position_info = PositionModel::getPositionList("id", "where floor='{$k}' and storeId=1");
         if (!empty($position_info)) {
             $data = array();
             $position_id = '';
             foreach ($position_info as $position) {
                 $position_id .= ',' . $position['id'];
             }
             $position_id = trim($position_id, ',');
             $data = array('level' => 2, 'piece' => $g2, 'positionId' => $position_id);
             $insertid = PositionModel::insertPositonIndex($data);
             if ($insertid) {
                 $g2 += 1;
             }
         }
         $k += $f_step;
     }
     return true;
 }
Example #4
0
    ?>
>
                                        <?php 
    echo $i->title();
    ?>
                                    </option>
                                <?php 
}
?>
                            </select>
                        </div>
                        <div class="form-group col-sm-9">
                            <label for="position">Select Position</label>
                            <select name="position">
                                <?php 
foreach (PositionModel::all() as $i) {
    ?>
                                    <option value="<?php 
    echo $i->id;
    ?>
" <?php 
    echo $item->position_id == $i->id ? ' selected' : '';
    ?>
>
                                        <?php 
    echo $i->title();
    ?>
                                    </option>
                                <?php 
}
?>
    BookGenreModel::create(array('book_id' => 7, 'genre_id' => 10));
    BookGenreModel::create(array('book_id' => 8, 'genre_id' => 13));
    BookGenreModel::create(array('book_id' => 9, 'genre_id' => 12));
    BookGenreModel::create(array('book_id' => 10, 'genre_id' => 12));
    BookGenreModel::create(array('book_id' => 11, 'genre_id' => 12));
    BookGenreModel::create(array('book_id' => 12, 'genre_id' => 3));
    BookGenreModel::create(array('book_id' => 13, 'genre_id' => 4));
    BookGenreModel::create(array('book_id' => 14, 'genre_id' => 2));
    BookGenreModel::create(array('book_id' => 15, 'genre_id' => 8));
    BookGenreModel::create(array('book_id' => 16, 'genre_id' => 9));
    BookGenreModel::create(array('book_id' => 17, 'genre_id' => 10));
    BookGenreModel::create(array('book_id' => 18, 'genre_id' => 11));
    BookGenreModel::create(array('book_id' => 19, 'genre_id' => 13));
    BookGenreModel::create(array('book_id' => 20, 'genre_id' => 12));
    BookGenreModel::create(array('book_id' => 21, 'genre_id' => 13));
    BookGenreModel::create(array('book_id' => 22, 'genre_id' => 3));
    BookGenreModel::create(array('book_id' => 23, 'genre_id' => 4));
    BookGenreModel::create(array('book_id' => 24, 'genre_id' => 2));
    BookGenreModel::create(array('book_id' => 25, 'genre_id' => 8));
    BookGenreModel::create(array('book_id' => 26, 'genre_id' => 9));
    BookGenreModel::create(array('book_id' => 27, 'genre_id' => 10));
    BookGenreModel::create(array('book_id' => 28, 'genre_id' => 11));
    BookGenreModel::create(array('book_id' => 29, 'genre_id' => 12));
    BookGenreModel::create(array('book_id' => 30, 'genre_id' => 12));
}
if (!$db->tableExists('order')) {
    OrderModel::create(array('user_id' => 1, 'datetime' => "2014-11-11 11:11:11"));
}
if (!$db->tableExists('position')) {
    PositionModel::create(array('order_id' => 1, 'book_id' => 1, 'amount' => 1, 'price' => 12.5));
}
Example #6
0
 function act_groupIndex()
 {
     $userName = $_SESSION['userName'];
     $order_all = array();
     $status = '';
     $list_id = trim($_POST['print_list']);
     if (empty($list_id)) {
         return "-[<font color='#FF0000'>配货单为空,请确认</font>]-";
         exit;
     }
     //清空数据库本人记录
     GroupRouteModel::delRouteIndex("where user='******'");
     //获取所有请求生成配货清单的配货单号
     $list_info = OrderPrintListModel::getPrintList("*", "where id in({$list_id}) and storeId=1 and is_delete=0");
     if ($list_info) {
         foreach ($list_info as $info) {
             $order_arr = array();
             $order_arr = array_filter(explode(',', $info['orderIds']));
             foreach ($order_arr as $orders) {
                 $order_all[] = $orders;
             }
         }
     }
     if (empty($order_all)) {
         return "-[<font color='#FF0000'>配货单为空,请确认</font>]-";
         exit;
     }
     for ($level = 8; $level > 0; $level--) {
         $order_index = array();
         if ($level == 1) {
             //剩下的全公司订单
             $string = '';
             $order_res = array();
             foreach ($order_all as $order) {
                 $now_order_info = GroupRouteModel::getRouteIndex("*", "where shipOrderId={$order} and user='******'");
                 if (!$now_order_info) {
                     $location_info = array();
                     $position_arr = GroupRouteModel::getOrderPositionIDGroup($order);
                     foreach ($position_arr as $position) {
                         $location_info[] = $position['pName'];
                     }
                     sort($location_info);
                     $order_res[$order] = $location_info[0];
                 }
             }
             asort($order_res);
             foreach ($order_res as $ord => $value) {
                 $string .= "('" . $ord . "','" . $level . "','" . $userName . "'),";
             }
             $string = trim($string, ",");
             if (!empty($string)) {
                 $list_one = GroupRouteModel::insertRouteIndex($string);
                 if ($list_one) {
                     $status .= " -[<font color='#33CC33'>操作记录: " . $level . "级索引生成成功</font>]<br/>";
                     $status .= " -[<font color='#33CC33'>操作记录: 订单生产最优配货组完成,请输入打印预览条数进行打印</font>]<br/>";
                     $status .= " -[<font color='#33CC33'>温馨提示: 生成配货索引后请不要刷新该页面,如刷新会重新生成,可能造成数据出错</font>]";
                     return $status;
                     //	$order_count = GroupRouteModel::getRouteIndexNum("where user='******'");
                     //	$group_bool = 1;
                 } else {
                     $status .= " -[<font color='#FF0000'>操作记录: " . $level . "级索引生成失败</font>]<br/>";
                     $status .= " -[<font color='#FF0000'>操作记录: 订单生产最优配货组失败,请重试</font>]";
                     return $status;
                 }
             } else {
                 $status .= " -[<font color='#33CC33'>操作记录: 订单生产最优配货组完成,请输入打印预览条数进行打印</font>]<br/>";
                 $status .= " -[<font color='#33CC33'>温馨提示: 生成配货索引后请不要刷新该页面,如刷新会重新生成,可能造成数据出错</font>]";
                 return $status;
             }
         } else {
             $string = '';
             $level_info = PositionModel::getPositonIndexList("*", "where level='{$level}'");
             //仓位级别索引
             foreach ($order_all as $order) {
                 $now_order_info = GroupRouteModel::getRouteIndex("*", "where shipOrderId={$order} and user='******'");
                 if (!$now_order_info) {
                     $position_arr = GroupRouteModel::getOrderPositionID($order);
                     //记录订单sku可能存在的级别里面的某个模块
                     if (!empty($position_arr)) {
                         foreach ($level_info as $levels) {
                             $bool = true;
                             $position_id = array_filter(explode(',', $levels['positionId']));
                             foreach ($position_arr as $position) {
                                 if (!in_array($position['positionId'], $position_id)) {
                                     $bool = false;
                                     break;
                                 }
                             }
                             if ($bool) {
                                 $order_index[$levels['piece']][] = $order;
                                 break;
                             }
                         }
                     }
                 }
             }
             foreach ($order_index as $key => $index) {
                 $piece_count = count($index);
                 //30单为配货单位
                 if ($piece_count < 30) {
                     unset($order_index[$key]);
                 } else {
                     $del_num = $piece_count % 30;
                     //for($i=0;$i<$del_num;$i++){
                     for ($i = $piece_count - 1; $i >= $piece_count - $del_num; $i--) {
                         unset($order_index[$key][$i]);
                     }
                 }
             }
             if (!empty($order_index)) {
                 foreach ($order_index as $order) {
                     foreach ($order as $o) {
                         $string .= "('" . $o . "','" . $level . "','" . $userName . "'),";
                     }
                 }
             }
             $string = trim($string, ",");
             if (!empty($string)) {
                 $list_one = GroupRouteModel::insertRouteIndex($string);
                 if ($list_one) {
                     $status .= " -[<font color='#33CC33'>操作记录: " . $level . "级索引生成成功</font>]<br/>";
                 } else {
                     $status .= " -[<font color='#FF0000'>操作记录: " . $level . "级索引生成失败</font>]<br/>";
                 }
             }
             //print_r($order_index);
         }
     }
 }
Example #7
0
 public static function getPositonIndexList($select, $where)
 {
     self::initDB();
     $sql = "select {$select} from `wh_position_index` {$where} ";
     $query = self::$dbConn->query($sql);
     if ($query) {
         $ret = self::$dbConn->fetch_array_all($query);
         return $ret;
         //成功, 返回列表数据
     } else {
         self::$errCode = "003";
         self::$errMsg = "error";
         return false;
     }
 }