瀏覽代碼

修改编辑订单的物料检测的信息

lvhao 1 周之前
父節點
當前提交
6f2952b0f9
共有 1 個文件被更改,包括 69 次插入14 次删除
  1. 69 14
      core/CoreApp/models/Model_logic_order.php

+ 69 - 14
core/CoreApp/models/Model_logic_order.php

@@ -690,10 +690,46 @@ class Model_logic_order extends Lin_Model {
     //避免同事填错了erp的信息 然后匹配错误出库
     //避免同事填错了erp的信息 然后匹配错误出库
     public function checkOrderProduct($list){
     public function checkOrderProduct($list){
        
        
-        //规则1 长度 检测14 
-        $size_slist = $this->typeclass->find_all('classid = 14','id');
-        $size_list = array_column($size_slist,'id');
-        
+        $classid_must_ids = [6,8,10,12,13,14,15,16,18,25,27,33,35,46];
+        $sku_rules = [];
+        //16 类目  13 等级 8 头发颜色 15 曲度 14 长度
+        //发条
+        $ft = [16=>0,13=>0,8=>0,15=>0,14=>0];
+        $sku_rules[126] = $ft;
+        //16 类目  13 等级 8 头发颜色 15 曲度 27 发块前头类型 12 头路设计 10 密度 25 蕾丝尺寸 14 长度 
+        //发块
+        $fk = [16=>0,13=>0,8=>0,15=>0,27=>0,12=>0,10=>0,25=>0,14=>0];
+        $sku_rules[127] = $fk;
+        //16 类目  13 等级  8 头发颜色 15曲度 18 头套种类 6 发帽大小 10 密度 14 长度
+        //头套
+        $tt = [16=>0,13=>0,8=>0,15=>0,18=>0,6=>0,10=>0,14=>0];
+        $sku_rules[128] = $tt;
+        //16 类目  13 等级  33 Extension类型 8 头发颜色 15 曲度 14 长度
+        //接发类型
+        $jflx = [16=>0,13=>0,33=>0,8=>0,15=>0,14=>0];
+        $sku_rules[130] = $jflx;
+        //16 类目  13 等级  35 配件类型 8 头发颜色 15 曲度 14 长度
+        //配件
+        $pj = [16=>0,13=>0,35=>0,8=>0,15=>0,14=>0];
+        $sku_rules[133] = $pj;
+        //16 类目  13 等级   8 头发颜色 15 曲度 14 长度
+        //化纤头套
+        $hqtt = [16=>0,13=>0,8=>0,15=>0,14=>0];
+        $sku_rules[1297] = $hqtt;
+        //16 类目  13 等级 46 化纤其它分类   8 头发颜色 15 曲度 14 长度
+        //化纤其它
+        $hqqt = [16=>0,13=>0,46=>0,8=>0,15=>0,14=>0];
+        $sku_rules[1702] = $hqqt;
+
+
+
+        $size_slist = $this->typeclass->find_all('classid in ('.implode(",",$classid_must_ids).')','id,classid');
+
+        $group_list = [];
+        foreach($size_slist as $k=>$v){
+            $group_list[$v['id']] = $v['classid'];
+        }
+      
         foreach($list as $k=>$v){
         foreach($list as $k=>$v){
             $tmp_str = $v[0];
             $tmp_str = $v[0];
             $list[$k]['err_sku'] = 0;
             $list[$k]['err_sku'] = 0;
@@ -701,7 +737,8 @@ class Model_logic_order extends Lin_Model {
                 $tmp_arr = explode(',',$tmp_str);
                 $tmp_arr = explode(',',$tmp_str);
                 $pj_str = $tmp_arr[1].$tmp_arr[0]."-";
                 $pj_str = $tmp_arr[1].$tmp_arr[0]."-";
                 if(strpos($pj_str,'-131-') === false){
                 if(strpos($pj_str,'-131-') === false){
-                    $list[$k]['err_sku'] = $this->checkSku($size_list,$pj_str);
+
+                    $list[$k]['err_sku'] = $this->checkSku($group_list,$pj_str,$sku_rules);
                 }else{
                 }else{
                     //131 不用判断
                     //131 不用判断
                 }
                 }
@@ -709,14 +746,14 @@ class Model_logic_order extends Lin_Model {
                  $pj_str = $tmp_str;
                  $pj_str = $tmp_str;
                 //基本上就是131了 但是呢 erp奇葩多 还是加上判断吧
                 //基本上就是131了 但是呢 erp奇葩多 还是加上判断吧
                 if(strpos($pj_str,'-131-') === false){
                 if(strpos($pj_str,'-131-') === false){
-                    $list[$k]['err_sku'] = $this->checkSku($size_list,$pj_str);
+                    $list[$k]['err_sku'] = $this->checkSku($group_list,$pj_str,$sku_rules);
                 }else{
                 }else{
                     //131 不用判断
                     //131 不用判断
                 }
                 }
             }
             }
 
 
         }
         }
-      
+     
         return $list;
         return $list;
     }
     }
     //校验sku
     //校验sku
@@ -724,15 +761,33 @@ class Model_logic_order extends Lin_Model {
      * @param $size_list  规格列表
      * @param $size_list  规格列表
      * @param $sku_str  typeclass 对应的 id
      * @param $sku_str  typeclass 对应的 id
      */
      */
-    protected function checkSku($size_list,$sku_str){
-        $sku_arr = explode('-',$sku_str);
-        $flag = 0;
-        foreach($sku_arr as $k=>$v){
-            if(in_array($v,$size_list)){
-                $flag = 1;
+    protected function checkSku($group_list,$sku_str,$sku_rules){
+        $sku_arr = explode('-',trim($sku_str,'-'));
+        if(isset($sku_rules[$sku_arr[0]])){
+            $check_sku_rule = $sku_rules[$sku_arr[0]];
+            foreach($sku_arr as $k=>$v){
+                if(isset($group_list[$v])){
+                    if(isset($check_sku_rule[$group_list[$v]])){
+                        $check_sku_rule[$group_list[$v]] = $v;
+                    }
+                }
+            }
+            $flag = 1;
+            foreach($check_sku_rule as $k=>$v){
+                if(empty($v)){
+                    $flag = 0;
+                }
             }
             }
+            if($flag == 0){
+                return 1;
+            }else{
+                return 0;
+            }
+        }else{
+            return 0;
         }
         }
-        return $flag?0:1;
+       
+       
         
         
     }
     }
 }
 }