"增值税专用发票", "normal"=>"增值税普通发票", "roll"=>"增值税普通发票(卷式)", "special_electronic"=>"增值税电子专用发票", "electronic"=>"增值税电子普通发票", "blockchain_electronic"=>"区块链电子发票", "toll"=>"增值税电子普通发票(通行费)", "fully_digitalized_special_electronic"=>"全电专用发票", "fully_digitalized_normal_electronic"=>"全电普通发票", ]; public static function onAfterWrite(Model $model) : void{ $change = $model->getChangedData(); if (isset($change['status'])){ if($change['status']==4){ $itemid= InvoiceItem::where(['invoiceCode'=>$model->InvCode,'status'=>[1,2]])->column("id"); if(!empty($itemid)){ $invo= InvoiceOrder::whereIn('itemId',$itemid)->where(['status'=>[1,2]])->column("code,balance_amount,total_amount"); if(!empty($invo)){ foreach ($invo as $key=>$val){ $cgdinfo = CgdInfo::where(['sequenceNo'=>$val['code']])->findOrEmpty(); if(!$cgdinfo->isEmpty()){ $cgdinfo->ainv_fee = bcadd($cgdinfo->winv_fee,bcsub($val['total_amount'],$val['balance_amount'],2),2); $cgdinfo->inv_status = $cgdinfo->winv_fee==0 && $cgdinfo->ainv_fee==$cgdinfo->totalPrice ?3:2; $cgdinfo->save(); } $payinfo = PayInfo::where(['cgdNo'=>$val['code'],'status'=>1,'is_del'=>0])->findOrEmpty(); if(!$payinfo->isEmpty()){ $pay= Pay::where(['payNo'=>$payinfo->payNo,'status'=>2])->findOrEmpty(); if(!$pay->isEmpty()){ $pay->inv_fee=bcsub($pay->winv_fee,bcsub($val['total_amount'],$val['balance_amount'],2),2); $pay->ainv_fee = bcadd($pay->inv_fee,bcsub($val['total_amount'],$val['balance_amount'],2),2); $pay->inv_status = $pay->winv_fee==0 && $pay->inv_fee==0?3:2; $pay->save(); } } } } } } } } }