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;
 }
 function act_checkSkuNum()
 {
     $orderId = intval(trim($_POST['orderId']));
     $sku = trim($_POST['sku']);
     $sku = get_goodsSn($sku);
     $sku_num = intval(trim($_POST['sku_num']));
     $log_file = 'pda_orderOutB/' . date('Y-m-d') . '.txt';
     $date = date('Y-m-d-H');
     if (!$orderId) {
         self::$errCode = "001";
         self::$errMsg = "请扫描订单id!";
         return FALSE;
     }
     if (!$sku) {
         self::$errCode = "002";
         self::$errMsg = "请扫描料号!";
         return FALSE;
     }
     if (!$sku_num) {
         self::$errCode = "003";
         self::$errMsg = "请输入料号配货数!";
         return FALSE;
     }
     $skuinfo = whShelfModel::selectSku(" where sku = '{$sku}'");
     //获取sku信息
     $where = array('orderId' => $orderId, 'sku' => $sku);
     $sku_info = Pda_orderOutBModel::selectOrderRecord($where);
     //获取订单下该料号的信息
     if (empty($sku_info)) {
         self::$errCode = "004";
         self::$errMsg = "该订单没有此料号!";
         return FALSE;
     }
     $sku_info = $sku_info[0];
     $sku_onhand = GroupDistributionModel::getSkuPositionStock("and c.sku='{$sku}' and a.storeId = 2");
     //查看该料号的B仓库存
     $now_num = $sku_num + $sku_info['scanNum'];
     //已配货数加上本次配货数
     if (!is_numeric($sku_num) || $now_num <= 0) {
         self::$errCode = "005";
         self::$errMsg = "配货数量必须大于0,请确认!";
         return FALSE;
     }
     if ($sku_info['amount'] < $now_num) {
         self::$errCode = "006";
         self::$errMsg = "配货数量不能大于订单数!";
         return false;
     }
     if ($sku_num > $sku_onhand[0]['nums']) {
         self::$errCode = "007";
         self::$errMsg = "配货数不能大于系统库存,请确认!";
         return false;
     }
     $uid = $_SESSION['userId'];
     $scanTime = time();
     $where = array('orderId' => $orderId, 'sku' => $sku);
     //拼接where条件
     $update = array('scanUser' => $uid, 'scanTime' => $scanTime, 'scanNum' => $now_num);
     //拼接更新字段
     TransactionBaseModel::begin();
     $info = Pda_orderOutBModel::updateOrderRecord($where, $update);
     if ($info) {
         $where = array('sku' => $sku, 'storeId' => 2);
         $update = array('actualStock' => "actualStock - {$sku_num}");
         $info = WhGoodsAssignModel::updateSkuLocation($where, $update);
         //更新wh_sku_location的调拨库存和总库存
         if (!$info) {
             TransactionBaseModel::rollback();
             self::$errCode = "010";
             self::$errMsg = "更新总库存失败!";
             return false;
         }
         $positionInfo = whShelfModel::selectPositionInfo('id', array('pName' => $sku_info['pName']));
         //仓位信息
         $where = array('pId' => $skuinfo['id'], 'positionId' => $positionInfo['id'], 'storeId' => 2);
         $update = array('nums' => "nums - {$sku_num}");
         $info = WhGoodsAssignModel::updateProdcutPosition($where, $update);
         //更新wh_product_position_relation的仓位库存
         if (!$info) {
             TransactionBaseModel::rollback();
             self::$errCode = "011";
             self::$errMsg = "更新仓位库存失败!";
             return false;
         }
         /**** 插入出库记录 *****/
         $paraArr = array('sku' => $sku, 'amount' => $sku_num, 'positionId' => $positionInfo['id'], 'purchaseId' => $skuinfo['purchaseId'], 'ioType' => 1, 'ioTypeId' => 6, 'userId' => $_SESSION['userId'], 'reason' => 'B仓订单配货出库', 'ordersn' => $orderId);
         $record = CommonModel::addIoRecores($paraArr);
         //出库记录
         /** 同步老ERP订单配货记录**/
         $is_scan = $sku_info['amount'] == $now_num ? 1 : 0;
         $info = CommonModel::updateOrderScanRecord($orderId, $sku, $sku_num, $sku_info['amount'], $is_scan, $_SESSION['userCnName']);
         if ($info['errCode'] != 200) {
             TransactionBaseModel::rollback();
             self::$errCode = "012";
             self::$errMsg = "更新ERP配货记录失败!";
             $log_info = sprintf("订单号:%s, 时间:%s, 提示信息:%s, 信息记录: %s \r\n", $orderId, $date, self::$errMsg, is_array($info) ? json_encode($info) : $info);
             write_log($log_file, $log_info);
             return false;
         }
         TransactionBaseModel::commit();
         $where = array('orderId' => $orderId, 'scanUser' => 0);
         $info = Pda_orderOutBModel::selectOrderRecord($where);
         //查看该订单下是否还有未配货料号
         if (empty($info)) {
             self::$errCode = "200";
             self::$errMsg = "该订单已配货完成, 请扫描下一订单号!";
             return TRUE;
         } else {
             self::$errCode = "0";
             self::$errMsg = "配货成功,请扫描下一个料号!";
             $arr['sku'] = $sku;
             $arr['num'] = $sku_info['amount'];
             $arr['assignNum'] = $now_num;
             return $arr;
         }
     } else {
         self::$errCode = "013";
         self::$errMsg = "更新料号状态失败!";
         return false;
     }
 }