lvhao 5 місяців тому
батько
коміт
2069c4c74d
1 змінених файлів з 118 додано та 2 видалено
  1. 118 2
      core/CoreApp/models/Model_logic_u9xgsd.php

+ 118 - 2
core/CoreApp/models/Model_logic_u9xgsd.php

@@ -95,7 +95,11 @@ class Model_logic_u9xgsd extends Lin_Model {
             $this->editData($info['zq_u9_id'],['dc_status'=>-1,'update_time'=>time()],$info['number'],1,1,'',[],$this->logic_tools->ret_arr(-1,'店铺没有在u9平台设置参数'));
             $this->editData($info['zq_u9_id'],['dc_status'=>-1,'update_time'=>time()],$info['number'],1,1,'',[],$this->logic_tools->ret_arr(-1,'店铺没有在u9平台设置参数'));
             return ;
             return ;
        }
        }
-
+       $shipremarks =  $info['shipremarks'];
+       if(mb_strlen($shipremarks) > 960){
+            $shipremarks = substr($shipremarks, 0, 950);
+            $shipremarks .= "...";
+        }
        $dc_params = [
        $dc_params = [
             'gys'=>$this->gys,//供应商
             'gys'=>$this->gys,//供应商
             'number'=>$info['number'],//erp订单编码
             'number'=>$info['number'],//erp订单编码
@@ -103,7 +107,7 @@ class Model_logic_u9xgsd extends Lin_Model {
             "time"=>$time,
             "time"=>$time,
             'TransferDirection'=>0,//普通
             'TransferDirection'=>0,//普通
             'yyid'=>$shop['yyid'],//来源店铺  这种需要在店铺表中有
             'yyid'=>$shop['yyid'],//来源店铺  这种需要在店铺表中有
-            'shipremarks'=>$info['shipremarks'],//订单的备注
+            'shipremarks'=> $shipremarks ,//订单的备注
             'dcckbm'=>$this->xdcp_code,//调出仓库编码
             'dcckbm'=>$this->xdcp_code,//调出仓库编码
             'drckbm'=>$this->xdxgls_code,//调入仓库编码
             'drckbm'=>$this->xdxgls_code,//调入仓库编码
             'drzz_code'=>$this->xdxgzzcode,//调入组织Code
             'drzz_code'=>$this->xdxgzzcode,//调入组织Code
@@ -559,5 +563,117 @@ class Model_logic_u9xgsd extends Lin_Model {
         $this->editData($info['id'],['dc_data'=>$xs_no,'dc_data_status'=>1,'dc_status'=>3,'update_time'=>time()],$info['order_no'],8,1,'dc_xc',$r[1],$r[0]);
         $this->editData($info['id'],['dc_data'=>$xs_no,'dc_data_status'=>1,'dc_status'=>3,'update_time'=>time()],$info['order_no'],8,1,'dc_xc',$r[1],$r[0]);
         return $this->logic_tools->ret_arr(1,"审核成功",$r[0]);
         return $this->logic_tools->ret_arr(1,"审核成功",$r[0]);
     }
     }
+    
+
+    public function createDctozt($info){
+        $classid = $this->classid->sku();
+        $tcall = $this->typeclass->find_all();
+        foreach ($tcall as $v)
+        {
+            $tcjm[$v['id']] = array($v['jm'],$v['classid']);
+            $typeclass[$v['id']] = array('zh'=>$v['zh'],'classid'=>$v['classid'],'bm'=>$v['bm'],'title'=>$v['title'],'jm'=>$v['jm']);
+        }
+        $list = $this->whlabeltransport->find_all("order_no = '".$info['order_no']."'");
+        $do_flag = true;
+        foreach($list as $k=>$v){
+            if($v['cz'] ==1 ){
+                var_dump($v);
+                $do_flag = false;
+            }
+        }
+        if(!$do_flag){
+            $this->editData($info['id'],[
+                'dc_status'=>-1,
+                'update_time'=>time()
+            ],$info['order_no'],1,1,'dc',[],$this->logic_tools->ret_arr(-1,'此单有已经完成的数据,不能进行同步'));
+            return ;
+        }
+        $shipremarks = "";
+        $dc_list = [];
+        foreach($list as $k=>$v){
+            if(stripos($v['features'],'-131-') !== false)
+            {
+                continue;
+            }
+            $v['features'] = str_replace(array('-163-','-164-','-165-','-166-'),'-',$v['features']);
+            $shipremarks = $v["text"];
+            $tmp_ret = $this->logic_u9tools->getOneU9bm($v['features'],$classid,$typeclass);
+            $dc_list[] =[
+                'jm'=>$tmp_ret['jm'],
+                'bm'=>$tmp_ret['bm'],
+                'zh'=>$tmp_ret['zh'],
+                'dcsl'=>$v['num'],
+                'is_register'=>0,//商品是否被注册  先都当没注册  后面会先确认下
+            ];
+        }
+        if(empty($dc_list)){
+            $this->editData($info['id'],[
+                'dc_status'=>-1,
+                'update_time'=>time()
+            ],$info['order_no'],1,1,'lpck',[],$this->logic_tools->ret_arr(-1,'此单sku转化为u9编码,发现没有匹配数据'));
+            return ;
+        }
+        $time = time();
+        if(mb_strlen($shipremarks) > 960){
+            $shipremarks = substr($shipremarks, 0, 950);
+            $shipremarks .= "...";
+        }
+        $dc_params = [
+            'gys'=>$this->gys,//供应商
+            'number'=>$info['order_no'],//erp订单编码
+            "TransOutDocType_Code"=>"TransOut001",//组织间调拨
+            "time"=>$time,
+            'TransferDirection'=>0,//普通
+            'yyid'=>"",//来源店铺  这种需要在店铺表中有
+            'shipremarks'=>$shipremarks,//订单的备注
+            'dcckbm'=>$this->xccp_code,//调出仓库编码
+            'drckbm'=>$this->xgzt_code,//调入仓库编码
+            'drzz_code'=>$this->xgzzcode,//调入组织Code
+            'owner_code'=>$this->xczzcode,//货主组织Code
+            'ztcode'=>$this->ztcode,//账套
+            'tb_org_arr'=>$this->tb_org_arr,//要同步的组织列表
+            'list'=>$dc_list
+        ];
+     
+       
+        $cxdcd_r = $this->apiyyv1->xcDcdByOtherId($dc_params['number'],$this->getToken(130));
+        $ret_data = $cxdcd_r[0]['Data'];
+        //调出单存在就不在执行了
+        if(isset($ret_data[0])){
+            $descflexfield_pubdescseg4 = $ret_data[0]['descflexfield_pubdescseg4'];
+            if($dc_params['number'] == $descflexfield_pubdescseg4){
+                return ;
+            }
+        }
+
+      //检测料品是否在u9被添加  检测香港组织有没有 许昌组织一定要有 没有
+      $r = $this->checkLp($dc_params,$this->getToken(140));
+       
+      if($r['code'] !=1){
+            $this->editData($info['id'],['dc_status'=>-1,'update_time'=>time()],$info['order_no'],1,1,'lpck',$r['msg'][1],$r['msg'][0]);
+            return ;
+      }
+       //创建调出单
+       $dcd_res = $this->apiyyv1->dcdCrate($dc_params,$this->getToken(130));
+    
+       if(empty($dcd_res[0]['Data'][0]["Code"])){
+            $this->editData($info['id'],['dc_status'=>-1,'update_time'=>time()],$info['order_no'],1,1,'dc',$dcd_res[1],$dcd_res[0]);
+            return ;
+       }
+        //更新
+       $dcd_no =  $dcd_res[0]['Data'][0]["Code"];
+       $this->editData($info['id'],['dc_no'=>$dcd_no,'dc_status'=>1,'update_time'=>time()],$info['order_no'],1,1,'dc',$dcd_res[1],$dcd_res[0]);
+    }
+
+    public function createDctomc($info){
+        $classid = $this->classid->sku();
+        $tcall = $this->typeclass->find_all();
+        foreach ($tcall as $v)
+        {
+            $tcjm[$v['id']] = array($v['jm'],$v['classid']);
+            $typeclass[$v['id']] = array('zh'=>$v['zh'],'classid'=>$v['classid'],'bm'=>$v['bm'],'title'=>$v['title'],'jm'=>$v['jm']);
+        }
+
+    }
 }
 }