Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Vinculação
Data/Hora da Publicação: 26/07/2010 00:00:00
Data/Hora Última Alteração: 18/02/2011 17:55:30
Descrição da Nota: VINCULAÇÃO - RATEIO CENTRO DE LUCRO INCORRETO E ERRO F-30(PERDE OK_CODE)
Sintoma
Ao contabilizar uma vinculação na F-30 o sistema esta efetuando o Rateio do Centro de Lucro
incorreto e perde o ok_code.
Solução
Mapear corretamente o campo "tipo de conta" para o BI encontrar a tela correta e poder finalizar.
Ajustar rateio centro de lucro na ida e estorno. Ajustar pontos de exit que não tem verificação se o
mesmo esta ativo. Criar pontos de exit que não estão no produto.
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 10429 Data: 26/07/2010 Hora: 11:40:36
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 10429
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00004
Agrupamento : 00032
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
05825 - 00001 - 7.0 - 00004 - VALORES MANTIDOS NO EXTERIOR COM VINCULAÇÃO E LIQUIDAÇÃO AUTOMÁTI
08536 - 00002 - 7.0 - 00009 - DA-VINCULAÇÃO/LIQUIDAÇÃO-OTIMIZAÇÃO-BUSCA TAXAS/TIPO DOCTO. POR C
09688 - 00003 - 8.0 - 00002 - VINCULAÇÃO DE FATURAS EXPORTAÇÃO, CONTABILIZAÇÃO CONTAS IGUAIS
10188 - 00004 - 8.0 - 00003 - MAPEAMENTO SOCIEDADE PARCEIRA NAS CONTABILIZAÇÕES
----------------------------------------------------------------------------------------------------
VINCULAÇÃO - RATEIO CENTRO DE LUCRO INCORRETO E ERRO F-30(PERDE OK_CODE)
----------------------------------------------------------------------------------------------------
Palavras Chave:
VINCULAÇÃO - RATEIO CENTRO DE LUCRO INCORRETO E ERRO F-30(PERDE OK_CODE)
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCB_TRANSACAO_F_30_PR
REPS /PWS/MZYCB009F01
REPS /PWS/MZYCB009F05
REPS /PWS/MZYCB009F08
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_PR
...
v_last(1),
v_linhas(3) TYPE n,
v_zuonr LIKE /pws/zycbe033-d_zuonr,
v_cont(2) TYPE n,
v_subrc LIKE sy-subrc,
v_xpos_wrbtr(15),
v_pos_wrbtr TYPE i,
v_vl_min(16) VALUE '0,01',
v_vl_max(16) VALUE '9.999.999.999,99',
v_xpos_belnr(2) TYPE n,
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_PR
v_agkoa like /pws/zycbe033-agkoa,
* << Fim da inclusão
v_selecao(2) TYPE n .
DATA: itab_t041t LIKE t041t OCCURS 0 WITH HEADER LINE.
TABLES:
/pws/zycbt089.
SELECT SINGLE selps FROM t021r
INTO v_xpos1
WHERE event = 'SL-AG'
AND feldn = 'BELNR'.
ADD 1 TO v_xpos1.
SHIFT v_xpos1 LEFT DELETING LEADING '0'.
...
...
CONCATENATE 'RF05A-XPOS1(' v_xpos_belnr ')' INTO v_xpos.
IF t_dados-d_newko1 IS INITIAL.
PERFORM bdc_field USING:
'RF05A-AGKON' t_dados-d_newko,
'RF05A-AGKOA' wa_tbsl-koart,
v_xpos 'X'.
IF NOT t_dados-umskz IS INITIAL.
PERFORM bdc_field USING:
'RF05A-AGUMS' t_dados-umskz.
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_PR
v_agkoa = wa_tbsl-koart.
* << Fim da inclusão
ELSE.
PERFORM bdc_field USING:
'RF05A-AGKON' t_dados-d_newko1,
'RF05A-AGKOA' 'S',
v_xpos 'X'.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_PR
v_agkoa = wa_tbsl-koart.
* << Fim da inclusão
ENDIF.
PERFORM bdc_field USING: 'BDC_OKCODE' '=PA'.
...
...
'BDC_OKCODE' '=PI'.
ENDIF.
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'.
perform verifica_empresas using t_dados-bukrs
'UMBUCHNG'
t_dados-d_newko
* >> Início da exclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_PR
t_dados-agkoa.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_PR
v_agkoa.
* << Fim da inclusão
ENDIF.
MOVE t_dados-brnch TO c_brnch.
PERFORM bdc_screen USING 'SAPMF05A' '0700'.
PERFORM bdc_field USING:
'BDC_CURSOR' 'RF05A-NEWBS',
'BDC_OKCODE' '=PI'.
PERFORM bdc_screen USING 'SAPMF05A' '0610'.
PERFORM bdc_field USING:
'BDC_CURSOR' '*BSEG-BUZEI',
'*BSEG-BUZEI' v_linhas,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F01
...
endform.
form fill_date1_f02 tables itab_vinc like itab_zycbt005[].
data:
v_cpochv like /pws/zycbe033-cpochv,
v_vlslf like /pws/zycbt017-vlslf,
v_ace type n,
v_num_ov type n,
v_num_vinc type n.
data: begin of itab_ace_aux occurs 2.
data: belnr type belnr_d,
* >> Início da inclusão: FORM FILL_DATE1_F02
umskz type bsad-umskz,
* << Fim da inclusão
budat type datum,
wrbtr type wrbtr,
prctr type prctr.
data: end of itab_ace_aux.
perform clear_date_batch.
loop at itab_vinc
where flag = 'A'.
if itab_vinc-status ne 'C'.
itab_vinc-flag = 'I'.
modify itab_vinc.
...
...
importing
v_year = v_year
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.
* >> Início da exclusão: FORM FILL_DATE1_F02
select belnr budat wrbtr prctr
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F02
select belnr
umskz
budat wrbtr prctr
* << Fim da inclusão
from bsad
into table itab_ace_aux
where bukrs = itab_vinc-bukrs and
kunnr = itab_zycbe033-c_newko and
augdt = itab_vinc-dtvincul and
augbl = itab_vinc-belnr and
* >> Início da exclusão: FORM FILL_DATE1_F02
gjahr = v_year and
belnr <> itab_vinc-belnr and
umskz <> space.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F02
gjahr = v_year.
if sy-subrc = 0.
delete itab_ace_aux where not ( belnr ne itab_vinc-belnr and
umskz ne space ).
endif.
if sy-subrc ne 0 or itab_ace_aux[] is initial.
select belnr umskz budat wrbtr prctr
from bsad
into table itab_ace_aux
where bukrs = itab_vinc-bukrs and
kunnr = itab_zycbe033-c_newko and
augdt = itab_vinc-dtvincul and
augbl = itab_vinc-belnr_vinc and
gjahr = v_year.
endif.
if sy-subrc = 0.
delete itab_ace_aux where not ( belnr ne itab_vinc-belnr_vinc
and umskz ne space ).
* << Fim da inclusão
endif.
* >> Início da inclusão: FORM FILL_DATE1_F02
endif.
* << Fim da inclusão
itab_zycbe033-tcode = 'F-02'.
itab_zycbe033-tabela = '/PWS/ZYCBT005'.
concatenate itab_vinc-nrseqc itab_vinc-tpdesp
itab_vinc-nrparc itab_vinc-dtincl
itab_vinc-nrinvoic itab_vinc-gsberf
itab_vinc-dtvincul itab_vinc-dtvencto
...
...
endloop.
if sy-subrc ne 0.
itab_zycbt036-residuo = wa_zycbt221-vlr_rateio.
append itab_zycbt036.
itab_zycbe033-wrbtr = itab_zycbe033-wrbtr +
itab_zycbt036-residuo.
endif.
endloop.
endif.
itab_zycbe033-vbund = /pws/zycbe001-vbund.
* >> Início da inclusão: FORM FILL_DATE1_F02
perform busca_exit.
read table itab_zyglt100 with key zexit = 'VNC023'.
if sy-subrc eq 0
and not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa).
endif.
* << Fim da inclusão
append itab_zycbe033.
endloop.
if /pws/zycbe001-tpcontr(1) = 'D' and
* >> Início da exclusão: FORM FILL_DATE1_F02
wa_zycbt089-rateio_cl = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F02
wa_zycbt089-rateio_cl = 'X'
and not itab_zycbt221[] is initial.
* << Fim da inclusão
move itab_zycbt036[] to itab_zycbt036_dp[].
endif.
* >> Início da exclusão: FORM FILL_DATE1_F02
check sy-subrc eq 0.
* << Fim da exclusão
v_tpcontabil = 'E_VIN'.
perform busca_dados_bi using itab_zycbe033-bukrs
v_tpcontabil.
loop at itab_zycbt034.
message i016 with itab_zycbt034-descricao.
endloop.
if /pws/zycbe001-tpcontr(1) = 'D' and
* >> Início da exclusão: FORM FILL_DATE1_F02
wa_zycbt089-rateio_cl = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F02
wa_zycbt089-rateio_cl = 'X'
and not itab_zycbt221[] is initial.
* << Fim da inclusão
describe table itab_zycbt221 lines v_num_ov.
describe table itab_vinc lines v_num_vinc.
v_ace = v_num_ov / v_num_vinc.
endif.
if itab_zycbt034 is initial.
if /pws/zycbe001-tpcontr(1) = 'D' and
wa_zycbt089-f_cont_vinc = 'A' and
* >> Início da exclusão: FORM FILL_DATE1_F02
wa_zycbt089-rateio_cl = ''.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F02
( wa_zycbt089-rateio_cl = '' or
itab_zycbt221[] is initial ).
* << Fim da inclusão
call function '/PWS/ZYCB_TRANSACAO_F_02H'
exporting
v_modo = v_modo_bi
tables
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
exceptions
campo_em_branco = 1
others = 2.
...
...
v_conta like /pws/zycbe033-c_newko,
v_cpochv like /pws/zycbe033-cpochv,
v_vlslf like /pws/zycbt017-vlslf,
v_ult_dtvincul like /pws/zycbt005-dtvincul,
v_txcamb like /pws/zycbt005-txcamb,
v_grava(1),
v_codeven_aux like v_codeven,
v_saknr type /pws/zycbe033-c_newko.
data: begin of itab_ace_aux occurs 2.
data: belnr type belnr_d,
* >> Início da inclusão: FORM FILL_DATE1_F30
umskz type bsad-umskz,
* << Fim da inclusão
budat type datum,
wrbtr type wrbtr,
prctr type prctr.
data: end of itab_ace_aux.
perform limpa_itabs_contabil.
perform get_parameters_001.
loop at itab_vinc.
if itab_vinc-status eq 'I'
or itab_vinc-status eq ' '.
v_grava = 'N'.
...
...
read table itab_zyglt316 index 1.
read table itab_zyglt316 index 1.
itab_zycbe033-d_newko = itab_zyglt316-konth.
itab_zycbe033-agkon = itab_zyglt316-konth.
itab_zycbe033-newbs = '50'.
endif.
itab_zycbe033-agums = ''.
endif.
perform busca_exit.
read table itab_zyglt100 with key zexit = 'VNC019'.
* >> Início da exclusão: FORM FILL_DATE1_F30
if sy-subrc eq 0.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30
if sy-subrc eq 0
and not itab_zyglt100-zexit_ativa is initial.
* << Fim da inclusão
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa).
endif.
append itab_zycbe033.
clear itab_zycbt036.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT005'.
itab_zycbt036-cpochv = v_cpochv.
itab_zycbt036-belnr = itab_vinc-belnr.
clear v_year.
...
...
period_not_assigned = 5
version_undefined = 6
others = 7.
select single * from bkpf
where bukrs = itab_vinc-bukrs
and belnr = itab_vinc-belnr_f02
and gjahr = v_year.
itab_zycbt036-dtdocto = bkpf-budat.
append itab_zycbt036.
if /pws/zycbe001-tpcontr(1) = 'D' and
* >> Início da exclusão: FORM FILL_DATE1_F30
not wa_zycbt089-rateio_cl is initial.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30
not wa_zycbt089-rateio_cl is initial
and not itab_zycbt221[] is initial.
* << Fim da inclusão
move itab_zycbt036[] to itab_doctos[].
clear itab_zycbt036.
refresh itab_zycbt036.
loop at itab_zycbt221.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = 'ZYCBT005'.
itab_zycbt036-cpochv = itab_vinc-nrinvoic.
itab_zycbt036-residuo = itab_zycbt221-saldo_ov..
itab_zycbt036-ct_lucro = itab_zycbt221-ct_lucro.
loop at itab_ace_aux where prctr = itab_zycbt221-ct_lucro.
...
...
v_saknr = itab_zycbe033-agkon.
perform unlock_razao
using
v_saknr
itab_zycbe033-bukrs.
endif.
v_tpcontabil = 'E_D_ACE'.
perform busca_dados_bi using itab_zycbe033-bukrs
v_tpcontabil.
if /pws/zycbe001-tpcontr(1) = 'D' and
* >> Início da exclusão: FORM FILL_DATE1_F30
not wa_zycbt089-rateio_cl is initial.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30
not wa_zycbt089-rateio_cl is initial
and not itab_zycbt221[] is initial.
* << Fim da inclusão
call function '/PWS/ZYCB_TRANSACAO_F_30_PR'
exporting
v_modo = v_modo_bi
v_vinc_tot = 'X'
tables
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
t_doctos = itab_doctos
...
...
itab_zycbe033-agkoa = 'D'.
itab_zycbe033-agkon = /pws/zycbe001-kunnr.
itab_zycbe033-agums = wa_zycbt011-agums.
itab_zycbe033-umskz = wa_zycbt011-agums.
itab_zycbe033-d_newko = itab_zycbe033-agkon.
itab_zycbe033-newbs = '19'.
endif.
itab_zycbe033-vbund = /pws/zycbe001-vbund.
perform busca_exit.
read table itab_zyglt100 with key zexit = 'VNC020'.
* >> Início da exclusão: FORM FILL_DATE1_F30
if sy-subrc eq 0.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30
if sy-subrc eq 0
and not itab_zyglt100-zexit_ativa is initial.
* << Fim da inclusão
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa).
endif.
append itab_zycbe033.
endif.
loop at itab_vinc
where flag = 'A' or flag = 'E'
or flag eq 'S'.
if itab_vinc-status eq 'I'.
exit.
...
...
importing
v_year = v_year
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.
* >> Início da exclusão: FORM FILL_DATE1_F30
select belnr budat wrbtr prctr
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30
select belnr
umskz
budat wrbtr prctr
* << Fim da inclusão
from bsad
into table itab_ace_aux
where bukrs = itab_vinc-bukrs and
kunnr = itab_zycbe033-c_newko and
augdt = itab_vinc-dtvincul and
augbl = itab_vinc-belnr and
* >> Início da exclusão: FORM FILL_DATE1_F30
gjahr = v_year and
belnr <> itab_vinc-belnr and
umskz <> space.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30
gjahr = v_year.
if sy-subrc = 0.
delete itab_ace_aux where not ( belnr ne itab_vinc-belnr and
umskz ne space ).
endif.
if sy-subrc ne 0 or itab_ace_aux[] is initial.
select belnr umskz budat wrbtr prctr
from bsad
into table itab_ace_aux
where bukrs = itab_vinc-bukrs and
kunnr = itab_zycbe033-c_newko and
augdt = itab_vinc-dtvincul and
augbl = itab_vinc-belnr_vinc and
gjahr = v_year.
endif.
if sy-subrc = 0.
delete itab_ace_aux where not ( belnr ne itab_vinc-belnr_vinc
and umskz ne space ).
* << Fim da inclusão
endif.
* >> Início da inclusão: FORM FILL_DATE1_F30
endif.
* << Fim da inclusão
endloop.
check sy-subrc eq 0.
if /pws/zycbe001-tpcontr(1) = 'D' and
* >> Início da exclusão: FORM FILL_DATE1_F30
not wa_zycbt089-rateio_cl is initial.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30
not wa_zycbt089-rateio_cl is initial
and not itab_zycbt221[] is initial.
* << Fim da inclusão
move itab_zycbt036[] to itab_doctos[].
clear itab_zycbt036.
refresh itab_zycbt036.
endif.
loop at itab_zycbt221.
clear itab_zycbt036.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT005'.
itab_zycbt036-cpochv = itab_zycbe033-cpochv.
itab_zycbt036-ct_lucro = itab_zycbt221-ct_lucro.
...
...
v_saknr
itab_zycbe033-bukrs.
else.
perform unlock_razao
using
v_saknr
itab_zycbe033-bukrs.
endif.
endif.
if /pws/zycbe001-tpcontr(1) = 'D' and
* >> Início da exclusão: FORM FILL_DATE1_F30
not wa_zycbt089-rateio_cl is initial .
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30
not wa_zycbt089-rateio_cl is initial
and not itab_zycbt221[] is initial.
* << Fim da inclusão
call function '/PWS/ZYCB_TRANSACAO_F_30_PR'
exporting
v_modo = v_modo_bi
tables
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
t_doctos = itab_doctos
exceptions
...
...
itab_zycbe033-c_fipos = /pws/zycbe005-fipos.
if not /pws/zycbe005-j_1bbranch is initial.
perform verifica_pais_filial using /pws/zycbe005-bukrs
/pws/zycbe005-j_1bbranch.
itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.
else.
perform local_negocio.
perform verifica_pais_filial using /pws/zycbe005-bukrs
wa_t001w-j_1bbranch.
itab_zycbe033-brnch = wa_t001w-j_1bbranch.
* >> Início da inclusão: FORM FILL_DATE1_F02_PRE
endif.
itab_zycbe033-vbund = /pws/zycbe001-vbund.
perform busca_exit.
read table itab_zyglt100 with key zexit = 'VNC024'.
if sy-subrc eq 0
and not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa).
* << Fim da inclusão
endif.
v_vldif = abs( itab_vinc-vldif ).
if itab_vinc-vldif lt 0.
perform busca_valor1 using v_cpochv
itab_vinc-dtvincul
itab_vinc-dtvencto.
elseif itab_vinc-vldif ge 0.
perform busca_valor2 using v_cpochv
itab_vinc-dtvincul
itab_vinc-dtvencto.
endif.
* >> Início da exclusão: FORM FILL_DATE1_F02_PRE
itab_zycbe033-vbund = /pws/zycbe001-vbund.
* << Fim da exclusão
v_tpcontabil = 'E_VIN'.
perform busca_dados_bi using itab_zycbe033-bukrs
v_tpcontabil.
loop at itab_zycbt034.
message i016 with itab_zycbt034-descricao.
endloop.
if itab_zycbt034 is initial.
call function '/PWS/ZYCB_TRANSACAO_F_02'
exporting
v_modo = v_modo_bi
...
...
endif.
itab_zycbe033-d_kostl = /pws/zycbe005-kostl.
itab_zycbe033-d_prctr = /pws/zycbe005-prctr.
itab_zycbe033-d_fipos = /pws/zycbe005-fipos.
itab_zycbe033-c_kostl = /pws/zycbe005-kostl.
itab_zycbe033-c_prctr = /pws/zycbe005-prctr.
itab_zycbe033-c_fipos = /pws/zycbe005-fipos.
itab_zycbe033-agkoa = 'S'.
itab_zycbe033-newbs = '40'.
itab_zycbe033-vbund = /pws/zycbe001-vbund.
* >> Início da inclusão: FORM FILL_DATE1_F30_PRE
perform busca_exit.
read table itab_zyglt100 with key zexit = 'VNC026'.
if sy-subrc eq 0
and not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa).
endif.
* << Fim da inclusão
append itab_zycbe033.
clear itab_zycbt036.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT005'.
itab_zycbt036-cpochv = v_cpochv.
itab_zycbt036-belnr = itab_zycbt002p_aux-belnr_f02.
clear v_year.
call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
exporting
v_bukrs = /pws/zycbe001-bukrs
...
...
/pws/zycbe005-j_1bbranch.
itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.
else.
perform local_negocio.
perform verifica_pais_filial using /pws/zycbe005-bukrs
wa_t001w-j_1bbranch.
itab_zycbe033-brnch = wa_t001w-j_1bbranch.
endif.
itab_zycbe033-newbs = '50'.
itab_zycbe033-vbund = /pws/zycbe001-vbund.
* >> Início da inclusão: FORM FILL_DATE1_F30_ACE
perform busca_exit.
read table itab_zyglt100 with key zexit = 'VNC025'.
if sy-subrc eq 0
and not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa).
endif.
* << Fim da inclusão
append itab_zycbe033.
loop at itab_zycbt069 where nrinvoic = wa_zycbt005-nrinvoic
and nrparcf = wa_zycbt005-nrparcf.
clear itab_zycbt036.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT005'.
itab_zycbt036-cpochv = v_cpochv.
itab_zycbt036-belnr = itab_zycbt069-belnr.
clear v_year.
call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F05
...
using v_flag_mod.
endif.
elseif /pws/zycbe001-tpcontr(1) = 'D'.
perform seleciona_zycbt030_c.
if wa_zycbt089-est_variacao is initial.
perform fill_date1_f30_dp tables itab_zycbt005_ant.
if v_erro_estorno is initial.
perform grava_liquidacao.
endif.
else.
* >> Início da exclusão: FORM CONTABILIZACAO
if wa_zycbt089-f_cont_vinc = 'F'
and wa_zycbt089-rateio_cl = ''.
* << Fim da exclusão
* >> Início da inclusão: FORM CONTABILIZACAO
if wa_zycbt089-f_cont_vinc = 'F' and
( wa_zycbt089-rateio_cl = '' or itab_zycbt221[] is initial ).
* << Fim da inclusão
perform exclui_dp using v_periodo_aberto.
if v_periodo_aberto = 'X'.
perform estorno_periodo_fechado tables itab_zycbt005_ant.
else.
perform estorno_periodo_aberto tables itab_zycbt005_ant.
endif.
if v_erro_estorno is initial.
perform grava_liquidacao.
loop at itab_zycbt005_ant.
delete from /pws/zycbt084
...
...
and nrparc = itab_zycbt005_ant-nrparc
and dtincl = itab_zycbt005_ant-dtincl
and nrinvoic = itab_zycbt005_ant-nrinvoic
and nrparcf = itab_zycbt005_ant-nrparcf
and gsberf = itab_zycbt005_ant-gsberf
and dtvincul = itab_zycbt005_ant-dtvincul
and dtvencto = itab_zycbt005_ant-dtvencto
and dtpagto = /pws/zycbe006-dtpagto.
endloop.
endif.
* >> Início da exclusão: FORM CONTABILIZACAO
elseif wa_zycbt089-f_cont_vinc = 'A'
and wa_zycbt089-rateio_cl = ''.
* << Fim da exclusão
* >> Início da inclusão: FORM CONTABILIZACAO
elseif wa_zycbt089-f_cont_vinc = 'A' and
( wa_zycbt089-rateio_cl = '' or itab_zycbt221[] is initial ).
* << Fim da inclusão
perform fill_date1_f02 tables itab_zycbt005_ant.
perform fill_date1_f30 tables itab_zycbt005_ant.
elseif wa_zycbt089-f_cont_vinc = 'F'
and wa_zycbt089-rateio_cl = 'X'.
perform rotina_rateio.
perform exclui_dp using v_periodo_aberto.
if v_periodo_aberto = 'X'.
perform estorno_periodo_fechado tables itab_zycbt005_ant.
else.
perform estorno_periodo_aberto tables itab_zycbt005_ant.
...
...
perform fill_date1_f30_desm using v_flag_mod.
endif.
endif.
elseif /pws/zycbe001-tpcontr(1) = 'D'.
perform seleciona_zycbt030_b.
perform seleciona_zycbt045.
if wa_zycbt089-est_variacao is initial.
perform fill_date1_f30_dp tables itab_zycbt005.
perform grava_liquidacao.
else.
* >> Início da exclusão: FORM CONTABILIZACAO
if wa_zycbt089-f_cont_vinc = 'F' and wa_zycbt089-rateio_cl = ''.
* << Fim da exclusão
* >> Início da inclusão: FORM CONTABILIZACAO
if wa_zycbt089-f_cont_vinc = 'F' and
( wa_zycbt089-rateio_cl = '' or itab_zycbt221[] is initial ).
* << Fim da inclusão
if v_periodo_aberto = 'X'.
perform estorno_periodo_fechado tables itab_zycbt005.
else.
perform estorno_periodo_aberto tables itab_zycbt005.
endif.
call function '/PWS/ZYCB_ENQUEUE_CONTAS'
exporting
i_bloqueia = ' '
tables
itab_zycbt224 = itab_zycbe224
...
...
if v_periodo_aberto = 'X'.
perform estorno_periodo_fechado tables itab_zycbt005.
else.
perform estorno_periodo_aberto tables itab_zycbt005.
endif.
perform grava_liquidacao.
move text-039 to v_flag_mod.
perform seleciona_paga_documento2 using v_flag_mod.
perform grava_liquidacao.
elseif wa_zycbt089-f_cont_vinc = 'A' and
* >> Início da exclusão: FORM CONTABILIZACAO
wa_zycbt089-rateio_cl = ''.
* << Fim da exclusão
* >> Início da inclusão: FORM CONTABILIZACAO
( wa_zycbt089-rateio_cl = '' or itab_zycbt221[] is initial ).
* << Fim da inclusão
perform fill_date1_f02 tables itab_zycbt005.
perform fill_date1_f30 tables itab_zycbt005.
move text-039 to v_flag_mod.
read table itab_zycbt005 with key status = 'A'.
if sy-subrc eq 0.
perform fill_date1_f30_desm using v_flag_mod .
endif.
elseif wa_zycbt089-f_cont_vinc = 'A' and
wa_zycbt089-rateio_cl = 'X'.
perform rotina_rateio.
...
...
sort itab_zycbt002p ascending by nrparc.
perform desmembramento_pre using v_flag_mod.
endif.
endif.
if /pws/zycbe001-tpcontr(1) = 'D'.
if wa_zycbt089-est_variacao is initial.
perform seleciona_zycbt030_b.
perform seleciona_zycbt045.
perform fill_date1_f30_b.
else.
* >> Início da exclusão: FORM CONTABILIZACAO
if wa_zycbt089-f_cont_vinc = 'F' and wa_zycbt089-rateio_cl = ''.
* << Fim da exclusão
* >> Início da inclusão: FORM CONTABILIZACAO
if wa_zycbt089-f_cont_vinc = 'F' and
( wa_zycbt089-rateio_cl = '' or itab_zycbt221[] is initial ).
* << Fim da inclusão
move text-038 to v_flag_mod.
perform seleciona_paga_documento using v_flag_mod.
perform grava_liquidacao.
modify /pws/zycbt231 from table itab_zycbt231.
elseif wa_zycbt089-f_cont_vinc = 'F'
and wa_zycbt089-rateio_cl = 'X'.
move text-038 to v_flag_mod.
perform seleciona_paga_documento2 using v_flag_mod.
perform grava_liquidacao.
* >> Início da exclusão: FORM CONTABILIZACAO
elseif wa_zycbt089-f_cont_vinc = 'A'
and wa_zycbt089-rateio_cl = ''.
* << Fim da exclusão
* >> Início da inclusão: FORM CONTABILIZACAO
elseif wa_zycbt089-f_cont_vinc = 'A' and
( wa_zycbt089-rateio_cl = '' or itab_zycbt221[] is initial ).
* << Fim da inclusão
if not wa_zycbt089-est_variacao is initial.
move text-038 to v_flag_mod.
read table itab_zycbt005 with key flag = 'I'.
if sy-subrc eq 0.
perform fill_date1_f30_desm using v_flag_mod .
endif.
endif.
elseif wa_zycbt089-f_cont_vinc = 'A'
and wa_zycbt089-rateio_cl = 'X'.
if not /pws/zycbt089-bx_cli_vinc is initial and
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F08
...
endif.
endif.
perform limpa_itabs_contabil.
endform.
form fill_date1_f30_desm using p_flag.
data: v_soma like /pws/zycbt005-vlvinc,
v_soma2 like /pws/zycbt005-vlvinc.
data: v_cpochv like /pws/zycbe033-cpochv,
v_kursf like /pws/zycbe033-kursf ,
v_vinc_total,
* >> Início da exclusão: FORM FILL_DATE1_F30_DESM
v_linha,
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30_DESM
v_linha(3) TYPE n,
v_linha_036(3) TYPE n,
v_index_036(3) TYPE n,
* << Fim da inclusão
v_contas(1) type c.
clear v_dtdocto.
clear v_f30_vinc.
perform get_parameters_001.
perform clear_date_batch.
if /pws/zycbe001-dtvincul is initial
or ( /pws/zycbe001-belnr = /pws/zycbe001-belnr2 and
not /pws/zycbe001-belnr2 is initial ).
case /pws/zycbe001-fdtlanc.
when 'D'.
...
...
itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.
else.
perform local_negocio.
perform verifica_pais_filial using /pws/zycbe005-bukrs
wa_t001w-j_1bbranch.
itab_zycbe033-brnch = wa_t001w-j_1bbranch.
endif.
itab_zycbe033-vbund = /pws/zycbe001-vbund.
perform busca_exit.
read table itab_zyglt100 with key zexit = 'VNC018'.
* >> Início da exclusão: FORM FILL_DATE1_F30_DESM
if sy-subrc eq 0.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30_DESM
IF sy-subrc EQ 0
AND NOT itab_zyglt100-zexit_ativa IS INITIAL.
* << Fim da inclusão
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa).
endif.
append itab_zycbe033.
if /pws/zycbe001-tpcontr(1) = 'D' and
* >> Início da exclusão: FORM FILL_DATE1_F30_DESM
not wa_zycbt089-rateio_cl is initial.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30_DESM
NOT wa_zycbt089-rateio_cl IS INITIAL
and not itab_zycbt221[] is initial.
* << Fim da inclusão
perform rotina_rateio.
endif.
* >> Início da inclusão: FORM FILL_DATE1_F30_DESM
CLEAR: v_index_036, v_linha.
* << Fim da inclusão
loop at itab_zycbt005 where flag = p_flag.
clear v_index.
itab_zycbt036-tcode = text-041.
itab_zycbt036-tabela = text-002.
concatenate /pws/zycbe005-nrseqc /pws/zycbe005-tpdesp
/pws/zycbe005-nrparc /pws/zycbe005-dtincl
/pws/zycbe005-nrinvoic /pws/zycbe005-gsber
/pws/zycbe005-nrparcf
/pws/zycbe005-dtvincul /pws/zycbe005-dtvencto
into v_cpochv.
itab_zycbt036-cpochv = v_cpochv.
if /pws/zycbe001-tpcontr(1) = 'D' and
* >> Início da exclusão: FORM FILL_DATE1_F30_DESM
not wa_zycbt089-rateio_cl is initial.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30_DESM
NOT wa_zycbt089-rateio_cl IS INITIAL
AND NOT itab_zycbt221[] IS INITIAL.
DESCRIBE TABLE itab_zycbt036 LINES v_linha_036.
IF v_index_036 IS INITIAL.
v_index_036 = 1.
ELSE.
v_index_036 = v_linha_036 + 1.
ENDIF.
* << Fim da inclusão
loop at itab_zycbt221.
v_index = v_index + 2.
itab_zycbt036-residuo =
itab_zycbt221-saldo_ov / v_total_contrato *
itab_zycbt005-vlvinc.
itab_zycbt036-ct_lucro = itab_zycbt221-ct_lucro.
concatenate
itab_zycbt005-gsberf itab_zycbt005-nrparcf
itab_zycbt005-nrinvoic
into itab_zycbt036-zuonr
...
...
append itab_zycbt036.
endif.
v_soma = v_soma + itab_zycbt036-residuo.
itab_zycbt036-residuo =
itab_zycbt221-saldo_ov - itab_zycbt036-residuo.
itab_zycbt036-zuonr = itab_zycbt005-nrinvoic.
if itab_zycbt036-residuo gt 0.
modify itab_zycbt036 index v_index.
if sy-subrc ne 0.
append itab_zycbt036.
* >> Início da inclusão: FORM FILL_DATE1_F30_DESM
IF v_linha IS INITIAL.
v_linha = 2.
ENDIF.
* << Fim da inclusão
endif.
endif.
itab_zycbt221-saldo_ov = itab_zycbt036-residuo.
modify itab_zycbt221.
v_soma2 = v_soma2 + itab_zycbt036-residuo.
endloop.
* >> Início da exclusão: FORM FILL_DATE1_F30_DESM
clear v_linha.
describe table itab_zycbt221 lines v_linha.
* << Fim da exclusão
v_total_contrato = v_total_contrato - itab_zycbt005-vlvinc.
* >> Início da exclusão: FORM FILL_DATE1_F30_DESM
if v_soma ne itab_zycbt005-vlvinc.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30_DESM
IF v_soma GT itab_zycbt005-vlvinc.
* << Fim da inclusão
v_soma = v_soma - itab_zycbt005-vlvinc .
* >> Início da exclusão: FORM FILL_DATE1_F30_DESM
read table itab_zycbt036 index 1.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30_DESM
READ TABLE itab_zycbt036 INDEX v_index_036.
* << Fim da inclusão
itab_zycbt036-residuo = itab_zycbt036-residuo - v_soma.
* >> Início da exclusão: FORM FILL_DATE1_F30_DESM
modify itab_zycbt036 index 1.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30_DESM
MODIFY itab_zycbt036 INDEX v_index_036.
ELSEIF v_soma LT itab_zycbt005-vlvinc.
v_soma = itab_zycbt005-vlvinc - v_soma.
READ TABLE itab_zycbt036 INDEX v_index_036.
itab_zycbt036-residuo = itab_zycbt036-residuo + v_soma.
MODIFY itab_zycbt036 INDEX v_index_036.
* << Fim da inclusão
endif.
if not itab_zycbt221[] is initial.
if v_soma2 ne v_total_contrato.
v_soma2 = v_soma2 - v_total_contrato .
read table itab_zycbt036 index v_linha.
itab_zycbt036-residuo = itab_zycbt036-residuo - v_soma2.
modify itab_zycbt036 index v_linha.
read table itab_zycbt221 index 1.
itab_zycbt221-saldo_ov = itab_zycbt221-saldo_ov - v_soma2.
modify itab_zycbt221 index 1.
...
...
perform verifica_contas changing v_contas.
v_tpcontabil = 'D_CON'.
perform busca_dados_bi using itab_zycbe033-bukrs
v_tpcontabil.
loop at itab_zycbt034.
message i016 with itab_zycbt034-descricao.
endloop.
if itab_zycbt034 is initial.
if v_vinc_total is initial or v_contas = 'S'.
if /pws/zycbe001-tpcontr(1) = 'D' and
* >> Início da exclusão: FORM FILL_DATE1_F30_DESM
not wa_zycbt089-rateio_cl is initial.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30_DESM
NOT wa_zycbt089-rateio_cl IS INITIAL
and not itab_zycbt221[] is initial.
* << Fim da inclusão
call function '/PWS/ZYCB_TRANSACAO_F_30_PR'
exporting
v_modo = v_modo_bi
v_vinc_tot = v_vinc_total
tables
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
exceptions
...
...
itab_zycbe033-c_kostl = /pws/zycbe005-kostl.
itab_zycbe033-c_prctr = /pws/zycbe005-prctr.
itab_zycbe033-c_fipos = /pws/zycbe005-fipos.
if /pws/zycbe001-tpcontr(1) eq 'D'.
move wa_zycbt011-agums to itab_zycbe033-umskz.
endif.
concatenate itab_zycbt005-gsberf itab_zycbt005-nrparcf
itab_zycbt005-nrinvoic
into itab_zycbe033-c_zuonr
separated by space.
* >> Início da exclusão: FORM FILL_DATE1_F30_VINC
if wa_zycbt089-rateio_cl = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30_VINC
IF wa_zycbt089-rateio_cl = 'X'
and not itab_zycbt221[] is initial.
* << Fim da inclusão
v_rateio = 'X'.
endif.
if not itab_zycbe033-belnr is initial and
not itab_zycbe033-dtdocto is initial.
clear v_zuonr.
perform determina_ano using itab_zycbe033-dtdocto
itab_zycbe033-bukrs
changing v_ano.
if itab_zycbe033-belnr = /pws/zycbe001-belnr or
itab_zycbe033-belnr = /pws/zycbe001-belnr2.
...
...
perform verifica_pais_filial using /pws/zycbe005-bukrs
/pws/zycbe005-j_1bbranch.
itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.
else.
perform local_negocio.
perform verifica_pais_filial using /pws/zycbe005-bukrs
wa_t001w-j_1bbranch.
itab_zycbe033-brnch = wa_t001w-j_1bbranch.
endif.
itab_zycbe033-vbund = /pws/zycbe001-vbund.
* >> Início da inclusão: FORM FILL_DATE1_F30_VINC
perform busca_exit.
read table itab_zyglt100 with key zexit = 'VNC027'.
if sy-subrc eq 0
and not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa).
endif.
* << Fim da inclusão
append itab_zycbe033.
clear v_vinc_total.
if /pws/zycbe001-slvinc is initial.
v_vinc_total = 'X'.
endif.
v_tpcontabil = 'VIN'.
perform busca_dados_bi using itab_zycbe033-bukrs
v_tpcontabil.
if itab_zycbt034[] is initial.
call function '/PWS/ZYCB_TRANSACAO_F_30_Q'
...
...
perform verifica_pais_filial using /pws/zycbe005-bukrs
/pws/zycbe005-j_1bbranch.
itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.
else.
perform local_negocio.
perform verifica_pais_filial using /pws/zycbe005-bukrs
wa_t001w-j_1bbranch.
itab_zycbe033-brnch = wa_t001w-j_1bbranch.
endif.
itab_zycbe033-vbund = /pws/zycbe001-vbund.
* >> Início da inclusão: FORM VINCULACAO
perform busca_exit.
read table itab_zyglt100 with key zexit = 'VNC028'.
if sy-subrc eq 0
and not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa).
endif.
* << Fim da inclusão
append itab_zycbe033.
if ( itab_zycbt002p-slvinc ge v_vlvinc )
or ( itab_zycbt002p-slvinc lt v_vlvinc
and itab_zycbt002p-belnr ne ' ' ).
v_acertof30 = 'X'.
itab_acertof30-belnr2_ant = itab_zycbt002p-belnr2.
endif.
v_tpcontabil = 'VIN'.
perform busca_dados_bi using itab_zycbe033-bukrs
v_tpcontabil.
...
...
perform verifica_pais_filial using /pws/zycbe005-bukrs
/pws/zycbe005-j_1bbranch.
itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.
else.
perform local_negocio.
perform verifica_pais_filial using /pws/zycbe005-bukrs
wa_t001w-j_1bbranch.
itab_zycbe033-brnch = wa_t001w-j_1bbranch.
endif.
itab_zycbe033-vbund = /pws/zycbe001-vbund.
* >> Início da inclusão: FORM DESMEMBRAMENTO
perform busca_exit.
read table itab_zyglt100 with key zexit = 'VNC022'.
if sy-subrc eq 0
and not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa).
endif.
* << Fim da inclusão
append itab_zycbe033.
v_slvinc = itab_zycbt002p-slvinc.
loop at itab_zycbt005
where flag = p_flag and
vlvinc ne 0.
if itab_zycbt002p-slvinc le 0 .
exit.
endif.
itab_zycbt036-tcode = text-041.
itab_zycbt036-tabela = text-002.
...
...
tables
account = itab_zyglt316
exceptions
key_not_found = 1
rules_not_found = 2
others = 3.
if /pws/zycbe001-tpcontr+0(1) = 'D'.
v_saknr_ace = itab_vinc-kunnr.
itab_zycbe033-umskz = wa_zycbt011-agums.
itab_zycbe033-koart = 'D'.
* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO
if wa_zycbt089-rateio_cl = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
IF wa_zycbt089-rateio_cl = 'X'
and not itab_zycbt221[] is initial.
* << Fim da inclusão
itab_zycbe033-newbs = '19'.
itab_zycbe033-newbs1 = '01'.
else.
itab_zycbe033-newbs = '01'.
endif.
else.
v_saknr_ace = itab_vinc-kunnr.
itab_zycbe033-newbs = '01'.
itab_zycbe033-koart = 'S'.
endif.
...
...
endif.
endif.
if itab_zycbe033-newbs1 is initial.
itab_zycbe033-newbs1 = itab_zycbt035-bschl.
itab_zycbe033-d_newko = itab_zycbt035-d_newko.
endif.
v_kunnr = itab_zycbe033-c_newko.
append itab_zycbt035.
endloop.
if /pws/zycbe001-tpcontr(1) = 'D' and
* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO
wa_zycbt089-rateio_cl = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
wa_zycbt089-rateio_cl = 'X'
and not itab_zycbt221[] is initial.
* << Fim da inclusão
move itab_zycbt036[] to itab_doctos[].
clear itab_zycbt036.
refresh itab_zycbt036.
loop at itab_zycbt221.
itab_zycbt036-tcode = 'F-02'.
itab_zycbt036-tabela = 'ZYCBT005'.
itab_zycbt036-cpochv = itab_vinc-nrinvoic.
itab_zycbt036-ct_lucro = itab_zycbt221-ct_lucro.
loop at itab_ace_aux where prctr = itab_zycbt221-ct_lucro.
itab_zycbt036-residuo = itab_ace_aux-wrbtr.
...
...
others = 4.
endif.
read table itab_zyglt100 with key zexit = 'VNC004' binary search.
if sy-subrc eq 0 and
not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa).
sy-subrc = v_retorno.
else.
if /pws/zycbe001-tpcontr(1) = 'D' and
* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO
wa_zycbt089-rateio_cl = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
wa_zycbt089-rateio_cl = 'X'
and not itab_zycbt221[] is initial.
* << Fim da inclusão
call function '/PWS/ZYCB_TRANSACAO_F_02J'
exporting
v_modo = v_modo_bi
tables
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
exceptions
campo_em_branco = 1
...
...
endif.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = 'ZYCBT005'.
itab_zycbt036-cpochv = itab_vinc-nrinvoic.
itab_zycbt036-dtdocto = v_datum.
itab_zycbt036-belnr = /pws/zycbe001-belnr2.
if not itab_zycbt036-belnr is initial.
append itab_zycbt036.
endif.
if /pws/zycbe001-tpcontr(1) = 'D' and
* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO
not wa_zycbt089-rateio_cl is initial.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
NOT wa_zycbt089-rateio_cl IS INITIAL
and not itab_zycbt221[] is initial.
* << Fim da inclusão
move itab_zycbt036[] to itab_doctos[].
clear itab_zycbt036.
refresh itab_zycbt036.
loop at itab_zycbt221.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = 'ZYCBT005'.
itab_zycbt036-cpochv = itab_vinc-nrinvoic.
itab_zycbt036-residuo = itab_zycbt221-saldo_ov..
itab_zycbt036-ct_lucro = itab_zycbt221-ct_lucro.
loop at itab_ace_aux where prctr = itab_zycbt221-ct_lucro.
...
...
if not p_agums is initial.
itab_zycbe033-newbs = '09'.
else.
itab_zycbe033-newbs = '01'.
endif.
elseif p_agkoa eq 'K'.
itab_zycbe033-newbs = '21'.
endif.
if /pws/zycbe001-tpcontr(1) = 'D' and
not wa_zycbt089-rateio_cl is initial and
* >> Início da exclusão: FORM CLEARING
not p_agums is initial.
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING
NOT p_agums IS INITIAL
and not itab_zycbt221[] is initial.
* << Fim da inclusão
itab_zycbe033-newbs = '19'.
itab_zycbe033-agums = p_agums.
endif.
itab_zycbe033-belnr = p_belnr_ref.
itab_zycbe033-dtdocto = p_budat_ref.
if /pws/zycbe001-tpcontr(1) ne 'D'.
itab_zycbe033-d_zuonr = itab_vinc-nrinvoic.
itab_zycbe033-c_zuonr = itab_vinc-nrinvoic.
endif.
if not p_j_1bbranch is initial.
...
...
if p_agkoa eq 'D'.
perform unlock_cliente
using p_conta itab_zycbe033-bukrs.
else.
perform unlock_razao
using p_conta itab_zycbe033-bukrs.
endif.
endif.
if /pws/zycbe001-tpcontr(1) = 'D' and
not wa_zycbt089-rateio_cl is initial and
* >> Início da exclusão: FORM CLEARING
not p_agums is initial.
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING
NOT p_agums IS INITIAL
and not itab_zycbt221[] is initial.
* << Fim da inclusão
call function '/PWS/ZYCB_TRANSACAO_F_30_PR'
exporting
v_modo = v_modo_bi
tables
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
t_doctos = itab_doctos
exceptions
...
...
itab_zycbt036-cpochv = itab_vinc-nrinvoic.
itab_zycbt036-dtdocto = itab_vinc-dtbelnr.
itab_zycbt036-belnr = itab_vinc-belnr.
if not itab_zycbt036-belnr is initial.
append itab_zycbt036.
endif.
if v_belnr is initial.
v_belnr = itab_vinc-belnr_vinc.
endif.
if /pws/zycbe001-tpcontr(1) = 'D' and
* >> Início da exclusão: FORM ESTORNO_PERIODO_ABERTO
not wa_zycbt089-rateio_cl is initial.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO
NOT wa_zycbt089-rateio_cl IS INITIAL
and not itab_zycbt221[] is initial.
* << Fim da inclusão
move itab_zycbt036[] to itab_doctos[].
clear itab_zycbt036.
refresh itab_zycbt036.
loop at itab_zycbt221.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = 'ZYCBT005'.
itab_zycbt036-cpochv = itab_vinc-nrinvoic.
itab_zycbt036-residuo = itab_zycbt221-saldo_ov..
itab_zycbt036-ct_lucro = itab_zycbt221-ct_lucro.
loop at itab_ace_aux where prctr = itab_zycbt221-ct_lucro.
...