MiniMall:財務微服務業務和數據結構

賬務微服務包括科目管理、賬單管理。

1. 科目管理

科目是指賬單中一筆賬款的商品,可以理解爲是在項目和商戶進行交易的一個東西。

1.1 業務功能

(1)科目資料包括名稱和代碼,其中代碼全局唯一。錄入之後就不允許再進行修改。

(2)兩種業務狀態:使用中、已停用。

(3)兩種業務操作:啓用、停用。

(4)科目有稅額的概念,比如價內稅、價外稅等等,該屬性是用於計算稅額的。

1.2 數據結構

CREATE TABLE `acc_subject`  (
  `uuid` varchar(38) NOT NULL COMMENT '唯一標識',
  `code` varchar(32) NOT NULL COMMENT '代碼',
  `name` varchar(64) NOT NULL COMMENT '名稱',
  `state` varchar(16) NOT NULL COMMENT '狀態',
  `tax_rate` numeric(6, 4) NOT NULL COMMENT '稅率',
  `remark` varchar(1024) NULL COMMENT '說明',
  PRIMARY KEY (`uuid`),
  INDEX `idx_subject_1`(`code`)
) COMMENT = '科目表';

2. 賬單管理

賬單的數據由招商微服務的結算週期明細出賬而來。

2.1 業務功能

(1)一個賬單包括項目(甲方)、商戶(乙方)、合同、銷售提成率、記賬日期、賬單總金額等數據。

(2)兩種業務狀態:未生效、已生效。當對結算週期明細進行出賬生成賬單,此時賬單爲未生效狀態,允許重複編輯和刪除。若刪除賬單,需要對相應的結算週期明細恢復出賬。

(3)一個賬單中包含若干賬款明細數據,一條賬款明細包括本次結算起止日期,本次結算金額,本次銷售提成總額,以及科目等數據。

2.2 數據結構

  • 主表
CREATE TABLE `acc_statement`  (
  `uuid` varchar(38) NOT NULL COMMENT '唯一標識',
  `bill_number` varchar(38) NOT NULL COMMENT '單號',
  `state` varchar(16) NOT NULL COMMENT '業務狀態',
  `pay_state` varchar(16) NOT NULL COMMENT '付款狀態',
  `store_uuid` varchar(38) NOT NULL COMMENT '項目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 = '賬單主表';
  • 賬款明細表
CREATE TABLE `acc_statement_detail`  (
  `uuid` varchar(38) NOT NULL COMMENT '唯一標識',
  `statement_uuid` varchar(38) NOT NULL COMMENT '賬單主表uuid',
  `line_number` int(8) NOT NULL COMMENT '行號',
  `begin_date` date NOT NULL COMMENT '結算起始日期',
  `end_date` date NOT NULL COMMENT '結算結束日期',
  `total` numeric(19, 2) NOT NULL COMMENT '本次結算金額',
  `tax` numeric(19, 2) NOT NULL COMMENT '本次結算稅額',
  `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 = '賬單明細表';
——End——
更多精彩分享,可掃碼關注微信公衆號哦。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章