Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Associação Ordem de Pagamento
Data/Hora da Publicação: 11/04/2011 00:00:00
Data/Hora Última Alteração: 11/04/2011 16:36:31
Descrição da Nota: ASSOCIAÇÃO DE ORDENS DE PAGAMENTO SML SALDO A ASSOCIAR
Sintoma
Ao associar uma fatura a uma ordem de pagamento, o sistema não está atualizando o saldo do campo
SLD_ASSOCIAR da tabela /PWS/ZYCBT226. Dessa forma está permitindo associar faturas ultrapassando o
valor do Pagamento Antecipado.
Solução
Quando a associação é realizada, independente de ocorrer erros na contabilização, o sistema irá
atualizar o saldo do campo SLD_ASSOCIAR na tabela /PWS/ZYCBT226. E caso haja algum erro o sistema
emitira as mensagens de erro que ocorreram durante a contabilização.
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11080 Data: 11/04/2011 Hora: 15:18:37
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11080
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00007
Agrupamento : 00066
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04538 - 00001 - 7.0 - 00002 - ASSOC. VAL. MANTIDOS EXTERIOR-ESTORNO-CONTABILIZAÇÃO E DADOS DA O
05478 - 00002 - 7.0 - 00003 - DA - ASSOCIAÇÃO DE ORDENS DE PAGAMENTO
07931 - 00003 - 7.0 - 00008 - DA - SISTEMA DE PAGAMENTOS EM MOEDA LOCAL E ASSOCIAÇÃO(SML)
09894 - 00004 - 8.0 - 00002 - ASSOCIAÇÃO VALORES MANTIDOS NO EXTERIOR - ARBITRAGEM APENAS NO EM
----------------------------------------------------------------------------------------------------
ASSOCIAÇÃO DE ORDENS DE PAGAMENTO SML SALDO A ASSOCIAR
----------------------------------------------------------------------------------------------------
Palavras Chave:
ASSOCIAÇÃO, ORDENS DE PAGAMENTO, SML, SALDO A ASSOCIAR
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB035F03
REPS /PWS/MZYCB035TOP
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB035F03
...
wa_zycbt230-bukrs = /pws/zycbe229a-bukrs.
wa_zycbt230-belnr = p_belnr.
wa_zycbt230-gjahr = p_gjahr.
wa_zycbt230-budat = p_budat.
wa_zycbt230-tp_docto = p_tpdocto.
insert wa_zycbt230 into table itab_zycbt230.
endform.
form efetua_contabilizacoes.
data
v_saldo type /pws/zycbt227-vlr_associado.
* >> Início da exclusão: FORM EFETUA_CONTABILIZACOES
field-symbols
<fs_zycbt228a> like line of itab_zycbt228a.
* << Fim da exclusão
* >> Início da inclusão: FORM EFETUA_CONTABILIZACOES
field-symbols:
<fs_zycbt228a> like line of itab_zycbt228a,
<fs_zycbt226> like line of itab_zycbt226.
* << Fim da inclusão
free itab_mensagem.
perform seleciona_dados_ordem_pagto.
loop at itab_zycbt228a
assigning <fs_zycbt228a>.
case <fs_zycbt228a>-oper.
when c_novo.
v_saldo = <fs_zycbt228a>-vlr_assoc_fat.
perform saldo_disp_cont
changing <fs_zycbt228a>.
perform efetua_desmemb_liq_and
...
...
changing v_saldo.
if v_saldo > 0.
perform efetua_desmemb_cliente
using <fs_zycbt228a>-nrseq <fs_zycbt228a>-gjahr v_saldo
<fs_zycbt228a>-parid.
endif.
perform efetua_desmemb_ordem_pagto
using <fs_zycbt228a>.
perform efetua_comp_associacao
using <fs_zycbt228a>.
* >> Início da inclusão: FORM EFETUA_CONTABILIZACOES
read table itab_zycbt226
with table key nrseq = <fs_zycbt228a>-nrseq
assigning <fs_zycbt226>.
if <fs_zycbt226> is assigned.
<fs_zycbt226>-sld_associar =
<fs_zycbt226>-sld_associar - <fs_zycbt228a>-vlr_associado.
endif.
* << Fim da inclusão
when c_eliminado.
perform saldo_disp_cont
changing <fs_zycbt228a>.
perform efetua_estorno_associacao
using <fs_zycbt228a>-nrseq <fs_zycbt228a>-belnr.
perform efetua_clearing_ordem_pagto
using <fs_zycbt228a>.
perform efetua_clearing_cliente
using <fs_zycbt228a>.
perform efetua_clearing_liq_and
using <fs_zycbt228a>.
* >> Início da inclusão: FORM EFETUA_CONTABILIZACOES
read table itab_zycbt226
with table key nrseq = <fs_zycbt228a>-nrseq
assigning <fs_zycbt226>.
if <fs_zycbt226> is assigned.
<fs_zycbt226>-sld_associar =
<fs_zycbt226>-sld_associar + <fs_zycbt228a>-vlr_associado.
endif.
* << Fim da inclusão
endcase.
perform atualiza_saldos_sml using <fs_zycbt228a>-oper
<fs_zycbt228a>-nrseq.
endloop.
endform.
form efetua_desmemb_liq_and
using
value(p_nrseq) type t_s_zycbt228a-nrseq
value(p_gjahr) type t_s_zycbt228a-gjahr
value(p_parid) type t_s_zycbt228a-parid
...
...
p_saldo = p_saldo - v_saldo.
<fs_zycbt209>-saldo = <fs_zycbt209>-saldo - v_saldo.
<fs_zycbt209>-belnr2 = wa_mensagem-belnr.
<fs_zycbt209>-dtbelnr = wa_mensagem-dtcont.
perform insere_itab_zycbt228
using p_nrseq p_gjahr c_tp_desm_liq_and wa_mensagem-belnr
<fs_bldat> <fs_budat> <fs_zycbt209>-dtincl
<fs_zycbt209>-waers v_saldo
<fs_zycbt209>-belnr.
endif.
* >> Início da inclusão: FORM EFETUA_DESMEMB_LIQ_AND
else.
loop at itab_zycbt034 assigning <fs_zycbt034>.
wa_mensagem-bukrs = wa_zycbt017-bukrs.
wa_mensagem-nrinvoic = <fs_zycbt209>-nrinvoic.
wa_mensagem-nrparcf = <fs_zycbt209>-nrparcf.
wa_mensagem-gsberf = <fs_zycbt209>-gsberf.
wa_mensagem-nrseq = p_nrseq.
wa_mensagem-tpmsg = 'E'.
wa_mensagem-belnr = ''.
concatenate 'Liq.And.-Campo Não Preenchido' <fs_zycbt034>-campo
<fs_zycbt034>-descricao into wa_mensagem-msg
separated by space.
append wa_mensagem to itab_mensagem.
endloop.
free wa_mensagem.
* << Fim da inclusão
endif.
endloop.
endform.
form efetua_desmemb_cliente
using
value(p_nrseq) type t_s_zycbt228a-nrseq
value(p_gjahr) type t_s_zycbt228a-gjahr
value(p_saldo) type t_s_zycbt227-vlr_associado
value(p_parid) type t_s_zycbt228a-parid.
constants:
...
...
wa_zycbt124-dtassoc = wa_mensagem-dtcont.
endif.
perform insere_itab_zycbt228
using p_nrseq p_gjahr c_tp_desm_cliente wa_mensagem-belnr
<fs_bldat> <fs_budat> v_data wa_zycbt030-waers p_saldo
' '.
perform insere_itab_zycbt230
using p_nrseq p_gjahr c_tp_desm_cliente wa_mensagem-belnr
<fs_bldat> <fs_budat>.
endif.
* >> Início da inclusão: FORM EFETUA_DESMEMB_CLIENTE
else.
loop at itab_zycbt034 assigning <fs_zycbt034>.
wa_mensagem-nrseq = p_nrseq.
wa_mensagem-tpmsg = 'E'.
wa_mensagem-belnr = ''.
concatenate 'Des.Cli.-Campo Não Preenchido' <fs_zycbt034>-campo
<fs_zycbt034>-descricao into wa_mensagem-msg
separated by space.
append wa_mensagem to itab_mensagem.
endloop.
free wa_mensagem.
* << Fim da inclusão
endif.
endform.
form efetua_desmemb_ordem_pagto
using value(p_wa_zycbt228a) like line of itab_zycbt228a.
constants:
c_f30 type /pws/zycbt032-tcode value 'F-30',
c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228'.
data:
itab_zycbe224 type t_t_zycbe224,
wa_zycbt209 like line of itab_zycbt209,
...
...
wa_mensagem-bukrs = <fs_bukrs>.
wa_mensagem-nrseq = p_wa_zycbt228a-nrseq.
perform verifica_contabilizacao
using
c_f30
c_zycbt228
v_cpochv
'Desmembramento do cliente RZE (Ordem de pagamento)'(m35)
changing wa_mensagem.
if not wa_mensagem is initial.
* >> Início da exclusão: FORM EFETUA_DESMEMB_ORDEM_PAGTO
<fs_zycbt226>-sld_associar = <fs_zycbt226>-sld_associar -
p_wa_zycbt228a-vlr_associado.
* << Fim da exclusão
<fs_zycbt226>-belnr_assoc = wa_mensagem-belnr.
<fs_zycbt226>-dt_assoc = wa_mensagem-dtcont.
perform insere_itab_zycbt228
using p_wa_zycbt228a-nrseq p_wa_zycbt228a-gjahr
c_tp_desm_ordem wa_mensagem-belnr <fs_bldat> <fs_budat>
v_data <fs_zycbt226>-waers p_wa_zycbt228a-vlr_associado
' '.
perform insere_itab_zycbt230
using p_wa_zycbt228a-nrseq p_wa_zycbt228a-gjahr c_tp_desm_ordem
wa_mensagem-belnr <fs_bldat> <fs_budat>.
endif.
* >> Início da inclusão: FORM EFETUA_DESMEMB_ORDEM_PAGTO
else.
loop at itab_zycbt034 assigning <fs_zycbt034>.
wa_mensagem-bukrs = <fs_bukrs>.
wa_mensagem-nrseq = p_wa_zycbt228a-nrseq.
wa_mensagem-tpmsg = 'E'.
wa_mensagem-belnr = ''.
concatenate 'Des.Ord.-Campo Não Preenchido' <fs_zycbt034>-campo
<fs_zycbt034>-descricao into wa_mensagem-msg
separated by space.
append wa_mensagem to itab_mensagem.
endloop.
free wa_mensagem.
* << Fim da inclusão
endif.
endform.
form efetua_comp_associacao
using value(p_wa_zycbt228a) like line of itab_zycbt228a.
constants:
c_f30 type /pws/zycbt032-tcode value 'F-30',
c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228'.
data:
itab_zycbe224 type t_t_zycbe224,
wa_zycbt209 like line of itab_zycbt209,
...
...
if not wa_mensagem is initial.
perform insere_itab_zycbt228
using p_wa_zycbt228a-nrseq p_wa_zycbt228a-gjahr
c_tp_comp_assoc wa_mensagem-belnr <fs_bldat> <fs_budat>
v_data v_moeda_assoc p_wa_zycbt228a-vlr_associado
' '.
perform insere_itab_zycbt230
using p_wa_zycbt228a-nrseq p_wa_zycbt228a-gjahr c_tp_comp_assoc
wa_mensagem-belnr <fs_bldat> <fs_budat>.
endif.
* >> Início da inclusão: FORM EFETUA_COMP_ASSOCIACAO
else.
loop at itab_zycbt034 assigning <fs_zycbt034>.
wa_mensagem-tpmsg = 'E'.
wa_mensagem-belnr = ''.
concatenate 'Comp.Assoc.-Campo Não Preenchido'
<fs_zycbt034>-campo <fs_zycbt034>-descricao
into wa_mensagem-msg separated by space.
append wa_mensagem to itab_mensagem.
endloop.
free wa_mensagem.
* << Fim da inclusão
endif.
endform.
form efetua_estorno_associacao
using
value(p_nrseq) type t_s_zycbt228a-nrseq
value(p_belnr) type t_s_zycbt228a-belnr.
constants:
c_fbra type /pws/zycbt032-tcode value 'FBRA',
c_fb08 type /pws/zycbt032-tcode value 'FB08',
c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228'.
...
...
wa_mensagem-bukrs = <fs_bukrs>.
wa_mensagem-nrseq = p_wa_zycbt228a-nrseq.
perform verifica_contabilizacao
using
c_f30
c_zycbt228
v_cpochv
'Clearing do cliente RZE (Ordem de pagamento)'(m44)
changing wa_mensagem.
if not wa_mensagem is initial.
* >> Início da exclusão: FORM EFETUA_CLEARING_ORDEM_PAGTO
<fs_zycbt226>-sld_associar = <fs_zycbt226>-sld_associar +
p_wa_zycbt228a-vlr_associado.
* << Fim da exclusão
<fs_zycbt226>-belnr_assoc = wa_mensagem-belnr.
<fs_zycbt226>-dt_assoc = wa_mensagem-dtcont.
endif.
* >> Início da inclusão: FORM EFETUA_CLEARING_ORDEM_PAGTO
else.
loop at itab_zycbt034 assigning <fs_zycbt034>.
wa_mensagem-bukrs = <fs_bukrs>.
wa_mensagem-nrseq = p_wa_zycbt228a-nrseq.
wa_mensagem-tpmsg = 'E'.
wa_mensagem-belnr = ''.
concatenate 'Clea.Ord.Pgt.-Campo Não Preenchido'
<fs_zycbt034>-campo <fs_zycbt034>-descricao
into wa_mensagem-msg separated by space.
append wa_mensagem to itab_mensagem.
endloop.
free wa_mensagem.
* << Fim da inclusão
endif.
endform.
form efetua_clearing_cliente
using value(p_wa_zycbt228a) like line of itab_zycbt228a.
constants:
c_f30 type /pws/zycbt032-tcode value 'F-30',
c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228',
c_koart type t_s_zycbe224-koart value 'D'.
data:
itab_zycbe224 type t_t_zycbe224,
...
...
else.
wa_zycbt124-sld_associar = wa_zycbt124-sld_associar +
p_wa_zycbt228a-vlr_associado.
wa_zycbt124-belnr_assoc = wa_mensagem-belnr.
wa_zycbt124-dtdocto = wa_mensagem-dtcont.
if wa_zycbt124-sld_associar = wa_zycbt124-vlme.
clear wa_zycbt124-dtpagto.
endif.
endif.
endif.
* >> Início da inclusão: FORM EFETUA_CLEARING_CLIENTE
else.
loop at itab_zycbt034 assigning <fs_zycbt034>.
wa_mensagem-tpmsg = 'E'.
wa_mensagem-belnr = ''.
concatenate 'Clea.Cli.-Campo Não Preenchido' <fs_zycbt034>-campo
<fs_zycbt034>-descricao into wa_mensagem-msg
separated by space.
append wa_mensagem to itab_mensagem.
endloop.
free wa_mensagem.
* << Fim da inclusão
endif.
endform.
form efetua_clearing_liq_and
using value(p_wa_zycbt228a) like line of itab_zycbt228a.
constants:
c_f30 type /pws/zycbt032-tcode value 'F-30',
c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228'.
data:
itab_zycbe224 type t_t_zycbe224,
wa_zycbe224 like line of itab_zycbe224,
...
...
c_zycbt228
v_cpochv
'Clearing da liquidação em andamento'(m45)
changing wa_mensagem.
if not wa_mensagem is initial.
<fs_zycbt209>-saldo = <fs_zycbt209>-saldo +
<fs_zycbt228>-vlr_associado.
<fs_zycbt209>-belnr2 = wa_mensagem-belnr.
<fs_zycbt209>-dtbelnr = wa_mensagem-dtcont.
endif.
* >> Início da inclusão: FORM EFETUA_CLEARING_LIQ_AND
else.
loop at itab_zycbt034 assigning <fs_zycbt034>.
wa_mensagem-bukrs = <fs_zycbt209>-bukrs.
wa_mensagem-nrinvoic = <fs_zycbt209>-nrinvoic.
wa_mensagem-nrparcf = <fs_zycbt209>-nrparcf.
wa_mensagem-gsberf = <fs_zycbt209>-gsberf.
wa_mensagem-tpmsg = 'E'.
wa_mensagem-belnr = ''.
concatenate 'Clea.Liq.And.-Campo Não Preenchido'
<fs_zycbt034>-campo <fs_zycbt034>-descricao
into wa_mensagem-msg separated by space.
append wa_mensagem to itab_mensagem.
endloop.
free wa_mensagem.
* << Fim da inclusão
endif.
endloop.
endform.
form verifica_commodities
using p_wa_fatura type t_s_fatura.
data:
wa_zycbt030 type /pws/zycbe030. "#EC *
select * from /pws/zycbt030
into corresponding fields of wa_zycbt030
up to 1 rows
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB035TOP
...
itab_zycbt241 type t_t_zycbt241,
wa_tabstrip like line of itab_tabstrip. "#EC NEEDED
data: v_decimais_f type tcurx-currdec,
v_decimais_o type tcurx-currdec,
v_defator type tcurf-ffact,
v_parafator type tcurf-tfact,
v_moeda_assoc type /pws/zycbt227-waers.
data: begin of itab_zyglt316 occurs 0.
include structure /pws/zyglt316.
data: end of itab_zyglt316.
* >> Início da inclusão:
field-symbols: <fs_zycbt034> like line of itab_zycbt034.
* << Fim da inclusão