Módulo: CÂMBIO FINANCEIRO
Funcionalidade: Empréstimos
Data/Hora da Publicação: 15/12/2008 00:00:00
Data/Hora Última Alteração: 18/02/2011 14:25:55
Descrição da Nota: EMPRESTIMO - PROBLEMA COM OS CAMPOS DE PERIODO E ANO FISCAL
Sintoma
Emprestimo - problema com os campos de periodo e ano fiscal -afetando as contabilizações , não
trazendo as informações corretas
Solução
ajustar o programa e as funçoes para verificar o periodo e o ano fiscal correto
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07783 Data: 15/12/2008 Hora: 16:42:06
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07783
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00008
Agrupamento : 00077
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01230 - 00008 - 6.0 - 00023 - EMPRESTIMO - PARCELA PRINCIPAL LONGO / CURTISSIMO PRAZO
01597 - 00007 - 6.0 - 00023 - EMPRÉSTIMO - NÃO ESTÁ SENDO FEITO O ESTORNO
02717 - 00006 - 6.0 - 00025 - EMPRÉSTIMO - AO CRIAR UM NOVO EMPRÉSTIMO O SISTEMA NÃO CONSEGUE S
04196 - 00005 - 7.0 - 00002 - IRRF SOBRE COMISSÃO DE EMPRÉSTIMO CONTABILIZADO NO COMPLEMENTO DO
05772 - 00004 - 7.0 - 00004 - VERIFICAÇÃO AMPLIADA, CODE INSPECTOR MODULO DE FUNÇÃO CAMBIO
05990 - 00003 - 7.0 - 00004 - CODE INSPECTOR, VERIFICAÇÃO AMPLIADA GRUPOS DE FUNÇÃO CAMBIO
06023 - 00002 - 7.0 - 00004 - AJUDA DE PESQUISA, ASSOCIAÇÃO CARTA DE CREDITO IMPORTAÇÃO - CODE
07765 - 00001 - 7.0 - 00007 - COMPLEMENTO DO BOLETO EM PAGAMENTO ANTECIPADO -PERIODO FECHADO IN
----------------------------------------------------------------------------------------------------
EMPRESTIMO - PROBLEMA COM OS CAMPOS DE PERIODO E ANO FISCAL
----------------------------------------------------------------------------------------------------
Palavras Chave:
EMPRESTIMO - PROBLEMA COM OS CAMPOS DE PERIODO E ANO FISCAL -
AFETANDO AS CONTABILIZAÇÕES
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCA_TRANSACAO_F_02
FUNC /PWS/ZYCA_TRANSACAO_F_51I
FUNC /PWS/ZYCA_TRANSACAO_F_51J
FUNC /PWS/ZYCM_TRANSACAO_F_43
FUNC /PWS/ZYCM_TRANSACAO_F_43A
FUNC /PWS/ZYCM_TRANSACAO_F_63
REPS /PWS/MZYCA111F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCA_TRANSACAO_F_02
...
itab_oculto
using v_string_debito.
perform trata_string_credito tables t_dados
t_campo
itab_oculto
using v_string_credito.
write: t_dados-bukrs to v_bukrs,
t_dados-bldat to v_data_doc_char,
t_dados-budat to v_data_lanc_char,
t_dados-kursf to v_kursf.
* >> Início da exclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_02
v_monat = t_dados-budat+4(2).
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_02
DATA v_periv(2).
SELECT periv
FROM t001
INTO v_periv
WHERE bukrs EQ t_dados-bukrs.
ENDSELECT.
CALL FUNCTION 'DETERMINE_PERIOD'
EXPORTING
date = t_dados-budat
version = v_periv
IMPORTING
period = v_monat
EXCEPTIONS
period_in_not_valid = 1
period_not_assigned = 2
version_undefined = 3
OTHERS = 4.
IF sy-subrc EQ 0.
else.
ENDIF.
* << Fim da inclusão
v_gjahr = v_date.
v_koart = 'S'.
perform check_periodo using v_koart
v_monat
v_bukrs
v_gjahr
v_konto
changing v_data_lanc_char
v_ok.
concatenate '0' v_data_lanc_char+3(2) into v_monat.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCA_TRANSACAO_F_51I
...
CLEAR itab_oculto.
REFRESH itab_oculto.
PERFORM trata_string_credito TABLES t_dados
t_campo
itab_oculto
USING v_string_credito.
WRITE: t_dados-bukrs TO v_bukrs,
t_dados-bldat TO v_data_doc_char,
t_dados-budat TO v_data_lanc_char,
t_dados-kursf TO v_kursf.
* >> Início da exclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_51I
v_monat = t_dados-budat+4(2).
v_gjahr = t_dados-budat+0(4).
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_51I
DATA v_periv(2).
SELECT periv
FROM t001
INTO v_periv
WHERE bukrs EQ t_dados-bukrs.
ENDSELECT.
CALL FUNCTION 'DETERMINE_PERIOD'
EXPORTING
date = t_dados-budat
version = v_periv
IMPORTING
period = v_monat
EXCEPTIONS
period_in_not_valid = 1
period_not_assigned = 2
version_undefined = 3
OTHERS = 4.
IF sy-subrc EQ 0.
else.
ENDIF.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = t_dados-bukrs
v_date = t_dados-budat
IMPORTING
v_year = v_gjahr
EXCEPTIONS
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
OTHERS = 7.
IF sy-subrc EQ 0.
else.
ENDIF.
* << Fim da inclusão
v_koart = 'S'.
PERFORM check_periodo USING v_koart
v_monat
v_bukrs
v_gjahr
v_konto
CHANGING v_data_lanc_char
v_ok.
CONCATENATE '0' v_data_lanc_char+3(2) INTO v_monat.
MOVE v_data_lanc_char+6(4) TO v_gjahr.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCA_TRANSACAO_F_51J
...
CLEAR itab_oculto.
REFRESH itab_oculto.
PERFORM trata_string_debito TABLES t_dados
t_campo
itab_oculto
USING v_string_debito.
WRITE: t_dados-bukrs TO v_bukrs,
t_dados-bldat TO v_data_doc_char,
t_dados-budat TO v_data_lanc_char,
t_dados-kursf TO v_kursf.
* >> Início da exclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_51J
v_monat = t_dados-budat+4(2).
v_gjahr = t_dados-budat+0(4).
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_51J
DATA v_periv(2).
SELECT periv
FROM t001
INTO v_periv
WHERE bukrs EQ t_dados-bukrs.
ENDSELECT.
CALL FUNCTION 'DETERMINE_PERIOD'
EXPORTING
date = t_dados-budat
version = v_periv
IMPORTING
period = v_monat
EXCEPTIONS
period_in_not_valid = 1
period_not_assigned = 2
version_undefined = 3
OTHERS = 4.
IF sy-subrc EQ 0.
else.
ENDIF.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = t_dados-bukrs
v_date = t_dados-budat
IMPORTING
v_year = v_gjahr
EXCEPTIONS
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
OTHERS = 7.
IF sy-subrc EQ 0.
else.
ENDIF.
* << Fim da inclusão
v_koart = 'S'.
PERFORM check_periodo USING v_koart
v_monat
v_bukrs
v_gjahr
v_konto
CHANGING v_data_lanc_char
v_ok.
CONCATENATE '0' v_data_lanc_char+3(2) INTO v_monat.
MOVE v_data_lanc_char+6(4) TO v_gjahr.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCM_TRANSACAO_F_43
...
CHANGING v_data_lanc_char
v_ok.
CONCATENATE '0' v_data_lanc_char+3(2) INTO v_monat.
MOVE v_data_lanc_char+6(4) TO v_gjahr.
PERFORM bdc_screen USING 'SAPMF05A' '0100'.
PERFORM bdc_field USING:
'BKPF-BLDAT' v_data_doc_char,
'BKPF-BLART' t_dados-blart,
'BKPF-BUKRS' t_dados-bukrs,
'BKPF-BUDAT' v_data_lanc_char,
* >> Início da exclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_43
'BKPF-MONAT' t_dados-budat+4(2),
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_43
'BKPF-MONAT' v_data_lanc_char+3(2),
* << Fim da inclusão
'BKPF-WAERS' t_dados-waers,
'BKPF-KURSF' v_kursf,
'BKPF-BKTXT' t_dados-bktxt.
IF NOT t_dados-xblnr IS INITIAL.
PERFORM bdc_field USING 'BKPF-XBLNR' t_dados-xblnr.
ENDIF.
IF t_dados-newbs EQ '39'.
PERFORM bdc_field USING:
'RF05A-NEWBS' '39',
'RF05A-NEWKO' t_dados-c_newko,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCM_TRANSACAO_F_43A
...
CHANGING v_data_lanc_char
v_ok.
CONCATENATE '0' v_data_lanc_char+3(2) INTO v_monat.
MOVE v_data_lanc_char+6(4) TO v_gjahr.
PERFORM bdc_screen USING 'SAPMF05A' '0100'.
PERFORM bdc_field USING:
'BKPF-BLDAT' v_data_doc_char,
'BKPF-BLART' t_dados-blart,
'BKPF-BUKRS' t_dados-bukrs,
'BKPF-BUDAT' v_data_lanc_char,
* >> Início da exclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_43A
'BKPF-MONAT' t_dados-budat+4(2),
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_43A
'BKPF-MONAT' v_data_lanc_char+3(2),
* << Fim da inclusão
'BKPF-WAERS' t_dados-waers,
'BKPF-KURSF' v_kursf,
'BKPF-BKTXT' t_dados-bktxt.
READ TABLE t_contas INDEX 1.
PERFORM bdc_field USING:
'RF05A-NEWBS' t_contas-bschl,
'RF05A-NEWKO' t_contas-d_newko,
'RF05A-NEWUM' v_agums,
'BDC_OKCODE' '/00'.
CLEAR v_tabix.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCM_TRANSACAO_F_63
...
CHANGING v_data_lanc_char
v_ok.
CONCATENATE '0' v_data_lanc_char+3(2) INTO v_monat.
MOVE v_data_lanc_char+6(4) TO v_gjahr.
PERFORM bdc_screen USING 'SAPLF040' '0100'.
PERFORM bdc_field USING:
'BKPF-BLDAT' v_data_doc_char,
'BKPF-BLART' t_dados-blart,
'BKPF-BUKRS' t_dados-bukrs,
'BKPF-BUDAT' v_data_lanc_char,
* >> Início da exclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_63
'BKPF-MONAT' t_dados-budat+4(2),
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_63
'BKPF-MONAT' v_data_lanc_char+3(2),
* << Fim da inclusão
'BKPF-WAERS' t_dados-waers,
'BKPF-KURSF' v_kursf,
'BKPF-XBLNR' t_dados-xblnr,
'BKPF-BKTXT' t_dados-bktxt,
'VBKPF-XBWAE' v_montante,
'RF05V-NEWBS' '31',
'RF05V-NEWKO' t_dados-agkon,
'BDC_OKCODE' '/00'.
WRITE: t_dados-wrbtr TO v_wrbtr CURRENCY t_dados-waers,
t_dados-dmbtr TO v_dmbtr CURRENCY t_dados-waersb,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCA111F01
...
ENDIF.
MODIFY itab_zycbt129j INDEX sy-tabix.
MOVE itab_zycbt129j TO /pws/zycbt129.
MODIFY /pws/zycbt129.
ENDLOOP.
DELETE FROM /pws/zycbt129 WHERE nrseq = itab_zycbt129j-nrseq AND
tpparc = 'J' AND
nrparc > itab_zycbt129j-nrparc.
ENDFORM.
FORM reverse_document_zycbt128.
* >> Início da exclusão: FORM REVERSE_DOCUMENT_ZYCBT128
DATA v_monat LIKE t001b-frpe1.
* << Fim da exclusão
CLEAR /pws/zycbe128-fassoc.
SELECT fassoc
UP TO 1 ROWS
FROM /pws/zycbt128
INTO /pws/zycbe128-fassoc
WHERE nrseq EQ /pws/zycbe128-nrseq.
ENDSELECT.
IF /pws/zycbe128-fassoc EQ 'X'.
PERFORM recontabiliza_parcelas.
EXIT.
...
...
CONTINUE.
ENDIF.
itab_zycbe033-mandt = sy-mandt.
itab_zycbe033-tcode = 'FBRA'.
itab_zycbe033-tabela = text-008.
itab_zycbe033-cpochv = wa_zycbt128-nrseq.
itab_zycbe033-belnr = itab_zycbt129pa-belnr.
itab_zycbe033-bukrs = wa_zycbt128-bukrs.
itab_zycbe033-bldat = wa_zycbt128-dtdesem.
itab_zycbe033-budat = wa_zycbt128-dtdesem.
* >> Início da exclusão: FORM REVERSE_DOCUMENT_ZYCBT128
itab_zycbe033-gjahs = wa_zycbt128-dtdesem+0(4).
v_monat = itab_zycbe033-budat+2(2).
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENT_ZYCBT128
PERFORM determina_periodo USING itab_zycbe033-budat
wa_zycbt128-bukrs
CHANGING v_monat.
PERFORM determina_ano USING wa_zycbt128-dtdesem
wa_zycbt128-bukrs
CHANGING v_ano.
itab_zycbe033-gjahs = v_ano.
* << Fim da inclusão
PERFORM verify_null_field USING wa_zycbt128-bukrs
'BUKRS'
text-012.
itab_zycbe033-bukrs = wa_zycbt128-bukrs.
CALL FUNCTION 'FI_PERIOD_CHECK'
EXPORTING
i_bukrs = itab_zycbe033-bukrs
* >> Início da exclusão: FORM REVERSE_DOCUMENT_ZYCBT128
i_gjahr = itab_zycbe033-budat+0(4)
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENT_ZYCBT128
i_gjahr = v_ano
* << Fim da inclusão
i_koart = 'S'
i_monat = v_monat
EXCEPTIONS
error_period = 1
error_period_acc = 2
OTHERS = 3.
IF sy-subrc = 0.
itab_zycbe033-stgrd = '01'.
ELSE.
itab_zycbe033-stgrd = '02'.
...
...
v_erro_bi = 'X'.
ENDLOOP.
v_erro_exclusao = 'X'.
ENDIF.
ENDIF.
REFRESH itab_zycbt036.
itab_zycbt036-tcode = text-095.
itab_zycbt036-tabela = text-008.
itab_zycbt036-cpochv = /pws/zycbe128-nrseq.
itab_zycbt036-belnr = itab_zycbt032-belnr.
* >> Início da inclusão: FORM FILL_DATE1_F02
PERFORM determina_ano USING /pws/zycbe128-dtdesem
/pws/zycbe128-bukrs
CHANGING v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbt036-awkey
WHERE belnr EQ itab_zycbt032-belnr AND
bukrs EQ /pws/zycbe128-bukrs AND
* >> Início da exclusão: FORM FILL_DATE1_F02
gjahr EQ /pws/zycbe128-dtdesem(4).
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F02
gjahr EQ v_ano.
* << Fim da inclusão
ENDSELECT.
APPEND itab_zycbt036.
v_vlres = /pws/zycbe128-vlme.
PERFORM clear_date_batch.
PERFORM gera_novas_parcelas.
ENDFORM.
FORM get_parameters_111.
DATA v_codeven LIKE /pws/zycbt011-codeven.
v_codeven = '001E'.
EXPORT v_codeven TO MEMORY ID 'A001'.
...
...
LOOP AT itab_zycbt129_ant WHERE belnr_c NE ' '.
READ TABLE itab_zycbt129c WITH KEY nrparc = itab_zycbt129_ant-nrparc.
itab_zycbe033-mandt = sy-mandt.
itab_zycbe033-tcode = 'FB08'.
itab_zycbe033-tabela = text-051.
CONCATENATE itab_zycbt129_ant-nrseq itab_zycbt129_ant-tpparc
itab_zycbt129_ant-nrparc INTO itab_zycbe033-cpochv.
itab_zycbe033-belnr = itab_zycbt129_ant-belnr_c.
itab_zycbe033-bukrs = wa_zycbt128-bukrs.
itab_zycbe033-budat = wa_zycbt128-dtdesem.
* >> Início da exclusão: FORM REVERSE_DOCUMENT_ZYCBT129
itab_zycbe033-gjahs = wa_zycbt128-dtdesem+0(4).
v_monat = itab_zycbe033-budat+2(2).
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENT_ZYCBT129
PERFORM determina_periodo USING wa_zycbt128-dtdesem
wa_zycbt128-bukrs
CHANGING v_monat.
PERFORM determina_ano USING wa_zycbt128-dtdesem
wa_zycbt128-bukrs
CHANGING v_ano.
itab_zycbe033-gjahs = v_ano.
* << Fim da inclusão
CALL FUNCTION 'FI_PERIOD_CHECK'
EXPORTING
i_bukrs = itab_zycbe033-bukrs
* >> Início da exclusão: FORM REVERSE_DOCUMENT_ZYCBT129
i_gjahr = itab_zycbe033-budat+0(4)
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENT_ZYCBT129
i_gjahr = v_ano
* << Fim da inclusão
i_koart = 'S'
...
...
ENDFORM.
FORM reverse_document_zycbt128_cab.
PERFORM clear_date_batch.
itab_zycbe033-mandt = sy-mandt.
itab_zycbe033-tcode = 'FB08'.
itab_zycbe033-tabela = text-008.
itab_zycbe033-cpochv = wa_zycbt128-nrseq.
itab_zycbe033-belnr = wa_zycbt128-belnr.
itab_zycbe033-bukrs = wa_zycbt128-bukrs.
itab_zycbe033-budat = wa_zycbt128-dtdesem.
* >> Início da exclusão: FORM REVERSE_DOCUMENT_ZYCBT128_CAB
itab_zycbe033-gjahs = wa_zycbt128-dtdesem+0(4).
v_monat = itab_zycbe033-budat+2(2).
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENT_ZYCBT128_CAB
PERFORM determina_periodo USING itab_zycbe033-budat
itab_zycbe033-bukrs
CHANGING v_monat.
PERFORM determina_ano USING itab_zycbe033-budat
itab_zycbe033-bukrs
CHANGING v_ano.
itab_zycbe033-gjahs = v_ano.
* << Fim da inclusão
CALL FUNCTION 'FI_PERIOD_CHECK'
EXPORTING
i_bukrs = itab_zycbe033-bukrs
* >> Início da exclusão: FORM REVERSE_DOCUMENT_ZYCBT128_CAB
i_gjahr = itab_zycbe033-budat+0(4)
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENT_ZYCBT128_CAB
i_gjahr = v_ano
* << Fim da inclusão
i_koart = 'S'
...
...
ENDFORM.
FORM estorna_parcelas_excluidas. "#EC CALLED
LOOP AT itab_excluidos.
itab_zycbe033-mandt = sy-mandt.
itab_zycbe033-tcode = 'FB08'.
itab_zycbe033-tabela = text-008.
itab_zycbe033-cpochv = wa_zycbt128-nrseq.
itab_zycbe033-belnr = itab_excluidos-belnr.
itab_zycbe033-bukrs = wa_zycbt128-bukrs.
itab_zycbe033-budat = wa_zycbt128-dtdesem.
* >> Início da exclusão: FORM ESTORNA_PARCELAS_EXCLUIDAS
itab_zycbe033-gjahs = wa_zycbt128-dtdesem+0(4).
v_monat = itab_zycbe033-budat+2(2).
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_PARCELAS_EXCLUIDAS
PERFORM determina_periodo USING itab_zycbe033-budat
itab_zycbe033-bukrs
CHANGING v_monat.
PERFORM determina_ano USING itab_zycbe033-budat
itab_zycbe033-bukrs
CHANGING v_ano.
itab_zycbe033-gjahs = v_ano.
* << Fim da inclusão
CALL FUNCTION 'FI_PERIOD_CHECK'
EXPORTING
i_bukrs = itab_zycbe033-bukrs
* >> Início da exclusão: FORM ESTORNA_PARCELAS_EXCLUIDAS
i_gjahr = itab_zycbe033-budat+0(4)
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_PARCELAS_EXCLUIDAS
i_gjahr = v_ano
* << Fim da inclusão
i_koart = 'S'
...
...
CONTINUE.
ENDIF.
ENDIF.
v_vlres = v_vlres + itab_zycbt129pa-vlme.
IF v_prazo1 EQ 'L' AND
itab_zycbt129pa-ftransf EQ 'L'.
itab_zycbt036-tcode = text-095.
itab_zycbt036-tabela = text-008.
itab_zycbt036-cpochv = /pws/zycbe128-nrseq.
itab_zycbt036-belnr = itab_zycbt129pa-belnr.
* >> Início da inclusão: FORM RECONTABILIZA_PARCELAS
PERFORM determina_ano USING /pws/zycbe128-dtdesem
/pws/zycbe128-bukrs
CHANGING v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbt036-awkey
WHERE belnr EQ itab_zycbt129pa-belnr AND
bukrs EQ /pws/zycbe128-bukrs AND
* >> Início da exclusão: FORM RECONTABILIZA_PARCELAS
gjahr EQ /pws/zycbe128-dtdesem(4).
* << Fim da exclusão
* >> Início da inclusão: FORM RECONTABILIZA_PARCELAS
gjahr EQ v_ano.
* << Fim da inclusão
ENDSELECT.
APPEND itab_zycbt036.
CONTINUE.
ENDIF.
PERFORM busca_conta_parcela.
itab_zycbe033-mandt = sy-mandt.
itab_zycbe033-tcode = text-095.
itab_zycbe033-tabela = text-008.
itab_zycbe033-cpochv = /pws/zycbe128-nrseq.
CASE wa_zycbt007-fdtdoc.
...
...
PERFORM verify_null_field USING /pws/zycbe128-sldesem
'SLDESEM'
text-015.
itab_zycbe033-wrbtr = itab_zycbt129pa-vlme.
itab_zycbe033-newbs = '50'.
itab_zycbe033-c_newko = v_newkof.
itab_zycbe033-d_newko = v_newkof.
itab_zycbe033-agkon = itab_zyglt316-konth.
itab_zycbe033-agkoa = 'S'.
itab_zycbe033-belnr = itab_zycbt129pa-belnr.
* >> Início da inclusão: FORM RECONTABILIZA_PARCELAS
PERFORM determina_ano USING wa_zycbt128-dtdesem
wa_zycbt128-bukrs
CHANGING v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbe033-awkey
WHERE belnr EQ itab_zycbt129pa-belnr AND
bukrs EQ wa_zycbt128-bukrs AND
* >> Início da exclusão: FORM RECONTABILIZA_PARCELAS
gjahr EQ wa_zycbt128-dtdesem(4).
* << Fim da exclusão
* >> Início da inclusão: FORM RECONTABILIZA_PARCELAS
gjahr EQ v_ano.
* << Fim da inclusão
ENDSELECT.
itab_zycbe033-d_gsber = /pws/zycbe128-gsber.
itab_zycbe033-d_kostl = /pws/zycbe128-kostl.
itab_zycbe033-d_prctr = /pws/zycbe128-prctr.
itab_zycbe033-d_fipos = /pws/zycbe128-fipos.
itab_zycbe033-d_fictr = /pws/zycbe128-fictr.
itab_zycbe033-c_gsber = /pws/zycbe128-gsber.
itab_zycbe033-c_kostl = /pws/zycbe128-kostl.
itab_zycbe033-c_prctr = /pws/zycbe128-prctr.
itab_zycbe033-c_fipos = /pws/zycbe128-fipos.
...
...
IF sy-subrc = 0.
READ TABLE itab_zycbt032 WITH KEY tcode = text-095
tabela = text-008
cpochv = /pws/zycbe128-nrseq
tpmsg = 'S'.
IF sy-subrc = 0.
itab_zycbt036-tcode = text-095.
itab_zycbt036-tabela = text-008.
itab_zycbt036-cpochv = /pws/zycbe128-nrseq.
itab_zycbt036-belnr = itab_zycbt032-belnr.
* >> Início da inclusão: FORM RECONTABILIZA_PARCELAS
PERFORM determina_ano USING /pws/zycbe128-dtdesem
/pws/zycbe128-bukrs
CHANGING v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbt036-awkey
WHERE belnr EQ itab_zycbt032-belnr AND
bukrs EQ /pws/zycbe128-bukrs AND
* >> Início da exclusão: FORM RECONTABILIZA_PARCELAS
gjahr EQ /pws/zycbe128-dtdesem(4).
* << Fim da exclusão
* >> Início da inclusão: FORM RECONTABILIZA_PARCELAS
gjahr EQ v_ano.
* << Fim da inclusão
ENDSELECT.
APPEND itab_zycbt036.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
v_erro_exclusao = 'X'.
ENDIF.
ELSE.
...
...
tabela = text-008
cpochv = /pws/zycbe128-nrseq
tpmsg = 'S'.
IF sy-subrc = 0.
MESSAGE i015 WITH itab_zycbt032-msg.
REFRESH itab_zycbt036.
itab_zycbt036-tcode = text-095.
itab_zycbt036-tabela = text-008.
itab_zycbt036-cpochv = /pws/zycbe128-nrseq.
itab_zycbt036-belnr = itab_zycbt032-belnr.
* >> Início da inclusão: FORM GERA_NOVAS_PARCELAS
PERFORM determina_ano USING /pws/zycbe128-dtdesem
/pws/zycbe128-bukrs
CHANGING v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbt036-awkey
WHERE belnr EQ itab_zycbt032-belnr AND
bukrs EQ /pws/zycbe128-bukrs AND
* >> Início da exclusão: FORM GERA_NOVAS_PARCELAS
gjahr EQ /pws/zycbe128-dtdesem(4).
* << Fim da exclusão
* >> Início da inclusão: FORM GERA_NOVAS_PARCELAS
gjahr EQ v_ano .
* << Fim da inclusão
ENDSELECT.
APPEND itab_zycbt036.
itab_zycbt129p-belnr = itab_zycbt032-belnr.
IF v_prazo EQ 'L'.
itab_zycbt129p-belnr_lp = itab_zycbt032-belnr.
itab_zycbt129p-ftransf = 'L'.
ELSE.
itab_zycbt129p-ftransf = 'S'.
ENDIF.
MODIFY itab_zycbt129p.
...
...
itab_zycbe033-d_fipos = /pws/zycbe128-fipos.
itab_zycbe033-d_fictr = /pws/zycbe128-fictr.
itab_zycbe033-c_gsber = /pws/zycbe128-gsber.
itab_zycbe033-c_kostl = /pws/zycbe128-kostl.
itab_zycbe033-c_prctr = /pws/zycbe128-prctr.
itab_zycbe033-c_fipos = /pws/zycbe128-fipos.
itab_zycbe033-c_fictr = /pws/zycbe128-fictr.
itab_zycbe033-agkoa = 'S'.
itab_zycbe033-agkon = itab_zycbt012-saknr1.
itab_zycbe033-belnr = /pws/zycbe128-belnr.
* >> Início da inclusão: FORM FILL_DATE_F04
PERFORM determina_ano USING /pws/zycbe128-dtdesem
/pws/zycbe128-bukrs
CHANGING v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbe033-awkey
WHERE belnr EQ /pws/zycbe128-belnr AND
bukrs EQ /pws/zycbe128-bukrs AND
* >> Início da exclusão: FORM FILL_DATE_F04
gjahr EQ /pws/zycbe128-dtdesem(4).
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F04
gjahr EQ v_ano.
* << Fim da inclusão
ENDSELECT.
APPEND itab_zycbe033.
IMPORT v_codeven FROM MEMORY ID 'A001'.
LOOP AT itab_zycbt034.
MESSAGE i254 WITH itab_zycbt034-descricao v_codeven.
v_erro_bi = 'X'.
ENDLOOP.
CLEAR sy-subrc.
IF itab_zycbt034 IS INITIAL.
CALL FUNCTION '/PWS/ZYCA_TRANSACAO_F_04'
...
...
itab_zycbe033-mandt = sy-mandt.
itab_zycbe033-tcode = c_fb08.
itab_zycbe033-tabela = c_zycbt129.
CONCATENATE itab_zycbt129_ant-nrseq
itab_zycbt129_ant-tpparc
itab_zycbt129_ant-nrparc
INTO itab_zycbe033-cpochv.
itab_zycbe033-belnr = itab_zycbt129_ant-belnr_ci.
itab_zycbe033-bukrs = wa_zycbt128-bukrs.
itab_zycbe033-budat = wa_zycbt128-dtdesem.
* >> Início da exclusão: FORM ESTORNA_IR_COMISSAO
itab_zycbe033-gjahs = wa_zycbt128-dtdesem(4).
v_monat = itab_zycbe033-budat+2(2).
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_IR_COMISSAO
PERFORM determina_periodo USING itab_zycbe033-budat
itab_zycbe033-bukrs
CHANGING v_monat.
PERFORM determina_ano USING itab_zycbe033-budat
itab_zycbe033-bukrs
CHANGING v_ano.
itab_zycbe033-gjahs = v_ano.
* << Fim da inclusão
CALL FUNCTION 'FI_PERIOD_CHECK'
EXPORTING
i_bukrs = itab_zycbe033-bukrs
i_gjahr = itab_zycbe033-gjahs
i_koart = 'S'
i_monat = v_monat
EXCEPTIONS
error_period = 1
error_period_acc = 2
OTHERS = 3.
...