订单最小量限制的增强
在現(xiàn)實(shí)的銷售活動(dòng)中考慮到配送成本,需要限制小額訂單的開具,為了達(dá)到該目的,我們可以對出口USEREXIT_SAVE_DOCUMENT_PREPARE?進(jìn)行增強(qiáng),具體步驟如下.
一、設(shè)計(jì)訂單起定量設(shè)置表,自定義(銷售公司+訂單類型)具體定義參見下圖
?
建立通過sap表維護(hù)工具來維護(hù)自定義表程序和事務(wù)媽。?請參考:http://blog.csdn.net/CompassButton/archive/2007/06/04/1637580.aspx
二、設(shè)計(jì)訂單起定量設(shè)置(客戶)表,自定義(客戶)具體定義參見下圖
?
建立通過sap表維護(hù)工具來維護(hù)自定義表程序和事務(wù)媽。?
三、增強(qiáng)代碼
?se38打開單元MV45AFZZ,修改USEREXIT_SAVE_DOCUMENT_PREPARE過程,代碼如下
*---------------------------------------------------------------------*
*?????? FORM USEREXIT_SAVE_DOCUMENT_PREPARE?????????????????????????? *
*---------------------------------------------------------------------*
*?????? This userexit can be used for changes or checks, before a???? *
*?????? document is saved.??????????????????????????????????????????? *
*???????????????????????????????????????????????????????????????????? *
*?????? If field T180-TRTYP contents 'H', the document will be??????? *
*?????? created, else it will be changed.???????????????????????????? *
*???????????????????????????????????????????????????????????????????? *
*?????? This form is called at the beginning of form BELEG_SICHERN??? *
*???????????????????????????????????????????????????????????????????? *
*---------------------------------------------------------------------*
FORM USEREXIT_SAVE_DOCUMENT_PREPARE.
*{?? INSERT???????? DEVK938281??????????????????????????????????????? 1
??? DATA: zzamount LIKE vbak-netwr.
??? DATA: zmin LIKE vbak-netwr.
??? IF vbak-waerk NE tvko-waers.?????? "
????? CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
????? EXPORTING
??????? date = sy-datum
??????? foreign_amount = vbak-netwr
??????? foreign_currency = vbak-waerk
??????? local_currency = sy-waers
????? IMPORTING
??????? local_amount = zzamount
?????? EXCEPTIONS
???????? no_rate_found = 01
???????? overflow + 02.
????? IF sy-subrc NE 0.
??????? zzamount = vbak-netwr.
????? ENDIF.
??? ELSE.
????? zzamount = vbak-netwr.
??? ENDIF.
*minimum order value check in local currency
??? TABLES: zorderlimit, zorder_limit.
??? DATA?? minvalue? LIKE? vbak-netwr.
??? DATA difference LIKE vbak-netwr.
??? SELECT SINGLE * FROM zorder_limit
????? WHERE? vkorg EQ vbak-vkorg
???????? and auart EQ vbak-auart.
??? IF sy-subrc EQ 0.
????? SELECT SINGLE * FROM? zorderlimit
??????? WHERE KUNNR EQ vbak-KUNNR.
????? IF sy-subrc EQ 0.
??????? zmin =? zorderlimit-ZZNETWR? * 100.
??????? IF zzamount < zmin.
????????? MESSAGE '單據(jù)小于公司規(guī)定的訂單起定量,系統(tǒng)不能保存!' TYPE 'E'.
????????? sy-subrc = 4.
????????? exit.
??????? ENDIF.
????? ELSE.
??????? zmin =? zorder_limit-ZZNETWR * 100.
??????? IF zzamount < zmin.
????????? MESSAGE '單據(jù)小于公司規(guī)定的訂單起定量,系統(tǒng)不能保存!' TYPE 'E'.
????????? sy-subrc = 4.
????????? exit.
??????? ENDIF.
????? ENDIF.
??? ENDIF.
*
*}?? INSERT
ENDFORM.
*eject
總結(jié)
以上是生活随笔為你收集整理的订单最小量限制的增强的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。