Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Rotina Mensal
Data/Hora da Publicação: 10/05/2006 00:00:00
Data/Hora Última Alteração: 18/02/2011 17:23:33
Descrição da Nota: ROTINA MENSAL EXPORTAÇÃO CONTABILIZAÇÃO SEPARADA DE ACC E ACE = SIM
Sintoma
1) Está parametrizado na tabela zygl007 (Rotina mensal: Clearing e Separação de Juros de ACC e
ACE e contabilização separada de ACC e ACE = SIM).
- Criei um contrato de ACC e fiz uma vinculação no dia 01.04.2006.
- Rodei a rotina mensal no dia 30.04.2006: Na 1ª tela da rotina mensal os valores de juros de ACC
e ACE foram separados corretamente. Mas na 2ª tela da rotina (Relatório de contabilidade), o
programa está trazendo o valor total de provisão na diferença à provisionar para os juros de ACC
e ACE e está errado, pois dessa forma irá provisionar o dobro.
Solução
Ajuste efetuado para que qdo parametrizada a tabela zygl007 (Rotina mensal: Clearing, Separação de
Juros de ACC e ACE e contabilização separada de ACC e ACE = SIM), seja exibida na 2ª tela da rotina
mensal (Relatório de contabilidade), o valor total de provisão separado para o ACC e para o ACE e
para que a contabilização efetue o lançamento contábil com os valores corretos.
Ajuste efetuado na Liquidação para lançar a provisão na conta do ACE quando há separação ACC/ACE.
Ajuste efetuado no programa de encerramento para que lance a diferença de provisão x pagamento e
efetue o clearing nas contas corretas e com os valores separados de ACC/ACE.
Ajuste no programa de captação para que exiba e anule/estorne todos documentos de clearing gerados
no encerramento, pois pode haver mais de um quando há separação de ACC/ACE
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 01309 Data: 10/05/2006 Hora: 11:44:49
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 01309
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00023
Agrupamento : 00115
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00444 - 00001 - 6.0 - 00021 - VALORES DE MOEDAS SEM CASAS DECIMAIS INCORRETOS PARA TRANSFERÊNCI
00742 - 00002 - 6.0 - 00022 - ROTINA MENSAL VALOR DA DIFERENÇA A PROVISIONAR
00760 - 00003 - 6.0 - 00022 - ROTINA MENSAL EXPORTAÇÃO - MENSAGEM EMPRESA NÃO ENCONTRADA
01054 - 00004 - 6.0 - 00023 - ROTINA MENSAL COM TRANSFERÊNCIA DE LONGO PARA CURTO, GERAVA F-30
----------------------------------------------------------------------------------------------------
ROTINA MENSAL EXPORTAÇÃO CONTABILIZAÇÃO SEPARADA DE ACC E ACE = SIM
----------------------------------------------------------------------------------------------------
Palavras Chave:
ROTINA MENSAL EXPORTAÇÃO CONTABILIZAÇÃO SEPARADA DE ACC E ACE = SIM
LIQUIDAÇÃO ENCERRAMENTO ANULAÇÃO ENCERRAMENTO NA CAPTAÇÃO ROTINA CLEAR.
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB001F01
REPS /PWS/MZYCB001F04
REPS /PWS/MZYCB001O01
REPS /PWS/MZYCB004F02
REPS /PWS/ZYCBI003
REPS /PWS/ZYCBR003
REPS /PWS/ZYCBR056
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001F01
...
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = p_bukrs
v_date = p_budat
IMPORTING
* >> Início da exclusão: FORM DETERMINA_ANO
v_year = p_ano.
* << Fim da exclusão
* >> Início da inclusão: FORM DETERMINA_ANO
v_year = p_ano
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.
* << Fim da inclusão
ENDFORM.
FORM reverse_document_zycbt_belnr2 USING value(belnr2)
value(dtvincul)
value(vlme)
tabela.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001F04
...
FORM anula_enceramento.
SELECT * FROM /pws/zycbt154 INTO TABLE itab_zycbt154
WHERE nrcorresp EQ /pws/zycbe001-nrseqc AND
belnr_cl <> space.
IF sy-subrc = 0.
* >> Início da exclusão: FORM ANULA_ENCERAMENTO
READ TABLE itab_zycbt154 WITH KEY nrcorresp = /pws/zycbe001-nrseqc.
* << Fim da exclusão
* >> Início da inclusão: FORM ANULA_ENCERAMENTO
LOOP AT itab_zycbt154 WHERE NOT belnr_cl IS initial.
* << Fim da inclusão
itab_zycbe033-mandt = sy-mandt.
itab_zycbe033-tcode = 'FBRA'.
itab_zycbe033-tabela = '/PWS/ZYCBT001'.
itab_zycbe033-cpochv = /pws/zycbe001-nrseqc.
itab_zycbe033-belnr = itab_zycbt154-belnr_cl.
...
...
cpochv = /pws/zycbe001-nrseqc
tpmsg = 'S'.
IF sy-subrc EQ 0.
PERFORM clear_date_batch.
PERFORM executa_fb08.
* >> Início da exclusão: FORM ANULA_ENCERAMENTO
READ TABLE itab_zycbt154 WITH KEY nrcorresp =
/pws/zycbe001-nrseqc
codmodul = 'JD'.
IF sy-subrc EQ 0.
PERFORM fb08_diferenca.
ENDIF.
LOOP AT itab_zycbt154.
* << Fim da exclusão
* >> Início da inclusão: FORM ANULA_ENCERAMENTO
v_belnr_cl = itab_zycbt154-belnr_cl.
* << Fim da inclusão
CLEAR: itab_zycbt154-status,
itab_zycbt154-belnr_cl.
CHECK itab_zycbt154-nrcorresp EQ /pws/zycbe001-nrseqc.
UPDATE /pws/zycbt154 SET status = itab_zycbt154-status
belnr_cl = itab_zycbt154-belnr_cl
* >> Início da exclusão: FORM ANULA_ENCERAMENTO
WHERE nrcorresp = /pws/zycbe001-nrseqc.
* << Fim da exclusão
* >> Início da inclusão: FORM ANULA_ENCERAMENTO
WHERE nrcorresp = /pws/zycbe001-nrseqc
AND belnr_cl = v_belnr_cl.
MODIFY itab_zycbt154 TRANSPORTING belnr_cl
WHERE nrcorresp = /pws/zycbe001-nrseqc
AND belnr_cl = v_belnr_cl.
* << Fim da inclusão
COMMIT WORK.
* >> Início da inclusão: FORM ANULA_ENCERAMENTO
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt154 WHERE codmodul = 'JD'.
PERFORM fb08_diferenca.
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM ANULA_ENCERAMENTO
LOOP AT itab_zycbt154 WHERE NOT belnr_cl IS initial
OR codmodul EQ 'JD'.
ENDLOOP.
IF sy-subrc NE 0.
* << Fim da inclusão
CLEAR /pws/zycbe001-f_encerrado.
CLEAR /pws/zycbe001-dtencerra.
* >> Início da exclusão: FORM ANULA_ENCERAMENTO
UPDATE /pws/zycbt001 SET f_encerrado = /pws/zycbe001-f_encerrado
* << Fim da exclusão
* >> Início da inclusão: FORM ANULA_ENCERAMENTO
UPDATE /pws/zycbt001
SET f_encerrado = /pws/zycbe001-f_encerrado
* << Fim da inclusão
dtencerra = /pws/zycbe001-dtencerra
WHERE nrseqc = /pws/zycbe001-nrseqc.
COMMIT WORK.
MESSAGE s015 WITH text-258.
* >> Início da exclusão: FORM ANULA_ENCERAMENTO
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
ENDIF.
* << Fim da exclusão
ENDIF.
ELSE.
CLEAR /pws/zycbe001-f_encerrado.
CLEAR /pws/zycbe001-dtencerra.
UPDATE /pws/zycbt001 SET f_encerrado = /pws/zycbe001-f_encerrado
...
...
/pws/zycbe001-tpcontr(1) EQ 'P'.
ENDIF.
ENDIF.
ENDFORM.
FORM fb08_diferenca.
* >> Início da inclusão: FORM FB08_DIFERENCA
PERFORM clear_date_batch.
itab_zycbe033-tcode = 'FB08'.
itab_zycbe033-mandt = sy-mandt.
itab_zycbe033-tabela = '/PWS/ZYCBT001'.
itab_zycbe033-cpochv = /pws/zycbe001-nrseqc.
itab_zycbe033-bukrs = /pws/zycbe001-bukrs.
itab_zycbe033-bldat = /pws/zycbe001-dtencerra.
itab_zycbe033-budat = /pws/zycbe001-dtencerra.
PERFORM determina_periodo USING itab_zycbe033-budat
CHANGING v_monat.
PERFORM determina_ano USING itab_zycbe033-budat
itab_zycbe033-bukrs
CHANGING v_ano.
PERFORM period_refresh.
CALL FUNCTION 'FI_PERIOD_CHECK'
EXPORTING
i_bukrs = itab_zycbe033-bukrs
i_gjahr = v_ano
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'.
itab_zycbe033-budat = sy-datum.
ENDIF.
* << Fim da inclusão
itab_zycbe033-belnr = itab_zycbt154-belnr_pr.
* >> Início da exclusão: FORM FB08_DIFERENCA
MODIFY itab_zycbe033 INDEX 1.
* << Fim da exclusão
* >> Início da inclusão: FORM FB08_DIFERENCA
append itab_zycbe033.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_FB08'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycbe033
...
...
DELETE FROM /pws/zycbt154 WHERE codmod = 'E' AND
codmodul = 'JD' AND
tpcontr = /pws/zycbe001-tpcontr AND
nrcorresp = /pws/zycbe001-nrseqc AND
belnr_pr = itab_zycbt154-belnr_pr.
* >> Início da inclusão: FORM FB08_DIFERENCA
DELETE itab_zycbt154 WHERE codmod = 'E'
AND codmodul = 'JD'
AND tpcontr = /pws/zycbe001-tpcontr
AND nrcorresp = /pws/zycbe001-nrseqc
AND belnr_pr = itab_zycbt154-belnr_pr.
* << Fim da inclusão
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001O01
...
CLEAR /pws/zycbe002.
ENDLOOP.
ENDIF.
ENDMODULE.
MODULE exibir_encerramento OUTPUT.
* >> Início da exclusão: MODULE EXIBIR_ENCERRAMENTO
SELECT SINGLE belnr_cl FROM /pws/zycbt154 INTO v_belnr_cl
* << Fim da exclusão
* >> Início da inclusão: MODULE EXIBIR_ENCERRAMENTO
SELECT * FROM /pws/zycbt154 INTO TABLE itab_zycbt154
* << Fim da inclusão
WHERE nrcorresp EQ /pws/zycbe001-nrseqc
AND tpcontr EQ /pws/zycbe001-tpcontr
AND codmod EQ 'E'.
LEAVE TO LIST-PROCESSING.
WRITE AT 1(30) sy-uline.
WRITE: /01 '|' NO-GAP, text-181,
16 '|' NO-GAP, text-182,
30 '|' NO-GAP.
WRITE AT /1(30) sy-uline.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
* >> Início da inclusão: MODULE EXIBIR_ENCERRAMENTO
SORT itab_zycbt154 BY belnr_cl.
DELETE adjacent duplicates from itab_zycbt154 comparing belnr_cl.
* << Fim da inclusão
* >> Início da exclusão: MODULE EXIBIR_ENCERRAMENTO
WRITE: /01 '|' NO-GAP, v_belnr_cl,
* << Fim da exclusão
* >> Início da inclusão: MODULE EXIBIR_ENCERRAMENTO
LOOP AT itab_zycbt154.
WRITE: /01 '|' NO-GAP, itab_zycbt154-belnr_cl,
* << Fim da inclusão
16 '|' NO-GAP, /pws/zycbe001-dtencerra,
30 '|' NO-GAP.
* >> Início da inclusão: MODULE EXIBIR_ENCERRAMENTO
ENDLOOP.
* << Fim da inclusão
WRITE AT /1(30) sy-uline.
SUPPRESS DIALOG.
ENDMODULE.
MODULE status_0400 OUTPUT.
SET PF-STATUS '0400'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F02
...
v_codaux2 LIKE /pws/zyglt316-codaux2,
v_codaux3 LIKE /pws/zyglt316-codaux3.
DATA: BEGIN OF itab_contas OCCURS 0.
INCLUDE STRUCTURE /pws/zyglt316.
DATA: END OF itab_contas.
* >> Início da exclusão: FORM BUSCA_CONTAS_PROVISAO
CLEAR /pws/zyglt009-nrdias_cp.
SELECT SINGLE nrdias_cp
* << Fim da exclusão
* >> Início da inclusão: FORM BUSCA_CONTAS_PROVISAO
CLEAR /pws/zyglt009.
SELECT SINGLE *
* << Fim da inclusão
FROM /pws/zyglt009
* >> Início da exclusão: FORM BUSCA_CONTAS_PROVISAO
INTO /pws/zyglt009-nrdias_cp
* << Fim da exclusão
WHERE bukrs EQ /pws/zycbt001-bukrs.
...
...
INTO v_codaux1 SEPARATED BY space.
ELSE.
CONCATENATE 'JUROS' v_prazo INTO v_codaux1 SEPARATED BY space.
ENDIF.
v_codaux2 = /pws/zycbt001-tpcontr.
* >> Início da inclusão: FORM BUSCA_CONTAS_PROVISAO
if /pws/zyglt009-cont_rot_sep = 'S'.
v_codaux3 = 'ACE'.
endif.
* << Fim da inclusão
REFRESH itab_contas.
CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
EXPORTING
bukrs = /pws/zycbt001-bukrs
ktosl = 'PVE'
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBI003
...
d_newkoir LIKE /pws/zycbe033-d_newko,
c_newkoir LIKE /pws/zycbe033-c_newko,
d_sgtxtir LIKE /pws/zycbe033-d_sgtxt,
c_sgtxtir LIKE /pws/zycbe033-c_sgtxt,
blartir LIKE /pws/zycbe033-blart,
* >> Início da inclusão:
subtotal TYPE c,
* << Fim da inclusão
END OF itab_contabil.
* >> Início da inclusão:
DATA: itab_contabil_aux LIKE itab_contabil OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
DATA: BEGIN OF itab_relat OCCURS 50,
tpcontab(2) TYPE c,
nrseqc LIKE /pws/zycbt001-nrseqc,
* >> Início da inclusão:
ftpj TYPE c,
* << Fim da inclusão
nrcontr LIKE /pws/zycbt001-nrcontr,
tpcontr LIKE /pws/zycbt001-tpcontr,
nrparcp LIKE /pws/zycbt002-nrparc,
nrparcj LIKE /pws/zycbt002-nrparc,
nrinvoic LIKE /pws/zycbt005-nrinvoic,
...
...
txc LIKE tcurr-ukurs,
vlmej LIKE /pws/zycbt001-vlme,
vlmij LIKE /pws/zycbt001-vlme,
ftme LIKE tcurr-ffact,
ftmi LIKE tcurr-ffact,
* >> Início da exclusão:
ftpj TYPE c,
* << Fim da exclusão
d_newko LIKE /pws/zycbe033-d_newko,
c_newko LIKE /pws/zycbe033-c_newko,
kostl LIKE /pws/zycbt001-kostl,
prctr LIKE /pws/zycbt001-prctr,
fipos LIKE /pws/zycbt001-fipos,
...
...
itab_zycbt034 LIKE /pws/zycbt034 OCCURS 10 WITH HEADER LINE.
DATA: wa_itab_relat LIKE itab_relat,
wa_zycbt007 LIKE /pws/zycbt007,
v_contabilizado,
v_cpochv LIKE /pws/zycbe033-cpochv,
* >> Início da exclusão:
v_codeven LIKE /pws/zycbt011-codeven.
* << Fim da exclusão
* >> Início da inclusão:
v_codeven LIKE /pws/zycbt011-codeven,
aux_relat LIKE itab_relat.
* << Fim da inclusão
DATA: BEGIN OF wa_taxa_cambial,
txc LIKE tcurr-ukurs,
ftme LIKE tcurr-ffact,
ftmi LIKE tcurr-ffact,
END OF wa_taxa_cambial.
...
...
v_vlirprov LIKE /pws/zycbt154-vlme,
v_faux,
v_waers LIKE /pws/zycbt001-waers,
v_vlme_mes LIKE /pws/zycbt001-vlme,
v_vlmi_mes LIKE /pws/zycbt001-vlmi,
* >> Início da exclusão: FORM EXIBE_RELATORIO
aux_relat LIKE itab_relat,
* << Fim da exclusão
v_nrdias(8) TYPE n,
v_tjuros LIKE /pws/zycbt004-vlme,
v_tir LIKE /pws/zycbt004-vlme,
v_primeiro TYPE c,
* >> Início da exclusão: FORM EXIBE_RELATORIO
v_sy_index LIKE sy-tabix.
* << Fim da exclusão
* >> Início da inclusão: FORM EXIBE_RELATORIO
v_sy_index LIKE sy-tabix,
v_conta_dif TYPE c,
v_ftpj LIKE itab_relat-ftpj,
v_vlmej2 LIKE /pws/zycbt001-vlme,
v_vlmeir2 LIKE /pws/zycbt001-vlme.
* << Fim da inclusão
DATA: BEGIN OF itab_sub_tipo OCCURS 5,
tpcontab(02) TYPE c,
tpcontr LIKE /pws/zycbt001-tpcontr,
waers LIKE /pws/zycbt001-waers,
vlmej LIKE /pws/zycbt001-vlme,
...
...
ELSE.
v_tamr = 229.
ENDIF.
NEW-PAGE LINE-SIZE v_tamr.
PERFORM totaliza_valores_lancados.
* >> Início da exclusão: FORM EXIBE_RELATORIO
SORT itab_relat BY tpcontr nrseqc tpcontab nrcontr nrinvoic
* << Fim da exclusão
* >> Início da inclusão: FORM EXIBE_RELATORIO
SORT itab_relat BY tpcontr nrseqc ftpj tpcontab nrcontr nrinvoic
* << Fim da inclusão
dtvincul nrparcp nrparcj dtde.
IF NOT itab_relat[] IS INITIAL.
SELECT lifnr name1
FROM lfa1
INTO TABLE itab_lfa1
...
...
172 itab_relat-vlrprov CURRENCY v_waers, v_waers,
225 itab_relat-vlirprov CURRENCY v_waers NO-ZERO,
AT v_tamr sy-vline.
FORMAT COLOR OFF.
ULINE.
* >> Início da inclusão: FORM EXIBE_RELATORIO
ENDIF.
IF itab_relat-vlmej > 0.
v_vlmej2 = v_vlmej2 + itab_relat-vlmej.
ENDIF.
IF itab_relat-vlmeir > 0.
v_vlmeir2 = v_vlmeir2 + itab_relat-vlmeir.
ENDIF.
AT END OF ftpj.
PERFORM verifica_provisao_liquidacao CHANGING v_separa.
IF wa_zycbt007-fprovisao EQ 'C' AND
( /pws/zyglt009-calc_rot_sep EQ 'S' OR
/pws/zyglt009-cont_rot_sep EQ 'S' ) AND
aux_relat-tpcontab IS INITIAL AND
( aux_relat-tpcontr EQ 'A' OR
aux_relat-tpcontr EQ 'E' ) AND
v_separa EQ 'X'.
CLEAR: v_vlrjprov, v_vlirprov.
LOOP AT itab_zycbt154 WHERE nrcorresp EQ aux_relat-nrseqc
AND bukrs EQ aux_relat-bukrs
AND waers EQ aux_relat-waers
AND gsber EQ aux_relat-gsber
AND tpcontr EQ aux_relat-tpcontr
AND bco EQ aux_relat-bco
AND codmodul NE 'C'
AND codmodul NE 'CD'
AND codmodul NE 'CF'
AND codmodul NE 'CI'.
PERFORM verifica_conta_acc_ace CHANGING v_conta_dif.
IF v_conta_dif IS INITIAL.
IF itab_zycbt154-codmodul EQ 'IR'.
ADD itab_zycbt154-vlme TO v_vlirprov.
ELSE.
ADD itab_zycbt154-vlme TO v_vlrjprov.
ENDIF.
ENDIF.
ENDLOOP.
itab_relat-vlrprov = v_vlmej2 - v_vlrjprov.
itab_relat-vlirprov = v_vlmeir2 - v_vlirprov.
MODIFY itab_relat INDEX v_sytabix TRANSPORTING vlrprov vlirprov.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM EXIBE_RELATORIO
CLEAR: v_vlmej2, v_vlmeir2.
ENDAT.
* << Fim da inclusão
AT END OF nrseqc.
IF itab_relat-tpcontab IS INITIAL OR
itab_relat-tpcontab EQ 'PR' OR
( itab_relat-tpcontab EQ 'C' AND
wa_zycbt007-fprovisao NE 'C' ).
...
...
148 text-058,
172 v_vlrjprov CURRENCY v_waers,
AT v_tamr sy-vline.
FORMAT RESET.
ENDIF.
* >> Início da inclusão: FORM EXIBE_RELATORIO
PERFORM verifica_provisao_liquidacao CHANGING v_separa.
IF NOT ( wa_zycbt007-fprovisao EQ 'C' AND
( /pws/zyglt009-calc_rot_sep EQ 'S' OR
/pws/zyglt009-cont_rot_sep EQ 'S' ) AND
aux_relat-tpcontab IS INITIAL AND
( aux_relat-tpcontr EQ 'A' OR
aux_relat-tpcontr EQ 'E' ) AND
v_separa EQ 'X' ).
* << Fim da inclusão
itab_relat-vlrprov = ( itab_relat-vlmej + v_tjuros ) -
v_vlrjprov.
itab_relat-vlrjprov = v_vlrjprov.
itab_relat-vlirprov = itab_relat-vlmeir - v_vlirprov.
* >> Início da exclusão: FORM EXIBE_RELATORIO
MODIFY itab_relat TRANSPORTING vlrprov vlirprov
WHERE nrseqc = itab_relat-nrseqc
AND tpcontab = itab_relat-tpcontab.
* << Fim da exclusão
* >> Início da inclusão: FORM EXIBE_RELATORIO
MODIFY itab_relat INDEX v_sytabix
TRANSPORTING vlrprov vlirprov.
ENDIF.
* << Fim da inclusão
ELSE.
itab_relat-vlirprov = itab_relat-vlmeir.
itab_relat-vlrprov = itab_relat-vlmej.
MODIFY itab_relat INDEX v_sytabix TRANSPORTING
vlrprov vlirprov.
...
...
FORMAT COLOR OFF.
ULINE.
ENDIF.
CLEAR v_primeiro.
PERFORM exibe_top_relatorio.
* >> Início da inclusão: FORM EXIBE_RELATORIO
CLEAR: v_vlmej2, v_vlmeir2.
* << Fim da inclusão
ENDAT.
IF NOT v_faux IS INITIAL.
CLEAR v_faux.
IF itab_relat-f_encerrado = 'I'.
IF NOT v_vlmej IS INITIAL.
...
...
NEW-PAGE LINE-SIZE v_tamr
LINE-COUNT 65.
PERFORM exibe_cabecalho_contabil.
REFRESH itab_contabil.
IF wa_zycbt007-fprovisao = 'C'.
* >> Início da exclusão: FORM PROCESSA_DADOS_CONTABIL
SORT itab_relat BY tpcontab nrseqc nrparcp nrparcj bukrs waers gsber
tpcontr d_newko c_newko bco.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSA_DADOS_CONTABIL
SORT itab_relat BY tpcontab nrseqc ftpj nrparcp nrparcj bukrs waers
gsber tpcontr d_newko c_newko bco vlrprov.
* << Fim da inclusão
ELSE.
SORT itab_relat BY tpcontab bukrs waers gsber
tpcontr d_newko c_newko bco.
ENDIF.
PERFORM processa_aberto.
...
...
itab_contabil-vlrprov = itab_contabil-vlme.
APPEND itab_contabil.
CLEAR itab_contabil.
ELSE.
itab_contabil-nrcorresp = wa_itab_relat-nrseqc.
* >> Início da inclusão: FORM PREENCHE_ITAB_CONTABIL
ENDIF.
IF ( /pws/zyglt009-calc_rot_sep EQ 'S' OR
/pws/zyglt009-cont_rot_sep EQ 'S' ) AND
wa_zycbt007-fprovisao = 'C'.
itab_contabil-subtotal = 'X'.
* << Fim da inclusão
ENDIF.
APPEND itab_contabil.
CLEAR v_vlrjprov.
v_vlrjprov = itab_contabil-vlme.
CLEAR itab_contabil.
...
...
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
OTHERS = 3.
READ TABLE itab_contas INDEX 1.
* >> Início da inclusão: FORM PREENCHE_CONTAS
IF sy-subrc = 0.
* << Fim da inclusão
itab_relat-d_newko = itab_contas-konts.
* >> Início da inclusão: FORM PREENCHE_CONTAS
ENDIF.
* << Fim da inclusão
CONCATENATE 'IRRF' v_prazo INTO v_codaux1 SEPARATED BY space.
...
...
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
OTHERS = 3.
READ TABLE itab_contas INDEX 1.
* >> Início da inclusão: FORM PREENCHE_CONTAS
IF sy-subrc = 0.
* << Fim da inclusão
itab_relat-c_newko = itab_contas-konth.
* >> Início da inclusão: FORM PREENCHE_CONTAS
ENDIF.
* << Fim da inclusão
CLEAR itab_zycbt011.
...
...
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
OTHERS = 3.
READ TABLE itab_contas INDEX 1.
* >> Início da inclusão: FORM PREENCHE_CONTAS
IF sy-subrc = 0.
* << Fim da inclusão
itab_relat-d_newko = itab_contas-konts.
* >> Início da inclusão: FORM PREENCHE_CONTAS
ENDIF.
* << Fim da inclusão
IF /pws/zyglt009-provjur_moeda = 'X' AND
...
...
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
OTHERS = 3.
READ TABLE itab_contas INDEX 1.
* >> Início da inclusão: FORM PREENCHE_CONTAS
IF sy-subrc = 0.
* << Fim da inclusão
itab_relat-c_newko = itab_contas-konth.
* >> Início da inclusão: FORM PREENCHE_CONTAS
ENDIF.
* << Fim da inclusão
ENDFORM.
FORM lancamento_provisao.
DATA: v_descricao(30).
SELECT * FROM /pws/zycbt013 INTO TABLE itab_zycbt013
WHERE tabela = '/PWS/ZYCBT154'.
* >> Início da inclusão: FORM LANCAMENTO_PROVISAO
IF ( /pws/zyglt009-calc_rot_sep EQ 'S' OR
/pws/zyglt009-cont_rot_sep EQ 'S' ) AND
wa_zycbt007-fprovisao EQ 'C'.
DELETE itab_contabil WHERE NOT subtotal IS initial.
REFRESH itab_contabil_aux.
LOOP AT itab_contabil.
CLEAR itab_contabil_aux.
MOVE-CORRESPONDING itab_contabil TO itab_contabil_aux.
COLLECT itab_contabil_aux.
ENDLOOP.
itab_contabil[] = itab_contabil_aux[].
ELSE.
* << Fim da inclusão
SORT itab_contabil.
DELETE ADJACENT DUPLICATES FROM itab_contabil.
* >> Início da inclusão: FORM LANCAMENTO_PROVISAO
ENDIF.
* << Fim da inclusão
LOOP AT itab_contabil.
CLEAR /pws/zycbt154.
IF itab_contabil-vlrprov > 0 OR itab_contabil-vlmetransf > 0.
IF itab_contabil-tpcontab IS INITIAL.
CONCATENATE 'JU'
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR003
...
v_base_dias TYPE i,
v_lin TYPE i,
v_imp TYPE i,
v_modo_bi,
v_defator LIKE tcurr-ffact,
* >> Início da exclusão:
v_parafator LIKE tcurr-tfact.
* << Fim da exclusão
* >> Início da inclusão:
v_parafator LIKE tcurr-tfact,
v_separa TYPE c,
v_vlprov_aux LIKE /pws/zycbt004-vlme.
* << Fim da inclusão
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.
SELECT-OPTIONS s_bukrs FOR /pws/zycbt001-bukrs.
PARAMETERS: s_dtentr LIKE sy-datum.
SELECTION-SCREEN END OF BLOCK a1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-046.
...
...
v_gsber LIKE itab_relat-gsber,
v_tpcontr LIKE itab_relat-tpcontr,
v_d_newko LIKE itab_relat-d_newko,
v_c_newko LIKE itab_relat-c_newko,
v_bco LIKE itab_relat-bco,
* >> Início da exclusão: FORM PROCESSA_ABERTO
v_nrparcj LIKE itab_relat-nrparcj.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSA_ABERTO
v_nrparcj LIKE itab_relat-nrparcj,
v_ftpj LIKE itab_relat-ftpj.
* << Fim da inclusão
itab_relat_aux[] = itab_relat[].
IF wa_zycbt007-fprovisao EQ 'C'.
DELETE itab_relat
WHERE tpcontab EQ 'C' AND
vlrprov IS initial.
...
...
( v_d_newko NE itab_relat-d_newko ) OR
( v_c_newko NE itab_relat-c_newko ) OR
( v_bco NE itab_relat-bco ) OR
( itab_relat-tpcontab EQ 'C' AND
v_nrparcj NE itab_relat-nrparcj ).
* >> Início da exclusão: FORM PROCESSA_ABERTO
PERFORM processa_subtotal_waers USING v_vlprov v_vlprovir ' '.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSA_ABERTO
IF ( /pws/zyglt009-calc_rot_sep EQ 'S' OR
/pws/zyglt009-cont_rot_sep EQ 'S' ) AND
( itab_relat-tpcontr = 'A' OR
itab_relat-tpcontr = 'E' ).
PERFORM processa_subtotal_waers USING
v_vlprov v_vlprovir 'X'.
ELSE.
PERFORM processa_subtotal_waers USING
v_vlprov v_vlprovir ' '.
ENDIF.
* << Fim da inclusão
CLEAR: v_vlprov, v_vlprovir, v_nrseq.
ENDIF.
ENDIF.
ELSE.
ON CHANGE OF itab_relat-bukrs.
...
...
itab_contabil-nrcorresp = wa_itab_relat-nrseqc.
APPEND itab_contabil.
CLEAR itab_contabil.
ENDIF.
ELSE.
* >> Início da exclusão: FORM PROCESSA_ABERTO
IF itab_relat-nrseqc <> v_nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSA_ABERTO
IF itab_relat-nrseqc <> v_nrseq
OR ( itab_relat-nrseqc EQ v_nrseq AND
( /pws/zyglt009-calc_rot_sep EQ 'S' OR
/pws/zyglt009-cont_rot_sep EQ 'S' ) AND
itab_relat-ftpj EQ v_ftpj ).
* << Fim da inclusão
ADD itab_relat-vlmej TO v_vlmej_w.
ADD itab_relat-vlmeir TO v_vlmeir_w.
* >> Início da inclusão: FORM PROCESSA_ABERTO
PERFORM verifica_provisao_liquidacao CHANGING v_separa.
IF ( /pws/zyglt009-calc_rot_sep EQ 'S' OR
/pws/zyglt009-cont_rot_sep EQ 'S' ) AND
( itab_contabil-vlrprov IS INITIAL OR
v_separa IS INITIAL ).
CLEAR v_vlprov_aux.
LOOP AT itab_relat_aux WHERE nrseqc = itab_relat-nrseqc.
v_vlprov_aux = v_vlprov_aux + itab_relat_aux-vlrprov.
ENDLOOP.
IF v_vlprov_aux IS INITIAL.
READ TABLE itab_zycbt154 WITH KEY
nrcorresp = itab_relat-nrseqc.
IF sy-subrc NE 0.
ADD itab_relat-vlmej TO v_vlprov.
ENDIF.
ELSEIF v_vlprov IS INITIAL.
v_vlprov = itab_relat-vlrprov.
ENDIF.
ELSE.
* << Fim da inclusão
ADD itab_relat-vlrprov TO v_vlprov.
* >> Início da inclusão: FORM PROCESSA_ABERTO
ENDIF.
* << Fim da inclusão
ADD itab_relat-vlirprov TO v_vlprovir.
...
...
IF wa_itab_relat-tpcontab EQ 'C'.
itab_contabil-nrparcp = wa_itab_relat-nrparcj.
ELSE.
itab_contabil-nrparcp = wa_itab_relat-nrparcp.
ENDIF.
* >> Início da inclusão: FORM PROCESSA_ABERTO
PERFORM verifica_provisao_liquidacao CHANGING v_separa.
IF ( /pws/zyglt009-calc_rot_sep EQ 'S' OR
/pws/zyglt009-cont_rot_sep EQ 'S' ) AND
( itab_contabil-vlrprov IS INITIAL OR
v_separa IS INITIAL ).
CLEAR v_vlprov_aux.
LOOP AT itab_relat_aux WHERE nrseqc = itab_relat-nrseqc.
v_vlprov_aux = v_vlprov_aux + itab_relat_aux-vlrprov.
ENDLOOP.
IF v_vlprov_aux IS INITIAL.
READ TABLE itab_zycbt154 WITH KEY
nrcorresp = itab_relat-nrseqc.
IF sy-subrc NE 0.
IF NOT itab_relat-vlmej_contr IS INITIAL.
itab_contabil-vlrprov = itab_relat-vlmej_contr.
ELSEIF NOT itab_relat-vlmej_ace IS INITIAL.
itab_contabil-vlrprov = itab_relat-vlmej_ace.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* << Fim da inclusão
itab_contabil-kursf = wa_itab_relat-txc.
itab_contabil-dtcont = s_dtentr.
* >> Início da exclusão: FORM PROCESSA_ABERTO
itab_contabil-vlme = itab_relat-vlrprov.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSA_ABERTO
IF /pws/zyglt009-calc_rot_sep = 'S'.
itab_contabil-vlme = itab_relat-vlmej.
ELSE.
itab_contabil-vlme = itab_relat-vlrprov.
ENDIF.
* << Fim da inclusão
itab_contabil-vlmeir = itab_relat-vlirprov.
IF wa_zycbt007-fprovisao <> space.
itab_contabil-nrcorresp = wa_itab_relat-nrseqc.
ENDIF.
APPEND itab_contabil.
CLEAR itab_contabil.
ENDIF.
* >> Início da inclusão: FORM PROCESSA_ABERTO
ELSE.
ADD itab_relat-vlrprov TO v_vlprov.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDIF.
ELSE.
* >> Início da inclusão: FORM PROCESSA_ABERTO
CLEAR v_vlmej_w.
* << Fim da inclusão
ADD itab_relat-vlmetransf TO v_vlmej_w.
MOVE-CORRESPONDING wa_itab_relat TO itab_contabil.
itab_contabil-vlmetransf = wa_itab_relat-vlmetransf.
itab_contabil-nrparcp = wa_itab_relat-nrparcp.
itab_contabil-kursf = wa_itab_relat-txc.
...
...
v_gsber = itab_relat-gsber.
v_tpcontr = itab_relat-tpcontr.
v_d_newko = itab_relat-d_newko.
v_c_newko = itab_relat-c_newko.
v_bco = itab_relat-bco.
* >> Início da inclusão: FORM PROCESSA_ABERTO
v_ftpj = itab_relat-ftpj.
* << Fim da inclusão
ENDLOOP.
IF wa_zycbt007-fprovisao EQ 'C'.
PERFORM processa_subtotal_waers USING v_vlprov v_vlprovir 'X'.
* >> Início da inclusão: FORM PROCESSA_ABERTO
IF /pws/zyglt009-calc_rot_sep NE 'S' AND
/pws/zyglt009-cont_rot_sep NE 'S' AND
wa_zycbt007-fprovisao NE 'C'.
* << Fim da inclusão
DELETE ADJACENT DUPLICATES FROM itab_contabil COMPARING ALL FIELDS.
* >> Início da inclusão: FORM PROCESSA_ABERTO
ENDIF.
* << Fim da inclusão
ELSE.
...
...
itab_tcurx-currdec = 2.
v_vlmeaux = p_vlme.
ENDIF.
p_vlmi = ( ( p_taxa / v_defator ) * v_parafator ) * v_vlmeaux.
ENDFORM.
* >> Início da inclusão:
FORM verifica_conta_acc_ace CHANGING p_conta_dif.
DATA: v_codaux2 LIKE /pws/zyglt316-codaux2,
v_codaux3 LIKE /pws/zyglt316-codaux3.
CLEAR p_conta_dif.
v_codaux1 = 'J'.
v_codaux2 = aux_relat-tpcontr.
IF aux_relat-ftpj = 'A'.
v_codaux3 = 'ACC'.
ELSEIF aux_relat-ftpj = 'E'.
v_codaux3 = 'ACE'.
ENDIF.
REFRESH itab_contas.
CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
EXPORTING
bukrs = aux_relat-bukrs
ktosl = 'DSE'
codaux1 = v_codaux1
codaux2 = v_codaux2
codaux3 = v_codaux3
TABLES
account = itab_contas
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
OTHERS = 3.
READ TABLE itab_contas INDEX 1.
IF sy-subrc = 0.
IF itab_zycbt154-d_newko NE itab_contas-konts.
p_conta_dif = 'X'.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDFORM.
FORM verifica_provisao_liquidacao CHANGING p_separa.
DATA: v_cont TYPE i.
CLEAR p_separa.
LOOP AT itab_zycbt154 WHERE nrcorresp EQ aux_relat-nrseqc
AND bukrs EQ aux_relat-bukrs
AND waers EQ aux_relat-waers
AND gsber EQ aux_relat-gsber
AND tpcontr EQ aux_relat-tpcontr
AND bco EQ aux_relat-bco
AND codmodul NE 'C'
AND codmodul NE 'CD'
AND codmodul NE 'CF'
AND codmodul NE 'CI'.
v_cont = v_cont + 1.
ENDLOOP.
IF v_cont > 1 OR sy-subrc NE 0.
p_separa = 'X'.
ELSE.
LOOP AT itab_zycbt154 WHERE nrcorresp EQ aux_relat-nrseqc
AND bukrs EQ aux_relat-bukrs
AND waers EQ aux_relat-waers
AND gsber EQ aux_relat-gsber
AND tpcontr EQ aux_relat-tpcontr
AND bco EQ aux_relat-bco
AND liquid NE 'X'
AND codmodul NE 'C'
AND codmodul NE 'CD'
AND codmodul NE 'CF'
AND codmodul NE 'CI'.
ENDLOOP.
IF sy-subrc = 0.
p_separa = 'X'.
ENDIF.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR056
...
DATA: END OF itab_zycbt154.
DATA: BEGIN OF itab_zycbt004 OCCURS 0.
INCLUDE STRUCTURE /pws/zycbt004.
DATA: END OF itab_zycbt004.
DATA: BEGIN OF itab_relat OCCURS 0,
* >> Início da exclusão:
belnr LIKE /pws/zycbt001-belnr,
vlprov LIKE /pws/zycbt001-vlme,
waers LIKE /pws/zycbt001-waers,
budat LIKE sy-datum,
* << Fim da exclusão
* >> Início da inclusão:
belnr LIKE /pws/zycbt001-belnr,
vlprov LIKE /pws/zycbt001-vlme,
waers LIKE /pws/zycbt001-waers,
budat LIKE sy-datum,
tpjuros LIKE /pws/zycbt004-tpjuros,
* << Fim da inclusão
END OF itab_relat.
DATA: BEGIN OF itab_zycbe033 OCCURS 0.
INCLUDE STRUCTURE /pws/zycbe033.
DATA: END OF itab_zycbe033.
DATA: BEGIN OF itab_zycbt034 OCCURS 0.
...
...
DATA: BEGIN OF itab_relat2 OCCURS 0,
belnrpg LIKE /pws/zycbt001-belnr,
vlpagto LIKE /pws/zycbt001-vlme,
waers LIKE /pws/zycbt001-waers,
budat LIKE sy-datum,
* >> Início da inclusão:
tpjuros LIKE /pws/zycbt004-tpjuros,
* << Fim da inclusão
END OF itab_relat2.
DATA: BEGIN OF itab_modo OCCURS 0.
DATA: modo LIKE /pws/zycbt039-modo,
descr LIKE /pws/zycbt039-descr.
INCLUDE STRUCTURE spopli.
DATA: END OF itab_modo.
DATA: v_nrseqc_aux LIKE /pws/zycbt001-nrseqc,
v_totvlprv LIKE /pws/zycbt001-vlme,
v_totvlpg LIKE /pws/zycbt001-vlme,
vl_diferenca LIKE /pws/zycbt001-vlme,
* >> Início da inclusão:
v_totvlprv_acc LIKE /pws/zycbt001-vlme,
v_totvlpg_acc LIKE /pws/zycbt001-vlme,
vl_diferenca_acc LIKE /pws/zycbt001-vlme,
v_totvlprv_ace LIKE /pws/zycbt001-vlme,
v_totvlpg_ace LIKE /pws/zycbt001-vlme,
vl_diferenca_ace LIKE /pws/zycbt001-vlme,
v_conta_acc LIKE /pws/zyglt316-konth,
v_conta_ace LIKE /pws/zyglt316-konth,
v_acc_ok TYPE c,
v_ace_ok TYPE c,
* << Fim da inclusão
v_modo_bi,
ok_code LIKE sy-ucomm,
v_codeven LIKE /pws/zycbt011-codeven,
v_belnr_f_02 LIKE /pws/zycbt032-belnr,
v_encerrado,
v_dtlanc LIKE sy-datum,
* >> Início da exclusão:
v_codaux1 LIKE /pws/zyglt316-codaux1.
* << Fim da exclusão
* >> Início da inclusão:
v_codaux1 LIKE /pws/zyglt316-codaux1,
v_codaux3 LIKE /pws/zyglt316-codaux1.
* << Fim da inclusão
DATA: wa_zycbt007 LIKE /pws/zycbt007,
wa_zycbt011 LIKE /pws/zycbt011.
PARAMETERS: p_nrseqc LIKE /pws/zycbt001-nrseqc,
p_tpcont LIKE /pws/zycbt001-tpcontr,
p_dtence LIKE /pws/zycbt001-dtencerra,
...
...
IF p_tpcont+0(1) = 'P' OR p_tpcont+0(1) = 'S'.
PERFORM seleciona_pre_sec.
ELSE.
PERFORM seleciona_juros_prov.
ENDIF.
* >> Início da inclusão: FORM SELECIONA_DADOS
IF ( p_tpcont = 'A' OR p_tpcont = 'E' ) AND
/pws/zyglt009-cont_rot_sep = 'S' AND
wa_zycbt007-fprovisao = 'C'.
PERFORM verifica_diferenca_acc_ace.
ELSE.
* << Fim da inclusão
LOOP AT itab_zycbt154.
MOVE: itab_zycbt154-belnr_pr TO itab_relat-belnr,
itab_zycbt154-vlme TO itab_relat-vlprov,
itab_zycbt154-waers TO itab_relat-waers,
itab_zycbt154-dtcont TO itab_relat-budat.
...
...
itab_zycbt004-dtpagto TO itab_relat2-budat.
APPEND itab_relat2.
v_totvlpg = v_totvlpg + itab_zycbt004-vlme.
ENDLOOP.
vl_diferenca = v_totvlprv - v_totvlpg.
* >> Início da inclusão: FORM SELECIONA_DADOS
ENDIF.
* << Fim da inclusão
ENDFORM.
FORM exibe_dados.
DATA: v_tabix LIKE sy-tabix.
LEAVE TO LIST-PROCESSING.
WRITE AT 1(40) sy-uline.
...
...
16 '|' NO-GAP, (22) itab_relat-vlprov CURRENCY
itab_relat-waers RIGHT-JUSTIFIED,
40 '|' NO-GAP.
WRITE AT /1(40) sy-uline.
ENDLOOP.
* >> Início da inclusão: FORM EXIBE_DADOS
IF v_totvlprv IS INITIAL.
v_totvlprv = v_totvlprv_acc + v_totvlprv_ace.
ENDIF.
* << Fim da inclusão
FORMAT COLOR COL_TOTAL.
WRITE: / '|' NO-GAP, text-003,
16 '|' NO-GAP, (22) v_totvlprv CURRENCY itab_relat-waers
RIGHT-JUSTIFIED,
40 '|' NO-GAP.
...
...
16 '|' NO-GAP, (22) itab_relat2-vlpagto
CURRENCY itab_relat2-waers RIGHT-JUSTIFIED,
40 '|' NO-GAP.
WRITE AT /1(40) sy-uline.
ENDLOOP.
* >> Início da inclusão: FORM EXIBE_DADOS
IF v_totvlpg IS INITIAL.
v_totvlpg = v_totvlpg_acc + v_totvlpg_ace.
ENDIF.
* << Fim da inclusão
FORMAT COLOR COL_TOTAL.
WRITE: /01 '|' NO-GAP, text-006,
16 '|' NO-GAP, (22) v_totvlpg CURRENCY itab_relat-waers
RIGHT-JUSTIFIED,
40 '|' NO-GAP.
...
...
LEAVE PROGRAM.
ELSE.
MOVE v_data2 TO v_dtlanc.
IF NOT v_data2 IS INITIAL.
PERFORM verfica_periodo.
* >> Início da exclusão: MODULE USER_COMMAND_0100
IF vl_diferenca NE 0.
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0100
IF vl_diferenca NE 0
OR vl_diferenca_acc NE 0
OR vl_diferenca_ace NE 0.
* << Fim da inclusão
PERFORM f_02_encerramento.
ELSE.
IF itab_relat[] IS INITIAL AND
itab_relat2[] IS INITIAL.
MESSAGE s063.
...
...
ELSE.
SELECT SINGLE * FROM t001w
WHERE werks = p_werks.
IF sy-subrc EQ 0.
itab_zycbe033-brnch = t001w-j_1bbranch.
* >> Início da inclusão: FORM EFETUA_CLEARING
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM EFETUA_CLEARING
IF /pws/zyglt009-cont_rot_sep EQ 'S' AND
wa_zycbt007-fprovisao EQ 'C' AND
v_codaux3 IS INITIAL AND
vl_diferenca IS INITIAL AND
vl_diferenca_acc IS INITIAL AND
vl_diferenca_ace IS INITIAL AND
v_acc_ok IS INITIAL AND
v_ace_ok IS INITIAL.
v_codaux3 = 'ACC'.
* << Fim da inclusão
ENDIF.
CLEAR itab_zyglt316.
REFRESH itab_zyglt316.
IF /pws/zyglt009-provjur_moeda = 'X' AND
p_waers = wa_zycbt007-waersa.
...
...
EXPORTING
bukrs = p_bukrs
ktosl = 'PVE'
codaux1 = v_codaux1
codaux2 = p_tpcont
* >> Início da inclusão: FORM EFETUA_CLEARING
codaux3 = v_codaux3
* << Fim da inclusão
TABLES
account = itab_zyglt316
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
...
...
IF sy-subrc EQ 0 .
READ TABLE itab_zyglt316 INDEX 1.
itab_zycbe033-agkon = itab_zyglt316-konth.
ENDIF.
APPEND itab_zycbe033.
* >> Início da inclusão: FORM EFETUA_CLEARING
IF v_codaux3 EQ 'ACC' AND
/pws/zyglt009-cont_rot_sep EQ 'S' AND
wa_zycbt007-fprovisao EQ 'C'.
LOOP AT itab_relat WHERE tpjuros = 'A'.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT001'.
itab_zycbt036-cpochv = p_nrseqc.
itab_zycbt036-belnr = itab_relat-belnr.
itab_zycbt036-dtdocto = itab_relat-budat.
APPEND itab_zycbt036.
ENDLOOP.
LOOP AT itab_relat2 WHERE tpjuros = 'A'.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT001'.
itab_zycbt036-cpochv = p_nrseqc.
itab_zycbt036-belnr = itab_relat2-belnrpg.
itab_zycbt036-dtdocto = itab_relat2-budat.
APPEND itab_zycbt036.
ENDLOOP.
ELSEIF v_codaux3 EQ 'ACE' AND
/pws/zyglt009-cont_rot_sep EQ 'S' AND
wa_zycbt007-fprovisao EQ 'C'.
LOOP AT itab_relat WHERE tpjuros = 'E'.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT001'.
itab_zycbt036-cpochv = p_nrseqc.
itab_zycbt036-belnr = itab_relat-belnr.
itab_zycbt036-dtdocto = itab_relat-budat.
APPEND itab_zycbt036.
ENDLOOP.
LOOP AT itab_relat2 WHERE tpjuros = 'E'.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT001'.
itab_zycbt036-cpochv = p_nrseqc.
itab_zycbt036-belnr = itab_relat2-belnrpg.
itab_zycbt036-dtdocto = itab_relat2-budat.
APPEND itab_zycbt036.
ENDLOOP.
ELSE.
* << Fim da inclusão
LOOP AT itab_relat.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT001'.
itab_zycbt036-cpochv = p_nrseqc.
itab_zycbt036-belnr = itab_relat-belnr.
...
...
itab_zycbt036-cpochv = p_nrseqc.
itab_zycbt036-belnr = itab_relat2-belnrpg.
itab_zycbt036-dtdocto = itab_relat2-budat.
APPEND itab_zycbt036.
ENDLOOP.
* >> Início da inclusão: FORM EFETUA_CLEARING
ENDIF.
* << Fim da inclusão
IF vl_diferenca NE 0.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT001'.
itab_zycbt036-cpochv = p_nrseqc.
itab_zycbt036-belnr = v_belnr_f_02.
...
...
tabela = '/PWS/ZYCBT001'
cpochv = p_nrseqc
tpmsg = 'S'.
IF sy-subrc = 0.
MESSAGE i061 WITH text-020 itab_zycbt032-belnr.
* >> Início da inclusão: FORM EFETUA_CLEARING
IF v_codaux3 EQ 'ACC' AND
/pws/zyglt009-cont_rot_sep EQ 'S' AND
wa_zycbt007-fprovisao EQ 'C'.
LOOP AT itab_zycbt154 WHERE d_newko = v_conta_acc
OR c_newko = v_conta_acc.
MOVE itab_zycbt032-belnr TO itab_zycbt154-belnr_cl.
MOVE 'E' TO itab_zycbt154-status.
MODIFY itab_zycbt154 INDEX sy-tabix.
ENDLOOP.
v_acc_ok = 'X'.
CLEAR vl_diferenca.
ELSEIF v_codaux3 EQ 'ACE' AND
/pws/zyglt009-cont_rot_sep EQ 'S' AND
wa_zycbt007-fprovisao EQ 'C'.
LOOP AT itab_zycbt154 WHERE d_newko = v_conta_ace
OR c_newko = v_conta_ace.
MOVE itab_zycbt032-belnr TO itab_zycbt154-belnr_cl.
MOVE 'E' TO itab_zycbt154-status.
MODIFY itab_zycbt154 INDEX sy-tabix.
ENDLOOP.
v_ace_ok = 'X'.
CLEAR vl_diferenca.
ELSE.
* << Fim da inclusão
LOOP AT itab_zycbt154.
MOVE itab_zycbt032-belnr TO itab_zycbt154-belnr_cl.
MOVE 'E' TO itab_zycbt154-status.
MODIFY itab_zycbt154 INDEX sy-tabix.
ENDLOOP.
* >> Início da inclusão: FORM EFETUA_CLEARING
ENDIF.
* << Fim da inclusão
MODIFY /pws/zycbt154 FROM TABLE itab_zycbt154.
* >> Início da inclusão: FORM EFETUA_CLEARING
IF v_codaux3 EQ 'ACC' AND
v_ace_ok IS INITIAL AND
/pws/zyglt009-cont_rot_sep EQ 'S' AND
wa_zycbt007-fprovisao EQ 'C'.
IF vl_diferenca_ace NE 0.
CLEAR: vl_diferenca, vl_diferenca_acc.
PERFORM f_02_encerramento.
ELSE.
v_codaux3 = 'ACE'.
PERFORM efetua_clearing.
ENDIF.
ELSEIF v_codaux3 EQ 'ACE' AND
v_acc_ok IS INITIAL AND
/pws/zyglt009-cont_rot_sep EQ 'S' AND
wa_zycbt007-fprovisao EQ 'C'.
IF vl_diferenca_acc NE 0.
CLEAR: vl_diferenca, vl_diferenca_ace.
PERFORM f_02_encerramento.
ELSE.
v_codaux3 = 'ACC'.
PERFORM efetua_clearing.
ENDIF.
ELSE.
* << Fim da inclusão
UPDATE /pws/zycbt001
SET: f_encerrado = 'E'
dtencerra = v_dtlanc
WHERE nrseqc EQ p_nrseqc.
* >> Início da inclusão: FORM EFETUA_CLEARING
ENDIF.
* << Fim da inclusão
COMMIT WORK.
MOVE 'X' TO v_encerrado.
EXPORT v_encerrado TO MEMORY ID 'E003'.
EXPORT v_dtlanc TO MEMORY ID 'E020'.
LEAVE PROGRAM.
...
...
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
* >> Início da inclusão: FORM EFETUA_CLEARING
PERFORM estorno_f_02.
* << Fim da inclusão
ENDIF.
CLEAR: itab_zycbe033, itab_zycbt032, itab_zycbt034, itab_zycbt036,
sy-ucomm.
REFRESH: itab_zycbe033, itab_zycbt032, itab_zycbt034, itab_zycbt036.
ENDFORM.
...
...
ENDFORM.
FORM f_02_encerramento.
DATA: v_monat LIKE t001b-frpe1,
v_cta_desp LIKE /pws/zyglt316-konts,
v_cta_prov LIKE /pws/zyglt316-konts.
* >> Início da inclusão: FORM F_02_ENCERRAMENTO
CLEAR v_belnr_f_02.
* << Fim da inclusão
PERFORM get_parameters.
itab_zycbe033-tcode = 'F-02'.
itab_zycbe033-tabela = '/PWS/ZYCBT001'.
itab_zycbe033-cpochv = p_nrseqc.
itab_zycbe033-budat = v_dtlanc.
...
...
itab_zycbe033-waers = p_waers.
PERFORM verify_null_field USING wa_zycbt011-blart
'BLART'
text-012.
itab_zycbe033-blart = wa_zycbt011-blart.
* >> Início da inclusão: FORM F_02_ENCERRAMENTO
CLEAR v_codaux3.
IF vl_diferenca IS INITIAL AND
vl_diferenca_acc NE 0 AND
vl_diferenca_ace NE 0.
v_codaux3 = 'ACC'.
vl_diferenca = vl_diferenca_acc.
ELSEIF vl_diferenca IS INITIAL AND
vl_diferenca_acc NE 0 AND
vl_diferenca_ace IS INITIAL.
v_codaux3 = 'ACC'.
vl_diferenca = vl_diferenca_acc.
ELSEIF vl_diferenca IS INITIAL AND
vl_diferenca_acc IS INITIAL AND
vl_diferenca_ace NE 0.
v_codaux3 = 'ACE'.
vl_diferenca = vl_diferenca_ace.
ENDIF.
* << Fim da inclusão
PERFORM verify_null_field USING vl_diferenca
'VLME'
text-016.
itab_zycbe033-wrbtr = abs( vl_diferenca ).
itab_zycbe033-d_gsber = p_gsber.
...
...
EXPORTING
bukrs = p_bukrs
ktosl = 'PVE'
codaux1 = v_codaux1
codaux2 = p_tpcont
* >> Início da inclusão: FORM F_02_ENCERRAMENTO
codaux3 = v_codaux3
* << Fim da inclusão
TABLES
account = itab_zyglt316
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
...
...
EXPORTING
bukrs = p_bukrs
ktosl = 'DSE'
codaux1 = v_codaux1
codaux2 = p_tpcont
* >> Início da inclusão: FORM F_02_ENCERRAMENTO
codaux3 = v_codaux3
* << Fim da inclusão
TABLES
account = itab_zyglt316
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
...
...
READ TABLE itab_zycbt032 WITH KEY tcode = 'F-02'
tabela = '/PWS/ZYCBT001'
cpochv = p_nrseqc
tpmsg = 'S'.
IF sy-subrc = 0.
* >> Início da inclusão: FORM F_02_ENCERRAMENTO
CLEAR itab_zycbt154.
* << Fim da inclusão
MOVE itab_zycbt032-belnr TO v_belnr_f_02.
MOVE: text-018 TO itab_zycbt154-codmod,
text-017 TO itab_zycbt154-codmodul,
p_tpcont TO itab_zycbt154-tpcontr,
v_dtlanc TO itab_zycbt154-dtcont,
...
...
itab_zycbt154-bco = p_bconeg.
ENDIF.
APPEND itab_zycbt154.
MODIFY /pws/zycbt154 FROM TABLE itab_zycbt154.
COMMIT WORK.
* >> Início da inclusão: FORM F_02_ENCERRAMENTO
IF v_codaux3 EQ 'ACC' AND
/pws/zyglt009-cont_rot_sep EQ 'S' AND
wa_zycbt007-fprovisao EQ 'C'.
CLEAR vl_diferenca_acc.
ELSEIF v_codaux3 EQ 'ACE' AND
/pws/zyglt009-cont_rot_sep EQ 'S' AND
wa_zycbt007-fprovisao EQ 'C'.
CLEAR vl_diferenca_ace.
ENDIF.
* << Fim da inclusão
PERFORM efetua_clearing.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
...
...
sy-ucomm.
REFRESH: itab_zycbe033, itab_zycbt032, itab_zycbt034, itab_zycbt036.
ENDFORM.
FORM estorno_f_02.
DATA: v_monat LIKE t001b-frpe1.
* >> Início da inclusão: FORM ESTORNO_F_02
CHECK NOT v_belnr_f_02 IS INITIAL.
* << Fim da inclusão
itab_zycbe033-tcode = 'FB08'.
itab_zycbe033-tabela = '/PWS/ZYCBT154'.
itab_zycbe033-cpochv = p_nrseqc.
itab_zycbe033-belnr = v_belnr_f_02.
itab_zycbe033-bukrs = p_bukrs.
...
...
ELSE.
itab_zycbe033-stgrd = '02'.
ENDIF.
APPEND itab_zycbe033.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_FB08'
* >> Início da inclusão: FORM ESTORNO_F_02
EXPORTING
v_modo = v_modo_bi
* << Fim da inclusão
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
EXCEPTIONS
...
...
OTHERS = 8.
ENDFORM.
MODULE user_command_0300 INPUT.
CASE sy-ucomm.
WHEN 'RW'.
* >> Início da exclusão: MODULE USER_COMMAND_0300
IF vl_diferenca NE 0.
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0300
IF vl_diferenca NE 0
OR vl_diferenca_acc NE 0
OR vl_diferenca_ace NE 0.
* << Fim da inclusão
PERFORM f_02_encerramento.
ELSE.
PERFORM efetua_clearing.
ENDIF.
ENDCASE.
...
...
AND codmodul EQ 'JU'.
SELECT * FROM /pws/zycbt004 INTO TABLE itab_zycbt004
WHERE nrseqc EQ p_nrseqc
AND tpdesp LIKE 'J%'.
ENDFORM.
* >> Início da inclusão:
FORM verifica_diferenca_acc_ace.
IF /pws/zyglt009-provjur_moeda = 'X' AND
p_waers = wa_zycbt007-waersa.
CONCATENATE 'JUROS C' wa_zycbt007-waersa
INTO v_codaux1 SEPARATED BY space.
ELSE.
v_codaux1 = 'JUROS C'.
ENDIF.
v_codaux3 = 'ACC'.
REFRESH itab_zyglt316.
CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
EXPORTING
bukrs = p_bukrs
ktosl = 'PVE'
codaux1 = v_codaux1
codaux2 = p_tpcont
codaux3 = v_codaux3
TABLES
account = itab_zyglt316
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
OTHERS = 3.
READ TABLE itab_zyglt316 INDEX 1.
IF sy-subrc = 0.
v_conta_acc = itab_zyglt316-konth.
ENDIF.
v_codaux3 = 'ACE'.
REFRESH itab_zyglt316.
CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
EXPORTING
bukrs = p_bukrs
ktosl = 'PVE'
codaux1 = v_codaux1
codaux2 = p_tpcont
codaux3 = v_codaux3
TABLES
account = itab_zyglt316
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
OTHERS = 3.
READ TABLE itab_zyglt316 INDEX 1.
IF sy-subrc = 0.
v_conta_ace = itab_zyglt316-konth.
ENDIF.
CLEAR: v_totvlprv_acc, v_totvlprv_ace, v_totvlpg_acc, v_totvlpg_ace.
LOOP AT itab_zycbt154 WHERE c_newko = v_conta_acc.
MOVE: itab_zycbt154-belnr_pr TO itab_relat-belnr,
itab_zycbt154-vlme TO itab_relat-vlprov,
itab_zycbt154-waers TO itab_relat-waers,
itab_zycbt154-dtcont TO itab_relat-budat,
'A' TO itab_relat-tpjuros.
APPEND itab_relat.
v_totvlprv_acc = v_totvlprv_acc + itab_zycbt154-vlme.
ENDLOOP.
LOOP AT itab_zycbt004 WHERE tpjuros = 'A'.
MOVE: itab_zycbt004-belnr TO itab_relat2-belnrpg,
itab_zycbt004-vlme TO itab_relat2-vlpagto,
itab_zycbt004-waers TO itab_relat2-waers,
itab_zycbt004-dtpagto TO itab_relat2-budat,
itab_zycbt004-tpjuros TO itab_relat2-tpjuros.
APPEND itab_relat2.
v_totvlpg_acc = v_totvlpg_acc + itab_zycbt004-vlme.
ENDLOOP.
vl_diferenca_acc = v_totvlprv_acc - v_totvlpg_acc.
LOOP AT itab_zycbt154 WHERE c_newko = v_conta_ace.
MOVE: itab_zycbt154-belnr_pr TO itab_relat-belnr,
itab_zycbt154-vlme TO itab_relat-vlprov,
itab_zycbt154-waers TO itab_relat-waers,
itab_zycbt154-dtcont TO itab_relat-budat,
'E' TO itab_relat-tpjuros.
APPEND itab_relat.
v_totvlprv_ace = v_totvlprv_ace + itab_zycbt154-vlme.
ENDLOOP.
LOOP AT itab_zycbt004 WHERE tpjuros = 'E'.
MOVE: itab_zycbt004-belnr TO itab_relat2-belnrpg,
itab_zycbt004-vlme TO itab_relat2-vlpagto,
itab_zycbt004-waers TO itab_relat2-waers,
itab_zycbt004-dtpagto TO itab_relat2-budat,
itab_zycbt004-tpjuros TO itab_relat2-tpjuros.
APPEND itab_relat2.
v_totvlpg_ace = v_totvlpg_ace + itab_zycbt004-vlme.
ENDLOOP.
vl_diferenca_ace = v_totvlprv_ace - v_totvlpg_ace.
CLEAR: v_codaux3, v_acc_ok, v_ace_ok.
ENDFORM.
* << Fim da inclusão