Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Liquidação de Contrato
Data/Hora da Publicação: 27/03/2012 14:00:21
Data/Hora Última Alteração: 27/03/2012 14:00:21
Descrição da Nota: LIQUIDAÇÃO DE ACC COM PRÉ - VARIOS CONTRATOS A LIQUIDAR
Sintoma
O prograna de Liquidação de ACC c/ Pre não atualiza os saldos dos contratos liquidados e não conclui
as contabilizações corretamente das parcelas de priincipal, nos casos em que está sendo liquidado
mais de um contrato de Pré Pagamento por outro Pré Pagamento.
Solução
Ajustar o programa para fazer todas as contabilizações para todos os contratos que foram feitos
liquidação de Acc c/ pré e seu estorno com sucesso.
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 10634 Data: 29/09/2010 Hora: 15:44:42
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 10634
Categoria : Melhoria
Prioridade : Baixa
Versão PW.CE : 8.0
Pacote : 00005
Agrupamento : 00041
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
06286 - 00001 - 7.0 - 00005 - LIQUIDAÇÃO DE ACC COM PRÉ PAGTO
09326 - 00002 - 8.0 - 00001 - NOTA TRADUÇÃO CÂMBIO
09338 - 00003 - 8.0 - 00001 - CAPTAÇÃO - DP COM ORDEM DE VENDA MAIS DE 1 ITEM
09463 - 00004 - 8.0 - 00001 - TRADUÇÃO PW.CE CÂMBIO - PORTUGUÊS PARA INGLÊS
09629 - 00005 - 8.0 - 00002 - ROTINA DE PAGAMENTO, PROCESSAR BOLETO - STATUS FATURA
09894 - 00006 - 8.0 - 00002 - ASSOCIAÇÃO VALORES MANTIDOS NO EXTERIOR - ARBITRAGEM APENAS NO EM
10188 - 00007 - 8.0 - 00003 - MAPEAMENTO SOCIEDADE PARCEIRA NAS CONTABILIZAÇÕES
10458 - 00008 - 8.0 - 00004 - CAPTAÇÃO DP C/C ME - DUMP AO SALVAR
10506 - 00009 - 8.0 - 00004 - CAPTAÇÃO - RELATÓRIO CONTABILIZAÇÃO.
10508 - 00010 - 8.0 - 00004 - CAPTAÇÃO- PRÉ PGTO- CAMPOS RELEVANCIA ALTERADOS-BI ESTORNO COMO P
10519 - 00011 - 8.0 - 00004 - LIQ.ACC C/ PRÉ - NÃO MODIFICAR QUANDO O CONTRATO ESTÁ CONTABILIZA
10523 - 00012 - 8.0 - 00004 - LIQ. ACC C/ PRE - QUANDO FAZ UM CONTRATO DE ACC E UM NOVO DE DP P
10540 - 00013 - 8.0 - 00004 - LIQUIDAÇÃO DE ACC COM PRÉ PAGAMENTO, DUMP AO VINCULAR CONTRATO DE
----------------------------------------------------------------------------------------------------
LIQUIDAÇÃO DE ACC COM PRÉ - VARIOS CONTRATOS A LIQUIDAR
----------------------------------------------------------------------------------------------------
Palavras Chave:
LIQUIDAÇÃO DE ACC COM PRÉ - VARIOS CONTRATOS A LIQUIDAR
----------------------------------------------------------------------------------------------------
Objetos da nota:
CUAD /PWS/SAPMZYCB014
FUNC /PWS/ZYCB_TRANSACAO_F_30_P
FUNC /PWS/ZYCB_TRANSACAO_F_30_W
REPS /PWS/LZYCBGF2F01
REPS /PWS/LZYCBGF2TOP
REPS /PWS/MZYCB001F02
REPS /PWS/MZYCB001F04
REPS /PWS/MZYCB001I01
REPS /PWS/MZYCB001O01
REPS /PWS/MZYCB001TOP
REPS /PWS/MZYCB001X01
REPS /PWS/MZYCB014F01
REPS /PWS/MZYCB014O01
REPS /PWS/MZYCB014TOP
REPS /PWS/ZYGLR002
TABD /PWS/ZYCBE062
TABD /PWS/ZYCBT062
----------------------------------------------------------------------------------------------------
Modificações efetuadas em CUAD /PWS/SAPMZYCB014
BOTÃO ESTÁTICO
CÓDIGO DE FUNÇÃO: ERAS
CATEGORIA DE FUNÇÃO: ____
TEXTOS DE FUNÇÃO ESTÁTICOS
TEXTO DE FUNÇÃO: Excluir PréPagamento
NOME DE ÍCONE: ICON_DELETE
TEXTO DE ÍCONE: _____________________________________________________
TEXTO INFORMATIVO: __________________________________________________
SELEÇÃO DIRETA: _____
TECLA DE ATALHO: SHIFT + F6
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_P
Características
IMPORTAÇÃO:
NOME PARAM. ATRIB. TIPO REFERÊNCIA VL. PROPOSTO OPCIONAL TRANSF. TEXT
...
V_PANORMAIS
V_ZUONR1
* >> Início da inclusão:
V_LIQ TYPE C ' ' 'X' ' ' ' '
* << Fim da inclusão
...
endif.
perform bdc_screen using 'SAPDF05X' '3100'.
perform bdc_field using 'BDC_CURSOR' 'RF05A-ABPOS'.
perform bdc_field using 'BDC_OKCODE' '=Z+'.
perform bdc_screen using 'SAPDF05X' '3100'.
if t_dados-flag_nc eq 'X'.
perform bdc_field using: 'BDC_OKCODE' '=BU'.
else.
perform bdc_field using: 'BDC_OKCODE' '=BS'.
endif.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_P
if not v_liq is initial.
perform bdc_screen using 'SAPDF05X' '3100'.
perform bdc_field using: 'BDC_CURSOR' 'DF05B-PSDIF(01)',
'BDC_OKCODE' '=PI'.
perform bdc_screen using 'SAPDF05X' '3100'.
if t_dados-flag_nc eq 'X'.
perform bdc_field using: 'BDC_OKCODE' '=BU'.
else.
perform bdc_field using: 'BDC_OKCODE' '=BS'.
endif.
endif.
IF t_dados-agkon is initial.
t_dados-agkon = t_dados-d_newko.
endif.
* << Fim da inclusão
perform verifica_empresas using t_dados-bukrs
'UMBUCHNG'
* >> Início da exclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_P
t_dados-d_newko
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_P
t_dados-agkon
* << Fim da inclusão
v_agkoa.
if v_linhas eq 1
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_W
...
tabela like /pws/zycbe033-tabela,
cpochv like /pws/zycbe033-cpochv,
tcode like /pws/zycbe033-tcode,
agkoa like /pws/zycbe033-agkoa,
agkon like /pws/zycbe033-agkon,
agums like /pws/zycbe033-agums,
shkzg like /pws/zycbe033-shkzg,
v_sinal type /pws/zycbe033-v_sinal,
dtdocto type /pws/zycbe033-dtdocto,
end of itab_parts.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W
data: itab_aux like itab_parts occurs 0 with header line.
* << Fim da inclusão
data: itab_t041t like t041t occurs 0 with header line.
data: wa_zycbt089 like /pws/zycbt089.
data: v_n_budat type /pws/zycbt006-dtpagto.
write:
c_vl_min to v_vl_min,
c_vl_max to v_vl_max.
select single selps from t021r
into v_xpos1
where event = 'SL-AG'
and feldn = 'BELNR'.
...
...
itab_oculto
using v_string_debito.
endif.
add 1 to v_linhas.
if v_agkoa is initial.
move: itab_parts-agkoa to v_agkoa,
itab_parts-agkon to v_agkon_emp.
endif.
at first.
if v_intercompany is initial.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W
itab_aux[] = itab_parts[].
* << Fim da inclusão
perform verifica_empresas using t_dados-bukrs
'UMBUCHNG'
v_agkon_emp
v_agkoa.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W
if v_lines is initial.
loop at itab_aux where agkon ne v_agkon_emp.
v_agkon_emp = itab_aux-agkon.
perform verifica_empresas using t_dados-bukrs
'UMBUCHNG'
v_agkon_emp
v_agkoa.
if not v_lines is initial.
exit.
endif.
endloop.
endif.
* << Fim da inclusão
endif.
v_intercompany = 'X'.
endat.
perform bdc_screen using 'SAPMF05A' '0700'.
perform bdc_field using:
'BDC_CURSOR' 'RF05A-NEWBS',
'BDC_OKCODE' '=PI'.
if v_op = 'X'.
perform bdc_field using 'BDC_OKCODE' '=BU'.
exit.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCBGF2F01
...
p_t_zycet005-cpochv = p_t_dados-cpochv.
p_t_zycet005-tpmsg = 'E'.
p_t_zycet005-msg = text-033.
append p_t_zycet005.
endif.
endform.
form verifica_empresas using p_emp
p_tplanc
p_conta
p_tpcont.
* >> Início da exclusão: FORM VERIFICA_EMPRESAS
data v_lines(3).
* << Fim da exclusão
select * from t041b
into table itab_t041b
where bukrs eq p_emp
and bbukr ne p_emp
and auglv eq p_tplanc.
if sy-subrc eq 0.
loop at itab_t041b.
if itab_t041b-bukrs = itab_t041b-bbukr.
delete itab_t041b.
endif.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCBGF2TOP
...
bukrs like skb1-bukrs,
conta like skb1-saknr,
end of itab_empresas.
data: v_input like screen-input,
v_output like screen-output,
v_required like screen-required,
v_invisible like screen-invisible.
data wa_rpy_dyfatc type rpy_dyfatc occurs 0 with header line.
data: v_budat type bkpf-budat.
data: v_intercompany type c.
* >> Início da inclusão:
data: v_lines(3).
* << Fim da inclusão
data: wa_t003 like t003,
v_soc_parc(1) value 'N',
v_aux_newko like /pws/zycbe033-c_newko.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001F02
...
PERFORM save_zycbt221.
PERFORM exibe_mensagens.
ENDIF.
PERFORM data_efetiva.
ENDFORM.
FORM estorno_pre_acc.
DATA: v_belnr LIKE bkpf-belnr,
v_budat LIKE bkpf-budat,
v_count TYPE i,
v_total TYPE i,
* >> Início da inclusão: FORM ESTORNO_PRE_ACC
v_x type i,
* << Fim da inclusão
v_tpcontr_c LIKE /pws/zycbt061-tpcontr_c,
v_prim TYPE c.
CHECK /pws/zycbe001-f_pre EQ 'C'.
IF /pws/zycbe001-tpcontr(1) CA 'PS'.
PERFORM reagrupa_pre CHANGING v_belnr v_budat.
ELSE.
IF /pws/zycbe001-belnr2 IS INITIAL.
v_belnr = /pws/zycbe001-belnr.
ELSE.
v_belnr = /pws/zycbe001-belnr2.
...
...
INTO itab_zycbe033-c_zuonr
SEPARATED BY space.
IF v_dp1 = 'X'.
IF wa_zycbt001_pre-tpcontr = 'A'.
itab_zycbe033-c_zuonr = wa_zycbt001_pre-dtcontr.
ENDIF.
ENDIF.
itab_zycbe033-c_zuonr = /pws/zycbe001-nrseqc.
itab_zycbe033-vbund = /pws/zycbe001-vbund.
APPEND itab_zycbe033.
* >> Início da inclusão: FORM CLEARING_PRE
loop at itab_zycbt061.
* << Fim da inclusão
IF itab_zycbt061-tpcontr_c(1) CA 'PS'.
IF /pws/zycbe001-tpcontr EQ 'A'.
SELECT *
FROM /pws/zycbt067 INTO TABLE itab_zycbt067
WHERE nrseq_c = itab_zycbt061-nrseq_c. "#EC CI_NOFIRST
SELECT *
FROM /pws/zycbt002 INTO TABLE itab_zycbt002p1
FOR ALL ENTRIES IN itab_zycbt067
WHERE nrseqc = itab_zycbt067-nrseq_c AND
nrparc = itab_zycbt067-nrparc AND
...
...
tpparc = 'P'.
LOOP AT itab_zycbt002p1.
IF itab_zycbt002p1-slvinc = '0' OR
itab_zycbt002p1-slvinc NE itab_zycbt061-vlalt.
PERFORM pega_contas_pre_new CHANGING conta_acc texto_acc
conta_pre texto_pre
cod_rze.
itab_partidas-tcode = 'F-30'.
itab_partidas-tabela = 'ZYCBT001'.
itab_partidas-cpochv = itab_zycbe033-cpochv.
* >> Início da exclusão: FORM CLEARING_PRE
itab_partidas-belnr = itab_zycbt002p1-belnr.
itab_partidas-agkon = conta_acc.
* << Fim da ixclusão
* >> Início da inclusão: FORM CLEARING_PRE
if itab_zycbt002p1-belnr2 is initial.
itab_partidas-belnr = itab_zycbt002p1-belnr.
else.
itab_partidas-belnr = itab_zycbt002p1-belnr2.
endif.
if /pws/zycbe001-tpcontr = 'A'.
itab_partidas-agkon = conta_acc.
else.
itab_partidas-agkon = conta_pre.
endif.
* << Fim da inclusão
itab_partidas-agkoa = 'S'.
itab_partidas-agums = space.
itab_partidas-bukrs = itab_zycbt061-bukrs_c.
itab_partidas-shkzg = 'H'.
IF itab_zycbt061-baixa EQ 'X'.
itab_partidas-v_sinal = '-'.
CONCATENATE text-488 itab_zycbt061-nrseq_c
INTO itab_partidas-d_zuonr
SEPARATED BY space.
ELSE.
...
...
SEPARATED BY space.
ENDIF.
ELSE.
itab_partidas-v_sinal = '+'.
CLEAR itab_partidas-d_zuonr.
ENDIF.
itab_partidas-dtdocto = itab_zycbt061-budat_d.
APPEND itab_partidas.
ENDLOOP.
ENDIF.
* >> Início da inclusão: FORM CLEARING_PRE
endloop.
* << Fim da inclusão
CLEAR v_div.
IF /pws/zycbe001-tpcontr(1) EQ 'D'.
v_div = 'X'.
SELECT SINGLE * FROM /pws/zycbt089
WHERE bukrs = /pws/zycbe001-bukrs.
IF /pws/zycbe001-tpcontr+0(1) = 'D' AND v_opccme = ''.
IF NOT wa_zycbt089-rateio_cl IS INITIAL.
CLEAR: wa_zycbt221_aux.
REFRESH: wa_zycbt221_aux.
LOOP AT itab_zycbt221.
...
...
p_belnr = itab_zycbt032-belnr.
p_budat = itab_zycbe033-budat.
IF /pws/zycbe001-tpcontr+0(1) = 'P'.
/pws/zycbe001-belnr = /pws/zycbt001-belnr = itab_zycbt032-belnr.
ENDIF.
itab_contabil-nrseqpre = /pws/zycbe001-nrseqc.
itab_contabil-nrparpre = space.
CLEAR itab_contabil-nrseqacc.
itab_contabil-belnr = itab_zycbt032-belnr.
itab_contabil-msg = text-247.
* >> Início da inclusão: FORM CLEARING_PRE
itab_contabil-vlme = /pws/zycbe001-vlme.
itab_contabil-nrparc = '001'.
* << Fim da inclusão
APPEND itab_contabil.
* >> Início da inclusão: FORM CLEARING_PRE
loop at itab_zycbt061.
* << Fim da inclusão
SELECT *
FROM /pws/zycbt067 INTO TABLE itab_zycbt067
* >> Início da exclusão: FORM CLEARING_PRE
WHERE nrseq_c = wa_zycbt001_pre-nrseqc. "#EC CI_NOFIRST
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_PRE
where nrseq_c = itab_zycbt061-nrseq_c. "#EC CI_NOFIRST
* << Fim da inclusão
IF sy-subrc = 0.
SELECT *
FROM /pws/zycbt002 INTO TABLE itab_zycbt002p1
FOR ALL ENTRIES IN itab_zycbt067
WHERE nrseqc = itab_zycbt067-nrseq_c AND
tpparc = 'P' AND
nrparc = itab_zycbt067-nrparc.
ENDIF.
LOOP AT itab_zycbt067.
READ TABLE itab_zycbt002p1 WITH KEY
...
...
IF sy-subrc = 0.
UPDATE /pws/zycbt002 SET belnr2 = itab_zycbt032-belnr
WHERE nrseqc = itab_zycbt002p1-nrseqc AND
nrparc = itab_zycbt002p1-nrparc AND
tpparc = 'P'.
COMMIT WORK.
DELETE itab_zycbt002p1 INDEX 1.
CLEAR itab_zycbt002p1.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM CLEARING_PRE
endloop.
* << Fim da inclusão
CLEAR itab_zycbt002p1.
REFRESH itab_zycbt002p1.
sy-subrc = 0.
EXIT.
ELSE.
LOOP AT itab_zycbt032 WHERE tcode = 'F-30'
AND tabela = 'ZYCBT001'
AND cpochv = /pws/zycbe001-nrseqc
AND tpmsg <> 'S'.
CLEAR itab_erro-belnr.
...
...
ENDIF.
CONCATENATE '001' /pws/zycbe001-tpcontr INTO v_codeven.
CLEAR wa_zycbt011.
SELECT SINGLE * FROM /pws/zycbt011
INTO wa_zycbt011
WHERE codeven = v_codeven
AND codmod = 'E'.
texto_pre = wa_zycbt011-txtdesc.
cod_rze = wa_zycbt011-agums.
IF /pws/zycbt001-tpcontr(1) CA 'PSE'.
* >> Início da exclusão: FORM PEGA_CONTAS_ACC_PRE
IF itab_zycbt002p-przcontr IS INITIAL.
CONCATENATE /pws/zycbe001-tpcontr
/pws/zycbe001-przcontr
INTO v_codaux
SEPARATED BY space.
ELSE.
CONCATENATE /pws/zycbe001-tpcontr
* << Fim da exclusão
* >> Início da inclusão: FORM PEGA_CONTAS_ACC_PRE
concatenate itab_zycbt002p-tpcontr
* << Fim da inclusão
itab_zycbt002p-przcontr
INTO v_codaux
SEPARATED BY space.
* >> Início da exclusão: FORM PEGA_CONTAS_ACC_PRE
ENDIF.
* << Fim da exclusão
ELSE.
CONCATENATE /pws/zycbe001-tpcontr
/pws/zycbe001-przcontr
INTO v_codaux
...
...
IF NOT itab_acerto[] IS INITIAL.
EXPORT itab_acerto TO MEMORY ID '002'.
SUBMIT /pws/zycbr128 AND RETURN.
REFRESH itab_acerto.
ENDIF.
ENDFORM.
FORM cria_principal CHANGING p_belnr
p_budat
p_first.
DATA: v_subrc LIKE sy-subrc,
* >> Início da exclusão: FORM CRIA_PRINCIPAL
v_atrib TYPE c,
* << Fim da exclusão
v_cpochv LIKE /pws/zycbe033-cpochv,
conta_acc LIKE /pws/zycbt012-saknr1,
conta_pre LIKE /pws/zycbt012-saknr1,
cod_rze LIKE /pws/zycbt011-agums,
texto_acc LIKE /pws/zycbt011-txtdesc,
texto_pre LIKE /pws/zycbt011-txtdesc.
PERFORM clear_date_batch.
CLEAR: itab_zycbt036.
REFRESH itab_zycbt036.
PERFORM pega_contas_acc_pre CHANGING conta_acc texto_acc
...
...
'WAERS'
text-019.
itab_zycbe033-waers = /pws/zycbe001-waers.
PERFORM verify_null_field USING wa_zycbt011-blart
'BLART'
text-020.
itab_zycbe033-blart = wa_zycbt011-blart.
itab_zycbe033-d_newko = conta_pre.
itab_zycbe033-newbs = '50'.
itab_zycbe033-agkoa = 'S'.
* >> Início da inclusão: FORM CRIA_PRINCIPAL
if /pws/zycbe001-tpcontr = 'PT'.
v_prz = itab_zycbt002p-przcontr .
itab_zycbe033-flag_nc = 'X'.
perform busca_conta_pt using v_dtinicio
/pws/zycbe001-dtliquid
' '.
if v_contac is initial.
exit.
else.
itab_zycbe033-agkon = v_contac.
itab_zycbe033-d_newko1 = v_contac.
itab_zycbt002p-przcontr = v_prz.
endif.
endif.
* << Fim da inclusão
itab_zycbe033-belnr = p_belnr.
itab_zycbe033-dtdocto = p_budat.
IF /pws/zycbe001-ftxt IS INITIAL.
itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.
itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.
itab_zycbe033-augtx = wa_zycbt011-txtdesc.
ELSE.
itab_zycbe033-d_sgtxt = /pws/zycbe001-txtinf.
itab_zycbe033-c_sgtxt = /pws/zycbe001-txtinf.
itab_zycbe033-augtx = /pws/zycbe001-txtinf.
...
...
ELSE.
v_zuonr = /pws/zycbe001-nrseqc.
ENDIF.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_P'
EXPORTING
v_modo = v_modo_bi
filtra = 'X'
v_filt_atrib = v_atrib
so_segundo = p_first
v_zuonr1 = v_zuonr
* >> Início da inclusão: FORM CRIA_PRINCIPAL
v_liq = 'X'
* << Fim da inclusão
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
ENDIF .
...
...
tpmsg = 'S'.
IF sy-subrc EQ 0.
itab_zycbt002p-belnr = itab_zycbt032-belnr.
p_belnr = itab_zycbt032-belnr.
p_budat = itab_zycbe033-budat.
p_first = 'X'.
itab_contabil-nrseqpre = /pws/zycbe001-nrseqc.
itab_contabil-nrparpre = itab_zycbt002p-nrparc.
itab_contabil-belnr = itab_zycbt032-belnr.
itab_contabil-msg = text-249.
* >> Início da inclusão: FORM CRIA_PRINCIPAL
itab_contabil-vlme = itab_zycbt002p-vlme.
itab_contabil-nrparc = itab_zycbt002p-nrparc.
* << Fim da inclusão
APPEND itab_contabil.
sy-subrc = 0.
ELSE.
LOOP AT itab_zycbt032 WHERE tcode = 'F-30'
AND tabela = 'ZYCBT002'
AND cpochv = v_cpochv
AND tpmsg <> 'S'.
CLEAR itab_erro-belnr.
itab_erro-msg = itab_zycbt032-msg.
APPEND itab_erro.
...
...
itab_contabil-nrseqpre = /pws/zycbe001-nrseqc.
itab_contabil-nrparpre = space.
CLEAR itab_contabil-nrseqacc.
itab_contabil-belnr = itab_zycbt032-belnr.
itab_contabil-msg = text-247.
APPEND itab_contabil.
v_subrc = 0.
ELSE.
LOOP AT itab_zycbt032 WHERE tcode = 'F-30'
AND tabela = 'ZYCBT001'
* >> Início da exclusão: FORM REAGRUPA_PRE
AND cpochv = v_cpochv.
CLEAR itab_erro-belnr.
itab_erro-msg = itab_zycbt032-msg.
APPEND itab_erro.
* << Fim da exclusão
* >> Início da inclusão: FORM REAGRUPA_PRE
and cpochv = /pws/zycbe001-nrseqc
and tpmsg = 'E'.
message i015 with itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
* << Fim da inclusão
ENDLOOP.
v_subrc = 4.
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
v_subrc = 4.
ENDIF.
ELSE.
...
...
'WAERS'
text-019.
itab_zycbe033-waers = wa_zycbt001_pre-waers.
PERFORM verify_null_field USING wa_zycbt011-blart
'BLART'
text-020.
itab_zycbe033-blart = wa_zycbt011-blart.
itab_zycbe033-d_newko = conta_acc.
itab_zycbe033-newbs = '50'.
itab_zycbe033-agkoa = 'S'.
* >> Início da inclusão: FORM RETORNA_SALDO_ACC
if v_contconta is initial.
* << Fim da inclusão
itab_zycbe033-d_newko1 = conta_pre.
* >> Início da inclusão: FORM RETORNA_SALDO_ACC
else.
itab_zycbe033-d_newko1 = v_contacontab.
endif.
if v_contconta is initial .
v_contacontab = conta_acc.
v_contconta = 'X'.
endif.
* << Fim da inclusão
IF /pws/zycbe001-tpcontr(01) = 'D'.
v_dp = 'X'.
itab_zycbe033-agums = wa_zycbt011-agums.
ENDIF.
itab_zycbe033-belnr = p_belnr.
itab_zycbe033-dtdocto = p_budat.
IF wa_zycbt001_pre-ftxt IS INITIAL.
itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.
itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.
itab_zycbe033-augtx = wa_zycbt011-txtdesc.
...
...
itab_zycbe033-augtx = wa_zycbt001_pre-txtinf.
ENDIF.
itab_zycbe033-c_gsber = wa_zycbt001_pre-gsber.
itab_zycbe033-d_gsber = wa_zycbt001_pre-gsber.
itab_zycbe033-wrbtr = itab_zycbt061-vlalt.
itab_zycbe033-kursf = wa_zycbt001_pre-txcneg.
PERFORM verify_null_field USING wa_zycbt001_pre-txcneg
'TXCAMB'
text-027.
IF p_first EQ 'L'.
* >> Início da inclusão: FORM RETORNA_SALDO_ACC
itab_zycbe033-flag_nc = 'X'.
endif.
if /pws/zycbe001-tpcontr = 'PT'.
* << Fim da inclusão
itab_zycbe033-flag_nc = 'X'.
ENDIF.
itab_zycbe033-vbund = wa_zycbt001_pre-vbund.
READ TABLE itab_zyglt100 WITH KEY zexit = 'CPT006' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario)
IN PROGRAM (itab_zyglt100-programa)
USING okcode
CHANGING e_subrc.
IF e_subrc NE 0.
EXIT.
ENDIF.
ENDIF.
ENDIF.
APPEND itab_zycbe033.
CLEAR p_first.
* >> Início da inclusão: FORM RETORNA_SALDO_ACC
if not itab_zycbt061[] is initial.
clear v_zuonr.
concatenate itab_zycbt061-nrseq_c itab_zycbt061-tpcontr_c
into v_zuonr.
loop at itab_zycbt061 .
* << Fim da inclusão
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = 'ZYCBT001'.
itab_zycbt036-cpochv = itab_zycbe033-cpochv.
itab_zycbt036-residuo = itab_zycbt061-vlalt.
* >> Início da inclusão: FORM RETORNA_SALDO_ACC
if not itab_zycbe033-d_zuonr is initial.
if wa_zycbt001_pre-tpcontr(1) = 'P'.
concatenate itab_zycbt061-nrseq_c itab_zycbt061-tpcontr_c
into itab_zycbt036-zuonr.
endif.
endif.
* << Fim da inclusão
APPEND itab_zycbt036.
* >> Início da inclusão: FORM RETORNA_SALDO_ACC
endloop.
sort itab_zycbt036 by zuonr.
delete adjacent duplicates from itab_zycbt036.
if not v_atrib is initial.
loop at itab_zycbt036.
if itab_zycbt036-zuonr = v_zuonr.
else.
delete itab_zycbt036 index sy-tabix.
endif .
endloop.
endif.
endif.
* << Fim da inclusão
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
IF itab_zycbt034[] IS INITIAL.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_P'
EXPORTING
v_modo = v_modo_bi
filtra = 'X'
v_acc_pre_dp = v_dp
* >> Início da inclusão: FORM RETORNA_SALDO_ACC
v_filt_atrib = v_atrib
v_zuonr1 = v_zuonr
v_liq = 'X'
* << Fim da inclusão
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
IF sy-subrc = 0.
READ TABLE itab_zycbt032 WITH KEY tcode = 'F-30'
tabela = 'ZYCBT001'
cpochv = v_cpochv
tpmsg = 'S'.
IF sy-subrc EQ 0.
p_belnr = itab_zycbt032-belnr.
p_budat = itab_zycbe033-budat.
* >> Início da inclusão: FORM RETORNA_SALDO_ACC
v_atrib = 'X'.
if v_contbelnr is initial .
v_belnr_aberto = itab_zycbt032-belnr.
v_contbelnr = 'X'.
endif.
* << Fim da inclusão
itab_contabil-nrseqpre = /pws/zycbe001-nrseqc.
itab_contabil-nrparpre = space.
itab_contabil-nrseqacc = wa_zycbt001_pre-nrseqc.
itab_contabil-belnr = itab_zycbt032-belnr.
itab_contabil-msg = text-389.
APPEND itab_contabil.
PERFORM clearing USING conta_acc texto_acc p_belnr p_budat.
itab_zycbt061-belnr2 = space.
sy-subrc = 0.
ELSE.
LOOP AT itab_zycbt032 WHERE tcode = 'F-30'
AND tabela = 'ZYCBT001'
* >> Início da exclusão: FORM RETORNA_SALDO_ACC
AND cpochv = v_cpochv
AND tpmsg <> 'S'.
CLEAR itab_erro-belnr.
itab_erro-msg = itab_zycbt032-msg.
APPEND itab_erro.
* << Fim da exclusão
* >> Início da inclusão: FORM RETORNA_SALDO_ACC
and cpochv = /pws/zycbe001-nrseqc.
message i015 with itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
* << Fim da inclusão
ENDLOOP.
sy-subrc = 4.
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
sy-subrc = 4.
ENDIF.
ELSE.
sy-subrc = 4.
ENDIF.
* >> Início da inclusão: FORM RETORNA_SALDO_ACC
p_belnr = v_belnr_aberto.
* << Fim da inclusão
ENDFORM.
FORM clearing USING p_conta
p_texto
p_belnr
p_budat.
PERFORM clear_date_batch.
DATA: v_cpochv LIKE /pws/zycbe033-cpochv,
v_subrc LIKE sy-subrc,
valor LIKE /pws/zycbt002-vlme,
belnr LIKE /pws/zycbt001-belnr,
...
...
itab_contabil-belnr = itab_zycbt032-belnr.
IF itab_zycbt061-tpcontr_c(1) CA 'PS'.
itab_contabil-msg = text-501.
ELSE.
itab_contabil-msg = text-251.
ENDIF.
APPEND itab_contabil.
IF itab_zycbt061-tpcontr_c(1) CA 'PS' OR
wa_zycbt001_pre-slvinc NE 0 .
CLEAR: belnr, budat.
* >> Início da inclusão: FORM CLEARING
budat = itab_zycbe033-budat.
* << Fim da inclusão
belnr = itab_zycbt032-belnr.
* >> Início da exclusão: FORM CLEARING
PERFORM retorna_principal_origem USING belnr budat.
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING
perform retorna_principal_origem using belnr budat
p_conta.
* << Fim da inclusão
ENDIF.
v_subrc = 0.
ELSE.
LOOP AT itab_zycbt032 WHERE tcode = 'F-30'
AND tabela = 'ZYCBT001'
* >> Início da exclusão: FORM CLEARING
AND cpochv = v_cpochv.
CLEAR itab_erro-belnr.
itab_erro-msg = itab_zycbt032-msg.
APPEND itab_erro.
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING
and cpochv = /pws/zycbe001-nrseqc.
message i015 with itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
* << Fim da inclusão
ENDLOOP.
v_subrc = 4.
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
v_subrc = 4.
ENDIF.
ELSE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001F04
...
v_chamada(50) type c,
w_prog like trdir-name.
data: wa_001t type /pws/zycbt001,
wa_001e type /pws/zycbe001,
wa_002t type /pws/zycbt002,
wa_005t type /pws/zycbt005,
wa_006t type /pws/zycbt006.
clear: t_prog, wa_log.
refresh: t_prog.
append 'report sy-repid. ' to t_prog.
* >> Início da exclusão: FORM MONTA_LOG_CFM
append 'form log using p_dados ' to t_prog.
* << Fim da exclusão
* >> Início da inclusão: FORM MONTA_LOG_CFM
append 'form quebra_linha using p_dados ' to t_prog.
* << Fim da inclusão
append ' p_tabela ' to t_prog.
append ' CHANGING P_WA_LOG. ' to t_prog.
if sy-saprl(3) ge '620' or sy-saprl(2) eq '47'. "#EC PORTABLE
append 'tables: dd03l. ' to t_prog.
append text-471 to t_prog.
append text-472 to t_prog.
append text-473 to t_prog.
append 'data: v_tam type dd03l-leng, ' to t_prog.
append ' v_valor(50) type c, ' to t_prog.
append ' v_xstring type xstring. ' to t_prog.
...
...
endif.
endif.
concatenate '001' itab_zycbt061-tpcontr_c into v_codeven.
clear wa_zycbt011.
select single * from /pws/zycbt011
into wa_zycbt011
where codeven = v_codeven
and codmod = 'E'.
texto_pre = wa_zycbt011-txtdesc.
cod_rze = wa_zycbt011-agums.
* >> Início da inclusão: FORM PEGA_CONTAS_PRE_NEW
if itab_zycbt061-tpcontr_c(1) = 'P' or
itab_zycbt061-tpcontr_c(1) = 'S'.
if not itab_zycbt002p1 is initial.
concatenate itab_zycbt002p1-tpcontr
itab_zycbt002p1-przcontr
into v_codaux
separated by space.
endif.
else.
if itab_zycbt061-tpcontr_c(1) = 'A' and
/pws/zycbe001-tpcontr = 'PT'.
concatenate itab_zycbt002p-tpcontr
itab_zycbt002p-przcontr
into v_codaux
separated by space.
else.
* << Fim da inclusão
concatenate /pws/zycbe001-tpcontr
/pws/zycbe001-przcontr
into v_codaux
separated by space.
* >> Início da inclusão: FORM PEGA_CONTAS_PRE_NEW
endif.
endif.
* << Fim da inclusão
refresh itab_zyglt316.
call function '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
...
...
exceptions
key_not_found = 1
rules_not_found = 2
others = 3.
if sy-subrc eq 0.
read table itab_zyglt316 index 1.
conta_pre = itab_zyglt316-konth.
endif.
endform.
form retorna_principal_origem using belnr
* >> Início da exclusão: FORM RETORNA_PRINCIPAL_ORIGEM
budat.
* << Fim da exclusão
* >> Início da inclusão: FORM RETORNA_PRINCIPAL_ORIGEM
budat
p_conta.
* << Fim da inclusão
data: valor like /pws/zycbt002-vlme,
subrc like sy-subrc,
v_prim type c,
v_lines like sy-tabix.
clear: itab_zycbt002p.
select *
from /pws/zycbt002
into table itab_zycbt002p
where nrseqc = wa_zycbt001_pre-nrseqc
and tpparc = 'P'.
select *
from /pws/zycbt067
into table itab_zycbt067
where nrseq_c = wa_zycbt001_pre-nrseqc. "#EC CI_NOFIRST
loop at itab_zycbt067.
* >> Início da inclusão: FORM RETORNA_PRINCIPAL_ORIGEM
if itab_zycbt067-vlme = 0.
continue.
else.
* << Fim da inclusão
read table itab_zycbt002p with key
nrseqc = itab_zycbt067-nrseq_c
nrparc = itab_zycbt067-nrparc.
at last.
v_prim = 'L'.
endat.
* >> Início da exclusão: FORM RETORNA_PRINCIPAL_ORIGEM
perform cria_principal_original changing belnr budat v_prim.
* << Fim da exclusão
* >> Início da inclusão: FORM RETORNA_PRINCIPAL_ORIGEM
perform cria_principal_original using p_conta
changing belnr budat v_prim.
* << Fim da inclusão
if itab_zycbt002p-slvinc ne 0.
itab_zycbt002p-slvinc = itab_zycbt067-vlme_c.
else.
itab_zycbt002p-slvinc =
itab_zycbt002p-slvinc + itab_zycbt067-vlme.
endif.
clear itab_zycbt002p-belnr2.
* >> Início da exclusão: FORM RETORNA_PRINCIPAL_ORIGEM
update /pws/zycbt002 set belnr2 = itab_zycbt032-belnr
* << Fim da exclusão
* >> Início da inclusão: FORM RETORNA_PRINCIPAL_ORIGEM
update /pws/zycbt002 set belnr2 = itab_zycbt032-belnr
dtvincul = budat
* << Fim da inclusão
where nrseqc = itab_zycbt002p-nrseqc and
nrparc = itab_zycbt002p-nrparc and
tpparc = 'P'.
commit work.
* >> Início da inclusão: FORM RETORNA_PRINCIPAL_ORIGEM
endif.
* << Fim da inclusão
endloop.
endform.
* >> Início da exclusão: FORM CRIA_PRINCIPAL_ORIGINAL
form cria_principal_original changing p_belnr
* << Fim da exclusão
* >> Início da inclusão: FORM CRIA_PRINCIPAL_ORIGINAL
form cria_principal_original using p_conta
changing p_belnr
* << Fim da inclusão
p_budat
p_first.
data:
v_cpochv like /pws/zycbe033-cpochv,
conta_acc like /pws/zycbt012-saknr1,
conta_pre like /pws/zycbt012-saknr1,
cod_rze like /pws/zycbt011-agums,
texto_acc like /pws/zycbt011-txtdesc,
v_atrib type c,
texto_pre like /pws/zycbt011-txtdesc.
...
...
itab_zycbe033-cpochv = v_cpochv.
itab_zycbe033-tabela = 'ZYCBT002'.
case /pws/zycbe001-fdtlanc.
when 'O'.
itab_zycbe033-budat = /pws/zycbe001-dtcontr.
when 'D'.
itab_zycbe033-budat = /pws/zycbe001-dtdesem.
when 'C'.
itab_zycbe033-budat = /pws/zycbe001-dtcred.
endcase.
* >> Início da inclusão: FORM CRIA_PRINCIPAL_ORIGINAL
itab_zycbe033-budat = p_budat.
* << Fim da inclusão
perform verify_null_field using itab_zycbe033-budat
'DTDESEM'
text-023.
if wa_zycbt007-fdtdoc = 'D'.
itab_zycbe033-bldat = sy-datum.
itab_zycbe033-d_valut = sy-datum.
else.
itab_zycbe033-bldat = itab_zycbe033-budat.
itab_zycbe033-d_valut = itab_zycbt002p-dtfinal.
endif.
...
...
itab_zycbe033-xblnr = /pws/zycbe001-nrseqc.
when 'TPCONTR'.
itab_zycbe033-xblnr = /pws/zycbe001-tpcontr.
endcase.
when 'ZUONR'.
case itab_zycbt013-cpocb.
when 'NRCONTR'.
itab_zycbe033-c_zuonr = /pws/zycbe001-nrcontr.
itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.
when 'NRSEQC'.
* >> Início da inclusão: FORM CRIA_PRINCIPAL_ORIGINAL
if not wa_zycbt001_pre is initial.
itab_zycbe033-c_zuonr = wa_zycbt001_pre-nrseqc.
itab_zycbe033-d_zuonr = wa_zycbt001_pre-nrseqc.
else.
* << Fim da inclusão
itab_zycbe033-c_zuonr = /pws/zycbe001-nrseqc.
itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.
* >> Início da inclusão: FORM CRIA_PRINCIPAL_ORIGINAL
endif.
* << Fim da inclusão
when 'TPCONTR'.
itab_zycbe033-c_zuonr = /pws/zycbe001-tpcontr.
itab_zycbe033-d_zuonr = /pws/zycbe001-tpcontr.
endcase.
endcase.
...
...
itab_zycbe033-blart = wa_zycbt011-blart.
if /pws/zycbe001-tpcontr ne 'A'.
itab_zycbe033-d_newko = conta_pre.
else.
itab_zycbe033-d_newko = conta_acc.
endif.
itab_zycbe033-newbs = '50'.
itab_zycbe033-agkoa = 'S'.
itab_zycbe033-belnr = p_belnr.
itab_zycbe033-dtdocto = p_budat.
* >> Início da inclusão: FORM CRIA_PRINCIPAL_ORIGINAL
itab_zycbe033-agkon = p_conta .
itab_zycbe033-d_newko1 = p_conta .
* << Fim da inclusão
if /pws/zycbe001-ftxt is initial.
itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.
itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.
itab_zycbe033-augtx = wa_zycbt011-txtdesc.
else.
itab_zycbe033-d_sgtxt = /pws/zycbe001-txtinf.
itab_zycbe033-c_sgtxt = /pws/zycbe001-txtinf.
itab_zycbe033-augtx = /pws/zycbe001-txtinf.
endif.
itab_zycbe033-c_gsber = /pws/zycbe001-gsber.
itab_zycbe033-d_gsber = /pws/zycbe001-gsber.
itab_zycbe033-wrbtr = /pws/zycbe001-vlme.
itab_zycbe033-kursf = /pws/zycbe001-txcneg.
perform verify_null_field using /pws/zycbe001-txcneg
'TXCAMB'
text-027.
if p_first eq 'L'.
itab_zycbe033-flag_nc = 'X'.
p_first = 'X'.
* >> Início da inclusão: FORM CRIA_PRINCIPAL_ORIGINAL
endif.
if /pws/zycbe001-tpcontr = 'PT'.
itab_zycbe033-flag_nc = 'X'.
* << Fim da inclusão
endif.
itab_zycbe033-vbund = /pws/zycbe001-vbund.
append itab_zycbe033.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = 'ZYCBT002'.
itab_zycbt036-cpochv = itab_zycbe033-cpochv.
* >> Início da exclusão: FORM CRIA_PRINCIPAL_ORIGINAL
itab_zycbt036-residuo = itab_zycbt002p-vlme.
* << Fim da exclusão
* >> Início da inclusão: FORM CRIA_PRINCIPAL_ORIGINAL
itab_zycbt036-residuo = itab_zycbt067-vlme.
* << Fim da inclusão
append itab_zycbt036.
v_atrib = 'X'.
if wa_zycbt001_pre-tpcontr = 'PT'.
concatenate wa_zycbt001_pre-nrseqc wa_zycbt001_pre-tpcontr
into v_zuonr.
else.
v_zuonr = wa_zycbt001_pre-nrseqc.
endif.
loop at itab_zycbt034.
message i016 with itab_zycbt034-descricao.
endloop.
if itab_zycbt034 is initial.
call function '/PWS/ZYCB_TRANSACAO_F_30_P'
exporting
v_modo = v_modo_bi
filtra = 'X'
so_segundo = p_first
v_filt_atrib = v_atrib
v_zuonr1 = v_zuonr
* >> Início da inclusão: FORM CRIA_PRINCIPAL_ORIGINAL
v_liq = 'X'
* << Fim da inclusão
tables
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
exceptions
campo_em_branco = 1
periodo_fechado = 2
others = 3.
if sy-subrc = 0.
...
...
itab_contabil-nrseqpre = /pws/zycbe001-nrseqc.
itab_contabil-nrparpre = itab_zycbt002p-nrparc.
itab_contabil-belnr = itab_zycbt032-belnr.
itab_contabil-msg = text-249.
append itab_contabil.
itab_zycbt002p-belnr = itab_zycbt032-belnr .
sy-subrc = 0.
else.
loop at itab_zycbt032 where tcode = 'F-30'
and tabela = 'ZYCBT002'
* >> Início da exclusão: FORM CRIA_PRINCIPAL_ORIGINAL
and cpochv = v_cpochv
and tpmsg <> 'S'.
clear itab_erro-belnr.
itab_erro-msg = itab_zycbt032-msg.
append itab_erro.
* << Fim da exclusão
* >> Início da inclusão: FORM CRIA_PRINCIPAL_ORIGINAL
and cpochv = /pws/zycbe001-nrseqc.
message i015 with itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
* << Fim da inclusão
endloop.
sy-subrc = 4.
endif.
else.
loop at itab_zycbt034.
message i016 with itab_zycbt034-descricao.
endloop.
sy-subrc = 4.
endif.
else.
...
...
itab_zycbt226-sld_exterior - itab_zycbt226-vlr_ord .
modify itab_zycbt226 index v_tabix.
update /pws/zycbt226 set sld_exterior = itab_zycbt226-sld_exterior
where nrseq = itab_zycbt226-nrseq.
commit work.
endif.
endif.
endloop.
endif.
endform.
* >> Início da inclusão:
form retorna_saldo_contrato changing p_belnr
p_budat
p_first.
data: v_cpochv like /pws/zycbe033-cpochv,
conta_acc like /pws/zycbt012-saknr1,
conta_pre like /pws/zycbt012-saknr1,
cod_rze like /pws/zycbt011-agums,
texto_acc like /pws/zycbt011-txtdesc,
texto_pre like /pws/zycbt011-txtdesc,
v_dp.
perform clear_date_batch.
clear: itab_zycbt036.
refresh itab_zycbt036.
if /pws/zycbe001-tpcontr(1) = 'D'.
v_desm_acc_dp = 'X'.
endif.
loop at itab_zycbt001_liq.
select * from /pws/zycbt002
into table itab_zycbt002p
where nrseqc = itab_zycbt001_liq-nrseqc
and tpcontr = itab_zycbt001_liq-tpcontr
and tpparc = 'P'.
perform pega_contas changing conta_acc texto_acc
conta_pre texto_pre
cod_rze.
clear v_desm_acc_dp.
itab_zycbe033-tcode = 'F-30'.
v_cpochv = itab_zycbt001_liq-nrseqc.
itab_zycbe033-cpochv = v_cpochv.
itab_zycbe033-tabela = 'ZYCBT001'.
if itab_zycbt001_liq-dtvincul is initial.
case itab_zycbt001_liq-fdtlanc.
when 'O'.
itab_zycbe033-budat = itab_zycbt001_liq-dtcontr.
when 'D'.
itab_zycbe033-budat = itab_zycbt001_liq-dtdesem.
when 'C'.
itab_zycbe033-budat = itab_zycbt001_liq-dtcred.
endcase.
else.
itab_zycbe033-budat = itab_zycbt001_liq-dtvincul.
endif.
perform verify_null_field using itab_zycbe033-budat
'DTDESEM'
text-023.
if wa_zycbt007-fdtdoc = 'D'.
itab_zycbe033-bldat = sy-datum.
itab_zycbe033-d_valut = sy-datum.
else.
itab_zycbe033-bldat = itab_zycbe033-budat.
itab_zycbe033-d_valut = itab_zycbt001_liq-dtliquid.
endif.
itab_zycbe033-zfbdt = itab_zycbt001_liq-dtliquid.
loop at itab_zycbt013.
case itab_zycbt013-cpor3.
when 'XBLNR'.
case itab_zycbt013-cpocb.
when 'NRCONTR'.
itab_zycbe033-xblnr = itab_zycbt001_liq-nrcontr.
when 'NRSEQC'.
itab_zycbe033-xblnr = itab_zycbt001_liq-nrseqc.
when 'TPCONTR'.
itab_zycbe033-xblnr = itab_zycbt001_liq-tpcontr.
endcase.
when 'ZUONR'.
case itab_zycbt013-cpocb.
when 'NRCONTR'.
itab_zycbe033-c_zuonr = /pws/zycbe001-nrcontr.
itab_zycbe033-d_zuonr = itab_zycbt001_liq-nrcontr.
when 'NRSEQC'.
itab_zycbe033-c_zuonr = /pws/zycbe001-nrseqc.
itab_zycbe033-d_zuonr = itab_zycbt001_liq-nrseqc.
when 'TPCONTR'.
itab_zycbe033-c_zuonr = /pws/zycbe001-tpcontr.
itab_zycbe033-d_zuonr = itab_zycbt001_liq-tpcontr.
endcase.
endcase.
endloop.
if not itab_zycbe033-d_zuonr is initial.
if itab_zycbt001_liq-tpcontr(1) = 'P'.
concatenate itab_zycbt001_liq-nrseqc itab_zycbt001_liq-tpcontr
into itab_zycbe033-d_zuonr.
endif.
endif.
itab_zycbe033-bktxt = wa_zycbt007-bktxt.
perform verify_null_field using itab_zycbt001_liq-bukrs
'BUKRS'
text-018.
itab_zycbe033-bukrs = itab_zycbt001_liq-bukrs.
perform verify_null_field using itab_zycbt001_liq-waers
'WAERS'
text-019.
itab_zycbe033-waers = itab_zycbt001_liq-waers.
perform verify_null_field using wa_zycbt011-blart
'BLART'
text-020.
itab_zycbe033-blart = wa_zycbt011-blart.
itab_zycbe033-d_newko = conta_acc.
itab_zycbe033-newbs = '50'.
itab_zycbe033-agkoa = 'S'.
itab_zycbe033-d_newko1 = conta_pre.
if /pws/zycbe001-tpcontr(01) = 'D'.
v_dp = 'X'.
itab_zycbe033-agums = wa_zycbt011-agums.
endif.
itab_zycbe033-belnr = p_belnr.
itab_zycbe033-dtdocto = p_budat.
if itab_zycbt001_liq-ftxt is initial.
itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.
itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.
itab_zycbe033-augtx = wa_zycbt011-txtdesc.
else.
itab_zycbe033-d_sgtxt = itab_zycbt001_liq-txtinf.
itab_zycbe033-c_sgtxt = itab_zycbt001_liq-txtinf.
itab_zycbe033-augtx = itab_zycbt001_liq-txtinf.
endif.
itab_zycbe033-c_gsber = itab_zycbt001_liq-gsber.
itab_zycbe033-d_gsber = itab_zycbt001_liq-gsber.
itab_zycbe033-wrbtr = itab_zycbt061-vlalt.
itab_zycbe033-kursf = itab_zycbt001_liq-txcneg.
perform verify_null_field using itab_zycbt001_liq-txcneg
'TXCAMB'
text-027.
if p_first eq 'L'.
itab_zycbe033-flag_nc = 'X'.
endif.
if /pws/zycbe001-tpcontr = 'PT'.
itab_zycbe033-flag_nc = 'X'.
endif.
itab_zycbe033-vbund = itab_zycbt001_liq-vbund.
read table itab_zyglt100 with key zexit = 'CPT006' binary search.
if sy-subrc eq 0.
if not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa)
using okcode
changing e_subrc.
if e_subrc ne 0.
exit.
endif.
endif.
endif.
append itab_zycbe033.
clear p_first.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = 'ZYCBT001'.
itab_zycbt036-cpochv = itab_zycbe033-cpochv.
itab_zycbt036-residuo = itab_zycbt061-vlalt.
append itab_zycbt036.
endloop.
loop at itab_zycbt034.
message i016 with itab_zycbt034-descricao.
endloop.
if itab_zycbt034[] is initial.
call function '/PWS/ZYCB_TRANSACAO_F_30_P'
exporting
v_modo = v_modo_bi
filtra = 'X'
v_acc_pre_dp = v_dp
tables
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
exceptions
campo_em_branco = 1
periodo_fechado = 2
others = 3.
if sy-subrc = 0.
read table itab_zycbt032 with key tcode = 'F-30'
tabela = 'ZYCBT001'
cpochv = v_cpochv
tpmsg = 'S'.
if sy-subrc eq 0.
p_belnr = itab_zycbt032-belnr.
p_budat = itab_zycbe033-budat.
itab_contabil-nrseqpre = /pws/zycbe001-nrseqc.
itab_contabil-nrparpre = space.
itab_contabil-nrseqacc = wa_zycbt001_pre-nrseqc.
itab_contabil-belnr = itab_zycbt032-belnr.
itab_contabil-msg = text-389.
append itab_contabil.
perform clearing using conta_acc texto_acc p_belnr p_budat.
itab_zycbt061-belnr2 = space.
sy-subrc = 0.
else.
loop at itab_zycbt032 where tcode = 'F-30'
and tabela = 'ZYCBT001'
and cpochv = v_cpochv
and tpmsg <> 'S'.
clear itab_erro-belnr.
itab_erro-msg = itab_zycbt032-msg.
append itab_erro.
endloop.
sy-subrc = 4.
endif.
else.
loop at itab_zycbt034.
message i016 with itab_zycbt034-descricao.
endloop.
sy-subrc = 4.
endif.
else.
sy-subrc = 4.
endif.
endform.
form pega_contas changing conta_acc texto_acc
conta_pre texto_pre
cod_rze.
data:v_codeven like /pws/zycbt011-codeven,
v_codaux like /pws/zyglt316-codaux1.
clear: conta_acc, conta_pre, texto_acc, texto_pre.
clear wa_zycbt007.
select single * from /pws/zycbt007
into wa_zycbt007
where bukrs eq wa_zycbt001_pre-bukrs.
refresh itab_zycbt013.
select * from /pws/zycbt013
into table itab_zycbt013
where tabela = 'ZYCBT001'.
if not itab_zycbt001_liq[] is initial.
concatenate '001' itab_zycbt001_liq-tpcontr into v_codeven.
clear wa_zycbt011.
select single * from /pws/zycbt011
into wa_zycbt011
where codeven = v_codeven
and codmod = 'E'.
texto_acc = wa_zycbt011-txtdesc.
cod_rze = wa_zycbt011-agums.
if /pws/zycbt001-tpcontr(1) = 'D' and v_desm_acc_dp is initial
and itab_zycbt001_liq-slvinc > 0.
conta_acc = /pws/zycbe001-kunnr.
else.
concatenate itab_zycbt001_liq-tpcontr
itab_zycbt001_liq-przcontr
into v_codaux
separated by space.
call function '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
exporting
bukrs = itab_zycbt001_liq-bukrs
ktosl = 'CPT'
codaux1 = v_codaux
tables
account = itab_zyglt316
exceptions
key_not_found = 1
rules_not_found = 2
others = 3.
if sy-subrc eq 0.
read table itab_zyglt316 index 1.
conta_acc = itab_zyglt316-konth.
endif.
endif.
endif.
concatenate '001' /pws/zycbe001-tpcontr into v_codeven.
clear wa_zycbt011.
select single * from /pws/zycbt011
into wa_zycbt011
where codeven = v_codeven
and codmod = 'E'.
texto_pre = wa_zycbt011-txtdesc.
cod_rze = wa_zycbt011-agums.
if /pws/zycbt001-tpcontr(1) ca 'PSE'.
concatenate itab_zycbt002p-tpcontr
itab_zycbt002p-przcontr
into v_codaux
separated by space.
else.
concatenate /pws/zycbe001-tpcontr
/pws/zycbe001-przcontr
into v_codaux
separated by space.
endif.
if /pws/zycbt001-tpcontr(1) = 'D'.
conta_pre = /pws/zycbe001-kunnr.
else.
refresh itab_zyglt316.
call function '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
exporting
bukrs = /pws/zycbe001-bukrs
ktosl = 'CPT'
codaux1 = v_codaux
tables
account = itab_zyglt316
exceptions
key_not_found = 1
rules_not_found = 2
others = 3.
if sy-subrc eq 0.
read table itab_zyglt316 index 1.
conta_pre = itab_zyglt316-konth.
endif.
endif.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001I01
...
endif.
clear v_pagto.
perform clear_date_batch.
clear /pws/zycbe004.
when 'AEND'.
if v_status_s200 = '0'.
authority-check object 'S_TCODE'
id 'TCD'
field c_transacao_a.
if sy-subrc = 0.
* >> Início da inclusão: MODULE USER_COMMAND_0200
select single * from /pws/zycbt031
where nrcorresp eq /pws/zycbe004-nrseqc
and tpdesp eq /pws/zycbe004-tpdesp
and nrparc eq /pws/zycbe004-nrparc
and dtincl eq /pws/zycbe004-dtincl
and dtliquid eq /pws/zycbe004-dtliquid
and tpjuros eq /pws/zycbe004-tpjuros
and mdcorresp eq 'ED'.
if sy-subrc ne 0.
select single * from /pws/zycbt064
where nrchave eq /pws/zycbe004-nrseqc
and tpdesp eq /pws/zycbe004-tpdesp
and nrparc eq /pws/zycbe004-nrparc
and dtincl eq /pws/zycbe004-dtincl
and dtliquid eq /pws/zycbe004-dtliquid
and tpjuros eq /pws/zycbe004-tpjuros
and mdcorresp eq 'ED'.
if sy-subrc = 0.
message i061 with text-515.
v_status_s200 = '0'.
else.
* << Fim da inclusão
v_status_s200 = '1'.
* >> Início da inclusão: MODULE USER_COMMAND_0200
endif.
else.
v_status_s200 = '0'.
message i061 with text-515.
endif.
* << Fim da inclusão
else.
message i120 with text-185.
...
...
if sy-subrc ne 0.
select single * from /pws/zycbt064
where nrchave eq /pws/zycbe004-nrseqc
and tpdesp eq /pws/zycbe004-tpdesp
and nrparc eq /pws/zycbe004-nrparc
and dtincl eq /pws/zycbe004-dtincl
and dtliquid eq /pws/zycbe004-dtliquid
and tpjuros eq /pws/zycbe004-tpjuros
and mdcorresp eq 'ED'.
if sy-subrc = 0.
* >> Início da inclusão: MODULE SELECT_ZYCBE004
message i061 with text-515.
* << Fim da inclusão
v_status_s200 = '0'.
else.
v_status_s200 = '1'.
endif.
else.
v_status_s200 = '0'.
* >> Início da inclusão: MODULE SELECT_ZYCBE004
message i061 with text-515.
* << Fim da inclusão
endif.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001O01
...
move-corresponding itab_zycbt003 to /pws/zycbe003.
when '0104'.
check not itab_zycbt002p[] is initial.
move-corresponding itab_zycbt002p to /pws/zycbe002p.
write /pws/zycbe002p-slvinc currency /pws/zycbe002p-waers.
write /pws/zycbe002p-vlme currency /pws/zycbe002p-waers.
if not itab_zycbt002p_ant[] is initial.
read table itab_zycbt002p_ant with key
nrparc = itab_zycbt002p-nrparc.
if sy-subrc eq '0'.
* >> Início da exclusão: MODULE INSERT_LINE
if itab_zycbt002p_ant-vlme ne itab_zycbt002p_ant-slvinc.
* << Fim da exclusão
* >> Início da inclusão: MODULE INSERT_LINE
if itab_zycbt002p_ant-vlme ne itab_zycbt002p_ant-slvinc
and itab_zycbt002p_ant-slvinc is initial.
* << Fim da inclusão
loop at screen.
screen-input = '0'.
modify screen.
endloop.
endif.
endif.
else.
endif.
when '0105'.
move-corresponding itab_zycbt002 to /pws/zycbe002.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001TOP
...
v_txtemp(50) type c,
v_tp_pagt_dp(1) type c,
mrof(1) type c,
v_bcocred(10) type c,
v_codaux like /pws/zyglt316-codaux1,
v_calcula(1) type c,
v_cpochv like /pws/zycbe033-cpochv,
v_date_est like t009b-bdatj,
v_novo,
v_contac like /pws/zycbt012-saknr1,
* >> Início da inclusão:
v_prz like /pws/zycbt002-przcontr,
v_atrib type c,
v_contbelnr type c,
v_contconta type c,
v_belnr_aberto like bkpf-belnr,
v_contacontab like /pws/zycbt012-saknr1,
* << Fim da inclusão
v_belnr_pt like /pws/zycbt001-belnr,
estorno_ok(1),
v_fcode like sy-ucomm,
v_mostra_ov type i,
v_pagador type i,
v_tipo type i,
v_moeda type i,
v_ordem type vbpa-vbeln,
v_reg_usado(1) type c,
v_erro_ov,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001X01
...
data: begin of itab_zycbt002p occurs 10.
include structure /pws/zycbt002.
data mark(1).
data v_flag(1) type c.
data: escalonado(1).
data: icon_esc like icon-id.
data: end of itab_zycbt002p.
data: itab_zycbt002p_aux like itab_zycbt002p occurs 0 with header line.
data: itab_zycbt004 like /pws/zycbt004 occurs 10 with header line,
itab_zycbt001 like /pws/zycbt001.
* >> Início da inclusão:
data: itab_zycbt001_liq like /pws/zycbt001 occurs 0 with header line.
* << Fim da inclusão
data: begin of itab_zycbt136 occurs 0.
include structure /pws/zycbe136.
data: alterado(1).
data: end of itab_zycbt136.
data: begin of itab_zycbt204 occurs 10.
include structure /pws/zycbt204.
data: end of itab_zycbt204.
data: begin of itab_zycbt091 occurs 2.
include structure /pws/zycbt091.
data: marc(1).
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB014F01
...
tpparc = 'P'.
clear: v_vlalt,
v_slvinc.
v_vlalt = itab_zycbt061-vlalt .
loop at itab_zycbt002 .
if v_vlalt > itab_zycbt002-slvinc.
v_slvinc = itab_zycbt002-slvinc.
v_vlalt = v_vlalt - itab_zycbt002-slvinc.
itab_zycbt002-slvinc = itab_zycbt002-slvinc - v_slvinc.
v_tot = v_slvinc .
* >> Início da inclusão: FORM GRAVA_TABELAS
elseif v_vlalt = itab_zycbt002-slvinc.
v_slvinc = itab_zycbt002-slvinc.
v_vlalt = v_vlalt - itab_zycbt002-slvinc.
itab_zycbt002-slvinc = itab_zycbt002-slvinc - v_slvinc.
v_tot = v_slvinc .
* << Fim da inclusão
else.
if v_tot ne itab_zycbt061-vlalt .
v_slvinc1 = itab_zycbt002-slvinc - v_vlalt.
itab_zycbt002-slvinc = v_vlalt.
v_slvinc = v_slvinc1.
v_tot = v_tot + v_vlalt.
else.
v_tot = v_tot + 1.
endif.
endif.
...
...
endif.
if v_tot <= itab_zycbt061-vlalt .
/pws/zycbt067-nrseq = /pws/zycbe060-nrseq.
/pws/zycbt067-nrseq_c = itab_zycbt061-nrseq_c.
/pws/zycbt067-nrparc = itab_zycbt002-nrparc.
/pws/zycbt067-tpcontr = itab_zycbt002-tpcontr.
/pws/zycbt067-vlme = v_slvinc.
/pws/zycbt067-vlme_c = itab_zycbt002-vlme .
/pws/zycbt067-belnr_c = itab_zycbt002-belnr.
modify /pws/zycbt067.
* >> Início da exclusão: FORM GRAVA_TABELAS
update /pws/zycbt002 set slvinc = v_slvinc1
* << Fim da exclusão
* >> Início da inclusão: FORM GRAVA_TABELAS
update /pws/zycbt002 set slvinc = itab_zycbt002-slvinc
* << Fim da inclusão
where nrseqc = itab_zycbt061-nrseq_c
* >> Início da exclusão: FORM GRAVA_TABELAS
and nrparc = itab_zycbt002-nrparc.
* << Fim da exclusão
* >> Início da inclusão: FORM GRAVA_TABELAS
and nrparc = itab_zycbt002-nrparc
and tpparc = itab_zycbt002-tpparc.
* << Fim da inclusão
commit work.
endif.
...
...
modify /pws/zycbt001.
commit work.
endif.
endloop.
endif.
refresh itab_aux2_zycbt061.
clear itab_aux2_zycbt061.
move itab_zycbt061[] to itab_aux2_zycbt061[].
if sy-tcode <> '/PWS/ZYCB014_E'.
perform criar_juros.
* >> Início da inclusão: FORM GRAVA_TABELAS
endif.
if sy-tcode eq '/PWS/ZYCB014_A'.
clear itab_zycbt062_aux.
refresh itab_zycbt062_aux.
select single * from /pws/zycbt062
where nrseq = /pws/zycbe060-nrseq.
if sy-subrc eq 0.
select *
from /pws/zycbt062
into table itab_zycbt062_aux
for all entries in itab_zycbt061
where nrseq = itab_zycbt061-nrseq
and nrseq_c = itab_zycbt061-nrseq_c.
v_altera = 'N'.
loop at itab_zycbt062_aux.
if itab_zycbt062_aux-dtvencto ne /pws/zycbe060-dtdesemb.
v_altera = 'S'.
endif.
endloop.
loop at itab_zycbt061.
read table itab_zycbt062_aux with key
nrseq = itab_zycbt061-nrseq
nrseq_c = itab_zycbt061-nrseq_c.
if sy-subrc ne 0 or
itab_zycbt062_aux-vlme <> itab_zycbt061-vlcalc.
v_altera = 'S'.
endif.
endloop.
if v_altera = 'S'.
perform salva_juros.
* << Fim da inclusão
endif.
* >> Início da inclusão: FORM GRAVA_TABELAS
endif.
endif.
* << Fim da inclusão
if sy-tcode = '/PWS/ZYCB014_C' and v_troca = 'S'.
message i271 with /pws/zycbe060-nrseq. "#EC *
endif.
if sy-tcode = '/PWS/ZYCB014_C'.
message i205. "#EC *
...
...
itab_pf_status-fcode = 'JUROS'.
append itab_pf_status.
set pf-status '0100_A' excluding itab_pf_status.
else.
set pf-status '0100_A'.
endif.
elseif sy-tcode = '/PWS/ZYCB014_E'.
read table itab_zycbt061 index sy-tabix.
if itab_zycbt061-tpcontr_c(1) ca 'PS'.
itab_pf_status-fcode = 'JUROS'.
* >> Início da inclusão: FORM EXIBIR
itab_pf_status-fcode = 'EXCL'.
itab_pf_status-fcode = 'ERAS'.
* << Fim da inclusão
append itab_pf_status.
set pf-status '0100_A' excluding itab_pf_status.
else.
* >> Início da exclusão: FORM EXIBIR
set pf-status '0100_A'.
* << Fim da exclusão
* >> Início da inclusão: FORM EXIBIR
itab_pf_status-fcode = 'EXCL'.
itab_pf_status-fcode = 'ERAS'.
append itab_pf_status.
set pf-status '0100_A' excluding itab_pf_status.
* << Fim da inclusão
endif.
endif.
loop at tc_itens-cols into wa_cols.
wa_cols-screen-input = '0'.
modify tc_itens-cols from wa_cols.
endloop.
endform.
form alterar_excluir.
read table itab_zycbt061 index sy-tabix.
if itab_zycbt061-tpcontr_c(1) ca 'PS'.
...
...
where nrseq = wa_zycbt001-nrseqc.
perform monta_log_cfm using wa_zycbt061_log
'/PWS/ZYCBT061'
changing wa_log.
perform grava_log using '/PWS/ZYCBT061'
wa_log
'E'.
endselect.
endif.
delete from /pws/zycbt061
* >> Início da exclusão: FORM ELIMINA_REGISTROS
where nrseq_c = itab_aux_zycbt061-nrseq_c. "#EC CI_NOFIRST
* << Fim da exclusão
* >> Início da inclusão: FORM ELIMINA_REGISTROS
where nrseq = itab_aux_zycbt061-nrseq
and nrseq_c = itab_aux_zycbt061-nrseq_c.
select single * from /pws/zycbt062
where nrseq = itab_aux_zycbt061-nrseq
and nrseq_c = itab_aux_zycbt061-nrseq_c.
delete from /pws/zycbt004
where nrseqc = itab_aux_zycbt061-nrseq_c
and tpdesp = 'JL'
and nrparc = /pws/zycbt062-nrparc.
delete from /pws/zycbt062
where nrseq = itab_aux_zycbt061-nrseq
and nrseq_c = itab_aux_zycbt061-nrseq_c.
* << Fim da inclusão
if v_ok is initial.
v_valor = /pws/zycbt001-slvinc + itab_aux_zycbt061-vlalt.
update /pws/zycbt001 set slvinc = v_valor
where nrseqc = itab_aux_zycbt061-nrseq.
endif.
endif.
endloop.
endform.
form calculos_itab_zycbt061.
data: v_calc1 type f value 0, "#EC *
...
...
else.
v_nrdias = /pws/zycbe060-dtdesemb - <fs_zycbt002>-dtinicio.
endif.
<fs_zycbt062>-vlmej = <fs_zycbt062>-vlmej + <fs_zycbt062>-vlme *
<fs_zycbt002>-txjtotal / 100 / <fs_zycbt010>-nrdias *
v_nrdias.
unassign <fs_zycbt010>.
if v_nrdias_juros > v_nrdias_desemb.
exit.
endif.
* >> Início da inclusão: FORM CALCULOS_ITAB_ZYCBT062
endloop.
loop at itab_zycbt002 assigning <fs_zycbt002>
where nrseqc = <fs_zycbt062>-nrseq_c.
* << Fim da inclusão
endloop.
* >> Início da exclusão: FORM CALCULOS_ITAB_ZYCBT062
describe table itab_zycbt002 lines v_lin.
read table itab_zycbt002 assigning <fs_zycbt002> index v_lin.
* << Fim da exclusão
if sy-subrc eq 0.
<fs_zycbt062>-txjfixa = <fs_zycbt002>-txjfixa.
<fs_zycbt062>-txjvar = <fs_zycbt002>-txjvar.
<fs_zycbt062>-txjtotal = <fs_zycbt002>-txjtotal.
<fs_zycbt062>-tptxjur = <fs_zycbt002>-tptxjur.
...
...
from /pws/zycbt002 into table itab_zycbt002
where nrseqc = itab_zycbt061-nrseq_c and
tpparc = 'P'.
select *
from /pws/zycbt067 into table itab_zycbt067
for all entries in itab_zycbt002
where nrseq_c = itab_zycbt002-nrseqc."#EC CI_NOFIRST
loop at itab_zycbt002.
check not itab_zycbt067[] is initial.
read table itab_zycbt067 with key
* >> Início da exclusão: FORM ELIMINA_PROCESSO
nrseq_c = itab_zycbt002-nrseqc.
v_vlme = itab_zycbt002-vlme - itab_zycbt067-vlme.
* << Fim da exclusão
* >> Início da inclusão: FORM ELIMINA_PROCESSO
nrseq_c = itab_zycbt002-nrseqc
nrparc = itab_zycbt002-nrparc.
v_vlme = itab_zycbt067-vlme.
* << Fim da inclusão
if v_vlme eq 0.
itab_zycbt002-slvinc =
itab_zycbt002-slvinc + itab_zycbt067-vlme.
else.
* >> Início da inclusão: FORM ELIMINA_PROCESSO
if itab_zycbt067-vlme ne 0.
itab_zycbt002-slvinc = itab_zycbt067-vlme.
else.
* << Fim da inclusão
itab_zycbt002-slvinc =
* >> Início da exclusão: FORM ELIMINA_PROCESSO
itab_zycbt002-slvinc + v_vlme.
* << Fim da exclusão
* >> Início da inclusão: FORM ELIMINA_PROCESSO
v_vlme.
endif.
* << Fim da inclusão
endif.
delete itab_zycbt067 index sy-tabix.
delete from /pws/zycbt067 where
nrseq_c = itab_zycbt002-nrseqc
and nrparc = itab_zycbt002-nrparc."#EC CI_NOFIRST
update /pws/zycbt002 set slvinc = itab_zycbt002-slvinc
where nrseqc = itab_zycbt002-nrseqc
and nrparc = itab_zycbt002-nrparc.
commit work.
endloop.
...
...
form alterar_juros.
clear itab_zycbt062.
refresh itab_zycbt062.
clear itab_zycbt061.
select *
from /pws/zycbt062
into table itab_zycbt062
for all entries in itab_zycbt061
where nrseq = itab_zycbt061-nrseq
and nrseq_c = itab_zycbt061-nrseq_c.
* >> Início da exclusão: FORM ALTERAR_JUROS
if itab_zycbt062[] is initial.
* << Fim da exclusão
* >> Início da inclusão: FORM ALTERAR_JUROS
v_altera = 'N'.
loop at itab_zycbt062.
if itab_zycbt062-dtvencto ne /pws/zycbe060-dtdesemb.
v_altera = 'S'.
endif.
endloop.
loop at itab_zycbt061.
read table itab_zycbt062 with key nrseq = itab_zycbt061-nrseq
nrseq_c = itab_zycbt061-nrseq_c.
if sy-subrc ne 0 or itab_zycbt062-vlme <> itab_zycbt061-vlcalc.
v_altera = 'S'.
endif.
endloop.
if itab_zycbt062[] is initial or v_altera = 'S'.
* << Fim da inclusão
perform criar_juros.
call screen '0200'.
else.
call screen '0200'.
endif.
endform.
form criar_juros.
* >> Início da inclusão: FORM CRIAR_JUROS
select single * from /pws/zycbt062
where nrseq = /pws/zycbe060-nrseq.
if sy-subrc eq 0.
/pws/zycbe062-frpagto = /pws/zycbt062-frpagto.
endif.
* << Fim da inclusão
refresh itab_zycbt062.
clear itab_zycbt062.
loop at itab_zycbt061.
move: itab_zycbt061-nrseq_c to itab_zycbt062-nrseq_c,
itab_zycbt061-nrseq to itab_zycbt062-nrseq,
/pws/zycbe060-nrcontr to itab_zycbt062-nrcontr,
itab_zycbt061-dtliquid_c to itab_zycbt062-dtfinal,
/pws/zycbe060-dtdesemb to itab_zycbt062-dtvencto,
itab_zycbt061-vlalt to itab_zycbt062-vlme,
itab_zycbt061-waers_c to itab_zycbt062-waers,
* >> Início da exclusão: FORM CRIAR_JUROS
/pws/zycbe060-dtdesemb to itab_zycbt062-dtincl.
* << Fim da exclusão
* >> Início da inclusão: FORM CRIAR_JUROS
/pws/zycbe060-dtdesemb to itab_zycbt062-dtincl,
/pws/zycbe062-frpagto to itab_zycbt062-frpagto.
* << Fim da inclusão
select single * from /pws/zycbt001
where nrseqc = itab_zycbt061-nrseq_c.
case /pws/zycbt001-fdtjuros.
when 'D'.
move /pws/zycbt001-dtdesem to itab_zycbt062-dtinicio.
when 'O'.
move /pws/zycbt001-dtcontr to itab_zycbt062-dtinicio.
when others.
move /pws/zycbt001-dtcred to itab_zycbt062-dtinicio.
endcase.
modify itab_zycbt062 index sy-tabix.
if sy-subrc <> 0.
append itab_zycbt062.
endif.
endloop.
perform calculos_itab_zycbt062.
endform.
* >> Início da exclusão: FORM GRAVA_ZYCBT004
form grava_zycbt004 using value(data_ant).
* << Fim da exclusão
* >> Início da inclusão: FORM GRAVA_ZYCBT004
form grava_zycbt004 using value(data_ant)
parc_ant.
* << Fim da inclusão
data: wa_zycbt001_aux like /pws/zycbt001.
if not data_ant is initial.
delete from /pws/zycbt004
where nrseqc eq itab_zycbt062-nrseq_c and
tpdesp eq 'J' and
dtincl eq data_ant and
( dtliquid eq 0 or
dtliquid eq ' ' or
dtliquid eq '00000000' ) and
( nrparc eq 0 or
nrparc eq ' ' or
nrparc eq '000' ).
endif.
* >> Início da inclusão: FORM GRAVA_ZYCBT004
delete from /pws/zycbt004
where nrseqc eq itab_zycbt062-nrseq_c and
tpdesp eq 'JL' and
nrparc eq parc_ant.
* << Fim da inclusão
clear /pws/zycbt004.
select single *
from /pws/zycbt001
into wa_zycbt001_aux
where nrseqc = itab_zycbt062-nrseq_c.
select *
from /pws/zycbt004
into /pws/zycbt004
where nrseqc = itab_zycbt062-nrseq_c
and tpdesp = 'JL'
...
...
endselect.
if sy-subrc = 0.
if /pws/zycbt004-nrparc is initial.
/pws/zycbt004-nrparc = '001'.
else.
/pws/zycbt004-nrparc = /pws/zycbt004-nrparc + 1 .
endif .
else.
/pws/zycbt004-nrparc = '001'.
endif.
* >> Início da inclusão: FORM GRAVA_ZYCBT004
itab_zycbt062-nrparc = /pws/zycbt004-nrparc.
modify itab_zycbt062.
* << Fim da inclusão
move: itab_zycbt062-nrseq_c to /pws/zycbt004-nrseqc,
'JL' to /pws/zycbt004-tpdesp,
itab_zycbt062-dtincl to /pws/zycbt004-dtincl,
wa_zycbt001_aux-nrcontr to /pws/zycbt004-nrcontr,
wa_zycbt001_aux-tpcontr to /pws/zycbt004-tpcontr,
wa_zycbt001_aux-bconegoc to /pws/zycbt004-bconegoc,
wa_zycbt001_aux-bcofinan to /pws/zycbt004-bcofinan,
wa_zycbt001_aux-bukrs to /pws/zycbt004-bukrs,
wa_zycbt001_aux-j_1bbranch to /pws/zycbt004-j_1bbranch,
wa_zycbt001_aux-werks to /pws/zycbt004-werks,
...
...
( not itab_period-txt_long is initial ).
v_sair_fadc = 'N'.
endif.
endloop.
endif.
endif.
enddo.
endform.
form salva_juros.
data: v_salvou(1),
* >> Início da exclusão: FORM SALVA_JUROS
v_data_ant like sy-datum.
* << Fim da exclusão
* >> Início da inclusão: FORM SALVA_JUROS
v_data_ant like sy-datum,
v_parc_ant like /pws/zycbt062-nrparc.
* << Fim da inclusão
clear v_salvou.
loop at itab_zycbt062.
select *
from /pws/zycbt004
up to 1 rows
where nrseqc = itab_zycbt062-nrseq_c and
tpdesp = 'J' and
nrparc = 0 and
dtincl = itab_zycbt062-dtincl.
endselect.
if sy-subrc eq 0.
if not /pws/zycbt004-dtpagto is initial.
continue.
endif.
endif.
* >> Início da exclusão: FORM SALVA_JUROS
clear v_data_ant.
select single dtincl
* << Fim da exclusão
* >> Início da inclusão: FORM SALVA_JUROS
clear: v_data_ant,
v_parc_ant.
select single dtincl nrparc
* << Fim da inclusão
from /pws/zycbt062
* >> Início da exclusão: FORM SALVA_JUROS
into (v_data_ant)
where nrseq eq itab_zycbt062-nrseq and
nrseq_c eq itab_zycbt062-nrseq_c.
* << Fim da exclusão
* >> Início da inclusão: FORM SALVA_JUROS
into (v_data_ant, v_parc_ant)
where nrseq = itab_zycbt062-nrseq and
nrseq_c = itab_zycbt062-nrseq_c.
select single * from /pws/zycbt061
where nrseq = itab_zycbt062-nrseq and
nrseq_c = itab_zycbt062-nrseq_c.
if sy-subrc eq 0.
perform grava_zycbt004 using v_data_ant v_parc_ant.
* << Fim da inclusão
perform grava_zycbt062.
* >> Início da exclusão: FORM SALVA_JUROS
perform grava_zycbt004 using v_data_ant.
* << Fim da exclusão
v_salvou = 'X'.
* >> Início da inclusão: FORM SALVA_JUROS
endif.
* << Fim da inclusão
endloop.
if sy-subrc eq 0.
...
...
changing wa_log.
perform grava_log using '/PWS/ZYCBT004'
wa_log
'E'.
endif.
delete from /pws/zycbt004
where nrseqc eq wa_zycbt062_juros-nrseq_c and
tpdesp eq 'J' and
nrparc eq 0 and
dtincl eq wa_zycbt062_juros-dtincl.
* >> Início da inclusão: FORM EXCLUI_ZYCBT004
delete from /pws/zycbt004
where nrseqc eq wa_zycbt062_juros-nrseq_c and
tpdesp eq 'JL' and
nrparc eq wa_zycbt062_juros-nrparc.
* << Fim da inclusão
endif.
endform.
form verifica_alteracao changing v_alterou.
data: wa_zycbt061_aux1 like /pws/zycbt061,
wa_zycbt061_aux2 like /pws/zycbt061.
loop at itab_zycbt061.
itab_zycbt061-mark = ''.
modify itab_zycbt061.
endloop.
clear itab_zycbt061.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB014O01
...
MODULE status_0200 OUTPUT.
FREE itab_pf_status.
IF v_mens = 'YES' AND v_juros = 'NO'.
SET PF-STATUS '0200_A' EXCLUDING itab_pf_status.
PERFORM exibi_juros.
ELSE.
SET PF-STATUS '0200_A' EXCLUDING itab_pf_status.
PERFORM alterar_incluir_juros.
ENDIF.
IF sy-tcode = '/PWS/ZYCB014_E' AND sy-dynnr = '0200' OR
* >> Início da exclusão: MODULE STATUS_0200
v_existe = 'YES' AND v_juros = 'NO'.
* << Fim da exclusão
* >> Início da inclusão: MODULE STATUS_0200
v_existe = 'YES' and v_juros = 'NO' or
not v_belnr is initial.
* << Fim da inclusão
SET PF-STATUS '0200_E' EXCLUDING itab_pf_status.
PERFORM exibi_juros.
ENDIF.
SET TITLEBAR '200'.
ENDMODULE.
MODULE move_itab_zycbt062 OUTPUT.
READ TABLE itab_zycbt061 WITH KEY nrseq_c =
itab_zycbt062-nrseq_c.
IF sy-subrc EQ 0.
v_nrcontr_j = itab_zycbt061-nrcontr_c.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB014TOP
...
data: v_ok type c,
v_vlme like /pws/zycbt002-vlme.
data: v_belnr like /pws/zycbt001-belnr.
data: wa_log type char4000,
wa_zycbt001_log like /pws/zycbt001,
wa_zycbt002_log like /pws/zycbt002,
wa_zycbt004_log like /pws/zycbt004,
wa_zycbt060_log like /pws/zycbt060,
wa_zycbt061_log like /pws/zycbt061,
wa_zycbt062_log like /pws/zycbt062.
* >> Início da inclusão:
data: begin of itab_zycbt062_aux occurs 0.
include structure /pws/zycbt062.
data: end of itab_zycbt062_aux.
data: v_altera(1) type c.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYGLR002
...
bconegoc like /pws/zycbt004-bconegoc,
bukrs like /pws/zycbt004-bukrs,
benefic like /pws/zycbt004-benefic,
frpagto like /pws/zycbt004-frpagto,
waers like /pws/zycbt004-waers,
percdesp like /pws/zycbt004-percdesp,
vlme like /pws/zycbt004-vlme,
dtvencto like /pws/zycbt004-dtvencto,
fcambio like /pws/zycbt004-fcambio,
txtinf like /pws/zycbt004-txtinf,
* >> Início da inclusão:
belnr type /pws/zycbt004-belnr,
* << Fim da inclusão
kostl like /pws/zycbt004-kostl,
prctr like /pws/zycbt004-prctr,
dtpagto like /pws/zycbt004-dtpagto,
nrinvoic like /pws/zycbt004-nrinvoic,
nrparcf like /pws/zycbt004-nrparcf ,
gsberf like /pws/zycbt004-gsberf,
vlir like /pws/zycbt004-vlir,
frgzu like /pws/zycbt004-frgzu,
estrat like /pws/zycbt004-estrat,
frgsx1 like /pws/zycbt004-frgsx1,
...
...
contrat-high = v_zero8.
v_zero8 = contrat-low.
contrat-low = v_zero8.
endif.
endform.
form seleciona_despesa.
if data-high is initial.
select nrseqc tpdesp nrparc dtincl dtliquid tpjuros
nrcontr tpcontr bconegoc bukrs benefic
frpagto waers percdesp vlme dtvencto fcambio txtinf
* >> Início da inclusão: FORM SELECIONA_DESPESA
belnr
* << Fim da inclusão
kostl prctr dtpagto nrinvoic
nrparcf gsberf vlir
frgzu estrat frgsx1 frgsx2 frgsx3 frgsx4 frgsx5 nlib
seq aprova bname dtbname hrbname frggr
into table itab_zycbt004
from /pws/zycbt004
where dtpagto eq '00000000'
and dtvencto le v_data
and bukrs in empresa
and benefic in fornece
and nrseqc in contrat
and nrinvoic in invoice
and waers in moeda
and frgzu ne '1'.
else.
select nrseqc tpdesp nrparc dtincl dtliquid tpjuros
nrcontr tpcontr bconegoc bukrs benefic
frpagto waers percdesp vlme dtvencto fcambio txtinf
* >> Início da inclusão: FORM SELECIONA_DESPESA
belnr
* << Fim da inclusão
kostl prctr dtpagto nrinvoic
nrparcf gsberf vlir
frgzu estrat frgsx1 frgsx2 frgsx3 frgsx4 frgsx5 nlib
seq aprova bname dtbname hrbname frggr
into table itab_zycbt004
from /pws/zycbt004
where dtpagto eq '00000000'
and dtvencto in data
and bukrs in empresa
and benefic in fornece
...
...
itab_zycbt004-vlme is initial ) and
itab_zycbt004-tpdesp eq 'J' and
not itab_zycbt004-nrinvoic is initial.
continue.
endif.
if itab_zycbt004-tpcontr eq 'TR' and
( itab_zycbt004-tpdesp = 'PR' or
itab_zycbt004-tpdesp = 'P' ).
continue.
endif.
* >> Início da inclusão: FORM SELECIONA_DESPESA
if itab_zycbt004-frpagto = 'C' and
itab_zycbt004-belnr is initial.
continue.
endif.
* << Fim da inclusão
read table itab_zycbt015 with key tpdesp = itab_zycbt004-tpdesp
ftipo = 'E'.
if sy-subrc = 0 and itab_zycbt004-tpdesp = 'J'.
concatenate itab_zycbt004-nrparc itab_zycbt004-tpjuros text-042
itab_zycbt015-txtdesc into v_tipo.
elseif sy-subrc = 0.
concatenate text-025 itab_zycbt015-txtdesc into v_tipo
separated by space.
endif.
clear: v_me, v_usd.
...
...
up to 1 rows
where bukrs in empresa.
endselect.
endif.
endform.
form seleciona_trava.
if data-high is initial.
select nrseqc tpdesp nrparc dtincl dtliquid tpjuros
nrcontr tpcontr bconegoc bukrs benefic
frpagto waers percdesp vlme dtvencto fcambio txtinf
* >> Início da inclusão: FORM SELECIONA_TRAVA
belnr
* << Fim da inclusão
kostl prctr dtpagto nrinvoic
nrparcf
gsberf
into table itab_zycbt004
from /pws/zycbt004
where ( dtpagto eq '00000000' or dtpagto eq ' ' )
and dtvencto le v_data
and bukrs in empresa
and benefic in fornece
and nrseqc in contrat
and waers in moeda
and ( tpdesp eq 'PR' or
tpdesp eq 'P' ).
else.
select nrseqc tpdesp nrparc dtincl dtliquid tpjuros
nrcontr tpcontr bconegoc bukrs benefic
frpagto waers percdesp vlme dtvencto fcambio txtinf
* >> Início da inclusão: FORM SELECIONA_TRAVA
belnr
* << Fim da inclusão
kostl prctr dtpagto nrinvoic
nrparcf
gsberf
into table itab_zycbt004
from /pws/zycbt004
where ( dtpagto eq '00000000' or dtpagto eq ' ' )
and dtvencto in data
and bukrs in empresa
and benefic in fornece
and nrseqc in contrat
...
...
for all entries in itab_zycbt004
where tpdesp eq itab_zycbt004-tpdesp
and ftipo eq 'E'.
select nrseqc nrparc vlir
from /pws/zycbt136 into table itab_zycbt136
for all entries in itab_zycbt004
where nrseqc eq itab_zycbt004-nrseqc
and nrparc eq itab_zycbt004-nrparc.
endif.
loop at itab_zycbt004.
* >> Início da inclusão: FORM SELECIONA_TRAVA
if itab_zycbt004-frpagto = 'C' and
itab_zycbt004-belnr is initial.
continue.
endif.
* << Fim da inclusão
read table itab_zycbt015 with key tpdesp = itab_zycbt004-tpdesp
ftipo = 'E'.
if sy-subrc = 0.
concatenate text-044 itab_zycbt015-txtdesc text-045 into v_tipo
separated by space.
endif.
clear: v_me, v_usd.
v_me = itab_zycbt004-vlme.
move:
text-032 to itab_selreg-mod,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCBE062
DESCRIÇÃO BREVE: CB - Juros do Pré Pagamento
COMPONENTES NOVOS
COMPONENTE: TP. COMP: TAB.REF.: CPO.REF.: AJUD. PESQU.
NRPARC /PWS/ZYCBL047
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCBT062
DESCRIÇÃO BREVE: CB - Juros do Pré Pagamento
CARACTERÍSTICAS
CATEGORIA DA TABELA: Tabela transparente
CLASSE DE ENTREGA:
(A) - AUTUALIZAÇÃO DE TABELAS PERMITIDA
CAMPOS NOVOS
CAMPOS: TP. CAMPO CH: INI: TAB.VERIF.: TAB.REF.: CPO.RE
NRPARC /PWS/ZYCBL047
OPÇÕES TÉCNICAS
TIPO DE DADOS: APPL0
CATEGOR. TAMANHO: 2
(X) - AR. BUFFER NÃO PERMITIDO
(_) - AR. BUFFER PERMITIDO, MAS DESATIVADO
(_) - AR. BUFFER ATIVADO
(_) - RGSTS. IND ARMAZENADOS
(_) - ÁREA GEN ARMAZENADA EM BUFFER Nº DE CPOS CHAVE: ______
(_) - TOTALMENTE ARMAZENADO
(_) - REGISTRAR MODIFICS. DDS. EM LOG.