CMOD: CONFPP04 PP定单确认:客户特殊输入检查2
EXIT_SAPLCORF_104
PP Order Confirmation: Customer-Specific Input Check With Change
SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S31 { font-style. italic; color: #808080; } .L0S32 { color: #3399FF; } .L0S33 { color: #4DA619; } .L0S52 { color: #0000FF; } .
*&---------------------------------------------------------------------*
*& 包括 ZXCOFU14
*&---------------------------------------------------------------------*
DATA:BEGIN OF ITAB OCCURS 0 ,
VORNR LIKE RESB-VORNR,
RSNUM LIKE RESB-RSNUM,
MATNR LIKE RESB-MATNR,
RSPOS LIKE RESB-RSPOS,
AUSCH LIKE RESB-AUSCH, "部件废品率
BDMNG LIKE RESB-BDMNG, "需求
ENMNG LIKE RESB-ENMNG, "提取
DATA1 TYPE P DECIMALS 3,
DATA2 TYPE P DECIMALS 3,
END OF ITAB,
V_VORNR LIKE V_AFVC_AFKO-VORNR,
V_LMNGA_LJ LIKE AFRU-LMNGA, "累计报工数量
V_LMNGA_DQ LIKE AFRU-LMNGA, "当前报工数量
V_LMNGA LIKE AFRU-LMNGA. "累计+当前
IF AFRUD_IMP-LMNGA > 0 .
SELECT RSNUM MATNR RSPOS BDMNG ENMNG AUSCH VORNR
FROM RESB
INTO CORRESPONDING FIELDS OF TABLE ITAB
WHERE RSNUM = CAUFVD_IMP-RSNUM
AND VORNR = AFVGD_IMP-VORNR
AND BDMNG > 0
AND POSTP = 'L' “项目类别(物料单)
AND XLOEK NE 'X' ”删除物料
AND RGEKZ NE 'X' “标识:反冲
AND DUMPS NE 'X' “虚拟项目标识
AND XWAOK EQ 'X' ”
* and kzear ne 'X'
.
SELECT SUM( LMNGA ) FROM AFRU INTO V_LMNGA_LJ WHERE AUFNR = AFRUD_IMP-AUFNR AND VORNR = AFVGD_IMP-VORNR
AND STOKZ 'X' AND STZHL 1.
V_LMNGA = V_LMNGA_LJ + AFRUD_IMP-LMNGA.
LOOP AT ITAB.
ITAB-DATA1 = FLOOR( ITAB-BDMNG / ( 1 + ( ITAB-AUSCH / 100 ) ) / CAUFVD_IMP-GAMNG ). "算出每一个产成品需要花费多少单位的原材料
ITAB-DATA2 = FLOOR( ITAB-DATA1 * V_LMNGA ).
IF ITAB-DATA2 > ITAB-ENMNG.
MESSAGE '没有及时发料或发料数不够生产报工数,中止报工!' TYPE 'E'.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
*& 包括 ZXCOFU14
*&---------------------------------------------------------------------*
DATA:BEGIN OF ITAB OCCURS 0 ,
VORNR LIKE RESB-VORNR,
RSNUM LIKE RESB-RSNUM,
MATNR LIKE RESB-MATNR,
RSPOS LIKE RESB-RSPOS,
AUSCH LIKE RESB-AUSCH, "部件废品率
BDMNG LIKE RESB-BDMNG, "需求
ENMNG LIKE RESB-ENMNG, "提取
DATA1 TYPE P DECIMALS 3,
DATA2 TYPE P DECIMALS 3,
END OF ITAB,
V_VORNR LIKE V_AFVC_AFKO-VORNR,
V_LMNGA_LJ LIKE AFRU-LMNGA, "累计报工数量
V_LMNGA_DQ LIKE AFRU-LMNGA, "当前报工数量
V_LMNGA LIKE AFRU-LMNGA. "累计+当前
IF AFRUD_IMP-LMNGA > 0 .
SELECT RSNUM MATNR RSPOS BDMNG ENMNG AUSCH VORNR
FROM RESB
INTO CORRESPONDING FIELDS OF TABLE ITAB
WHERE RSNUM = CAUFVD_IMP-RSNUM
AND VORNR = AFVGD_IMP-VORNR
AND BDMNG > 0
AND POSTP = 'L' “项目类别(物料单)
AND XLOEK NE 'X' ”删除物料
AND RGEKZ NE 'X' “标识:反冲
AND DUMPS NE 'X' “虚拟项目标识
AND XWAOK EQ 'X' ”
* and kzear ne 'X'
.
SELECT SUM( LMNGA ) FROM AFRU INTO V_LMNGA_LJ WHERE AUFNR = AFRUD_IMP-AUFNR AND VORNR = AFVGD_IMP-VORNR
AND STOKZ 'X' AND STZHL 1.
V_LMNGA = V_LMNGA_LJ + AFRUD_IMP-LMNGA.
LOOP AT ITAB.
ITAB-DATA1 = FLOOR( ITAB-BDMNG / ( 1 + ( ITAB-AUSCH / 100 ) ) / CAUFVD_IMP-GAMNG ). "算出每一个产成品需要花费多少单位的原材料
ITAB-DATA2 = FLOOR( ITAB-DATA1 * V_LMNGA ).
IF ITAB-DATA2 > ITAB-ENMNG.
MESSAGE '没有及时发料或发料数不够生产报工数,中止报工!' TYPE 'E'.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.