退貨控制起作用的條件:客戶非無條件退貨、設(shè)置本季開始日期、正常退貨申請退貨、打開預(yù)警退貨控制;
一、‘控制金額’模式的退貨控制流程(以例說明)
1584
日期
發(fā)貨(可退貨)
退貨額
剩余可退額
退貨日期
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
系統(tǒng)中的流程說明:
首先每個客戶會記錄最后一次退貨日期和退貨后的剩余可退貨額,保存在j_merchant的Flastbackdate(最后一次退貨日期)、Fbackbalance(最后退貨后的剩余可退額)
1.先記錄此客戶的本季開始日期,為空則是
2.在審批1360的退貨單(首張退貨單)時,系統(tǒng)判斷是首次退貨(flastbackdate為空);(結(jié)束日期=今天)
3.計算出開始日期到結(jié)束日期所有發(fā)貨單中的可退貨額(根據(jù)發(fā)貨單上的退貨日期判斷);
沒過退貨日期發(fā)貨單的可退貨額 = 發(fā)貨金額 * 單上的退貨率
已過退貨日期發(fā)貨單的可退貨額 = 發(fā)貨金額 * 檔案中的退貨率
注:根據(jù)今天判斷發(fā)貨單是否過退貨日期
4.計算出時間段內(nèi)的可退貨額為5280,大于1360,允許退貨;
退貨收貨后,記錄最后一次退貨日期Flastbackdate為
5.到
第一段:先計算本季開始日期到最后一次退貨日期之間的發(fā)貨單,到今天(
1) 計算本季開始日期至
2) 判斷計算出的可退貨額3696小于當(dāng)時記錄的剩余可退貨額3920,則記錄截止
對比的含義:如果計算出的可退貨額小于當(dāng)時記錄的可退貨額,說明截止當(dāng)時的發(fā)貨單計算出的可退貨額到今天(
如果大于則表示已經(jīng)被當(dāng)時的退貨單(1360)退掉了,即如果今天是
注:判斷的規(guī)則是,哪個數(shù)值小就記錄哪個數(shù)值;
第二段:計算最后一次退貨日期之后(
額,計算得出是1000;即到今天(
6.到
退貨收貨后,記錄最后一次退貨日期Flastbackdate為
后面的計算方式以此類推。
流程中的規(guī)則,如果不按以下規(guī)則操作,可退貨額將不準(zhǔn)確:
1.按累計的可退貨額進(jìn)行控制,跟款式?jīng)]有關(guān)系;
2.如果審批退貨申請,沒有參照退貨或退貨后還未收貨,都算作占用可退貨額;
3.審批退貨申請時允許通過的判斷可退貨額的公式是:
當(dāng)時計算出的可退貨額 + 退貨偏移量 + 上季剩余退貨量 – 占用可退貨額 – 本次退貨額 >= 0
4.因記錄了最后一次退貨日期和剩余可退貨額,所以不能補(bǔ)退貨單到最后退貨日期之前,但發(fā)貨單沒有控制,可以補(bǔ)任何日期;
5.只能反登帳最后退貨日期的退貨單,不能反登帳最后退貨日期之前的退貨單;即退貨單只能倒推一張張往前反登帳;
6.如按第5點(diǎn)規(guī)則已反登帳了今天之前的退貨收貨單,即今天是
按上面的例子:即反登帳了2400退貨收貨單,把原記錄為最后退貨日期
7.登帳退貨收貨單必須按日期從前往后登帳(第4點(diǎn)的概念),如果重新登帳已反登帳的收貨單,將按照登帳日期重新記錄最后退貨日期為登帳日期和截止登帳日期為止的剩余可退貨額;
8.不可以直接在SQL查詢分析器中登帳或反登帳退貨審批單、退貨收貨單,會造成退貨額不準(zhǔn)確,因?yàn)橥素涱~是在程序里計算的;
二、‘按款式季度控制金額’ 模式的退貨控制流程
整個流程控制跟‘控制金額’模式一樣,不同之外在于在計算可退貨額時只是統(tǒng)計等于設(shè)置的退貨年份和退貨季度的款式。然后在審批退貨申請時,除了審批金額需小于等于剩余可配貨額外,只要審批單中包含有設(shè)置的退貨年份、季度外的款式就不允許通過。
流程規(guī)則也跟‘控制金額’模式一樣,唯一注意的是如果更改了退貨年份、退貨季度,必須進(jìn)行重算。
注:兩個退貨控制模式之間進(jìn)行切換時,需要進(jìn)行重算。