Módulo: CÂMBIO IMPORTAÇÃO
Funcionalidade: Financiamento
Data/Hora da Publicação: 13/12/2006 00:00:00
Data/Hora Última Alteração: 18/02/2011 09:45:52
Descrição da Nota: FINANCIAMENTO - CÁLCULO DO NÚMERO DE DIAS EM PARCELAS DE COMISSÃO
Sintoma
Ao gerar as parcelas de comissão para financiamentos, o programa está calculando de forma incorreta
o número de dias para as parcelas.
Solução
O programa passou a calcular o número de dias somente quando a data de vencimento das parcelas de
comissão estiverem preenchidas.
6.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02680 Data: 13/12/2006 Hora: 09:22:14
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02680
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00026
Agrupamento : 00144
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
FINANCIAMENTO - CÁLCULO DO NÚMERO DE DIAS EM PARCELAS DE COMISSÃO
----------------------------------------------------------------------------------------------------
Palavras Chave:
FINANCIAMENTO NÚMERO DIAS DATA FINAL PARCELAS COMISSÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCM101F01
REPS /PWS/MZYCM101I01
REPT /PWS/SAPMZYCM101
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCM101F01
...
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.
DATA: v_tabix LIKE sy-tabix,
* >> Início da exclusão: FORM SAVE_CHANGES
v_min LIKE v_soma_vlme.
* << Fim da exclusão
* >> Início da inclusão: FORM SAVE_CHANGES
v_min LIKE v_soma_vlme,
v_comissao(01) TYPE c.
* << Fim da inclusão
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.
v_tabix = sy-tabix.
* >> Início da inclusão: FORM SAVE_CHANGES
IF itab_zycbt113c-dtfinal IS INITIAL OR
itab_zycbt113c-dtvecto IS INITIAL.
v_comissao = 'X'.
ENDIF.
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM SAVE_CHANGES
IF NOT v_comissao IS INITIAL.
MESSAGE i061 WITH
'Deve-se informar'(242) 'o número de dias'(243)
'e a data final'(244) 'das parcelas de comissão'(245).
EXIT.
ENDIF.
* << Fim da inclusão
IF v_soma_vlme <> /pws/zycbe112-vlcomis.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCM101I01
...
IF lin > 1.
linh = lin - 1.
READ TABLE itab_zycbt113c INDEX linh.
v_dinic = itab_zycbt113c-dtfinal.
READ TABLE itab_zycbt113c INDEX lin.
itab_zycbt113c-dtinicio = v_dinic.
ELSEIF lin = 1.
itab_zycbt113c-dtinicio = /pws/zycbe112-dtdesem.
ENDIF.
v_auxnr = itab_zycbt113c-nrdias.
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
IF NOT itab_zycbt113c-dtfinal IS INITIAL.
* << Fim da inclusão
itab_zycbt113c-nrdias =
( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
ENDIF.
* << Fim da inclusão
IF v_auxnr <> itab_zycbt113c-nrdias.
itab_zycbt113c-dtvecto = itab_zycbt113c-dtfinal.
ENDIF.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtinicio nrdias.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtfinal dtvecto.
...
...
itab_zycbt113c-nrdias = 0.
itab_zycbt113c-dtinicio = 0.
MODIFY itab_zycbt113c INDEX 1 TRANSPORTING nrdias dtinicio.
ENDIF.
CLEAR : itab_zycbt113c, v_nrd.
LOOP AT itab_zycbt113c.
v_nrd = v_nrd + itab_zycbt113c-nrdias.
ENDLOOP.
READ TABLE itab_zycbt113c INDEX 1.
itab_zycbt113c-dtinicio = /pws/zycbe112-dtdesem.
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
IF NOT itab_zycbt113c-dtfinal IS INITIAL.
* << Fim da inclusão
itab_zycbt113c-nrdias =
( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).
itab_zycbt113c-dtfinal =
( itab_zycbt113c-dtinicio + itab_zycbt113c-nrdias ).
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
ENDIF.
* << Fim da inclusão
DESCRIBE TABLE itab_zycbt113c LINES lin.
IF lin > 0.
MODIFY itab_zycbt113c INDEX 1 TRANSPORTING nrdias dtinicio.
MODIFY itab_zycbt113c INDEX 1 TRANSPORTING dtfinal.
ENDIF.
DESCRIBE TABLE itab_zycbt113c LINES lin.
READ TABLE itab_zycbt113c INDEX lin.
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
IF NOT itab_zycbt113c-dtfinal IS INITIAL.
* << Fim da inclusão
itab_zycbt113c-dtvecto = itab_zycbt113c-dtfinal.
itab_zycbt113c-nrdias =
( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
ENDIF.
* << Fim da inclusão
IF lin > 1.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING nrdias.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtinicio.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtfinal.
...
...
READ TABLE itab_zycbt113c INDEX lin.
IF sy-tcode <> '/PWS/ZYCB101_C' AND lin > 0.
itab_zycbt113c-nrdias = 0.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING nrdias.
ENDIF.
CLEAR : itab_zycbt113c, v_nrd.
LOOP AT itab_zycbt113c.
v_nrd = v_nrd + itab_zycbt113c-nrdias.
ENDLOOP.
v_auxnr = /pws/zycbe112-dtvencto - itab_zycbt113c-dtinicio.
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
IF NOT itab_zycbt113c-dtfinal IS INITIAL.
* << Fim da inclusão
itab_zycbt113c-nrdias =
( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
ENDIF.
* << Fim da inclusão
IF lin > 0.
READ TABLE itab_zycbt113c INDEX lin.
IF NOT itab_zycbt113c-dtvecto IS INITIAL.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING nrdias dtfinal.
ENDIF.
ENDIF.
LOOP AT itab_zycbt113c.
* >> Início da exclusão: MODULE EXIBIR_MENSAGEM
IF itab_zycbt113c-dtvecto IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
IF itab_zycbt113c-dtvecto IS INITIAL
AND NOT itab_zycbt113c-dtfinal IS INITIAL.
* << Fim da inclusão
itab_zycbt113c-dtvecto = itab_zycbt113c-dtfinal.
MODIFY itab_zycbt113c.
ENDIF.
ENDLOOP.
IF lin > 1 AND sy-tcode <> '/PWS/ZYCB101_C'.
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
IF NOT itab_zycbt113c-dtfinal IS INITIAL.
* << Fim da inclusão
itab_zycbt113c-nrdias =
( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
ENDIF.
* << Fim da inclusão
MODIFY itab_zycbt113c INDEX lin TRANSPORTING nrdias.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtfinal.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtvecto.
ELSEIF lin = 1 AND sy-tcode <> '/PWS/ZYCB101_C'.
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
IF NOT itab_zycbt113c-dtfinal IS INITIAL.
* << Fim da inclusão
itab_zycbt113c-nrdias =
( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
ENDIF.
* << Fim da inclusão
MODIFY itab_zycbt113c INDEX 1 TRANSPORTING nrdias.
MODIFY itab_zycbt113c INDEX 1 TRANSPORTING dtinicio.
MODIFY itab_zycbt113c INDEX 1 TRANSPORTING dtfinal.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtvecto.
ENDIF.
DESCRIBE TABLE itab_zycbt113c LINES lin.
IF v_flagc = 'X' AND lin > 1.
READ TABLE itab_zycbt113c INDEX 1.
itab_zycbt113c-dtinicio = /pws/zycbe112-dtdesem.
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
IF NOT itab_zycbt113c-dtfinal IS INITIAL.
* << Fim da inclusão
itab_zycbt113c-nrdias =
( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).
itab_zycbt113c-dtfinal = v_auxnrb =
( itab_zycbt113c-dtinicio + itab_zycbt113c-nrdias ).
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
ENDIF.
* << Fim da inclusão
MODIFY itab_zycbt113c INDEX 1 TRANSPORTING nrdias.
MODIFY itab_zycbt113c INDEX 1 TRANSPORTING dtinicio.
MODIFY itab_zycbt113c INDEX 1 TRANSPORTING dtfinal.
READ TABLE itab_zycbt113c INDEX lin.
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
IF NOT itab_zycbt113c-dtfinal IS INITIAL.
* << Fim da inclusão
itab_zycbt113c-dtinicio =
( itab_zycbt113c-dtfinal - itab_zycbt113c-nrdias ).
itab_zycbt113c-nrdias =
( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
ENDIF.
* << Fim da inclusão
MODIFY itab_zycbt113c INDEX lin TRANSPORTING nrdias.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtinicio.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtfinal.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtvecto.
CLEAR: v_flagc.
ELSEIF lin = 1 AND v_flagc = 'X'.
itab_zycbt113c-dtinicio = /pws/zycbe112-dtdesem.
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
IF NOT itab_zycbt113c-dtfinal IS INITIAL.
* << Fim da inclusão
itab_zycbt113c-nrdias =
( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).
* >> Início da inclusão: MODULE EXIBIR_MENSAGEM
ENDIF.
* << Fim da inclusão
MODIFY itab_zycbt113c INDEX lin TRANSPORTING nrdias.
MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtinicio.
CLEAR: v_flagc.
ENDIF.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCM101
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 242
Texto: (16 caracteres)
"Deve-se informar"
Comprimento máximo: 16
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 243
Texto: (16 caracteres)
"o número de dias"
Comprimento máximo: 16
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 244
Texto: (14 caracteres)
"e a data final"
Comprimento máximo: 14
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 245
Texto: (24 caracteres)
"das parcelas de comissão"
Comprimento máximo: 24