Módulo: CÂMBIO IMPORTAÇÃO
Funcionalidade: Rotina Mensal
Data/Hora da Publicação: 11/08/2008 00:00:00
Data/Hora Última Alteração: 04/03/2010 15:16:59
Descrição da Nota: ROTINA MENSAL IMP. - PARCELAS DE PRINCIPAL A MAIS QUE PARCELAS DE JUROS
Sintoma
Ao executar a rotina mensal de importação, clearing no pagamento, onde o financiamento tem menos
parcelas de juros do que de principal, não esta demonstrando corretamente o valor à provisionar
(negativo) e o valor total do financiamento.
Solução
Somar tudo de uma parcela de juros e subtrair o valor provisionado, para que não fique negativo.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07119 Data: 11/08/2008 Hora: 14:19:37
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07119
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00006
Agrupamento : 00060
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
ROTINA MENSAL IMP. - PARCELAS DE PRINCIPAL A MAIS QUE PARCELAS DE JUROS
----------------------------------------------------------------------------------------------------
Palavras Chave:
PARCELAS DE PRINCIPAL A MAIS QUE PARCELAS DE JUROS
ROTINA MENSAL IMPORTAÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCBI112
REPS /PWS/ZYCBR112
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBI112
...
waers LIKE /pws/zycbt112-waers,
vlmej LIKE /pws/zycbt112-vlme,
vlmeir LIKE /pws/zycbt112-vlme,
vlme_mes LIKE /pws/zycbt112-vlme,
END OF itab_total.
PERFORM exibe_cabecalho_relatorio.
PERFORM totaliza_valores_lancados.
CLEAR: v_tabix, v_vlpagj, v_vlpagir, v_vlpagc.
SORT itab_relat BY tpcontab
codint nrseq nrparcj nrparcp nrfinanc dtate.
* >> Início da inclusão: FORM EXIBE_RELATORIO
itab_relat_aux[] = itab_relat[].
* << Fim da inclusão
LOOP AT itab_relat.
v_waers = itab_relat-waers.
v_tabix = v_tabix + 1.
FORMAT RESET.
aux_relat = itab_relat.
ON CHANGE OF itab_relat-codint.
FORMAT COLOR 1 INVERSE OFF INTENSIFIED OFF.
LOOP AT itab_sub_tipo.
WRITE: / sy-vline,
text-006, text-003, itab_sub_tipo-codint,
...
...
IF aux_relat-tpcontab = 'C'.
WRITE: 111 v_vlrjprov3 CURRENCY v_waers.
ELSE.
WRITE: 111 v_vlrjprov CURRENCY v_waers.
ENDIF.
WRITE: 141 v_vlrjprov2 CURRENCY v_waers,
AT v_tamr sy-vline.
FORMAT RESET.
ENDIF.
IF aux_relat-tpcontab <> 'C'.
* >> Início da exclusão: FORM QUEBRA
itab_relat-vlrprov = aux_relat-vlmej - v_vlrjprov.
* << Fim da exclusão
* >> Início da inclusão: FORM QUEBRA
CLEAR: v_valor_p, v_valor_i.
LOOP AT itab_relat_aux WHERE nrseq = aux_relat-nrseq
AND tpcontab = aux_relat-tpcontab
AND nrparcj = v_nrparcj.
v_valor_p = v_valor_p + itab_relat_aux-vlmej.
v_valor_i = v_valor_i + itab_relat_aux-vlmeir.
ENDLOOP.
itab_relat-vlrprov = v_valor_p - v_vlrjprov.
* << Fim da inclusão
itab_relat-vlrjprov = v_vlrjprov.
MODIFY itab_relat TRANSPORTING vlrprov vlrjprov
WHERE nrseq = aux_relat-nrseq
AND tpcontab <> 'C'
AND nrparcj = aux_relat-nrparcj.
* >> Início da exclusão: FORM QUEBRA
itab_relat-vlrprov2 = aux_relat-vlmeir - v_vlrjprov2.
* << Fim da exclusão
* >> Início da inclusão: FORM QUEBRA
itab_relat-vlrprov2 = v_valor_i - v_vlrjprov2.
* << Fim da inclusão
itab_relat-vlrjprov2 = v_vlrjprov2.
MODIFY itab_relat TRANSPORTING vlrprov2 vlrjprov2
WHERE nrseq = aux_relat-nrseq
AND tpcontab <> 'C'
AND nrparcj = aux_relat-nrparcj.
ELSE.
itab_relat-vlrprov3 = aux_relat-vlmej - v_vlrjprov3.
itab_relat-vlrjprov3 = v_vlrjprov3.
MODIFY itab_relat TRANSPORTING vlrprov3 vlrjprov3
WHERE nrseq = aux_relat-nrseq
...
...
ELSE.
itab_relat-vlrprov = aux_relat-vlmej.
MODIFY itab_relat INDEX v_tabix TRANSPORTING vlrprov.
itab_relat-vlrprov2 = aux_relat-vlmeir.
MODIFY itab_relat INDEX v_tabix TRANSPORTING vlrprov2.
IF aux_relat-tpcontab = 'C'.
itab_relat-vlrprov3 = aux_relat-vlmej.
MODIFY itab_relat INDEX v_tabix TRANSPORTING vlrprov3.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM QUEBRA
MOVE aux_relat-vlmej TO v_vlmej.
MOVE aux_relat-vlmeir TO v_vlmeir.
* << Fim da exclusão
* >> Início da inclusão: FORM QUEBRA
MOVE v_valor_p TO v_vlmej.
MOVE v_valor_i TO v_vlmeir.
* << Fim da inclusão
MOVE aux_relat-vlme_mes TO v_vlme_mes.
ULINE.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
WRITE: / sy-vline,
text-006, text-022, aux_relat-nrseq,
text-108, aux_relat-nrparcj.
IF aux_relat-tpcontab = ' '.
WRITE: text-110.
ELSE.
WRITE: text-109.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR112
...
v_ok2 TYPE i,
v_ok3(1) TYPE c,
v_modo_bi,
v_vlpagj LIKE /pws/zycbt112-vlme,
v_vlpagir LIKE /pws/zycbt112-vlme,
v_vlpagc LIKE /pws/zycbt112-vlme,
v_vlpagj2 LIKE /pws/zycbt112-vlme,
v_vlpagir2 LIKE /pws/zycbt112-vlme,
v_vlpagc2 LIKE /pws/zycbt112-vlme,
v_valor_p LIKE /pws/zycbt112-vlme,
* >> Início da inclusão:
v_valor_i type /pws/zycbt112-vlme,
* << Fim da inclusão
v_quebra(1) TYPE c,
v_codmod LIKE /pws/zycbt154-codmod,
v_vlmeir LIKE /pws/zycbt112-vlme,
v_vlmej LIKE /pws/zycbt112-vlme,
v_waers LIKE /pws/zycbt112-waers,
v_nrcorresp LIKE /pws/zycbt154-nrcorresp,
v_tamn TYPE i VALUE 220,
v_tjuros LIKE /pws/zycbt129-vlme,
v_tcomis LIKE /pws/zycbt129-vlme,
v_tir LIKE /pws/zycbt129-vlme,
...
...
CLEAR itab_zycbt113j.
LOOP AT itab_zycbt113j WHERE nrseq = itab_zycbt112-nrseq.
IF wa_zycbt007-fprovisao <> 'C'.
CHECK ( itab_zycbt113j-dtpagto IS INITIAL ).
ENDIF.
IF itab_zycbt113p-dtinicio => itab_zycbt113j-dtinicio AND
( itab_zycbt113p-dtfinal <= itab_zycbt113j-dtfinal OR
p_dtfim <= itab_zycbt113j-dtfinal ).
IF itab_zycbt113p-nrparc = '001'.
p_vlme = itab_zycbt112-vlme.
* >> Início da exclusão: FORM PROCESSA_PERIODO_J
ELSEIF ( itab_zycbt113p-nrparc <> '001' AND
itab_zycbt113p-nrdias < itab_zycbt113j-nrdias ).
p_vlme = itab_zycbt112-sldesem.
* << Fim da exclusão
ELSE.
LOOP AT itab_zycbt113p_aux WHERE nrseq = itab_zycbt112-nrseq
AND nrparc < itab_zycbt113p-nrparc.
IF p_vlme IS INITIAL.
p_vlme = itab_zycbt112-vlme - itab_zycbt113p_aux-vlme.
ELSE.
p_vlme = p_vlme - itab_zycbt113p_aux-vlme.
ENDIF.
ENDLOOP.
ENDIF.
...