Invoice.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace app\cxinv\model;
  3. use think\Model;use think\model\concern\SoftDelete;
  4. class Invoice extends Base{
  5. use SoftDelete;
  6. protected $createTime="createTime";
  7. protected $updateTime="updateTime";
  8. protected $deleteTime="delete_time";
  9. public static $invoiceType=[
  10. "special"=>"增值税专用发票",
  11. "normal"=>"增值税普通发票",
  12. "roll"=>"增值税普通发票(卷式)",
  13. "special_electronic"=>"增值税电子专用发票",
  14. "electronic"=>"增值税电子普通发票",
  15. "blockchain_electronic"=>"区块链电子发票",
  16. "toll"=>"增值税电子普通发票(通行费)",
  17. "fully_digitalized_special_electronic"=>"全电专用发票",
  18. "fully_digitalized_normal_electronic"=>"全电普通发票",
  19. ];
  20. public static $invStatus=[0=>'待验证','1'=>'正常','2'=>'已作废','3'=>'已红冲'];
  21. //0待验证 1待关联订单 2订单部分关联 3订单完全关联
  22. public function Items(){
  23. return $this->hasMany(InvoiceItem::class,'invoiceCode','InvCode');
  24. }
  25. // public static function onAfterWrite(Model $model) : void{
  26. // $change = $model->getChangedData();
  27. // if (isset($change['status'])){
  28. // if($change['status']==4){
  29. // $itemid= InvoiceItem::where(['invoiceCode'=>$model->InvCode,'status'=>[1,2]])->column("id");
  30. // if(!empty($itemid)){
  31. // $invo= InvoiceOrder::whereIn('itemId',$itemid)->where(['status'=>[1,2]])->column("code,balance_amount,total_amount");
  32. // if(!empty($invo)){
  33. // foreach ($invo as $key=>$val){
  34. // $cgdinfo = CgdInfo::where(['sequenceNo'=>$val['code']])->findOrEmpty();
  35. // if(!$cgdinfo->isEmpty()){
  36. // $cgdinfo->ainv_fee = bcadd($cgdinfo->winv_fee,bcsub($val['total_amount'],$val['balance_amount'],2),2);
  37. // $cgdinfo->inv_status = $cgdinfo->winv_fee==0 && $cgdinfo->ainv_fee==$cgdinfo->totalPrice ?3:2;
  38. // $cgdinfo->save();
  39. // }
  40. // $payinfo = PayInfo::where(['cgdNo'=>$val['code'],'status'=>1,'is_del'=>0])->findOrEmpty();
  41. // if(!$payinfo->isEmpty()){
  42. // $pay= Pay::where(['payNo'=>$payinfo->payNo,'status'=>2])->findOrEmpty();
  43. // if(!$pay->isEmpty()){
  44. // $pay->inv_fee=bcsub($pay->winv_fee,bcsub($val['total_amount'],$val['balance_amount'],2),2);
  45. // $pay->ainv_fee = bcadd($pay->inv_fee,bcsub($val['total_amount'],$val['balance_amount'],2),2);
  46. // $pay->inv_status = $pay->winv_fee==0 && $pay->inv_fee==0?3:2;
  47. // $pay->save();
  48. // }
  49. // }
  50. // }
  51. // }
  52. // }
  53. // }
  54. //
  55. // if($change['status']==9){
  56. // InvoiceItem::refund($model->InvCode);
  57. // }
  58. // }
  59. // }
  60. }