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.
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.
...