退货控制起作用的条件:客户非无条件退货、设置本季开始日期、正常退货申请退货、打开预警退货控制;
一、‘控制金额’模式的退货控制流程(以例说明)
1584
日期
发货(可退货)
退货额
剩余可退额
退货日期
2008-01-01
1584
2008-04-01
2008-02-01
3696
5280
2008-05-01
2008-03-01
1360
3290
2008-03-20
1000
4020
2008-06-01
2008-04-15
4696
2008-24-20
2400
2296
2008-04-30
3000
5296
2008-07-01
2008-05-10
4000
2008-06-10
3000
2008-07-10
0
系统中的流程说明:
首先每个客户会记录最后一次退货日期和退货后的剩余可退货额,保存在j_merchant的Flastbackdate(最后一次退货日期)、Fbackbalance(最后退货后的剩余可退额)
1.先记录此客户的本季开始日期,为空则是
2.在审批1360的退货单(首张退货单)时,系统判断是首次退货(flastbackdate为空);(结束日期=今天)
3.计算出开始日期到结束日期所有发货单中的可退货额(根据发货单上的退货日期判断);
没过退货日期发货单的可退货额 = 发货金额 * 单上的退货率
已过退货日期发货单的可退货额 = 发货金额 * 档案中的退货率
注:根据今天判断发货单是否过退货日期
4.计算出时间段内的可退货额为5280,大于1360,允许退货;
退货收货后,记录最后一次退货日期Flastbackdate为
5.到
第一段:先计算本季开始日期到最后一次退货日期之间的发货单,到今天(
1) 计算本季开始日期至
2) 判断计算出的可退货额3696小于当时记录的剩余可退货额3920,则记录截止
对比的含义:如果计算出的可退货额小于当时记录的可退货额,说明截止当时的发货单计算出的可退货额到今天(
如果大于则表示已经被当时的退货单(1360)退掉了,即如果今天是
注:判断的规则是,哪个数值小就记录哪个数值;
第二段:计算最后一次退货日期之后(
额,计算得出是1000;即到今天(
6.到
退货收货后,记录最后一次退货日期Flastbackdate为
后面的计算方式以此类推。
流程中的规则,如果不按以下规则操作,可退货额将不准确:
1.按累计的可退货额进行控制,跟款式没有关系;
2.如果审批退货申请,没有参照退货或退货后还未收货,都算作占用可退货额;
3.审批退货申请时允许通过的判断可退货额的公式是:
当时计算出的可退货额 + 退货偏移量 + 上季剩余退货量 – 占用可退货额 – 本次退货额 >= 0
4.因记录了最后一次退货日期和剩余可退货额,所以不能补退货单到最后退货日期之前,但发货单没有控制,可以补任何日期;
5.只能反登帐最后退货日期的退货单,不能反登帐最后退货日期之前的退货单;即退货单只能倒推一张张往前反登帐;
6.如按第5点规则已反登帐了今天之前的退货收货单,即今天是
按上面的例子:即反登帐了2400退货收货单,把原记录为最后退货日期
7.登帐退货收货单必须按日期从前往后登帐(第4点的概念),如果重新登帐已反登帐的收货单,将按照登帐日期重新记录最后退货日期为登帐日期和截止登帐日期为止的剩余可退货额;
8.不可以直接在SQL查询分析器中登帐或反登帐退货审批单、退货收货单,会造成退货额不准确,因为退货额是在程序里计算的;
二、‘按款式季度控制金额’ 模式的退货控制流程
整个流程控制跟‘控制金额’模式一样,不同之外在于在计算可退货额时只是统计等于设置的退货年份和退货季度的款式。然后在审批退货申请时,除了审批金额需小于等于剩余可配货额外,只要审批单中包含有设置的退货年份、季度外的款式就不允许通过。
流程规则也跟‘控制金额’模式一样,唯一注意的是如果更改了退货年份、退货季度,必须进行重算。
注:两个退货控制模式之间进行切换时,需要进行重算。