CE PLUS - Nota 007896

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Custo Efetivo

Data/Hora da Publicação: 12/01/2009 00:00:00

Data/Hora Última Alteração: 09/03/2010 16:12:24

Descrição da Nota: VALOR QUE FOI LEVADO PARA O ENCER. DE CUSTOS ESTA MAIOR DO QUE DEVERIA

Sintoma

 

O Valor que foi levado para o Encerramento de Custos não esta igual ao custo efetivo.  Problema de

Casas

decimais.

 

Solução

 

Ajuste Casas decimais e na conversão da moeda do custo efetivo e do encerramento de custo.

Versões Tratadas

6.0

Informações Complementares

 

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

Nota Número 07896 Data: 12/01/2009 Hora: 13:58:51

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

 

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

Nota Número              : 07896

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00023

Agrupamento              : 00115

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

Texto Rápido:

VALOR QUE FOI LEVADO PARA O ENCER. DE CUSTOS ESTA MAIOR DO QUE DEVERIA

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

Palavras Chave:

ENCER. DE CUSTOS, CUSTO EFETIVO

 

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

Objetos da nota:

REPS /PWS/MZYCI010F01

REPS /PWS/MZYCI010F02

REPS /PWS/MZYCI010F03

REPS /PWS/MZYCI010O01

REPS /PWS/MZYCI010O02

REPS /PWS/MZYCI010TOP

REPS /PWS/MZYCI010X01

REPS /PWS/ZYCIR007

 

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

Modificações efetuadas em REPS /PWS/MZYCI010F01

 

...

             e_txc      =  v_tax

             e_defator   =  v_dfact

       EXCEPTIONS

             i_demoeda_nao_encontrado   = 1

             i_paramoeda_nao_encontrado = 2

             fator_nao_encontrado       = 3

             i_ctmoeda_nao_encontrado   = 4

             i_dtbase_nao_encontrada    = 5

             taxa_nao_encontrada        = 6

             i_montante_nao_encontrado  = 7.

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

              .

* << Fim da inclusão

    IF sy-subrc NE 0.

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

      v_demoeda   = p_deme.

      v_paramoeda = p_parame.

* << Fim da exclusão

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

      MESSAGE i061 WITH text-013 p_deme 'para' p_parame.

* << Fim da inclusão

      v_medestino = v_meatual.

      v_erro_conv = 'S'.

...

 

...

  CLEAR: itab_zycit036a. FREE: itab_zycit036a.

  SELECT SINGLE * FROM /pws/zycbt007

                  WHERE bukrs EQ /pws/zycie001-bukrs.

  IF sy-subrc NE 0.

    MESSAGE w120.

  ENDIF.

  CLEAR: v_frete.

  LOOP AT itab_zycit036_aux2 WHERE codigo = 'FRETEI'.

    v_frete = v_frete + 1.

  ENDLOOP.

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

  PERFORM sel_docts.

* << Fim da inclusão

  LOOP AT itab_zycit036_aux2.

    ON CHANGE OF itab_zycit036_aux2-codigo.

     CLEAR: itab_zycit036a.

    ENDON.

    itab_zycit036a-nrseq      = itab_zycit036_aux2-nrseq.

    itab_zycit036a-embarca    = itab_zycit036_aux2-embarca.

    itab_zycit036a-bukrs      = itab_zycit036_aux2-bukrs.

    itab_zycit036a-codigo     = itab_zycit036_aux2-codigo.

    IF NOT itab_zycit036_aux2-waers_real IS INITIAL

       AND itab_zycit036_aux2-vlreal NE 0.

      itab_zycit036a-waers_real = itab_zycit036_aux2-waers_real.

    ENDIF.

    IF itab_zycit036_aux2-codigo NE 'FRETEI'.

      itab_zycit036a-vlreal     = itab_zycit036_aux2-vlreal.

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

    ENDIF.

* << Fim da inclusão

      IF  itab_zycit036_aux2-origem EQ 'PED'.

        PERFORM retorna_decimais USING itab_zycit036a-waers_real

                               CHANGING itab_zycit036a-vlreal.

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

      ENDIF.

* << Fim da exclusão

    ENDIF.

    IF itab_zycit036_aux2-codigo NE 'FRETEI'.

      itab_zycit036a-vlmov = itab_zycit036_aux2-vlmov.

      itab_zycit036a-waers_mov = /pws/zycbt007-waersb.

...

 

...

    itab_zycit036-waers_mov = /pws/zycbt007-waersb.

    itab_zycit036-waers_dif = /pws/zycbt007-waersb.

    itab_zycit036-vldif = v_vlreal - itab_zycit036-vlmov.

    MODIFY itab_zycit036.

  ENDLOOP.

  MODIFY /pws/zycit036 FROM TABLE itab_zycit036.

ENDFORM.

FORM custear_itens.

  DATA: v_descon,

        v_vlplan  LIKE /pws/zycie036-vlreal,

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

        v_vlplant LIKE /pws/zycie036-vlreal,

* << Fim da inclusão

        v_vlreal  LIKE /pws/zycie036-vlreal,

        v_vlmov   LIKE /pws/zycie036-vlreal,

        v_vldif   LIKE /pws/zycie036-vlreal.

  CLEAR : v_trea, v_tmov, v_tplan, v_sdif.

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT * FROM /pws/zycit042

      INTO TABLE itab_zycit042

      FOR ALL ENTRIES IN itab_zycit003

      WHERE nrseq = itab_zycit003-nrseq

        AND ebeln = itab_zycit003-ebeln

        AND ebelp = itab_zycit003-ebelp.

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

    TABLES : /pws/zycit442.

    READ TABLE itab_zycit003 INDEX 1.

    SELECT SINGLE * FROM /pws/zycit442

     WHERE nrseqda EQ itab_zycit003-nrseqda.

* << Fim da inclusão

  ENDIF.

  SELECT SINGLE * FROM t001w

    WHERE werks = /pws/zycie001-werks.

  FREE itab_zycit033.

  SELECT * FROM /pws/zycit033

    INTO TABLE itab_zycit033

    WHERE clnf  EQ 'G'

      AND bukrs EQ /pws/zycie001-bukrs.

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

  FREE it_fat.

  SELECT * FROM /pws/zycit006 INTO TABLE it_fat

    FOR ALL ENTRIES IN itab_zycit036_aux2

    WHERE nrseq EQ itab_zycit036_aux2-nrseqori.

  FREE it_dc.

  SELECT * FROM /pws/zycit008 INTO TABLE it_dc

    FOR ALL ENTRIES IN itab_zycit036_aux2

    WHERE nradto EQ itab_zycit036_aux2-nrseqori.

  FREE it_pc.

  SELECT * FROM /pws/zycit026 INTO TABLE it_pc

    FOR ALL ENTRIES IN itab_zycit036_aux2

    WHERE nrpres EQ itab_zycit036_aux2-nrseqori.

  FREE it_nf.

  SELECT * FROM /pws/zycit042 INTO TABLE it_nf

    FOR ALL ENTRIES IN itab_zycit036_aux2

    WHERE nrseq EQ itab_zycit036_aux2-nrseq.

* << Fim da inclusão

  SORT itab_zycit036_aux BY nrseq ebeln ebelp codigo .

  FREE itab_zycit003_custo.

  LOOP AT itab_zycit003.

    CLEAR itab_zycit003_custo.

    LOOP AT itab_zycit036_aux2

                              WHERE nrseq = itab_zycit003-nrseq

                                AND ebeln = itab_zycit003-ebeln

                                AND ebelp = itab_zycit003-ebelp.

      itab_zycit003_custo-nrseq = itab_zycit003-nrseq.

      itab_zycit003_custo-ebeln = itab_zycit003-ebeln.

      itab_zycit003_custo-ebelp = itab_zycit003-ebelp.

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

      LOOP AT itab_zycit036_plan

                                WHERE nrseq = itab_zycit003-nrseq

                                  AND ebeln = itab_zycit003-ebeln

                                  AND ebelp = itab_zycit003-ebelp

                                 AND codigo = itab_zycit036_aux2-codigo.

* << Fim da inclusão

      CLEAR v_vlplan.

      IF v_erro_conv NE 'S'.

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

        IF itab_zycit036_aux2-waers NE /pws/zycie001-waers.

* << Fim da exclusão

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

          IF itab_zycit036_plan-waers NE /pws/zycie001-waers.

            IF /pws/zycit000-flag_desp IS INITIAL.

* << Fim da inclusão

          PERFORM converter_moeda

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

                USING itab_zycit036_aux2-netpr

                      itab_zycit036_aux2-waers

* << Fim da exclusão

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

                    USING itab_zycit036_plan-netpr

                          itab_zycit036_plan-waers

* << Fim da inclusão

                      /pws/zycbt007-waersb

                CHANGING v_vlplan.

          PERFORM converter_moeda

                USING v_vlplan

                      /pws/zycbt007-waersb

                      /pws/zycie001-waers

                CHANGING v_vlplan.

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

            ELSE.

              IF /pws/zycie001-regime NE '14'.

                IF NOT /pws/zycit085-dttax IS INITIAL.

                  PERFORM taxa_converte USING  itab_zycit036_plan-waers

                                                /pws/zycit085-dttax

                                      CHANGING  v_taxa.

                ELSEIF /pws/zycit085-dttax IS INITIAL.

                  PERFORM taxa_converte USING  itab_zycit036_plan-waers

                                                sy-datum

                                      CHANGING  v_taxa.

                ENDIF.

           itab_zycit036_plan-netpr = itab_zycit036_plan-netpr * v_taxa.

                IF NOT /pws/zycit085-dttax IS INITIAL.

                  PERFORM taxa_converte USING  /pws/zycie001-waers

                                               /pws/zycit085-dttax

                                     CHANGING  v_taxa.

                ELSEIF /pws/zycit085-dttax IS INITIAL.

                  PERFORM taxa_converte USING  /pws/zycie001-waers

                                               sy-datum

                                     CHANGING  v_taxa.

                ENDIF.

                IF NOT v_taxa IS INITIAL.

                  v_vlplan = itab_zycit036_plan-netpr / v_taxa.

                ELSE.

                  MESSAGE e015 WITH text-074.

                ENDIF.

              ELSE.

                IF NOT /pws/zycit442-dttax IS INITIAL.

                  PERFORM taxa_converte USING  itab_zycit036_plan-waers

                                                /pws/zycit442-dttax

                                      CHANGING  v_taxa.

                ELSEIF /pws/zycit442-dttax IS INITIAL.

                  PERFORM taxa_converte USING  itab_zycit036_plan-waers

                                                sy-datum

                                      CHANGING  v_taxa.

                ENDIF.

           itab_zycit036_plan-netpr = itab_zycit036_plan-netpr * v_taxa.

                IF NOT /pws/zycit442-dttax IS INITIAL.

                  PERFORM taxa_converte USING  /pws/zycie001-waers

                                               /pws/zycit442-dttax

                                     CHANGING  v_taxa.

                ELSEIF /pws/zycit442-dttax IS INITIAL.

                  PERFORM taxa_converte USING  /pws/zycie001-waers

                                               sy-datum

                                     CHANGING  v_taxa.

                ENDIF.

                IF NOT v_taxa IS INITIAL.

                  v_vlplan = itab_zycit036_plan-netpr / v_taxa.

                ELSE.

                  MESSAGE e015 WITH text-074.

                ENDIF.

              ENDIF.

            ENDIF.

* << Fim da inclusão

        ELSE.

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

          v_vlplan = itab_zycit036_aux2-netpr.

* << Fim da exclusão

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

            v_vlplan = itab_zycit036_plan-netpr.

* << Fim da inclusão

        ENDIF.

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

        itab_zycit003_custo-netpr = v_vlplan +

                                       itab_zycit003_custo-netpr.

* << Fim da exclusão

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

          v_vlplant = v_vlplan + v_vlplant.

* << Fim da inclusão

        IF NOT itab_zycit003_custo-netpr = 0.

          itab_zycit003_custo-waers = /pws/zycie001-waers.

        ENDIF.

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

        ELSE.

          itab_zycit003_custo-waers = /pws/zycie001-waers.

* << Fim da inclusão

      ENDIF.

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

        itab_zycit003_custo-netpr = v_vlplant.

        itab_zycit003_custo-waers = /pws/zycie001-waers.

      ENDLOOP.

* << Fim da inclusão

      CLEAR v_vlreal.

      IF v_erro_conv NE 'S'.

        IF itab_zycit036_aux2-waers_real NE /pws/zycie001-waers.

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

          IF itab_zycit036_aux2-origem EQ 'FAT'.

            READ TABLE it_fat WITH KEY

                                   nrseq = itab_zycit036_aux2-nrseqori.

            IF it_fat-dtincl LT /pws/zycit085-dtuserc.

              PERFORM converter_moeda

                    USING itab_zycit036_aux2-vlreal

                          itab_zycit036_aux2-waers_real

                          /pws/zycbt007-waersb

                    CHANGING v_vlreal.

              PERFORM converter_moeda

                    USING v_vlreal

                          /pws/zycbt007-waersb

                          /pws/zycie001-waers

                    CHANGING v_vlreal.

            ELSE.

              IF itab_zycit036_aux2-waers_real NE

                 /pws/zycbt007-waersb AND

                 itab_zycit036_aux2-origem NE 'PED'.

                IF NOT /pws/zycit085-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                    /pws/zycit085-dttax

                                                       CHANGING  v_taxa.

                ELSEIF /pws/zycit085-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                               sy-datum

                                                       CHANGING  v_taxa.

                ENDIF.

                itab_zycit036_aux2-vlreal =

                        itab_zycit036_aux2-vlreal * v_taxa.

              ENDIF.

              IF NOT /pws/zycit085-dttax IS INITIAL.

                PERFORM taxa_converte USING  /pws/zycie001-waers

                                             /pws/zycit085-dttax

                                   CHANGING  v_taxa.

              ELSEIF /pws/zycit085-dttax IS INITIAL.

                PERFORM taxa_converte USING  /pws/zycie001-waers

                                             sy-datum

                                   CHANGING  v_taxa.

              ENDIF.

              IF NOT v_taxa IS INITIAL.

                v_vlreal = itab_zycit036_aux2-vlreal / v_taxa.

              ELSE.

                IF /pws/zycie001-modalidade = '02'.

                  MESSAGE w015 WITH text-074.

                ENDIF.

                LEAVE PROGRAM.

              ENDIF.

            ENDIF.

            READ TABLE it_nf WITH KEY

                                   nrseq   = itab_zycit036_aux2-nrseq

                                  nrseqnf = itab_zycit036_aux2-nrseqori.

            IF itab_zycit036_aux2-waers_real NE

               /pws/zycbt007-waersb AND

               itab_zycit036_aux2-origem NE 'PED'.

              IF NOT /pws/zycit085-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                    /pws/zycit085-dttax

                                                       CHANGING  v_taxa.

              ELSEIF /pws/zycit085-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                               sy-datum

                                                       CHANGING  v_taxa.

              ENDIF.

              itab_zycit036_aux2-vlreal =

                      itab_zycit036_aux2-vlreal * v_taxa.

            ENDIF.

            IF NOT /pws/zycit085-dttax IS INITIAL.

              PERFORM taxa_converte USING  /pws/zycie001-waers

                                           /pws/zycit085-dttax

                                 CHANGING  v_taxa.

            ELSEIF /pws/zycit085-dttax IS INITIAL.

              PERFORM taxa_converte USING  /pws/zycie001-waers

                                           sy-datum

                                 CHANGING  v_taxa.

            ENDIF.

            IF NOT v_taxa IS INITIAL.

              v_vlreal = itab_zycit036_aux2-vlreal / v_taxa.

            ELSE.

              IF /pws/zycie001-modalidade = '02'.

                MESSAGE w015 WITH text-074.

              ENDIF.

              LEAVE PROGRAM.

            ENDIF.

          ELSEIF itab_zycit036_aux2-origem EQ 'PC'.

            READ TABLE it_pc WITH KEY

                                   nrseq  = itab_zycit036_aux2-nrseq

                                   nrpres = itab_zycit036_aux2-nrseqori.

            IF it_pc-dtaprov LT /pws/zycit085-dtuserc.

              PERFORM converter_moeda

                    USING itab_zycit036_aux2-vlreal

                          itab_zycit036_aux2-waers_real

                          /pws/zycbt007-waersb

                    CHANGING v_vlreal.

              PERFORM converter_moeda

                    USING v_vlreal

                          /pws/zycbt007-waersb

                          /pws/zycie001-waers

                    CHANGING v_vlreal.

            ELSE.

              IF itab_zycit036_aux2-waers_real NE

                 /pws/zycbt007-waersb AND

                 itab_zycit036_aux2-origem NE 'PED'.

                IF NOT /pws/zycit085-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                    /pws/zycit085-dttax

                                                       CHANGING  v_taxa.

                ELSEIF /pws/zycit085-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                               sy-datum

                                                       CHANGING  v_taxa.

                ENDIF.

                itab_zycit036_aux2-vlreal =

                        itab_zycit036_aux2-vlreal * v_taxa.

              ENDIF.

              PERFORM trata_decimais USING /pws/zycie001-waers

                             CHANGING itab_zycit036_aux2-vlreal.

              IF NOT /pws/zycit085-dttax IS INITIAL.

                PERFORM taxa_converte USING  /pws/zycie001-waers

                                             /pws/zycit085-dttax

                                   CHANGING  v_taxa.

              ELSEIF /pws/zycit085-dttax IS INITIAL.

                PERFORM taxa_converte USING  /pws/zycie001-waers

                                             sy-datum

                                   CHANGING  v_taxa.

              ENDIF.

              IF NOT v_taxa IS INITIAL.

                v_vlreal = itab_zycit036_aux2-vlreal / v_taxa.

              ELSE.

                IF /pws/zycie001-modalidade = '02'.

                  MESSAGE w015 WITH text-074.

                ENDIF.

                LEAVE PROGRAM.

              ENDIF.

            ENDIF.

          ELSEIF itab_zycit036_aux2-origem EQ 'DC'.

            READ TABLE it_dc WITH KEY

                                      nrseq  = itab_zycit036_aux2-nrseq

                                   nradto = itab_zycit036_aux2-nrseqori.

            IF it_pc-dtaprov LT /pws/zycit085-dtuserc.

              PERFORM converter_moeda

                    USING itab_zycit036_aux2-vlreal

                          itab_zycit036_aux2-waers_real

                          /pws/zycbt007-waersb

                    CHANGING v_vlreal.

              PERFORM converter_moeda

                    USING v_vlreal

                          /pws/zycbt007-waersb

                          /pws/zycie001-waers

                    CHANGING v_vlreal.

            ELSE.

              IF itab_zycit036_aux2-waers_real NE

                 /pws/zycbt007-waersb AND

                 itab_zycit036_aux2-origem NE 'PED'.

                IF NOT /pws/zycit085-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                    /pws/zycit085-dttax

                                                       CHANGING  v_taxa.

                ELSEIF /pws/zycit085-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                               sy-datum

                                                       CHANGING  v_taxa.

                ENDIF.

                itab_zycit036_aux2-vlreal =

                        itab_zycit036_aux2-vlreal * v_taxa.

              ENDIF.

              IF NOT /pws/zycit085-dttax IS INITIAL.

                PERFORM taxa_converte USING  /pws/zycie001-waers

                                             /pws/zycit085-dttax

                                   CHANGING  v_taxa.

              ELSEIF /pws/zycit085-dttax IS INITIAL.

                PERFORM taxa_converte USING  /pws/zycie001-waers

                                             sy-datum

                                   CHANGING  v_taxa.

              ENDIF.

              IF NOT v_taxa IS INITIAL.

                v_vlreal = itab_zycit036_aux2-vlreal / v_taxa.

              ELSE.

                IF /pws/zycie001-modalidade = '02'.

                  MESSAGE w015 WITH text-074.

                ENDIF.

                LEAVE PROGRAM.

              ENDIF.

            ENDIF.

          ELSEIF itab_zycit036_aux2-origem EQ 'DCD'.

           IF itab_zycit036_aux2-waers_real NE /pws/zycbt007-waersb AND

                               itab_zycit036_aux2-origem NE 'PED'.

              IF NOT /pws/zycit442-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                    /pws/zycit442-dttax

                                                       CHANGING  v_taxa.

              ELSEIF /pws/zycit442-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                               sy-datum

                                                       CHANGING  v_taxa.

              ENDIF.

         itab_zycit036_aux2-vlreal = itab_zycit036_aux2-vlreal * v_taxa.

            ENDIF.

            IF NOT /pws/zycit442-dttax IS INITIAL.

              PERFORM taxa_converte USING  /pws/zycie001-waers

                                           /pws/zycit442-dttax

                                 CHANGING  v_taxa.

            ELSEIF /pws/zycit442-dttax IS INITIAL.

              PERFORM taxa_converte USING  /pws/zycie001-waers

                                           sy-datum

                                 CHANGING  v_taxa.

            ENDIF.

            IF NOT v_taxa IS INITIAL.

              v_vlreal = itab_zycit036_aux2-vlreal / v_taxa.

            ELSE.

              IF /pws/zycie001-modalidade = '02'.

                MESSAGE w015 WITH text-074.

              ENDIF.

              LEAVE PROGRAM.

            ENDIF.

          ELSEIF itab_zycit036_aux2-origem EQ 'PCD'.

           IF itab_zycit036_aux2-waers_real NE /pws/zycbt007-waersb AND

                               itab_zycit036_aux2-origem NE 'PED'.

              IF NOT /pws/zycit442-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                    /pws/zycit442-dttax

                                                       CHANGING  v_taxa.

              ELSEIF /pws/zycit442-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                               sy-datum

                                                       CHANGING  v_taxa.

              ENDIF.

         itab_zycit036_aux2-vlreal = itab_zycit036_aux2-vlreal * v_taxa.

            ENDIF.

            IF NOT /pws/zycit442-dttax IS INITIAL.

              PERFORM taxa_converte USING  /pws/zycie001-waers

                                           /pws/zycit442-dttax

                                 CHANGING  v_taxa.

            ELSEIF /pws/zycit442-dttax IS INITIAL.

              PERFORM taxa_converte USING  /pws/zycie001-waers

                                           sy-datum

                                 CHANGING  v_taxa.

            ENDIF.

            IF NOT v_taxa IS INITIAL.

              v_vlreal = itab_zycit036_aux2-vlreal / v_taxa.

            ELSE.

              IF /pws/zycie001-modalidade = '02'.

                MESSAGE w015 WITH text-074.

              ENDIF.

              LEAVE PROGRAM.

            ENDIF.

          ELSE.

            IF /pws/zycie001-regime NE '14'.

* << Fim da inclusão

          IF itab_zycit036_aux2-waers_real NE /pws/zycbt007-waersb AND

             itab_zycit036_aux2-origem NE 'PED'.

            IF NOT /pws/zycit085-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                    /pws/zycit085-dttax

                                                   CHANGING  v_taxa.

            ELSEIF /pws/zycit085-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                             sy-datum

                                                   CHANGING  v_taxa.

            ENDIF.

         itab_zycit036_aux2-vlreal = itab_zycit036_aux2-vlreal * v_taxa.

          ENDIF.

          IF NOT /pws/zycit085-dttax IS INITIAL.

            PERFORM taxa_converte USING  /pws/zycie001-waers

                                         /pws/zycit085-dttax

                               CHANGING  v_taxa.

          ELSEIF /pws/zycit085-dttax IS INITIAL.

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

                PERFORM taxa_converte USING  /pws/zycie001-waers

                                             sy-datum

                                   CHANGING  v_taxa.

              ENDIF.

              PERFORM trata_decimais USING /pws/zycie001-waers

                             CHANGING itab_zycit036_aux2-vlreal.

              IF NOT v_taxa IS INITIAL.

                v_vlreal = itab_zycit036_aux2-vlreal / v_taxa.

              ELSE.

                IF /pws/zycie001-modalidade = '02'.

                  MESSAGE w015 WITH text-074.

                ENDIF.

                LEAVE PROGRAM.

              ENDIF.

            ELSE.

           IF itab_zycit036_aux2-waers_real NE /pws/zycbt007-waersb AND

                                     itab_zycit036_aux2-origem NE 'PED'.

                IF NOT /pws/zycit442-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                    /pws/zycit442-dttax

                                                       CHANGING  v_taxa.

                ELSEIF /pws/zycit442-dttax IS INITIAL.

             PERFORM taxa_converte USING  itab_zycit036_aux2-waers_real

                                                               sy-datum

                                                       CHANGING  v_taxa.

                ENDIF.

         itab_zycit036_aux2-vlreal = itab_zycit036_aux2-vlreal * v_taxa.

              ENDIF.

              IF NOT /pws/zycit442-dttax IS INITIAL.

                PERFORM taxa_converte USING  /pws/zycie001-waers

                                             /pws/zycit442-dttax

                                   CHANGING  v_taxa.

              ELSEIF /pws/zycit442-dttax IS INITIAL.

* << Fim da inclusão

            PERFORM taxa_converte USING  /pws/zycie001-waers

                                         sy-datum

                               CHANGING  v_taxa.

          ENDIF.

          IF NOT v_taxa IS INITIAL.

            v_vlreal = itab_zycit036_aux2-vlreal / v_taxa.

          ELSE.

            IF /pws/zycie001-modalidade = '02'.

              MESSAGE w015 WITH text-074.

            ENDIF.

            LEAVE PROGRAM.

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

              ENDIF.

            ENDIF.

          ENDIF.

        ELSE.

          IF /pws/zycie001-regime NE '14'.

            IF NOT /pws/zycit085-dttax IS INITIAL.

              PERFORM taxa_converte USING  /pws/zycie001-waers

                                            /pws/zycit085-dttax

                                    CHANGING  v_taxa.

            ELSEIF /pws/zycit085-dttax IS INITIAL.

              PERFORM taxa_converte USING  /pws/zycie001-waers

                                           sy-datum

                                 CHANGING  v_taxa.

* << Fim da inclusão

          ENDIF.

        ELSE.

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

            IF NOT /pws/zycit442-dttax IS INITIAL.

              PERFORM taxa_converte USING  /pws/zycie001-waers

                                            /pws/zycit442-dttax

                                    CHANGING  v_taxa.

            ELSEIF /pws/zycit442-dttax IS INITIAL.

              PERFORM taxa_converte USING  /pws/zycie001-waers

                                           sy-datum

                                 CHANGING  v_taxa.

            ENDIF.

          ENDIF.

* << Fim da inclusão

          PERFORM retorna_decimais USING /pws/zycie001-waers

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

                         CHANGING itab_zycit036_aux2-vlreal.

          PERFORM trata_decimais USING /pws/zycie001-waers

* << Fim da inclusão

                         CHANGING itab_zycit036_aux2-vlreal.

          v_vlreal = itab_zycit036_aux2-vlreal.

        ENDIF.

        itab_zycit003_custo-vlreal = v_vlreal +

                                      itab_zycit003_custo-vlreal.

...

 

...

                ( itab_zycit033-tribicms   EQ '3' AND

                itab_zycit033-lei102 EQ 'X' ) ) AND

                 itab_zycit036_aux2-codigo EQ 'ICMS' ).

        v_descon = 'S'.

      ELSEIF itab_zycit033-tribipi    EQ '1'    AND

             itab_zycit036_aux2-codigo EQ 'IPI'.

        v_descon = 'S'.

      ENDIF.

      IF v_descon NE 'S'.

        itab_zycit003_custo-vldif = itab_zycit003_custo-vldif +

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

                                         itab_zycit036_aux2-vldif

.

* << Fim da exclusão

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

                                       itab_zycit036_aux2-vldif.

* << Fim da inclusão

        IF NOT itab_zycit036_aux-waers_dif IS INITIAL.

          itab_zycit003_custo-waers_dif =

                                   itab_zycit036_aux2-waers_dif.

        ELSE.

          itab_zycit003_custo-waers_dif = /pws/zycbt007-waersb.

        ENDIF.

      ENDIF.

      READ TABLE itab_zycit036_rub

                  WITH KEY nrseq = itab_zycit036_aux2-nrseq

                           ebeln = itab_zycit036_aux2-ebeln

...

 

...

        MODIFY itab_zycit036_rub INDEX sy-tabix.

      ELSE.

        MOVE itab_zycit036_aux2 TO itab_zycit036_rub.

        APPEND itab_zycit036_rub.

      ENDIF.

    ENDLOOP.

    APPEND itab_zycit003_custo.

  ENDLOOP.

  IF v_erro_conv EQ 'S'.

    CLEAR v_erro_conv.

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

    MESSAGE I015 WITH text-019 text-020.

* << Fim da exclusão

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

    MESSAGE w015 WITH text-019 text-020.

* << Fim da inclusão

    MOVE itab_zycit003[] TO itab_zycit003_custo[].

  ENDIF.

ENDFORM.

FORM custear_embarque.

  DATA: v_vlplan LIKE /pws/zycie036-vlreal,

        v_vlreal LIKE /pws/zycie036-vlreal,

        v_vlmov  LIKE /pws/zycie036-vlreal,

        v_vldif  LIKE /pws/zycie036-vlreal.

  CLEAR: /pws/zycie001-vlplan, /pws/zycie001-vlreal,

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

         /pws/zycie001-vlmov , /pws/zycie001-vldif .

* << Fim da exclusão

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

         /pws/zycie001-vlmov , /pws/zycie001-vldif ,

         v_dtreal.

* << Fim da inclusão

  CLEAR: itab_zycit036_plan.

  LOOP AT itab_zycit036_plan.

    CLEAR: v_vlplan.

    IF v_erro_conv NE 'S'.

      IF itab_zycit036_plan-waers NE /pws/zycie001-waers AND

         NOT itab_zycit036_plan-waers IS INITIAL.

        PERFORM converter_moeda

                    USING itab_zycit036_plan-netpr

                          itab_zycit036_plan-waers

                           /pws/zycbt007-waersb

...

 

...

                          /pws/zycie001-waers

                    CHANGING v_vlplan.

      ELSE.

        v_vlplan = itab_zycit036_plan-netpr.

      ENDIF.

      /pws/zycie001-vlplan     =  v_vlplan + /pws/zycie001-vlplan.

      /pws/zycie001-waers_plan = /pws/zycie001-waers.

    ENDIF.

  ENDLOOP.

  CLEAR itab_zycit036a.

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

  LOOP AT itab_zycit036a.

* << Fim da exclusão

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

  FREE it_fat.

  SELECT * FROM /pws/zycit006

  INTO TABLE it_fat

  FOR ALL ENTRIES IN itab_zycit036_aux2

  WHERE nrseq EQ itab_zycit036_aux2-nrseqori.

  LOOP AT itab_zycit036_aux2.

* << Fim da inclusão

    CLEAR: v_vlreal.

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

    v_vlreal_t = itab_zycit036_aux2-vlreal.

* << Fim da inclusão

    IF v_erro_conv NE 'S'.

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

      IF itab_zycit036a-waers_real NE /pws/zycie001-waers AND

         NOT itab_zycit036a-waers_real IS INITIAL.

        IF itab_zycit036a-waers_real NE /pws/zycbt007-waersb.

          IF NOT /pws/zycit085-dttax IS INITIAL.

            PERFORM taxa_converte USING  itab_zycit036a-waers_real

                                         /pws/zycit085-dttax

                               CHANGING  v_taxa.

          ELSEIF /pws/zycit085-dttax IS INITIAL.

            PERFORM taxa_converte USING  itab_zycit036a-waers_real

                                         sy-datum

                               CHANGING  v_taxa.

* << Fim da exclusão

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

      IF itab_zycit036_aux2-waers_real NE /pws/zycie001-waers AND

         NOT itab_zycit036_aux2-waers_real IS INITIAL.

        IF itab_zycit036_aux2-origem EQ 'FAT'.

          READ TABLE it_fat WITH KEY

                                 nrseq = itab_zycit036_aux2-nrseqori.

          IF it_fat-dtincl LT /pws/zycit085-dtuserc.

            PERFORM converter_moeda

                       USING v_vlreal_t

                             itab_zycit036_aux2-waers_real

                             /pws/zycbt007-waersb

                       CHANGING v_vlreal.

            PERFORM converter_moeda

                       USING v_vlreal

                             /pws/zycbt007-waersb

                             /pws/zycie001-waers

                        CHANGING v_vlreal.

          ELSE.

            PERFORM conversao_aux.

* << Fim da inclusão

          ENDIF.

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

          itab_zycit036a-vlreal = itab_zycit036a-vlreal * v_taxa.

        ENDIF.

        IF NOT /pws/zycit085-dttax IS INITIAL.

          PERFORM taxa_converte USING  /pws/zycie001-waers

                                       /pws/zycit085-dttax

                             CHANGING  v_taxa.

        ELSEIF /pws/zycit085-dttax IS INITIAL.

          PERFORM taxa_converte USING  /pws/zycie001-waers

                                       sy-datum

                             CHANGING  v_taxa.

        ENDIF.

        IF NOT v_taxa IS INITIAL.

          v_vlreal = itab_zycit036a-vlreal / v_taxa.

* << Fim da exclusão

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

        ELSE.

          PERFORM read_docts USING itab_zycit036_aux2-origem

                                   itab_zycit036_aux2-nrseqori

                          CHANGING v_dtreal.

          IF v_dtreal LT /pws/zycit085-dtuserc OR

            itab_zycit036_aux2-origem NE 'NF' OR

            itab_zycit036_aux2-origem NE 'NFC'.

            PERFORM conversao_vlreal

                        USING v_vlreal_t itab_zycit036_aux2-waers_real.

* << Fim da inclusão

        ELSE.

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

          IF /pws/zycie001-modalidade = '02'.

            MESSAGE w015 WITH text-074.

* << Fim da exclusão

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

            PERFORM conversao_aux.

* << Fim da inclusão

          ENDIF.

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

          LEAVE PROGRAM.

* << Fim da exclusão

        ENDIF.

      ELSE.

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

        PERFORM retorna_decimais USING /pws/zycie001-waers

                               CHANGING itab_zycit036a-vlreal.

        v_vlreal = itab_zycit036a-vlreal.

* << Fim da exclusão

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

        PERFORM conversao_aux.

* << Fim da inclusão

      ENDIF.

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

      /pws/zycie001-vlreal     =  v_vlreal +  /pws/zycie001-vlreal.

      /pws/zycie001-waers_real = /pws/zycie001-waers.

* << Fim da exclusão

    ENDIF.

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

  ENDLOOP.

  LOOP AT itab_zycit036a.

* << Fim da inclusão

    /pws/zycie001-vlmov     = itab_zycit036a-vlmov +

 /pws/zycie001-vlmov.

    IF NOT itab_zycit036a-waers_mov IS INITIAL.

      /pws/zycie001-waers_mov = itab_zycit036a-waers_mov.

    ELSE.

      IF itab_zycit036a-vlmov NE 0.

        /pws/zycie001-waers_mov = /pws/zycbt007-waersb.

      ENDIF.

    ENDIF.

    /pws/zycie001-vldif     = itab_zycit036a-vldif +

...

 

...

        LOOP AT itab_zycit036_aux2 WHERE

          ( origem = 'NF' OR

            origem = 'DI' ) AND

            codigo = 'FRETEI'.

          IF itab_zycit036_aux2-vlreal IS INITIAL.

            DELETE itab_zycit036_aux2.

          ENDIF.

        ENDLOOP.

      ENDIF.

  ENDIF.

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

  CLEAR: itab_zycit036_plan,

        v_erro_m.

* << Fim da exclusão

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

  CLEAR: itab_zycit036_plan.

* << Fim da inclusão

  REFRESH itab_zycit036_plan.

  LOOP AT itab_zycit036_aux.

    IF itab_zycit036_aux-origem = 'PED'.

      MOVE itab_zycit036_aux TO itab_zycit036_plan.

      APPEND itab_zycit036_plan.

    ENDIF.

  ENDLOOP.

  SORT itab_zycit036_plan BY codigo.

  LOOP AT itab_zycit036_plan.

    IF NOT itab_zycit036_plan-netpr = 0.

...

 

...

      FROM bkpf

      INTO TABLE it_bkpf

      FOR ALL ENTRIES IN it_zycit006_aux2

      WHERE bukrs EQ it_zycit006_aux2-bukrs

        AND belnr EQ it_zycit006_aux2-belnr_p

        AND gjahr EQ it_zycit006_aux2-dt_belnrp(04).

  ENDIF.

  LOOP AT itab_zycit036_aux2.

    PERFORM move_plan_mov_aux.

  ENDLOOP.

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

  if v_erro_m NE 0.

      MESSAGE i061 WITH text-013 v_demoeda 'para' v_paramoeda.

  endif.

* << Fim da exclusão

  SORT itab_zycit036_aux2 BY nrseq ebeln ebelp codigo origem.

ENDFORM.

* >> Início da inclusão:

FORM conversao_aux.

  IF /pws/zycie001-regime NE '14'.

    IF itab_zycit036_aux2-waers_real NE /pws/zycbt007-waersb.

      IF NOT /pws/zycit085-dttax IS INITIAL.

        PERFORM taxa_converte

                             USING itab_zycit036_aux2-waers_real

                                   /pws/zycit085-dttax

                          CHANGING v_taxa.

      ELSEIF /pws/zycit085-dttax IS INITIAL.

        PERFORM taxa_converte

                             USING itab_zycit036_aux2-waers_real

                                   sy-datum

                          CHANGING v_taxa.

      ENDIF.

      v_vlreal_t = v_vlreal_t * v_taxa.

    ENDIF.

    v_vlreal = v_vlreal_t.

  ELSE.

    IF /pws/zycit442 IS INITIAL.

      READ TABLE itab_zycit003 INDEX 1.

      SELECT SINGLE * FROM /pws/zycit442

       WHERE nrseqda EQ itab_zycit003-nrseqda.

    ENDIF.

    IF itab_zycit036_aux2-waers_real NE /pws/zycbt007-waersb.

      IF NOT /pws/zycit442-dttax IS INITIAL.

        PERFORM taxa_converte

                             USING itab_zycit036_aux2-waers_real

                                   /pws/zycit442-dttax

                          CHANGING v_taxa.

      ELSEIF /pws/zycit442-dttax IS INITIAL.

        PERFORM taxa_converte

                             USING itab_zycit036_aux2-waers_real

                                   sy-datum

                          CHANGING v_taxa.

      ENDIF.

      v_vlreal_t = v_vlreal_t * v_taxa.

    ENDIF.

    v_vlreal = v_vlreal_t.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI010F02

 

...

    READ TABLE itab_zycit042 WITH KEY nrseq = /pws/zycie001-nrseq.

    SELECT * FROM /pws/zycit041 INTO TABLE itab_zycit041

      WHERE nrseq  = itab_zycit042-nrseqnf AND

            cancel = space.

    IF sy-subrc NE 0.

      v_nota = 'X'.

      MESSAGE i015 WITH text-072.

    ELSE.

      LOOP AT itab_zycit041 WHERE belnr_mr1m IS initial.

      ENDLOOP.

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

      IF sy-subrc = 0.

* << Fim da exclusão

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

      IF sy-subrc = 0 and /pws/zycie001-regime ne '14'.

* << Fim da inclusão

        SELECT * FROM /pws/zycit043 INTO TABLE itab_zycit043

          WHERE nrseq  = itab_zycit042-nrseqnf AND

                cancel = space.

        IF sy-subrc = 0.

          LOOP AT itab_zycit043 WHERE belnr_mr1m IS initial.

          ENDLOOP.

          IF sy-subrc EQ 0.

            v_nota = 'X'.

            MESSAGE i015 WITH text-073.

          ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI010F03

 

...

          v_vlreal = itab_zycit036_aux2-vlreal.

          IF itab_zycit036_aux2-origem NE 'FAT'.

            PERFORM retorna_decimais USING itab_zycit036_aux2-waers

                CHANGING v_vlreal.

          v_valor = v_vlreal.

            PERFORM converter_moeda USING

                               v_vlreal

                               itab_zycit036_aux2-waers

                               wa_zycbt007-waersb

                      CHANGING v_vlreal.

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

            if wa_zycbt007-waersb ne itab_zycit036_aux2-waers

              and v_valor eq v_vlreal.

              v_erro_m = 1.

            endif.

* << Fim da exclusão

          ELSE.

            READ TABLE it_zycit006_aux2 WITH KEY

                               nrseq = itab_zycit036_aux2-nrseqori.

            IF sy-subrc EQ 0 AND it_zycit006_aux2-frpagto EQ 'P'.

              v_vlreal = v_vlreal * /pws/zycit085-ukursfre .

            ELSE.

              READ TABLE it_bkpf WITH KEY

                   bukrs = it_zycit006_aux2-bukrs

                   belnr = it_zycit006_aux2-belnr_p

                   gjahr = it_zycit006_aux2-dt_belnrp(04).

...

 

...

          itab_zycit036a-waers = v_medestino_a.

        ELSE.

          MOVE: itab_zycit036_conve-netpr TO itab_zycit036a-netpr,

                itab_zycit036_conve-waers TO itab_zycit036a-waers.

        ENDIF.

        CLEAR:  v_vlbrl_a, s_msg1, v_vlbrl.

        IF itab_zycit036_conve-waers_real NE v_medestino_a

          AND v_erro_conv NE 'S'

          AND itab_zycit036_conve-vlreal GT 0        AND

          NOT itab_zycit036_conve-waers_real IS INITIAL.

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

          SELECT SINGLE * FROM tcurx INTO wa_tcurx WHERE

          currkey = itab_zycit036_conve-waers_real.

          IF sy-subrc EQ 0.

          PERFORM retorna_decimais USING itab_zycit036_conve-waers_real

                                    CHANGING itab_zycit036_conve-vlreal.

          ELSE.

            PERFORM trata_decimais USING itab_zycit036_conve-waers_real

                                   CHANGING itab_zycit036a-vlreal.

          ENDIF.

          IF NOT /pws/zycit085-dttax IS INITIAL.

            IF /pws/zycit000-flag_desp IS INITIAL.

              PERFORM converter_moeda USING

                               itab_zycit036_conve-vlreal

                              itab_zycit036_conve-waers_real

                                     /pws/zycbt007-waersb

                                  CHANGING v_vlbrl_a.

              PERFORM converter_moeda USING v_vlbrl_a

                                 /pws/zycbt007-waersb

                                 v_medestino_a

                                     CHANGING itab_zycit036a-vlreal.

* << Fim da exclusão

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

          READ TABLE itab_zycit036 WITH KEY

                            nrseq  = itab_zycit036_conve-nrseq

                            codigo = itab_zycit036_conve-codigo.

          

          PERFORM read_docts USING itab_zycit036-origem

                                   itab_zycit036-nrseqori

                          CHANGING v_dtreal.

          IF v_dtreal LT /pws/zycit085-dtuserc and (

            itab_zycit036_aux2-origem NE 'NF' OR

            itab_zycit036_aux2-origem NE 'NFC' ) .

            PERFORM conversao_vlreal

                        USING itab_zycit036_conve-vlreal

                              itab_zycit036_conve-waers_real.

* << Fim da inclusão

            ELSE.

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

              IF itab_zycit036_conve-waers_real NE /pws/zycbt007-waersb.

             PERFORM taxa_converte USING itab_zycit036_conve-waers_real

                                                    /pws/zycit085-dttax

                                                       CHANGING  v_taxa.

              ELSE.

                v_taxa = 1.

              ENDIF.

              v_vlbrl_a = itab_zycit036_conve-vlreal  * v_taxa.

              IF  v_medestino_a NE /pws/zycbt007-waersb.

                PERFORM taxa_converte USING  v_medestino_a

                                             /pws/zycit085-dttax

                                      CHANGING  v_taxa.

              ELSE.

                v_taxa = 1.

              ENDIF.

              IF NOT v_taxa IS INITIAL.

                itab_zycit036a-vlreal = v_vlbrl_a  / v_taxa.

              ENDIF.

            ENDIF.

          ELSEIF NOT /pws/zycit085-dttax IS INITIAL AND

                 s_msg1 = 'X'.

            PERFORM converter_moeda USING

                          itab_zycit036_conve-vlreal

                                itab_zycit036_conve-waers_real

                                       /pws/zycbt007-waersb

                                CHANGING v_vlbrl_a.

            PERFORM converter_moeda USING v_vlbrl_a

                                           /pws/zycbt007-waersb

                                     v_medestino_a

                                  CHANGING itab_zycit036a-vlreal.

* << Fim da exclusão

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

            PERFORM altera_moeda_aux.

* << Fim da inclusão

          ENDIF.

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

          SELECT SINGLE * FROM tcurx INTO wa_tcurx WHERE

          currkey = v_medestino_a.

          itab_zycit036a-waers_real = v_medestino_a.

* << Fim da exclusão

        ELSE.

          MOVE: itab_zycit036_conve-vlreal TO itab_zycit036a-vlreal,

            itab_zycit036_conve-waers_real TO itab_zycit036a-waers_real.

        ENDIF.

...

 

...

      IF v_linha EQ v_stepl.

        IF NOT v_medestino_a IS INITIAL AND v_erro_conv NE 'S'.

          v_meatual_a = v_medestino_a.

          CLEAR v_medestino_a.

        ENDIF.

        CLEAR v_erro_conv.

      ENDIF.

    ENDLOOP.

  ENDIF.

  CLEAR : v_trea, v_tmov, v_tplan.

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

  DATA: v_realaux LIKE itab_zycit036a-vlreal.

* << Fim da inclusão

  LOOP AT itab_zycit036a.

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

    READ TABLE itab_zycit036 WITH KEY

                            nrseq  = itab_zycit036a-nrseq

                            codigo = itab_zycit036a-codigo.

    PERFORM read_docts USING itab_zycit036-origem

                             itab_zycit036-nrseqori

                    CHANGING v_dtreal.

* << Fim da inclusão

    IF itab_zycit036a-netpr  IS INITIAL.

      CLEAR itab_zycit036a-waers.

    ELSE.

      v_tplan = v_tplan + itab_zycit036a-netpr.

    ENDIF.

    IF itab_zycit036a-vlreal IS INITIAL.

      CLEAR itab_zycit036a-waers_real.

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

    ELSE.

      IF itab_zycit036a-waers_real EQ v_medestino_a.

        v_trea = v_trea + itab_zycit036a-vlreal.

      ELSE.

        IF itab_zycit036a-codigo = 'FOB'    OR

           itab_zycit036a-codigo = 'SEGURO' OR

           itab_zycit036a-codigo = 'FRETEI'.

          READ TABLE itab_zycit140 WITH KEY

                                   codigo = itab_zycit036a-codigo

                                   custo  = 'X'.

          IF sy-subrc = 0.

            IF itab_zycit140-origem = 'NF'.

              IF itab_zycit036a-waers_real = /pws/zycit085-waersseg.

                itab_zycit036a-vlreal =

                       itab_zycit036a-vlreal * /pws/zycit085-ukursseg.

              ELSE.

                PERFORM taxa_converte USING  v_medestino_a

                                      /pws/zycit085-dttax

                                         CHANGING  v_taxa.

                IF  v_taxa IS INITIAL.

                  v_taxa = 1.

                ENDIF.

                itab_zycit036a-vlreal =

                          itab_zycit036a-vlreal * v_taxa.

              ENDIF.

            ELSE.

              PERFORM conversao_vlreal

                                  USING itab_zycit036a-vlreal

                                        v_medestino_a.

              v_trea = v_trea + itab_zycit036a-vlreal.

            ENDIF.

          ENDIF.

* << Fim da inclusão

    ELSE.

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

          IF v_dtreal LT /pws/zycit085-dtuserc and (

             itab_zycit036-origem NE 'NF'      OR

             itab_zycit036-origem NE 'NFC' ) .

            PERFORM conversao_vlreal

                                USING itab_zycit036a-vlreal

                                      v_medestino_a.

* << Fim da inclusão

      v_trea = v_trea + itab_zycit036a-vlreal.

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

          ELSE.

            SELECT SINGLE * FROM tcurx INTO wa_tcurx WHERE

            currkey = itab_zycit036a-waers_real.

            IF sy-subrc EQ 0.

              PERFORM retorna_decimais USING itab_zycit036a-waers_real

                                        CHANGING itab_zycit036a-vlreal.

            ELSE.

              PERFORM trata_decimais USING v_medestino_a

                                  CHANGING itab_zycit036a-vlreal.

            ENDIF.

            IF itab_zycit036a-waers_real NE /pws/zycbt007-waersb.

             PERFORM taxa_converte USING itab_zycit036_conve-waers_real

                                                    /pws/zycit085-dttax

                                                       CHANGING  v_taxa.

            ELSE.

              v_taxa = 1.

* << Fim da inclusão

    ENDIF.

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

            v_vlbrl_a = itab_zycit036a-vlreal  * v_taxa.

            IF  v_medestino_a NE /pws/zycbt007-waersb.

              PERFORM taxa_converte USING  v_medestino_a

                                     /pws/zycit085-dttax

                                        CHANGING  v_taxa.

            ELSE.

              v_taxa = 1.

            ENDIF.

            IF NOT v_taxa IS INITIAL.

              itab_zycit036a-vlreal = v_vlbrl_a  / v_taxa.

            ENDIF.

            v_trea = v_trea + itab_zycit036a-vlreal.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

    itab_zycit036a-waers_real = v_medestino_a.

* << Fim da inclusão

    IF itab_zycit036a-vlmov  IS INITIAL.

      CLEAR itab_zycit036a-waers_mov.

    ELSE.

      v_tmov = v_tmov + itab_zycit036a-vlmov.

    ENDIF.

    IF itab_zycit036a-vldif  IS INITIAL.

      CLEAR itab_zycit036a-waers_dif.

    ELSE.

      v_sdif = v_sdif + itab_zycit036a-vldif.

    ENDIF.

...

 

...

           FROM marm INTO (v_um_rez, v_um_ren)

           WHERE matnr = p_matnr

           AND   meinh = p_meins.

  IF v_um_rez IS INITIAL

    OR v_um_ren IS INITIAL.

    EXIT.

  ENDIF.

  p_menge = ( p_menge / v_um_ren ) * v_um_rez.

  CLEAR: v_um_rez, v_um_ren.

ENDFORM.

* >> Início da inclusão:

FORM sel_docts.

  IF NOT itab_zycit036_aux2[] IS INITIAL.

    IF NOT itab_zycit003[] IS INITIAL.

      SELECT * FROM /pws/zycit263

       INTO TABLE itab_zycit263

       FOR ALL ENTRIES IN itab_zycit003

       WHERE nrseq EQ itab_zycit003-nrseq

         AND ebelp EQ itab_zycit003-ebelp

         AND ebeln EQ itab_zycit003-ebeln.

      IF NOT itab_zycit263[] IS INITIAL AND NOT it_fat IS INITIAL.

        SELECT * FROM /pws/zycit006

         INTO TABLE it_fat

         FOR ALL ENTRIES IN itab_zycit263

         WHERE nrseq     EQ itab_zycit263-nrseq_pgfat

           AND eliminado NE 'X'  .

      ENDIF.

    ENDIF.

    IF itab_zycit008 IS INITIAL.

      SELECT * FROM /pws/zycit008

       INTO TABLE itab_zycit008

       FOR ALL ENTRIES IN itab_zycit036_aux2

       WHERE nrseq EQ itab_zycit036_aux2-nrseqori.

    ENDIF.

    IF itab_zycit042 IS INITIAL.

      SELECT * FROM /pws/zycit042

       INTO TABLE itab_zycit042

       FOR ALL ENTRIES IN itab_zycit036_aux2

       WHERE nrseq  EQ itab_zycit036_aux2-nrseq

         AND ebelp  EQ itab_zycit036_aux2-ebelp

         AND ebeln  EQ itab_zycit036_aux2-ebeln.

      IF NOT itab_zycit042[] IS INITIAL.

        SELECT * FROM /pws/zycit041

          INTO TABLE itab_zycit041

          FOR ALL ENTRIES IN itab_zycit042

          WHERE nrseq  EQ itab_zycit042-nrseqnf.

      ENDIF.

    ENDIF.

    IF itab_zycit265 IS INITIAL.

      SELECT * FROM /pws/zycit265

       INTO TABLE itab_zycit265

       FOR ALL ENTRIES IN itab_zycit036_aux2

       WHERE nrseq  EQ itab_zycit036_aux2-nrseq

         AND ebelp  EQ itab_zycit036_aux2-ebelp

         AND ebeln  EQ itab_zycit036_aux2-ebeln.

    ENDIF.

    IF NOT itab_zycit265[] IS INITIAL AND itab_zycit264 IS INITIAL.

      SELECT * FROM /pws/zycit264

        INTO TABLE itab_zycit264

        FOR ALL ENTRIES IN itab_zycit265

        WHERE nrseqnf  EQ itab_zycit265-nrseqnf.

    ENDIF.

    IF itab_zycit027 IS INITIAL.

      SELECT * FROM /pws/zycit027

       INTO TABLE itab_zycit027

       FOR ALL ENTRIES IN itab_zycit036_aux2

       WHERE nrseq  EQ itab_zycit036_aux2-nrseq

         AND nradto EQ itab_zycit036_aux2-nrseqori.

    ENDIF.

    IF NOT itab_zycit027[] IS INITIAL AND itab_zycit026 IS INITIAL.

      SELECT * FROM /pws/zycit026

        INTO TABLE itab_zycit026

        FOR ALL ENTRIES IN itab_zycit027

        WHERE nrseq  EQ itab_zycit027-nrseq

          AND nrpres EQ itab_zycit027-nradto.

    ENDIF.

  ENDIF.

ENDFORM.

FORM conversao_vlreal USING v_real v_waers.

  PERFORM converter_moeda

             USING v_real

                   v_waers

                   /pws/zycbt007-waersb

             CHANGING v_vlreal.

  PERFORM converter_moeda

             USING v_vlreal

                   /pws/zycbt007-waersb

                   /pws/zycie001-waers

              CHANGING v_real.

ENDFORM.

FORM read_docts USING    p_origem

                         p_nrseqori

                CHANGING p_data.

  CASE p_origem.

    WHEN 'AD'.

      READ TABLE itab_zycit008 WITH KEY

                               nrseq = itab_zycit036-nrseqori

                               tpgto = 'A'.

      MOVE itab_zycit008-dtaprov TO p_data.

    WHEN 'DC'.

      READ TABLE itab_zycit008 WITH KEY

                               nrseq = itab_zycit036-nrseqori

                               tpgto = 'D'.

      MOVE itab_zycit008-dtaprov TO p_data.

    WHEN 'PC'.

      READ TABLE itab_zycit026 WITH KEY

                                  nrseq  = itab_zycit036-nrseq

                                nrpres = itab_zycit036-nrseqori.

      MOVE itab_zycit026-dtaprov TO p_data.

  ENDCASE.

ENDFORM.

FORM altera_moeda_aux.

  SELECT SINGLE * FROM tcurx INTO wa_tcurx WHERE

  currkey = itab_zycit036_conve-waers_real.

  IF sy-subrc EQ 0.

    PERFORM retorna_decimais USING itab_zycit036_conve-waers_real

                              CHANGING itab_zycit036_conve-vlreal.

  ELSE.

    PERFORM trata_decimais USING itab_zycit036_conve-waers_real

                           CHANGING itab_zycit036a-vlreal.

  ENDIF.

  IF NOT /pws/zycit085-dttax IS INITIAL.

    IF /pws/zycit000-flag_desp IS INITIAL.

      PERFORM converter_moeda USING

                       itab_zycit036_conve-vlreal

                      itab_zycit036_conve-waers_real

                             /pws/zycbt007-waersb

                          CHANGING v_vlbrl_a.

      PERFORM converter_moeda USING v_vlbrl_a

                         /pws/zycbt007-waersb

                         v_medestino_a

                             CHANGING itab_zycit036a-vlreal.

    ELSE.

      IF itab_zycit036_conve-waers_real NE /pws/zycbt007-waersb.

        PERFORM taxa_converte USING itab_zycit036_conve-waers_real

                                               /pws/zycit085-dttax

                                                  CHANGING  v_taxa.

      ELSE.

        v_taxa = 1.

      ENDIF.

      v_vlbrl_a = itab_zycit036_conve-vlreal  * v_taxa.

      IF  v_medestino_a NE /pws/zycbt007-waersb.

        PERFORM taxa_converte USING  v_medestino_a

                                     /pws/zycit085-dttax

                              CHANGING  v_taxa.

      ELSE.

        v_taxa = 1.

      ENDIF.

      IF NOT v_taxa IS INITIAL.

        itab_zycit036a-vlreal = v_vlbrl_a  / v_taxa.

      ENDIF.

    ENDIF.

  ELSEIF NOT /pws/zycit085-dttax IS INITIAL AND

         s_msg1 = 'X'.

    PERFORM converter_moeda USING

                  itab_zycit036_conve-vlreal

                        itab_zycit036_conve-waers_real

                               /pws/zycbt007-waersb

                        CHANGING v_vlbrl_a.

    PERFORM converter_moeda USING v_vlbrl_a

                                   /pws/zycbt007-waersb

                             v_medestino_a

                          CHANGING itab_zycit036a-vlreal.

  ENDIF.

  SELECT SINGLE * FROM tcurx INTO wa_tcurx WHERE

  currkey = v_medestino_a.

  itab_zycit036a-waers_real = v_medestino_a.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI010O01

 

...

  v_index = v_index + 1.

endmodule.

module status_0001 output.

  set pf-status '0001'.

  set titlebar '0001'.

  clear: /pws/zycie001,

         /pws/zycie001a.

endmodule.

module carrega_zycbe003 output.

move-corresponding itab_zycit003_custo to /pws/zycie003.

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

move itab_zycit003_custo-netprt to v_netprt.

perform trata_decimais using /pws/zycie003-waers

                    changing v_netprt.

* << Fim da exclusão

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

move itab_zycit003_custo-netpr to v_netprt.

* << Fim da inclusão

move: /pws/zycie003-vlreal to v_vlreal_tl,

      /pws/zycie003-vlmov  to v_vlmov_tl,

      /pws/zycie003-vldif  to v_vldif_tl.

v_netprt    = v_netprt    / 100000.

v_vlreal_tl = v_vlreal_tl / 100000.

v_vlmov_tl  = v_vlmov_tl  / 100000.

v_vldif_tl  = v_vldif_tl  / 100000.

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

  IF /pws/zycie003-waers_real NE /pws/zycie001-waers_real.

* << Fim da exclusão

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

  IF /pws/zycie003-waers NE /pws/zycie001-waers.

perform trata_decimais using /pws/zycie003-waers

                    changing v_netprt.

  ENDIF.

  IF /pws/zycie003-waers_real NE /pws/zycie001-waers.

* << Fim da inclusão

    PERFORM trata_decimais USING /pws/zycie003-waers_real

                        CHANGING v_vlreal_tl.

  ENDIF.

  IF /pws/zycie003-waers_mov NE /pws/zycie001-waers_mov.

    PERFORM trata_decimais USING /pws/zycie003-waers_mov

                        CHANGING v_vlmov_tl.

  ENDIF.

  IF /pws/zycie003-waers_dif NE /pws/zycie001-waers_dif.

    PERFORM trata_decimais USING /pws/zycie003-waers_dif

                        CHANGING v_vldif_tl.

...

 

...

  set pf-status '0002'.

  set titlebar '0002'.

endmodule.

module status_0004 output.

  set pf-status '0004'.

  set titlebar '0004'.

endmodule.

module carrega_zycbe036 output.

check not itab_zycit036-nrseq is initial.

move itab_zycit036 to /pws/zycie036.

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

if itab_zycit036-netpr ne 0 and

  itab_zycit036-origem ne 'PED'.

  perform trata_decimais using itab_zycit036-waers

                         changing /pws/zycie036-netpr.

endif.

* << Fim da exclusão

describe table itab_zycit036 lines v_lin.

tc_despesas-lines = v_lin.

endmodule.

module set_screen_tc_despesas output.

  if /pws/zycie036-codigo eq 'IPI'.

    loop at screen.

      if screen-name ne '/PWS/ZYCIE036-CODIGO'.

        screen-input = '1'.

        modify screen.

      endif.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI010O02

 

...

  MOVE itab_zycit036_ori TO /pws/zycie036.

ENDMODULE.

MODULE set_screen_0100 OUTPUT.

  PERFORM carrega_cgc.

  CLEAR v_resp.

ENDMODULE.

MODULE monta_tela_custo OUTPUT.

ENDMODULE.

MODULE monta_tela_custo_item OUTPUT.

ENDMODULE.

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

MODULE carrega_totais OUTPUT.

* << Fim da exclusão

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

MODULE

carrega_totais OUTPUT.

* << Fim da inclusão

  CLEAR : v_tplan, v_sdif.

  CLEAR:  v_trea, v_tmov, v_tdif, v_sdif.

  CLEAR:  v_trea.

  LOOP AT itab_zycit036a.

    IF itab_zycit036a-waers NE /pws/zycie001-waers_plan

      AND NOT itab_zycit036a-netpr IS INITIAL.

      PERFORM converter_moeda USING

                              itab_zycit036a-netpr

                              itab_zycit036a-waers

                              /pws/zycie001-waers_plan

...

 

...

      PERFORM retorna_decimais USING /pws/zycie001-waers_plan

                           CHANGING v_tplan_conv.

      v_tplan =  v_tplan  + v_tplan_conv.

    ELSE.

      v_tplan =  v_tplan + itab_zycit036a-netpr.

    ENDIF.

    IF itab_zycit036a-waers_real NE /pws/zycie001-waers_real

     AND NOT itab_zycit036a-vlreal IS INITIAL.

      IF itab_zycit036a-codigo = 'FOB' OR itab_zycit036a-codigo =

 'SEGURO' OR itab_zycit036a-codigo = 'FRETEI'.

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

       READ TABLE itab_zycit140 WITH KEY codigo = itab_zycit036a-codigo.

* << Fim da exclusão

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

       READ TABLE itab_zycit140 WITH KEY codigo = itab_zycit036a-codigo

                                          custo  = 'X'.

* << Fim da inclusão

        IF sy-subrc = 0.

          IF itab_zycit140-origem = 'NF'.

            READ TABLE itab_zycit085 INDEX 1.

            IF itab_zycit036a-waers_real EQ itab_zycit085-waersseg.

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

           v_treal_aux = itab_zycit036a-vlreal * itab_zycit085-ukursseg

  .

              IF itab_zycit085-ukursfob > 0.

                v_treal_aux = v_treal_aux / itab_zycit085-ukursfob.

* << Fim da exclusão

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

           v_treal_aux = itab_zycit036a-vlreal * itab_zycit085-ukursseg.

* << Fim da inclusão

                v_treal_conv  =   v_treal_aux.

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

              ENDIF.

* << Fim da exclusão

            ELSE.

              PERFORM taxa_converte USING  itab_zycit036a-waers_real

                                           itab_zycit085-dttax

                             CHANGING  v_taxa.

              IF NOT v_taxa IS INITIAL.

                v_treal_aux = itab_zycit036a-vlreal * v_taxa.

                IF itab_zycit085-ukursfob > 0.

                  v_treal_aux = v_treal_aux / itab_zycit085-ukursfob.

                  v_treal_conv  =   v_treal_aux.

                ENDIF.

              ENDIF.

            ENDIF.

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

            PERFORM retorna_decimais USING itab_zycit036a-waers_real

                                CHANGING v_treal_conv.

* << Fim da inclusão

          ELSE.

            PERFORM converter_moeda USING

                            itab_zycit036a-vlreal

                            itab_zycit036a-waers_real

                            /pws/zycie001-waers_real

              CHANGING v_treal_aux.

            v_treal_conv  =   v_treal_aux.

          ENDIF.

        ENDIF.

      ELSE.

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

        PERFORM converter_moeda USING

                                itab_zycit036a-vlreal

                                itab_zycit036a-waers_real

                                /pws/zycie001-waers_real

                  CHANGING v_treal_aux.

* << Fim da exclusão

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

            READ TABLE itab_zycit085 INDEX 1.

            IF itab_zycit036a-waers_real ne itab_zycit085-waersseg.

           v_treal_aux = itab_zycit036a-vlreal * itab_zycit085-ukursseg

.

* << Fim da inclusão

        v_treal_conv  =   v_treal_aux.

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

            PERFORM retorna_decimais USING itab_zycit036a-waers_real

                                CHANGING v_treal_conv.

            ENDIF.

* << Fim da inclusão

      ENDIF.

      PERFORM retorna_decimais USING /pws/zycie001-waers_real

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

                           CHANGING v_treal_conv.

      PERFORM trata_decimais USING /pws/zycie001-waers_real

* << Fim da exclusão

                           CHANGING v_treal_conv.

      v_trea  =  v_trea  + v_treal_conv.

    ELSE.

      v_treal_conv = itab_zycit036a-vlreal.

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

      PERFORM retorna_decimais USING itab_zycit036a-waers_real

* << Fim da exclusão

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

      PERFORM retorna_decimais USING /pws/zycie001-waers_real

                           CHANGING v_treal_conv.

      PERFORM trata_decimais USING /pws/zycie001-waers_real

* << Fim da inclusão

                   CHANGING v_treal_conv.

      v_trea  =  v_trea  + v_treal_conv.

    ENDIF.

    IF v_resp EQ '1'.

      /pws/zycie001-waers_mov = /pws/zycbt007-waersb.

    ENDIF.

    IF itab_zycit036a-waers_mov NE /pws/zycie001-waers_mov

      AND NOT itab_zycit036a-vlmov IS INITIAL.

      PERFORM converter_moeda USING

                              itab_zycit036a-vlreal

...

 

...

                           CHANGING v_tdif_conv.

      PERFORM retorna_decimais USING /pws/zycie001-waers_dif

                           CHANGING v_tdif_conv.

      v_sdif  =  v_sdif  + v_tdif_conv .

    ELSE.

      v_sdif  =  v_sdif  + itab_zycit036a-vldif.

    ENDIF.

  ENDLOOP.

  IF v_alt_moeda IS INITIAL.

  ENDIF.

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

  PERFORM trata_decimais USING /pws/zycie001-waers_real

                         CHANGING v_trea.

* << Fim da exclusão

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

  PERFORM retorna_decimais USING /pws/zycie001-waers_mov

                         CHANGING v_tmov.

* << Fim da inclusão

  WRITE v_sdif TO v_tdif CURRENCY /pws/zycie001-waers_dif

                                        RIGHT-JUSTIFIED.

  WRITE: v_trea TO v_srea CURRENCY /pws/zycie001-waers_real

                                            RIGHT-JUSTIFIED,

         v_tmov TO v_smov CURRENCY /pws/zycie001-waers_mov

                                            RIGHT-JUSTIFIED,

         v_tplan TO v_spla CURRENCY /pws/zycie001-waers_plan

                                            RIGHT-JUSTIFIED.

  SORT itab_zycit036.

  IF itab_zycit036_conve[] IS INITIAL.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI010TOP

 

...

        prctr  like aufk-prctr,

      end of itab_aufk.

data: begin of itab_zyglt100 occurs 10.

        include structure /pws/zyglt100.

data: end of itab_zyglt100.

data: begin of itab_cta occurs 0.

        include structure /pws/zygle316.

data: end of itab_cta.

data: it_bkpf          like bkpf          occurs 0 with header line,

      it_zycit006_aux2 like /pws/zycit006 occurs 0 with header line.

* >> Início da inclusão:

data: it_fat like /pws/zycit006 occurs 0 with header line,

      it_dc  like /pws/zycit008 occurs 0 with header line,

      it_pc  like /pws/zycit026 occurs 0 with header line,

      it_nf  like /pws/zycit042 occurs 0 with header line.

* << Fim da inclusão

data:

  wa_zycbt007     like /pws/zycbt007,

  wa_zycbt011     like /pws/zycbt011,

  wa_zycit036     like /pws/zycit036,

  wa_tcurx        like   tcurx.

controls:

  tc_itens          type tableview using screen '0003',

  tc_embarque       type tableview using screen '0002',

  tc_despesas       type tableview using screen '0004',

  tc_desp_emb       type tableview using screen '0100',

...

 

...

      v_treal like /pws/zycit036-vlreal,

      v_tabix like sy-tabix.

  data: v_tplan_conv like /pws/zycit085-vlfob,

        v_treal_conv(16) type p decimals 2,

        v_tmov_conv  like /pws/zycit085-vlfob,

        v_tdif_conv  like /pws/zycit085-vlfob,

        v_tplan_aux like /pws/zycit036-netpr,

        v_treal_aux like /pws/zycit036-netpr,

        v_tmov_aux  like /pws/zycit036-netpr,

        v_tdif_aux  like /pws/zycit036-vldif.

* >> Início da exclusão:

Data: v_erro_m    like sy-subrc,

      v_erro_m1   like sy-subrc,

      v_demoeda   like /pws/zycit036-waers,

      v_paramoeda like /pws/zycit036-waers.

* << Fim da exclusão

* >> Início da inclusão:

  DATA: v_vlreal_t LIKE itab_zycit036a-vlreal,

        v_dtreal   LIKE sy-datum.

* << Fim da inclusão

selection-screen begin of screen 0006.

selection-screen begin of block b1 with frame title text-076.

select-options : s_emb for /pws/zycit001-nrseq.

selection-screen end of block b1.

selection-screen begin of block b2 with frame title text-077.

parameters: p_desp  radiobutton group p,

            p_item  radiobutton group p.

selection-screen end of block b2.

selection-screen end of screen 0006.

at selection-screen output.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI010X01

 

...

      bklas type mbew-bklas.

data: end of itab_classe_aval.

data: begin of itab_param_classe occurs 0.

        include structure /pws/zycit135.

data: end of itab_param_classe.

data: begin of itab_zycit003 occurs 0.

        include structure /pws/zycit003.

data: netprt type /pws/zycil816 .

data:  mark.

data: end of itab_zycit003.

* >> Início da inclusão:

data: itab_zycit263 like /pws/zycit263 occurs 0 with header line,

      itab_zycit008 like /pws/zycit008 occurs 0 with header line,

      itab_zycit027 like /pws/zycit027 occurs 0 with header line,

      itab_zycit264 like /pws/zycit264 occurs 0 with header line,

      itab_zycit265 like /pws/zycit265 occurs 0 with header line.

* << Fim da inclusão

data: begin of itab_anlz occurs 0        .

data: anln1  type anlz-anln1     ,

      anln2  type anlz-anln2     ,

      gsber  type anlz-gsber     .

data: end of itab_anlz                   .

data:    v_vldif1     type /pws/zycit003-vldif,

         v_mr22.

data: begin of itab_zycit398 occurs 0.

        include structure /pws/zycit398.

data: end of itab_zycit398.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR007

 

...

DATA: END OF itab_zycbt035_aux.

DATA: BEGIN OF itab_zycie031 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie031.

DATA: END OF itab_zycie031.

DATA: BEGIN OF itab_zycie031_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie031.

DATA: END OF itab_zycie031_aux.

DATA: BEGIN OF itab_botoes OCCURS 0.

DATA: bname(20) TYPE c.

DATA: END OF itab_botoes.

* >> Início da inclusão:

DATA: BEGIN OF itab_zycit001 OCCURS 0.

DATA:  nrseq      LIKE /pws/zycie001-nrseq     ,

       waers_real LIKE /pws/zycie001-waers_real,

       waers_mov  LIKE /pws/zycie001-waers_mov ,

       waers_dif  LIKE /pws/zycie001-waers_dif.

DATA: END OF itab_zycit001.

DATA: BEGIN OF itab_zycit003 OCCURS 0.

DATA:  nrseq LIKE /pws/zycie003-nrseq,

       ebeln LIKE /pws/zycie003-ebeln,

       ebelp LIKE /pws/zycie003-ebelp.

DATA: END OF itab_zycit003.

data:  wa_tcurx like tcurx.

* << Fim da inclusão

DATA:

  e_okcode     LIKE sy-ucomm  ,

  v_unit       LIKE ekpo-meins,

* >> Início da exclusão:

  v_tcode      LIKE sy-tcode  .

* << Fim da exclusão

* >> Início da inclusão:

  v_tcode      LIKE sy-tcode,

  v_wrbtr                   like /pws/zycie003-vlreal.

* << Fim da inclusão

START-OF-SELECTION.

  IMPORT v_tcode            FROM MEMORY ID 'V_TCODE'.

  IF v_tcode eq '/PWS/ZYCI001_E'.

    MOVE 'CONTAB' TO itab_botoes-bname.

    APPEND itab_botoes.

  ELSE.

    CLEAR itab_botoes. REFRESH itab_botoes.

  ENDIF.

  SET PF-STATUS '0001' EXCLUDING itab_botoes.

  PERFORM selecionar_dados.

...

 

...

            97 '|', text-006,

           110 '|', text-007,

           123 '|', text-008,

           136 '|', text-009,

           154 '|', text-010,

           172 '|', text-016,

           183 '|'.

  ULINE AT /(183).

  IF NOT itab_zycie031_aux[] IS INITIAL.

    LOOP AT itab_zycie031_aux.

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

      CLEAR: itab_zycit001, itab_zycit003, v_wrbtr.

      v_wrbtr = itab_zycie031_aux-wrbtr.

      v_wrbtr = v_wrbtr / 1000.

      READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycie031_aux-ebeln

                                        ebelp = itab_zycie031_aux-ebelp.

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.

        IF sy-subrc EQ 0.

          IF itab_zycie031_aux-waers NE itab_zycit001-WAERS_dif.

            PERFORM trata_decimais USING itab_zycie031_aux-waers

                                CHANGING v_wrbtr.

          ENDIF.

        ENDIF.

      ENDIF.

* << Fim da inclusão

      WRITE:  /00 '|', itab_zycie031_aux-ebeln,

               14 '|', itab_zycie031_aux-ebelp,

               24 '|', itab_zycie031_aux-matnr,

               36 '|', itab_zycie031_aux-menge  UNIT v_unit,

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

               53 '|', itab_zycie031_aux-wrbtr CURRENCY

   /pws/zycbt007-waersb,

* << Fim da exclusão

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

               53 '|', v_wrbtr CURRENCY /pws/zycbt007-waersb,

* << Fim da inclusão

               72 '|',

               91 '|',

               97 '|',

              110 '|',

              123 '|',

              136 '|',

              154 '|',

              172 '|',

              183 '|'.

      CLEAR itab_zycie031_aux.

    ENDLOOP.

    ULINE AT /(183).

  ENDIF.

  IF NOT itab_zycbt035_aux[] IS INITIAL.

    SORT itab_zycbt035_aux BY ebeln ebelp matuse d_newko.

    LOOP AT itab_zycbt035_aux.

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

      CLEAR: itab_zycit001, itab_zycit003, v_wrbtr.

      v_wrbtr = itab_zycbt035_aux-wrbtr.

      v_wrbtr = v_wrbtr / 1000.

      READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycbt035_aux-ebeln

                                        ebelp = itab_zycbt035_aux-ebelp.

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.

        IF sy-subrc EQ 0.

          IF itab_zycbt035_aux-waers NE itab_zycit001-WAERS_dif.

            PERFORM trata_decimais USING itab_zycbt035_aux-waers

                                CHANGING v_wrbtr.

          ENDIF.

        ENDIF.

      ENDIF.

* << Fim da inclusão

      IF itab_zycbt035_aux-bschl EQ '40'.

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

        itab_zycbt035_aux-wrbtr = itab_zycbt035_aux-wrbtr * -1.

* << Fim da exclusão

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

        v_wrbtr = v_wrbtr * -1.

* << Fim da inclusão

      ENDIF.

      WRITE:  /00 '|', itab_zycbt035_aux-ebeln,

               14 '|', itab_zycbt035_aux-ebelp,

               24 '|', itab_zycbt035_aux-matnr,

               36 '|', itab_zycbt035_aux-menge  UNIT v_unit,

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

               53 '|', itab_zycbt035_aux-wrbtr  CURRENCY

  /pws/zycbt007-waersb,

* << Fim da exclusão

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

               53 '|', v_wrbtr CURRENCY /pws/zycbt007-waersb,

* << Fim da inclusão

               72 '|', itab_zycbt035_aux-newko,

               91 '|', itab_zycbt035_aux-matuse,

               97 '|', itab_zycbt035_aux-d_gsber,

              110 '|', itab_zycbt035_aux-d_kostl,

              123 '|', itab_zycbt035_aux-d_prctr,

              136 '|', itab_zycbt035_aux-d_fictr,

              154 '|', itab_zycbt035_aux-d_fipos,

              172 '|', itab_zycbt035_aux-ps_psp_pnr,

              183 '|'.

    ENDLOOP.

...

 

...

    ULINE AT /(51).

    WRITE: /00 '|', text-014,

            51 '|'.

    ULINE AT /(51).

    WRITE:  /00 '|', text-003,

             14 '|', text-011,

             33 '|', text-012,

             51 '|'.

    ULINE AT /(51).

    LOOP AT itab_zycie031.

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

      CLEAR: itab_zycit001, itab_zycit003, v_wrbtr.

      v_wrbtr = itab_zycie031-wrbtr.

      v_wrbtr = v_wrbtr / 1000.

      READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycie031-ebeln

                                        ebelp = itab_zycie031-ebelp.

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.

        IF sy-subrc EQ 0.

          IF itab_zycie031-waers NE itab_zycit001-WAERS_dif.

            PERFORM trata_decimais USING itab_zycie031-waers

                                CHANGING v_wrbtr.

          ENDIF.

        ENDIF.

      ENDIF.

* << Fim da inclusão

      WRITE:  /00 '|', itab_zycie031-matnr,

               14 '|', itab_zycie031-menge UNIT v_unit,

              33 '|', itab_zycie031-wrbtr CURRENCY /pws/zycbt007-waersb,

               51 '|'.

    ENDLOOP.

    ULINE  AT /(51).

    SKIP.

  ENDIF.

  IF NOT itab_zycbt035[] IS INITIAL.

    ULINE AT /(119).

...

 

...

             36 '|', text-005,

             41 '|', text-006,

             53 '|', text-007,

             66 '|', text-008,

             79 '|', text-009,

             98 '|', text-010,

            115 '|', text-016,

            126 '|'.

    ULINE AT /(126).

    LOOP AT itab_zycbt035.

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

      CLEAR: itab_zycit001, itab_zycit003, v_wrbtr.

      v_wrbtr = itab_zycbt035-wrbtr.

      v_wrbtr = v_wrbtr / 1000.

      READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycbt035-ebeln

                                        ebelp = itab_zycbt035-ebelp.

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.

        IF sy-subrc EQ 0.

          IF itab_zycbt035-waers NE itab_zycit001-WAERS_dif.

            PERFORM trata_decimais USING itab_zycbt035-waers

                                CHANGING v_wrbtr.

          ENDIF.

        ENDIF.

      ENDIF.

* << Fim da inclusão

      IF itab_zycbt035-bschl EQ '50'.

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

        itab_zycbt035-wrbtr = itab_zycbt035-wrbtr * -1.

* << Fim da exclusão

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

        v_wrbtr = v_wrbtr * -1.

* << Fim da inclusão

      ENDIF.

      WRITE:  /00 '|', itab_zycbt035-d_newko,

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

              17 '|', itab_zycbt035-wrbtr CURRENCY /pws/zycbt007-waersb,

* << Fim da exclusão

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

               17 '|', v_wrbtr CURRENCY /pws/zycbt007-waersb,

* << Fim da inclusão

               36 '|', itab_zycbt035-matuse,

               41 '|', itab_zycbt035-d_gsber,

               53 '|', itab_zycbt035-d_kostl,

               66 '|', itab_zycbt035-d_prctr,

               79 '|', itab_zycbt035-d_fictr,

               98 '|', itab_zycbt035-d_fipos,

              115 '|', itab_zycbt035-ps_psp_pnr,

              126 '|'.

    ENDLOOP.

    ULINE AT /(126).

...

 

...

                                matuse  = itab_zycbt035_aux-matuse

                                d_gsber = itab_zycbt035_aux-d_gsber

                                d_kostl = itab_zycbt035_aux-d_kostl

                                d_prctr = itab_zycbt035_aux-d_prctr

                                d_fictr = itab_zycbt035_aux-d_fictr

                                d_fipos = itab_zycbt035_aux-d_fipos.

    itab_zycbt035_aux-d_newko = itab_zycbt035-d_newko.

    itab_zycbt035_aux-newko = itab_zycbt035-newko.

    MODIFY itab_zycbt035_aux INDEX v_index.

  ENDLOOP.

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

  IF NOT itab_zycie031_aux[] IS INITIAL.

    SELECT nrseq ebeln ebelp

     FROM /pws/zycit003

     INTO TABLE itab_zycit003

     FOR ALL ENTRIES IN itab_zycie031_aux

     WHERE ebeln EQ itab_zycie031_aux-ebeln

       AND ebelp EQ itab_zycie031_aux-ebelp.

    IF sy-subrc EQ 0.

      SELECT nrseq waers_real waers_mov waers_dif

        FROM /pws/zycit001

        INTO TABLE itab_zycit001

        FOR ALL ENTRIES IN itab_zycit003

        WHERE nrseq EQ itab_zycit003-nrseq.

    ENDIF.

  ENDIF.

* << Fim da inclusão

ENDFORM.

* >> Início da inclusão:

FORM trata_decimais USING    p_moeda

                    CHANGING p_valor.

  SELECT SINGLE * FROM tcurx INTO wa_tcurx WHERE currkey = p_moeda.

  IF sy-subrc <> 0.

    wa_tcurx-currdec = 2.

  ENDIF.

  p_valor = p_valor * ( 10 ** ( wa_tcurx-currdec - 2 ) ).

ENDFORM.

* << Fim da inclusão