wugg 1 rok pred
rodič
commit
e0025939a7

+ 8 - 8
app/admin/controller/ComonOrder.php

@@ -375,20 +375,20 @@ class ComonOrder extends Base
                        'invNo'=>$invNo,
                         'orderCode'=>$item['sequenceNo'],
                         'goodNo'=>$qrdinfo[$item['sequenceNo']]['goodNo'],
-                        'goodName'=>$good_info[$qrdinfo[$item['sequenceNo']]['goodNo']]['inv_good_name']??$qrdinfo[$item['sequenceNo']]['goodName'] ,
-                        'catName'=>$good_info[$qrdinfo[$item['sequenceNo']]['goodNo']]['inv_cat_name']??$qrdinfo[$item['sequenceNo']]['thirdCat'],
-                        'catNo'=>$good_info[$qrdinfo[$item['sequenceNo']]['goodNo']]['inv_cat_code']??'',
+                        'goodName'=>$goodInfo[$qrdinfo[$item['sequenceNo']]['goodNo']]['inv_good_name']??$qrdinfo[$item['sequenceNo']]['goodName'] ,
+                        'catName'=>$goodInfo[$qrdinfo[$item['sequenceNo']]['goodNo']]['inv_cat_name']??$qrdinfo[$item['sequenceNo']]['thirdCat'],
+                        'catNo'=>$goodInfo[$qrdinfo[$item['sequenceNo']]['goodNo']]['inv_cat_code'],
                         'goodPrice'=>round($item['inv_fee']/$item['num'],8),
                         'unitName'=>$qrdinfo[$item['sequenceNo']]['goodUnit'],
                         'goodNum'=>$item['num'],
                         'specInfo'=>$item['sequenceNo'],
                         'totalPrice'=>$item['inv_fee'],
                         'totalTax'=>$item['inv_fee'],
-                        'tax'=>$good_info[$qrdinfo[$item['sequenceNo']]['goodNo']]['inv_tax']??$qrdinfo[$item['sequenceNo']]['tax'],
-                        'is_discount'=>$good_info[$qrdinfo[$item['sequenceNo']]['goodNo']]['is_discount']??0,
-                        'addTax'=>$good_info[$qrdinfo[$item['sequenceNo']]['goodNo']]['addTax']??'',
-                        'inv_tag'=>$good_info[$qrdinfo[$item['sequenceNo']]['goodNo']]['inv_tag']??'',
-                        'taxPrice'=>round($item['inv_fee']*($good_info[$qrdinfo[$item['sequenceNo']]['goodNo']]['inv_tax']??$qrdinfo[$item['sequenceNo']]['tax']),2),
+                        'tax'=>$goodInfo[$qrdinfo[$item['sequenceNo']]['goodNo']]['inv_tax']??$qrdinfo[$item['sequenceNo']]['tax'],
+                        'is_discount'=>$goodInfo[$qrdinfo[$item['sequenceNo']]['goodNo']]['is_discount'],
+                        'addTax'=>$goodInfo[$qrdinfo[$item['sequenceNo']]['goodNo']]['addTax'],
+                        'inv_tag'=>$goodInfo[$qrdinfo[$item['sequenceNo']]['goodNo']]['inv_tag'],
+                        'taxPrice'=>round($item['inv_fee']*($goodInfo[$qrdinfo[$item['sequenceNo']]['goodNo']]['inv_tax']??$qrdinfo[$item['sequenceNo']]['tax']),2),
                         'addtime'=>date('Y-m-d H:i:s'),
                         'updatetime'=>date('Y-m-d H:i:s')
                     ];

+ 14 - 10
app/admin/controller/OrderPay.php

@@ -159,7 +159,7 @@ class OrderPay extends Base{
                     $qrdArr=Db::name("assoc")->where(["viceCode"=>$logNo,"status"=>1,"is_del"=>0])->select()->toArray();
                     if(!empty($qrdArr)){
                         foreach ($qrdArr as $value){
-                            $qrd =Db::name("qrd_info")->where(["sequenceNo"=>$value['orderCode']])->field("id,status,pay_fee,apay_fee,wpay_fee,pay_status,totalPrice")->findOrEmpty();
+                            $qrd =Db::name("qrd_info")->where(["sequenceNo"=>$value['orderCode']])->field("id,status,pay_fee,apay_fee,wpay_fee,pay_status,totalPrice,cxCode")->findOrEmpty();
                             if(empty($qrd)){
                                 Db::rollback();
                                 return error_show(1005,"未找到销售单数据");
@@ -180,7 +180,7 @@ class OrderPay extends Base{
                                 Db::rollback();
                                 return error_show(1005,"销售单更新失败");
                             }
-                            if($update['status']==3){
+                            if($update['pay_status']==3){
                             	(new \app\admin\model\ComonOrder())->where(["cxCode"=>$qrd['cxCode'],"status"=>-1])->update(["status"=>0]);
                             }
                             $asscup =[
@@ -1048,7 +1048,7 @@ class OrderPay extends Base{
         	   $all_order=Db::name('qrd_info')
                 ->where('is_del', 0)
                 ->whereIn('sequenceNo',$value['orderCode'])
-                ->field('id,customerNo,status,pay_fee,apay_fee,wpay_fee,pay_status,totalPrice,platform_type')
+                ->field('id,customerNo,status,pay_fee,apay_fee,wpay_fee,pay_status,totalPrice,platform_type,cxCode')
                 ->findOrEmpty();
         	   if(empty($all_order))throw new Exception("{$value['orderCode']}销售单未找到数据");
         	   if($all_order['wpay_fee']<$value['trad_fee'])throw new Exception("{$value['orderCode']}销售单未付款金额不足核销金额");
@@ -1056,6 +1056,7 @@ class OrderPay extends Base{
                 $OrderCodeToLogNo = substr(makeNo('TRC'), 0, -3).str_pad($i,3,'0',STR_PAD_LEFT);
                 //资金数据更新处理
 				$balance = bcsub($all_trade['balance'], $value['trad_fee'], 2);
+				
                 $tradeUp=Db::name('trade')
                     ->where($all_trade)
                     ->update([
@@ -1065,17 +1066,22 @@ class OrderPay extends Base{
                         'updatetime' =>date("Y-m-d H:i:s"),
                     ]);
                if($tradeUp==false ) throw new Exception("{$value['tradNo']}资金更新失败");
+               
 				//订单数据更新处理
-                $orderUp=Db::name('qrd_info')
-                    ->where($all_order)
-                    ->update([
+				$update=[
                         'apay_fee' => bcadd($all_order['apay_fee'], $value['trad_fee'], 2),
                         'wpay_fee' => bcsub($all_order['wpay_fee'], $value['trad_fee'], 2),
                         'pay_status' => bcsub($all_order['wpay_fee'], $value['trad_fee'], 2)==0 &&$all_order['pay_fee']==0? 3:2,
                         'status' => 1,
-                        'updatetime' => date("Y-m-d H:i:s")
-                    ]);
+                        'updatetime' => date('Y-m-d H:i:s')
+                    ];
+                $orderUp=Db::name('qrd_info')
+                    ->where($all_order)
+                    ->update($update);
                 if($orderUp==false ) throw new Exception("{$value['orderCode']}销售单更新失败");
+                 if($update['pay_status']==3){
+                    (new \app\admin\model\ComonOrder())->where(['cxCode'=>$all_order['cxCode'],'status'=>-1])->update(['status'=>0]);
+                 }
                 //资金订单关联数据
                 $assoc_insert_data[]=[
                 	'assocNo' => $OrderCodeToAssocNo,
@@ -1122,8 +1128,6 @@ class OrderPay extends Base{
             Db::rollback();
             return error_show(1004, '批量认领资金失败,' . $exception->getMessage());
         }
-
-
     }
 
 }

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

@@ -1049,7 +1049,7 @@ class Payment extends Base
         if($payinfo==false){
               return error_show(1004,"对账单数据未找到");
         }
-           $pay =Db::name("pay_info")->alias("a")->leftJoin("cgd_info b","a.cgdNo=b.sequenceNo")
+        $pay =Db::name("pay_info")->alias("a")->leftJoin("cgd_info b","a.cgdNo=b.sequenceNo")
         ->where(["a.is_del"=>0,"b.is_del"=>0,"a.payNo"=>$payNo])->field("b.*")
         ->select()->toArray();
         foreach ($pay as &$value){

+ 48 - 4
app/admin/listener/ComonQrd.php

@@ -3,7 +3,7 @@ declare (strict_types = 1);
 
 namespace app\admin\listener;
 
-use app\admin\model\InvoicePay;use app\admin\model\InvoicePool;use app\admin\model\InvoiceTicket;use app\admin\model\Pay;use app\admin\model\PayInfo;use app\admin\model\PayInvoice;use app\admin\model\QrdInfo;use app\admin\model\TagLog;use think\facade\Config;
+use app\admin\model\InvoiceInfo;use app\admin\model\InvoicePay;use app\admin\model\InvoicePool;use app\admin\model\InvoiceTicket;use app\admin\model\Pay;use app\admin\model\PayInfo;use app\admin\model\PayInvoice;use app\admin\model\QrdInfo;use app\admin\model\TagLog;use think\facade\Config;
 class ComonQrd
 {
     /**
@@ -115,6 +115,47 @@ class ComonQrd
     	$this->CheckComonOrder($payinfo);
     	$payinfo->save();
     	PayInvoice::create($payinvoice);
+    	PayInvoice::create($payinvoice);
+    	    	if(!empty($ticket->item)){
+    	    		$itemArr=[];
+    	    		foreach ($ticket->item as $item){
+    	    		    $temp=[];
+    	    		    $temp['name']=$item['XMMC'];
+    	    		    $temp['unit']=$item['DW'];
+    	    		    $temp['quantity']=$item['SPSL'];
+    	    		    $temp['unit_price']=$item['DJ'];
+    	    		    $temp['amount']=$item['JE'];
+    	    		    $temp['tax_rate']=$item['SE'];
+    	    		    $temp['tax']=strval($item['SL']*100)."%";
+    				    $itemArr[]=$temp;
+    			    }
+    		    }
+    		    $info=[
+    			    'payNo'          =>$invpay['payNo'] ,
+    			    'hpNo'           =>$payinvoice['hpNo'] ,
+    			    'type'           =>$invinfo['inv_type'] ,
+    			    'number'         =>$ticket->inv_number ,
+    			    'code'           =>$ticket->inv_code ,
+    			    'check_code'     =>$ticket->check_code ,
+    			    'issue_date'     =>date('Ymd' ,strtotime($ticket->open_date)) ,
+    			    'buyer_name'     =>$ticket->buyer_title ,
+    			    'buyer_id'       =>$ticket->buyer_id ,
+    			    'buyer_address'  =>$ticket->buyer_addr . $ticket->buyer_mobile ,
+    			    'buyer_bank'     =>$ticket->buyer_bank . $ticket->buyer_bankNo ,
+    			    'seller_name'    =>$ticket->seller_title ,
+    			    'seller_id'      =>$ticket->seller_id ,
+    			    'seller_address' =>$ticket->seller_addr . $ticket->seller_mobile ,
+    			    'seller_bank'    =>$ticket->seller_bank . $ticket->seller_bankNo ,
+    			    'subtotal_amount'=>$ticket->inv_subtotal ,
+    			    'subtotal_tax'   =>$ticket->tax_fee ,
+    			    'total'          =>$ticket->inv_total ,
+    			    'item_list'      =>json_encode($itemArr,JSON_UNESCAPED_UNICODE) ,
+    			    'receiver'       =>$ticket->reciver ,
+    			    'issuer'         =>$ticket->issuer ,
+    			    'reviewer'       =>$ticket->reviewer ,
+    			    'change_field'   =>'' ,
+    		    ];
+    		    InvoiceInfo::create($info);
     }
      protected function checkPay($data){
     	$payinfo = Pay::where('payNo',$data['payNo'])->findOrEmpty();
@@ -125,16 +166,19 @@ class ComonQrd
     }
     public function CheckComonOrder($payinfo){
     	if($payinfo->status==3||$payinfo->status==4 ){
-	        PayInfo::alias('a')->leftJoin('ComonOrder b','a.cgdNo=b.cgdNo')
+	        PayInfo::alias('a')
+	        ->leftJoin('ComonOrder b','a.cgdNo=b.cgdNo')
 	            ->where(['payNo'=>$payinfo->payNo,'is_del'=>0,'a.status'=>0])
 	            ->update(['b.status'=>0]);
     	}else{
     		if($payinfo->inv_status==3 &&$payinfo->pay_status==3){
-	            PayInfo::alias('a')->leftJoin('ComonOrder b','a.cgdNo=b.cgdNo')
+	            PayInfo::alias('a')
+	            ->leftJoin('ComonOrder b','a.cgdNo=b.cgdNo')
 	            ->where(['payNo'=>$payinfo->payNo,'is_del'=>0,'a.status'=>1])
 	            ->update(["b.status"=>2]);
 		        }elseif($payinfo->inv_status!=3|| $payinfo->pay_status!=3){
-		            PayInfo::alias('a')->leftJoin('ComonOrder b','a.cgdNo=b.cgdNo')
+		            PayInfo::alias('a')
+		            ->leftJoin('ComonOrder b','a.cgdNo=b.cgdNo')
 		            ->where(['payNo'=>$payinfo->payNo,'is_del'=>0,'a.status'=>1])
 		            ->update(['b.status'=>1]);
 		        }