CE PLUS - Nota 004495

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Relatórios

Data/Hora da Publicação: 22/08/2007 00:00:00

Data/Hora Última Alteração: 18/02/2011 15:45:38

Descrição da Nota: RELATÓRIO DE CONTRATOS - AJUSTES PERFORMANCE

Sintoma

Relatório de Contratos - Ajustes performance

 

 

Solução

Relatório de Contratos - Ajustes performance

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

PERFORMANCE NO RELATÓRIO DE CONTRATOS

RELATÓRIO DE CONTRATOS - ATUALIZAÇÃO DE CAMPO SALDO Á PAGAR

Informações Complementares

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

Nota Número 04495 Data: 22/08/2007 Hora: 17:23:33

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

 

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

Nota Número              : 04495

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00009

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

Referência às notas relacionadas:

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

 

03116  - 00001 - 6.0    - 00026  - RELATÓRIO DE CONTRATOS - ATUALIZAÇÃO DE CAMPO SALDO Á PAGAR

04385  - 00002 - 7.0    - 00002  - PERFORMANCE NO RELATÓRIO DE CONTRATOS

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

RELATÓRIO DE CONTRATOS - AJUSTES PERFORMANCE

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

Palavras Chave:

RELATÓRIO DE CONTRATOS - AJUSTES PERFORMANCE

 

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

Objetos da nota:

REPS /PWS/ZYCBR010

 

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

Modificações efetuadas em REPS /PWS/ZYCBR010

 

...

      AND dtdevol LE s_posic.

    SORT itab_zycbt050 BY nrseqc nrinvoic nrparcf gsberf.

    SELECT nrseqc nrinvoic nrparcf gsberf vlme

      FROM /pws/zycbt051

      INTO TABLE itab_zycbt051

      FOR ALL ENTRIES IN itab_zycbt001

      WHERE nrseqc  =  itab_zycbt001-nrseqc

        AND dtreceb LE s_posic

        AND tpdev   =  'RP'.

    SORT itab_zycbt051 BY nrseqc nrinvoic nrparcf gsberf.

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

    SELECT lifnr name1

           FROM lfa1

           INTO TABLE itab_bancos

           FOR ALL ENTRIES IN itab_zycbt001

           WHERE lifnr = itab_zycbt001-bconegoc

              OR lifnr = itab_zycbt001-bcofinan.

* << Fim da inclusão

    LOOP AT itab_zycbt001.

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

      CLEAR itab_relat.

* << Fim da exclusão

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

      CLEAR: itab_relat, v_vldev, v_slpagar, v_vlvinc, v_vlreceb,

             v_slvinc.

* << Fim da inclusão

      LOOP AT itab_zycbt003 WHERE nrseqc = itab_zycbt001-nrseqc.

        IF itab_zycbt001-dtentr LE itab_zycbt003-dtpror.

          itab_zycbt001-dtentr = itab_zycbt003-dtpror.

        ENDIF.

      ENDLOOP.

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

      LOOP AT itab_zycbt016 WHERE tpcontr = itab_zycbt001-tpcontr.

* << Fim da exclusão

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

      READ TABLE itab_zycbt016 WITH KEY tpcontr = itab_zycbt001-tpcontr.

      IF sy-subrc = 0.

* << Fim da inclusão

        MOVE:

         itab_zycbt016-txtdesc TO itab_relat-txtdesc.

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

      ENDLOOP.

* << Fim da exclusão

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

      ENDIF.

* << Fim da inclusão

      MOVE:

        itab_zycbt001-nrseqc   TO itab_relat-nrseqc,

...

 

...

        ENDIF.

        IF s_pagar <> '' AND p_compra = 'X'.

          v_type = 'G'.

        ENDIF.

        IF s_pagar <> '' AND  p_venda = 'X'.

          v_type = 'B'.

        ENDIF.

        IF s_pagar <> '' AND p_media = 'X'.

          v_type = 'M'.

        ENDIF.

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

        PERFORM verifica_periodo.

        MOVE:

          itab_zycbt002-tpparc   TO itab_relat-tpparc,

          itab_zycbt002-dtinicio TO itab_relat-dtinicio,

          itab_zycbt002-dtfinal  TO itab_relat-dtvencto,

          itab_zycbt002-txjfixa  TO itab_relat-txjfixa,

          itab_zycbt002-txjvar   TO itab_relat-txjvar,

          v_usd                  TO itab_relat-vlusd,

          v_prazo TO itab_relat-prazo.

        APPEND itab_relat.

      ENDLOOP.

      IF sy-subrc NE 0.

        LOOP AT itab_zycbt005 WHERE nrseqc = itab_relat-nrseqc.

          v_vlvinc = v_vlvinc + itab_zycbt005-vlvinc.

        ENDLOOP.

* << Fim da inclusão

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

        CLEAR v_vldev.

* << Fim da exclusão

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

        IF s_txcamb <> ''.

          itab_relat-slpagbr = itab_relat-slpagar * s_txcamb.

        ELSE.

          PERFORM calcula_valor_nacional.

        ENDIF.

        APPEND itab_relat.

      ELSE.

* << Fim da inclusão

        LOOP AT itab_zycbt050 WHERE nrseqc = itab_relat-nrseqc.

          v_vldev = v_vldev + itab_zycbt050-vldev.

        ENDLOOP.

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

        CLEAR v_slpagar.

* << Fim da exclusão

        LOOP AT itab_zycbt005 WHERE nrseqc = itab_zycbt001-nrseqc.

          loop at itab_zycbt006

                          where nrseqc = itab_zycbt005-nrseqc

                            and tpdesp = itab_zycbt005-tpdesp

...

 

...

              IF itab_zycbt001-tpcontr = 'DP'.

                v_slpagar = v_slpagar + itab_zycbt005-vlvinc.

              ELSE.

                v_slpagar = v_slpagar +

                 ( itab_zycbt006-vlme * itab_zycbt005-parid ).

              ENDIF.

            ELSE.

              v_slpagar = v_slpagar + itab_zycbt006-vlme.

            ENDIF.

          endloop.

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

          v_vlvinc = v_vlvinc + itab_zycbt005-vlvinc.

* << Fim da inclusão

        ENDLOOP.

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

        CLEAR v_vlreceb.

* << Fim da exclusão

        LOOP AT itab_zycbt051 WHERE nrseqc = itab_relat-nrseqc.

          v_vlreceb = v_vlreceb + itab_zycbt051-vlme.

        ENDLOOP.

        itab_relat-slpagar = itab_zycbt001-vlme - v_slpagar -

                             v_vldev + v_vlreceb.

        CLEAR: v_montante, v_taxacambial.

...

 

...

                                        /pws/zycbt007-waersb

                                        v_type

                                        s_posic

                                        CHANGING itab_relat-slpagbr

                                        v_taxacambial.

        ENDIF.

        IF s_txcamb <> ''.

          itab_relat-slpagbr = itab_relat-slpagar * s_txcamb.

        ENDIF.

        MOVE itab_relat-slpagbr TO v_montante.

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

        PERFORM verifica_periodo.

        MOVE:

          itab_zycbt002-tpparc   TO itab_relat-tpparc,

          itab_zycbt002-dtinicio TO itab_relat-dtinicio,

          itab_zycbt002-dtfinal  TO itab_relat-dtvencto,

          itab_zycbt002-txjfixa  TO itab_relat-txjfixa,

          itab_zycbt002-txjvar   TO itab_relat-txjvar,

          v_usd                  TO itab_relat-vlusd,

          v_prazo TO itab_relat-prazo.

        APPEND itab_relat.

      ENDLOOP.

      IF sy-subrc NE 0.

        IF s_txcamb <> ''.

          itab_relat-slpagbr = itab_relat-slpagar * s_txcamb.

        ELSE.

          PERFORM calcula_valor_nacional.

        ENDIF.

        APPEND itab_relat.

      ENDIF.

    ENDLOOP.

    IF NOT itab_relat[] IS INITIAL.

      SELECT lifnr name1

             FROM lfa1

             INTO TABLE itab_bancos

             FOR ALL ENTRIES IN itab_relat

             WHERE lifnr = itab_relat-bconegoc

                OR lifnr = itab_relat-bcofinan.

* << Fim da exclusão

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

        MODIFY itab_relat TRANSPORTING slpagar slpagbr

                          WHERE nrseqc = itab_zycbt001-nrseqc.

* << Fim da inclusão

    ENDIF.

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

    LOOP AT itab_relat.

      v_tabix = sy-tabix.

      READ TABLE itab_zycbt001 WITH KEY nrseqc = itab_relat-nrseqc.

      LOOP AT itab_zycbt005 WHERE nrseqc = itab_relat-nrseqc.

        v_vlvinc = v_vlvinc + itab_zycbt005-vlvinc.

      ENDLOOP.

* << Fim da exclusão

      itab_relat-vlvinc = v_vlvinc.

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

      v_slvinc          = itab_zycbt001-vlme - v_vlvinc + v_vldev.

* << Fim da inclusão

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

      v_slvinc = itab_zycbt001-vlme - v_vlvinc + v_vldev.

* << Fim da exclusão

      itab_relat-slvinc = v_slvinc - v_vldev.

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

      MODIFY itab_relat INDEX v_tabix

        TRANSPORTING vlvinc slvinc slpagar slpagbr.

      CLEAR: v_slvinc, v_vlvinc, v_vldev.

* << Fim da exclusão

      IF NOT s_a_entr IS INITIAL.

        IF itab_relat-slvinc IS INITIAL.

          DELETE itab_relat WHERE nrseqc = itab_zycbt001-nrseqc.

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

          CONTINUE.

* << Fim da inclusão

        ENDIF.

      ENDIF.

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

      CLEAR itab_bancos.

* << Fim da exclusão

      READ TABLE itab_bancos WITH KEY lifnr = itab_relat-bconegoc.

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

      IF sy-subrc = 0.

* << Fim da inclusão

      itab_relat-txtnegoc = itab_bancos-name1.

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

      ENDIF.

* << Fim da inclusão

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

      CLEAR itab_bancos.

* << Fim da exclusão

      READ TABLE itab_bancos WITH KEY lifnr = itab_relat-bcofinan.

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

      IF sy-subrc = 0.

* << Fim da inclusão

      itab_relat-txtfinan = itab_bancos-name1.

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

      MODIFY itab_relat.

* << Fim da exclusão

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

      ENDIF.

      MODIFY itab_relat TRANSPORTING vlvinc slvinc slpagar slpagbr

                                     txtnegoc txtfinan

                        WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt001 WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt002 WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt003 WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt004 WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt005 WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt006 WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt050 WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt051 WHERE nrseqc = itab_zycbt001-nrseqc.

* << Fim da inclusão

    ENDLOOP.

  ENDIF.

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

  SORT itab_sumario_tpparc BY nrseqc tpparc DESCENDING.

* << Fim da exclusão

ENDFORM.

FORM converter_moeda USING    p_devlme p_dewaers p_parawaers p_ctmoeda

                      p_dtbase CHANGING p_paravlme p_taxa.

  CHECK NOT p_devlme IS INITIAL.

  SELECT SINGLE * FROM /pws/zycbt009

...

 

...

      itab_relat-txjfixa  TO i_result-txjfixa,

      itab_relat-txjvar   TO i_result-txjvar,

      itab_relat-vlusd    TO i_result-vlusd,

      itab_relat-dtpagto  TO i_result-dtpagto,

      itab_relat-prazo    TO i_result-prazo.

    IF itab_relat-tpparc(1) EQ 'P' .

      MOVE: itab_relat-slvinc_jur TO i_result-slvinc_jur.

    ELSEIF itab_relat-tpparc EQ 'J'.

      MOVE: itab_relat-vlpagar    TO i_result-vlpagar.

    ENDIF.

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

    SELECT SINGLE name1 INTO i_result-bconegoc FROM lfa1

                WHERE lifnr = itab_relat-bconegoc.

* << Fim da exclusão

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

    MOVE:

      itab_relat-txtnegoc TO i_result-bconegoc,

      itab_relat-txtfinan TO i_result-bcofinan.

* << Fim da inclusão

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

    SELECT SINGLE name1 INTO i_result-bcofinan FROM lfa1

                WHERE lifnr = itab_relat-bcofinan.

* << Fim da exclusão

    MOVE /pws/zycbt007-waersa TO i_result-waersa.

    APPEND i_result.

  ENDLOOP.

  LOOP AT i_result.

    CLEAR i_final.

    MOVE-CORRESPONDING i_result TO i_final.

    APPEND i_final.

  ENDLOOP.

ENDFORM.

FORM user_command USING ucomm    TYPE sy-ucomm

...