CE PLUS - Nota 006143

Módulo: DRAWBACK

Funcionalidade: Composição

Data/Hora da Publicação: 11/03/2008 00:00:00

Data/Hora Última Alteração: 17/02/2011 15:18:50

Descrição da Nota: ATUALIZAÇÃO DO PESO LIQUIDO, QUANTIDADE NCM

Sintoma

- Os valores e quantidades estão incorretos na pasta resumo (Quando a unidade de medida UMB é

difierente da NCM);

- Quando o programa não encontra nenhuma importação, ele seleciona todos os itens da tabela

/PWS/ZYCIT003;

- A barra de rolagem da pasta DI está com problemas.

 

 

Solução

Atualização da exibição dos dados na composição de isenção.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

PERFORMANCE

AJUSTES NO CALCULO DO PESO LIQUIDO

Informações Complementares

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

Nota Número 06143 Data: 11/03/2008 Hora: 14:26:36

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

 

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

Nota Número              : 06143

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00004

Agrupamento              : 00037

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

Referência às notas relacionadas:

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

 

05439  - 00001 - 7.0    - 00004  - PERFORMANCE

05540  - 00002 - 7.0    - 00004  - AJUSTES NO CALCULO DO PESO LIQUIDO

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

ATUALIZAÇÃO DO PESO LIQUIDO, QUANTIDADE NCM

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

Palavras Chave:

DRAWBACK COMPOSIÇÃO DE ISENÇÃO PESO LIQUIDO, QUANTIDADE NCM DETALHES

 

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

Objetos da nota:

REPS /PWS/MZYCI064F03

REPS /PWS/MZYCI064I01

 

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

Modificações efetuadas em REPS /PWS/MZYCI064F03

 

...

    ENDIF.

    MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

    itab_det_imp-um_ncm = itab_det_imp-meins.

    itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.

    PERFORM converte_um_ncm  USING itab_det_imp-codcomp

                          CHANGING itab_det_imp-um_ncm

                                   /pws/zycie258-werks

                                   itab_det_imp-qtd_ncm.

    APPEND itab_det_imp.

  ENDLOOP.

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

  tc_det_imp3-top_line = 1.

* << Fim da inclusão

  pressed_tab_3c_3 = ok_code3.

  dynpronr3c_3     = '0308'.

ENDFORM.

FORM trata_tab_vdi3.

  DATA: v_marcados5 TYPE i VALUE 0.

  LOOP AT itab_comp_vinc WHERE marc_cp = 'X'.

    v_marcados5 = v_marcados5 + 1.

  ENDLOOP.

  IF v_marcados5 > 1.

    MESSAGE s015 WITH text-016.

...

 

...

      CHECK itab_di_final-grupo  EQ itab_comp_vinc-grupo.

    ELSE.

      CHECK itab_di_final-codcomp  EQ itab_comp_vinc-codcomp.

    ENDIF.

    IF itab_di_final-sdo_qtd > 0

      OR itab_di_final-qtd_vinc > 0 .

      MOVE-CORRESPONDING itab_di_final TO itab_di.

      APPEND itab_di.

    ENDIF.

  ENDLOOP.

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

  tc_di3-top_line = 1.

  tc_nf3-top_line = 1.

* << Fim da inclusão

  IF /pws/zycie258-tipo EQ 'C'.

    SORT itab_di BY dtdi nrdi ebeln ebelp ASCENDING.

    pressed_tab_3c_4 = ok_code3.

    dynpronr3c_4     = '0310'.

  ELSE.

    pressed_tab_3c_4 = ok_code3.

    dynpronr3c_4     = '0316'.

    SORT itab_di BY dtnf docnum itmnum ebeln ebelp ASCENDING.

  ENDIF.

ENDFORM.

...

 

...

               AND a~ebeln EQ b~ebeln

               AND a~ebelp EQ b~ebelp )

               INNER JOIN /pws/zycit085 AS c

               ON b~nrseqdi EQ c~nrseqdi )

            INTO TABLE itab_sel_di

            FOR ALL ENTRIES IN itab_insumo_di

            WHERE a~matnr EQ itab_insumo_di-matnr

              AND c~dtreg >= itab_det_exp-dtre

              AND c~nrdi NE space.

  ENDIF.

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

  IF NOT itab_insumo_di[] IS INITIAL.

* << Fim da exclusão

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

  IF NOT itab_sel_di[] IS INITIAL.

* << Fim da inclusão

    SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

        FOR ALL ENTRIES IN itab_sel_di

           WHERE nrseq EQ itab_sel_di-nrseq

             AND ebeln EQ itab_sel_di-ebeln

             AND ebelp EQ itab_sel_di-ebelp.

  ENDIF.

  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.

...

 

...

  ENDIF.

ENDFORM.

FORM trata_button_first_0306.

  MOVE: 1 TO v_indicatu7.

  LOOP AT itab_res_imp WHERE marc_l = 'X'.

    itab_res_imp-marc_l = ' '.

    MODIFY itab_res_imp.

  ENDLOOP.

  READ TABLE itab_res_imp INDEX v_indicatu7.

  IF sy-subrc EQ 0.

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

    tc_det_imp3-top_line = 1.

* << Fim da inclusão

    itab_res_imp-marc_l = 'X'.

    MODIFY itab_res_imp INDEX v_indicatu7.

    MOVE: itab_res_imp-codcomp  TO /pws/zycie260-codcomp,

          itab_res_imp-qtd_vinc   TO /pws/zycie260-qtd_di ,

        itab_res_imp-meins     TO /pws/zycie260-meins ,

        itab_res_imp-grupo     TO /pws/zycie260-grupo ,

        itab_res_imp-desc_g    TO /pws/zycie260-desc_g ,

        itab_res_imp-waers     TO /pws/zycie260-waers ,

          itab_res_imp-vlfob    TO /pws/zycie260-vlfob_t.

    CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.

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

      LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.

        MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

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

        itab_det_imp-um_ncm = itab_det_imp-meins.

        itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.

        PERFORM converte_um_ncm  USING itab_det_imp-codcomp

                              CHANGING itab_det_imp-um_ncm

                                       /pws/zycie258-werks

                                       itab_det_imp-qtd_ncm.

* << Fim da inclusão

        APPEND itab_det_imp.

        /pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +

           itab_det_imp_final-i_vlii.

        /pws/zycie260d-i_vlipi =

                          /pws/zycie260d-i_vlipi +

                           itab_det_imp_final-i_vlipi.

        /pws/zycie260d-i_vlicms =

                        /pws/zycie260d-i_vlicms +

                           itab_det_imp_final-i_vlicms.

      ENDLOOP.

      /pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +

                               /pws/zycie260d-i_vlipi.

      MOVE: itab_res_imp-grupo  TO v_detcomp1,

            itab_res_imp-desc_g TO v_detcomp2.

    ELSE.

      LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.

        MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

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

        itab_det_imp-um_ncm = itab_det_imp-meins.

        itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.

        PERFORM converte_um_ncm  USING itab_det_imp-codcomp

                              CHANGING itab_det_imp-um_ncm

                                       /pws/zycie258-werks

                                       itab_det_imp-qtd_ncm.

* << Fim da inclusão

        APPEND itab_det_imp.

        /pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +

           itab_det_imp_final-i_vlii.

        /pws/zycie260d-i_vlipi =

                          /pws/zycie260d-i_vlipi +

                           itab_det_imp_final-i_vlipi.

        /pws/zycie260d-i_vlicms =

                        /pws/zycie260d-i_vlicms +

                           itab_det_imp_final-i_vlicms.

      ENDLOOP.

...

 

...

FORM trata_button_prior_0306.

  IF v_indicatu7 > 1.

    v_indicatu7 = v_indicatu7 - 1.

  ENDIF.

  LOOP AT itab_res_imp WHERE marc_l = 'X'.

    itab_res_imp-marc_l = ' '.

    MODIFY itab_res_imp.

  ENDLOOP.

  READ TABLE itab_res_imp INDEX v_indicatu7.

  IF sy-subrc EQ 0.

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

    tc_det_imp3-top_line = 1.

* << Fim da inclusão

    itab_res_imp-marc_l = 'X'.

    MODIFY itab_res_imp INDEX v_indicatu7.

    MOVE: itab_res_imp-codcomp  TO /pws/zycie260-codcomp,

          itab_res_imp-qtd_vinc   TO /pws/zycie260-qtd_di ,

        itab_res_imp-meins     TO /pws/zycie260-meins ,

        itab_res_imp-grupo     TO /pws/zycie260-grupo ,

        itab_res_imp-desc_g    TO /pws/zycie260-desc_g ,

        itab_res_imp-waers     TO /pws/zycie260-waers ,

          itab_res_imp-vlfob    TO /pws/zycie260-vlfob_t.

    CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.

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

      LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.

        MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

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

        itab_det_imp-um_ncm = itab_det_imp-meins.

        itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.

        PERFORM converte_um_ncm  USING itab_det_imp-codcomp

                              CHANGING itab_det_imp-um_ncm

                                       /pws/zycie258-werks

                                       itab_det_imp-qtd_ncm.

* << Fim da inclusão

        APPEND itab_det_imp.

        /pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +

           itab_det_imp_final-i_vlii.

        /pws/zycie260d-i_vlipi =

                          /pws/zycie260d-i_vlipi +

                           itab_det_imp_final-i_vlipi.

        /pws/zycie260d-i_vlicms =

                        /pws/zycie260d-i_vlicms +

                           itab_det_imp_final-i_vlicms.

      ENDLOOP.

      /pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +

                               /pws/zycie260d-i_vlipi.

      MOVE: itab_res_imp-grupo  TO v_detcomp1,

            itab_res_imp-desc_g TO v_detcomp2.

    ELSE.

      LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.

        MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

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

        itab_det_imp-um_ncm = itab_det_imp-meins.

        itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.

        PERFORM converte_um_ncm  USING itab_det_imp-codcomp

                              CHANGING itab_det_imp-um_ncm

                                       /pws/zycie258-werks

                                       itab_det_imp-qtd_ncm.

* << Fim da inclusão

        APPEND itab_det_imp.

        /pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +

           itab_det_imp_final-i_vlii.

        /pws/zycie260d-i_vlipi =

                          /pws/zycie260d-i_vlipi +

                           itab_det_imp_final-i_vlipi.

        /pws/zycie260d-i_vlicms =

                        /pws/zycie260d-i_vlicms +

                           itab_det_imp_final-i_vlicms.

      ENDLOOP.

...

 

...

  DESCRIBE TABLE itab_res_imp LINES v_ilinhas2.

  IF v_indicatu7 < v_ilinhas2.

    v_indicatu7 = v_indicatu7 + 1.

  ENDIF.

  LOOP AT itab_res_imp WHERE marc_l = 'X'.

    itab_res_imp-marc_l = ' '.

    MODIFY itab_res_imp.

  ENDLOOP.

  READ TABLE itab_res_imp INDEX v_indicatu7.

  IF sy-subrc EQ 0.

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

    tc_det_imp3-top_line = 1.

* << Fim da inclusão

    itab_res_imp-marc_l = 'X'.

    MODIFY itab_res_imp INDEX v_indicatu7.

    MOVE: itab_res_imp-codcomp  TO /pws/zycie260-codcomp,

          itab_res_imp-qtd_vinc   TO /pws/zycie260-qtd_di ,

        itab_res_imp-grupo     TO /pws/zycie260-grupo ,

        itab_res_imp-desc_g    TO /pws/zycie260-desc_g ,

        itab_res_imp-meins     TO /pws/zycie260-meins ,

        itab_res_imp-waers     TO /pws/zycie260-waers ,

          itab_res_imp-vlfob    TO /pws/zycie260-vlfob_t.

    CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.

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

      LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.

        MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

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

                itab_det_imp-um_ncm = itab_det_imp-meins.

        itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.

        PERFORM converte_um_ncm  USING itab_det_imp-codcomp

                              CHANGING itab_det_imp-um_ncm

                                       /pws/zycie258-werks

                                       itab_det_imp-qtd_ncm.

* << Fim da inclusão

        APPEND itab_det_imp.

        /pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +

           itab_det_imp_final-i_vlii.

        /pws/zycie260d-i_vlipi =

                          /pws/zycie260d-i_vlipi +

                           itab_det_imp_final-i_vlipi.

        /pws/zycie260d-i_vlicms =

                        /pws/zycie260d-i_vlicms +

                           itab_det_imp_final-i_vlicms.

      ENDLOOP.

      /pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +

                               /pws/zycie260d-i_vlipi.

      MOVE: itab_res_imp-grupo  TO v_detcomp1,

            itab_res_imp-desc_g TO v_detcomp2.

    ELSE.

      LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.

        MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

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

               itab_det_imp-um_ncm = itab_det_imp-meins.

        itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.

        PERFORM converte_um_ncm  USING itab_det_imp-codcomp

                              CHANGING itab_det_imp-um_ncm

                                       /pws/zycie258-werks

                                       itab_det_imp-qtd_ncm.

* << Fim da inclusão

        APPEND itab_det_imp.

        /pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +

           itab_det_imp_final-i_vlii.

        /pws/zycie260d-i_vlipi =

                          /pws/zycie260d-i_vlipi +

                           itab_det_imp_final-i_vlipi.

        /pws/zycie260d-i_vlicms =

                        /pws/zycie260d-i_vlicms +

                           itab_det_imp_final-i_vlicms.

      ENDLOOP.

...

 

...

ENDFORM.

FORM trata_button_last_0306.

  DESCRIBE TABLE itab_res_imp LINES v_ilinhas2.

  v_indicatu7 = v_ilinhas2.

  LOOP AT itab_res_imp WHERE marc_l = 'X'.

    itab_res_imp-marc_l = ' '.

    MODIFY itab_res_imp.

  ENDLOOP.

  READ TABLE itab_res_imp INDEX v_indicatu7.

  IF sy-subrc EQ 0.

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

    tc_det_imp3-top_line = 1.

* << Fim da inclusão

    itab_res_imp-marc_l = 'X'.

    MODIFY itab_res_imp INDEX v_indicatu7.

    MOVE: itab_res_imp-codcomp  TO /pws/zycie260-codcomp,

          itab_res_imp-qtd_vinc  TO /pws/zycie260-qtd_di ,

        itab_res_imp-grupo     TO /pws/zycie260-grupo ,

        itab_res_imp-desc_g    TO /pws/zycie260-desc_g ,

        itab_res_imp-meins     TO /pws/zycie260-meins ,

        itab_res_imp-waers     TO /pws/zycie260-waers ,

          itab_res_imp-vlfob    TO /pws/zycie260-vlfob_t.

    CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.

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

      LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.

        MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

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

        itab_det_imp-um_ncm = itab_det_imp-meins.

        itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.

        PERFORM converte_um_ncm  USING itab_det_imp-codcomp

                              CHANGING itab_det_imp-um_ncm

                                       /pws/zycie258-werks

                                       itab_det_imp-qtd_ncm.

* << Fim da inclusão

        APPEND itab_det_imp.

        /pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +

           itab_det_imp_final-i_vlii.

        /pws/zycie260d-i_vlipi =

                          /pws/zycie260d-i_vlipi +

                           itab_det_imp_final-i_vlipi.

        /pws/zycie260d-i_vlicms =

                        /pws/zycie260d-i_vlicms +

                           itab_det_imp_final-i_vlicms.

      ENDLOOP.

      /pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +

                               /pws/zycie260d-i_vlipi.

      MOVE: itab_res_imp-grupo  TO v_detcomp1,

            itab_res_imp-desc_g TO v_detcomp2.

    ELSE.

      LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.

        MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

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

        itab_det_imp-um_ncm = itab_det_imp-meins.

        itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.

        PERFORM converte_um_ncm  USING itab_det_imp-codcomp

                              CHANGING itab_det_imp-um_ncm

                                       /pws/zycie258-werks

                                       itab_det_imp-qtd_ncm.

* << Fim da inclusão

        APPEND itab_det_imp.

        /pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +

           itab_det_imp_final-i_vlii.

        /pws/zycie260d-i_vlipi =

                          /pws/zycie260d-i_vlipi +

                           itab_det_imp_final-i_vlipi.

        /pws/zycie260d-i_vlicms =

                        /pws/zycie260d-i_vlicms +

                           itab_det_imp_final-i_vlicms.

      ENDLOOP.

...

 

...

  ENDIF.

  MOVE: itab_zycit003-meins           TO itab_dis-meins       ,

        itab_zycit003-qtd_iten        TO itab_dis-qtd_di      .

  PERFORM converte_um_ncm  USING itab_zycit003-matnr

                        CHANGING itab_dis-meins

                                 itab_zycit003-werks

                                 itab_dis-qtd_di.

  IF itab_dis-qtd_di IS INITIAL.

    EXIT.

  ENDIF.

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

  itab_zycit003-qtd_iten = itab_dis-qtd_di.

* << Fim da exclusão

  v_fator_conv = v_vlreali / itab_zycit003-qtd_iten.

  CLEAR: v_advii, v_advicms, v_advipi, v_advpis, v_advcof, v_xa, v_xb,

                                                       v_fatx, v_faty.

  v_advii   = ( itab_zycit003-advalii / 100 ).

  v_advipi  = ( itab_zycit003-advalipi / 100 ).

  IF NOT itab_zycit003-basred IS INITIAL.

    v_advicms = ( ( itab_zycit003-advalicms / 100 ) *

     ( itab_zycit003-basred / 100 ) ) .

  ELSE.

    v_advicms = ( itab_zycit003-advalicms / 100 ).

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064I01

 

...

        itab_di_final-t_benef     = itab_di-t_benef.

        MODIFY itab_di_final.

      ENDLOOP.

    ENDIF.

  ENDIF.

  LOOP AT itab_di_final.

    v_tabix = sy-tabix.

    CLEAR mara.

    SELECT SINGLE ntgew brgew

     FROM mara INTO (mara-ntgew,mara-brgew)

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

      WHERE matnr = itab_di_final-codmat.

* << Fim da exclusão

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

      WHERE matnr = itab_di_final-codcomp.

* << Fim da inclusão

    itab_di_final-ntgew =

    ( mara-ntgew * itab_di_final-qtd_vinc ).

    itab_di_final-brgew =

    ( mara-brgew * itab_di_final-qtd_vinc ).

    MODIFY itab_di_final INDEX v_tabix.

  ENDLOOP.

  LOOP AT itab_di.

    v_tabix = sy-tabix.

    CLEAR mara.

    SELECT SINGLE ntgew brgew

...