@Wahson
2019-11-26T01:44:28.000000Z
字数 1449
阅读 614
Wanbo
业务描述:
- 采购员向供应商采购牌号
- 首先在系统录入对应的采购单(同一个供应商,多个牌号应建成同一个采购单,这样可以一起付款),可能是资源单,也可能是背靠背采购
- 采购单审批通过后,可申请付款
- 申请付款时,采购员自行决定付款金额(不超过货物总金额),每个牌号分配付款情况(如 广州7042 7800 * 10 付款 0.1 作为定金)
- 付款申请创建后,需要管理员审核(确认付款),付款指令通过公众号模板消息发送给管理员,管理员点开模板链接,进行确认
- 付款指令确认后,对应财务人员进行制单,制单会根据具体付款情况,自行选择付款银行,可能会有多个付款银行的情况(余额不足或其他特殊情况)
- 制单后,由财务经理最终确认付款
- 付款指令撤销,付款前,都可以进行撤销
- 财务专员会在制单完成后,修改付款指令状态,如果此时指令被撤销了,财务转移需要撤销银行系统制单
- 财务支付前,先修改状态为支付中,此时采购员不能撤销指令,如果特殊情况需要撤销,线下通知财务停止支付,有财务撤销支付
付款确认页面设计:
状态流:
payment_application = (id, purchase_id, payment_id, status, amount,...)
流程:
1. 新建付款指令 一个付款指令会有对应多个payment的情况,如一次付款分多笔或分多个银行
数据模型:
use purchase_db;
create table payment_application(
id bigint auto_increment primary key not null,
purchase_id bigint not null comment '采购单id',
status smallint(2) not null comment '指令状态,10:待确认(to_be_confirmed);20:已确认(confirmed);30:已制单(voucher_made);40:已支付(paid);50:已撤销(revoked)',
supplier_company_id int not null default 0 comment '供应商id',
supplier_company_name varchar(64) not null default '' comment '供应商名称',
bank_name varchar(64) not null default '' comment '收款银行',
bank_no varchar(32) not null comment '收款银行账号',
platform_bank_name varchar(64) default null comment '平台付款银行',
platform_bank_no varchar(64) default null comment '平台付款帐号',
amount decimal(13, 2) default 0.00 not null comment '付款金额',
created_at timestamp default current_timestamp() not null,
created_by int default 0 not null,
updated_at timestamp default current_timestamp() not null,
updated_by int default 0 not null,
remark varchar(255) null comment '备注',
rmk varchar(255) null comment '系统备注'
) engine = innoDb charset = utf8mb4 comment '付款申请';