ZCMM01-9

*Yuan-Yuan 20091123 add.en
***lbg20080918.add.en
  LOOP AT ZCM04TAB WHERE  MARKDELETION NE 'X' AND MATNR  NE
SPACE.
*Ariel add 2010.04.23.sn check unit if 'EA' not allow decimal
    SELECT SINGLE * FROM ZMM048
    WHERE WERKS = ZCM04TAB-WERKS
    AND BJECT = 'DECIMALCEK'
    AND VALUE = 'ACTIVE'.
    IF SY-SUBRC EQ 0 AND ZCM04TAB-ERFME = 'EA'.
      L_DEC = FRAC( ZCM04TAB-ERFMG ).
      IF L_DEC <> 0.
        MESSAGE E000 WITH ZCM04TAB-DOCITEM
                          ZCM04TAB-MATNR
                          ' Unit is EA not allow Decimal! '.
      ENDIF.
    ENDIF.
*Ariel add 2010.04.23.en
* Elven20070411   add Reservation check
*    IF ZCM04TAB-RSNUM IS INITIAL OR ZCM04TAB-RSPOS IS INITIAL.
    CLEAR L_RSNUM.
    CLEAR L_RSPOS.
* add by candy Huseh document type A check reservation
    IF ZCM03-DOCTYPE EQ '1' OR ZCM03-DOCTYPE EQ '2' OR
       ZCM03-DOCTYPE EQ 'A' OR ZCM03-DOCTYPE EQ 'H'.
*"Ariel add 100208 get goods issue part ABC code
      SELECT SINGLE MAABC
      INTO ZCM04TAB-MAABC
      FROM MARC
      WHERE MATNR = ZCM04TAB-MATNR
        AND WERKS = ZCM04TAB-WERKS.
      MODIFY ZCM04TAB.
*Ariel 100208 add end

***LBG20080423.ADD.SN faliao - tuiliao >= ruku
      L_CNT = 0.
      L_RECONTROL = 'N'.
      SELECT COUNT(*) INTO L_CNT FROM ZMM048 WHERE
       WERKS = ZCM04TAB-WERKS AND BJECT = 'OVERRETURN'
         AND VALUE = 'ACTIVE'.
      IF L_CNT > 0.
        L_RECONTROL = 'Y'.
      ENDIF.
      IF L_RECONTROL = 'Y'.
        CLEAR: L_PSMNG, L_WEMNG, L_DAUAT.
        SELECT SINGLE AFPO~PSMNG AFPO~WEMNG AFPO~DAUAT
         INTO (L_PSMNG, L_WEMNG, L_DAUAT ) FROM AFPO
          WHERE AUFNR EQ ZCM03-AUFNR
            AND POSNR EQ '0001'.
      ENDIF.
****lbg20080423.add.sn faliao - tuiliao >= ruku
      L_NOPOSTRETURN = 0.
      IF ZCM03-DOCTYPE = '2' AND L_RECONTROL = 'Y'.
        PERFORM. RETURN_CONTROL.
      ENDIF.
****lbg20080423.add.en
***LBG20080423.ADD.EN faliao - tuiliao >= ruku
      CLEAR: L_ENMNG.
      CLEAR: L_ALPGR.
      CLEAR: L_ALPOS.
      CLEAR: L_BAUGR.
      CLEAR: L_REQUIREQTY.
      CLEAR: L_QPA.
      L_YINGFA = 0.
***lbg20080509.add.sn
      CLEAR: L_VALUE,RES_FLAG.
      SELECT SINGLE VALUE INTO L_VALUE FROM ZMM048
      WHERE WERKS = ZCM04TAB-WERKS AND BJECT = 'DOCTYPE13'.
*Yuan-Yuan 20091024 add.sn
      SELECT SINGLE VALUE INTO L_VALUE1 FROM ZMM048
      WHERE WERKS = ZCM04TAB-WERKS AND BJECT = 'WORETURNGI'.
*Yuan-Yuan 20091024 add.en
*Ariel add090818.start  ------------------------------------------*
      SELECT SINGLE INDICATOR1 INTO RES_FLAG FROM ZPCECONTROLVALUE
      WHERE WERKS = ZCM04TAB-WERKS AND CTYPE = 'RESCHECK'.
*Ariel add090818.end  --------------------------------------------*
*Ariel add100114.start  EPD2 SUB GROUP OVER GI CONTROL-------------*
      SELECT COUNT( * ) INTO L_SGI FROM ZMM048
      WHERE WERKS = ZCM04TAB-WERKS
      AND BJECT = 'OVERISSUE3'
      AND VALUE = 'ACTIVE'.
*Ariel add100114.end  --------------------------------------------*


**********************************Aiking.sn
*Echo 20090806 add check valuation type.bn
      CALL FUNCTION 'ZRFC_MM_PCE_0054'
           EXPORTING
                PLANT          = ZCM04TAB-WERKS
                PARTNO         = ZCM04TAB-MATNR
                SLOC           = ZCM04TAB-LGORT
           IMPORTING
                VALUATION_TYPE = L_CHARG.

*Ariel add090818 RES_FLAG check
      IF L_VALUE = '261'.
        SELECT SINGLE RESB~RSNUM RESB~RSPOS RESB~ENMNG
          RESB~BDMNG RESB~ALPGR RESB~ALPOS RESB~BAUGR
           RESB~ESMNG   "LBG20080419.ADD ying fa qty
           INTO (L_RSNUM ,L_RSPOS, L_ENMNG ,
            L_REQUIREQTY ,L_ALPGR ,L_ALPOS , L_BAUGR ,
            L_QPA )
          FROM RESB INNER JOIN AFKO ON RESB~RSNUM = AFKO~RSNUM
           WHERE AFKO~AUFNR EQ ZCM03-AUFNR
            AND RESB~MATNR EQ ZCM04TAB-MATNR
            AND RESB~RSNUM EQ ZCM04TAB-RSNUM
            AND RESB~RSPOS EQ ZCM04TAB-RSPOS
            AND RESB~XLOEK NE 'X' AND RESB~BDMNG > 0
            AND RESB~CHARG EQ ZCM04TAB-CHARG.
      ELSE.
***lbg20080509.add.en
        IF L_CHARG NE SPACE. "have valuation type
          SELECT SINGLE RESB~RSNUM RESB~RSPOS RESB~ENMNG
            RESB~BDMNG RESB~ALPGR RESB~ALPOS RESB~BAUGR
            RESB~ESMNG   "LBG20080419.ADD ying fa qty
            INTO (L_RSNUM ,L_RSPOS, L_ENMNG ,
            L_REQUIREQTY ,L_ALPGR ,L_ALPOS , L_BAUGR ,
            L_QPA )
            FROM RESB INNER JOIN AFKO ON RESB~RSNUM = AFKO~RSNUM
            WHERE AFKO~AUFNR EQ ZCM03-AUFNR
            AND RESB~MATNR EQ ZCM04TAB-MATNR
            AND RESB~RSNUM EQ ZCM04TAB-RSNUM
            AND RESB~RSPOS EQ ZCM04TAB-RSPOS.
        ELSE.
          SELECT SINGLE RESB~RSNUM RESB~RSPOS RESB~ENMNG
           RESB~BDMNG RESB~ALPGR RESB~ALPOS RESB~BAUGR
           RESB~ESMNG   "LBG20080419.ADD ying fa qty
           INTO (L_RSNUM ,L_RSPOS, L_ENMNG ,
           L_REQUIREQTY ,L_ALPGR ,L_ALPOS , L_BAUGR ,
           L_QPA )
           FROM RESB INNER JOIN AFKO ON RESB~RSNUM = AFKO~RSNUM
           WHERE AFKO~AUFNR EQ ZCM03-AUFNR
           AND RESB~MATNR EQ ZCM04TAB-MATNR
           AND RESB~RSNUM EQ ZCM04TAB-RSNUM
           AND RESB~RSPOS EQ ZCM04TAB-RSPOS
           AND RESB~CHARG EQ ZCM04TAB-CHARG.
        ENDIF.
      ENDIF.

**********************************Aiking.en
      IF SY-SUBRC NE 0 .
* if sy-subrc ne0 or zcm03-doctype eq '2'."tuiliao bu kaoLV ITEM
***lbg20080509.add.sn
        IF L_VALUE = '261'.
          SELECT SINGLE RESB~RSNUM RESB~RSPOS RESB~ENMNG
            RESB~BDMNG RESB~ALPGR RESB~ALPOS RESB~BAUGR
            RESB~ESMNG
              "LBG20080419.ADD ying fa qty
           INTO (L_RSNUM ,L_RSPOS, L_ENMNG ,
           L_REQUIREQTY,L_ALPGR ,L_ALPOS ,L_BAUGR ,L_QPA)
          FROM RESB
           INNER JOIN AFKO ON RESB~RSNUM = AFKO~RSNUM
           WHERE AFKO~AUFNR EQ ZCM03-AUFNR
            AND RESB~MATNR EQ ZCM04TAB-MATNR
            AND RESB~XLOEK NE 'X' AND RESB~BDMNG > 0
            AND RESB~CHARG EQ ZCM04TAB-CHARG.
        ELSE.
***lbg20080509.add.en
          IF L_CHARG EQ SPACE. "have not valuation type
            SELECT SINGLE RESB~RSNUM RESB~RSPOS RESB~ENMNG
             RESB~BDMNG RESB~ALPGR RESB~ALPOS RESB~BAUGR
             RESB~ESMNG
               "LBG20080419.ADD ying fa qty
            INTO (L_RSNUM ,L_RSPOS, L_ENMNG ,
            L_REQUIREQTY,L_ALPGR ,L_ALPOS ,L_BAUGR ,L_QPA)
           FROM RESB
            INNER JOIN AFKO ON RESB~RSNUM = AFKO~RSNUM
            WHERE AFKO~AUFNR EQ ZCM03-AUFNR
             AND RESB~MATNR EQ ZCM04TAB-MATNR
             AND RESB~CHARG EQ ZCM04TAB-CHARG.
          ELSE.
            IF ZCM03-DOCTYPE = '2'. "only for return
              SELECT SINGLE RESB~RSNUM RESB~RSPOS RESB~ENMNG
              RESB~BDMNG RESB~ALPGR RESB~ALPOS RESB~BAUGR
              RESB~ESMNG
                "LBG20080419.ADD ying fa qty
             INTO (L_RSNUM ,L_RSPOS, L_ENMNG ,
             L_REQUIREQTY,L_ALPGR ,L_ALPOS ,L_BAUGR ,L_QPA)
            FROM RESB
             INNER JOIN AFKO ON RESB~RSNUM = AFKO~RSNUM
             WHERE AFKO~AUFNR EQ ZCM03-AUFNR
              AND RESB~MATNR EQ ZCM04TAB-MATNR.
            ENDIF.
          ENDIF.
        ENDIF.
        IF SY-SUBRC NE 0.
          MESSAGE E000 WITH 'No Reservation info of '
                 ZCM04TAB-DOCITEM  "kelly 100203
                 ZCM04TAB-MATNR
                 ZCM04TAB-CHARG.
        ENDIF.
      ENDIF.

      ZCM04TAB-RSNUM = L_RSNUM.
      ZCM04TAB-RSPOS = L_RSPOS.

      MODIFY ZCM04TAB.

      IF ZCM03-DOCTYPE EQ '2' AND ZCM04TAB-WERKS CS 'TW'.
        IF L_ENMNG < ZCM04TAB-ERFMG.
          MESSAGE E000 WITH 'Error: Return Qty > Issue Qty'
                       ZCM04TAB-MATNR ZCM04TAB-CHARG.
        ENDIF.
      ENDIF.
*Yuan-Yuan 20091024 add NPD WO R-GI Control.sn
      IF ZCM03-DOCTYPE EQ '2' AND L_VALUE1 EQ 'ACTIVE'.
        CLEAR:L_ENMNG1, L_TOTALISSUE, L_TOTALRETURN.

        SELECT SINGLE ZGROUP
        INTO ZPCEMM045-ZGROUP
        FROM ZPCEMM045
        WHERE WERKS EQ ZCM04TAB-WERKS
        AND LGORT EQ ZCM04TAB-LGORT.

        SELECT SUM( MENGE )
        INTO L_TOTALISSUE
        FROM AUFM
        WHERE AUFNR EQ ZCM03-AUFNR
        AND SHKZG EQ 'H'  "issue qty
        AND MATNR EQ ZCM04TAB-MATNR
        AND WERKS EQ ZCM04TAB-WERKS
        AND LGORT IN
        ( SELECT LGORT
        FROM ZPCEMM045
        WHERE WERKS EQ ZCM04TAB-WERKS
        AND ZGROUP EQ ZPCEMM045-ZGROUP ).

        SELECT SUM( MENGE )
        INTO L_TOTALRETURN
        FROM AUFM
        WHERE AUFNR EQ ZCM03-AUFNR
        AND SHKZG EQ 'S'  "return qty
        AND MATNR EQ ZCM04TAB-MATNR
        AND WERKS EQ ZCM04TAB-WERKS
        AND LGORT IN
        ( SELECT LGORT
        FROM ZPCEMM045
        WHERE WERKS EQ ZCM04TAB-WERKS
        AND ZGROUP EQ ZPCEMM045-ZGROUP ).

        L_ENMNG1 = L_TOTALISSUE - L_TOTALRETURN.


        IF SY-SUBRC <> 0.
          MESSAGE E398(00) WITH ' Return Sloc ' ZCM04TAB-LGORT
          ' is error '.
        ELSE.
          IF ZCM04TAB-ERFMG > L_ENMNG1.
*kelly modi by 2010/2/3
            L_MESSAGE2 = 'return qty :'.
            L_MESSAGE3 = 'Item :'.
            CONCATENATE L_MESSAGE3 ZCM04TAB-DOCITEM  ZCM04TAB-MATNR
            L_MESSAGE2 INTO  L_MESSAGE1 SEPARATED BY SPACE.
            MESSAGE E000 WITH    L_MESSAGE1 ZCM04TAB-ERFMG
              ' > gi qty '  L_ENMNG1.


*            message e398(00) with    zcm04tab-docitem
*            'return qty ' zcm04tab-erfmg  ' > gi qty ' l_enmng1.

*end kelly 2010/2/3
          ENDIF.
        ENDIF.

        CLEAR ZPCEMM045.
      ENDIF.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14397246/viewspace-666158/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14397246/viewspace-666158/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值