Пример #1
0
 public function act_packageCheck()
 {
     //print_r($_POST);
     //ob_start();
     $infoarr = $_POST['infoarr'];
     //print_r($infoarr);exit;
     $userId = $_SESSION['userId'];
     $checkUser = intval(trim($_POST['checkUser']));
     $storeId = intval(trim($_POST['storeId']));
     $storeId = $storeId ? $storeId : 1;
     if (empty($infoarr) || !$checkUser) {
         self::$errCode = 201;
         self::$errMsg = "点货人或点货详情为空!请确认!";
         return false;
     }
     if (empty($userId)) {
         self::$errCode = 202;
         self::$errMsg = "登录超时,请先登录!";
         return false;
     }
     $message = "";
     $sku_arr = array();
     $time = date('YmdHis', time());
     //批次号时间
     $rand_arr = range(10, 2000);
     //批次号随机数组
     //foreach($infoarr as $key => $value){
     //			$info = explode("*",$value);
     //			$sku 	 	 = trim($info[0]);
     //			$skuinfo	 = packageCheckModel::selectSku($sku);
     //			if(!$skuinfo || empty($skuinfo)){
     //				self::$errCode = 401;
     //				self::$errMsg  = "此sku {$sku} 不存在";
     //
     //				return false;
     //			}
     //		}
     OmAvailableModel::begin();
     foreach ($infoarr as $key => $value) {
         $insertArr = array();
         //插入数据初始化
         $info = explode("*", $value);
         if (!empty($info[0]) && !empty($info[1])) {
             $entryStatus = 0;
             $sku = trim($info[0]);
             $amount = trim($info[1]);
             if ($amount <= 0) {
                 self::$errCode = 401;
                 self::$errMsg = "此{$sku} :数量必须大于0";
                 return FALSE;
             }
             $skuinfo = packageCheckModel::selectSku($sku);
             //检测sku是否存在
             if (!$skuinfo) {
                 self::$errCode = 401;
                 self::$errMsg = "此sku {$sku} 不存在";
                 OmAvailableModel::rollback();
                 return false;
             } else {
                 if (array_key_exists($sku, $sku_arr)) {
                     $sornum = $sku_arr[$sku] + 1;
                     $sku_arr[$sku] = $sornum;
                 } else {
                     $sornum = 1;
                     $sku_new_arr = array($sku => 1);
                     $sku_arr = array_merge($sku_arr, $sku_new_arr);
                 }
                 $skuid = $skuinfo[0]['id'];
                 $purchaseId = $skuinfo[0]['purchaseId'];
                 $insertArr['batchNum'] = $time . $skuid . $sornum . array_shift($rand_arr);
             }
             //判断是否是包材料号
             $is_package = preg_match("/^MT\\d+\$/", $sku);
             if ($is_package) {
                 $checkOnWaySku = 0;
                 //包材料号不许推送采购
                 $insertArr['ichibanNums'] = $amount;
                 $insertArr['ichibanTime'] = time();
             } else {
                 //验证sku在途数量是否足够
                 //print_r($amount);exit;
                 $checkOnWaySku = checkSkuPackage($sku, $amount);
             }
             if ($checkOnWaySku == 0) {
                 $skulocation = packageCheckModel::selectStore($sku, $storeId);
                 if (!empty($skulocation)) {
                     $msg = packageCheckModel::updateStore($sku, $amount, $storeId);
                 } else {
                     $msg = packageCheckModel::insertStore($sku, $amount, $storeId);
                 }
                 if (!$msg) {
                     self::$errCode = 402;
                     self::$errMsg = "sku {$sku} 更新库存失败";
                     OmAvailableModel::rollback();
                     return false;
                 }
             } else {
                 $entryStatus = 1;
             }
             $insertArr['sku'] = $sku;
             $insertArr['num'] = $amount;
             $insertArr['tallyUserId'] = $checkUser;
             $insertArr['entryUserId'] = $userId;
             $insertArr['entryTime'] = time();
             $insertArr['purchaseId'] = $purchaseId;
             $insertArr['storeId'] = $storeId;
             $insertArr['entryStatus'] = $entryStatus;
             $queryinfo = packageCheckModel::insertRecord($insertArr);
             if ($queryinfo) {
                 if ($checkOnWaySku == 1) {
                     $message .= "<font color='#FF0000'>料号{$sku} 点货数量{$amount} 异常,需到异常录入确认数量并推送采购系统!</font><br>";
                 } else {
                     $message .= "料号{$sku} 点货数量{$amount} 录入系统成功!<br>";
                 }
             } else {
                 $arr['errCode'] = 403;
                 OmAvailableModel::rollback();
                 $message .= "料号{$sku} 点货数量{$amount} 录入系统失败!请确认!<br>";
             }
         }
     }
     OmAvailableModel::commit();
     return urlencode($message);
 }