Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Valores Mantidos no Exterior
Data/Hora da Publicação: 25/03/2009 00:00:00
Data/Hora Última Alteração: 18/02/2011 17:41:05
Descrição da Nota: VALORES MANTIDOS NO EXTERIOR E LIQUIDAÇÃO - COMISSÃO DE AGENTE
Sintoma
Não esta concluindo as contabilizações no programa de comissão de agente provisionada com mais de
um item.
Solução
Feito tratamento para contabilizar corretamente a comissão de agente quando tiver mais de 1 item no
processo de Valores Mantidos no Exteriro e Liquidação e quando o pagamento for parcial.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08239 Data: 25/03/2009 Hora: 14:46:19
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08239
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00009
Agrupamento : 00091
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
08195 - 00001 - 7.0 - 00008 - VALORES MANTIDOS NO EXTERIOR - BAIXA DE COMISSÃO DE AGENTE CG NA
----------------------------------------------------------------------------------------------------
VALORES MANTIDOS NO EXTERIOR E LIQUIDAÇÃO - COMISSÃO DE AGENTE
----------------------------------------------------------------------------------------------------
Palavras Chave:
VALORES MANTIDOS NO EXTERIOR E LIQUIDAÇÃO - COMISSÃO DE AGENTE
CONTA GRÁFICA
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB004F01
REPS /PWS/MZYCB004F02
REPS /PWS/MZYCB004TOP
REPS /PWS/MZYCB034F01
REPS /PWS/MZYCB034TOP
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F01
...
and liquid = 'X'.
if sy-tcode ne c_transacao_c.
perform estorna_diferenca_juros.
endif.
perform busca_liquidacoes.
perform provisiona_diferenca_juros.
endif.
endif.
endif.
if itab_zycbt226 is initial.
* >> Início da inclusão: FORM GRAVA_TABELAS
select *
from /pws/zycbt006
into corresponding fields of table itab_zycbt006_ca
where nrinvoic = itab_zycbt006-nrinvoic.
describe table itab_zycbt006_ca lines v_line.
if v_line < 2.
* << Fim da inclusão
if wa_zycbt007-liq_com_cg ne 'RP'.
perform estorna_comissao.
* >> Início da inclusão: FORM GRAVA_TABELAS
endif.
* << Fim da inclusão
endif.
endif.
perform atualiza_tabelas_transp2.
if wa_zycbt007-liq_com_cg ne 'RP'.
perform liquida_comissao_agente.
...
...
where parvw eq /pws/zycbt017-parvw. "#EC CI_NOFIRST
if sy-subrc ne 0.
if /pws/zycbt017-parvw eq 'AD' or
/pws/zycbt017-parvw eq 'DA'.
select single * from /pws/zycbt037
where parvw eq 'AD' or
parvw eq 'DA'. "#EC CI_NOFIRST
endif.
endif.
check /pws/zycbt037-codpad eq 'G' or /pws/zycbt037-codpad eq 'D'.
* >> Início da inclusão: FORM LIQUIDA_COMISSAO_AGENTE
select single * from /pws/zycet037
where bukrs eq itab_zycbt006-bukrs.
if sy-subrc ne 0.
select single * from /pws/zycet037
where bukrs eq space.
endif.
* << Fim da inclusão
if /pws/zycet037-comis_provisao is initial or
/pws/zycet037-comis_provisao eq 0.
select *
into table itab_zycet010
from /pws/zycet010
where nrseq eq itab_zycbt006-nrinvoic
and ( dtpagto is null
or dtpagto eq ' '
or dtpagto eq '00000000' ).
loop at itab_zycet010.
...
...
endloop.
else.
select *
into table itab_zycet013
from /pws/zycet013
where nrseq eq itab_zycbt006-nrinvoic
and gsber eq itab_zycbt006-gsberf
and ( dtpagto is null
or dtpagto eq ' '
or dtpagto eq '00000000' ).
* >> Início da exclusão: FORM LIQUIDA_COMISSAO_AGENTE
loop at itab_zycet013.
* << Fim da exclusão
* >> Início da inclusão: FORM LIQUIDA_COMISSAO_AGENTE
clear : v_vlme.
loop at itab_zycet013 .
if sy-tabix = 1.
v_vlme = v_vlme + itab_zycet013-vlme .
v_belnr_cg = itab_zycet013-belnr.
else.
if itab_zycet013-belnr = v_belnr_cg .
v_vlme = v_vlme + itab_zycet013-vlme .
endif.
endif.
endloop.
read table itab_zycet013 index 1.
* << Fim da inclusão
if not itab_zycet013-belnr is initial.
move: itab_zycet013-nrseq to itab_selreg-nrchave,
itab_zycbt006-nrseqc to itab_selreg-docto,
* >> Início da exclusão: FORM LIQUIDA_COMISSAO_AGENTE
itab_zycet013-vlme to itab_selreg-vlme,
* << Fim da exclusão
* >> Início da inclusão: FORM LIQUIDA_COMISSAO_AGENTE
v_vlme to itab_selreg-vlme,
* << Fim da inclusão
itab_zycet013-lifnr to itab_selreg-lifnr,
...
...
if wa_zycbt007-liq_trans eq 'R'.
perform liquida_comis_trans.
else.
perform fill_date_f30_comissao.
endif.
else.
move: itab_zycet013-nrseq to itab_erro-vbeln,
text-100 to itab_erro-msg.
append itab_erro.
endif.
* >> Início da exclusão: FORM LIQUIDA_COMISSAO_AGENTE
endloop.
* << Fim da exclusão
endif.
endloop.
if not itab_contabil[] is initial.
perform executa_exit_p using 'LIQ019'.
export itab_contabil to memory id '040'.
export text-060 to memory id '050'.
if v_vinculacao is initial.
submit /pws/zycbr040 and return.
refresh itab_contabil.
endif.
...
...
else.
itab_zycet010-belnr = itab_zycbt032-belnr.
itab_zycet010-status = space.
itab_zycet010-dtpagto = '00000000'.
modify itab_zycet010 transporting belnr status dtpagto
where nrseq = itab_zycet010-nrseq
and lifnr = itab_zycet010-lifnr
and dtvencto = itab_zycet010-dtvencto.
endif.
modify /pws/zycet010 from itab_zycet010.
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
commit work.
* << Fim da inclusão
else.
if itab_zycbt006-v_status <> 'E'.
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
loop at itab_zycet013 where nrseq eq itab_zycbt006-nrinvoic .
* << Fim da inclusão
itab_zycet013-status = 'C'.
itab_zycet013-belnr_c = itab_zycbt032-belnr.
itab_zycet013-dtpagto = v_dtpagto.
modify itab_zycet013 transporting status
belnr_c
dtpagto
where nrseq = itab_zycet013-nrseq
and lifnr = itab_zycet013-lifnr
and gsber = itab_zycet013-gsber
and prctr = itab_zycet013-prctr.
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
endloop.
* << Fim da inclusão
else.
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
loop at itab_zycet013 where nrseq eq itab_zycbt006-nrinvoic .
* << Fim da inclusão
itab_zycet013-belnr = itab_zycbt032-belnr.
itab_zycet013-status = space.
itab_zycet013-dtpagto = '00000000'.
modify itab_zycet013 transporting status
belnr
dtpagto
where nrseq = itab_zycet013-nrseq
and lifnr = itab_zycet013-lifnr
and gsber = itab_zycet013-gsber
and prctr = itab_zycet013-prctr.
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
endloop.
* << Fim da inclusão
endif.
modify /pws/zycet013 from itab_zycet013.
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
commit work.
* << Fim da inclusão
endif.
move itab_zycbt032 to itab_zycbt032a.
move itab_zycbe033-budat to itab_zycbt032a-budat.
append itab_zycbt032a.
v_status_f30 = 'S'.
...
...
dtlanc
status
dtpagto
belnr51
belnr_p
where nrseq = itab_zycet010-nrseq and
lifnr = itab_zycet010-lifnr and
dtvencto = itab_zycet010-dtvencto.
endif.
modify /pws/zycet010 from itab_zycet010.
* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE
commit work.
* << Fim da inclusão
else.
if itab_zycbt006-v_status <> 'E'.
* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE
loop at itab_zycet013 where nrseq eq itab_zycbt006-nrinvoic .
* << Fim da inclusão
itab_zycet013-belnr_cl = itab_zycbt032-belnr.
modify itab_zycet013 transporting belnr_cl
where nrseq = itab_zycet013-nrseq
and gsber = itab_zycet013-gsber
and lifnr = itab_zycet013-lifnr
and prctr = itab_zycet013-prctr.
* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE
modify /pws/zycet013 from itab_zycet013 .
commit work.
endloop.
* << Fim da inclusão
else.
* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE
loop at itab_zycet013 where nrseq eq itab_zycbt006-nrinvoic .
* << Fim da inclusão
itab_zycet013-belnr = itab_zycbt032-belnr.
itab_zycet013-dtlanc = itab_zycbe033-budat.
itab_zycet013-status = space.
itab_zycet013-dtpagto = '00000000'.
itab_zycet013-belnr_cl = space.
itab_zycet013-belnr_c = space.
modify itab_zycet013 transporting belnr
dtlanc
status
dtpagto
belnr_cl
belnr_c
where nrseq = itab_zycet013-nrseq
and gsber = itab_zycet013-gsber
and lifnr = itab_zycet013-lifnr
and prctr = itab_zycet013-prctr.
* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE
modify /pws/zycet013 from itab_zycet013 .
commit work.
endloop.
* << Fim da inclusão
endif.
* >> Início da exclusão: FORM EXECUTA_CLEARING_AGENTE
modify /pws/zycet013 from itab_zycet013.
* << Fim da exclusão
endif.
if itab_zycbt006-v_status <> 'E'.
itab_zycbt006-vlcomis = /pws/zycbt017-vlcomis.
else.
itab_zycbt006-vlcomis = space.
endif.
...
...
where parvw eq /pws/zycbt017-parvw. "#EC CI_NOFIRST
if sy-subrc ne 0.
if /pws/zycbt017-parvw eq 'AD' or
/pws/zycbt017-parvw eq 'DA'.
select single * from /pws/zycbt037
where parvw eq 'AD' or
parvw eq 'DA'. "#EC CI_NOFIRST
endif.
endif.
check /pws/zycbt037-codpad eq 'G' or /pws/zycbt037-codpad eq 'D'.
* >> Início da inclusão: FORM ESTORNA_COMISSAO
select single * from /pws/zycet037
where bukrs eq itab_zycbt006-bukrs.
if sy-subrc ne 0.
select single * from /pws/zycet037
where bukrs eq space.
endif.
* << Fim da inclusão
if /pws/zycet037-comis_provisao is initial or
/pws/zycet037-comis_provisao eq 0.
select *
into table itab_zycet010
from /pws/zycet010
where nrseq eq itab_zycbt006-nrinvoic
and ( dtpagto ne ' ' or
dtpagto ne '00000000' ).
loop at itab_zycet010.
move: itab_zycet010-nrseq to itab_selreg-nrchave,
itab_zycbt006-nrseqc to itab_selreg-docto,
itab_zycet010-dtvencto to itab_selreg-dtvencto,
itab_zycet010-vlcomis to itab_selreg-vlme,
itab_zycet010-lifnr to itab_selreg-lifnr,
/pws/zycbt037-codpad to itab_selreg-codp.
* >> Início da inclusão: FORM ESTORNA_COMISSAO
v_vlme = itab_zycet010-vlcomis.
* << Fim da inclusão
append itab_selreg.
perform fill_date6_f22_comissao.
endloop.
else.
select *
into table itab_zycet013
from /pws/zycet013
where nrseq eq itab_zycbt006-nrinvoic
and gsber eq itab_zycbt006-gsberf
and ( dtpagto ne ' ' or
dtpagto ne '00000000' ).
* >> Início da exclusão: FORM ESTORNA_COMISSAO
loop at itab_zycet013.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_COMISSAO
clear : v_vlme.
loop at itab_zycet013 .
if sy-tabix = 1.
v_vlme = v_vlme + itab_zycet013-vlme .
v_belnr = itab_zycet013-belnr.
else.
if itab_zycet013-belnr = v_belnr.
v_vlme = v_vlme + itab_zycet013-vlme .
endif.
endif.
endloop.
read table itab_zycet013 index 1.
* << Fim da inclusão
move: itab_zycet013-nrseq to itab_selreg-nrchave,
itab_zycbt006-nrseqc to itab_selreg-docto,
* >> Início da exclusão: FORM ESTORNA_COMISSAO
itab_zycet013-vlme to itab_selreg-vlme,
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_COMISSAO
v_vlme to itab_selreg-vlme,
* << Fim da inclusão
itab_zycet013-lifnr to itab_selreg-lifnr,
/pws/zycbt037-codpad to itab_selreg-codp.
append itab_selreg.
perform fill_date6_f22_comissao.
* >> Início da exclusão: FORM ESTORNA_COMISSAO
endloop.
* << Fim da exclusão
endif.
endloop.
endform.
form fill_date6_f22_comissao.
clear: itab_zycbt032a, itab_zycbt036.
refresh: itab_zycbt032a, itab_zycbt036.
perform get_parameters_comissao.
perform verifica_rateio1.
if wa_zycbt007-comis = 'C'.
read table itab_zycbt012a with key chlanc = 'C'.
...
...
t_zycbt032 = itab_zycbt032
exceptions
campo_em_branco = 1
others = 2.
if sy-subrc = 0.
read table itab_zycbt032 with key tcode = 'F-22'
tabela = '/PWS/ZYCBT006'
cpochv = v_cpochv
tpmsg = 'S'.
if sy-subrc = 0.
* >> Início da inclusão: FORM FILL_DATE6_F22_COMISSAO
if /pws/zycet037-comis_provisao is initial or
/pws/zycet037-comis_provisao eq 0.
itab_zycet010-belnr = itab_zycbt032-belnr.
itab_zycet010-status = space.
itab_zycet010-dtpagto = '00000000'.
modify itab_zycet010 transporting belnr status dtpagto
where nrseq = itab_zycet010-nrseq
and lifnr = itab_zycet010-lifnr
and dtvencto = itab_zycet010-dtvencto.
modify /pws/zycet010 from itab_zycet010.
else.
loop at itab_zycet013 where nrseq eq itab_zycbt006-nrinvoic .
itab_zycet013-belnr = itab_zycbt032-belnr.
itab_zycet013-status = space.
itab_zycet013-dtpagto = '00000000'.
modify itab_zycet013 transporting status
belnr
dtpagto
where nrseq = itab_zycet013-nrseq
and lifnr = itab_zycet013-lifnr
and gsber = itab_zycet013-gsber
and prctr = itab_zycet013-prctr.
modify /pws/zycet013 from itab_zycet013.
endloop.
endif.
* << Fim da inclusão
move itab_zycbt032 to itab_zycbt032a.
itab_zycbt032a-budat = itab_zycbe033-budat.
append itab_zycbt032a.
itab_contabil-nrinvoic = itab_zycbt030-nrinvoic.
itab_contabil-nrparcf = itab_zycbt030-nrparcf.
itab_contabil-vbeln = itab_zycbt030-vbeln.
itab_contabil-gsberf = itab_zycbt030-gsberf.
itab_contabil-docto = itab_zycbt032-belnr.
itab_contabil-dtdocto = itab_zycbe033-budat.
itab_contabil-bukrs = itab_zycbt006-bukrs.
...
...
periodo_fechado = 2
others = 3.
if sy-subrc = 0.
read table itab_zycbt032 with key tcode = 'F-30'
tabela = '/PWS/ZYCBT006'
cpochv = v_cpochv
tpmsg = 'S'.
if sy-subrc = 0.
itab_zycbt030-belnr6 = itab_zycbt032-belnr.
itab_zycbt030-budat = itab_zycbe033-budat.
* >> Início da exclusão: FORM EXECUTA_CLEARING_CLIENTE
modify itab_zycbt030 transporting belnr6 budat
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_CLEARING_CLIENTE
itab_zycbt030-vlslliq = itab_zycbt030-vlslliq + v_vlme .
modify itab_zycbt030 transporting belnr6 budat vlslliq
* << Fim da inclusão
where nrinvoic = itab_aux-nrinvoic and
nrparcf = itab_aux-nrparcf and
vbeln = itab_aux-vbeln and
gsberf = itab_aux-gsberf.
modify itab_zycbt030 transporting belnr6 budat
where belnr6 = v_belnr6.
* >> Início da inclusão: FORM EXECUTA_CLEARING_CLIENTE
modify /pws/zycbt030 from table itab_zycbt030.
commit work.
if /pws/zycet037-comis_provisao is initial or
/pws/zycet037-comis_provisao eq 0.
clear :itab_zycet010-belnr_p .
modify itab_zycet010 transporting belnr_p
where nrseq = itab_zycet010-nrseq
and lifnr = itab_zycet010-lifnr
and dtvencto = itab_zycet010-dtvencto.
modify /pws/zycet010 from itab_zycet010.
commit work.
else.
loop at itab_zycet013 where nrseq eq itab_zycbt006-nrinvoic.
clear: itab_zycet013-belnr_c ,
itab_zycet013-belnr_cl .
modify itab_zycet013 transporting belnr_c
belnr_cl
where nrseq = itab_zycet013-nrseq
and lifnr = itab_zycet013-lifnr
and gsber = itab_zycet013-gsber
and prctr = itab_zycet013-prctr.
modify /pws/zycet013 from itab_zycet013.
endloop.
endif.
* << Fim da inclusão
itab_aux-belnr6 = itab_zycbt032-belnr.
itab_aux-budat = itab_zycbe033-budat.
modify itab_aux transporting belnr6
where belnr6 = v_belnr6.
itab_contabil-nrinvoic = itab_aux-nrinvoic.
itab_contabil-nrparcf = itab_aux-nrparcf.
itab_contabil-vbeln = itab_aux-vbeln.
itab_contabil-gsberf = itab_aux-gsberf.
itab_contabil-docto = itab_zycbt032-belnr.
itab_contabil-dtdocto = itab_zycbe033-budat.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F02
...
move 'X' to /pws/zycbt006-tpfatura_or.
modify /pws/zycbt006.
endif.
endif.
endloop.
if v_vinculacao is initial.
update /pws/zycbt001
set slpagar = slpagar - v_slpagar001
where nrseqc eq itab_zycbt006-nrseqc.
endif.
* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2
if /pws/zycbt017-parvw ne 'CG' or
/pws/zycbt017-parvw ne 'AD' or
/pws/zycbt017-parvw ne 'DA'.
* << Fim da inclusão
modify /pws/zycbt030 from table itab_zycbt030.
* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2
endif.
* << Fim da inclusão
modify /pws/zycbt209 from table itab_zycbt209.
modify /pws/zycbt219 from table itab_zycbt219.
if /pws/zycbe001-tpcontr(1) ca 'CE'
or ( /pws/zycbe001-tpcontr(1) eq 'D' and
/pws/zycbt089-f_cont_vinc eq 'F' ).
update /pws/zycbt001 set: belnr2 = /pws/zycbe001-belnr2
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004TOP
...
v_bconegoc LIKE lfa1-name1,
v_bcofinan LIKE lfa1-name1.
DATA: wa_log TYPE char4000,
wa_zycbt006_log LIKE /pws/zycbt006,
wa_zycet048 LIKE /pws/zycet048.
DATA: itab_zyglt100
TYPE STANDARD TABLE OF /pws/zyglt100
WITH HEADER LINE,
v_repid LIKE sy-repid,
v_campo(35) TYPE c.
* >> Início da inclusão:
data: begin of itab_zycbt006_CA occurs 0.
include structure /pws/zycbt006.
data: end of itab_zycbt006_CA.
data: v_line type n.
data: v_vlme type /pws/zycet013-vlme,
v_belnr_cg type /pws/zycet013-belnr.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034F01
...
changing v_belnr_est_f02
v_dtlancto_est_f02.
perform limpa_dados_bi.
perform doc_desm_liq_and.
perform limpa_dados_bi.
perform doc_desm_cliente.
perform limpa_dados_bi.
perform doc_compensacao.
if wa_zycbt007-liq_com_cg ne 'RP'.
perform limpa_dados_bi.
* >> Início da exclusão: FORM CONTABILIZACOES
call function '/PWS/ZYCB_ENQUEUE_CONTAS'
exporting
i_bloqueia = ' '
tables
itab_zycbt224 = itab_zycbe224
exceptions
zycbe224_null = 1
erro_bloqueio = 2
others = 3.
if sy-subrc <> 0.
endif.
* << Fim da exclusão
perform liquida_comissao_agente.
endif.
endif.
if <fs_op>-tipo_op = 'P'.
perform limpa_dados_bi.
perform doc_op using ' '
changing v_belnr_est_f02
v_dtlancto_est_f02.
endif.
perform bloqueia_contas using ' '
...
...
loop at itab_zycbt034 into wa_zycbt034.
perform message_store
using '/PWS/ZYCBM'
'E'
'Campo não está preenchido.'(m13)
wa_zycbt034-campo
'-'
wa_zycbt034-descricao
'061'.
endloop.
* >> Início da exclusão: FORM DOC_COMPENSACAO
endif.
call function '/PWS/ZYCB_ENQUEUE_CONTAS'
exporting
i_bloqueia = 'X'
tables
itab_zycbt224 = itab_zycbe224
exceptions
zycbe224_null = 1
erro_bloqueio = 2
others = 3.
if sy-subrc <> 0.
exit.
* << Fim da exclusão
endif.
endif.
endform.
form preenche_contas_bloqueio using
p_mandt type mandt
p_bukrs type bukrs
p_tpconta type koart
p_conta type hkont
p_modo type enqmode.
data: wa_zycbe224 type t_s_zycbe224.
...
...
else.
clear v_msg_previsto.
endif.
endif.
endform.
form contabilizacoes_estorno.
data: v_excecao(1) type c.
data:
v_cpochv type /pws/zycbe033-cpochv,
wa_zycbe033 type t_s_zycbe033.
* >> Início da inclusão: FORM CONTABILIZACOES_ESTORNO
data: begin of itab_zycbt226_aux occurs 0.
include structure /pws/zycbt226.
data: end of itab_zycbt226_aux.
data: v_line type n.
* << Fim da inclusão
clear: v_belnr_est_f02,
v_dtlancto_est_f02.
if <fs_op>-tipo_op eq 'E' and
<fs_op>-status eq 'I' and
not <fs_op>-belnr_op is initial and
<fs_op>-belnr_desmliqand is initial and
<fs_op>-belnr_desm_cli is initial and
<fs_op>-belnr_compens is initial.
concatenate <fs_op>-bukrs
<fs_op>-nrseq
...
...
v_dtlancto_est_f02.
perform limpa_dados_bi.
perform estorno using 'OC'
v_belnr_est_f02
v_dtlancto_est_f02.
perform limpa_dados_bi.
perform estorno using 'OM'
v_belnr_est_f02
v_dtlancto_est_f02.
endif.
* >> Início da inclusão: FORM CONTABILIZACOES_ESTORNO
select *
from /PWS/ZYCBT226
into corresponding fields of table itab_zycbt226_aux
where nrinvoic = wa_zycbt226-nrinvoic.
describe table itab_zycbt226_aux lines v_line.
if v_line < 2.
* << Fim da inclusão
if wa_zycbt007-liq_com_cg ne 'RP'.
perform estorna_comissao.
endif.
* >> Início da inclusão: FORM CONTABILIZACOES_ESTORNO
endif.
* << Fim da inclusão
perform bloqueia_contas using ' '
changing v_excecao.
perform apaga_registros.
endform.
...
...
using '/PWS/ZYCBM'
'E'
'Campo não está preenchido.'(m13)
wa_zycbt034-campo
'-'
wa_zycbt034-descricao
'061'.
endloop.
perform estornar_contabilizacoes
changing itab_contabilizacoes.
* >> Início da exclusão: FORM ESTORNO
endif.
call function '/PWS/ZYCB_ENQUEUE_CONTAS'
exporting
i_bloqueia = 'X'
tables
itab_zycbt224 = itab_zycbe224
exceptions
zycbe224_null = 1
erro_bloqueio = 2
others = 3.
if sy-subrc <> 0.
exit.
* << Fim da exclusão
endif.
endif.
endform.
form volta_saldo using value(p_processo) type c
value(p_zycbt032) type t_s_zycbt032
value(p_zycbe033) type t_s_zycbe033
p_zycbt225 type t_s_zycbt225
p_zycbt030 type t_s_zycbt030
p_zycbt209 type t_s_zycbt209
value(p_tot_liqand) type wrbtr.
...
...
where bukrs = wa_zycbt209-bukrs
and nrinvoic = wa_zycbt209-nrinvoic
and belnr = wa_zycbt209-belnr
and dtincl = wa_zycbt209-dtincl
and nrparcf = wa_zycbt209-nrparcf
and gsberf = wa_zycbt209-gsberf.
endloop.
endif.
endform.
form liquida_comissao_agente.
* >> Início da inclusão: FORM LIQUIDA_COMISSAO_AGENTE
check v_desm_cli = 'X'.
* << Fim da inclusão
clear: itab_selreg,
itab_zycet010,
itab_zycet013.
refresh: itab_zycet010,
itab_zycet013.
select single * from /pws/zycbt017
into itab_zycbt017_cg
where nrinvoic eq <fs_op>-nrinvoic
and nrparcf eq <fs_op>-nrparcf.
select single * from /pws/zycbt037
...
...
endloop.
else.
select *
into table itab_zycet013
from /pws/zycet013
where nrseq eq <fs_op>-nrinvoic
and gsber eq <fs_op>-gsberf
and ( dtpagto is null
or dtpagto eq ' '
or dtpagto eq '00000000' ).
* >> Início da exclusão: FORM LIQUIDA_COMISSAO_AGENTE
loop at itab_zycet013.
* << Fim da exclusão
* >> Início da inclusão: FORM LIQUIDA_COMISSAO_AGENTE
clear : v_vlme.
loop at itab_zycet013 .
if sy-tabix = 1.
v_vlme = v_vlme + itab_zycet013-vlme .
v_belnr = itab_zycet013-belnr.
else.
if itab_zycet013-belnr = v_belnr.
v_vlme = v_vlme + itab_zycet013-vlme .
endif.
endif.
endloop.
read table itab_zycet013 index 1.
* << Fim da inclusão
if not itab_zycet013-belnr is initial.
move: itab_zycet013-nrseq to itab_selreg-nrchave,
<fs_op>-nrseq to itab_selreg-docto,
itab_zycet013-dtlanc to itab_selreg-dtlanc,
* >> Início da exclusão: FORM LIQUIDA_COMISSAO_AGENTE
itab_zycet013-vlme to itab_selreg-vlme,
* << Fim da exclusão
* >> Início da inclusão: FORM LIQUIDA_COMISSAO_AGENTE
v_vlme to itab_selreg-vlme,
* << Fim da inclusão
itab_zycet013-lifnr to itab_selreg-lifnr,
itab_zycbt037_cg-codpad to itab_selreg-codp.
append itab_selreg.
if wa_zycbt007-liq_trans eq 'R'.
perform liquida_comis_trans .
else.
perform fill_date_f30_comissao.
endif.
else.
endif.
* >> Início da exclusão: FORM LIQUIDA_COMISSAO_AGENTE
endloop.
* << Fim da exclusão
endif.
endform.
form liquida_comis_trans .
data: v_chave(50),
v_erro_f28(1),
v_aux,
v_status_f30(1) value 'E',
v_budat type bkpf-budat.
perform clear_date_batch.
clear: itab_zycbt032a, itab_zycbt036.
...
...
dtpagto
belnr51
belnr_p
where nrseq = itab_zycet010-nrseq and
lifnr = itab_zycet010-lifnr and
dtvencto = itab_zycet010-dtvencto.
endif.
modify /pws/zycet010 from itab_zycet010.
else.
if <fs_op>-status <> 'E'.
* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE
loop at itab_zycet013 where nrseq eq <fs_op>-nrinvoic .
* << Fim da inclusão
itab_zycet013-belnr_cl = wa_zycbt032-belnr.
modify itab_zycet013 transporting belnr_cl
where nrseq = itab_zycet013-nrseq
and gsber = itab_zycet013-gsber
and lifnr = itab_zycet013-lifnr
and prctr = itab_zycet013-prctr.
* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE
modify /pws/zycet013 from itab_zycet013 .
commit work.
endloop.
* << Fim da inclusão
else.
* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE
loop at itab_zycet013 where nrseq eq <fs_op>-nrinvoic .
* << Fim da inclusão
itab_zycet013-belnr = wa_zycbt032-belnr.
itab_zycet013-dtlanc = wa_zycbe033-budat.
itab_zycet013-status = space.
itab_zycet013-dtpagto = '00000000'.
itab_zycet013-belnr_cl = space.
itab_zycet013-belnr_c = space.
modify itab_zycet013 transporting belnr
dtlanc
status
dtpagto
belnr_cl
belnr_c
where nrseq = itab_zycet013-nrseq
and gsber = itab_zycet013-gsber
and lifnr = itab_zycet013-lifnr
and prctr = itab_zycet013-prctr.
* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE
modify /pws/zycet013 from itab_zycet013 .
commit work.
endloop.
* << Fim da inclusão
endif.
* >> Início da exclusão: FORM EXECUTA_CLEARING_AGENTE
modify /pws/zycet013 from itab_zycet013.
* << Fim da exclusão
endif.
update /pws/zycbt226 set status = <fs_op>-status
where nrseq = <fs_op>-nrseq
and nrinvoic = <fs_op>-nrinvoic
and nrparcf = <fs_op>-nrparcf
and gsberf = <fs_op>-gsberf.
...
...
clear v_erro_f28.
if sy-subrc = 0.
clear v_aux.
loop at itab_aux.
concatenate itab_aux-nrinvoic
itab_aux-nrparcf
itab_aux-vbeln itab_aux-gsberf
into v_chave.
read table itab_zycbt032 into wa_zycbt032
with key tcode = v_trans
* >> Início da exclusão: FORM FILL_DATE_F30_COMISSAO
tabela = '/PWS/ZYCBT226'
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
tabela = '/PWS/ZYCET010'
* << Fim da inclusão
cpochv = v_chave
tpmsg = 'S'.
if sy-subrc = 0.
wa_zycbt030-belnr6 = wa_zycbt032-belnr.
read table itab_zycbe033 into wa_zycbe033
with key cpochv = v_chave.
wa_zycbt030-budat = wa_zycbt030-budat.
clear v_vlslliq.
v_vlslliq = wa_zycbt030-vlslliq - itab_zycbt017_cg-vlcomis.
wa_zycbt030-vlslliq = v_vlslliq.
...
...
else.
itab_zycet010-belnr = wa_zycbt032-belnr.
itab_zycet010-status = space.
itab_zycet010-dtpagto = '00000000'.
modify itab_zycet010 transporting belnr status dtpagto
where nrseq = itab_zycet010-nrseq
and lifnr = itab_zycet010-lifnr
and dtvencto = itab_zycet010-dtvencto.
endif.
modify /pws/zycet010 from itab_zycet010.
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
commit work.
* << Fim da inclusão
else.
if <fs_op>-status <> 'E'.
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
loop at itab_zycet013 where nrseq eq <fs_op>-nrinvoic .
* << Fim da inclusão
itab_zycet013-status = 'C'.
itab_zycet013-belnr_c = wa_zycbt032-belnr.
itab_zycet013-dtpagto = v_dtpagto.
modify itab_zycet013 transporting status
belnr_c
dtpagto
where nrseq = itab_zycet013-nrseq
and lifnr = itab_zycet013-lifnr
and gsber = itab_zycet013-gsber
and prctr = itab_zycet013-prctr.
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
endloop.
* << Fim da inclusão
else.
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
loop at itab_zycet013 where nrseq eq <fs_op>-nrinvoic .
* << Fim da inclusão
itab_zycet013-belnr = wa_zycbt032-belnr.
itab_zycet013-status = space.
itab_zycet013-dtpagto = '00000000'.
modify itab_zycet013 transporting status
belnr
dtpagto
where nrseq = itab_zycet013-nrseq
and lifnr = itab_zycet013-lifnr
and gsber = itab_zycet013-gsber
and prctr = itab_zycet013-prctr.
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
endloop.
* << Fim da inclusão
endif.
modify /pws/zycet013 from itab_zycet013.
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
commit work.
* << Fim da inclusão
endif.
move wa_zycbt032 to itab_zycbt032a.
move wa_zycbe033-budat to itab_zycbt032a-budat.
append itab_zycbt032a.
v_status_f30 = 'S'.
...
...
'E'
'Campo não está preenchido.'(m13)
wa_zycbt034-campo
'-'
wa_zycbt034-descricao
'061'.
endloop.
else.
loop at itab_zycbt032 into wa_zycbt032
where tcode = 'F-30'
* >> Início da exclusão: FORM FILL_DATE_F30_COMISSAO
and tabela = '/PWS/ZYCBT226'
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
and tabela = '/PWS/ZYCET010'
* << Fim da inclusão
and cpochv = wa_zycbe033-cpochv
and tpmsg = 'E'.
perform message_store
using wa_zycbt032-msgid
wa_zycbt032-tpmsg
wa_zycbt032-msgv1
wa_zycbt032-msgv2
wa_zycbt032-msgv3
wa_zycbt032-msgv4
wa_zycbt032-nrmsg.
endloop.
* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO
perform estorna_comissao.
* << Fim da inclusão
endif.
endif.
endform.
form verifica_pais_filial using p_bukrs
p_brnch.
select single adrnr from j_1bbranch into j_1bbranch-adrnr
where bukrs = p_bukrs
and branch = p_brnch.
if sy-subrc = 0.
select single country from adrc into adrc-country
...
...
clear p_brnch.
endif.
endif.
endform.
form estorna_comissao.
clear: itab_selreg,
itab_zycet010,
itab_zycet013.
refresh: itab_zycet010,
itab_zycet013.
* >> Início da inclusão: FORM ESTORNA_COMISSAO
check not v_dtlancto_est_f02 is initial.
* << Fim da inclusão
select single * from /pws/zycbt017
into itab_zycbt017_cg
where nrinvoic eq <fs_op>-nrinvoic
and nrparcf eq <fs_op>-nrparcf.
select single * from /pws/zycbt037
into itab_zycbt037_cg
where parvw eq itab_zycbt017_cg-parvw. "#EC CI_NOFIRST
if sy-subrc ne 0.
if itab_zycbt017_cg-parvw eq 'AD' or
itab_zycbt017_cg-parvw eq 'DA'.
...
...
where nrseq eq <fs_op>-nrinvoic
and ( dtpagto ne ' ' or
dtpagto ne '00000000' ).
loop at itab_zycet010.
move: itab_zycet010-nrseq to itab_selreg-nrchave,
<fs_op>-nrseq to itab_selreg-docto,
itab_zycet010-dtvencto to itab_selreg-dtvencto,
itab_zycet010-vlcomis to itab_selreg-vlme,
itab_zycet010-lifnr to itab_selreg-lifnr,
itab_zycbt037_cg-codpad to itab_selreg-codp.
* >> Início da inclusão: FORM ESTORNA_COMISSAO
v_vlme = itab_zycet010-vlcomis.
* << Fim da inclusão
append itab_selreg.
perform fill_date6_f22_comissao.
endloop.
else.
select *
into table itab_zycet013
from /pws/zycet013
where nrseq eq <fs_op>-nrinvoic
and gsber eq <fs_op>-gsberf
and ( dtpagto ne ' ' or
dtpagto ne '00000000' ).
* >> Início da exclusão: FORM ESTORNA_COMISSAO
loop at itab_zycet013.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_COMISSAO
clear : v_vlme.
loop at itab_zycet013 .
if sy-tabix = 1.
v_vlme = v_vlme + itab_zycet013-vlme .
v_belnr = itab_zycet013-belnr.
else.
if itab_zycet013-belnr = v_belnr.
v_vlme = v_vlme + itab_zycet013-vlme .
endif.
endif.
endloop.
read table itab_zycet013 index 1.
* << Fim da inclusão
move: itab_zycet013-nrseq to itab_selreg-nrchave,
<fs_op>-nrseq to itab_selreg-docto,
* >> Início da exclusão: FORM ESTORNA_COMISSAO
itab_zycet013-vlme to itab_selreg-vlme,
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_COMISSAO
v_vlme to itab_selreg-vlme,
* << Fim da inclusão
itab_zycet013-lifnr to itab_selreg-lifnr,
itab_zycbt037_cg-codpad to itab_selreg-codp.
append itab_selreg.
perform fill_date6_f22_comissao.
* >> Início da exclusão: FORM ESTORNA_COMISSAO
endloop.
* << Fim da exclusão
endif.
endform.
form fill_date6_f22_comissao.
clear: itab_zycbt032a, itab_zycbt036.
refresh: itab_zycbt032a, itab_zycbt036.
perform clear_date_batch.
perform get_parameters_comissao.
perform verifica_rateio1.
if wa_zycbt007-comis = 'C'.
read table itab_zycbt012a with key chlanc = 'C'.
...
...
exceptions
campo_em_branco = 1
others = 2.
if sy-subrc = 0.
read table itab_zycbt032 with key tcode = 'F-22'
tabela = '/PWS/ZYCBT226'
cpochv = v_cpochv
tpmsg = 'S'
into wa_zycbt032.
if sy-subrc = 0.
* >> Início da inclusão: FORM FILL_DATE6_F22_COMISSAO
if /pws/zycet037-comis_provisao is initial or
/pws/zycet037-comis_provisao eq 0.
itab_zycet010-belnr = wa_zycbt032-belnr.
itab_zycet010-status = space.
itab_zycet010-dtpagto = '00000000'.
modify itab_zycet010 transporting belnr status dtpagto
where nrseq = itab_zycet010-nrseq
and lifnr = itab_zycet010-lifnr
and dtvencto = itab_zycet010-dtvencto.
modify /pws/zycet010 from itab_zycet010.
else.
loop at itab_zycet013 where nrseq eq <fs_op>-nrinvoic .
itab_zycet013-belnr = wa_zycbt032-belnr.
itab_zycet013-status = space.
itab_zycet013-dtpagto = '00000000'.
modify itab_zycet013 transporting status
belnr
dtpagto
where nrseq = itab_zycet013-nrseq
and lifnr = itab_zycet013-lifnr
and gsber = itab_zycet013-gsber
and prctr = itab_zycet013-prctr.
modify /pws/zycet013 from itab_zycet013.
endloop.
endif.
* << Fim da inclusão
move wa_zycbt032 to itab_zycbt032a.
itab_zycbt032a-budat = wa_zycbe033-budat.
append itab_zycbt032a.
itab_contabil-nrinvoic = wa_zycbt030-nrinvoic.
itab_contabil-nrparcf = wa_zycbt030-nrparcf.
itab_contabil-vbeln = wa_zycbt030-vbeln.
itab_contabil-gsberf = wa_zycbt030-gsberf.
itab_contabil-docto = wa_zycbt032-belnr.
itab_contabil-dtdocto = wa_zycbe033-budat.
itab_contabil-bukrs = itab_zycbt006-bukrs.
...
...
campo_em_branco = 1
periodo_fechado = 2
others = 3.
if sy-subrc = 0.
read table itab_zycbt032 with key tcode = 'F-30'
tabela = '/PWS/ZYCBT226'
cpochv = v_cpochv
tpmsg = 'S'
into wa_zycbt032.
if sy-subrc = 0.
* >> Início da exclusão: FORM EXECUTA_CLEARING_CLIENTE
wa_zycbt030-belnr6 = wa_zycbt032-belnr.
wa_zycbt030-budat = wa_zycbe033-budat.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_CLEARING_CLIENTE
wa_zycbt030-belnr6 = wa_zycbt032-belnr.
wa_zycbt030-budat = wa_zycbe033-budat.
wa_zycbt030-vlslliq = wa_zycbt030-vlslliq + v_vlme .
* << Fim da inclusão
modify itab_zycbt030 from wa_zycbt030
* >> Início da exclusão: FORM EXECUTA_CLEARING_CLIENTE
transporting belnr6 budat
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_CLEARING_CLIENTE
transporting belnr6 budat vlslliq
* << Fim da inclusão
where nrinvoic = itab_aux-nrinvoic and
nrparcf = itab_aux-nrparcf and
vbeln = itab_aux-vbeln and
gsberf = itab_aux-gsberf.
modify itab_zycbt030 from wa_zycbt030
transporting belnr6 budat
where belnr6 = v_belnr6.
modify /pws/zycbt030 from table itab_zycbt030.
* >> Início da inclusão: FORM EXECUTA_CLEARING_CLIENTE
commit work.
if /pws/zycet037-comis_provisao is initial or
/pws/zycet037-comis_provisao eq 0.
clear :itab_zycet010-belnr_p .
modify itab_zycet010 transporting belnr_p
where nrseq = itab_zycet010-nrseq
and lifnr = itab_zycet010-lifnr
and dtvencto = itab_zycet010-dtvencto.
modify /pws/zycet010 from itab_zycet010.
* << Fim da inclusão
commit work.
* >> Início da inclusão: FORM EXECUTA_CLEARING_CLIENTE
else.
loop at itab_zycet013 where nrseq eq <fs_op>-nrinvoic.
clear: itab_zycet013-belnr_c ,
itab_zycet013-belnr_cl .
modify itab_zycet013 transporting belnr_c
belnr_cl
where nrseq = itab_zycet013-nrseq
and lifnr = itab_zycet013-lifnr
and gsber = itab_zycet013-gsber
and prctr = itab_zycet013-prctr.
modify /pws/zycet013 from itab_zycet013.
endloop.
endif.
* << Fim da inclusão
itab_aux-belnr6 = wa_zycbt032-belnr.
itab_aux-budat = wa_zycbe033-budat.
modify itab_aux transporting belnr6
where belnr6 = v_belnr6.
itab_contabil-nrinvoic = itab_aux-nrinvoic.
itab_contabil-nrparcf = itab_aux-nrparcf.
itab_contabil-vbeln = itab_aux-vbeln.
itab_contabil-gsberf = itab_aux-gsberf.
itab_contabil-docto = wa_zycbt032-belnr.
itab_contabil-dtdocto = wa_zycbe033-budat.
...
...
loop at itab_zycbt034 into wa_zycbt034.
perform message_store
using '/PWS/ZYCBM'
'E'
'Campo não está preenchido.'(m13)
wa_zycbt034-campo
'-'
wa_zycbt034-descricao
'061'.
endloop.
* >> Início da exclusão: FORM EXECUTA_CLEARING_CLIENTE
endif.
call function '/PWS/ZYCB_ENQUEUE_CONTAS'
exporting
i_bloqueia = 'X'
tables
itab_zycbt224 = itab_zycbe224
exceptions
zycbe224_null = 1
erro_bloqueio = 2
others = 3.
if sy-subrc <> 0.
exit.
* << Fim da exclusão
endif.
endif.
endform.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034TOP
...
/pws/zycbe017a,
/pws/zycbt030,
skb1,
bsid,
bkpf,
j_1bbranch,
adrc,
/pws/zycet002,
/pws/zycet020,
/pws/zycet037,
* >> Início da inclusão:
/PWS/ZYCBT226,
* << Fim da inclusão
/pws/zycbt089.
CONTROLS:
ts_70 TYPE TABSTRIP,
ts_principal TYPE TABSTRIP,
tc_op TYPE TABLEVIEW USING SCREEN '0110',
tc_30 TYPE TABLEVIEW USING SCREEN '0120',
tc_70 TYPE TABLEVIEW USING SCREEN '0131',
tc_contrato TYPE TABLEVIEW USING SCREEN '0132',
tc_00 TYPE TABLEVIEW USING SCREEN '0150',
tc_rendimentos TYPE TABLEVIEW USING SCREEN '0140',
...
...
v_icone TYPE icons-text,
v_tela_help TYPE sy-dynnr VALUE '0052'. "#EC NEEDED
DATA: v_adm(1) TYPE c.
DATA:
v_codaux TYPE /pws/zygle316-codaux1,
v_codaux1 TYPE /pws/zygle316-codaux1,
v_codaux2 TYPE /pws/zygle316-codaux2,
v_codaux3 TYPE /pws/zygle316-codaux3,
v_conta TYPE /pws/zycbe226-conta_contab,
v_bco_cab TYPE /pws/zycbe134-bcocred.
* >> Início da inclusão:
data: v_vlme type /pws/zycet013-vlme,
v_belnr type /pws/zycet013-belnr.
* << Fim da inclusão
DATA: v_nrinvoic VALUE space,
v_gsberf VALUE space,
v_fkdat VALUE space,
v_kunag VALUE space,
v_dtvencto VALUE space,
v_dtbl VALUE space,
v_inco1 VALUE space,
v_re VALUE space,
v_sd VALUE space,
v_nrre_ate LIKE /pws/zycbe017-nrre,
...