还是先说说负余额是怎么产生的。
OCS产生负余额主要的来源有三个方面,第一个方面是租费类(租费、套餐费,保底优惠的实扣费用等等),由于租费类的费用不是由业务使用而来,所以租费类业务不管余额是不是足够,目前的“业务规则”都会将余额扣除,这方面是负余额产生最主要的原因,原来在某项目统计过的数据,占95%以上。第二个方面是离线话单(因OCS自身或者网络侧原因产生的不能及时处理产生),虽然听国际项目的兄弟说在国际项目上离线话单是丢弃的,但是国内运营商没人敢丢这个钱,所以这些话单也会造成负余额。还有一种情况可以认为是一些资费配置问题(或者说产品问题)引起。比如说配置通话前5分钟免费,但是每次预留值是3分钟,那每个3分钟都是免费的,到最后再算的时候,就可能费用超过了余额。
按照提到过的实扣和虚扣的逻辑,OCS对每一笔余额都实扣,如果余额不够,就将余额扣成负值。这一点,与OFCS处理非常不同,OFCS因为是虚扣,在月底批销的时候,如果余额不够,那相关的费用就不会进行销帐处理。比如某用户当月帐单是月租25元,市话25元,长话25元,其他25元,合计100元,如果只有50元余额,那就按照配置好的规则进行部分销帐,比如将月租和市话销帐,长话和其他则还是是”未销帐”状态。而OCS用户的话,则会是全部”已销帐”状态,余额为-50元。按照财务那边列收的规则,欠费不能列为收入,在OFCS中,统计”已销帐”的帐单即可,OCS,则需要减去50元的负余额,这时候问题就来了,财务列帐的时候需要有帐目,这50元该列什么帐目呢?
一般的做法是直接列为”欠费”帐目,这在财务那边是不允许的,只是没有办法的办法。实际上,这个只是简单问题,OCS这块的财务列收因为负余额的情况,引发了很多复杂的问题(比如负余额又交清了),所以就有了需要把OCS实扣改为虚扣的初衷。
但是仔细想想,其实OFCS的做法也不对。OFCS用余额对欠费进行销帐,如果不足欠费,则有一定的规则来进行部分销帐。实际这个规则不一定对,基本上是谁的拳头大谁就先销帐(嘿嘿),考虑税率的话,应该是谁的税少就给谁先销帐,如果按照公平公正的原则,应该谁的费用先产生,就给谁销帐,但是OFCS因为销帐的对象是帐单,所以不具备这个能力。实际上,这也是没有办法的办法。
所以,虚扣本来也不对,只是规避了这个问题。而实扣呢,没法解决这个问题。其实想通了也没那么份复杂,我认为正确的做法应该是,如果有余额就实扣,没有余额就不扣,把话单没扣的那部分钱,设定为”未销帐”状态,再进行合帐。
这个改造实际上也没有想象中的困难。主要是:
1、 涉及话单扣除余额的部分,原来的做法是,直接扣减掉单条话单的余额,需要加一个判断,如果余额不够,则扣为0,没扣除的部分存入落地话单的另外一个字段。
2、 合帐程序,需要对已经扣除余额的部分合帐为已销帐状态,对没有扣除的部分合帐为未销帐状态。
3、 批销流程、充值流程等,需要对未销帐的帐单进行销帐操作,这一点与OFCS的做法统一。
原文地址:http://www.cnblogs.com/smokefire/p/7725185.html