ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ZCMM01-20

ZCMM01-20

原创 Linux操作系统 作者:fivezhuo 时间:2010-06-24 19:27:32 0 删除 编辑

*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博客 ” ,链接:https://blog.itpub.net/14397246/viewspace-666172/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: ZCMM01-19
下一篇: ZCMM01-21
请登录后发表评论 登录
全部评论

注册时间:2009-08-01

  • 博文量
    110
  • 访问量
    65200