***INCLUDE MV45AFZZ .
************************************************************************
* *
* This include is reserved for user modifications *
* *
* Forms for sales document processing *
* *
* The name of modification modules should begin with 'ZZ'. *
* *
************************************************************************
*& 修改日期:2010.06.09
*& 修 改 人:zhouxu V1.0
*& 修改原因:1 ZGOR 广告物料发放订单项目类型与订单原因的判断
* 2 订单条件与客户组字段效验
* 3 Z001 成本中心发料项目类型与订单原因的判断
*& 修改日期:2010.06.23
*& 修 改 人:zhouxu V1.1
*& 修改原因: 暂时取消促销品的增强
*& 修改日期:2010.08.13
*& 修 改 人:zhouxu V1.2
*& 修改原因: 审批之后可以修改六个字段
*& 修改日期:2010.08.16
*& 修 改 人:zhouxu V1.3
*& 修改原因: 审批之后抬头金额小数点第二位不对无法修改
*& 修改日期:2010.08.16
*& 修 改 人:zhouxu V1.4
*& 修改原因: 审批之后项目金额小数点第二位不对无法修改
*& 修改日期:2010.08.17
*& 修 改 人:zhouxu V1.5
*& 修改原因: 审批之后项目税额MWSBP小数点第二位不对无法修改
*& 修改日期:2010.08.18
*& 修 改 人:zhouxu V1.6
*& 修改原因: 审批之后最后更改日期无法修改。
*& 修改日期:2010.08.18
*& 修 改 人:zhouxu V1.7
*& 修改原因: 审批之后净价格NETPR无法修改。NETPR
*& 修改日期:2010.08.20
*& 修 改 人:zhouxu V1.8
*& 修改原因:
*以下是免费样品订单(ZFD),广告物料订单(ZGOR)审核后不允许修改的字段内容:
*
*1,订单抬头:售达方,送达方,成本中心;
*2,订单明细:物料编码,数量,增删行项目.
*& 修改日期:2010.08.24
*& 修 改 人:zhouxu V1.9
*& 修改原因: 销售订单交货日期后移。
*
*& 修改日期:2010.10.27
*& 修改人:Susan
*& 修改原因:免费样品订单限制售达方只能是内部销售办事处,客户组:0002
*
*---------------------------------------------------------------------*
* FORM ZZEXAMPLE *
*---------------------------------------------------------------------*
* text...................................... *
*---------------------------------------------------------------------*
*FORM ZZEXAMPLE.
* ...
*ENDFORM.
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_DELETE_DOCUMENT *
*---------------------------------------------------------------------*
* This userexit can be used to delete data in additional tables *
* when a sales document is deleted. *
* *
* This form is called in dialog at the end of form BELEG_LOESCHEN*
* just before form BELEG_SICHERN is performed to delete the *
* datas on the database. *
* *
*---------------------------------------------------------------------*
FORM userexit_delete_document.
ENDFORM. "USEREXIT_DELETE_DOCUMENT
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_FIELD_MODIFICATION *
*---------------------------------------------------------------------*
* This userexit can be used to modify the attributes of *
* screen fields. *
* This form is processed for each field in the screen. *
* *
* The use of the fields screen-group1 to screen-group4 is: *
* *
* Screen-group1: Automatic modification contolles by transaction*
* MFAW. *
* Screen-group2: Contents 'LOO' for steploop-fields. *
* Screen-group3: Used for modififaction, which are dependent on *
* control tables or other fix information. *
* Screen-group4: Unused *
* *
* For field mofifications, which are dependent on the document *
* status, you can use the status field in the workareas *
* XVBAP for item status and XVBUK for header status. *
* *
* This form is called from module FELDAUSWAHL. *
* *
*---------------------------------------------------------------------*
FORM userexit_field_modification.
* CASE SCREEN-GROUP3.
* WHEN '900'.
* IF VBAK-VBTYP NE 'A'.
* SCREEN-ACTIVE = 0.
* ENDIF.
* ENDCASE.
* CASE screen-group2.
* WHEN 'LOO'.
* IF screen-group3 = '001' AND screen-group3 = '001'.
* SCREEN-INPUT = '0'.
* ENDIF.
* ENDCASE.
* CASE SCREEN-NAME.
* WHEN 'VBAK-VBELN'.
* SCREEN-ACTIVE = 0.
* ENDCASE.
** Begin v1.9
** 以下是免费样品订单(ZFD)对售达方的类型判断,限制售达方只能是内部办事处:账户组为:0002 Susan 2010.10.27
IF sy-tcode = 'VA01' OR sy-tcode = 'VA02' .
DATA:zktokd LIKE kna1-ktokd,kunnr LIKE vbak-kunnr.
IF xvbak-auart = 'ZFD' AND xvbak-kunnr IS NOT INITIAL.
* zktokd = kna1-ktokd while kunnr = xvbak-annr.
SELECT SINGLE ktokd FROM kna1
INTO zktokd
WHERE kunnr = xvbak-kunnr.
IF zktokd <> '0002'.
MESSAGE i398(00) WITH '免费样品订单售达方必须是内部销售办事处'.
EXIT.
ENDIF.
ENDIF.
ENDIF.
** End v1.9
IF sy-tcode = 'VA01' .
DATA:jhzq LIKE ymara_sd-jhzq,jhzqmax LIKE ymara_sd-jhzq.
DATA:matnr LIKE mara-matnr.
LOOP AT xvbap WHERE matnr IS NOT INITIAL .
CLEAR jhzq.
SELECT SINGLE jhzq FROM ymara_sd
INTO jhzq
WHERE matnr = xvbap-matnr.
IF jhzqmax < jhzq.
jhzqmax = jhzq.
matnr = xvbap-matnr.
ENDIF.
ENDLOOP.
DATA:dat LIKE sy-datum.
IF matnr IS NOT INITIAL AND jhzqmax IS NOT INITIAL.
DATA: i TYPE i VALUE 1.
dat = sy-datum .
WHILE i <= jhzqmax.
i = i + 1 .
dat = dat + 1.
*--------------工厂日历的日期---------------------
CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'
EXPORTING
date = dat
factory_calendar_id = 'CN'
IMPORTING
date = dat.
ENDWHILE.
*------------------end ----------------------------
vbak-vdatu = dat .
xvbep-edatu = dat .
MODIFY xvbep TRANSPORTING edatu WHERE posnr IS NOT INITIAL .
MESSAGE i398(00) WITH '该订单最长交货物料为' matnr '天数为:' jhzqmax.
ENDIF.
ENDIF.
ENDFORM. "USEREXIT_FIELD_MODIFICATION
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_MOVE_FIELD_TO_VBAK