123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- namespace app\cxinv\model;
- class Pay extends Base
- {
- //设置字段信息
- protected $schema = [
- 'id' =>'bigint',//
- 'payNo' =>'varchar',//订单编号
- 'apply_id' =>'int',//申请人id
- 'apply_name' =>'varchar',//申请人名称
- 'supplierNo' =>'varchar',//供应商编号
- 'supplierName' =>'varchar',//供应商名称
- 'companyNo' =>'varchar',//业务企业名称
- 'companyName' =>'varchar',//业务企业名称
- 'pay_type' =>'tinyint',//对账单类型 1采购对账单 2 运费对账
- 'total_fee' =>'decimal',//对账总金额
- 'apay_fee' =>'decimal',//已付金额
- 'pay_fee' =>'decimal',//付款中金额
- 'wpay_fee' =>'decimal',//未付金额
- 'ainv_fee' =>'decimal',//已回发票
- 'inv_fee' =>'decimal',//回票中金额
- 'winv_fee' =>'decimal',//未回发票
- 'inv_status' =>'tinyint',//开票状态 1 未开票 2 部分开票 3 已开票
- 'pay_status' =>'tinyint',//付款状态 1 未付2部分付款 3 已付款
- 'status' =>'tinyint',//0 待提交 1 待买方审核 2 审核成功 3驳回 4 对账单无效,释放采购单数据
- 'is_comon' =>'tinyint',//是否是通用订单对账 0 否1是
- 'inv_tag' =>'tinyint',//回票标签
- 'pay_tag' =>'tinyint',//付款标签
- 'inv_tag_fee' =>'decimal',//回票标签金额
- 'pay_tag_fee' =>'decimal',//付款标签金额
- 'remark' =>'varchar',//备注
- 'is_del' =>'tinyint',//是否删除 0 否1 是
- 'addtime' =>'datetime',//新建时间
- 'updatetime' =>'datetime',//更新时间
- ];
- protected $createTime = 'addtime';
- protected $updateTime = 'updatetime';
- public static $status=['待提交','待买方审核','审核通过','审核驳回','对账单无效'];
- # 添加发票发票进行中
- public static function addInv($payNo,$payfee){
- $pay = self::where(['payNo'=>$payNo,'status'=>2,'is_del'=>0])->findOrEmpty();
- if($pay->isEmpty())throw new \Exception("对账单{$payNo}不存在");
- if($pay->winv_fee<$payfee)throw new \Exception("对账单{$payNo}未开票金额不足");
- $pay->winv_fee=$pay->winv_fee-$payfee;
- $pay->inv_fee=$pay->inv_fee+$payfee;
- $pay->inv_status= 2;
- $pay->save();
- }
- # 添加发票已开票
- public static function addAinv($payNo,$payfee){
- $pay = self::where(['payNo'=>$payNo,'status'=>2,'is_del'=>0])->findOrEmpty();
- if($pay->isEmpty())throw new \Exception("对账单{$payNo}不存在");
- if($pay->inv_fee<$payfee)throw new \Exception("对账单{$payNo}开票中金额不足");
- $pay->inv_fee=$pay->inv_fee-$payfee;
- $pay->ainv_fee=$pay->ainv_fee+$payfee;
- $pay->inv_status= $pay->winv_fee==0 && $pay->inv_fee==0 ? 3 : 2;
- $pay->save();
- }
- # 删除发票已开票
- public static function subAinv($payNo,$payfee){
- $pay = self::where(['payNo'=>$payNo,'status'=>2,'is_del'=>0])->findOrEmpty();
- if($pay->isEmpty())throw new \Exception("对账单{$payNo}不存在");
- if($pay->ainv_fee<$payfee)throw new \Exception("对账单{$payNo}开票金额不足");
- $pay->ainv_fee=$pay->ainv_fee-$payfee;
- $pay->winv_fee=$pay->winv_fee+$payfee;
- $pay->inv_status= $pay->ainv_fee==0 && $pay->inv_fee==0 ? 1 : 2;
- $pay->save();
- }
- # 删除发票未开票
- public static function subInv($payNo,$payfee){
- $pay = self::where(['payNo'=>$payNo,'status'=>2,'is_del'=>0])->findOrEmpty();
- if($pay->isEmpty())throw new \Exception("对账单{$payNo}不存在");
- if($pay->inv_fee<$payfee)throw new \Exception("对账单{$payNo}开票中金额不足");
- $pay->inv_fee=$pay->inv_fee-$payfee;
- $pay->winv_fee=$pay->winv_fee+$payfee;
- $pay->inv_status= $pay->ainv_fee==0 && $pay->inv_fee==0 ? 1 : 2;
- $pay->save();
- }
- }
|