Módulo: CÂMBIO IMPORTAÇÃO
Funcionalidade: Re-Financiamento
Data/Hora da Publicação: 26/10/2007 00:00:00
Data/Hora Última Alteração: 18/02/2011 09:51:50
Descrição da Nota: REFINANCIAMENTO - FINANCIAMENTO - BLOQUEIO JUROS/COMISSÃO
Sintoma
- Quando refinanciar mais de uma parcela de principal de um mesmo financiamento, atualizar documento
de pagamento de todas parcelas refinanciadas.
- Criar opção de bloqueio de juros/comissão para que não efetue pagamento do mesmo quando o
financiamento tiver sido refinanciado.
Solução
Efetuar desenvolvimento gravando os dados das parcelas de principal e criando campo para bloquear
pagamento de juros/comissão, quando o mesmo for de financiamento refinanciado. Consistências nos
programas de financiamento, rotina mensal importação e rotina de pagamento(processar boleto)
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05088 Data: 26/10/2007 Hora: 11:01:05
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05088
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00018
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02175 - 00001 - 6.0 - 00025 - ROTINA DE PAGAMENTO - CAMPO DATA "DE" "ATÉ"
02651 - 00002 - 6.0 - 00025 - PROCESSAR BOLETO - FINANCIAMENTO - FILTRO POR DATA PARC. PRIN/JUR
02946 - 00003 - 6.0 - 00026 - PARÂMETRO /PWS/ZYGL007 CFM SIM - DUMP VERSÃO 4.7 OU SUPERIOR
04735 - 00004 - 7.0 - 00002 - FINANCIAMENTO - RELATÓRIO DE MENSAGENS DE CONTABILIZAÇÃO
04805 - 00005 - 7.0 - 00003 - IMPORTAÇÃO FIANCIAMENTO
----------------------------------------------------------------------------------------------------
REFINANCIAMENTO - FINANCIAMENTO - BLOQUEIO JUROS/COMISSÃO
----------------------------------------------------------------------------------------------------
Palavras Chave:
REFINANCIAMENTO FINANCIAMENTO BLOQUEIO JUROS COMISSÃO ROTINA PAGAMENTO
DOCUMENTO PRICIPAL FINANCIAMENTO ORIGEM ROTINA MENSAL PROCESSAR BOLETO
----------------------------------------------------------------------------------------------------
Objetos da nota:
DTEL /PWS/ZYGLL1366
REPS /PWS/MZYCM101F01
REPS /PWS/ZYCBR112
REPS /PWS/ZYGLR001
REPT /PWS/SAPMZYCM101
TABD /PWS/ZYCBE113
TABD /PWS/ZYCBT113
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYGLL1366
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYGLL1366
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (52 caracteres), idioma: PT
"GL - Bloqueio Pagto Juros Financiamento Refinanciado"
Categoria de dados: Domínio
Domínio: XFELD
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (10 caracteres), idioma: PT
"Bloq.Pg.Ju"
Comprimento máximo do denominador médio: 20
Denominador médio incluído (20 caracteres), idioma: PT
"Bloqueio Pagto Juros"
Comprimento máximo do denominador longo: 40
Denominador longo incluído (40 caracteres), idioma: PT
"Bloqueio Pagto Juros Financ.Refinanciado"
Comprimento máximo do título: 52
Título incluído (52 caracteres), idioma: PT
"GL - Bloqueio Pagto Juros Financiamento Refinanciado"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCM101F01
...
SELECT MAX( nrseq ) INTO (v_nrseqc)
FROM /pws/zycbt112
WHERE nrseq < text-118
AND nrseq LIKE v_ano.
v_count = v_nrseqc+0(8) + 1.
CONCATENATE v_count sy-datum+2(2) INTO /pws/zycbe112-nrseq.
v_nrseqc = /pws/zycbe112-nrseq.
v_nrseqcview = /pws/zycbe112-nrseq.
ENDFORM.
FORM save_changes.
* >> Início da exclusão: FORM SAVE_CHANGES
DATA: v_tabix LIKE sy-tabix,
v_min LIKE v_soma_vlme,
* << Fim da exclusão
* >> Início da inclusão: FORM SAVE_CHANGES
DATA: v_min LIKE v_soma_vlme,
* << Fim da inclusão
wa_mensagem LIKE LINE OF itab_mensagem,
v_comissao(01) TYPE c.
CLEAR wa_zycbt007.
SELECT SINGLE * FROM /pws/zycbt007
INTO wa_zycbt007
WHERE bukrs EQ /pws/zycbe112-bukrs.
v_soma_vlme = 0.
v_min = 5 / 100.
LOOP AT itab_zycbt113c.
v_soma_vlme = v_soma_vlme + itab_zycbt113c-vlme.
...
...
FROM /pws/zycbt112
INTO wa_zycbt112_log
WHERE nrseq = itab_zycbt112-nrseq.
PERFORM monta_log_cfm USING wa_zycbt112_log
'/PWS/ZYCBT112'
CHANGING wa_log.
PERFORM grava_log USING '/PWS/ZYCBT112'
wa_log
'A'.
ENDIF.
* >> Início da inclusão: FORM FILL_DATE_F51_REFIN
LOOP AT itab_zycbt116 WHERE nrfinanc = itab_zycbt112-nrseq.
* << Fim da inclusão
UPDATE /pws/zycbt113 SET belnr_p = itab_zycbt032-belnr
WHERE nrseq = itab_zycbt112-nrseq
AND tpparc = 'P'
AND nrparc = itab_zycbt116-nrparc.
* >> Início da inclusão: FORM FILL_DATE_F51_REFIN
ENDLOOP.
* << Fim da inclusão
IF wa_zycbt007-cfm = 'X'.
SELECT SINGLE *
FROM /pws/zycbt113
...
...
PERFORM verify_null_field USING v_newkof
'C_NEWKO'
text-018.
ENDFORM.
FORM gera_novas_parcelas.
DATA : v_flag.
DATA:
wa_mensagem LIKE LINE OF itab_mensagem.
CLEAR : v_flag, v_nrdias.
LOOP AT itab_zycbt113p .
* >> Início da inclusão: FORM GERA_NOVAS_PARCELAS
v_tabix = sy-tabix.
* << Fim da inclusão
PERFORM get_parameters_112.
IF itab_zycbt113p-dtpagto NE ' ' AND
itab_zycbt113p-dtpagto NE '00000000'.
CONTINUE.
ENDIF.
READ TABLE itab_zycbt113pa WITH KEY nrparc = itab_zycbt113p-nrparc.
IF itab_zycbt113p-vlme EQ itab_zycbt113pa-vlme AND
itab_zycbt113p-dtvecto EQ itab_zycbt113pa-dtvecto AND
itab_zycbt113p-belnr EQ itab_zycbt113pa-belnr.
IF v_mdparc EQ 'X'.
...
...
ELSE.
itab_zycbt113p-ftransf = 'S'.
ENDIF.
MODIFY itab_zycbt113p.
UPDATE /pws/zycbt113 SET belnr = itab_zycbt032-belnr
belnr_lp = itab_zycbt113p-belnr_lp
ftransf = itab_zycbt113p-ftransf
WHERE nrseq = /pws/zycbe112-nrseq
AND nrparc = itab_zycbt113p-nrparc
AND tpparc = 'P'.
* >> Início da inclusão: FORM GERA_NOVAS_PARCELAS
DESCRIBE TABLE itab_zycbt113p LINES v_li.
IF v_li = v_tabix.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
defaultoption = ''
textline1 = text-125
textline2 = text-126
titel = text-124
cancel_display = ''
IMPORTING
answer = v_answer
EXCEPTIONS
OTHERS = 1.
IF v_answer EQ 'J'.
UPDATE /pws/zycbt113 SET bloq_juros = 'X'
WHERE nrseq = itab_zycbt112-nrseq
AND ( tpparc = 'J' or tpparc = 'C' ).
ENDIF.
ENDIF.
* << Fim da inclusão
ELSE.
LOOP AT itab_zycbt032.
wa_mensagem-tpmsg = c_erro.
wa_mensagem-msg = itab_zycbt032-msg.
APPEND wa_mensagem TO itab_mensagem.
ENDLOOP.
CLEAR itab_zycbt113p-belnr.
MODIFY itab_zycbt113p.
UPDATE /pws/zycbt113 SET belnr = ' '
belnr_lp = ' '
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR112
...
AND tpparc = 'P'
AND status NE 'E'.
SELECT nrseq tpparc nrparc nrdias dtinicio dtfinal vlme dtpagto
kostl ps_posid
INTO TABLE itab_pagas
FROM /pws/zycbt113
FOR ALL ENTRIES IN itab_zycbt112
WHERE nrseq = itab_zycbt112-nrseq
AND tpparc = 'C'
AND dtinicio <= s_dtentr
AND ( dtpagto = '00000000' OR dtpagto = space )
AND status NE 'E'
* >> Início da exclusão: FORM SELECIONA_DADOS
AND status NE 'E'.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
AND status NE 'E'
AND bloq_juros NE 'X'.
* << Fim da inclusão
ELSE.
"Precisa selecionar todas parcelas para consistência da transferência
SELECT * FROM /pws/zycbt113
INTO TABLE itab_zycbt113p
...
...
SELECT nrseq tpparc nrparc nrdias dtinicio dtfinal vlme dtpagto
kostl
ps_posid
INTO TABLE itab_pagas
FROM /pws/zycbt113
FOR ALL ENTRIES IN itab_zycbt112
WHERE nrseq = itab_zycbt112-nrseq
AND tpparc = 'C'
AND dtinicio <= s_dtentr
* >> Início da exclusão: FORM SELECIONA_DADOS
AND status NE 'E'.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
AND status NE 'E'
AND bloq_juros NE 'X'.
* << Fim da inclusão
.
ENDIF.
SELECT * FROM /pws/zycbt113
INTO TABLE itab_zycbt113j
FOR ALL ENTRIES IN itab_zycbt112
WHERE nrseq = itab_zycbt112-nrseq
AND tpparc = 'J'
AND dtinicio <= s_dtentr
* >> Início da exclusão: FORM SELECIONA_DADOS
AND status NE 'E'.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
AND status NE 'E'
AND bloq_juros NE 'X'.
* << Fim da inclusão
PERFORM seleciona_parametros_gerais.
PERFORM get_parameters_001.
ENDFORM.
FORM processa_dados.
PERFORM processa_financiamento.
IF wa_zycbt007-ftransf = 'X'.
PERFORM processa_transfer_longo_curto.
ENDIF.
PERFORM calcula_comissao.
IF itab_relat[] IS INITIAL AND
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYGLR001
...
nrfinanc LIKE /pws/zycbt113-nrfinanc,
dtinicio LIKE /pws/zycbt113-dtinicio,
dtfinal LIKE /pws/zycbt113-dtfinal,
txjfixa LIKE /pws/zycbt113-txjfixa,
txjvar LIKE /pws/zycbt113-txjvar,
txjtotal LIKE /pws/zycbt113-txjtotal,
aliqir LIKE /pws/zycbt113-aliqir,
vlme LIKE /pws/zycbt113-vlme,
vlir LIKE /pws/zycbt113-vlir,
txtinf LIKE /pws/zycbt113-txtinf,
* >> Início da inclusão:
bloq_juros type /pws/zycbt113-bloq_juros,
* << Fim da inclusão
END OF itab_zycbt113,
BEGIN OF itab_zycbt118 OCCURS 100,
nrseq LIKE /pws/zycbt118-nrseq,
nrdesp LIKE /pws/zycbt118-nrdesp,
tpdesp LIKE /pws/zycbt118-tpdesp,
bukrs LIKE /pws/zycbt118-bukrs,
codmodul LIKE /pws/zycbt118-codmodul,
nrref LIKE /pws/zycbt118-nrref,
dtvencto LIKE /pws/zycbt118-dtvencto,
benefic LIKE /pws/zycbt118-benefic,
...
...
itab_zycbt118-frggr TO itab_selreg-frggr.
APPEND itab_selreg.
ENDLOOP.
CLEAR: v_tipo, v_taxa_dia, itab_zycbt118, /pws/zycbt015, itab_selreg.
ENDFORM.
FORM seleciona_financi.
FREE itab_zycbt113.
IF data-high IS INITIAL.
SELECT nrseq tpparc nrparc nrfinanc dtinicio dtfinal
txjfixa txjvar txjtotal aliqir vlme vlir txtinf
* >> Início da inclusão: FORM SELECIONA_FINANCI
bloq_juros
* << Fim da inclusão
APPENDING TABLE itab_zycbt113
FROM /pws/zycbt113
WHERE ( dtpagto EQ '00000000' OR dtpagto EQ ' ' )
AND dtfinal LE v_data
AND status NE 'E'
AND tpparc NE 'C'
AND nrseq IN financi.
ELSE.
SELECT nrseq tpparc nrparc nrfinanc dtinicio dtfinal
txjfixa txjvar txjtotal aliqir vlme vlir txtinf
* >> Início da inclusão: FORM SELECIONA_FINANCI
bloq_juros
* << Fim da inclusão
APPENDING TABLE itab_zycbt113
FROM /pws/zycbt113
WHERE ( dtpagto EQ '00000000' OR dtpagto EQ ' ' )
AND dtfinal IN data
AND status NE 'E'
AND tpparc NE 'C'
AND nrseq IN financi.
ENDIF.
IF data-high IS INITIAL.
SELECT nrseq tpparc nrparc nrfinanc dtinicio dtvecto
txjfixa txjvar txjtotal aliqir vlme vlir txtinf
* >> Início da inclusão: FORM SELECIONA_FINANCI
bloq_juros
* << Fim da inclusão
APPENDING TABLE itab_zycbt113
FROM /pws/zycbt113
WHERE ( dtpagto EQ '00000000' OR dtpagto EQ ' ' )
AND dtvecto LE v_data
AND status NE 'E'
AND tpparc EQ 'C'
AND nrseq IN financi.
ELSE.
SELECT nrseq tpparc nrparc nrfinanc dtinicio dtvecto
txjfixa txjvar txjtotal aliqir vlme vlir txtinf
* >> Início da inclusão: FORM SELECIONA_FINANCI
bloq_juros
* << Fim da inclusão
APPENDING TABLE itab_zycbt113
FROM /pws/zycbt113
WHERE ( dtpagto EQ '00000000' OR dtpagto EQ ' ' )
AND dtvecto IN data
AND status NE 'E'
AND tpparc EQ 'C'
AND nrseq IN financi.
ENDIF.
IF NOT itab_zycbt113[] IS INITIAL.
SELECT * FROM /pws/zycbt112 INTO TABLE itab_zycbt112
FOR ALL ENTRIES IN itab_zycbt113
WHERE nrseq EQ itab_zycbt113-nrseq
AND bukrs IN empresa
AND status NE 'E'
AND waers IN moeda
AND lifnr IN fornece.
ENDIF.
LOOP AT itab_zycbt113.
* >> Início da inclusão: FORM SELECIONA_FINANCI
IF ( itab_zycbt113-tpparc = 'J' or itab_zycbt113-tpparc = 'C' )
AND itab_zycbt113-bloq_juros = 'X'.
CONTINUE.
ENDIF.
* << Fim da inclusão
CLEAR itab_selreg.
READ TABLE itab_zycbt112 WITH KEY nrseq = itab_zycbt113-nrseq.
IF sy-subrc EQ 0 AND
itab_zycbt112-bukrs IN empresa AND
itab_zycbt112-status NE 'E' AND
itab_zycbt112-waers IN moeda AND
itab_zycbt112-lifnr IN fornece.
ELSE.
CONTINUE.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCM101
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 124
Texto: (22 caracteres)
"Salvar Refinanciamento"
Comprimento máximo: 22
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 125
Texto: (48 caracteres)
"Deseja bloquear o pagamento de juros/comissão do"
Comprimento máximo: 48
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 126
Texto: (23 caracteres)
"financiamento original?"
Comprimento máximo: 23
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCBE113
MODIFICAR ESTRUTURA: /PWS/ZYCBE113
DESCRIÇÃO BREVE: CM - Período (Principal, Juros e Comissão)
COMPONENTES NOVOS
COMPONENTE: TP. COMP: TAB.REF.: CPO.REF.: AJUD. PESQU.
BLOQ_JUROS /PWS/ZYGLL1366
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCBT113
MODIFICAR TABELA TRANSPARENTE: /PWS/ZYCBT113
DESCRIÇÃO BREVE: CM - Período (Principal, Juros e Comissão)
CARACTERÍSTICAS
CAMPOS NOVOS
CAMPOS: TP. CAMPO CH: INI: TAB.VERIF.: TAB.REF.: CPO.RE
BLOQ_JUROS /PWS/ZYGLL1366 '' ''