CE PLUS - Nota 006470

Módulo: DRAWBACK

Funcionalidade: Composição

Data/Hora da Publicação: 28/04/2008 00:00:00

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

Descrição da Nota: AJUSTES NO CALCULO DO VALOR E PESO LIQUIDO PARA COMPOSIÇÃO ISENÇÃO

Sintoma

Na composição isenção o valor e o peso liquido dos insumos vinculados podem ficar com da DI devido

arredondamento por casas deciamis.

 

 

Solução

Calcular os valores vinculados com base no total vinculado por DI.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTE PARA EXIBIR TOTAL POR NCM E AS QUANTIDADES TOTAIS COM A UNIDADE

VALOR FOB NO LOCAL DO EMBARQUE E VALOR FOB TOTAL INVERTIDOS.

PERFORMANCE

AJUSTE NA COMPOSIÇÃO PARA TRATAR TIPO INTERMEDIARIO-IMPORTADOR

AJUSTE PARA CONTOLE DE PESO LIQUIDO COM 5 CASAS

PERFORMANCE VINCULAÇÃO DE COMPOSIÇÃO AO ATO CONCESSÓRIO

EXIBIÇÃO DAS CASAS DECIMAIS DE ACORDO COM AS UNIDADES / MOEDAS

ADICIONADOS OS CAMPOS MOEDA E VALOR NO LOCAL DE EMBARQUE

UTIILIZA DATA DE REGISTRO DA DI PARA BUSCA E AJUSTE NA EXCLUSÃO DE ITENS

Informações Complementares

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

Nota Número 06470 Data: 28/04/2008 Hora: 10:08:10

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

 

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

Nota Número              : 06470

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00005

Agrupamento              : 00044

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

Referência às notas relacionadas:

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

 

03572  - 00001 - 7.0    - 00001  - UTIILIZA DATA DE REGISTRO DA DI PARA BUSCA E AJUSTE NA EXCLUSÃO D

03747  - 00002 - 7.0    - 00001  - AJUSTE PARA EXIBIR TOTAL POR NCM E AS QUANTIDADES TOTAIS COM A UN

05140  - 00003 - 7.0    - 00003  - ADICIONADOS OS CAMPOS MOEDA E VALOR NO LOCAL DE EMBARQUE

05370  - 00004 - 7.0    - 00003  - PERFORMANCE VINCULAÇÃO DE COMPOSIÇÃO AO ATO CONCESSÓRIO

05472  - 00005 - 7.0    - 00003  - EXIBIÇÃO DAS CASAS DECIMAIS DE ACORDO COM AS UNIDADES / MOEDAS

05554  - 00006 - 7.0    - 00004  - PERFORMANCE

06334  - 00007 - 7.0    - 00005  - VALOR FOB NO LOCAL DO EMBARQUE E VALOR FOB TOTAL INVERTIDOS.

06336  - 00008 - 7.0    - 00005  - AJUSTE NA COMPOSIÇÃO PARA TRATAR TIPO INTERMEDIARIO-IMPORTADOR

06346  - 00009 - 7.0    - 00005  - AJUSTE PARA CONTOLE DE PESO LIQUIDO COM 5 CASAS

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

AJUSTES NO CALCULO DO VALOR E PESO LIQUIDO PARA COMPOSIÇÃO ISENÇÃO

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

Palavras Chave:

VALOR - PESO - LIQUIDO - PROPORÇÃO - DI - COMPOSIÇÃO - ISENÇÃO - RUD

/PWS/SAPMZYCI064 -

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

Objetos da nota:

DTEL /PWS/ZYCIL863

REPS /PWS/MZYCI040F02

REPS /PWS/MZYCI064F03

REPS /PWS/MZYCI064X01

REPS /PWS/ZYCRR002

REPS /PWS/ZYCRR004

REPS /PWS/ZYCRR005

REPS /PWS/ZYCRR006

TABD /PWS/ZYCIE373

TABD /PWS/ZYCIT003

TABD /PWS/ZYCIT373

 

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

Modificações efetuadas em DTEL /PWS/ZYCIL863

 

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

Elemento de dados incluído: /PWS/ZYCIL863

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Descrição breve incluída: (43 caracteres), idioma: PT

"GL - SEM SALDO PARA COMPOR DRAWBACK ISENÇÃO"

Categoria de dados: Domínio

Domínio: CHAR10

ID parâmetro:

Nome componente default:

Documentar modificações: NÃO

Nome da ajuda de pesquisa:

Parâmetro da ajuda de pesquisa:

Comprimento máximo do denominador breve: 10

Denominador breve incluído (8 caracteres), idioma: PT

"Esgotado"

Comprimento máximo do denominador médio: 15

Denominador médio incluído (14 caracteres), idioma: PT

"Saldo esgotado"

Comprimento máximo do denominador longo: 40

Denominador longo incluído (36 caracteres), idioma: PT

"S/saldo para compor drawback isenção"

Comprimento máximo do título: 43

Título incluído (43 caracteres), idioma: PT

"Saldo esgotado para compor drawback isenção"

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI040F02

 

...

        vbrgtmp LIKE /pws/zycie259-brgew  ,

        v_pct  TYPE p,

        v_lines TYPE i,

        v_count TYPE i,

        v_fixo  TYPE i VALUE '0',

        v_mess(100) TYPE c,

        v_arred TYPE rgvalue-menge12,

        vntgtmp LIKE /pws/zycie259-ntgew  ,

        vcomtmp LIKE /pws/zycie259-vlcomis,

        v_nritem_exp LIKE /pws/zycit247-nritem.

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

  DATA: BEGIN OF itab_zycit260_a OCCURS 0.

          INCLUDE STRUCTURE /pws/zycie260.

  DATA: END OF itab_zycit260_a.

* << Fim da inclusão

  PERFORM verifica_exit USING 'D'

                             '/PWS/SAPMZYCI040'

                             'ATO010'.

  e_subrc = 0.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY zexit = 'ATO010'  BINARY SEARCH.

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa)

                       CHANGING e_subrc

                                        IF FOUND     .

      IF e_subrc NE '0'.

        EXIT.

      ENDIF.

    ENDIF.

  ENDIF.

  IF itab_zycit245[] IS INITIAL.

    SELECT * FROM /pws/zycit260 INTO TABLE itab_zycit260

         WHERE nrseqd EQ /pws/zycie244-nrcompos.

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

    DESCRIBE TABLE itab_zycit260 LINES v_lines.

* << Fim da exclusão

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

    REFRESH: itab_zycit260_a.

    LOOP AT itab_zycit260 .

      MOVE: itab_zycit260-reg_di     TO itab_zycit260_a-reg_di,

            itab_zycit260-adicao     TO itab_zycit260_a-adicao,

            itab_zycit260-ebeln      TO itab_zycit260_a-ebeln   ,

            itab_zycit260-ebelp      TO itab_zycit260_a-ebelp   ,

            itab_zycit260-ntgew      TO itab_zycit260_a-ntgew,

            itab_zycit260-ntgew_di   TO itab_zycit260_a-ntgew_di,

            itab_zycit260-vl_di      TO itab_zycit260_a-vl_di,

            itab_zycit260-vl_di_f    TO itab_zycit260_a-vl_di_f,

            itab_zycit260-meins      TO itab_zycit260_a-meins ,

            itab_zycit260-waers      TO itab_zycit260_a-waers ,

            itab_zycit260-j_1bnbm    TO itab_zycit260_a-j_1bnbm   ,

            itab_zycit260-grupo      TO itab_zycit260_a-grupo     ,

            itab_zycit260-codcomp    TO itab_zycit260_a-codcomp  ,

            itab_zycit260-qtd_vinc   TO itab_zycit260_a-qtd_vinc  ,

            itab_zycit260-qtd_di     TO itab_zycit260_a-qtd_di  ,

            itab_zycit260-vlfrete_t  TO itab_zycit260_a-vlfrete_t.

      READ TABLE itab_zycit260_a WITH KEY

                               reg_di  = itab_zycit260_a-reg_di

                               adicao  = itab_zycit260_a-adicao

                               ebeln   = itab_zycit260_a-ebeln

                               ebelp   = itab_zycit260_a-ebelp

                                          TRANSPORTING NO FIELDS.

      IF sy-subrc EQ 0.

        CLEAR: itab_zycit260_a-vl_di_f, itab_zycit260_a-vl_di,

               itab_zycit260_a-qtd_di, itab_zycit260_a-ntgew_di.

      ENDIF.

      COLLECT itab_zycit260_a.

    ENDLOOP.

    DESCRIBE TABLE itab_zycit260_a LINES v_lines.

* << Fim da inclusão

    CLEAR: v_count.

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

    LOOP AT itab_zycit260.

* << Fim da exclusão

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

    LOOP AT itab_zycit260_a.

* << Fim da inclusão

      ADD 1 TO v_count.

      IF v_count EQ 100.

        v_pct = ( sy-tabix / v_lines ) * 100.

        WRITE v_pct TO v_mess LEFT-JUSTIFIED NO-GAP.

        CONCATENATE text-324 '.' v_mess '%'

                INTO v_mess SEPARATED BY space.

        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

             EXPORTING

                  percentage = v_fixo

                  text       = v_mess.

        CLEAR: v_count.

      ENDIF.

      CLEAR itab_zycit245.

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

      MOVE itab_zycit260-waers  TO itab_zycit245-waers.

* << Fim da exclusão

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

      MOVE itab_zycit260_a-waers  TO itab_zycit245-waers.

* << Fim da inclusão

      LOOP AT itab_zycit260 INTO /pws/zycie260

                            WHERE waers NE itab_zycit245-waers.

        itab_zycit245-waers = wa_zycbt007-waersa.

        EXIT.

      ENDLOOP.

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

      IF itab_zycit245-waers = wa_zycbt007-waersa.

        MOVE: itab_zycit260-vlfob   TO itab_zycit245-netpr_t .

      ELSE.

        MOVE: itab_zycit260-vlfob_t TO itab_zycit245-netpr_t .

      ENDIF.

* << Fim da exclusão

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

      itab_zycit245-ntgewt = itab_zycit260_a-qtd_vinc *

            ( itab_zycit260_a-ntgew_di / itab_zycit260_a-qtd_di ).

      itab_zycit245-netpr_t = itab_zycit260_a-qtd_vinc *

            ( itab_zycit260_a-vl_di_f / itab_zycit260_a-qtd_di ).

      itab_zycit245-waers = 'USD'.

* << Fim da inclusão

      MOVE: /pws/zycie244-nrseqd          TO itab_zycit245-nrseqd ,

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

            itab_zycit260-codcomp    TO itab_zycit245-codcomp   ,

            itab_zycit260-ntgew      TO itab_zycit245-ntgewt,

            itab_zycit260-j_1bnbm    TO itab_zycit245-j_1bnbm   ,

            itab_zycit260-grupo      TO itab_zycit245-grupo     ,

* << Fim da exclusão

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

            itab_zycit260_a-codcomp    TO itab_zycit245-codcomp   ,

            itab_zycit260_a-j_1bnbm    TO itab_zycit245-j_1bnbm   ,

            itab_zycit260_a-grupo      TO itab_zycit245-grupo     ,

* << Fim da inclusão

            /pws/zycie244-werks           TO itab_zycit245-werks  ,

            '1'                      TO itab_zycit245-proced    ,

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

            itab_zycit260-qtd_vinc   TO itab_zycit245-qtd_tot   ,

            itab_zycit260-qtd_vinc   TO itab_zycit245-sdocomp_i ,

            itab_zycit260-vlfrete_t  TO itab_zycit245-vl_frete_t,

            itab_zycit260-vlseg_t    TO itab_zycit245-vl_seg_t  .

* << Fim da exclusão

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

            itab_zycit260_a-qtd_vinc   TO itab_zycit245-qtd_tot   ,

            itab_zycit260_a-qtd_vinc   TO itab_zycit245-sdocomp_i ,

            itab_zycit260_a-vlfrete_t  TO itab_zycit245-vl_frete_t,

            itab_zycit260_a-vlseg_t    TO itab_zycit245-vl_seg_t  .

* << Fim da inclusão

      vbrgtmp = vbrgtmp + itab_zycit260-brgew.

      vntgtmp = vntgtmp + itab_zycit260-ntgew.

      itab_zycit245-qtd_ncm = itab_zycit245-qtd_tot.

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

      itab_zycit245-um_ncm  = itab_zycit260-meins.

      PERFORM converte_um_ncm USING itab_zycit260-codcomp

* << Fim da exclusão

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

      itab_zycit245-um_ncm  = itab_zycit260_a-meins.

      PERFORM converte_um_ncm USING itab_zycit260_a-codcomp

* << Fim da inclusão

                              CHANGING itab_zycit245-um_ncm

                                       itab_zycit245-werks

                                       itab_zycit245-qtd_ncm.

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

        CLEAR: itab_zycit245-codcomp.

      ENDIF.

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

      MOVE: itab_zycit245-ntgewt  TO v_arred              ,

            v_arred               TO itab_zycit245-ntgewt ,

            itab_zycit245-qtd_tot TO v_arred              ,

            v_arred               TO itab_zycit245-qtd_tot,

            itab_zycit245-qtd_ncm TO v_arred              ,

            v_arred               TO itab_zycit245-qtd_ncm,

            itab_zycit245-netpr_t TO v_arred              ,

            v_arred               TO itab_zycit245-netpr_t.

* << Fim da inclusão

      COLLECT itab_zycit245.

    ENDLOOP.

    CLEAR itab_zycit245_aux. REFRESH itab_zycit245_aux.

    SORT itab_zycit245 BY codcomp.

    LOOP AT itab_zycit245.

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

        READ TABLE itab_zycit260 WITH KEY

                                   grupo = itab_zycit245-grupo.

      ELSE.

        READ TABLE itab_zycit260 WITH KEY

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064F03

 

...

               itab_zycit373-itmnum    TO itab_det_exp_final-itmnum    .

              APPEND itab_det_exp_final.

              MOVE itab_det_exp_final TO itab_det_exp.

              APPEND itab_det_exp.

            ENDLOOP.

          ENDLOOP.

        ENDLOOP.

      ENDIF.

    ELSEIF /pws/zycie258-tipo NE 'N'.

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

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

             a~codenq2 a~codenq3 a~codenq4 a~codenq5

* << Fim da inclusão

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

             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

             ON a~nrseqre EQ b~nrseqre

             INNER JOIN /pws/zycet002 AS c

              ON b~vbeln_va EQ c~vbeln_va

             AND b~vbeln_vf EQ c~vbeln_vf

...

 

...

             AND b~posnl    EQ c~posnl )

               LEFT OUTER JOIN /pws/zycit282 AS d      "#EC CI_BUFFJOIN

                ON c~nrseq    EQ d~nrseqexp

               AND c~vbeln_va EQ d~vbeln_va

               AND c~vbeln_vl EQ d~vbeln_vl

               AND c~posnl    EQ d~posnl

             WHERE a~dtincl >= p_dtexp1 AND

                   a~dtincl <= p_dtexp2 AND

                   b~nrato  EQ space    AND

                   c~bukrs  EQ /pws/zycie258-bukrs AND

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

                 ( c~staprop EQ space OR

                   c~staprop EQ 'E' ) AND

* << Fim da inclusão

                   b~matnr  IN p_matnr.

      DELETE itab_re_final WHERE nrseqexp NE space.

      IF NOT itab_re_final[] IS INITIAL.

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

           /pws/zycie258-tipo EQ 'N'.

          SELECT * FROM /pws/zycit259

          INTO TABLE itab_zycit259                      "#EC CI_NOFIRST

                   FOR ALL ENTRIES IN itab_re_final

                   WHERE nrseqre EQ itab_re_final-nrseqre.

        ELSEIF /pws/zycie258-tipo EQ 'F'.

...

 

...

             itab_re_final-codenq1 NE '80116' AND

             itab_re_final-codenq1 NE '81501'.

            DELETE itab_re_final.

            PERFORM preenche_itab_msg_erro USING itab_re_final-matnr

                                                itab_re_final-nrseqre

                                                 itab_re_final-nrre

                                                 space

                                                 text-259

                                                 '@AG@'.

          ENDIF.

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

          IF itab_re_final-codenq2 NE '80000' AND

             itab_re_final-codenq2 NE '80116' AND

             itab_re_final-codenq2 NE '81501' AND

             NOT itab_re_final-codenq3 IS INITIAL.

            DELETE itab_re_final.

            PERFORM preenche_itab_msg_erro USING itab_re_final-matnr

                                                itab_re_final-nrseqre

                                                 itab_re_final-nrre

                                                 space

                                                 text-259

                                                 '@AG@'.

          ENDIF.

          IF itab_re_final-codenq3 NE '80000' AND

             itab_re_final-codenq3 NE '80116' AND

             itab_re_final-codenq3 NE '81501' AND

             NOT itab_re_final-codenq3 IS INITIAL.

            DELETE itab_re_final.

            PERFORM preenche_itab_msg_erro USING itab_re_final-matnr

                                                itab_re_final-nrseqre

                                                 itab_re_final-nrre

                                                 space

                                                 text-259

                                                 '@AG@'.

          ENDIF.

          IF itab_re_final-codenq4 NE '80000' AND

             itab_re_final-codenq4 NE '80116' AND

             itab_re_final-codenq4 NE '81501' AND

             NOT itab_re_final-codenq4 IS INITIAL.

            DELETE itab_re_final.

            PERFORM preenche_itab_msg_erro USING itab_re_final-matnr

                                                itab_re_final-nrseqre

                                                 itab_re_final-nrre

                                                 space

                                                 text-259

                                                 '@AG@'.

          ENDIF.

          IF itab_re_final-codenq5 NE '80000' AND

             itab_re_final-codenq5 NE '80116' AND

             itab_re_final-codenq5 NE '81501' AND

             NOT itab_re_final-codenq5 IS INITIAL.

            DELETE itab_re_final.

            PERFORM preenche_itab_msg_erro USING itab_re_final-matnr

                                                itab_re_final-nrseqre

                                                 itab_re_final-nrre

                                                 space

                                                 text-259

                                                 '@AG@'.

          ENDIF.

* << Fim da inclusão

          READ TABLE itab_zycit259

          WITH KEY nrseqre  = itab_re_final-nrseqre

                   vbeln_va = itab_re_final-vbeln_va

                   vbeln_vl = itab_re_final-vbeln_vl

                   posnl    = itab_re_final-posnl.

          IF sy-subrc EQ 0.

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

            UPDATE /pws/zycet002 SET staprop = 'I'

                WHERE nrseq = itab_det_exp_final-nrseq

                  AND vbeln_va = itab_det_exp_final-vbeln_va

                  AND vbeln_vl = itab_det_exp_final-vbeln_vl

                  AND posnl = itab_det_exp_final-posnl.

* << Fim da inclusão

            DELETE itab_re_final INDEX v_tabix.

          ENDIF.

        ENDLOOP.

      ENDIF.

      IF NOT itab_re_final[] IS INITIAL.

        IF /pws/zycit321-ltopc NE '1'.

          SELECT * FROM /pws/zycit281 INTO TABLE itab_zycit281

                 FOR ALL ENTRIES IN itab_re_final

                 WHERE matnr EQ itab_re_final-matnr.

          LOOP AT itab_zycit281.

...

 

...

                itab_zycet002-vrkme     TO itab_det_exp_final-meins   ,

                itab_zycet002-fkimg     TO itab_det_exp_final-qtd_iten,

                itab_re_final-waers     TO itab_det_exp_final-waersfob,

                itab_re_final-waers     TO itab_det_exp_final-waerscif,

                itab_re_final-vfob      TO itab_det_exp_final-vlfob   ,

                itab_re_final-waers     TO itab_det_exp_final-waersemb,

                itab_re_final-vfob      TO itab_det_exp_final-vlfobemb,

                itab_re_final-netpr     TO itab_det_exp_final-vlcif   ,

                v_nrre_temp             TO itab_det_exp_final-nrre    .

              itab_det_exp_final-waersfre = 'USD'.

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

              IF itab_det_exp_final-gewei IS INITIAL.

* << Fim da inclusão

              SELECT SINGLE * FROM mara

               INTO mara

                WHERE matnr EQ itab_re_final-matnr.

              MOVE mara-gewei TO itab_det_exp_final-gewei.

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

              ENDIF.

* << Fim da inclusão

              READ TABLE itab_mess_un WITH KEY meins =

                                               itab_det_exp_final-meins

                                      matnr = itab_det_exp_final-codmat.

...

 

...

                                           itab_det_exp_final-vlfob.

              PERFORM converter_moeda_exp USING

                                           itab_re_final-vlagente

                                           itab_det_exp_final-waersfob

                                           'USD'

                                           itab_det_exp_final-dtemb

                                       CHANGING

                                           itab_det_exp_final-vlcomis.

              itab_det_exp_final-waersfob = 'USD'.

              MOVE itab_zycet001-dtemb TO itab_det_exp_final-dtemb.

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

              IF itab_det_exp_final-j_1bnbm IS INITIAL.

* << Fim da inclusão

              SELECT SINGLE steuc

                  FROM marc INTO itab_det_exp_final-j_1bnbm

                  WHERE matnr EQ itab_det_exp_final-codmat.

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

              ENDIF.

* << Fim da inclusão

              itab_det_exp_final-qtd_ncm = itab_det_exp_final-qtd_iten.

              itab_det_exp_final-meins_ncm = itab_det_exp_final-meins.

              PERFORM converte_um_ncm USING itab_det_exp_final-codmat

                    CHANGING itab_det_exp_final-meins_ncm

...

 

...

          ENDLOOP.

        ENDIF.

      ENDIF.

    ENDLOOP.

    SORT itab_comp_vinc_final BY nrseqre nrseq vbeln_va vbeln_vf posnr

                                                        codmat codcomp.

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

       /pws/zycie258-tipo EQ 'N'.

      PERFORM seleciona_di3.

      PERFORM seleciona_di.

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

      SORT itab_dis BY dtdi.

* << Fim da exclusão

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

      SORT itab_dis BY dtdi nrdi adicao.

* << Fim da inclusão

      PERFORM vincula_di.

      PERFORM elimina_insumo_sdi.

    ELSE.

      PERFORM seleciona_nf3.

    ENDIF.

  ELSE.

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

       /pws/zycie258-tipo EQ 'N'.

      PERFORM seleciona_di3_l.

      PERFORM seleciona_di_l.

...

 

...

        FROM ( ( /pws/zycit003 AS a INNER JOIN /pws/zycit100 AS b

               ON  a~nrseq EQ b~nrseq

               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

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

              AND a~nrcarga EQ space

* << Fim da inclusão

              AND c~nrdi NE space.

  ENDIF.

  IF NOT itab_sel_di[] IS INITIAL.

    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_di_final_aux-nrseq    NE itab_det_exp_final-nrseq    OR

           itab_di_final_aux-nrseqc   NE itab_det_exp_final-nrseqc   OR

           itab_di_final_aux-codmat   NE itab_det_exp_final-codmat ).

                itab_di_final_aux-sdo_qtd  =

                     itab_di_final_aux-sdo_qtd + itab_di_final-qtd_vinc.

                MODIFY itab_di_final_aux.

              ENDIF.

            ENDLOOP.

            DELETE itab_di_final_aux INDEX v_tabix2.

            DELETE itab_di_final INDEX v_tabix2.

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

            itab_di_dele = itab_di_final.

            APPEND itab_di_dele.

* << Fim da inclusão

          ENDLOOP.

          DELETE itab_comp_vinc_final.

        ENDLOOP.

        DELETE itab_det_exp_final.

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

        itab_det_exp_dele = itab_det_exp_final.

        APPEND itab_det_exp_dele.

* << Fim da inclusão

      ENDLOOP.

      DELETE itab_resumo.

...

 

...

                 itab_di_final_aux-nrseq    NE itab_det_exp-nrseq    OR

                 itab_di_final_aux-nrseqc   NE itab_det_exp-nrseqc   OR

                 itab_di_final_aux-codmat   NE itab_det_exp-codmat ).

              itab_di_final_aux-sdo_qtd  =

                   itab_di_final_aux-sdo_qtd + itab_di_final-qtd_vinc.

              MODIFY itab_di_final_aux INDEX sy-tabix.

            ENDIF.

          ENDLOOP.

          DELETE itab_di_final_aux INDEX v_tabix2.

          DELETE itab_di_final INDEX v_tabix2.

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

          itab_di_dele = itab_di_final.

          APPEND itab_di_dele.

* << Fim da inclusão

        ENDLOOP.

        DELETE itab_comp_vinc_final.

      ENDLOOP.

      DELETE itab_det_exp_final WHERE nrseqre  = itab_det_exp-nrseqre

                                  AND codmat   = itab_det_exp-codmat

                                  AND nrseqc   = itab_det_exp-nrseqc

                                  AND vbeln_va = itab_det_exp-vbeln_va

                                  AND vbeln_vf = itab_det_exp-vbeln_vf

                                  AND posnr    = itab_det_exp-posnr.

      DELETE itab_det_exp.

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

      itab_det_exp_dele = itab_det_exp.

      APPEND itab_det_exp_dele.

* << Fim da inclusão

    ENDLOOP.

    LOOP AT itab_det_exp.

      v_qtd_iten  = v_qtd_iten + itab_det_exp-qtd_iten.

      v_vlfob     = v_vlfob + itab_det_exp-vlfob.

    ENDLOOP.

    itab_resumo-qtd_iten = v_qtd_iten.

    itab_resumo-vlfob = v_vlfob.

    MODIFY TABLE itab_resumo.

    /pws/zycie259d-qtd_iten = itab_resumo-qtd_iten.

    /pws/zycie259d-vlfob    = itab_resumo-vlfob.

...

 

...

               itab_di_final_aux-nrseq    NE itab_det_exp-nrseq    OR

               itab_di_final_aux-nrseqc   NE itab_det_exp-nrseqc   OR

               itab_di_final_aux-codmat   NE itab_det_exp-codmat ).

            itab_di_final_aux-sdo_qtd  =

                 itab_di_final_aux-sdo_qtd + itab_di_final-qtd_vinc.

            MODIFY itab_di_final_aux INDEX sy-tabix.

          ENDIF.

        ENDLOOP.

        DELETE itab_di_final_aux INDEX v_tabix2.

        DELETE itab_di_final INDEX v_tabix2.

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

        itab_di_dele = itab_di_final.

        APPEND itab_di_dele.

* << Fim da inclusão

      ENDLOOP.

      IF /pws/zycit321-it_ge IS INITIAL.

        DELETE itab_comp_vinc_final WHERE

                                      nrseqre  = itab_comp_vinc-nrseqre

                                   AND nrseq    = itab_comp_vinc-nrseq

                                   AND nrseqc   = itab_comp_vinc-nrseqc

                                   AND codmat   = itab_comp_vinc-codmat

                                 AND vbeln_va = itab_comp_vinc-vbeln_va

                                 AND vbeln_vf = itab_comp_vinc-vbeln_vf

                                   AND posnr    = itab_comp_vinc-posnr

...

 

...

  DELETE FROM /pws/zycit261 WHERE nrseqd EQ /pws/zycie258-nrseqd.

  DELETE FROM /pws/zycit260 WHERE nrseqd EQ /pws/zycie258-nrseqd.

  DELETE FROM /pws/zycit250 WHERE nrseqd EQ /pws/zycie258-nrseqd.

  COMMIT WORK.

  INSERT /pws/zycit434 FROM TABLE itab_zycit434.

  MODIFY /pws/zycit258 FROM /pws/zycie258.

  INSERT /pws/zycit259 FROM TABLE itab_det_exp_final.

  INSERT /pws/zycit261 FROM TABLE itab_comp_vinc_final.

  INSERT /pws/zycit260 FROM TABLE itab_di_final.

  INSERT /pws/zycit250 FROM TABLE itab_areas.

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

  LOOP AT itab_det_exp_final .

    IF NOT itab_det_exp_final-nrseqc IS INITIAL.

      UPDATE /pws/zycit373 SET staprop = 'I'

            WHERE doc_fat   EQ itab_det_exp_final-vbeln_vf

              AND it_docfat EQ itab_det_exp_final-posnr

              AND nrseq     EQ itab_det_exp_final-nrseqc.

    ELSEIF NOT itab_det_exp_final-nrseqre IS INITIAL.

      UPDATE /pws/zycet002 SET staprop = 'I'

          WHERE nrseq = itab_det_exp_final-nrseq

            AND vbeln_va = itab_det_exp_final-vbeln_va

            AND vbeln_vl = itab_det_exp_final-vbeln_vl

            AND posnl = itab_det_exp_final-posnl.

    ENDIF.

    DELETE itab_det_exp_dele

          WHERE nrseq    = itab_det_exp_final-nrseq

            AND nrseqc   = itab_det_exp_final-nrseqc

            AND vbeln_va = itab_det_exp_final-vbeln_va

            AND vbeln_vl = itab_det_exp_final-vbeln_vl

            AND posnr    = itab_det_exp_final-posnr

            AND posnl    = itab_det_exp_final-posnl.

  ENDLOOP.

  DELETE itab_det_exp_dele WHERE nrseqc EQ space

                             AND nrseqre EQ space.

  LOOP AT itab_det_exp_dele .

    IF NOT itab_det_exp_dele-nrseqc IS INITIAL.

      UPDATE /pws/zycit373 SET staprop = ' '

            WHERE doc_fat   EQ itab_det_exp_dele-vbeln_vf

              AND it_docfat EQ itab_det_exp_dele-posnr

              AND nrseq     EQ itab_det_exp_dele-nrseqc.

    ELSEIF NOT itab_det_exp_dele-nrseqre IS INITIAL.

      UPDATE /pws/zycet002 SET staprop = ' '

          WHERE nrseq = itab_det_exp_dele-nrseq

            AND vbeln_va = itab_det_exp_dele-vbeln_va

            AND vbeln_vl = itab_det_exp_dele-vbeln_vl

            AND posnl = itab_det_exp_dele-posnl.

    ENDIF.

  ENDLOOP.

  REFRESH itab_det_exp_dele.

  REFRESH itab_di_final_aux.

  itab_di_final_aux[] = itab_di_final[].

  SORT itab_di_dele  BY nrseqemb docnum ebeln ebelp.

  DELETE ADJACENT DUPLICATES FROM itab_di_dele

      COMPARING nrseqemb docnum ebeln ebelp.

  SORT itab_di_final BY nrseqemb docnum ebeln ebelp.

  DELETE ADJACENT DUPLICATES FROM itab_di_final_aux

    COMPARING nrseqemb docnum ebeln ebelp.

  LOOP AT itab_di_final_aux.

    IF  itab_di_final_aux-sdo_qtd <= 0.

      UPDATE /pws/zycit003 SET nrcarga = 'X'

                WHERE nrseq = itab_di_final_aux-nrseqemb

                  AND ebeln = itab_di_final_aux-ebeln

                  AND ebelp = itab_di_final_aux-ebelp.

      IF sy-subrc NE 0.

        UPDATE /pws/zycit279 SET esgotado = 'X'

                WHERE ebeln  = itab_di_final_aux-ebeln

                  AND ebelp  = itab_di_final_aux-ebelp

                  AND docnum = itab_di_final_aux-docnum.

      ENDIF.

    ELSE.

      UPDATE /pws/zycit003 SET nrcarga = ' '

                WHERE nrseq = itab_di_final_aux-nrseqemb

                  AND ebeln = itab_di_final_aux-ebeln

                  AND ebelp = itab_di_final_aux-ebelp.

      IF sy-subrc NE 0.

        UPDATE /pws/zycit279 SET esgotado = ' '

                WHERE ebeln  = itab_di_final_aux-ebeln

                  AND ebelp  = itab_di_final_aux-ebelp

                  AND docnum = itab_di_final_aux-docnum.

      ENDIF.

    ENDIF.

    DELETE itab_di_dele

                  WHERE nrseqemb = itab_di_final_aux-nrseqemb

                    AND ebeln    = itab_di_final_aux-ebeln

                    AND ebelp    = itab_di_final_aux-ebelp

                    AND docnum   = itab_di_final_aux-docnum.

  ENDLOOP.

  LOOP AT itab_di_dele.

    UPDATE /pws/zycit003 SET nrcarga = ' '

                  WHERE nrseq = itab_di_dele-nrseqemb

                    AND ebeln = itab_di_dele-ebeln

                    AND ebelp = itab_di_dele-ebelp.

    IF sy-subrc NE 0.

      UPDATE /pws/zycit279 SET esgotado = ' '

                            WHERE ebeln  = itab_di_dele-ebeln

                              AND ebelp  = itab_di_dele-ebelp

                              AND docnum = itab_di_dele-docnum.

    ENDIF.

  ENDLOOP.

  REFRESH itab_di_dele.

* << Fim da inclusão

  COMMIT WORK.

  IF sy-subrc EQ 0.

    pressed_tab_3c   = 'FS_CABEC3'.

    pressed_tab_3c_2 = 'FS_RESUMO3'.

    pressed_tab_3c_3 = 'FS_RES_IMP3'.

    pressed_tab_3c_4 = 'FS_VCP3'.

    dynpronr3c       = '0301'.

    dynpronr3c_2     = '0303'.

    dynpronr3c_3     = '0307'.

    dynpronr3c_4     = '0309'.

...

 

...

  ENDIF.

ENDFORM.

FORM elimina_nao_vinculados.

  DATA: BEGIN OF itab_comp_vinc_aux OCCURS 0.

          INCLUDE STRUCTURE /pws/zycie261.

  DATA: qtd_orig LIKE /pws/zycit245-qtd_tot,

        marc_cp(1)  TYPE c.

  DATA: END OF itab_comp_vinc_aux.

  LOOP AT itab_di_final WHERE v_sel EQ ' '.

    DELETE itab_di_final.

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

    itab_di_dele = itab_di_final.

    APPEND itab_di_dele.

* << Fim da inclusão

  ENDLOOP.

  LOOP AT itab_di WHERE v_sel EQ ' '.

    DELETE itab_di.

  ENDLOOP.

  itab_comp_vinc_aux[] = itab_comp_vinc_final[].

  SORT itab_comp_vinc_aux BY nrseqre nrseq nrseqc

          codmat vbeln_va vbeln_vf posnr.

  DELETE ADJACENT DUPLICATES FROM itab_comp_vinc_aux

                           COMPARING nrseqre nrseq nrseqc

                                  vbeln_va vbeln_vf posnr.

...

 

...

                        posnr    = itab_det_exp_final-posnr

                                               BINARY SEARCH.

    IF sy-subrc NE 0.

      DELETE itab_det_exp WHERE nrseqre  = itab_det_exp_final-nrseqre

                            AND codmat   = itab_det_exp_final-codmat

                            AND nrseqc   = itab_det_exp_final-nrseqc

                            AND vbeln_va = itab_det_exp_final-vbeln_va

                            AND vbeln_vf = itab_det_exp_final-vbeln_vf

                            AND posnr    = itab_det_exp_final-posnr.

      DELETE itab_det_exp_final.

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

      itab_det_exp_dele = itab_det_exp_final.

      APPEND itab_det_exp_dele.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

  PERFORM carrega_resumo_exportacao3.

ENDFORM.

FORM check_fields_screen_0307.

  LOOP AT tc_res_imp3-cols INTO wa_cols3.

    IF wa_cols3-screen-group1 NE 'NEX'.

      wa_cols3-screen-input = v_status3.

      MODIFY tc_res_imp3-cols FROM wa_cols3.

    ENDIF.

...

 

...

    IMPORTING

       answer                      = v_confirm2

    EXCEPTIONS

       text_not_found              = 1

       OTHERS                      = 2.

  IF v_confirm2 EQ '1'.

    DELETE FROM /pws/zycit258 WHERE nrseqd = /pws/zycie258-nrseqd.

    DELETE FROM /pws/zycit259 WHERE nrseqd = /pws/zycie258-nrseqd.

    DELETE FROM /pws/zycit260 WHERE nrseqd = /pws/zycie258-nrseqd.

    DELETE FROM /pws/zycit261 WHERE nrseqd = /pws/zycie258-nrseqd.

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

    LOOP AT itab_det_exp_final .

      IF NOT itab_det_exp_final-nrseqc IS INITIAL.

        UPDATE /pws/zycit373 SET staprop = ' '

              WHERE doc_fat   EQ itab_det_exp_final-vbeln_vf

                AND it_docfat EQ itab_det_exp_final-posnr

                AND nrseq     EQ itab_det_exp_final-nrseqc.

      ELSEIF NOT itab_det_exp_final-nrseqre IS INITIAL.

        UPDATE /pws/zycet002 SET staprop = ' '

            WHERE nrseq = itab_det_exp_final-nrseq

              AND vbeln_va = itab_det_exp_final-vbeln_va

              AND vbeln_vl = itab_det_exp_final-vbeln_vl

              AND posnl = itab_det_exp_final-posnl.

      ENDIF.

    ENDLOOP.

    LOOP AT itab_det_exp_dele .

      IF NOT itab_det_exp_dele-nrseqc IS INITIAL.

        UPDATE /pws/zycit373 SET staprop = ' '

              WHERE doc_fat   EQ itab_det_exp_dele-vbeln_vf

                AND it_docfat EQ itab_det_exp_dele-posnr

                AND nrseq     EQ itab_det_exp_dele-nrseqc.

      ELSEIF NOT itab_det_exp_dele-nrseqre IS INITIAL.

        UPDATE /pws/zycet002 SET staprop = ' '

            WHERE nrseq = itab_det_exp_dele-nrseq

              AND vbeln_va = itab_det_exp_dele-vbeln_va

              AND vbeln_vl = itab_det_exp_dele-vbeln_vl

              AND posnl = itab_det_exp_dele-posnl.

      ENDIF.

    ENDLOOP.

    REFRESH itab_det_exp_dele.

    SORT itab_di_final BY nrseqemb docnum ebeln ebelp.

    SORT itab_di_dele  BY nrseqemb docnum ebeln ebelp.

    DELETE ADJACENT DUPLICATES FROM itab_di_dele

        COMPARING nrseqemb docnum ebeln ebelp.

    DELETE ADJACENT DUPLICATES FROM itab_di_final

        COMPARING nrseqemb docnum ebeln ebelp.

    LOOP AT itab_di_final.

      UPDATE /pws/zycit003 SET nrcarga = ' '

                    WHERE nrseq = itab_di_final-nrseqemb

                      AND ebeln = itab_di_final-ebeln

                      AND ebelp = itab_di_final-ebelp.

      IF sy-subrc NE 0.

        UPDATE /pws/zycit279 SET esgotado = ' '

                              WHERE ebeln  = itab_di_final-ebeln

                                AND ebelp  = itab_di_final-ebelp

                                AND docnum = itab_di_final-docnum.

      ENDIF.

    ENDLOOP.

    LOOP AT itab_di_dele.

      UPDATE /pws/zycit003 SET nrcarga = ' '

                    WHERE nrseq = itab_di_dele-nrseqemb

                      AND ebeln = itab_di_dele-ebeln

                      AND ebelp = itab_di_dele-ebelp.

      IF sy-subrc NE 0.

        UPDATE /pws/zycit279 SET esgotado = ' '

                              WHERE ebeln  = itab_di_dele-ebeln

                                AND ebelp  = itab_di_dele-ebelp

                                AND docnum = itab_di_dele-docnum.

      ENDIF.

    ENDLOOP.

    REFRESH itab_di_dele.

* << Fim da inclusão

    COMMIT WORK.

    PERFORM limpa_fields3.

    LEAVE TO SCREEN 0003.

  ENDIF.

ENDFORM.

FORM trata_sele_0301.

  CLEAR: v_campo, v_valor, v_linha, v_pos.

  GET CURSOR FIELD v_campo VALUE v_valor LINE v_linha.

  IF v_campo EQ '/PWS/ZYCIE258-ATOCON' AND

     NOT v_valor IS INITIAL.

...

 

...

    DELETE itab_vbfa_1

        WHERE ( vbtyp_v NE 'C' AND vbtyp_v NE 'J' )

          OR   vbtyp_n NE 'M'.

  ENDIF.

  itab_vbfa_aux[] = itab_vbfa_1[].

  DELETE itab_vbfa_aux WHERE vbtyp_v EQ 'C'.

  REFRESH itab_zycit259_d.

  IF NOT itab_vbfa_aux[] IS INITIAL.

    SELECT * FROM /pws/zycit259 INTO TABLE itab_zycit259_d

       FOR ALL ENTRIES IN itab_vbfa_aux                 "#EC CI_NOFIRST

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

        WHERE nrseqd NE /pws/zycie258-nrseqd

* << Fim da exclusão

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

        WHERE nrseqd  NE /pws/zycie258-nrseqd

          AND nrseqre EQ space

          AND nrseqc  EQ space

* << Fim da inclusão

          AND vbeln_vf EQ itab_vbfa_aux-vbeln

          AND posnr    EQ itab_vbfa_aux-posnn.

  ENDIF.

  LOOP AT itab_zycit259_d.

    DELETE itab_nota_c WHERE refkey EQ itab_zycit259_d-vbeln_vf

                         AND refitm EQ itab_zycit259_d-posnr.

    DELETE itab_vbfa_aux

      WHERE vbeln EQ itab_zycit259_d-vbeln_vf

        AND posnn EQ itab_zycit259_d-posnr.

    .

...

 

...

    SELECT a~mandt a~nrseq a~docnum a~itmnum a~matnr

           a~quant a~nfnum a~series a~qtd_iten a~qtd_apro

           a~qtd_saldo a~doc_ven a~it_docven a~doc_fat

           a~it_docfat a~fornec a~it_fornec a~vl_itnf

           a~flag a~dtnf

    FROM ( /pws/zycit373 AS a INNER JOIN /pws/zycit371 AS b

           ON a~nrseq EQ b~nrseqd )

        INTO TABLE itab_zycit373

       WHERE a~dtnf >= p_dtexp1

         AND a~dtnf <= p_dtexp2

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

         AND staprop EQ space

* << Fim da inclusão

         AND a~matnr IN p_matnr

         AND b~nratoc EQ space.                         "#EC CI_NOFIELD

  ELSE.

    IF NOT itab_zycit281[] IS INITIAL.

      SELECT * FROM /pws/zycit373 INTO TABLE itab_zycit373

         FOR ALL ENTRIES IN itab_zycit281

         WHERE dtnf >= p_dtexp1

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

           AND staprop EQ space

* << Fim da inclusão

           AND dtnf <= p_dtexp2

           AND matnr EQ itab_zycit281-matnr.            "#EC CI_NOFIELD

    ELSE.

      EXIT.

    ENDIF.

  ENDIF.

  REFRESH itab_zycit259_dl.

  IF NOT itab_zycit373[] IS INITIAL.

    SELECT nrseqc vbeln_vf posnr  FROM /pws/zycit259

      INTO TABLE itab_zycit259_dl                       "#EC CI_NOFIRST

        FOR ALL ENTRIES IN itab_zycit373

        WHERE nrseqc   EQ itab_zycit373-nrseq

          AND vbeln_vf EQ itab_zycit373-doc_fat

          AND posnr    EQ itab_zycit373-it_docfat.

    LOOP AT itab_zycit259_dl.

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

      UPDATE /pws/zycit373 SET staprop = 'I'

        WHERE doc_fat   EQ itab_zycit259_dl-vbeln_vf

          AND it_docfat EQ itab_zycit259_dl-posnr

          AND nrseq     EQ itab_zycit259_dl-nrseqc.

* << Fim da inclusão

      DELETE itab_zycit373

          WHERE nrseq     EQ itab_zycit259_dl-nrseqc

            AND doc_fat   EQ itab_zycit259_dl-vbeln_vf

            AND it_docfat EQ itab_zycit259_dl-posnr.

    ENDLOOP.

  ENDIF.

  IF NOT itab_zycit373[] IS INITIAL.

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

      REFRESH: itab_vbrp.

      SELECT vbeln posnr ntgew brgew gewei mvgr1 FROM vbrp

...

 

...

    itab_zycit100-nrseq           TO itab_dis-nrseqemb    ,

    itab_zycit100-adicao          TO itab_dis-adicao      ,

    itab_ekpo-ebeln               TO itab_dis-ebeln       ,

    itab_ekpo-ebelp               TO itab_dis-ebelp       ,

    itab_zycit003-meins           TO itab_dis-meins       ,

    itab_zycit003-qtd_iten        TO itab_dis-qtd_di      ,

    itab_zycit003-qtd_iten        TO itab_dis-sdo_qtd     ,

    itab_zycit003-j_1bnbm         TO itab_dis-j_1bnbm     ,

    itab_zycit085-dtdesemb        TO itab_dis-dtdesemb    ,

    itab_zycit003-gewei           TO itab_dis-gewei       ,

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

    itab_zycit003-ntgew           TO itab_dis-ntgew_di    ,

* << Fim da inclusão

    itab_zycit003-werks           TO itab_dis-werks       ,

    itab_zycit003-ntgew           TO itab_dis-ntgew       ,

    itab_zycit003-waers           TO itab_dis-waers       ,

    itab_zycit003-netpr           TO itab_dis-netpr       ,

    itab_zycit003-advalii         TO itab_dis-i_txii      ,

    itab_zycit100-advalpis        TO itab_dis-pis         ,

    itab_zycit100-advalcofins     TO itab_dis-cofins      ,

    itab_zycit003-advalipi        TO itab_dis-i_txipi     ,

    itab_zycit003-advalicms       TO itab_dis-i_txicms    ,

    itab_zycit003-waers_real      TO itab_dis-i_waerscifme,

...

 

...

    IF sy-subrc NE 0.

      SELECT SINGLE *

        FROM mara INTO itab_mara

        WHERE matnr = itab_dis-codcomp.

      mara = itab_mara.

      APPEND itab_mara.

    ENDIF.

    itab_dis-gewei = mara-gewei.

    itab_dis-valor_u = itab_zycit100-vlfob /

                                    itab_zycit003-qtd_iten.

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

    itab_dis-vl_di_f =

    itab_dis-vl_di = itab_zycit100-vlfob.

    PERFORM retorna_decimais USING itab_dis-waers

                          CHANGING itab_dis-vl_di.

    PERFORM valor_converte_imp USING   itab_dis-waers

                                       'USD'

                                       itab_zycit085-dttax

                            CHANGING itab_dis-vl_di_f.

* << Fim da inclusão

    PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                       'USD'

                                       itab_zycit085-dttax

                            CHANGING itab_dis-vlfrete.

    PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                       'USD'

                                       itab_zycit085-dttax

                              CHANGING itab_dis-vlseg.

    itab_dis-vlfrete = itab_dis-vlfrete /

                            itab_zycit003-qtd_iten.

...

 

...

    itab_zycit279-meins           TO itab_dis-meins       ,

    itab_zycit279-menge           TO itab_dis-qtd_di      ,

    itab_zycit279-nfnum           TO itab_dis-nfnum       ,

    itab_zycit279-serie           TO itab_dis-serie       ,

    itab_zycit279-dtnf            TO itab_dis-dtnf       ,

    itab_zycit279-menge           TO itab_dis-sdo_qtd     ,

    itab_zycit279-j_1bnbm         TO itab_dis-j_1bnbm     ,

    itab_zycit279-dtdesemb        TO itab_dis-dtdesemb    ,

    itab_zycit279-gewei           TO itab_dis-gewei       ,

    itab_zycit279-ntgew           TO itab_dis-ntgew       ,

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

    itab_zycit279-ntgew           TO itab_dis-ntgew_di    ,

* << Fim da inclusão

    itab_zycit279-waers           TO itab_dis-waers       ,

    itab_zycit279-netpr           TO itab_dis-netpr       ,

    itab_zycit279-i_txii          TO itab_dis-i_txii      ,

    itab_zycit279-pis             TO itab_dis-pis         ,

    itab_zycit279-cofins          TO itab_dis-cofins      ,

    itab_zycit279-i_txipi         TO itab_dis-i_txipi     ,

    itab_zycit279-i_txicms        TO itab_dis-i_txicms    ,

    itab_zycit279-waers           TO itab_dis-i_waerscifme,

    itab_zycit279-i_txmoeda       TO itab_dis-i_txmoeda   ,

    itab_zycit279-waers           TO itab_dis-i_waerscifmi,

...

 

...

    itab_zycit279-vlfrete         TO itab_dis-vlfrete     ,

    itab_zycit279-vlseg           TO itab_dis-vlseg       .

    READ TABLE itab_mara INTO mara WITH KEY matnr = itab_dis-codcomp.

    IF sy-subrc NE 0.

      SELECT SINGLE *

        FROM mara INTO mara

        WHERE matnr = itab_dis-codcomp.

      itab_mara = mara.

      APPEND itab_mara.

    ENDIF.

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

    itab_dis-vl_di_f =

    itab_dis-vl_di = itab_zycit279-vltot.

    PERFORM trata_decimais USING itab_dis-waers

                        CHANGING itab_dis-vl_di_f.

    PERFORM valor_converte_imp USING itab_dis-waers

                                       'USD'

                                       itab_dis-dtdi

                              CHANGING itab_dis-vl_di_f.

* << Fim da inclusão

    itab_dis-gewei = mara-gewei.

    itab_dis-valor_u = itab_zycit279-vltot /

                            itab_zycit279-qtd_ncm.

    itab_dis-vlfrete = itab_dis-vlfrete /

                            itab_zycit279-qtd_ncm.

    itab_dis-vlseg   = itab_dis-vlseg /

                            itab_zycit279-qtd_ncm.

    CHECK itab_dis-valor_u > 0.

    itab_dis-i_vlcif_me = itab_dis-valor_u.

    itab_dis-i_vlcif_mi =

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064X01

 

...

        waersfob  TYPE /pws/zycie259-waersfob,

        meins     TYPE /pws/zycie259-meins   ,

        marc_l(1) TYPE c                ,

      END OF itab_resumo.

DATA: BEGIN OF itab_re_final OCCURS 0.

DATA: nrseqre     LIKE /pws/zycet116-nrseqre ,

      nrre        LIKE /pws/zycet116-nrre    ,

      dtincl      LIKE /pws/zycet116-dtincl  ,

      agrupado    LIKE /pws/zycet116-agrupado,

      codenq1     LIKE /pws/zycet116-codenq1 ,

* >> Início da inclusão:

      codenq2     LIKE /pws/zycet116-codenq2 ,

      codenq3     LIKE /pws/zycet116-codenq3 ,

      codenq4     LIKE /pws/zycet116-codenq4 ,

      codenq5     LIKE /pws/zycet116-codenq5 ,

* << Fim da inclusão

      matnr       LIKE /pws/zycet118-matnr   ,

      vbeln_va    LIKE /pws/zycet118-vbeln_va,

      vbeln_vf    LIKE /pws/zycet118-vbeln_vf,

      posnr       LIKE /pws/zycet118-posnr   ,

      vbeln_vl    LIKE /pws/zycet118-vbeln_vl,

      posnl       LIKE /pws/zycet118-posnl   ,

      gewei       LIKE /pws/zycet118-gewei   ,

      ntgew       LIKE /pws/zycet118-ntgew   ,

      brgew       LIKE /pws/zycet118-brgew   ,

      waers       LIKE /pws/zycet118-waers   ,

...

 

...

DATA: END OF itab_zycet118           .

DATA: BEGIN OF itab_zycet092 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet092     .

DATA: END OF itab_zycet092           .

DATA: BEGIN OF itab_zycet066 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet066     .

DATA: END OF itab_zycet066           .

DATA: BEGIN OF itab_di_final OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie260.

DATA: END OF itab_di_final.

* >> Início da inclusão:

DATA: BEGIN OF itab_di_dele OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie260.

DATA: END OF itab_di_dele.

* << Fim da inclusão

DATA : BEGIN OF itab_zycit468 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit468.

DATA : END   OF itab_zycit468.

DATA : BEGIN OF itab_zycit371 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit371.

DATA : END   OF itab_zycit371.

DATA : BEGIN OF itab_zycit372 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit372.

DATA : END   OF itab_zycit372.

DATA : BEGIN OF itab_zycit373 OCCURS 0.

...

 

...

DATA: BEGIN OF itab_det_exp_final OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie259.

DATA: it_docfat  LIKE /pws/zycit373-it_docfat,

      fornec     LIKE /pws/zycit373-fornec   ,

      it_fornec  LIKE /pws/zycit373-it_fornec,

      docnum     LIKE /pws/zycit373-docnum   ,

      itmnum     LIKE /pws/zycit373-itmnum   ,

      matnr      LIKE /pws/zycit372-matnr    .

DATA: marcd_l(1) TYPE c.

DATA: END OF itab_det_exp_final.

* >> Início da inclusão:

DATA: itab_det_exp_dele LIKE itab_det_exp_final

                                      OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

DATA: itab_zycit423 TYPE /pws/zycit423 OCCURS 0 WITH HEADER LINE,

      itab_zycit422 TYPE /pws/zycit422 OCCURS 0 WITH HEADER LINE,

      itab_zycit421 TYPE /pws/zycit421 OCCURS 0 WITH HEADER LINE,

      itab_mvke     TYPE mvke OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF itab_names OCCURS 0,

        werks TYPE /pws/zycit434-werks,

        name1 TYPE /pws/zycit434-name1.

DATA: END OF itab_names.

DATA: BEGIN OF itab_zycit259 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit259.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCRR002

 

REPORT /pws/zycrr002 MESSAGE-ID /pws/zycrm.

INCLUDE: /pws/zycri004,

         /pws/zycri003,

         /pws/zycri002.

* >> Início da exclusão:

TABLES: /pws/zycrt003.

* << Fim da exclusão

* >> Início da inclusão:

TABLES: /pws/zycrt003,

        tcurx.

* << Fim da inclusão

TYPES: BEGIN OF s_cabecalho.

TYPES: empresa      TYPE t001-bukrs,

       desc_emp     TYPE t001-butxt,

       local_neg    TYPE t001w-j_1bbranch,

       cnpjmask(18) TYPE c,

       sy_datlo(25) TYPE c,

       anexo        TYPE /pws/zycit476-anexo,

       pagina       TYPE i,

       p_proc1      TYPE /pws/zycrt003-name,

       p_proc2      TYPE /pws/zycrt003-name.

...

 

...

DATA: list  TYPE vrm_values,

      value LIKE LINE OF list.

DATA: v_total    TYPE /pws/zycit259-vlcif,

      v_meins    TYPE /pws/zycit259-meins,

      v_meinss   TYPE /pws/zycit259-meins,

      v_peso     TYPE /pws/zycit259-ntgew,

      v_quant    TYPE /pws/zycit259-qtd_iten,

      v_vlemb    TYPE /pws/zycit259-vlfob,

      v_totncm   TYPE i,

      v_ncm      TYPE /pws/zycit259-j_1bnbm,

* >> Início da inclusão:

      v_waers TYPE /pws/zycit259-waersemb,

      v_waerst TYPE /pws/zycit259-waersemb,

* << Fim da inclusão

      v_descrncm(200) TYPE c.

DATA: BEGIN OF v_tab OCCURS 200,

        value(40) TYPE c,

      END OF v_tab.

DATA: BEGIN OF f_tab OCCURS 10.

        INCLUDE STRUCTURE help_value.

DATA: END OF f_tab.

DATA: wa_cabecalho  TYPE s_cabecalho,

      it_itens     TYPE t_itens.

DATA: wa_gen_param     TYPE /pws/zycrt012,

...

 

...

                    itab_t604n-text4

                    itab_t604n-text5

                    INTO wa_itens-descr_ncm SEPARATED BY space.

        INSERT wa_itens INTO p_t_itens INDEX v_tabix.

      ENDIF.

      IF v_tabix NE 1.

        MOVE: v_ncm          TO wa_itens-j_1bnbmtot,

              'X'            TO wa_itens-subtot    ,

              v_peso         TO wa_itens-ntgewtot  ,

              v_total        TO wa_itens-vl_ciftot ,

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

              wa_itens-waersfob TO v_waerst,

              v_waers    TO wa_itens-waersfob,

* << Fim da inclusão

              v_vlemb        TO wa_itens-vl_fobtot ,

              wa_itens-meins TO v_meinss           ,

              v_meins        TO wa_itens-meins     ,

              v_meinss       TO v_meins            ,

              v_quant        TO wa_itens-qtd_tot   ,

              v_descrncm     TO wa_itens-descr_ncmt.

        INSERT wa_itens INTO p_t_itens INDEX v_tabix.

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

        wa_itens-waersfob = v_waerst.

* << Fim da inclusão

        v_marc = 'X'.

      ENDIF.

      CLEAR: v_ncm,

             v_peso,

             v_total,

             v_vlemb,

             v_quant,

             v_descrncm.

    ENDON.

    IF v_marc IS INITIAL.

      v_meins = wa_itens-meins.

    ELSE.

      CLEAR v_marc.

    ENDIF.

    MOVE: wa_itens-j_1bnbm TO v_ncm,

          wa_itens-descr_ncm TO v_descrncm.

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

    PERFORM retorna_decimais USING wa_itens-waersfob

                          CHANGING wa_itens-vl_fob.

* << Fim da inclusão

    ADD: wa_itens-ntgew TO v_peso,

         wa_itens-vl_cif TO v_total,

         wa_itens-vl_fob TO v_vlemb,

         wa_itens-qtd_iten TO v_quant.

  ENDLOOP.

  DESCRIBE TABLE p_t_itens LINES v_line.

  ADD 1 TO v_line.

  MOVE: v_ncm    TO wa_itens-j_1bnbmtot,

        'X'      TO wa_itens-subtot,

        v_peso   TO wa_itens-ntgewtot,

...

 

...

                  CHANGING

                     filled_section_height

                     it_section_content[]

                     subrc.

          IF subrc = 0.

            it_iteanexo[] = it_section_content[].

            READ TABLE p_t_items INTO wa_iteanexo INDEX current_item.

            IF wa_iteanexo-subtot IS INITIAL.

              wa_totanexo-peso = wa_totanexo-peso + wa_iteanexo-ntgew.

              wa_totanexo-qtd = wa_totanexo-qtd + wa_iteanexo-qtd_iten.

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

              PERFORM retorna_decimais USING wa_iteanexo-waersfob

                                    CHANGING wa_iteanexo-vl_fob.

* << Fim da inclusão

              wa_totanexo-fob = wa_totanexo-fob + wa_iteanexo-vl_fob.

              wa_totanexo-cif = wa_totanexo-cif + wa_iteanexo-vl_cif.

              wa_total-totpeso =

                              wa_total-totpeso + wa_iteanexo-ntgew.

              wa_total-totqtd =

                             wa_total-totqtd + wa_iteanexo-qtd_iten.

              wa_total-totfob =

                              wa_total-totfob + wa_iteanexo-vl_fob.

              wa_total-totcif =

                              wa_total-totcif + wa_iteanexo-vl_cif.

...

 

...

            fields                    = f_tab

       EXCEPTIONS

            field_not_in_ddic         = 1

            more_then_one_selectfield = 2

            no_selectfield            = 3

            OTHERS                    = 4.

  IF sy-subrc EQ 0.

    MOVE value TO p_proc.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

FORM retorna_decimais  USING    p_moeda

                       CHANGING p_valor.

  SELECT SINGLE * FROM tcurx WHERE currkey = p_moeda.

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

  ENDIF.

  p_valor = p_valor / ( 10 ** ( tcurx-currdec - 2 ) ).

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/ZYCRR004

 

...

    ADD v_linhacab TO current_row.

    PERFORM append_new_section

            USING

               'ITENS'

               current_row

            CHANGING

               p_t_excel_content[].

    section_rows = current_row.

    CLEAR: v_linha, p_header-qtd_tot,

            p_header-peso_tot, p_header-vltot.

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

    REFRESH: itab_qtd.

* << Fim da exclusão

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

    REFRESH: itab_qtd, itab_qtd_umb, itab_qtd_ncm.

* << Fim da inclusão

    DO.

      REFRESH it_section_content[].

      CLEAR wa_itens.

      ADD 1 TO current_item.

      READ TABLE p_t_items INTO wa_itens INDEX current_item.

      IF sy-subrc NE 0.

        v_completo = 'X'.

        EXIT.

      ENDIF.

      IF v_linha EQ 19.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCRR005

 

...

    ADD v_linhacab TO current_row.

    PERFORM append_new_section

            USING

               'ITENS'

               current_row

            CHANGING

               p_t_excel_content[].

    section_rows = current_row.

    CLEAR: v_linha, p_header-qtd_tot,

            p_header-peso_tot, p_header-vltot.

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

    REFRESH: itab_qtd, itab_qtd_umb, itab_qtd_ncm.

* << Fim da inclusão

    DO.

      REFRESH it_section_content[].

      CLEAR wa_itens.

      ADD 1 TO current_item.

      READ TABLE p_t_items INTO wa_itens INDEX current_item.

      IF sy-subrc NE 0.

        v_completo = 'X'.

        EXIT.

      ENDIF.

      PERFORM fill_items_fields

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCRR006

 

REPORT /pws/zycrr006 MESSAGE-ID /pws/zycrm.

INCLUDE: /pws/zycri004,

         /pws/zycri003,

         /pws/zycri002.

TABLES: /pws/zycrt003,

* >> Início da inclusão:

        tcurx,

* << Fim da inclusão

        /pws/zycit476.

TYPES: BEGIN OF s_cabecalho.

TYPES: empresa      TYPE t001-bukrs,

       desc_emp     TYPE t001-butxt,

       local_neg    TYPE t001w-j_1bbranch,

       sy_datlo(25) TYPE c,

       anexo        TYPE i,

       pagina       TYPE i,

       p_proc1      TYPE /pws/zycrt003-name,

       p_proc2      TYPE /pws/zycrt003-name.

...

 

...

       gewei      TYPE /pws/zycit260-gewei,

       ntgew      TYPE /pws/zycit260-ntgew,

       qtd_vinc   TYPE /pws/zycit260-qtd_vinc,

       meins      TYPE /pws/zycit260-meins,

       vlfobt     TYPE /pws/zycit260-vlfob_t,

       netpr      TYPE /pws/zycit260-netpr,

       waers      TYPE /pws/zycit260-waers,

       vlfob      TYPE /pws/zycit260-vlfob,

       grupo      TYPE /pws/zycit260-grupo,

       desc_g     TYPE /pws/zycit260-desc_g,

* >> Início da inclusão:

       qtd_di  TYPE /pws/zycit260-qtd_di,

       vl_di   TYPE /pws/zycit260-vl_di,

       vl_di_f TYPE /pws/zycit260-vl_di_f,

       ntgew_di TYPE /pws/zycit260-ntgew_di,

       ebeln TYPE /pws/zycit260-ebeln,

       ebelp TYPE /pws/zycit260-ebelp,

* << Fim da inclusão

       maktx(200) TYPE c,

       subtot     TYPE c,

       j_1bnbmtot TYPE /pws/zycit260-j_1bnbm,

       ntgewtot   TYPE /pws/zycit260-ntgew,

       qtd_tot    TYPE /pws/zycit260-qtd_vinc,

       vl_fembtot TYPE /pws/zycit260-vlfob,

       vl_fobtot  TYPE /pws/zycit260-vlfob_t,

       diadic(14) TYPE c,

       descr_ncmt(200) TYPE c,

       descr_ncm(200)  TYPE c.

...

 

...

DATA: list  TYPE vrm_values,

      value LIKE LINE OF list.

DATA: v_total    TYPE /pws/zycit260-vlfob_t,

      v_meins    TYPE /pws/zycit260-meins,

      v_meinss   TYPE /pws/zycit260-meins,

      v_peso     TYPE /pws/zycit260-ntgew,

      v_quant    TYPE /pws/zycit260-qtd_vinc,

      v_vlemb    TYPE /pws/zycit260-vlfob,

      v_totncm   TYPE i,

      v_ncm      TYPE /pws/zycit259-j_1bnbm,

* >> Início da inclusão:

      v_waerst   TYPE /pws/zycit260-waers  ,

* << Fim da inclusão

      v_waers    TYPE /pws/zycit260-waers  ,

      v_descrncm(200) TYPE c.

DATA: BEGIN OF v_tab OCCURS 200,

        value(40) TYPE c,

      END OF v_tab.

DATA: BEGIN OF f_tab OCCURS 10.

        INCLUDE STRUCTURE help_value.

DATA: END OF f_tab.

DATA: wa_cabecalho  TYPE s_cabecalho,

      it_itens     TYPE t_itens.

...

 

...

  CALL FUNCTION '/PWS/ZYCR_DATA_EXTENSO'

       EXPORTING

            data         = sy-datlo

            spras        = 'P'

       IMPORTING

            data_extenso = p_cabecalho-sy_datlo.

  p_cabecalho-p_proc1 = p_proc1.

  p_cabecalho-p_proc2 = p_proc2.

  SELECT nrdi reg_di adicao dtdi j_1bnbm gewei ntgew qtd_vinc

         meins vlfob_t netpr waers vlfob grupo desc_g

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

         qtd_di vl_di vl_di_f ntgew_di ebeln ebelp

* << Fim da inclusão

         FROM /pws/zycit260 INTO TABLE p_t_itens

         WHERE nrseqd EQ p_cabecalho-zycit244-nrcompos.

  it_itens[] = p_t_itens[].

  SELECT *

  FROM t604n

  INTO TABLE itab_t604n

  FOR ALL ENTRIES IN it_itens

  WHERE steuc = it_itens-j_1bnbm

  AND spras = sy-langu.

  REFRESH p_t_itens.

  LOOP AT it_itens.

    CONCATENATE it_itens-reg_di it_itens-adicao INTO it_itens-diadic.

    READ TABLE itab_t604n WITH KEY steuc = it_itens-j_1bnbm

                                   spras = sy-langu.

    CONCATENATE itab_t604n-text1 itab_t604n-text2

                itab_t604n-text3 itab_t604n-text4

                itab_t604n-text5  INTO it_itens-maktx SEPARATED BY space

.

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

    READ TABLE p_t_itens WITH KEY diadic = it_itens-diadic

                                  ebeln  = it_itens-ebeln

                                  ebelp  = it_itens-ebelp

        TRANSPORTING NO FIELDS.

    IF sy-subrc EQ 0.

      CLEAR: it_itens-vl_di, it_itens-vl_di_f, it_itens-qtd_di,

             it_itens-ntgew_di.

    ENDIF.

    COLLECT it_itens INTO p_t_itens.

  ENDLOOP.

  REFRESH: it_itens.

  it_itens[] = p_t_itens[].

  REFRESH: p_t_itens.

  LOOP AT it_itens.

    MOVE: it_itens-qtd_vinc TO v_arred          ,

          v_arred           TO it_itens-qtd_vinc.

    it_itens-ntgew = it_itens-qtd_vinc *

          ( it_itens-ntgew_di / it_itens-qtd_di ).

    MOVE: it_itens-ntgew    TO v_arred          ,

          v_arred           TO it_itens-ntgew   .

    it_itens-vlfobt = it_itens-qtd_vinc *

          ( it_itens-vl_di / it_itens-qtd_di ).

    it_itens-vlfob = it_itens-qtd_vinc *

          ( it_itens-vl_di_f / it_itens-qtd_di ).

    CLEAR: it_itens-ebeln, it_itens-ebelp.

* << Fim da inclusão

    COLLECT it_itens INTO p_t_itens.

  ENDLOOP.

  SORT p_t_itens BY j_1bnbm.

  LOOP AT p_t_itens INTO wa_itens.

    MOVE: wa_itens-ntgew    TO v_arred          ,

          v_arred           TO wa_itens-ntgew   ,

          wa_itens-qtd_vinc TO v_arred          ,

          v_arred           TO wa_itens-qtd_vinc.

    MODIFY p_t_itens FROM wa_itens INDEX sy-tabix.

    v_tabix = sy-tabix.

...

 

...

                    itab_t604n-text5

                    INTO wa_itens-descr_ncm SEPARATED BY space.

        INSERT wa_itens INTO p_t_itens INDEX v_tabix.

      ENDIF.

      IF v_tabix NE 1.

        MOVE: v_ncm          TO wa_itens-j_1bnbmtot,

              'X'            TO wa_itens-subtot    ,

              v_peso         TO wa_itens-ntgewtot  ,

              v_total        TO wa_itens-vl_fobtot ,

              v_vlemb        TO wa_itens-vl_fembtot,

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

              wa_itens-waers TO v_waerst           ,

* << Fim da inclusão

              v_waers        TO wa_itens-waers     ,

              wa_itens-meins TO v_meinss           ,

              v_meins        TO wa_itens-meins     ,

              v_meinss       TO v_meins            ,

              v_quant        TO wa_itens-qtd_tot   ,

              v_descrncm     TO wa_itens-descr_ncmt.

        INSERT wa_itens INTO p_t_itens INDEX v_tabix.

        v_marc = 'X'.

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

        MOVE: v_waerst TO wa_itens-waers.

* << Fim da inclusão

      ENDIF.

      CLEAR: v_ncm,

             v_peso,

             v_total,

             v_vlemb,

             v_waers,

             v_quant,

             v_descrncm.

    ENDON.

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

    PERFORM retorna_decimais USING wa_itens-waers

                       CHANGING wa_itens-vlfobt.

    IF v_waers IS INITIAL.

      v_waers = wa_itens-waers.

    ELSEIF v_waers NE wa_itens-waers.

      v_waers = 'USD'.

    ENDIF.

* << Fim da inclusão

    MOVE: wa_itens-j_1bnbm TO v_ncm,

          wa_itens-waers   TO v_waers,

          wa_itens-descr_ncm TO v_descrncm.

    ADD: wa_itens-ntgew TO v_peso,

         wa_itens-vlfob TO v_total,

         wa_itens-vlfobt TO v_vlemb,

         wa_itens-qtd_vinc TO v_quant.

    IF v_marc IS INITIAL.

      v_meins = wa_itens-meins.

    ELSE.

...

 

...

                  CHANGING

                     filled_section_height

                     it_section_content[]

                     subrc.

          IF subrc = 0.

            it_iteanexo[] = it_section_content[].

            READ TABLE p_t_items INTO wa_iteanexo INDEX current_item.

            IF wa_iteanexo-subtot IS INITIAL.

              wa_totanexo-peso = wa_totanexo-peso + wa_iteanexo-ntgew .

              wa_totanexo-qtd = wa_totanexo-qtd + wa_iteanexo-qtd_vinc.

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

              PERFORM retorna_decimais USING wa_iteanexo-waers

                                    CHANGING wa_iteanexo-vlfobt.

* << Fim da inclusão

              wa_totanexo-fob = wa_totanexo-fob + wa_iteanexo-vlfob   .

              wa_totanexo-fobt = wa_totanexo-fobt + wa_iteanexo-vlfobt.

              wa_total-totpeso =

                              wa_total-totpeso + wa_iteanexo-ntgew.

              wa_total-totqtd =

                              wa_total-totqtd + wa_iteanexo-qtd_vinc.

              wa_total-totfemb =

                              wa_total-totfemb + wa_iteanexo-vlfob.

              wa_total-totfob =

                              wa_total-totfob + wa_iteanexo-vlfobt.

...

 

...

            tabname      = '/PWS/ZYCRT003'

       IMPORTING

            select_value = value

       TABLES

            valuetab     = v_tab

            fields       = f_tab.

  IF sy-subrc EQ 0.

    MOVE value TO p_proc.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

FORM retorna_decimais USING p_moeda

                   CHANGING p_valor.

  SELECT SINGLE * FROM tcurx WHERE currkey = p_moeda.

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

  ENDIF.

  p_valor = p_valor / ( 10 ** ( tcurx-currdec - 2 ) ).

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em TABD /PWS/ZYCIE373

 

Nome campo Elem.dados    Tab.verif. N CtDt Comp.

 

...

FORNEC     VBELN_VON     VBUK         CHAR    10

IT_FORNEC  POSNR_VON     VBUP         NUMC     6

VL_ITNF    J_1BNETVAL                 CURR    15

FLAG       XFELD                      CHAR     1

DTNF       J_1BDOCDAT                 DATS     8

* >> Início da inclusão:

STAPROP    /PWS/ZYCEL432              CHAR     1

* << Fim da inclusão

ESGOTADO   XFELD                      CHAR     1

 

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

Modificações efetuadas em TABD /PWS/ZYCIT003

 

Nome de campo  Chv Elem.dados     Tab.verif.    N CtDt Comp.

 

PORIGEM            /PWS/ZYCIL082                  CHAR     3

PAQUIS             /PWS/ZYCIL085                  CHAR     3

MFRPN              MFRPN                          CHAR    40

* >> Início da modificação:

*De.

NRCARGA            /PWS/ZYCIL001  /PWS/ZYCIT099   CHAR    10

*Para.

NRCARGA            /PWS/ZYCIL863  /PWS/ZYCIT099   CHAR    10

* << Fim da modificação

LIFNRFABR          LIFNR                          CHAR    10

FLAGFABR           /PWS/ZYCIL220                  CHAR     1

LIOBRIG            /PWS/ZYCIL061                  CHAR     1

 

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

Modificações efetuadas em TABD /PWS/ZYCIT373

 

 

Nome campo Chv Elem.dados    Tab.verif. N CtDt Comp.

 

...

VL_ITNF        J_1BNETVAL                 CURR    15

FLAG           XFELD                      CHAR     1

DTNF           J_1BDOCDAT                 DATS     8

* >> Início da inclusão:

STAPROP        /PWS/ZYCEL432              CHAR     1

* << Fim da inclusão