ZCMM01-20

*Echo 20090806 add check valuation type.bn
        CASE ZCM03-DOCTYPE.
          WHEN '1' OR '2' OR 'A' OR 'H'.
            IF ZCM03-ENMNG IS INITIAL.
              RESBTAB-ERFMG = 0.
            ELSE.
              RESBTAB-ERFMG = CEIL( RESB-BDMNG / PLAF-GSMNG
                 * ZCM03-ENMNG ).
            ENDIF.
        ENDCASE.
        COLLECT RESBTAB.
      ENDSELECT.
    ELSE.

      SELECT MATNR WERKS LGORT BDMNG ENMNG MEINS CHARG
      RSNUM RSPOS ALPOS SHKZG
      INTO CORRESPONDING FIELDS OF RESB
      FROM RESB WHERE RSNUM EQ AFKO-RSNUM
      AND XLOEK NE 'X' AND RGEKZ NE 'X'
      AND SCHGT NE 'X' AND DUMPS NE 'X'
      AND XWAOK EQ 'X'.
        IF RESB-WERKS CS 'PD' AND RESB-BDMNG = 0.
          CONTINUE.
        ENDIF.
        IF ZCM03-DOCTYPE <> 'H'.
*kelly 20100420 modify .sn
          IF  ( RESB-WERKS = 'PSK1' OR  RESB-WERKS = 'PSC2' ).
            IF ZCM03-DOCTYPE <> '2'.
              IF RESB-BDMNG = 0 AND RESB-ALPOS <> 'X'.
                CONTINUE.
              ENDIF.
            ELSE.
              IF RESB-ENMNG = 0.
                CONTINUE.
              ENDIF.
            ENDIF.
          ELSE. "non npd plant
            IF RESB-BDMNG = 0 AND RESB-ALPOS <> 'X'.
              CONTINUE.
            ENDIF.
          ENDIF.
*kelly 20100420 modify .en
        ENDIF.

        SELECT MARC~SOBSL ZPCEMM002~GROUPCODE
        INTO (L_SOBSL,L_MRPGRP)
        FROM MARC
        INNER JOIN ZPCEMM002 ON ZPCEMM002~GROUPVALUE =
        MARC~DISPO
        AND ZPCEMM002~WERKS =
        MARC~WERKS

                                                            "JL080221.
        WHERE MARC~MATNR EQ RESB-MATNR
        AND MARC~WERKS EQ RESB-WERKS.
          EXIT.
        ENDSELECT.


*        CHECK SY-SUBRC EQ 0 AND L_SOBSL NE '50'
*          AND RESB-BDMNG > 0 AND  L_MRPGRP EQ  G_MRPGRP  .

        CHECK SY-SUBRC EQ 0 AND L_MRPGRP EQ G_MRPGRP.
        "changed by liuchun

        RESBTAB-MATNR = RESB-MATNR.
        RESBTAB-WERKS = RESB-WERKS.
        RESBTAB-LGORT = RESB-LGORT.
        RESBTAB-CHARG = RESB-CHARG.
        RESBTAB-MEINS = RESB-MEINS.
        RESBTAB-RSNUM = RESB-RSNUM.
        RESBTAB-RSPOS = RESB-RSPOS.
        RESBTAB-SHKZG = RESB-SHKZG.
        RESBTAB-ZALPGR = RESB-ALPGR. "Ariel add 100416
        RESBTAB-ENMNG = RESB-ENMNG."Add for H 100424
*Echo 20090806 add check valuation type.bn
*Ariel add batch is blank not get val_type
        IF RESBTAB-CHARG EQ SPACE.
          CALL FUNCTION 'ZRFC_MM_PCE_0054'
               EXPORTING
                    PLANT          = RESBTAB-WERKS
                    PARTNO         = RESBTAB-MATNR
                    SLOC           = RESBTAB-LGORT
               IMPORTING
                    ECODE          = L_ECODE
                    VALUATION_TYPE = L_CHARG.

          IF L_ECODE = 0.
            RESBTAB-CHARG = L_CHARG.
          ENDIF.
          CLEAR L_CHARG.
        ENDIF.
*Echo 20090806 add check valuation type.en
        CASE ZCM03-DOCTYPE.
          WHEN '1' OR 'A'.
            IF ZCM03-ENMNG IS INITIAL.
              RESBTAB-ERFMG = 0.
            ELSE.
              RESBTAB-ERFMG = CEIL( RESB-BDMNG / AFKO-GAMNG
                 * ZCM03-ENMNG ).
            ENDIF.
        ENDCASE.
        COLLECT RESBTAB.
      ENDSELECT.
    ENDIF.


  ELSEIF G_SLOC = 'C' .   " By MRP controller

    G_MRPCTRL = ZPCEMM002-GROUPVALUE.

    IF AFKO-GAMNG IS  INITIAL .
      SELECT MATNR WERKS LGORT BDMNG ENMNG MEINS CHARG REVLV
      RSNUM RSPOS ALPOS SHKZG
      INTO CORRESPONDING FIELDS OF RESB
      FROM RESB
      WHERE RSNUM EQ PLAF-RSNUM
      AND PLNUM EQ PLAF-PLNUM
      AND DUMPS NE 'X' AND XLOEK NE 'X'
      AND SCHGT NE 'X' AND XWAOK EQ 'X'
      AND RGEKZ NE 'X'.
        IF RESB-WERKS CS 'PD' AND RESB-BDMNG = 0.
          CONTINUE.
        ENDIF.
        IF ZCM03-DOCTYPE <> 'H'.
*kelly 20100420 modify .sn
          IF  ( RESB-WERKS = 'PSK1' OR  RESB-WERKS = 'PSC2' ).
            IF ZCM03-DOCTYPE <> '2'.
              IF RESB-BDMNG = 0 AND RESB-ALPOS <> 'X'.
                CONTINUE.
              ENDIF.
            ELSE.
              IF RESB-ENMNG = 0.
                CONTINUE.
              ENDIF.
            ENDIF.
          ELSE. "non npd plant
            IF RESB-BDMNG = 0 AND RESB-ALPOS <> 'X'.
              CONTINUE.
            ENDIF.
          ENDIF.
*kelly 20100420 modify .en
        ENDIF.

        SELECT SOBSL  DISPO
        INTO (L_SOBSL,  L_DISPO)
        FROM  MARC
        WHERE MATNR EQ RESB-MATNR
        AND WERKS EQ RESB-WERKS.

          EXIT.
        ENDSELECT.

*        CHECK SY-SUBRC EQ 0 AND L_SOBSL NE '50'
*          AND RESB-BDMNG > 0 AND  L_DISPO EQ G_MRPCTRL.

        CHECK SY-SUBRC EQ 0 AND  L_DISPO EQ G_MRPCTRL.
        "changed by liuchun

        RESBTAB-MATNR = RESB-MATNR.
        RESBTAB-WERKS = RESB-WERKS.
        RESBTAB-LGORT = RESB-LGORT.
        RESBTAB-CHARG = RESB-REVLV.
        RESBTAB-MEINS = RESB-MEINS.
        RESBTAB-RSNUM = RESB-RSNUM.
        RESBTAB-RSPOS = RESB-RSPOS.
        RESBTAB-SHKZG = RESB-SHKZG.
        RESBTAB-ZALPGR = RESB-ALPGR. "Ariel add 100416
        RESBTAB-ENMNG = RESB-ENMNG."Add for H 100424
*Echo 20090806 add check valuation type.bn
*Ariel add batch is blank not get val_type
        IF RESBTAB-CHARG EQ SPACE.

          CALL FUNCTION 'ZRFC_MM_PCE_0054'
               EXPORTING
                    PLANT          = RESBTAB-WERKS
                    PARTNO         = RESBTAB-MATNR
                    SLOC           = RESBTAB-LGORT
               IMPORTING
                    ECODE          = L_ECODE
                    VALUATION_TYPE = L_CHARG.

          IF L_ECODE = 0.
            RESBTAB-CHARG = L_CHARG.
          ENDIF.
          CLEAR L_CHARG.
        ENDIF.
*Echo 20090806 add check valuation type.en

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值