Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Capitalização de Juros
Data/Hora da Publicação: 09/01/2006 00:00:00
Data/Hora Última Alteração: 18/02/2011 14:49:44
Descrição da Nota: CAPITALIZAÇÃO DE JUROS
Sintoma
Ref. Capitalização de Juros com ZERO dias estou retomando o GAP, sendo que você já havia informado
que existe a opção de usar o tipo de contrato ``E`` ACE, pois para esse tipo de contrato não é feita
consistência como o prazo do principal e forma de calculo de juros.
O desenvolvimento no produto seria da seguinte forma: Alterar o programa de capitalização para
aceitar o novo contrato (contrato filho - a partir da parcela de juros) seja do tipo ACE ``E``,
assim seria possível atender o cenário do cliente sem mudanças complexas no produto. Com isso a
vinculação e a liquidação da fatura estaria OK.
Para diferenciar o contrato originado da capitalização e também configurar uma conta diferente da
conta do ACE, é possível criar um tipo de contrato E1
O erro ocorre quando está parametrizado Rotina mensal = Estorno mensal.
Criei a capitalização de um ACE e salvei, entrei na captação, preenchi os dados
e salvei e a contabilização foi feita corretamente. Mas no momento de estornar,
o programa faz uma F-30 de clearing de ACE e contabiliza corretamente, e depois ele
tenta fazer uma segunda F-30 onde está ocorrendo o erro, mas não deveria pois conforme
especificação para a rotina mensal de estorno, o programa deverá fazer somente o clearing
do ACE e depois já apresentar o log das contabilizações feitas no estorno.
Solução
Ajuste para deixar contrato ACE consistente
Ajustado para realizar apenas 1 contabilização
Ajuste feito para trazer o campo do centro de custo para o BI.
6.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 00627 Data: 09/01/2006 Hora: 14:03:27
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 00627
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00022
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
Texto Rápido:
CAPITALIZAÇÃO DE JUROS
----------------------------------------------------------------------------------------------------
Palavras Chave:
CAPITALIZAÇÃO DE JUROS CONTABILIZAÇÕES
PRAZO PRINCIPAL PARCELA DE JUROS
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCB_TRANSACAO_F_30_W
REPS /PWS/MZYCB001F02
REPS /PWS/MZYCB001F04
REPS /PWS/MZYCB001I01
REPS /PWS/MZYCB001O01
REPS /PWS/MZYCB024F01
REPS /PWS/MZYCB024I01
REPT /PWS/SAPMZYCB001
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_W
...
PERFORM bdc_field USING 'COBL-GSBER' t_dados-d_gsber.
ENDIF.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
ENDIF.
IF NOT t_dados-d_gsber IS INITIAL.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W
READ TABLE itab_oculto
WITH KEY campo = 'COBL-KOSTL' chave = 'D'.
IF sy-subrc <> 0.
PERFORM bdc_field USING 'COBL-KOSTL' t_dados-d_kostl.
ENDIF.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
ENDIF.
IF NOT t_dados-d_kostl IS INITIAL.
* << Fim da inclusão
READ TABLE itab_oculto
WITH KEY campo = 'COBL-KOSTL' chave = 'D'.
IF sy-subrc <> 0.
PERFORM bdc_field USING 'COBL-KOSTL' t_dados-d_kostl.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001F02
...
INTO wa_zycbt011
WHERE codeven = v_codeven
AND codmod = 'E'.
texto_pre = wa_zycbt011-txtdesc.
cod_rze = wa_zycbt011-agums.
* >> Início da exclusão: FORM PEGA_CONTAS_ACC_PRE
IF /pws/zycbt001-tpcontr(1) CA 'PS'.
* << Fim da exclusão
* >> Início da inclusão: FORM PEGA_CONTAS_ACC_PRE
IF /pws/zycbt001-tpcontr(1) CA 'PSE'.
* << Fim da inclusão
IF itab_zycbt002p-przcontr IS INITIAL.
CONCATENATE /pws/zycbe001-tpcontr
/pws/zycbe001-przcontr
INTO v_codaux
SEPARATED BY space.
...
...
EXIT.
ENDIF.
ENDIF.
ENDIF.
APPEND itab_zycbe033.
* >> Início da exclusão: FORM REAGRUPA_PRE
LOOP AT itab_zycbt002p.
* << Fim da exclusão
* >> Início da inclusão: FORM REAGRUPA_PRE
LOOP AT itab_zycbt002.
* << Fim da inclusão
PERFORM pega_contas_acc_pre CHANGING conta_acc texto_acc
conta_pre texto_pre
cod_rze.
itab_partidas-tcode = itab_zycbe033-tcode.
itab_partidas-tabela = itab_zycbe033-tabela.
itab_partidas-cpochv = itab_zycbe033-cpochv.
* >> Início da exclusão: FORM REAGRUPA_PRE
IF itab_zycbt002p-belnr2 IS INITIAL.
itab_partidas-belnr = itab_zycbt002p-belnr.
* << Fim da exclusão
* >> Início da inclusão: FORM REAGRUPA_PRE
IF itab_zycbt002-belnr2 IS INITIAL.
itab_partidas-belnr = itab_zycbt002-belnr.
* << Fim da inclusão
itab_partidas-dtdocto = itab_zycbe033-budat.
ELSE.
* >> Início da exclusão: FORM REAGRUPA_PRE
itab_partidas-belnr = itab_zycbt002p-belnr2.
itab_partidas-dtdocto = itab_zycbt002p-dtvincul.
* << Fim da exclusão
* >> Início da inclusão: FORM REAGRUPA_PRE
itab_partidas-belnr = itab_zycbt002-belnr2.
itab_partidas-dtdocto = itab_zycbt002-dtvincul.
* << Fim da inclusão
ENDIF.
itab_partidas-agkon = conta_pre.
itab_partidas-agkoa = 'S'.
itab_partidas-agums = space.
itab_partidas-bukrs = /pws/zycbe001-bukrs.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001F04
...
MESSAGE i015 WITH text-447 itab_zycbt032-belnr.
ELSE.
MESSAGE i015 WITH text-385 itab_zycbt032-belnr.
ENDIF.
v_belnr = itab_zycbt032-belnr.
* >> Início da inclusão: FORM ALTERA_CAB_PT
estorno_ok = 'S'.
* << Fim da inclusão
IF /pws/zycbe001-capital EQ 'X' AND
wa_zycbt007-fprovisao EQ 'C'.
* >> Início da exclusão: FORM ALTERA_CAB_PT
estorno_ok = 'S'.
* << Fim da exclusão
PERFORM clearing_juros USING v_belnr.
* >> Início da exclusão: FORM ALTERA_CAB_PT
ELSE.
* << Fim da exclusão
* >> Início da inclusão: FORM ALTERA_CAB_PT
ELSEIF wa_zycbt007-fprovisao EQ 'C'.
* << Fim da inclusão
PERFORM volta_part_banco USING v_belnr.
ENDIF.
ELSE.
LOOP AT itab_zycbt032 WHERE tcode = 'F-30' AND
tabela = '/PWS/ZYCBT002' AND
...
...
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
* >> Início da inclusão: FORM VOLTA_PART_BANCO
CLEAR estorno_ok.
* << Fim da inclusão
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
PERFORM clear_date_batch.
MOVE wa_zycbt001 TO /pws/zycbe001.
* >> Início da inclusão: FORM VOLTA_PART_BANCO
CLEAR estorno_ok.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM VOLTA_PART_BANCO
ELSE.
CLEAR estorno_ok.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM abre_parcelas_princ_alt USING p_belnr.
v_belnr_pt = p_belnr.
LOOP AT itab_zycbt002p WHERE v_flag = 'A'
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001I01
...
WHERE nrseqc = v_nrseqc.
IF /pws/zycbt001-f_pre = 'C' OR
/pws/zycbt001-f_pre = 'X'.
PERFORM elimina_pre_acc.
ELSEIF /pws/zycbt001-tpcontr(1) = 'P' OR
* >> Início da exclusão: MODULE USER_COMMAND_CB001
/pws/zycbt001-tpcontr(1) = 'S'.
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_CB001
/pws/zycbt001-tpcontr(1) = 'S' OR
( /pws/zycbt001-tpcontr(1) = 'E' AND
/pws/zycbt001-capital = 'X' ).
* << Fim da inclusão
PERFORM delete_zycbt001_pre1.
ELSEIF /pws/zycbt001-tpcontr(1) = 'T'.
PERFORM delete_zycbt001_tr.
ELSE.
PERFORM delete_zycbt001.
...
...
CLEAR /pws/zycbe004.
LEAVE TO SCREEN 0.
ENDIF.
WHEN 'ENTE'.
IF NOT /pws/zycbe004-percdesp IS INITIAL.
* >> Início da exclusão: MODULE USER_COMMAND_0200
/pws/zycbe004-vlme = ( /pws/zycbe004-percdesp / 100 ) *
/pws/zycbe001-vlme.
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0200
/pws/zycbe004-vlme =
( /pws/zycbe004-percdesp / 100 ) * /pws/zycbe001-vlme.
* << Fim da inclusão
ENDIF.
WHEN 'SAVE'.
PERFORM save_zycbt004.
WHEN 'LIST'.
PERFORM seleciona_zycbt004.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001O01
...
ENDMODULE.
MODULE set_screen_juros OUTPUT.
IF /pws/zycbe001-tpcontr(1) CA 'PS' AND
/pws/zycbe001-ffrcalc(1) CA 'LC'.
LOOP AT SCREEN.
* >> Início da exclusão: MODULE SET_SCREEN_JUROS
IF NOT /pws/zycbe002-belnr IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN_JUROS
IF NOT /pws/zycbe002-belnr IS INITIAL
OR NOT /pws/zycbe002-dtpagto IS INITIAL.
* << Fim da inclusão
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB024F01
...
message i015 with text-020 v_nrseq.
endif.
insert /pws/zycbt217 from /pws/zycbe217.
insert /pws/zycbt218 from table itab_zycbt218.
perform salva_zycbt001.
* >> Início da inclusão: FORM SALVAR_DADOS
IF /pws/zycbe217-tpcontr(1) NE 'E'.
* << Fim da inclusão
perform salva_zycbt002.
* >> Início da inclusão: FORM SALVAR_DADOS
ELSE.
PERFORM dtpagto.
ENDIF.
* << Fim da inclusão
commit work.
message i205.
v_gravado = 'X'.
elseif sy-tcode eq '/PWS/ZYCB024_A' or v_tcode eq 'A'.
read table itab_zycbt218 index 1.
...
...
wa_zycbt217_aux ne /pws/zycbe217.
delete from /pws/zycbt218 where nrseq = /pws/zycbe217-nrseq.
insert /pws/zycbt218 from table itab_zycbt218.
modify /pws/zycbt217 from /pws/zycbe217.
perform salva_zycbt001.
* >> Início da inclusão: FORM SALVAR_DADOS
IF /pws/zycbe217-tpcontr(1) NE 'E'.
* << Fim da inclusão
perform salva_zycbt002.
* >> Início da inclusão: FORM SALVAR_DADOS
ENDIF.
* << Fim da inclusão
commit work.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB024I01
module consiste_tpcontr input.
* >> Início da exclusão: MODULE CONSISTE_TPCONTR
if /pws/zycbe217-tpcontr(1) ca 'ACDET'.
* << Fim da exclusão
* >> Início da inclusão: MODULE CONSISTE_TPCONTR
if /pws/zycbe217-tpcontr(1) ca 'ACDT'.
* << Fim da inclusão
message e015 with text-001 text-002.
endif.
endmodule.
module date_consistency input.
data: itab_period like casdayattr occurs 0 with header line,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCB001