Pay.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace app\cxinv\model;
  3. class Pay extends Base
  4. {
  5. //设置字段信息
  6. protected $schema = [
  7. 'id' =>'bigint',//
  8. 'payNo' =>'varchar',//订单编号
  9. 'apply_id' =>'int',//申请人id
  10. 'apply_name' =>'varchar',//申请人名称
  11. 'supplierNo' =>'varchar',//供应商编号
  12. 'supplierName' =>'varchar',//供应商名称
  13. 'companyNo' =>'varchar',//业务企业名称
  14. 'companyName' =>'varchar',//业务企业名称
  15. 'pay_type' =>'tinyint',//对账单类型 1采购对账单 2 运费对账
  16. 'total_fee' =>'decimal',//对账总金额
  17. 'apay_fee' =>'decimal',//已付金额
  18. 'pay_fee' =>'decimal',//付款中金额
  19. 'wpay_fee' =>'decimal',//未付金额
  20. 'ainv_fee' =>'decimal',//已回发票
  21. 'inv_fee' =>'decimal',//回票中金额
  22. 'winv_fee' =>'decimal',//未回发票
  23. 'inv_status' =>'tinyint',//开票状态 1 未开票 2 部分开票 3 已开票
  24. 'pay_status' =>'tinyint',//付款状态 1 未付2部分付款 3 已付款
  25. 'status' =>'tinyint',//0 待提交 1 待买方审核 2 审核成功 3驳回 4 对账单无效,释放采购单数据
  26. 'is_comon' =>'tinyint',//是否是通用订单对账 0 否1是
  27. 'inv_tag' =>'tinyint',//回票标签
  28. 'pay_tag' =>'tinyint',//付款标签
  29. 'inv_tag_fee' =>'decimal',//回票标签金额
  30. 'pay_tag_fee' =>'decimal',//付款标签金额
  31. 'remark' =>'varchar',//备注
  32. 'is_del' =>'tinyint',//是否删除 0 否1 是
  33. 'addtime' =>'datetime',//新建时间
  34. 'updatetime' =>'datetime',//更新时间
  35. ];
  36. protected $createTime = 'addtime';
  37. protected $updateTime = 'updatetime';
  38. public static $status=['待提交','待买方审核','审核通过','审核驳回','对账单无效'];
  39. # 添加发票发票进行中
  40. public static function addInv($payNo,$payfee){
  41. $pay = self::where(['payNo'=>$payNo,'status'=>2,'is_del'=>0])->findOrEmpty();
  42. if($pay->isEmpty())throw new \Exception("对账单{$payNo}不存在");
  43. if($pay->winv_fee<$payfee)throw new \Exception("对账单{$payNo}未开票金额不足");
  44. $pay->winv_fee=$pay->winv_fee-$payfee;
  45. $pay->inv_fee=$pay->inv_fee+$payfee;
  46. $pay->inv_status= 2;
  47. $pay->save();
  48. }
  49. # 添加发票已开票
  50. public static function addAinv($payNo,$payfee){
  51. $pay = self::where(['payNo'=>$payNo,'status'=>2,'is_del'=>0])->findOrEmpty();
  52. if($pay->isEmpty())throw new \Exception("对账单{$payNo}不存在");
  53. if($pay->inv_fee<$payfee)throw new \Exception("对账单{$payNo}开票中金额不足");
  54. $pay->inv_fee=$pay->inv_fee-$payfee;
  55. $pay->ainv_fee=$pay->ainv_fee+$payfee;
  56. $pay->inv_status= $pay->winv_fee==0 && $pay->inv_fee==0 ? 3 : 2;
  57. $pay->save();
  58. }
  59. # 删除发票已开票
  60. public static function subAinv($payNo,$payfee){
  61. $pay = self::where(['payNo'=>$payNo,'status'=>2,'is_del'=>0])->findOrEmpty();
  62. if($pay->isEmpty())throw new \Exception("对账单{$payNo}不存在");
  63. if($pay->ainv_fee<$payfee)throw new \Exception("对账单{$payNo}开票金额不足");
  64. $pay->ainv_fee=$pay->ainv_fee-$payfee;
  65. $pay->winv_fee=$pay->winv_fee+$payfee;
  66. $pay->inv_status= $pay->ainv_fee==0 && $pay->inv_fee==0 ? 1 : 2;
  67. $pay->save();
  68. }
  69. # 删除发票未开票
  70. public static function subInv($payNo,$payfee){
  71. $pay = self::where(['payNo'=>$payNo,'status'=>2,'is_del'=>0])->findOrEmpty();
  72. if($pay->isEmpty())throw new \Exception("对账单{$payNo}不存在");
  73. if($pay->inv_fee<$payfee)throw new \Exception("对账单{$payNo}开票中金额不足");
  74. $pay->inv_fee=$pay->inv_fee-$payfee;
  75. $pay->winv_fee=$pay->winv_fee+$payfee;
  76. $pay->inv_status= $pay->ainv_fee==0 && $pay->inv_fee==0 ? 1 : 2;
  77. $pay->save();
  78. }
  79. }