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); } } }
function act_groupGenerate() { $list_id = trim($_POST['print_list']); $order_all = array(); //获取所有请求生成提货单的配货单号 $list_info = OrderPrintListModel::getPrintList("*", "where id in({$list_id}) and storeId=2 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)) { self::$errCode = "401"; self::$errMsg = "配货单为空,请确认"; return false; } if (!empty($order_all)) { $userName = $_SESSION['userName']; $create_time = strtotime(date("Y-m-d")); $time = time(); $sku_arr = array(); $status_info = GroupRouteBModel::getOrderGroupB("*", "where createdTime>'{$create_time}' and user='******' order by id desc limit 0,1"); //当天打印次数 if (empty($status_info)) { $sequence = 1; } else { $sequence = $status_info[0]['todaySequence'] + 1; } //获取当前最后一个提货单编号 $group_info = GroupRouteBModel::getOrderGroupB("*", "order by id desc limit 0,1"); if (empty($group_info)) { $num = 0; } else { $num = substr($group_info[0]['shipOrderGroup'], 3); } foreach ($order_all as $order) { $position_arr = GroupRouteModel::getOrderPositionID($order); foreach ($position_arr as $position) { if ($position['storeId'] == 2) { if (isset($sku_arr[$position['pName']][$position['sku']])) { $sku_arr[$position['pName']][$position['sku']]['amount'] = $sku_arr[$position['pName']][$position['sku']]['amount'] + $position['amount']; $sku_arr[$position['pName']][$position['sku']]['shipOrderId'] = $sku_arr[$position['pName']][$position['sku']]['shipOrderId'] . ',' . $position['shipOrderId']; } else { $sku_arr[$position['pName']][$position['sku']]['amount'] = $position['amount']; $sku_arr[$position['pName']][$position['sku']]['shipOrderId'] = $position['shipOrderId']; } } } } ksort($sku_arr); $group_num = $num + 1; $group_num = str_pad($group_num, 9, "0", STR_PAD_LEFT); $group_num = "BPH" . $group_num; $string = ""; foreach ($sku_arr as $position => $position_info) { foreach ($position_info as $sku => $sku_info) { $string .= "('" . $sku . "','" . $sku_info['amount'] . "','" . $sku_info['shipOrderId'] . "','" . $group_num . "','" . $position . "','" . $sequence . "','" . $userName . "','" . $time . "'),"; } } $string = trim($string, ","); if (empty($string)) { self::$errCode = "004"; self::$errMsg = "没有B仓料号"; return false; } $list_one = GroupRouteBModel::insertOrderGroupB($string); if ($list_one) { self::$errMsg = "提货单生成已完成,请打印!"; return true; } else { self::$errCode = "003"; self::$errMsg = "提货单生成失败,请联系it!"; return false; } } else { self::$errCode = "003"; self::$errMsg = "请选择打印列表"; return false; } }
function act_searchSku() { $order_id = $_POST['ebay_id']; $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); $now_pname = trim($_POST['now_pname']); $state_status = array(402); //准备状态 $final_status = array(403); //配货完成状态 $no_express_delivery = array('中国邮政平邮', '中国邮政挂号', '香港小包平邮', '香港小包挂号', '德国邮政', '新加坡邮政', 'EUB', 'Global Mail'); //先核对订单 //兼容 EUB或者 包裹 扫描的是 trackno 而非ebayid $p_real_ebayid = '#^\\d+$#'; $p_trackno_eub = '#^(LK|RA|RB|RC|RR|RF|LN)\\d+(CN|HK|DE200)$#'; $is_eub_package_type = false; if (preg_match($p_real_ebayid, $order_id)) { } else { if (preg_match($p_trackno_eub, $order_id)) { $is_eub_package_type = true; } else { self::$errCode = "001"; self::$errMsg = "订单号[" . $order_id . "]格式有误"; return false; } } if ($is_eub_package_type === true) { $ordercheck = ShippingOrderModel::getShippingOrderInfo("b.*", "where a.tracknumber='{$order_id}' and a.is_delete=0"); } else { $ordercheck = ShippingOrderModel::getShippingOrder("*", "where id='{$order_id}'"); } if (empty($ordercheck)) { self::$errCode = '001'; self::$errMsg = '未找到订单/跟踪号[' . $order_id . ']'; return false; } else { $ebay_carrier = CommonModel::getShipingNameById($ordercheck[0]['transportId']); //$ebay_carrier = '中国邮政平邮'; if (!in_array($ebay_carrier, $no_express_delivery)) { self::$errCode = '001'; self::$errMsg = '请选择非快递订单!'; return false; } } if ($ordercheck[0]['orderStatus'] == 900) { self::$errCode = '002'; self::$errMsg = "该发货单[{$order_id}][已经废弃]!"; return false; } else { if (in_array($ordercheck[0]['orderStatus'], $final_status)) { self::$errCode = '005'; self::$errMsg = "该发货单已经扫描完成!"; return false; } } if (!in_array($ordercheck[0]['orderStatus'], $state_status)) { self::$errCode = '002'; self::$errMsg = "该发货单[{$order_id}][不在待配货]!"; return false; } //配货单所有料号及数量 $skuinfos = array(); $skuinfo = GroupRouteModel::getOrderPositionID($ordercheck[0]['id']); foreach ($skuinfo as $info) { $s_key = $info['sku'] . "-" . $info['pName']; $skuinfos[$s_key] = $info['amount']; } $eosr_arr = OrderPickingRecordsModel::getPickingRecords("*", "where shipOrderId={$ordercheck[0]['id']} and sku='{$sku}' and is_delete=0"); if (!$eosr_arr) { self::$errCode = "012"; self::$errMsg = "请扫描正确料号!"; return false; } else { $sku_stock = GroupRouteModel::getSkuPosition("where a.sku='{$sku}' and c.pName='{$now_pname}' and b.is_delete=0"); $s_key = $sku . "-" . $now_pname; $goods_sn = array(); //$gsi = get_sku_info($sku); $goods_sn['sku'] = $sku; //$goods_sn['gc'] = $gsi['realnums']; $goods_sn['gc'] = isset($sku_stock[0]['nums']) ? $sku_stock[0]['nums'] : 0; //$goods_sn['day']= floor($gsi['realnums']/$gsi['everyday_sale']); //库存天数 $goods_sn['day'] = ""; //库存天数 $goods_sn['nums'] = $skuinfos[$s_key]; $goods_sn['is_scan'] = $eosr_arr[0]['isScan'] == 1 ? "已扫描" : "未扫描"; //$eg = GroupRouteModel::getSkuPosition("where a.sku='$sku'"); $goods_sn['gl'] = $now_pname; self::$errCode = "400"; self::$errMsg = '成功搜索该料号信息!' . $sku; return $goods_sn; } }