ZCMM01-16

*Candy 20090922 for check need input password?

  CLEAR L_PLANT.
  SELECT SINGLE * FROM ZCM04
    WHERE DOCNUMBER = ZCM03-DOCNUMBER
      AND DOCYEAR = ZCM03-DOCYEAR.
  IF SY-SUBRC = 0.
    SELECT SINGLE * FROM ZMM048
      WHERE WERKS = ZCM04-WERKS
        AND BJECT = 'PASSWORD'
        AND VALUE = 'ACTIVE'.

    IF  SY-SUBRC = 0.
      F_PWD ='Y'.
    ELSE.
      F_PWD ='N'.
    ENDIF.
  ENDIF.
ENDMODULE.                 " get_document_data  INPUT

*&--------------------------------------------
*&      Form  get_order_components
*&----------------------------------------------------
MODULE CHECK_SLOC INPUT.
*DATA:L_CNT TYPE I.
*DATA:L_PLANT LIKE ZCM04-WERKS.
  CLEAR L_PLANT.
  SELECT SINGLE PWERK INTO L_PLANT
  FROM AFPO WHERE AUFNR = ZCM03-AUFNR.

  SELECT COUNT(*) INTO L_CNT
  FROM T001L WHERE WERKS = L_PLANT
  AND LGORT = T001L-LGORT.
  IF L_CNT = 0.
    MESSAGE S000 WITH 'Storage location' T001L-LGORT
    ' IS NOT EXIST.'.
  ENDIF.
ENDMODULE.

*---------------------------------------------------
*       FORM. EXPLORE_BOM
*
*---------------------------------------------------
*       ........
*
*--------------------------------------------------
FORM. EXPLORE_BOM.
  DATA:L_MATNR LIKE AFPO-MATNR.
  DATA:L_PLANT LIKE AFPO-PWERK.
  DATA:OUTPUT_BOM LIKE ZBOM_EXPL OCCURS 0 WITH HEADER LINE.
  DATA:L_ENMNG LIKE ZCM03-ENMNG.
  DATA:L_LGORT LIKE ZCM03-LGORT.
  DATA:L_CHARG LIKE ZCM04-CHARG.
  DATA:L_RSNUM LIKE RESB-RSNUM.
  DATA:L_MEINS LIKE MARA-MEINS.  "Storage unit
  DATA:L_BOM_MEINS LIKE MARA-MEINS."bom unit
  DATA:L_CHANGELV LIKE STPO-MENGE. "zhuan huan bi li
  DATA:L_BOMDATE LIKE STPO-DATUV.
  DATA:L_MPQ LIKE MARC-BSTRF.
  DATA:L_QPA LIKE RESB-ESMNG.
  DATA:L_MPQCNT TYPE I.
  L_ENMNG = ZCM03-ENMNG.
  L_BOMDATE = STPO-DATUV.
  ZCM03-LGORT = T001L-LGORT.
  L_LGORT = ZCM03-LGORT.
  CLEAR L_RSNUM.
  SELECT SINGLE RSNUM INTO (L_RSNUM) FROM AFKO WHERE
  AUFNR = ZCM03-AUFNR.
  CLEAR L_MATNR.
  CLEAR L_PLANT.
  SELECT MATNR WERKS INTO (L_MATNR,L_PLANT) FROM
  RESB WHERE RSNUM = L_RSNUM.
    CALL FUNCTION 'ZRFC_PP_PCE_0009'
    EXPORTING
    L_MATNR           = L_MATNR
    L_WERKS           = L_PLANT
    L_STLAN           = '1'
    L_DATUV           = L_BOMDATE
    L_DATUB           = L_BOMDATE
    L_MEHRS           = '1'
    L_FRONT_END       = ' '
*    L_WO              = ' '
    TABLES
    T_ZBOM_EXPL       = OUTPUT_BOM
    .
*  CLEAR L_MATNR.
*  CLEAR L_PLANT.
  ENDSELECT.
* CLEAR OUTPUT_BOM.
*   CALL FUNCTION 'ZRFC_PP_PCE_0005'
*   EXPORTING
*    L_MATNR           = IMAST-MATNR
*    L_WERKS           = IMAST-WERKS
*    L_STLAN           = '1'
*    L_DATUV           = SY-DATUM
*    L_DATUB           = SY-DATUM
*    L_MEHRS           = '1'
*    L_FRONT_END       = ' '
*   TABLES
*    T_ZBOM_EXPL       = OUTPUT_BOM
*     .
  REFRESH ZCM04TAB. CLEAR ZCM04TAB.
  LASTDOCITEM = 0.
  DATA:L_SOBSL LIKE MARC-SOBSL.

  LOOP AT OUTPUT_BOM.
    CLEAR L_SOBSL.
    CLEAR L_CHARG.
    SELECT SINGLE SOBSL INTO L_SOBSL FROM MARC WHERE
    MATNR = OUTPUT_BOM-IDNRK AND WERKS = L_PLANT.
    IF L_SOBSL = '50'.
      CONTINUE.
    ENDIF.
    ADD 1 TO LASTDOCITEM.
    ZCM04TAB-DOCITEM = LASTDOCITEM.
    ZCM04TAB-MATNR = OUTPUT_BOM-IDNRK.
    ZCM04TAB-WERKS = L_PLANT.

    ZCM04TAB-LGORT = L_LGORT.

    CALL FUNCTION 'ZRFC_PP_PCE_0010'
         EXPORTING
              C_MATNR = OUTPUT_BOM-IDNRK
              C_WERKS = L_PLANT
              C_LGORT = L_LGORT
         IMPORTING
              C_CHARG = L_CHARG.

    ZCM04TAB-CHARG = L_CHARG.
    CLEAR L_MEINS.
    CLEAR L_BOM_MEINS.
    SELECT SINGLE MEINS INTO L_MEINS FROM MARA
    WHERE MATNR = OUTPUT_BOM-IDNRK.
    L_BOM_MEINS = OUTPUT_BOM-MEINS.
    L_CHANGELV = 1.
    IF L_MEINS <> L_BOM_MEINS.
      IF L_MEINS = 'G' AND L_BOM_MEINS = 'KG'.
        L_CHANGELV = 1000.
      ELSE.
        IF L_MEINS = 'KG' AND L_BOM_MEINS = 'G'.
          L_CHANGELV = 1 / 1000.
        ELSE.
          MESSAGE S000 WITH 'change rate have not exists'.
        ENDIF.
      ENDIF.
    ENDIF.
    ZCM04TAB-ERFME = L_MEINS.
    ZCM04TAB-PLFMG = OUTPUT_BOM-U_MENGE * L_ENMNG * L_CHANGELV.
    ZCM04TAB-ERFMG = OUTPUT_BOM-U_MENGE * L_ENMNG * L_CHANGELV.

*      ZCM04TAB-RSNUM = RESBTAB-RSNUM.
*      ZCM04TAB-RSPOS = RESBTAB-RSPOS.
    APPEND ZCM04TAB. CLEAR ZCM04TAB.

  ENDLOOP.
  DESCRIBE TABLE ZCM04TAB LINES ITEMCTRL-LINES.

ENDFORM.

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值