wugg 6 달 전
부모
커밋
505c03d12a
4개의 변경된 파일50개의 추가작업 그리고 35개의 파일을 삭제
  1. 25 15
      app/admin/command/CheckInvoice.php
  2. 11 9
      app/admin/command/CheckTicket.php
  3. 7 7
      app/admin/model/InvoiceInfo.php
  4. 7 4
      app/admin/model/InvoiceTicket.php

+ 25 - 15
app/admin/command/CheckInvoice.php

@@ -7,7 +7,7 @@ use app\admin\model\CompanyInfo;use app\admin\model\InvoiceInfo;use app\admin\mo
 use think\console\Input;
 use think\console\input\Argument;
 use think\console\input\Option;
-use think\console\Output;use think\facade\Config;
+use think\console\Output;use think\facade\Config;use think\facade\Db;
 
 class CheckInvoice extends Command
 {
@@ -54,29 +54,38 @@ class CheckInvoice extends Command
     }
     protected function taxCheck($invoice){
         $invoiceConf=Config::get('invoice');
-        $invoice = $invoiceConf['91110113MA004JNJ28'];
-        $Tax =new \TaxInvoice($invoice['appKey'],$invoice['appSecret'],$invoice['entCode']);
+        $iinvoicenfo = $invoiceConf['91110113MA004JNJ28'];
+        $Tax =new \TaxInvoice($iinvoicenfo['appKey'],$iinvoicenfo['appSecret'],$iinvoicenfo['entCode']);
         $opentime = date("Ymd",strtotime($invoice['open_time']));
         $checkNum= $invoice['checkNumber'];
         $invNum= $this->InvoiceNum[$invoice['invoiceType']];
-        if(!in_array($invNum,['012','022',"004","028"]))$checkNum= substr($invoice['checkNumber'],-6);
+        $subtotal= $invoice['inv_subtotal_amount'];
+        if(!in_array($invNum,['012','022',"028"]))$checkNum= substr($invoice['checkNumber'],-6);
         if(in_array($invNum,['021','022'])) $subtotal= $invoice['inv_amount'];
-        $result=$Tax->CheckInvoiceSingle( $checkNum,$subtotal,$invoice['inv_code'],$invoice['inv_number'],$opentime,$invNum);
-        if(isset($result['code']) && $result['code']=='0000' and count($result['data'])>0){
-            if($result['data']['cyjg']=="0001"){
-                $data= $result['data'];
-                 $this->changeFiled($data,$invoice);
-            }
-            if (in_array($result['data']['cyjg'],["0002","1014"])){
-                $this->lastUpdate($invoice['id']);
-            }
+       $result=$Tax->CheckInvoiceSingle( $checkNum,$subtotal,$invoice['invoiceCode'],$invoice['invoiceNumber'],$opentime,$invNum);;
+       Db::startTrans();
+        try{
+            if(isset($result['code']) && $result['code']=='0000' and count($result['data'])>0){
+                if($result['data']['cyjg']=='0001'){
+                    $data= $result['data'];
+                     $this->changeFiled($data,$invoice);
+                }
+                if (in_array($result['data']['cyjg'],['0002','1014'])){
+                    $this->lastUpdate($invoice['id']);
+                }else $this->faild($invoice['id']);
+            }else $this->faild($invoice['id']);
+            Db::commit();
+        }catch (\Exception $e){
+            Db::rollback();
+           echo $e->getMessage();
         }
-         $this->faild($invoice['id']);
+
     }
 
     protected function changeFiled($data,$invoice){
         $save = [
             "payNo"=>$invoice['payNo'],
+            "hpNo"=>$invoice['hpNo'],
             "type"=>$invoice['invoiceType'],
             "title"=>"",
             "code"=>$data['fpdm'],
@@ -102,7 +111,8 @@ class CheckInvoice extends Command
             "issuer"=>$data['kpr'],
             "reviewer"=>$data['fhr'],
             "remarks"=>$data['bz'],
-            "items"=>$this->checkItem($data['detailList'])
+            "change_field"=>"",
+            "item_list"=>$this->checkItem($data['detailList'])
         ];
         $pay = Pay::where(["payNo"=>$invoice['payNo'],"is_del"=>0,"status"=>2])->findOrEmpty();
 

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 11 - 9
app/admin/command/CheckTicket.php


+ 7 - 7
app/admin/model/InvoiceInfo.php

@@ -3,7 +3,7 @@ declare (strict_types = 1);
 
 namespace app\admin\model;
 
-use think\Model;
+use think\facade\Log;use think\Model;
 
 /**
  * @mixin \think\Model
@@ -11,20 +11,20 @@ use think\Model;
 class InvoiceInfo extends Model
 {
     protected $updateTime="updatetime";
-    protected $autoWriteTimestamp = true;
-    public function GetItemListAttr($value){
+    public function getItemListAttr($value){
         return json_decode($value,true);
     }
-    public function SetItemListAttr($value){
+    public function setItemListAttr($value){
         return json_encode($value,JSON_UNESCAPED_UNICODE);
     }
-    public static function OnAfterWrite(Model $model){
+    public static function onAfterWrite(Model $model){
+        log::info("InvoiceInfo::OnAfterWrite".json_encode($model->toArray()));
         $pay = Pay::where(["payNo"=>$model->payNo])->findOrEmpty();
         if(!$pay->isEmpty() && $pay->is_comon!=1){
             if($model->status==1 && !empty($model->item_list)){
                           (new  InvoiceItem)->saveAll(array_map(function ($item)use($model) {
                               return [
-                                  'invoice_code'=>$model->hpNo,
+                                  'invoiceCode'=>$model->hpNo,
                                   'order_type'=>2,
                                   'good_name'=>$item['name'],
                                   'unit'=>$item['unit'],
@@ -37,7 +37,7 @@ class InvoiceInfo extends Model
                                   'total_amount'=>bcadd($item['amount'],$item['tax'],2),
                                   'balance_amount'=>bcadd($item['amount'],$item['tax'],2),
                               ];
-                          },$model->item));
+                          },$model->item_list));
                        }
         }
 

+ 7 - 4
app/admin/model/InvoiceTicket.php

@@ -3,7 +3,7 @@ declare (strict_types = 1);
 
 namespace app\admin\model;
 
-use think\Model;
+use think\facade\Log;use think\Model;
 
 /**
  * @mixin \think\Model
@@ -16,11 +16,13 @@ class InvoiceTicket extends Model
     public function setItemAttr($v){
       return json_encode($v,JSON_UNESCAPED_UNICODE);
     }
-   public static function OnAfterUpdate(Model $model){
-       if($model->status==1 && $model->type==0 && $model->is_del==0 && !empty($model->item)){
+   public static function onAfterUpdate(Model $model){
+       log::info("InvoiceTicket::OnAfterUpdate");
+       Log::info('InvoiceTicket::OnAfterUpdate'.json_encode($model->toArray(),JSON_UNESCAPED_UNICODE));
+       if($model->status==1 && $model['type']==0 && $model->is_del==0 && !empty($model->item)){
           (new  InvoiceItem)->saveAll(array_map(function ($item)use($model) {
               return [
-                  'invoice_code'=>$model->invNo,
+                  'invoiceCode'=>$model->invNo,
                   'order_type'=>1,
                   'good_name'=>$item['XMMC'],
                   'unit'=>$item['DW'],
@@ -34,6 +36,7 @@ class InvoiceTicket extends Model
                   "balance_amount"=>bcadd($item['JE'],$item['SE'],2),
               ];
           },$model->item));
+         log::info('InvoiceTicket::OnAfterUpdate'.(new  InvoiceItem)->getLastSql());
        }
    }
 }

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.