function act_checkSkuNum() { $bool = false; //标志是否有摒弃订单 $shipOrderGroup = $_POST['order_group']; $sku = trim($_POST['sku']); //$sku = getGoodsSn2($sku); $sku_num = $_POST['sku_num']; $group_id = $_POST['now_group_id']; $now_pname = $_POST['now_pname']; $sku_info = GroupDistributionModel::getGroupDistList("*", "where shipOrderGroup='{$shipOrderGroup}' and sku='{$sku}' and pName='{$now_pname}' and status=0"); $sku_onhand = GroupDistributionModel::getSkuPositionStock("and c.sku='{$sku}' and b.pName='{$now_pname}' and a.storeId=1"); $order_sku_info = $this->get_valid_order($sku_info[0]['shipOrderGroup'], $sku_info[0]['sku'], $sku_info[0]['pName']); if (!is_numeric($sku_num) || $sku_num == 0) { self::$errCode = "003"; self::$errMsg = "出库数量必须为正整数,请确认!"; return false; } if ($sku_num > $sku_onhand[0]['nums']) { self::$errCode = "003"; self::$errMsg = "出库数量不能大于系统库存,请确认!"; return false; } if ($sku_num > $order_sku_info['sku_amount']) { self::$errCode = "003"; self::$errMsg = "出库数量不能大于料号数量,请确认!"; return false; } //订单摒弃 if ($sku_num < $order_sku_info['sku_amount']) { $rem_order = array(); $rem_order_car = array(); $rem_order_num = array(); $now_num = 0; $tmp_num = 0; $orders = ''; //$differ_num = $order_sku_info['sku_amount']-$sku_num; foreach ($sku_info as $info) { $orders .= $info['shipOrderId'] . ","; } $orders = "(" . trim($orders, ",") . ")"; $abandon_orders = GroupDistributionModel::getShipOrderPay("a.createdTime,b.shipOrderId,b.skuAmount,b.carNumber", "where a.id in {$orders} and a.orderStatus=402 and b.pName='{$now_pname}' order by a.createdTime asc"); foreach ($abandon_orders as $order) { $tmp_num = $now_num + $order['skuAmount']; if ($tmp_num <= $sku_num) { $rem_order[] = $order['shipOrderId']; $rem_order_car[] = $order['carNumber']; $rem_order_num[] = $order['skuAmount']; $now_num = $tmp_num; } } $bool = true; } $car_info = array(); if ($bool) { foreach ($rem_order_car as $key => $r_order_car) { $car_info[] = array('car' => $r_order_car, 'num' => $rem_order_num[$key]); } $submit_orders = implode(',', $rem_order); $submit_nums = implode(',', $rem_order_num); } else { foreach ($order_sku_info['car_number'] as $key => $r_order_car) { $car_info[] = array('car' => $r_order_car, 'num' => $order_sku_info['sku_number'][$key]); } $submit_orders = implode(',', $order_sku_info['orders']); $submit_nums = implode(',', $order_sku_info['sku_number']); } $res = array(); $res['res_car_info'] = $car_info; $res['submit_orders'] = $submit_orders; $res['submit_nums'] = $submit_nums; return $res; }