wugg 8 månader sedan
förälder
incheckning
e6ef1825af
2 ändrade filer med 17 tillägg och 20 borttagningar
  1. 9 1
      app/admin/controller/Payment.php
  2. 8 19
      app/admin/listener/ComonQrd.php

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

@@ -1331,7 +1331,7 @@ class Payment extends Base
             $val = Validate::rule([
                 'payNo|对账编号' => 'require|max:255',
                 'invoiceType|发票类型' => 'require|in:' . implode(',', array_values($this->invName)),
-                'invoiceCode|发票代码' => 'require|max:255',
+                'invoiceCode|发票代码' => 'invoiceCodeCallback',
                 'invoiceNumber|发票号码' => 'require|max:255',
                 'inv_subtotal_amount|发票税前金额' => 'require|float|max:9999999.99',
                 'open_time|开票日期' => 'require|date',
@@ -1346,6 +1346,14 @@ class Payment extends Base
                 return true;
             });
 
+            $val->extend('invoiceCodeCallback', function ($val, $rule, $da) {
+
+                            if (in_array($da['invoiceType'], ['special', 'normal', 'roll', 'special_electronic', 'electronic', 'toll'])) {
+                                if (empty($val)) return '发票代码必填';
+                            }
+                            return true;
+                        });
+
             //所有的payNo(对账编码)
             $payNo = array_column($param['list'], 'payNo');
 

+ 8 - 19
app/admin/listener/ComonQrd.php

@@ -171,35 +171,24 @@ class ComonQrd
                 'pay_tag_fee' => 0,
                 'pay_tag'     => 1
             ];
-            if ($item->pay_tag_fee > $data['pay_fee']) {
-                $qrd['pay_tag_fee']  = $item->pay_tag_fee -$data['pay_fee'];
-                $qrd['pay_tag']  = $qrd['pay_tag_fee']==0 ? 0:1;
-                $qrd['wpay_fee']     = $item->wpay_fee + $data['pay_fee'];
-                $qrd['apay_fee']     = ($item->apay_fee>=$data['pay_fee'])?($item->apay_fee-$data['pay_fee']):0 ;
+            if ($item->pay_tag_fee >= $data['apay_fee']) {
+                $qrd['pay_tag_fee']  = 0;
+                $qrd['pay_tag']  =0;
+                $qrd['wpay_fee']     = $item->wpay_fee + $item->pay_tag_fee;
+                $qrd['apay_fee']     = 0 ;
                 $qrd['pay_status']   = ($qrd['wpay_fee'] == 0 && $item->pay_fee == 0) ? 3 : ($qrd['apay_fee'] == 0 ? 1 : 2);
-                $data['pay_fee']     = 0;
             } else {
-                $data['pay_fee']     = $data['pay_fee'] - $item->pay_tag_fee;
                 $qrd['pay_tag_fee']  = 0;
                 $qrd['pay_tag']  = 0;
-                $qrd['wpay_fee']     = $item->pay_tag_fee;
-                $qrd['apay_fee']     = ($item->apay_fee>=$item->pay_tag_fee)?($item->apay_fee-$item->pay_tag_fee):0 ;
+                $qrd['wpay_fee']     = $item->wpay_fee +  $item->pay_tag_fee;
+                $qrd['apay_fee']     = $item->apay_fee-$item->pay_tag_fee ;
                 $qrd['pay_status']   = ($qrd['wpay_fee'] == 0 && $item->pay_fee == 0) ? 3 : ($qrd['apay_fee'] == 0 ? 1 : 2);
 
             }
             $qrdSave[] = $qrd;
-            if( $qrd['pay_tag']==0)$del[]=$item->sequenceNo;
-            else{
-                $tag[]=[
-                    'id'=>TagLog::where('code',$item->sequenceNo)->value('id'),
-                    'tag_fee' => $qrd['pay_tag_fee'],
-                    'updatetime'=>date('Y-m-d H:i:s')
-                ];
-            }
-            if ($data['pay_fee'] == 0) break;
+            $del[]=$item->sequenceNo;
         }
         (new \app\admin\model\QrdInfo)->saveAll($qrdSave);
-        (new \app\admin\model\TagLog)->saveAll($tag);
         (new \app\admin\model\TagLog)->where('code','in',$del)->delete();
     }
     public function returnInv($data){