CE PLUS - Nota 008292

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Encerramento de Custo

Data/Hora da Publicação: 08/04/2009 00:00:00

Data/Hora Última Alteração: 22/02/2011 15:44:49

Descrição da Nota: AJUSTE DE PERFORMANCE

Sintoma

Ajuste de performance

 

 

Solução

Ajuste de performance

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

PLANEJADO E MOVIMENTADO DO ENCERRAMENTO ESTÁ INCORRETO PARA JPY

ERRO AO ALTERARMOEDA DE EXIBIÇÃO NO CUSTO EFETIVO.

SELECIONAR VALORES FUNDAP QUANDO A NOTA FISCAL É EXIBIDA

AO ENTRAR NO CUSTO DE EMBARQUE DE SERVIÇO,RECLAMA DA FALTA DA TAXA DA DI

TRATAMENTO PARA PARAMETR. DE FATOR DE MOEDA PARA TAXA CONVERSÃO NO SAP

EMBARQUE COM MAIS DE 1 ITEM PEGAR DT. INICIO PARA CALCULAR VL.PLANEJDADO

Informações Complementares

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

Nota Número 08292 Data: 08/04/2009 Hora: 11:44:40

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

 

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

Nota Número              : 08292

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00009

Agrupamento              : 00093

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

Referência às notas relacionadas:

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

 

02118  - 00001 - 6.0    - 00024  - PLANEJADO E MOVIMENTADO DO ENCERRAMENTO ESTÁ INCORRETO PARA JPY

02654  - 00002 - 6.0    - 00025  - ERRO AO ALTERARMOEDA DE EXIBIÇÃO NO CUSTO EFETIVO.

05395  - 00003 - 7.0    - 00003  - TRATAMENTO PARA PARAMETR. DE FATOR DE MOEDA PARA TAXA CONVERSÃO N

05762  - 00004 - 7.0    - 00004  - SELECIONAR VALORES FUNDAP QUANDO A NOTA FISCAL É EXIBIDA

06295  - 00005 - 7.0    - 00005  - AO ENTRAR NO CUSTO DE EMBARQUE DE SERVIÇO,RECLAMA DA FALTA DA TAX

07150  - 00006 - 7.0    - 00006  - EMBARQUE COM MAIS DE 1 ITEM PEGAR DT. INICIO PARA CALCULAR VL.PLA

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

AJUSTE DE PERFORMANCE

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

Palavras Chave:

AJUSTES - PERFORMANCE

/PWS/SAPMZYCI010 - /PWS/ZYCIR035 - /PWS/ZYCIR006

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

Objetos da nota:

REPS /PWS/MZYCI010F01

REPS /PWS/MZYCI010F03

REPS /PWS/MZYCI010X01

REPS /PWS/ZYCIR006

REPS /PWS/ZYCIR035

 

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

Modificações efetuadas em REPS /PWS/MZYCI010F01

 

...

FORM converter_moeda USING    p_devlme

                              p_deme

                              p_parame

                              p_data

                     CHANGING p_paravlme.

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

  DATA: v_pfact LIKE  tcurr-ffact.

* << Fim da inclusão

...

 

 

...

  IF p_devlme NE 0.

    IF p_deme IS INITIAL.

      v_deme = /pws/zycbt007-waersb.

    ELSE.

      v_deme = p_deme.

    ENDIF.

    IF p_parame IS INITIAL.

      v_parame = /pws/zycbt007-waersb.

    ELSE.

      v_parame = p_parame.

    ENDIF.

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

    LOOP AT itab_taxob08

                WHERE demoeda   = v_deme

                  AND paramoeda = v_parame

                  AND data      = p_data.

      p_paravlme  = ( ( itab_taxob08-tax / itab_taxob08-dfact ) *

                        itab_taxob08-pfact ) * p_devlme.

      EXIT.

    ENDLOOP.

    IF sy-subrc NE 0.

      IF /pws/zycit000-land1 IS INITIAL.

* << Fim da inclusão

    SELECT SINGLE * FROM t001 WHERE bukrs = /pws/zycie001-bukrs.

    SELECT SINGLE * FROM /pws/zycit000 WHERE land1 EQ t001-land1.

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

      ENDIF.

* << Fim da inclusão

    IF /pws/zycit000-kurst IS INITIAL.

      v_kurst = 'M'.

    ELSE.

      v_kurst = /pws/zycit000-kurst.

    ENDIF.

...

 

...

         EXPORTING

              i_montante                   = p_devlme

              i_demoeda                    = v_deme

              i_paramoeda                  = v_parame

              i_ctmoeda                    = v_kurst

              i_dtbase                     = p_data

         IMPORTING

              e_montante                   = p_paravlme

              e_txc                        = v_tax

              e_defator                    = v_dfact

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

                e_parafator                  = v_pfact

* << Fim da inclusão

         EXCEPTIONS

              i_demoeda_nao_encontrado     = 1

              i_paramoeda_nao_encontrado   = 2

              i_ctmoeda_nao_encontrado     = 3

              i_dtbase_nao_encontrada      = 4

              taxa_nao_encontrada          = 5

              fator_nao_encontrado         = 6

              i_montante_nao_encontrado    = 7

              tabela_categ_nao_configurada = 8

              OTHERS                       = 9.

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

      IF sy-subrc EQ 0.

        itab_taxob08-demoeda   = v_deme.

        itab_taxob08-paramoeda = v_parame.

        itab_taxob08-data      = p_data.

        itab_taxob08-tax       = v_tax.

        itab_taxob08-dfact     = v_dfact.

        itab_taxob08-pfact     = v_pfact.

        APPEND itab_taxob08.

      ENDIF.

* << Fim da inclusão

    IF sy-subrc NE 0.

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

      v_medestino = v_meatual.

      v_erro_conv = 'S'.

    ENDIF.

    IF v_tax < 0.

      MESSAGE e015 WITH text-066.

      CLEAR p_paravlme.

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

      ENDIF.

* << Fim da inclusão

    ENDIF.

  ENDIF.

  IF p_deme = 'JPY'.

    p_paravlme = p_paravlme * v_dfact.

  ENDIF.

ENDFORM.

...

 

...

        v_idx      LIKE sy-index                                   .

  CLEAR: itab_zycit140. FREE: itab_zycit140.

  SELECT SINGLE * FROM t001 WHERE bukrs = /pws/zycie001-bukrs.

  SELECT * FROM /pws/zycit140 INTO TABLE itab_zycit140

       WHERE codmod EQ 'D'

       AND   land1 EQ t001-land1.

  CLEAR: it_036_tmp. FREE: it_036_tmp.

  it_036_tmp[] = itab_zycit036_aux[].

  LOOP AT it_036_tmp.

    v_idx = sy-tabix.

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

    IF itab_zycit003-ebeln NE it_036_tmp-ebeln OR

       itab_zycit003-ebelp NE it_036_tmp-ebelp.

* << Fim da inclusão

    READ TABLE itab_zycit003 WITH KEY ebeln = it_036_tmp-ebeln

                                      ebelp = it_036_tmp-ebelp.

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

    ENDIF.

* << Fim da inclusão

    IF it_036_tmp-origem NE 'PED' .

      CLEAR: itab_zycit140.

      READ TABLE itab_zycit140 WITH KEY codigo = it_036_tmp-codigo

                                        origem = it_036_tmp-origem.

      IF sy-subrc EQ 0.

        IF itab_zycit140-custo EQ ' '.

          IF itab_zycit003-servico = 'X' AND

              ( it_036_tmp-codigo = 'FOB' OR

              it_036_tmp-codigo = 'CIF'   OR

              it_036_tmp-codigo = 'C&F' )  AND

              it_036_tmp-origem = 'FAT' .

          ELSE.

            DELETE itab_zycit036_aux WHERE nrseq  = it_036_tmp-nrseq

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

                                       AND ebeln  = it_036_tmp-ebeln

                                       AND ebelp  = it_036_tmp-ebelp

* << Fim da exclusão

                                       AND codigo = it_036_tmp-codigo

                                       AND origem = it_036_tmp-origem.

          ENDIF.

        ENDIF.

      ELSE.

        IF itab_zycit003-servico = 'X' AND

            ( it_036_tmp-codigo = 'FOB' OR

            it_036_tmp-codigo = 'CIF'   OR

            it_036_tmp-codigo = 'C&F' )  AND

            it_036_tmp-origem = 'FAT' .

        ELSE.

          DELETE itab_zycit036_aux WHERE nrseq  = it_036_tmp-nrseq

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

                                     AND ebeln  = it_036_tmp-ebeln

                                     AND ebelp  = it_036_tmp-ebelp

* << Fim da exclusão

                                     AND codigo = it_036_tmp-codigo

                                     AND origem = it_036_tmp-origem.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDLOOP.

  PERFORM cod_duplicados.

  PERFORM custeando_despesas.

ENDFORM.

...

 

...

  SELECT * FROM /pws/zycit006 INTO TABLE it_fat

    FOR ALL ENTRIES IN itab_zycit036_per

    WHERE nrseq EQ itab_zycit036_per-nrseqori.

  FREE it_dc.

  SELECT * FROM /pws/zycit008 INTO TABLE it_dc

    FOR ALL ENTRIES IN itab_zycit036_per

    WHERE nradto EQ itab_zycit036_per-nrseqori.

  FREE it_pc.

  SELECT * FROM /pws/zycit026 INTO TABLE it_pc          "#EC CI_NOFIRST

    FOR ALL ENTRIES IN itab_zycit036_per

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

    WHERE nrpres EQ itab_zycit036_per-nrseqori.

* << Fim da exclusão

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

    WHERE nrpres EQ itab_zycit036_per-nrseqori

      AND nrseq  EQ itab_zycit003-nrseq.

* << Fim da inclusão

  FREE it_nf.

  it_nf[] = itab_zycit042[].

  SORT itab_zycit036_aux BY nrseq ebeln ebelp.

  DATA : v_ebelp LIKE itab_zycit003-ebelp,

         v_ebeln LIKE itab_zycit003-ebeln.

  CLEAR: v_ebeln, v_ebelp.

  FREE itab_zycit003_custo.

  LOOP AT itab_zycit003.

    CLEAR itab_zycit003_custo.

    LOOP AT itab_zycit036_aux2

...

 

...

FORM cod_duplicados.

  CLEAR: v_codigo,

         v_vlreal.

  CLEAR: itab_zycit036_aux2. REFRESH: itab_zycit036_aux2.

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

  CLEAR itab_zycit036_plan. REFRESH itab_zycit036_plan.

* << Fim da inclusão

  SORT itab_zycit036_aux BY codigo.

  LOOP AT itab_zycit036_aux.

    IF itab_zycit036_aux-origem NE 'PED'.

      MOVE itab_zycit036_aux TO wa_zycit036.

      READ TABLE itab_zycit036_aux2 WITH KEY

                                    nrseq = itab_zycit036_aux-nrseq

                                    ebeln = itab_zycit036_aux-ebeln

                                    ebelp = itab_zycit036_aux-ebelp

                                   codigo = itab_zycit036_aux-codigo

                                   origem = itab_zycit036_aux-origem

...

 

...

                                            itab_zycit036_aux2-vldif.

        IF itab_zycit036_aux2-waers_dif IS INITIAL.

          itab_zycit036_aux2-waers_dif = itab_zycit036_aux-waers_dif.

        ENDIF.

        MODIFY itab_zycit036_aux2 INDEX v_index.

      ELSE.

        MOVE itab_zycit036_aux TO itab_zycit036_aux2.

        CLEAR: itab_zycit036_aux2-netpr.

        APPEND itab_zycit036_aux2.

      ENDIF.

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

    ELSE.

      MOVE itab_zycit036_aux TO itab_zycit036_plan.

      APPEND itab_zycit036_plan.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

  IF /pws/zycit000-fretepres = 'X'.

    LOOP AT itab_zycit036_aux2 WHERE

            ( origem = 'PC' OR

              origem = 'PCD' OR

              origem = 'FAT' ) AND

              codigo = 'FRETEI'.

      READ TABLE itab_zycit036_aux WITH KEY

                                   nrseq = itab_zycit036_aux2-nrseq

...

 

...

    IF sy-subrc = 0.

      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.

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

  ENDIF.

  CLEAR: itab_zycit036_plan.

  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.

* << Fim da exclusão

    ENDIF.

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

  ENDLOOP.

  SORT itab_zycit036_plan BY codigo.

* << Fim da exclusão

  LOOP AT itab_zycit036_plan.

    IF NOT itab_zycit036_plan-netpr = 0.

      READ TABLE itab_zycit036_aux2 WITH KEY

                               nrseq  = itab_zycit036_plan-nrseq

                               ebeln = itab_zycit036_plan-ebeln

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI010F03

 

...

FORM retira_imposto.

  CLEAR /pws/zycit398.

  DATA: v_bukrs LIKE /pws/zycit001-bukrs.

  IF itab_zycit100[] IS INITIAL.

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

    READ TABLE itab_zycit003 INDEX 1.

* << Fim da inclusão

    SELECT * FROM /pws/zycit100                         "#EC CI_NOFIRST

           INTO TABLE itab_zycit100

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

           FOR ALL ENTRIES IN itab_zycit003

           WHERE nrseq EQ itab_zycit003-nrseq

             AND ebeln EQ itab_zycit003-ebeln

             AND ebelp EQ itab_zycit003-ebelp.

* << Fim da exclusão

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

           WHERE nrseq EQ itab_zycit003-nrseq.

* << Fim da inclusão

  ENDIF.

  IF NOT itab_zycit003[] IS INITIAL.

    READ TABLE itab_zycit003 INDEX 1.

    SELECT SINGLE bukrs FROM /pws/zycit001 INTO v_bukrs

                             WHERE nrseq = itab_zycit003-nrseq.

  ENDIF.

  SELECT SINGLE * FROM t001w

    WHERE werks = /pws/zycie001-werks.

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

  IF v_remessa = 'X'.

    MOVE itab_zycit044[] TO itab_itens_nf[].

  ELSEIF NOT itab_zycit042[] IS INITIAL.

    LOOP AT itab_zycit042.

      MOVE-CORRESPONDING itab_zycit042 TO itab_itens_nf.

      APPEND itab_itens_nf.

    ENDLOOP.

  ENDIF.

* << Fim da exclusão

  v_clnf = 'G'.

  IF itab_zycit042[] IS INITIAL AND NOT

     itab_zycit003[] IS INITIAL.

    READ TABLE itab_zycit003 INDEX 1.

    SELECT * FROM /pws/zycit042                         "#EC CI_NOFIRST

           INTO TABLE itab_zycit042

           WHERE nrseq EQ itab_zycit003-nrseq.

  ENDIF.

  CLEAR itab_zycit398.

  REFRESH itab_zycit398 .

...

 

...

          ENDIF.

        ENDIF.

      ENDLOOP.

    ENDLOOP.

  ENDIF.

  SELECT SINGLE land1

    FROM t001

    INTO t001-land1

    WHERE bukrs EQ /pws/zycie001-bukrs.

  SELECT * FROM /pws/zycit029 INTO TABLE itab_zycit029

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

    WHERE land1 EQ t001-land1.                          "#EC CI_NOFIRST

* << Fim da exclusão

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

    WHERE land1 EQ t001-land1                           "#EC CI_NOFIRST

      AND codmod EQ 'D'.

* << Fim da inclusão

  LOOP AT itab_zycit036_aux .

    READ TABLE itab_zycit029 WITH KEY codigo = itab_zycit036_aux-codigo.

    IF itab_zycit029-estatistico = 'X'.

      itab_zycit036_aux-vlmov = ' '.

      itab_zycit036_aux-vldif = ' '.

      CLEAR: itab_zycit036_aux-waers_mov,

             itab_zycit036_aux-waers_dif.

    ENDIF.

    IF itab_zycit036_aux-origem = 'PED' AND

       itab_zycit029-provisao = 'X'.

...

 

...

FORM trata_decimais USING    p_moeda

                    CHANGING p_valor.

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

  READ TABLE itab_tcurx INTO wa_tcurx WITH KEY currkey = p_moeda.

  IF sy-subrc NE 0.

    CLEAR: wa_tcurx.

* << Fim da inclusão

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

  IF sy-subrc <> 0.

    wa_tcurx-currdec = 2.

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

    ENDIF.

    wa_tcurx-currkey = p_moeda.

    APPEND wa_tcurx TO itab_tcurx.

* << Fim da inclusão

  ENDIF.

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

ENDFORM.

...

 

...

FORM taxa_converte USING    p_waers

                            p_data

                   CHANGING p_taxa.

  CLEAR: p_taxa.

  DATA:  v_moeda LIKE tcurc-/pws/codmo,

         v_msgd(10).

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

  LOOP AT  itab_zycit174 INTO /pws/zycit174

              WHERE waers   = p_waers AND

                    vigen_inicio <= p_data  AND

                    vigen_fim    >= p_data     .

    p_taxa = /pws/zycit174-txconver.

    EXIT.

  ENDLOOP.

  IF sy-subrc NE 0.

* << Fim da inclusão

  SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE

         waers = p_waers.

  IF sy-subrc EQ 0.

    SELECT SINGLE * FROM /pws/zycit174 INTO /pws/zycit174 WHERE

           codconver = v_moeda    AND

           vigen_inicio <= p_data AND

           vigen_fim    >= p_data AND

           land1       = t001-land1.

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

      IF sy-subrc EQ 0.

        itab_zycit174 = /pws/zycit174.

        itab_zycit174-waers = p_waers.

        APPEND itab_zycit174.

      ELSEIF /pws/zycie001-tpdecl     EQ 'DI' AND

             /pws/zycie001-modalidade EQ '02' .

        itab_zycit174-txconver = '1'.

        itab_zycit174-vigen_fim =

        itab_zycit174-vigen_inicio = p_data.

        itab_zycit174-waers = p_waers.

        APPEND itab_zycit174.

      ENDIF.

* << Fim da inclusão

    IF sy-subrc EQ 0.

      p_taxa = /pws/zycit174-txconver.

    ELSE.

      IF ( /pws/zycie001-tpdecl EQ 'DI' AND

           /pws/zycie001-modalidade EQ '02' ).

        p_taxa = '1'.

      ELSE.

        CONCATENATE p_data+6(2) '/' p_data+4(2) '/' p_data+0(4)

        INTO v_msgd.

     CONCATENATE p_waers text-022 v_msgd INTO s_msg1 SEPARATED BY space.

        MESSAGE s015 WITH text-075 v_msgd.

      ENDIF.

    ENDIF.

  ELSE.

    s_msg1 = 'X'.

  ENDIF.

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

  ENDIF.

* << Fim da inclusão

ENDFORM.

...

 

...

  SELECT * FROM /pws/zycit036 INTO TABLE itab_zycit036_aux

    WHERE nrseq  = /pws/zycie001-nrseq.

  IF sy-subrc NE 0.

    MESSAGE w015 WITH text-034 /pws/zycie001-nrseq.

    LEAVE TO SCREEN 0.

    EXIT.

  ENDIF.

  PERFORM custeando_planejado(/pws/zycir035) TABLES it_desp

                                       itab_zycit036_plan.

  LOOP AT itab_zycit036_aux.

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

    CLEAR: itab_zycit036_plan.

* << Fim da inclusão

    READ TABLE itab_zycit036_plan WITH KEY

                     nrseq = itab_zycit036_aux-nrseq

                     ebeln = itab_zycit036_aux-ebeln

                     ebelp = itab_zycit036_aux-ebelp

                     codigo = itab_zycit036_aux-codigo.

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

    IF sy-subrc = 0.

* << Fim da exclusão

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

    IF sy-subrc = 0 AND

      ( itab_zycit036_plan-netpr NE itab_zycit036_aux-netpr OR

        itab_zycit036_plan-waers NE itab_zycit036_aux-waers ).

* << Fim da inclusão

      MOVE itab_zycit036_plan-netpr TO itab_zycit036_aux-netpr.

      MOVE itab_zycit036_plan-waers TO itab_zycit036_aux-waers.

      MODIFY itab_zycit036_aux.

      IF itab_zycit036_aux-origem = 'PED' .

        UPDATE /pws/zycit036 SET netpr = itab_zycit036_aux-netpr

                                 waers = itab_zycit036_aux-waers

          WHERE nrseq = itab_zycit036_aux-nrseq AND

                ebeln = itab_zycit036_aux-ebeln AND

                ebelp = itab_zycit036_aux-ebelp AND

                codigo = itab_zycit036_aux-codigo AND

                origem = 'PED'.

      ENDIF.

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

    ELSE.

* << Fim da exclusão

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

    ELSEIF itab_zycit036_plan-netpr NE itab_zycit036_aux-netpr.

* << Fim da inclusão

      IF itab_zycit036_aux-origem = 'PED'.

        CLEAR: itab_zycit036_aux-netpr.

        MODIFY itab_zycit036_aux.

        UPDATE /pws/zycit036 SET netpr = itab_zycit036_aux-netpr

          WHERE nrseq = itab_zycit036_aux-nrseq AND

                ebeln = itab_zycit036_aux-ebeln AND

                ebelp = itab_zycit036_aux-ebelp AND

                codigo = itab_zycit036_aux-codigo AND

                origem = 'PED'.

      ENDIF.

...

 

...

    PERFORM calcular_outros_custos_da(/pws/zycir006)

    TABLES itab_zycit036_aux2.

  ELSE.

    PERFORM calcular_outros_custos(/pws/zycir006) TABLES

   itab_zycit036_aux2.

  ENDIF.

  indx-aedat = sy-datlo.

  indx-usera = sy-uname.

  IMPORT itab_zycit036[] FROM MEMORY ID 'I006A'.

  LOOP AT itab_zycit036_aux2.

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

    CLEAR: itab_zycit036_ori2.

    READ TABLE itab_zycit036_ori2

            WITH KEY nrseq = itab_zycit036_aux2-nrseq

                ebeln = itab_zycit036_aux2-ebeln

                ebelp = itab_zycit036_aux2-ebelp

                codigo = itab_zycit036_aux2-codigo

                origem = itab_zycit036_aux2-origem

                nrseqori = itab_zycit036_aux2-nrseqori.

    IF  itab_zycit036_ori2-vlmov      NE itab_zycit036_aux2-vlmov OR

        itab_zycit036_ori2-waers_mov  NE itab_zycit036_aux2-waers_mov OR

        itab_zycit036_ori2-vldif      NE itab_zycit036_aux2-vldif OR

        itab_zycit036_ori2-waers_dif  NE itab_zycit036_aux2-waers_dif OR

        itab_zycit036_ori2-congelamov NE itab_zycit036_aux2-congelamov.

* << Fim da inclusão

    UPDATE /pws/zycit036 SET vlmov = itab_zycit036_aux2-vlmov

                             waers_mov = itab_zycit036_aux2-waers_mov

                             vldif = itab_zycit036_aux2-vldif

                             waers_dif = itab_zycit036_aux2-waers_dif

                             congelamov = itab_zycit036_aux2-congelamov

      WHERE nrseq = itab_zycit036_aux2-nrseq AND

            ebeln = itab_zycit036_aux2-ebeln AND

            ebelp = itab_zycit036_aux2-ebelp AND

            codigo = itab_zycit036_aux2-codigo AND

            origem = itab_zycit036_aux2-origem AND

            nrseqori = itab_zycit036_aux2-nrseqori.

    IF sy-subrc NE 0.

      INSERT /pws/zycit036 FROM itab_zycit036_aux2.

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

      ENDIF.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

  FREE MEMORY ID 'I006A'.

  MOVE itab_zycit036_aux2[] TO itab_zycit036_aux[].

  PERFORM retira_imposto.

  MOVE itab_zycit036_aux[] TO itab_zycit036_aux2[].

ENDFORM.

...

 

...

FORM retorna_decimais USING    p_moeda

                      CHANGING p_valor.

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

  READ TABLE itab_tcurx INTO wa_tcurx WITH KEY currkey = p_moeda.

  IF sy-subrc NE 0.

    CLEAR: wa_tcurx.

* << Fim da inclusão

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

  IF sy-subrc <> 0.

    wa_tcurx-currdec = 2.

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

    ENDIF.

    wa_tcurx-currkey = p_moeda.

    APPEND wa_tcurx TO itab_tcurx.

* << Fim da inclusão

  ENDIF.

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

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI010X01

 

...

* >> Início da inclusão:

DATA: BEGIN OF itab_zycit174 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit174.

DATA: waers TYPE /pws/zycit036-waers.

DATA: END OF itab_zycit174.

DATA BEGIN OF itab_taxob08 OCCURS 0.

DATA: demoeda   TYPE waers,

      paramoeda TYPE waers,

      data      TYPE sy-datum,

      tax       TYPE tcurr-ukurs,

      dfact     TYPE tcurr-ffact,

      pfact     TYPE tcurr-ffact.

DATA END OF itab_taxob08.

DATA: itab_tcurx TYPE tcurx OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

DATA: END OF COMMON PART b.

 

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

Modificações efetuadas em REPS /PWS/ZYCIR006

 

...

                         AND   belnr  = v_belnr_p

                         AND   gjahr  = v_dtincl+0(4).

              APPEND itab_bkpf.

              v_kursf = itab_bkpf-kursf.

            ENDIF.

          ENDIF.

        ENDIF.

        IF itab_zycit036-vlreal GT 0         AND

          NOT itab_zycit036-waers_real IS INITIAL.

          v_valor = itab_zycit036-vlreal.

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

          SELECT SINGLE * FROM tcurx WHERE

          currkey = itab_zycit036-waers_real.

          IF sy-subrc EQ 0.

* << Fim da exclusão

            PERFORM retorna_decimais USING itab_zycit036-waers_real

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

                                   CHANGING v_valor.

          ELSE.

            PERFORM trata_decimais USING itab_zycit036-waers_real

* << Fim da exclusão

                                   CHANGING v_valor.

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

          ENDIF.

* << Fim da exclusão

          IF v_itemcongela NE 'X'.

            itab_zycit036-waers_mov = /pws/zycbt007-waersb.

            IF NOT /pws/zycit085-ukursfob IS INITIAL.

              IF itab_zycit036-origem NE 'FAT'.

                itab_zycit036-vlmov = v_valor *

                                      /pws/zycit085-ukursfob.

              ELSE.

               PERFORM busca_fator_moed USING  itab_zycit036-waers_real

                                                   /pws/zycbt007-waersb

                                                          CHANGING v_de

...

 

...

FORM busca_fator_moed USING    p_waers

                               p_waersb

                      CHANGING p_de

                               p_para.

  IF /pws/zycit000-kurst IS INITIAL.

    /pws/zycit000-kurst = 'M'.

  ENDIF.

  LOOP AT itab_tcurf

          WHERE fcurr  = p_waers

            AND  tcurr  = p_waersb

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

            AND  gdatu >= sy-datum

* << Fim da exclusão

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

            AND  gdatu <= sy-datum

* << Fim da inclusão

            AND  kurst = /pws/zycit000-kurst.             "#EC PORTABLE

  ENDLOOP.

  IF sy-subrc NE 0.

    itab_tcurf-gdatu = '99999999' - sy-datum.

    SELECT SINGLE ffact tfact fcurr tcurr

                  gdatu kurst

      FROM tcurf

      INTO  itab_tcurf

      WHERE fcurr  = p_waers  AND

            tcurr  = p_waersb AND

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR035

 

...

* >> Início da inclusão:

DATA: itab_tcurx TYPE tcurx OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

DATA: it_zycit085 LIKE /pws/zycie085,

      wa_desp     LIKE it_desp,

      wa_036      LIKE itab_zycit036.

SELECTION-SCREEN BEGIN OF BLOCK di WITH FRAME TITLE text-001.

PARAMETER: pa_nrseq LIKE /pws/zycie085-nrseqdi,

           pa_plan AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK di.

PERFORM data_load TABLES it_desp USING pa_nrseq CHANGING v_ok.

IF v_ok = 'S'.

  PERFORM cria_despesas TABLES it_desp itab_zycit036.

...

 

...

FORM retorna_decimais USING    p_itab_zycit036_waers_real

                    CHANGING p_itab_zycit036_vlreal.

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

  READ TABLE itab_tcurx INTO tcurx

                    WITH KEY currkey = p_itab_zycit036_waers_real.

  IF sy-subrc NE 0.

    CLEAR: tcurx.

* << Fim da inclusão

  SELECT SINGLE * FROM tcurx WHERE currkey = p_itab_zycit036_waers_real.

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

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

    ENDIF.

    tcurx-currkey = p_itab_zycit036_waers_real.

    APPEND tcurx TO itab_tcurx.

* << Fim da inclusão

  ENDIF.

  p_itab_zycit036_vlreal =

...