123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- namespace app\cxinv\model;
- use think\Model;use think\model\concern\SoftDelete;
- class Invoice extends Base{
- use SoftDelete;
- protected $createTime="createTime";
- protected $updateTime="updateTime";
- protected $deleteTime="delete_time";
- public static $invoiceType=[
- "special"=>"增值税专用发票",
- "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();
- }
- }
- }
- }
- }
- }
- }
- }
- }
|