'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(); } }