CE PLUS - Nota 002498

Módulo: DRAWBACK

Funcionalidade: Composição

Data/Hora da Publicação: 23/11/2006 00:00:00

Data/Hora Última Alteração: 17/02/2011 14:34:38

Descrição da Nota: AJUSTADA COMPOSIÇÃO PARA TRATAR AJUSTE REALIZADOS NOS INSUMOS ALTERNATIV

Sintoma

Foram realizado ajustes no parametro de insumo alternativo, o que torna necessario o ajuste da

composição para realizar o tratamento correto deste parametro.

 

 

Solução

Foram realizado ajustes no parametro de insumo alternativo, o que torna necessario o ajuste da

composição para realizar o tratamento correto deste parametro.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

TRATAMENTO DE DATAS E EXCLUSÃO DOS TRATAMENTOS DE INSUMOS_ALTERNATIVOS

COMPOSIÇÃO ISENÇÃO(EXPORTAÇÃO, TRADING COMPANY, COMERCIAL EXPORTADORA)

AJUSTES REFERENTES A RASTREIO DE LOTE EFETUADO NOS PROGRAMAS DE DRAWBACK

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 02498 Data: 23/11/2006 Hora: 10:20:13

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 02498

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00025

Agrupamento              : 00140

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

01691  - 00001 - 6.0    - 00024  - AJUSTES REFERENTES A RASTREIO DE LOTE EFETUADO NOS PROGRAMAS DE D

02190  - 00002 - 6.0    - 00025  - TRATAMENTO DE DATAS E EXCLUSÃO DOS TRATAMENTOS DE INSUMOS_ALTERNA

02251  - 00003 - 6.0    - 00025  - COMPOSIÇÃO ISENÇÃO(EXPORTAÇÃO, TRADING COMPANY, COMERCIAL EXPORTA

----------------------------------------------------------------------------------------------------

AJUSTADA COMPOSIÇÃO PARA TRATAR AJUSTE REALIZADOS NOS INSUMOS ALTERNATIV

----------------------------------------------------------------------------------------------------

Palavras Chave:

INSUMO - ALTERNATIVO - COMPOSIÇÃO - ISENÇÃO

/PWS/SAPMZYCI064

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/MZYCI064F03

REPS /PWS/MZYCI064O01

REPS /PWS/MZYCI064TOP2

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI064F03

 

...

          ENDLOOP.

        ENDLOOP.

      ENDIF.

    ELSE.

      SELECT a~nrseqre a~nrre a~dtincl a~agrupado a~codenq1

* >> Início da exclusão: FORM SELECIONAR_EXPORTACOES3

             b~matnr b~vbeln_va b~vbeln_vf b~posnr b~vbeln_vl b~posnl

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONAR_EXPORTACOES3

             b~matnr b~vbeln_va c~vbeln_vf c~posnr b~vbeln_vl b~posnl

* << Fim da inclusão

             b~gewei b~ntgew b~brgew b~waers

             b~vfob  b~vlagente  b~netpr b~seqagrupado b~codnrseq

             d~nrseqexp c~werks c~steuc c~vkorg_auft c~vtweg_auft

             INTO TABLE itab_re_final

             FROM ( /pws/zycet116 AS a INNER JOIN /pws/zycet118 AS b

...

 

...

      ENDLOOP.

      CALL SCREEN 0600 STARTING  AT 5 5.

    ENDIF.

    PERFORM equip_exp.

    PERFORM comerc_exp.

* >> Início da inclusão: FORM SELECIONAR_EXPORTACOES3

    LOOP AT itab_det_exp_final WHERE j_1bnbm EQ space.

      SELECT SINGLE a~steuc INTO itab_det_exp_final-j_1bnbm

             FROM ( marc AS a INNER JOIN t001w AS b ON

                    a~werks EQ b~werks )

             WHERE a~matnr EQ itab_det_exp_final-matnr

               AND a~steuc NE space

               AND b~land1 EQ t001-land1.

      MODIFY itab_det_exp_final TRANSPORTING j_1bnbm

                                WHERE matnr EQ itab_det_exp_final-matnr.

    ENDLOOP.

* << Fim da inclusão

    PERFORM carrega_resumo_exportacao3.

  ENDIF.

  IF itab_det_exp_final[] IS INITIAL.

    MESSAGE s015 WITH text-267 text-268.

  ENDIF.

...

 

...

    IF wa_cols3-screen-group1 NE 'NEX'.

      wa_cols3-screen-input = v_status3.

      MODIFY tc_det_imp3-cols FROM wa_cols3.

    ENDIF.

    IF /pws/zycit321-it_ge NE 'X'.

* >> Início da exclusão: FORM CHECK_FIELDS_SCREEN_0308

      IF wa_cols3-screen-group4 NE 'GR'.

* << Fim da exclusão

* >> Início da inclusão: FORM CHECK_FIELDS_SCREEN_0308

      IF wa_cols3-screen-group4 EQ 'GR'.

* << Fim da inclusão

        wa_cols3-invisible = '1'.

        MODIFY tc_det_imp3-cols FROM wa_cols3.

      ENDIF.

    ENDIF.

  ENDLOOP.

...

 

...

FORM carrega_resumo_importacao3.

  DATA: v_moeda TYPE c.

  DATA: BEGIN OF itab_det_imp_aux OCCURS 0.

  DATA: nrdi    TYPE /pws/zycit085-nrseqdi,

        codcomp TYPE /pws/zycit245-codcomp,

* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3

        ebeln   TYPE /pws/zycit003-ebeln,

        ebelp   TYPE /pws/zycit003-ebelp,

        lote    TYPE /pws/zycit260-Lote,

* << Fim da inclusão

        grupo   TYPE /pws/zycit433-grupo.

  DATA: END OF itab_det_imp_aux.

  CLEAR itab_res_imp. REFRESH itab_res_imp.

  CLEAR itab_det_imp_aux. REFRESH itab_det_imp_aux.

  REFRESH itab_det_imp.

  itab_det_imp[] = itab_det_imp_final[].

  LOOP AT itab_det_imp_final.

    CLEAR itab_res_imp.

    IF /pws/zycit321-it_ge NE 'X'.

* >> Início da exclusão: FORM CARREGA_RESUMO_IMPORTACAO3

      READ TABLE itab_det_imp_aux WITH KEY

                                   nrdi = itab_det_imp_final-nrdi

                                   codcomp = itab_det_imp_final-codcomp.

* << Fim da exclusão

      CLEAR: v_moeda.

      LOOP AT itab_det_imp WHERE codcomp EQ itab_det_imp_final-codcomp

                             AND waers   NE itab_det_imp_final-waers.

        v_moeda = 'X'.

        EXIT.

      ENDLOOP.

* >> Início da exclusão: FORM CARREGA_RESUMO_IMPORTACAO3

    ELSE.

* << Fim da exclusão

      READ TABLE itab_det_imp_aux WITH KEY

                                  nrdi  = itab_det_imp_final-nrdi

* >> Início da exclusão: FORM CARREGA_RESUMO_IMPORTACAO3

                                  grupo = itab_det_imp_final-grupo.

* << Fim da exclusão

* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3

                                   ebeln = itab_det_imp_final-ebeln

                                   ebelp = itab_det_imp_final-ebelp

                                   lote  = itab_det_imp_final-lote

                                   codcomp = itab_det_imp_final-codcomp.

    ELSE.

* << Fim da inclusão

      CLEAR: v_moeda.

      LOOP AT itab_det_imp WHERE grupo EQ itab_det_imp_final-grupo

                             AND waers NE  itab_det_imp_final-waers.

        v_moeda = 'X'.

        EXIT.

      ENDLOOP.

* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3

      READ TABLE itab_det_imp_aux WITH KEY

                                  nrdi  = itab_det_imp_final-nrdi

                                  ebeln = itab_det_imp_final-ebeln

                                  ebelp = itab_det_imp_final-ebelp

                                  lote  = itab_det_imp_final-lote

                                  grupo = itab_det_imp_final-grupo.

* << Fim da inclusão

    ENDIF.

    IF sy-subrc NE 0.

      MOVE: itab_det_imp_final-qtd_di   TO itab_res_imp-qtd_di,

            itab_det_imp_final-codcomp  TO itab_det_imp_aux-codcomp.

* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3

      itab_det_imp_aux-ebeln = itab_det_imp_final-ebeln.

      itab_det_imp_aux-ebelp = itab_det_imp_final-ebelp.

      itab_det_imp_aux-lote  = itab_det_imp_final-lote.

* << Fim da inclusão

      IF /pws/zycit321-it_ge EQ 'X'.

        CLEAR itab_det_imp_aux-codcomp.

        itab_det_imp_aux-grupo = itab_det_imp_final-grupo.

      ENDIF.

      itab_det_imp_aux-nrdi = itab_det_imp_final-nrdi.

...

 

...

FORM seleciona_di3_l.

  IF itab_di_final[] IS INITIAL.

    EXIT.

  ENDIF.

  DATA: v_found(1) TYPE c,

* >> Início da exclusão: FORM SELECIONA_DI3_L

        v_vlreali LIKE /pws/zycit100-vlfob,

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONA_DI3_L

        v_vlreali LIKE /pws/zycit003-qtd_iten,

        v_qtde    LIKE /pws/zycit003-qtd_iten,

* << Fim da inclusão

        v_fator_conv LIKE /pws/zycit100-vlfob.

  DATA: BEGIN OF itab_insumo_di OCCURS 0.

  DATA: matnr LIKE  mara-matnr.

  DATA: END OF itab_insumo_di.

  DATA: itab_zycit003_t2 TYPE /pws/zycit003 OCCURS 0 WITH HEADER LINE,

...

 

...

  DELETE itab_di_final WHERE ebeln EQ space.

  IF itab_di_final[] IS INITIAL.

    EXIT.

  ENDIF.

  SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

* >> Início da inclusão: FORM SELECIONA_DI3_L

      FOR ALL ENTRIES IN itab_di_final

      WHERE ebeln EQ itab_di_final-ebeln

        AND ebelp EQ itab_di_final-ebelp.

  SELECT * FROM /pws/zycit223 INTO TABLE itab_zycit223

* << Fim da inclusão

      FOR ALL ENTRIES IN itab_di_final

      WHERE ebeln EQ itab_di_final-ebeln

        AND ebelp EQ itab_di_final-ebelp.

* >> Início da inclusão: FORM SELECIONA_DI3_L

  SELECT * FROM /pws/zycit260 INTO TABLE itab_zycit260

        FOR ALL ENTRIES IN itab_di_final

          WHERE nrseqemb  = itab_di_final-nrseqemb

            AND ebeln     = itab_di_final-ebeln

            AND ebelp     = itab_di_final-ebelp

            AND lote      = itab_di_final-lote.

* << Fim da inclusão

  IF NOT itab_zycit003[] IS INITIAL.

    itab_zycit003_t2[] = itab_zycit003[].

    DELETE itab_zycit003_t2 WHERE nrseqd EQ space.

    SORT itab_zycit003_t2 BY nrseqd.

    DELETE ADJACENT DUPLICATES FROM itab_zycit003_t2 COMPARING nrseqd.

...

 

...

          CONTINUE.

        ENDIF.

      ELSE.

        CONTINUE.

      ENDIF.

* >> Início da inclusão: FORM SELECIONA_DI3_L

      IF /pws/zycit321-lote EQ '1'.

        READ TABLE itab_zycit223 WITH KEY nrseq = itab_zycit100-nrseq

                                          ebeln = itab_zycit100-ebeln

                                          ebelp = itab_zycit100-ebelp

                                          lote  = itab_di_final-lote.

      ELSE.

        READ TABLE itab_zycit223 WITH KEY nrseq = itab_zycit100-nrseq

                                          ebeln = itab_zycit100-ebeln

                                          ebelp = itab_zycit100-ebelp

                                      lote_forn = itab_di_final-lote.

      ENDIF.

      v_qtde = itab_zycit003-qtd_iten.

      itab_zycit003-qtd_iten = itab_zycit223-qtde.

* << Fim da inclusão

      v_vlreali = itab_zycit003-qtd_iten.

      READ TABLE itab_mess_un WITH KEY meins =

                                         itab_zycit003-meins

                                matnr = itab_zycit003-matnr.

      IF sy-subrc EQ 0.

...

 

...

                              CHANGING itab_di_final-vlfrete.

      PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                         'USD'

                                         itab_zycit085-dttax

                                CHANGING itab_di_final-vlseg.

* >> Início da inclusão: FORM SELECIONA_DI3_L

      PERFORM converte_um_base USING itab_zycit003-matnr

                            CHANGING itab_zycit003-meins

                                     itab_di_final-qtd_di.

      itab_di_final-vlfrete =

      ( itab_di_final-vlfrete * ( itab_zycit223-qtde / v_qtde  ) )

                            / itab_zycit003-qtd_iten.

* << Fim da inclusão

* >> Início da exclusão: FORM SELECIONA_DI3_L

      itab_di_final-vlfrete = itab_di_final-vlfrete /

                              itab_zycit003-qtd_iten.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONA_DI3_L

      itab_di_final-vlseg   =

      ( itab_di_final-vlseg * ( itab_zycit223-qtde / v_qtde  ) )

                            / itab_zycit003-qtd_iten.

* << Fim da inclusão

* >> Início da exclusão: FORM SELECIONA_DI3_L

      itab_di_final-vlseg   = itab_di_final-vlseg /

                              itab_zycit003-qtd_iten.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONA_DI3_L

      CLEAR itab_di_final_aux.

      READ TABLE itab_di_final_aux WITH KEY

                  nrdi     = itab_zycit085-nrseqdi

                  nrseqemb = itab_zycit100-nrseq

                  ebeln    = itab_di_final-ebeln

                  ebelp    = itab_di_final-ebelp

                  lote     = itab_di_final-lote.

      IF sy-subrc NE 0.

        LOOP AT itab_zycit260

                      WHERE nrseqemb  = itab_di_final-nrseqemb

                        AND ebeln     = itab_di_final-ebeln

                        AND ebelp     = itab_di_final-ebelp

                        AND lote      = itab_di_final-lote.

          itab_di_final-sdo_qtd =

                  itab_di_final-sdo_qtd - itab_zycit260-qtd_vinc.

        ENDLOOP.

        itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -

                                itab_di_final-qtd_vinc.

      ELSE.

        itab_di_final-sdo_qtd = itab_di_final_aux-sdo_qtd -

                                itab_di_final-qtd_vinc.

      ENDIF.

* << Fim da inclusão

      CHECK itab_di_final-valor_u > 0.

      itab_di_final-i_vlcif_me = itab_di_final-valor_u.

      itab_di_final-i_vlcif_mi =

             itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.

      IF itab_di_final-sdo_qtd <= 0.

...

 

...

          EXIT.

        ENDIF.

      ENDLOOP.

      MODIFY itab_di_final.

      IF NOT wa_itab_di_final IS INITIAL.

* >> Início da exclusão: FORM SELECIONA_DI3_L

        LOOP AT itab_di_final.

          IF

         ( itab_di_final-nrseqre  NE itab_det_exp-nrseqre      OR

           itab_di_final-vbeln_va NE itab_det_exp-vbeln_va     OR

           itab_di_final-vbeln_vf NE itab_det_exp-vbeln_vf     OR

           itab_di_final-posnr    NE itab_det_exp-posnr        OR

           itab_di_final-nrseq    NE itab_det_exp-nrseq        OR

           itab_di_final-codmat   NE itab_det_exp-codmat )    AND

         ( itab_di_final-codcomp  EQ

                                 itab_comp_vinc_final-codcomp AND

          itab_di_final-nrdi     EQ wa_itab_di_final-nrdi     AND

          itab_di_final-ebeln    EQ wa_itab_di_final-ebeln    AND

          itab_di_final-ebelp    EQ wa_itab_di_final-ebelp    AND

          itab_di_final-nrseqemb EQ wa_itab_di_final-nrseqemb ).

            itab_di_final-sdo_qtd  =

                itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONA_DI3_L

        LOOP AT itab_di_final WHERE

                 ( nrseqre  NE itab_det_exp-nrseqre      OR

                   vbeln_va NE itab_det_exp-vbeln_va     OR

                   vbeln_vf NE itab_det_exp-vbeln_vf     OR

                   posnr    NE itab_det_exp-posnr        OR

                   nrseq    NE itab_det_exp-nrseq        OR

                   codmat   NE itab_det_exp-codmat )    AND

                   codcomp  EQ itab_comp_vinc_final-codcomp AND

                   nrdi     EQ wa_itab_di_final-nrdi     AND

                   ebeln    EQ wa_itab_di_final-ebeln    AND

                   ebelp    EQ wa_itab_di_final-ebelp    AND

                   lote     EQ wa_itab_di_final-lote     AND

                   nrseqemb EQ wa_itab_di_final-nrseqemb AND

                   nrseqemb NE space.

          itab_di_final-sdo_qtd  = wa_itab_di_final-sdo_qtd .

* << Fim da inclusão

            MODIFY itab_di_final.

* >> Início da exclusão: FORM SELECIONA_DI3_L

          ENDIF.

* << Fim da exclusão

        ENDLOOP.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI064O01

 

...

ENDMODULE.

MODULE preenche_estrutura_0228 OUTPUT.

  /pws/zycie371 = itab_zycit371_aux.

ENDMODULE.

MODULE sumariza_di3 OUTPUT.

* >> Início da exclusão: MODULE SUMARIZA_DI3

  DATA: itab_det_imp_temp LIKE itab_det_imp OCCURS 0 WITH HEADER LINE.

* << Fim da exclusão

* >> Início da inclusão: MODULE SUMARIZA_DI3

  DATA: itab_det_imp_temp  LIKE itab_det_imp OCCURS 0 WITH HEADER LINE,

        itab_det_imp_temp2 LIKE itab_det_imp OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

  DATA: qtd_di LIKE /pws/zycie260-qtd_di.

* >> Início da exclusão: MODULE SUMARIZA_DI3

  CLEAR itab_det_imp_temp.

  REFRESH itab_det_imp_temp.

* << Fim da exclusão

* >> Início da inclusão: MODULE SUMARIZA_DI3

  CLEAR: itab_det_imp_temp, itab_det_imp_temp2.

  REFRESH: itab_det_imp_temp, itab_det_imp_temp2.

* << Fim da inclusão

  LOOP AT itab_det_imp.

    CLEAR itab_det_imp_temp .

    READ TABLE itab_det_imp_temp WITH KEY ebeln = itab_det_imp-ebeln

                                          ebelp = itab_det_imp-ebelp

                                          nrdi  = itab_det_imp-nrdi .

    IF sy-subrc NE 0 .

      itab_det_imp_temp = itab_det_imp.

      APPEND itab_det_imp_temp.

      CONTINUE.

* >> Início da inclusão: MODULE SUMARIZA_DI3

    ELSEIF itab_det_imp-lote NE itab_det_imp_temp-lote.

      READ TABLE itab_det_imp_temp2 WITH KEY ebeln = itab_det_imp-ebeln

                                             ebelp = itab_det_imp-ebelp

                                             lote  = itab_det_imp-lote

                                             nrdi  = itab_det_imp-nrdi .

      IF sy-subrc NE 0.

        itab_det_imp_temp2 = itab_det_imp.

        APPEND itab_det_imp_temp2.

        itab_det_imp_temp-sdo_qtd = itab_det_imp_temp-sdo_qtd +

                                   itab_det_imp-sdo_qtd.

        itab_det_imp_temp-qtd_ncm = itab_det_imp_temp-qtd_ncm +

                                   itab_det_imp-qtd_ncm.

        itab_det_imp_temp-qtd_di = itab_det_imp_temp-qtd_di +

                                   itab_det_imp-qtd_di.

      ENDIF.

* << Fim da inclusão

    ENDIF.

    itab_det_imp_temp-brgew = itab_det_imp_temp-brgew +

                              itab_det_imp-brgew.

    itab_det_imp_temp-ntgew = itab_det_imp_temp-ntgew +

                              itab_det_imp-ntgew.

...

 

...

                              itab_det_imp-vlpis.

    itab_det_imp_temp-i_vlicms = itab_det_imp_temp-i_vlicms +

                              itab_det_imp-i_vlicms.

    MODIFY itab_det_imp_temp TRANSPORTING brgew ntgew  qtd_vinc vlfob_t

                                  vlfrete_t vlfob i_vlii i_vlipi vlafrmm

* >> Início da exclusão: MODULE SUMARIZA_DI3

                                  vlpis vlcofins i_vlicms

* << Fim da exclusão

* >> Início da inclusão: MODULE SUMARIZA_DI3

                  vlpis vlcofins i_vlicms qtd_di qtd_ncm sdo_qtd

* << Fim da inclusão

                             WHERE ebeln = itab_det_imp-ebeln

                               AND ebelp = itab_det_imp-ebelp

                               AND nrdi  = itab_det_imp-nrdi .

  ENDLOOP.

  REFRESH itab_det_imp.

* >> Início da inclusão: MODULE SUMARIZA_DI3

  SORT itab_det_imp_temp BY nrdi ebeln ebelp.

* << Fim da inclusão

  itab_det_imp[] = itab_det_imp_temp[].

ENDMODULE.

MODULE trata_tl0315 OUTPUT.

  /pws/zycie434 = itab_zycit434.

  mark = itab_zycit434-mark.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI064TOP2

 

...

        INCLUDE STRUCTURE /pws/zycit435.

DATA: END OF itab_zycit435.

DATA: BEGIN OF itab_vbap OCCURS 0.

        INCLUDE STRUCTURE vbap.

DATA: END OF itab_vbap.

* >> Início da inclusão:

DATA: BEGIN OF itab_zycit223 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit223     .

DATA: END OF itab_zycit223           .

* << Fim da inclusão

DATA : BEGIN OF itab_lista OCCURS 0  .

DATA : matexp    LIKE   mara-matnr  ,

       matimp    LIKE   mara-matnr  ,

       usagem    LIKE   /pws/zycit245-qtd_iten  .

DATA : END OF itab_lista      .

...