فهرست منبع

Merge branch 'dev-wgg' of wugg/cxinv into dev

wugg 1 سال پیش
والد
کامیت
2cc1776716

+ 1 - 1
app/admin/controller/Good.php

@@ -64,7 +64,7 @@ class Good extends Base
         	if($good->isEmpty())$this->error("商品信息{$item['spuCode']}不存在");
         	if(!isset($catArr[$item['cat_code']]))$this->error("商品{$item['spuCode']}所选类目不存在");
         	$tax = $catArr[$item['cat_code']]['tax']==""?[]:explode('、', $catArr[$item['cat_code']]['tax']);
-        	if(!in_array($item['tax'],$tax) && $param['status']==2)$this->error("商品{$item['spuCode']}所选税率与类目包含税率不一致");
+        	if(!in_array($item['tax'],$tax) && $param['status']==2 && $good['companyNo'] =='GS2203161855277894')$this->error("商品{$item['spuCode']}所选税率与类目包含税率不一致");
         	//采购端修改 只能在待财务设置税务类目状态 切该商品未参与采购付款回票对账
         	//销售端修改 只要没参与销售回款开票结算
         	$temp['id']=$good->id;

+ 47 - 26
app/admin/controller/Payment.php

@@ -35,10 +35,11 @@ class Payment extends Base
     public function paymentList()
     {
         $post = $this->post;
-        $condition = "a.is_del=0 ";
+        $condition = [["a.is_del","=",0]];
         $check = checkRole($this->roleid,[79,119]);
         if($check){
-            $condition.=" and b.apply_id={$this->uid}";
+//            $condition[]=" and b.apply_id={$this->uid}";
+            $condition[]=["b.apply_id","=",$this->uid];
         }
          $startTime= isset($post['startTime'])&&$post['startTime']!="" ? date("Y-m-d 00:00:00",strtotime($post['startTime']))
         :"";
@@ -54,38 +55,49 @@ class Payment extends Base
         $dzNo= isset($post['dzNo'])&&$post['dzNo']!="" ? trim($post['dzNo']) :"";
 
         if($startTime!=""){
-            $condition.=" and `b`.`addtime` >= '{$startTime}'";
+//            $condition.=" and `b`.`addtime` >= '{$startTime}'";
+             $condition[]=['b.addtime','>=',$startTime];
         }
         if($endTime!=""){
-            $condition.=" and `b`.`addtime` <= '{$endTime}'";
+//            $condition.=" and `b`.`addtime` <= '{$endTime}'";
+             $condition[]=['b.addtime','<=',$endTime];
         }
 
         if($supplierNo!=""){
-            $condition.=" and `a`.`supplierNo` = '$supplierNo'";
+//            $condition.=" and `a`.`supplierNo` = '$supplierNo'";
+             $condition[]=['a.supplierNo','=',$supplierNo];
         }
          if($supplierName!=""){
-            $condition.=" and `a`.`supplierName` like '%$supplierName%'";
+//            $condition.=" and `a`.`supplierName` like '%$supplierName%'";
+            $condition[]=['a.supplierName','like',"%$supplierName%"];
         }
         if($companyNo!=""){
-            $condition.=" and (`a`.`companyNo` = '$companyNo')";
+        	 $condition[]=['a.companyNo','=',$companyNo];
+//            $condition.=" and (`a`.`companyNo` = '$companyNo')";
         }
         $relaComNo= isset($post['relaComNo'])&&$post['relaComNo']!="" ? trim($post['relaComNo']) :"";
          if($relaComNo!=""){
-            $condition.=" and (`a`.`companyNo` = '$relaComNo' or `a`.`supplierNo` = '$relaComNo')";
+         	$condition[]=['a.companyNo|a.supplierNo','=',$relaComNo];
+//            $condition.=" and (`a`.`companyNo` = '$relaComNo' or `a`.`supplierNo` = '$relaComNo')";
         }
 
         if($payNo!=""){
-            $condition.=" and `a`.`payNo` like '%{$payNo}%'";
+        	 $condition[]=['a.payNo','like',"%$payNo%"];
+//            $condition.=" and `a`.`payNo` like '%{$payNo}%'";
         }
          if($dzNo!=""){
-            $condition.=" and `b`.`dzNo` like '%{$dzNo}%'";
+         	 $condition[]=['b.dzNo','like',"%$dzNo%"];
+//            $condition.=" and `b`.`dzNo` like '%{$dzNo}%'";
         }
         if($apply!=""){
-            $condition .=" and b.apply_name like '%{$apply}%'";
+        	 $condition[]=['b.apply_name','like',"%$apply%"];
+//            $condition .=" and b.apply_name like '%{$apply}%'";
         }
         if($paystatus!=""){
-            $condition .=" and `b`.`status` = {$paystatus}";
+        	 $condition[]=['b.status','=',$paystatus];
+//            $condition .=" and `b`.`status` = {$paystatus}";
         }
+       if(isset($post['is_comon'])&&$post['is_comon']!=='') $condition []=['is_comon','=',$post['is_comon']];
         $page =  isset($post['page'])&&$post['page']!="" ? intval($post['page']) :1;
         $size =  isset($post['size'])&&$post['size']!="" ? intval($post['size']) :10;
         $count = Db::name("pay_payment")->alias('b')
@@ -213,6 +225,7 @@ class Payment extends Base
         if($status!=""){
             $condition[]=["status","=",$status];
         }
+         if(isset($post['is_comon'])&&$post['is_comon']!=='') $condition []=['is_comon','=',$post['is_comon']];
         $page =  isset($post['page'])&&$post['page']!="" ? intval($post['page']) :1;
         $size =  isset($post['size'])&&$post['size']!="" ? intval($post['size']) :10;
         $count = Db::name("pay")->where($condition)->count();
@@ -277,8 +290,9 @@ class Payment extends Base
             $temp = check_has_account_by_supplierNos([$supplierNo[0]]);
             if (isset($temp['data'][$supplierNo[0]])) return error_show(1004, '该供应商已经开通账号,不允许当前账号操作');
         }
-
-       $payNo = makeNo("PAY");
+        $goodNo=  array_column($cgdall,'goodNo');
+		$good_info = \app\admin\model\Good::where(['spuCode'=>$goodNo])->column("status","spuCode");
+        $payNo = makeNo("PAY");
         Db::startTrans();
         try {
             $data=[];
@@ -301,8 +315,7 @@ class Payment extends Base
                 "updatetime"=>date("Y-m-d H:i:s"),
             ];
            foreach ($cgdall as $key=>$value){
-           	$good_info = \app\admin\model\Good::where(['spuCode'=>$value['goodNo']])->findOrEmpty();
-             if($good_info->isEmpty()|| $good_info->status==0){
+             if(!isset($good_info[$value['goodNo']])|| $good_info[$value['goodNo']]==0){
                 Db::rollback();
                return error_show(1004,"采购单商品{$value['goodNo']}商品未确认开票类目");
               }
@@ -323,9 +336,8 @@ class Payment extends Base
                 $paydata['wpay_fee']+= $temp['wpay_fee'];
                 $paydata['ainv_fee']+= $temp['ainv_fee'];
                 $paydata['winv_fee']+= $temp['winv_fee'];
-                $report=ReportCode::where(["cgdNo"=>$value['sequenceNo']])->find();
-                if($report)$report->setField("payNo",$payNo);
            }
+            ReportCode::where(['cgdNo'=>array_column($cgdall,"sequenceNo")])->update(['payNo'=>$payNo]);
             $paydata['total_fee']= round($paydata['total_fee'],2);
             $paydata['apay_fee']= round($paydata['apay_fee'],2);
             $paydata['wpay_fee']= round($paydata['wpay_fee'],2);
@@ -930,6 +942,7 @@ class Payment extends Base
         if($cgdsource!=='') $condition []=["cgdSource","=",$cgdsource];
          $sendstatus= isset($post['sendstatus']) && $post['sendstatus']!='' ? intval($post['sendstatus']) :"";
         if($sendstatus!='') $condition []=["qrdSend","=",$sendstatus];
+        if(isset($post['is_comon'])&&$post['is_comon']!=='') $condition []=["is_comon","=",$post['is_comon']];
 
         $page =  isset($post['page'])&&$post['page']!="" ? intval($post['page']) :0;
         $size =  isset($post['size'])&&$post['size']!="" ? intval($post['size']) :10;
@@ -955,11 +968,12 @@ class Payment extends Base
 
 
     public function cgdQuery(){
-		$post = $this->request->only(["cgdNoArr"=>[],"qrdNoArr"=>[],"status"=>"","relaComNo"=>'',"companyNo"=>"","supplierNo"=>""],"post");
+		$post = $this->request->only(["cgdNoArr"=>[],"qrdNoArr"=>[],"status"=>"","is_comon"=>"0","relaComNo"=>'',"companyNo"=>"","supplierNo"=>""],"post");
 		$valid=Validate::rule([
 			"cgdNoArr|采购单编号集合"=>"requireWithout:qrdNoArr|array",
 		    "qrdNoArr|销售单编号集合"=>"requireWithout:cgdNoArr|array",
-			"status|采购单状态"=>"number|in:0,1,2,3"
+			"status|采购单状态"=>"number|in:0,1,2,3",
+			"is_comon|是否通用订单"=>"number|in:0,1",
 			]);
 		if($valid->check($post)==false) return error_show(1004,$valid->getError());
 		 if(!empty($post['qrdNoArr'])){
@@ -971,6 +985,7 @@ class Payment extends Base
         if($companyNo!=""){
           $condition []=["companyNo","=",$companyNo];
         }
+        if($post['is_comon']!='') $condition []=['is_comon','=',$post['is_comon']];
          $relaComNo= isset($post['relaComNo'])&&$post['relaComNo']!="" ? trim($post['relaComNo']) :"";
          if($relaComNo!=""){
             $condition[]=["companyNo|supplierNo","=",$relaComNo];
@@ -1236,11 +1251,13 @@ class Payment extends Base
             $payinfo = Db::name('pay')
                 ->where('is_del', 0)
                 ->whereIn('payNo', $payNo)
-                ->column('id,payNo,status', 'payNo');
+                ->column('id,payNo,supplierNo,supplierName,status', 'payNo');
+            $Supp=[];
 	        if ($this->level == 2) {
 		        //判断是否开通供应商账号
-		        $temp = check_has_account_by_supplierNos([$payinfo['supplierNo']]);
-		        if (isset($temp['data'][$payinfo['supplierNo']])) return error_show(1004, '该供应商已经开通账号,不允许当前账号操作');
+		        $suppArr=array_unique(array_column($payinfo,'supplierNo'));
+		        $temp = check_has_account_by_supplierNos(array_unique(array_column($payinfo,"supplierNo")));
+		        $Supp = $temp['data']??[];
 	        }
             //$da_insert 批量新增的数据,$payNo_hpNo对账编码=>回票编码
             $da_insert = $payNo_hpNo = [];
@@ -1253,6 +1270,9 @@ class Payment extends Base
                 $unique[]=$item['invoiceNumber'];
                 if (!isset($payinfo[$item['payNo']])) throw new Exception('对账单数据未找到');
                 if ($payinfo[$item['payNo']]['status'] != 2) throw new Exception('对账单数据未完成审核');
+                if ($this->level == 2) {
+                    if ( isset($Supp[$payinfo[$item['payNo']]['supplierNo']])) throw new Exception("该供应商{$payinfo[$item['payNo']]['supplierName']}已经开通账号,不允许当前账号操作");
+                }
 				$invamount=0;
 				if(in_array($item['invoiceType'],['fully_digitalized_special_electronic','fully_digitalized_normal_electronic'])){
 					$invamount = $item['inv_subtotal_amount']??0;
@@ -1490,6 +1510,7 @@ class Payment extends Base
         if($apply_name!=""){
             $condition[]=["a.apply_name","like","%$apply_name%"];
         }
+        if(isset($post['is_comon'])&&$post['is_comon']!=='') $condition []=['is_comon','=',$post['is_comon']];
         $page = isset($post['page'])&&$post['page']!="" ? intval($post['page']):1;
         $size = isset($post['size'])&&$post['size']!="" ? intval($post['size']):10;
         $count =Db::name("pay_invoice")
@@ -1791,7 +1812,7 @@ class Payment extends Base
 		if($param['hpNo']!="") $condition[]=["a.orderCode","like","%{$param['hpNo']}%"];
 		if($param['returnCode']!="") $condition[]=["a.returnCode","like","%{$param['returnCode']}%"];
 		if($param['payNo']!="") $condition[]=["a.payNo","like","%{$param['payNo']}%"];
-
+		if(isset($param['is_comon'])&&$param['is_comon']!=='') $condition []=['is_comon','=',$param['is_comon']];
         $count = Db::name("pay_return")
             ->alias("a")
             ->leftJoin("pay b", "a.payNo=b.payNo and b.is_del=0")
@@ -1941,7 +1962,7 @@ class Payment extends Base
 		if($param['dzNo']!="") $condition[]=["a.orderCode","like","%{$param['dzNo']}%"];
 		if($param['returnCode']!="") $condition[]=["a.returnCode","like","%{$param['returnCode']}%"];
 		if($param['payNo']!="") $condition[]=["a.payNo","like","%{$param['payNo']}%"];
-
+		if(isset($param['is_comon'])&&$param['is_comon']!=='') $condition []=['is_comon','=',$param['is_comon']];
         $count = Db::name("pay_return")
             ->alias("a")
             ->leftJoin("pay b", "a.payNo=b.payNo and b.is_del=0")
@@ -2046,7 +2067,7 @@ class Payment extends Base
             "companyNo|公司编号" => "requireWithout:relaComNo|max:255",
         ]);
         if ($valid->check($post) == false) return error_show(1004, $valid->getError());
-        $companyNo = $post["relaComNo"] ?? $post['companyNo'];
+        $companyNo = $post["relaComNo"] ?: $post['companyNo'];
         $payArr = Db::name("pay_invoice")
             ->alias("a")
             ->leftJoin("pay b", "a.payNo=b.payNo")

+ 2 - 0
app/admin/controller/Sale.php

@@ -40,6 +40,7 @@ class Sale extends Base{
         if($total_max!==''){
            $condition[]=["a.totalPrice","<=",$total_max];
         }
+        if(isset($post['is_comon'])&&$post['is_comon']!=='') $condition []=['is_comon','=',$post['is_comon']];
         $cxCode = isset($post['cxCode'])&&$post['cxCode']!==''?trim($post['cxCode']):'';
         if($cxCode!==''){
            $condition[]=["a.cxCode","=",$cxCode];
@@ -191,6 +192,7 @@ class Sale extends Base{
         if($total_min!==''){
            $condition[]=["a.totalPrice",">=",$total_min];
         }
+       if(isset($post['is_comon'])&&$post['is_comon']!=='') $condition []=['is_comon','=',$post['is_comon']];
         $total_max = isset($post['total_max'])&&$post['total_max']!==''?floatval($post['total_max']):'';
         if($total_max!==''){
            $condition[]=["a.totalPrice","<=",$total_max];

+ 2 - 2
app/admin/controller/WeChat.php

@@ -10,8 +10,8 @@ class WeChat extends Base {
 	public $wechat;
 	public function __construct(App $App) {
 		parent::__construct($App);
-//		$wechat_conf=["appid"=>env("WECHAT.APPID"),"appsecret"=>env("WECHAT.APPSECRET")];
-//		$this->wechat=new \Wechat($wechat_conf);
+		$wechat_conf=["appid"=>env("WECHAT.APPID"),"appsecret"=>env("WECHAT.APPSECRET")];
+		$this->wechat=new \Wechat($wechat_conf);
 	}
 //		获取用户信息{subscribe,openid,nickname,sex,city,province,country,language,headimgurl,subscribe_time,[unionid]}
 

+ 3 - 1
app/listener/roleListen.php

@@ -3,7 +3,9 @@ declare (strict_types = 1);
 
 namespace app\listener;
 
-use app\admin\model\Action;use app\admin\model\RoleAction;class roleListen
+use app\admin\model\Action;
+use app\admin\model\RoleAction;
+class roleListen
 {
     /**
      * 事件监听处理