賬務(wù)微服務(wù)包括科目管理、賬單管理。
1. 科目管理
科目是指賬單中一筆賬款的商品,可以理解為是在項(xiàng)目和商戶進(jìn)行交易的一個(gè)東西。
1.1 業(yè)務(wù)功能
(1)科目資料包括名稱和代碼,其中代碼全局唯一。錄入之后就不允許再進(jìn)行修改。
(2)兩種業(yè)務(wù)狀態(tài):使用中、已停用。
(3)兩種業(yè)務(wù)操作:啟用、停用。
(4)科目有稅額的概念,比如價(jià)內(nèi)稅、價(jià)外稅等等,該屬性是用于計(jì)算稅額的。
1.2 數(shù)據(jù)結(jié)構(gòu)
CREATE TABLE `acc_subject` (
`uuid` varchar(38) NOT NULL COMMENT '唯一標(biāo)識',
`code` varchar(32) NOT NULL COMMENT '代碼',
`name` varchar(64) NOT NULL COMMENT '名稱',
`state` varchar(16) NOT NULL COMMENT '狀態(tài)',
`tax_rate` numeric(6, 4) NOT NULL COMMENT '稅率',
`remark` varchar(1024) NULL COMMENT '說明',
PRIMARY KEY (`uuid`),
INDEX `idx_subject_1`(`code`)
) COMMENT = '科目表';
2. 賬單管理
賬單的數(shù)據(jù)由招商微服務(wù)的結(jié)算周期明細(xì)出賬而來。
2.1 業(yè)務(wù)功能
(1)一個(gè)賬單包括項(xiàng)目(甲方)、商戶(乙方)、合同、銷售提成率、記賬日期、賬單總金額等數(shù)據(jù)。
(2)兩種業(yè)務(wù)狀態(tài):未生效、已生效。當(dāng)對結(jié)算周期明細(xì)進(jìn)行出賬生成賬單,此時(shí)賬單為未生效狀態(tài),允許重復(fù)編輯和刪除。若刪除賬單,需要對相應(yīng)的結(jié)算周期明細(xì)恢復(fù)出賬。
(3)一個(gè)賬單中包含若干賬款明細(xì)數(shù)據(jù),一條賬款明細(xì)包括本次結(jié)算起止日期,本次結(jié)算金額,本次銷售提成總額,以及科目等數(shù)據(jù)。
2.2 數(shù)據(jù)結(jié)構(gòu)
- 主表
CREATE TABLE `acc_statement` (
`uuid` varchar(38) NOT NULL COMMENT '唯一標(biāo)識',
`bill_number` varchar(38) NOT NULL COMMENT '單號',
`state` varchar(16) NOT NULL COMMENT '業(yè)務(wù)狀態(tài)',
`pay_state` varchar(16) NOT NULL COMMENT '付款狀態(tài)',
`store_uuid` varchar(38) NOT NULL COMMENT '項(xiàng)目uuid',
`tenant_uuid` varchar(38) NOT NULL COMMENT '商戶uuid',
`contract_uuid` varchar(38) NOT NULL COMMENT '合同uuid',
`account_date` date NOT NULL COMMENT '記賬日期',
`sales_rate` numeric(19, 4) NOT NULL COMMENT '銷售提成率',
`total` numeric(19, 2) NOT NULL COMMENT '賬單總金額',
`tax` numeric(19, 2) NOT NULL COMMENT '賬單總稅額',
PRIMARY KEY (`uuid`),
INDEX `idx_statement_1`(`contract_uuid`),
INDEX `idx_statement_2`(`store_uuid`, `tenant_uuid`)
) COMMENT = '賬單主表';
- 賬款明細(xì)表
CREATE TABLE `acc_statement_detail` (
`uuid` varchar(38) NOT NULL COMMENT '唯一標(biāo)識',
`statement_uuid` varchar(38) NOT NULL COMMENT '賬單主表uuid',
`line_number` int(8) NOT NULL COMMENT '行號',
`begin_date` date NOT NULL COMMENT '結(jié)算起始日期',
`end_date` date NOT NULL COMMENT '結(jié)算結(jié)束日期',
`total` numeric(19, 2) NOT NULL COMMENT '本次結(jié)算金額',
`tax` numeric(19, 2) NOT NULL COMMENT '本次結(jié)算稅額',
`sales_total` numeric(19, 2) NOT NULL COMMENT '本次銷售提成總額',
`sales_tax` numeric(19, 2) NOT NULL COMMENT '本次銷售提成稅額',
`subject_uuid` varchar(38) NOT NULL COMMENT '科目uuid',
`tax_rate` numeric(19, 4) NOT NULL COMMENT '稅率',
PRIMARY KEY (`uuid`),
INDEX `idx_smdetail_1`(`statement_uuid`, `line_number`)
) COMMENT = '賬單明細(xì)表';
