笔者曾经负责过一个线下结算ERP系统.
该系统需求难点之一是:
业务人员能灵活将线下商城签署的合同录入系统,并按合同生成账单,及财务账务.
每个商务合同都是在艰难的商业谈判之下签署的纸质合同.
每个线商家条款都商务规则都各不相同.
合同条款例子如下:
对于规则复杂多变的合同条款, 最简单粗暴的办法就是:
针对水电条款创建一张水电条款表,
针对收银机,刷卡费,创建相应的表
针对销售额相关的逻辑创建销售额扣点表.
但这种办法会有如下的问题:
从系统设计角度, 我们需要将所有条款归纳,再拆解成一个个不同类型的组件,每个合同条款的配置,就是将这些合适组件组合起来的过程.这些条款组件如下:
基本规则在后端实现会对应一个业务逻辑类.
是结算的核心。
如电费结算规则引擎,销售额结算规则引擎,水费结算规则引擎,收银机结算费用规则引擎, 刷卡费用结算规则引擎
决定账单结算的计算周期,如每十天,每个月,每三个月
与条款基本规则引擎组件 配搭使用.
如水费或电费结算规则引擎组件一般是使用:单价的处理方法组件
可选的处理方法组件有:
单价,纯扣点,进阶扣点,分段扣点,分类扣点.
用于指定期间减免相应的扣点或金额.
主要用于指定相应期间统筹的扣点及保底金额
可设定: 某期间(一年)销售额不低于180万元,实际销售额少于保底销售额时,店铺应按照当期约定保底销售额乘以5%扣率向广场缴纳保底抽成额
主要是配合电费,水费, 收银机等结算规则引擎
每个合同条款可以由上面几个组件随意组合,其中条款基本规则引擎组件与结算周期配置组件,处理方法组件是必选的.