CE PLUS - Nota 009074

Módulo: DRAWBACK

Funcionalidade: Ato Concessório

Data/Hora da Publicação: 23/09/2009 00:00:00

Data/Hora Última Alteração: 17/02/2011 15:38:46

Descrição da Nota: AJUSTES PARA TRATAMENTO DE LOTE.

Sintoma

Ajustes para tratamento de lote.

 

 

Solução

Ajustes para tratamento de lote.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTES ATO CONCESSÓRIO SUSP. PARA RECEBER COMPRAS NO MERCADO INTERNO

PREENCHIMENTO DO LOTE NA TABELA /PWS/ZYCIT279

Informações Complementares

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

Nota Número 09074 Data: 23/09/2009 Hora: 11:11:00

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

 

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

Nota Número              : 09074

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00001

Agrupamento              : 00001

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

Referência às notas relacionadas:

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

 

07017  - 00001 - 7.0    - 00006  - AJUSTES ATO CONCESSÓRIO SUSP. PARA RECEBER COMPRAS NO MERCADO INT

09017  - 00002 - 8.0    - 00001  - PREENCHIMENTO DO LOTE NA TABELA /PWS/ZYCIT279

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

AJUSTES PARA TRATAMENTO DE LOTE.

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

Palavras Chave:

TRATAMENTO - LOTE - ATO - CONCESSÓRIO

/PWS/SAPMZYCI040

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

Objetos da nota:

REPS /PWS/MZYCI040F02

REPS /PWS/MZYCI040I01

REPS /PWS/MZYCI040O01

 

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

Modificações efetuadas em REPS /PWS/MZYCI040F02

 

...

FORM check_field_0204.

  LOOP AT tc_realizi-cols INTO wa_cols2.

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

    IF /pws/zycit321-lote EQ space.

      IF wa_cols2-screen-group2 EQ 'LOT'.

        wa_cols2-invisible = 1.

        MODIFY tc_realizi-cols FROM wa_cols2.

      ENDIF.

    ELSE.

      IF wa_cols2-screen-group2 EQ 'LOT'.

        wa_cols2-invisible = 0.

        MODIFY tc_realizi-cols FROM wa_cols2.

      ENDIF.

    ENDIF.

* << Fim da exclusão

    IF wa_cols2-screen-group1 NE 'NEX'.

      wa_cols2-screen-input = v_status2.

      MODIFY tc_realizi-cols FROM wa_cols2.

    ENDIF.

    IF wa_cols2-screen-name EQ '/PWS/ZYCIE246-QTD_COMPV'

          AND v_tcode2_aux EQ 'X'.

      IF /pws/zycie244-status EQ 'E'.

        wa_cols2-screen-input = 0.

      ELSE.

        wa_cols2-screen-input = 0.

...

 

...

           WHERE nrseqd EQ /pws/zycie244-nrseqd.

    CLEAR: itab_zycit285. REFRESH: itab_zycit285.

    SELECT * FROM /pws/zycit285 INTO TABLE itab_zycit285

           WHERE nrseqd EQ /pws/zycie244-nrseqd.

    SELECT * FROM /pws/zycit248 INTO TABLE itab_zycit248_final

           WHERE nrseqd EQ /pws/zycie244-nrseqd.

    SORT itab_zycit245       BY nritem codcomp ASCENDING.

    SORT itab_zycit246_final BY nritem codcomp ASCENDING.

    SORT itab_zycit247       BY nritem codmat  ASCENDING.

    SORT itab_zycit248_final BY nritem codmat  ASCENDING.

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

    IF /pws/zycit321-lote NE space.

* << Fim da exclusão

      IF NOT itab_zycit248_final[] IS INITIAL.

        SELECT vbeln posnr charg FROM lips INTO TABLE itab_lote_e

            FOR ALL ENTRIES IN itab_zycit248_final

            WHERE vbeln EQ itab_zycit248_final-vbeln_vl

              AND posnr EQ itab_zycit248_final-posnl.

        LOOP AT itab_zycit248_final.

          READ TABLE itab_lote_e WITH KEY

                          vbeln = itab_zycit248_final-vbeln_vl

                          posnr = itab_zycit248_final-posnl.

          itab_zycit248_final-lote = itab_lote_e-charg.

          MODIFY itab_zycit248_final.

        ENDLOOP.

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

      ENDIF.

* << Fim da exclusão

    ENDIF.

    SELECT * FROM /pws/zycit243 INTO TABLE itab_centros2

           WHERE nrseqd EQ /pws/zycie244-nrseqd.

    SELECT * FROM /pws/zycit277 INTO TABLE itab_vencto2

           WHERE nrseqd EQ /pws/zycie244-nrseqd.

    SORT itab_centros2 BY werks ASCENDING.

    SORT itab_vencto2  BY vencto ASCENDING.

    PERFORM busca_dados_composicao.

    pressed_tab_2a = 'FS_CABEC2'.

    dynpronr2a     = '0201'.

...

 

...

FORM atualiza_itab_zycit246_final.

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

  IF /pws/zycit321-lote IS INITIAL.

READ TABLE itab_zycit246_final WITH KEY  nritem  = itab_zycit246-nritem

                                        codcomp = itab_zycit246-codcomp

                                          ebeln   = itab_zycit246-ebeln

                                          ebelp   = itab_zycit246-ebelp

                                          nrseq   = itab_zycit246-nrseq.

    IF sy-subrc EQ 0.

      itab_zycit246_final = itab_zycit246.

      itab_zycit246_final-qtd_nacion   = itab_zycit246-qtd_nacion  .

      itab_zycit246_final-i_indice     = itab_zycit246-i_indice    .

      itab_zycit246_final-i_waerscifme = itab_zycit246-i_waerscifme.

      itab_zycit246_final-i_vlcif_me   = itab_zycit246-i_vlcif_me  .

      itab_zycit246_final-i_txmoeda    = itab_zycit246-i_txmoeda   .

      itab_zycit246_final-i_waerscifmi = itab_zycit246-i_waerscifmi.

      itab_zycit246_final-i_vlcif_mi   = itab_zycit246-i_vlcif_mi  .

      itab_zycit246_final-i_vlcifn_mi  = itab_zycit246-i_vlcifn_mi .

      itab_zycit246_final-i_txii       = itab_zycit246-i_txii      .

      itab_zycit246_final-i_vlii       = itab_zycit246-i_vlii      .

      itab_zycit246_final-i_txipi      = itab_zycit246-i_txipi     .

      itab_zycit246_final-i_vlipi      = itab_zycit246-i_vlipi     .

      itab_zycit246_final-i_txicms     = itab_zycit246-i_txicms    .

      itab_zycit246_final-i_vlicms     = itab_zycit246-i_vlicms    .

      itab_zycit246_final-i_txselic    = itab_zycit246-i_txselic   .

      itab_zycit246_final-i_multaicms  = itab_zycit246-i_multaicms .

      itab_zycit246_final-i_tottrib    = itab_zycit246-i_tottrib   .

      itab_zycit246_final-i_multaii    = itab_zycit246-i_multaii   .

      itab_zycit246_final-i_multaipi   = itab_zycit246-i_multaipi  .

      itab_zycit246_final-i_jurosii    = itab_zycit246-i_jurosii   .

      itab_zycit246_final-i_jurosipi   = itab_zycit246-i_jurosipi  .

      itab_zycit246_final-i_totmult    = itab_zycit246-i_totmult   .

      itab_zycit246_final-i_jurosmor   = itab_zycit246-i_jurosmor  .

      itab_zycit246_final-i_totmultic  = itab_zycit246-i_totmultic .

     MODIFY itab_zycit246_final TRANSPORTING nritem codcomp ebeln ebelp

                                              nrseq qtd_nacion i_indice

                                                i_waerscifme i_vlcif_me

                                                 i_txmoeda i_waerscifmi

                                                 i_vlcif_mi i_vlcifn_mi

                                                      multaipi jurosipi

                                                        multaii jurosii

                                                    multaicms jurosicms

                                                      multapis jurospis

                                                      multacof juroscof

                                                    vmultapis vjurospis

                                                    vmultacof vjuroscof

                                                    vlpis pis vlcifn_me

                                                           vlcof cofins

                                                           vafrmm afrmm

                                                  multaafrmm jurosafrmm

                                                vmultaafrmm vjurosafrmm

                                                  i_txii i_vlii i_txipi

                                              i_vlipi i_txicms i_vlicms

                                                  i_multaicms i_txselic

                                                    i_tottrib i_multaii

                                                   i_multaipi i_jurosii

                                                   i_jurosipi i_totmult

                                                 i_jurosmor i_totmultic

                                   WHERE nritem  = itab_zycit246-nritem

                                    AND codcomp = itab_zycit246-codcomp

                                      AND ebeln   = itab_zycit246-ebeln

                                      AND ebelp   = itab_zycit246-ebelp

                                      AND nrseq   = itab_zycit246-nrseq.

    ENDIF.

  ELSE.

* << Fim da exclusão

    PERFORM trata_nacion_lote.

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

  ENDIF.

* << Fim da exclusão

ENDFORM.

...

 

...

FORM monta_inf_exp.

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

  IF /pws/zycit321-lote EQ space.

* << Fim da exclusão

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

  REFRESH: itab_zycit468,

           itab_zycit246_inf.

  SELECT * FROM /pws/zycit468 INTO TABLE itab_zycit468

                 WHERE nrseqexp = itab_zycit248-nrseq

                   AND vbeln_va = itab_zycit248-vbeln_va

                   AND aupos    = itab_zycit248-aupos

                   AND vbeln_vl = itab_zycit248-vbeln_vl

                   AND posnl    = itab_zycit248-posnl.

  IF sy-subrc NE 0.

* << Fim da inclusão

    REFRESH: itab_zycit282,

             itab_zycit246_inf.

    SELECT * FROM /pws/zycit282 INTO TABLE itab_zycit282

                   WHERE nrseqexp = itab_zycit248-nrseq

                     AND vbeln_va = itab_zycit248-vbeln_va

                     AND aupos    = itab_zycit248-aupos

                     AND vbeln_vl = itab_zycit248-vbeln_vl

                     AND posnl    = itab_zycit248-posnl.

    SORT itab_zycit282 BY nrseqimp ebeln ebelp docnum buzei.

    LOOP AT itab_zycit282.

...

 

...

        itab_zycit246_inf = itab_zycit246_final.

        itab_zycit246_inf-matnr = itab_zycit282-matnr_imp.

        itab_zycit246_inf-ntgew =

          ( itab_zycit246_inf-ntgew / itab_zycit246_inf-qtd_ncm ) *

            itab_zycit282-qtd_mimp.

        itab_zycit246_inf-qtd_ncm = itab_zycit282-qtd_mimp.

        APPEND itab_zycit246_inf.

      ENDIF.

    ENDLOOP.

  ELSE.

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

    REFRESH: itab_zycit468,

             itab_zycit246_inf.

    SELECT * FROM /pws/zycit468 INTO TABLE itab_zycit468

                   WHERE nrseqexp = itab_zycit248-nrseq

                     AND vbeln_va = itab_zycit248-vbeln_va

                     AND aupos    = itab_zycit248-aupos

                     AND vbeln_vl = itab_zycit248-vbeln_vl

                     AND posnl    = itab_zycit248-posnl.

* << Fim da exclusão

    LOOP AT itab_zycit468.

      READ TABLE itab_zycit246_final WITH KEY

                                    nrseq  = itab_zycit468-nrseqimp

                                    ebeln  = itab_zycit468-ebeln

                                    ebelp  = itab_zycit468-ebelp

                                    lote   = itab_zycit468-lote_i

                                   docnum = itab_zycit468-docnumimp.

      IF sy-subrc EQ 0.

        itab_zycit246_inf = itab_zycit246_final.

        itab_zycit246_inf-ntgew =

...

 

...

                     AND ebeln     = itab_zycit246-ebeln

                     AND ebelp     = itab_zycit246-ebelp.

    SELECT * FROM /pws/zycit468 INTO TABLE itab_zycit468"#EC CI_NOFIRST

                   WHERE nrseqimp  = itab_zycit246-nrseq

                     AND docnumimp = itab_zycit246-docnum

                     AND ebeln     = itab_zycit246-ebeln

                     AND ebelp     = itab_zycit246-ebelp

                     AND lote_i    = itab_zycit246-lote.

  ENDIF.

  LOOP AT itab_zycit282.

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

    IF /pws/zycit321-lote NE space.

* << Fim da exclusão

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

    IF NOT itab_zycit246-lote IS INITIAL.

* << Fim da inclusão

      READ TABLE itab_zycit468 WITH KEY

                                  nrseqexp = itab_zycit282-nrseqexp

                                  vbeln_va = itab_zycit282-vbeln_va

                                     aupos    = itab_zycit282-aupos

                                  vbeln_vl = itab_zycit282-vbeln_vl

                                     posnl    = itab_zycit282-posnl

                                     nrseqimp = itab_zycit246-nrseq

                                     ebeln    = itab_zycit246-ebeln

                                     ebelp    = itab_zycit246-ebelp

                                     lote_i   = itab_zycit246-lote.

...

 

...

    READ TABLE itab_zycit248_final WITH KEY

                                nrseq    = itab_zycit282-nrseqexp

                                vbeln_va = itab_zycit282-vbeln_va

                                   aupos    = itab_zycit282-aupos

                                vbeln_vl = itab_zycit282-vbeln_vl

                                   posnl    = itab_zycit282-posnl.

    IF sy-subrc EQ 0.

      itab_zycit248_inf-nrseq   = itab_zycit248_final-nrseq.

      itab_zycit248_inf-nrre    = itab_zycit248_final-nrre.

      itab_zycit248_inf-matnr   = itab_zycit248_final-matnr.

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

      IF /pws/zycit321-lote NE space.

* << Fim da exclusão

        itab_zycit248_inf-lote    = itab_zycit248_final-lote.

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

      ENDIF.

* << Fim da exclusão

      itab_zycit248_inf-dtemb   = itab_zycit248_final-dtemb.

      itab_zycit248_inf-nrseqre = itab_zycit248_final-nrseqre.

      itab_zycit248_inf-vrkme   = itab_zycit248_final-vrkme.

      itab_zycit248_inf-ntgew   = itab_zycit248_final-ntgew.

      itab_zycit248_inf-um_ncm  = itab_zycit248_final-um_ncm.

      itab_zycit248_inf-qtd_ncm = itab_zycit248_final-qtd_ncm.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI040I01

 

...

MODULE user_command_0245 INPUT.

  CASE ok_code2.

    WHEN 'ENTE'.

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

      IF /pws/zycit321-lote = ' '.

        PERFORM add_lancamento.

      ELSE.

* << Fim da exclusão

        PERFORM add_lancamento_lote.

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

      ENDIF.

* << Fim da exclusão

  ENDCASE.

ENDMODULE.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI040O01

 

...

      ENDLOOP.

      LOOP AT tc_realize-cols INTO wa_cols2.

        IF NOT /pws/zycie244-importacao IS INITIAL AND

           wa_cols2-screen-group4 EQ 'CAM'.

          wa_cols2-invisible = 1.

          MODIFY tc_realize-cols FROM wa_cols2.

        ELSEIF wa_cols2-screen-group4 EQ 'CAM'.

          wa_cols2-invisible = 0.

          MODIFY tc_realize-cols FROM wa_cols2.

        ENDIF.

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

        IF /pws/zycit321-lote IS INITIAL.

          IF wa_cols2-screen-name EQ '/PWS/ZYCIE248-LOTE'.

            wa_cols2-invisible = 1.

            MODIFY tc_realize-cols FROM wa_cols2.

          ENDIF.

        ELSE.

          IF wa_cols2-screen-name EQ '/PWS/ZYCIE248-LOTE'.

            wa_cols2-invisible = 0.

            MODIFY tc_realize-cols FROM wa_cols2.

          ENDIF.

        ENDIF.

* << Fim da exclusão

      ENDLOOP.

      DESCRIBE TABLE itab_zycit248 LINES v_ilinhas2.

      tc_realize-lines = v_ilinhas2.

    WHEN '0208'.

      LOOP AT tc_centros2-cols INTO wa_cols2.

        IF wa_cols2-screen-group1 NE 'NEX'.

          IF NOT /pws/zycie244-nrforecast IS INITIAL.

            wa_cols2-screen-input = 0.

          ELSE.

            wa_cols2-screen-input = v_status2.

...

 

...

MODULE status_0241 OUTPUT.

  SET PF-STATUS 'ST0241'.

  SET TITLEBAR 'TL0241'.

  CLEAR ok_code.

  DESCRIBE TABLE itab_zycit246_inf LINES v_ilinhas2.

  tc_inf_exp-lines = v_ilinhas2.

  LOOP AT tc_inf_exp-cols INTO wa_cols2.

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

    IF /pws/zycit321-lote EQ space.

      IF wa_cols2-screen-group2 EQ 'LOT'.

        wa_cols2-invisible = '1'.

        MODIFY tc_inf_exp-cols FROM wa_cols2.

      ENDIF.

    ELSE.

      IF wa_cols2-screen-group2 EQ 'LOT'.

        wa_cols2-invisible = '0'.

        MODIFY tc_inf_exp-cols FROM wa_cols2.

      ENDIF.

    ENDIF.

* << Fim da exclusão

    CASE wa_cols2-screen-group1.

      WHEN 'NF'.

        IF /pws/zycie244-tipo EQ 'F'.

          wa_cols2-invisible = '0'.

        ELSE.

          wa_cols2-invisible = '1'.

        ENDIF.

        MODIFY tc_inf_exp-cols FROM wa_cols2.

      WHEN 'IMP'.

        IF /pws/zycie244-tipo EQ 'F'.

...

 

...

MODULE status_0242 OUTPUT.

  SET PF-STATUS 'ST0241'.

  SET TITLEBAR 'TL0242'.

  CLEAR ok_code.

  DESCRIBE TABLE itab_zycit248_inf LINES v_ilinhas2.

  LOOP AT tc_inf_imp-cols INTO wa_cols2.

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

    IF /pws/zycit321-lote EQ space.

      IF wa_cols2-screen-name EQ '/PWS/ZYCIE248-LOTE'.

        wa_cols2-invisible = 1.

        MODIFY tc_inf_imp-cols FROM wa_cols2.

      ENDIF.

    ELSE.

      IF wa_cols2-screen-name EQ '/PWS/ZYCIE248-LOTE'.

        wa_cols2-invisible = 0.

        MODIFY tc_inf_imp-cols FROM wa_cols2.

      ENDIF.

    ENDIF.

* << Fim da exclusão

  ENDLOOP.

  tc_inf_imp-lines = v_ilinhas2.

ENDMODULE.

...

 

...

MODULE trata_lote OUTPUT.

  LOOP AT SCREEN.

    CASE screen-name.

      WHEN '/PWS/ZYCIE470-LOTE'.

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

        IF /pws/zycit321-lote = ' '.

          screen-invisible  = 1.

          screen-active = 0.

          MODIFY SCREEN.

        ELSE.

          screen-invisible  = 0.

          MODIFY SCREEN.

        ENDIF.

* << Fim da exclusão

    ENDCASE.

  ENDLOOP.

ENDMODULE.

...