Exemplo n.º 1
0
 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;
 }