CE PLUS - Nota 008377

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Captação

Data/Hora da Publicação: 07/05/2009 00:00:00

Data/Hora Última Alteração: 22/02/2011 13:08:05

Descrição da Nota: CAPTAÇÃO-DUMP RECALCULO JUROS-ROTINA MENSAL-VALOR NEGATIVO DTPAGEXT

Sintoma

Ao efetuar o recalculo de uma parcela de juros(calculadora) de captação, esta ocorrendo dump devido

valor negativo na tela.

 

 

Solução

Considerar que a dtpagext seja maior que vazio(00000000), dessa forma calcula corretamente, tanto na

captação como na rotina mensal.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

PROBLEMA NO PROGRAMA DE CAPTAÇÃO ( /PWS/ZYCB001 )

DA - DATA CREDITO NO EXTERIOR NA VINCULAÇÃO- PRÉ-PAGAMENTO SECURITIZAÇÃO

CAPTAÇÃO - (CÁLCULO JUROS)

Informações Complementares

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

Nota Número 08377 Data: 07/05/2009 Hora: 11:04:23

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

 

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

Nota Número              : 08377

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00009

Agrupamento              : 00097

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

Referência às notas relacionadas:

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

 

03802  - 00001 - 7.0    - 00001  - CAPTAÇÃO - (CÁLCULO JUROS)

07549  - 00002 - 7.0    - 00007  - PROBLEMA NO PROGRAMA DE CAPTAÇÃO ( /PWS/ZYCB001 )

08164  - 00003 - 7.0    - 00008  - DA - DATA CREDITO NO EXTERIOR NA VINCULAÇÃO- PRÉ-PAGAMENTO SECURI

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

CAPTAÇÃO-DUMP RECALCULO JUROS-ROTINA MENSAL-VALOR NEGATIVO DTPAGEXT

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

Palavras Chave:

CAPTAÇÃO DUMP RECALCULO JUROS ROTINA MENSAL VALOR NEGATIVO DTPAGEXT

CALCULADORA PERÍODO DE JUROS

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

Objetos da nota:

REPS /PWS/MZYCB001F01

REPS /PWS/ZYCBI003

 

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

Modificações efetuadas em REPS /PWS/MZYCB001F01

 

...

      if itab_zycbt005l-deduz_juros = 'X'.

        v_diasj = ultimo - itab_zycbt005l-dtpagext.

        v_juros = v_juros + (

                  saldo_inicial * itab_zycbt002-txjtotal / 100

                  * v_diasj / v_nrdias ).

        ultimo = itab_zycbt005l-dtpagext.

      endif.

      saldo_inicial = saldo_inicial +

                     ( itab_zycbt005l-vlme_p * itab_zycbt005l-parid ).

    endloop.

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

    loop at itab_zycbt005l where dtpagext <= itab_zycbt002-dtinicio.

* << Fim da exclusão

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

    loop at itab_zycbt005l where dtpagext <= itab_zycbt002-dtinicio

                             and dtpagext > '00000000'.

* << Fim da inclusão

      saldo_inicial = saldo_inicial -

                     ( itab_zycbt005l-vlme_p * itab_zycbt005l-parid ).

    endloop.

    v_diasj = ultimo - itab_zycbt002-dtinicio.

    v_juros = v_juros + (

              saldo_inicial * itab_zycbt002-txjtotal / 100

              * v_diasj / v_nrdias ).

  else.

    clear itab_zycbt005l.

    refresh itab_zycbt005l.

    saldo_inicial = /pws/zycbe001-slpagar.

    select *

           from /pws/zycbt005

           into table itab_zycbt005l

           where nrseqc   = /pws/zycbe001-nrseqc   and

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

                 dtpagext <= itab_zycbt002-dtinicio.

* << Fim da exclusão

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

                 dtpagext <= itab_zycbt002-dtinicio

             and dtpagext > '00000000'.

* << Fim da inclusão

    if sy-subrc eq 0.

      loop at itab_zycbt005l.

        saldo_inicial = saldo_inicial -

                    ( itab_zycbt005l-vlme_p * itab_zycbt005l-parid ).

      endloop.

      v_diasj = v_dtjuros - itab_zycbt002-dtinicio.

      v_juros = saldo_inicial * itab_zycbt002-txjtotal / 100

                * v_diasj / v_nrdias.

    else.

      read table itab_zycbt006l with key deduz_juros = 'X'.

...

 

...

          v_slpagar    = v_slpagar - v_valor_vinc.

          v_dtcalc     = itab_zycbt005-dtpagext.

          v_vlmetot    = v_vlmetot + v_vlme.

        endif.

      endloop.

      v_slpgant        = v_slpagar.

    endif.

    if v_vinc is initial.

      sort itab_zycbt006 by dtpagto ascending.

      clear v_prim.

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

      loop at itab_zycbt006 where dtpagext <= itab_zycbt002-dtfinal.

* << Fim da exclusão

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

      loop at itab_zycbt006 where dtpagext <= itab_zycbt002-dtfinal

                              and dtpagext > '00000000'.

* << Fim da inclusão

        select single parid

               from /pws/zycbt005

               into itab_zycbt005-parid

               where nrseqc = itab_zycbt006-nrseqc

                 and tpdesp = itab_zycbt006-tpdesp

                 and nrparc = itab_zycbt006-nrparc

                 and dtincl = itab_zycbt006-dtincl

                 and nrinvoic = itab_zycbt006-nrinvoic

                 and nrparcf = itab_zycbt006-nrparcf

                 and gsberf = itab_zycbt006-gsberf

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCBI003

 

...

    else.

      v_base_dias = 180.

    endif.

    clear p_linha.

    loop at itab_zycbt005 where nrseqc = itab_zycbt002j-nrseqc.

      p_linha = p_linha + 1.

    endloop.

    p_saldo_final = itab_zycbt001-vlme.

    loop at itab_zycbt005 where dtpagext < itab_zycbt002j-dtfinal and

                                dtpagext < s_dtentr               and

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

                                dtpagext > '00000000'             AND

* << Fim da inclusão

                                nrseqc  = itab_zycbt001-nrseqc.

      p_saldo_final = p_saldo_final - itab_zycbt005-vlme_p.

    endloop.

    v_saldo_inicial = itab_zycbt001-vlme.

    loop at itab_zycbt005 where dtpagext <= itab_zycbt002j-dtinicio

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

                            AND    dtpagext > '00000000'

* << Fim da inclusão

                            and nrseqc  =  itab_zycbt001-nrseqc.

      v_saldo_inicial = v_saldo_inicial - itab_zycbt005-vlme_p.

...

 

...

        itab_relat-txc   = v_taxac.

        itab_relat-vlmij = itab_relat-vlmej * itab_relat-txc.

        perform preenche_itab_relat.

        append itab_relat.

      endif.

    endif.

    clear p_cont.

  endloop.

  p_saldo_final = itab_zycbt001-vlme.

  loop at itab_zycbt005 where dtpagext < s_dtentr

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

                          AND dtpagext > '00000000'

* << Fim da inclusão

                          and nrseqc = itab_zycbt001-nrseqc.

    if itab_zycbt005-waers ne itab_relat-waers.

      p_saldo_final = p_saldo_final - itab_zycbt005-vlvinc.

    else.

      p_saldo_final = p_saldo_final - itab_zycbt005-vlme_p.

    endif.

  endloop.

  v_saldo_inicial = itab_zycbt001-vlme.

  loop at itab_zycbt005 where dtpagext < itab_relat-dtate and

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

                              dtpagext > '00000000'       AND

* << Fim da inclusão

                              nrseqc  = itab_zycbt001-nrseqc.

    if itab_zycbt005-waers ne itab_relat-waers.

      v_saldo_inicial = v_saldo_inicial - itab_zycbt005-vlvinc.

    else.

      v_saldo_inicial = v_saldo_inicial - itab_zycbt005-vlme_p.

    endif.

  endloop.

  if s_dtentr > itab_relat-dtate

    and p_deduz eq 'X'.

    v_per_dias = s_dtentr - itab_relat-dtate.

...

 

...

  loop at itab_zycbt002j where nrseqc = itab_zycbt001-nrseqc

                           and dtinicio < p_dtfim.

    clear p_liq.

    p_dtde  = itab_zycbt002j-dtinicio.

    p_dtate = itab_zycbt002j-dtfinal.

    loop at itab_zycbt005 where nrseqc   = itab_zycbt001-nrseqc    and

                                dtpagext  > itab_zycbt002j-dtinicio and

                                dtpagext <= itab_zycbt002j-dtfinal.

      p_liq = 'X'.

      itab_relat-dtde  = p_dtde.

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

      if itab_zycbt005-dtpagext < s_dtentr.

* << Fim da exclusão

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

      IF itab_zycbt005-dtpagext < s_dtentr

         AND itab_zycbt005-dtpagext > '00000000'.

* << Fim da inclusão

        itab_relat-dtate = itab_zycbt005-dtpagext.

      else.

        itab_relat-dtate = s_dtentr.

      endif.

      itab_relat-vlme  = p_saldo.

      itab_relat-ftpj = 'A'.

      perform preenche_itab_relat.

      p_dtde  = itab_relat-dtate.

      p_dtate = itab_relat-dtate.

      check not itab_relat is initial.

...