wugg 1 year ago
parent
commit
66b2c28322
3 changed files with 196 additions and 12 deletions
  1. 27 12
      app/admin/controller/Payment.php
  2. 168 0
      app/command/CopySupplier.php
  3. 1 0
      config/console.php

+ 27 - 12
app/admin/controller/Payment.php

@@ -1069,10 +1069,15 @@ class Payment extends BaseController
               return error_show(1004,"对账单数据未找到");
         }
         if($payinfo['winv_fee']<=0)  return error_show(1004,"对账单数据未开票金额为0");
-		$result=$this->checkSupplier($payinfo['supplierNo']);
-        if($result['code']!=0){
-        	 return error_show($result['code'],$result['message']);
-        }
+	    if ($this->level == 2) {
+		    //判断是否开通供应商账号
+		    $temp = check_has_account_by_supplierNos([$payinfo['supplierNo']]);
+		    if (isset($temp['data'][$payinfo['supplierNo']])) return error_show(1004, '该供应商已经开通账号,不允许当前账号操作');
+	    }
+//		$result=$this->checkSupplier($payinfo['supplierNo']);
+//        if($result['code']!=0){
+//        	 return error_show($result['code'],$result['message']);
+//        }
         if($payinfo['status']!=2){
             return error_show(1004,"对账单数据未完成审核");
         }
@@ -1709,10 +1714,15 @@ class Payment extends BaseController
 		if($valide->check($param)==false)return error_show(1004,$valide->getError());
 		$hpinfo  =Db::name("pay_invoice")->where([["hpNo","=",$param['hpNo']],["is_del","=",0]])->findOrEmpty();
 		if(empty($hpinfo)) return error_show(1004,"回票信息未找到");
-		$result=$this->checkSupplier($hpinfo['supplierNo']);
-        if($result['code']!=0){
-        	 return error_show($result['code'],$result['message']);
-        }
+	    $payinfo =Db::name("pay")->where(["payNo"=>$hpinfo['payNo'],"is_del"=>0])->find();
+	    if($payinfo==false){
+		    return error_show(1004,"对账单数据未找到");
+	    }
+	    if ($this->level == 2) {
+		    //判断是否开通供应商账号
+		    $temp = check_has_account_by_supplierNos([$payinfo['supplierNo']]);
+		    if (isset($temp['data'][$payinfo['supplierNo']])) return error_show(1004, '该供应商已经开通账号,不允许当前账号操作');
+	    }
 		if($hpinfo['status']!=4)return error_show(1004,"回票信息流程未完成");
 		$isR=Db::name("pay_return")->where(["orderCode"=>$param['hpNo'],"status"=>[1,2],"is_del"=>0])->findOrEmpty();
 		if(!empty($isR))return error_show(1004,"回票信息退票流程已存在");
@@ -1856,10 +1866,15 @@ class Payment extends BaseController
 		if($valide->check($param)==false)return error_show(1004,$valide->getError());
 		$hpinfo  =Db::name("pay_payment")->where([["dzNo","=",$param['dzNo']],["is_del","=",0]])->findOrEmpty();
 		if(empty($hpinfo)) return error_show(1004,"付款信息未找到");
-		$result=$this->checkSupplier($hpinfo['supplierNo']);
-        if($result['code']!=0){
-        	 return error_show($result['code'],$result['message']);
-        }
+	    $payinfo =Db::name("pay")->where(["payNo"=>$hpinfo['payNo'],"is_del"=>0])->find();
+	    if($payinfo==false){
+		    return error_show(1004,"对账单数据未找到");
+	    }
+	    if ($this->level == 2) {
+		    //判断是否开通供应商账号
+		    $temp = check_has_account_by_supplierNos([$payinfo['supplierNo']]);
+		    if (isset($temp['data'][$payinfo['supplierNo']])) return error_show(1004, '该供应商已经开通账号,不允许当前账号操作');
+	    }
 		if(!in_array($hpinfo['status'],[3,4]))return error_show(1004,"付款信息流程未完成");
 		$isR=Db::name("pay_return")->where(["orderCode"=>$param['dzNo'],"status"=>[1,2],"is_del"=>0])->findOrEmpty();
 		if(!empty($isR))return error_show(1004,"付款信息退款流程已存在");

+ 168 - 0
app/command/CopySupplier.php

@@ -0,0 +1,168 @@
+<?php
+declare (strict_types = 1);
+
+namespace app\command;
+
+use think\console\Command;
+use think\console\Input;
+use think\console\input\Argument;
+use think\console\input\Option;
+use think\console\Output;
+use think\facade\Cache;
+use think\facade\Db;
+
+class CopySupplier extends Command
+{
+    protected function configure()
+    {
+        // 指令配置
+        $this->setName('copysupplier')
+            ->setDescription('the copysupplier command');
+    }
+
+    protected function execute(Input $input, Output $output)
+    {
+		$supplier= Cache::store("redis")->handler()->rpop("companycopy");
+		if($supplier==false) return;
+		if($supplier['type']==1){
+			$this->checkcompany($supplier);
+		}
+			if($supplier['type']==2){
+			$this->checkcustomer($supplier);
+		}
+				if($supplier['type']==3){
+			$this->checkSupplier($supplier);
+		}
+    }
+
+    private function checkcompany($supplier){
+		$comp= Db::name("company_info")->where(["companyNo"=>$supplier["companyNo"],"is_del"=>0])->findOrEmpty();
+		if(empty($comp)){
+			$data = [
+	           "companyNo"=>$supplier['companyNo'],
+	           "company_name"=>$supplier['company'],
+	           "company_address"=>$supplier['inv_addr'],
+	           "company_license"=>$supplier['inv_code'],
+	           "bank_name"=>$supplier['inv_bank'],
+	           "bankNo"=>$supplier['inv_bankNo'],
+	           "contector"=>$supplier['contactor'],
+	           "mobile"=>$supplier['mobile'],
+	           "company_img"=>$supplier['license_img'],
+	           "input_ticket"=>0,
+	           "out_ticket"=>0,
+	           "voider"=>'',
+	           "payee"=>'',
+	           "drawer"=>'',
+	           "reviewer"=>'',
+	           "ownerPlace"=>'',
+	           "denomination"=>'',
+	           "invoiceType"=>"",
+	           "status"=>0,
+	           "addtime"=>date("Y-m-d H:i:s"),
+	           "updatetime"=>date("Y-m-d H:i:s")
+       ];
+		}else{
+			$datas = [
+//	           "companyNo"=>$supplier['companyNo'],
+	           "company_name"=>$supplier['company'],
+	           "company_address"=>$supplier['inv_addr'],
+	           "company_license"=>$supplier['inv_code'],
+	           "bank_name"=>$supplier['inv_bank'],
+	           "bankNo"=>$supplier['inv_bankNo'],
+	           "contector"=>$supplier['contactor'],
+	           "mobile"=>$supplier['mobile'],
+	           "company_img"=>$supplier['license_img'],
+	           "invoice_title"=>$supplier['invoice_title'],
+	           "updatetime"=>date("Y-m-d H:i:s")
+             ];
+			$data=array_merge($comp,$datas);
+		}
+		Db::name("company_info")->save($data);
+    }
+
+     private function checkcustomer($supplier){
+		$comp= Db::name("customer_info")->where(["companyNo"=>$supplier["companyNo"],"is_del"=>0])->findOrEmpty();
+		if(empty($comp)){
+			$data = [
+	           "companyNo"=>$supplier['companyNo'],
+	           "companyName"=>$supplier['companyName'],
+	           "creater"=>$supplier['creater'],
+	           "status"=>1,
+	           "addtime"=>date("Y-m-d H:i:s"),
+	           "updatetime"=>date("Y-m-d H:i:s")
+       ];
+		}else{
+			$datas = [
+	           "companyNo"=>$supplier['companyNo'],
+	           "companyName"=>$supplier['companyName'],
+	           "is_del"=>$supplier['is_del'],
+	           "updatetime"=>date("Y-m-d H:i:s")
+             ];
+			$data=array_merge($comp,$datas);
+		}
+		Db::name("company_info")->save($data);
+    }
+
+     private function checkSupplier($supplier){
+		$comp= Db::name("supplier_info")->where(["companyNo"=>$supplier["companyNo"],"is_del"=>0])->findOrEmpty();
+		if(empty($comp)){
+			$data= [
+				            'name' => $supplier['name'],
+                            'code' => $supplier['code'],
+                            'source' => $supplier['source'],
+                            'contector' => $supplier['contactor'],
+                            'post' => $supplier['position'],
+                            'type' => $supplier['type'],
+                            'nature' => $supplier['supplier_type'],
+                            'corporation' => $supplier['legaler'],
+                            'registertime' => $supplier['registertime'],
+                            'capital' => $supplier['capital'],
+                            'supplier_type' => $supplier['supplier_type'],
+                            'pay_method' => $supplier['pay_type'],
+                            'paydays' => $supplier['pay_day'],
+                            'mobile' => $supplier['mobile'],
+                            'address' => $supplier['addr'],
+                            'return_ticket' => $supplier['ticket_type'],
+                            'delivery' => $supplier['delivery_way'],
+                            'status' => $supplier['status'],
+                            'addtime' => $supplier['addtime'],
+                            'updatetime' => $supplier['updatetime'],
+                            'registercode' => $supplier['registercode'],
+                            'level' => $supplier['level'],
+                            'product_category' => $supplier['product_category'],
+                            'license_img' => $supplier['license_img']
+
+			];
+		}else{
+			$datas = [
+	                        'name' => $supplier['name'],
+                            'code' => $supplier['code'],
+                            'source' => $supplier['source'],
+                            'contector' => $supplier['contactor'],
+                            'post' => $supplier['position'],
+                            'type' => $supplier['type'],
+                            'nature' => $supplier['supplier_type'],
+                            'corporation' => $supplier['legaler'],
+                            'registertime' => $supplier['registertime'],
+                            'capital' => $supplier['capital'],
+                            'supplier_type' => $supplier['supplier_type'],
+                            'pay_method' => $supplier['pay_type'],
+                            'paydays' => $supplier['pay_day'],
+                            'mobile' => $supplier['mobile'],
+                            'address' => $supplier['addr'],
+                            'return_ticket' => $supplier['ticket_type'],
+                            'delivery' => $supplier['delivery_way'],
+                            'status' => $supplier['status'],
+                            'addtime' => $supplier['addtime'],
+                            'updatetime' => $supplier['updatetime'],
+                            'registercode' => $supplier['registercode'],
+                            'level' => $supplier['level'],
+                            'product_category' => $supplier['product_category'],
+                            'license_img' => $supplier['license_img']
+
+             ];
+			$data=array_merge($comp,$datas);
+		}
+		Db::name("supplier_info")->save($data);
+    }
+}

+ 1 - 0
config/console.php

@@ -18,5 +18,6 @@ return [
 
         'Report'=>app\command\Report::class,//处理中间表的采销数据
         'ExecPush'=>app\command\ExecPush::class,//处理中间表的采销数据
+        'copysupplier'=>app\command\CopySupplier::class,//处理中间表的采销数据
     ],
 ];