Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Liquidação de Fatura
Data/Hora da Publicação: 11/06/2010 00:00:00
Data/Hora Última Alteração: 20/01/2011 16:30:32
Descrição da Nota: LIQUIDAÇÃO - ERRO ATUALIZAÇÃO SALDO NO ESTORNO
Sintoma
O campo budat_t esta sendo atualizado na ida e no estorno da liquidação, gerando problema em uma
nova liquidação. Cenário em que o contrato é do ano atual e a fatura é do ano anterior(limpar-
primeira liquidação). Neste mesmo cenário, Câmbio Pronto, não esta atualizando o saldo da fatura na
tabela /pws/zycbt030.
Solução
Os campos BUDAT_T e BELNR_T são para gravar somente o primeiro desmembramento ocorrido na fatura,
portanto, se NÃO houver desmembramento, não atualiza mais ou, uma vez atualizado, também não
sobrepõe. Com isso não ocorrerá erro ao tentar fazer uma nova liquidação do mesmo contrato/fatura.
Quanto ao saldo, se NÃO houve desmembramento, tem que somar com o valor da tabela /pws/zycbt006
(valor liquidado).
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 10270 Data: 11/06/2010 Hora: 09:47:37
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 10270
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00003
Agrupamento : 00026
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
05512 - 00001 - 7.0 - 00004 - TRATAMENTO CAMPOS /PWS/ZYCBT030-BELNR_T /PWS/ZYCBT030-BUDAT_T
05897 - 00002 - 7.0 - 00004 - LIQUIDAÇÃO - BOTÃO MARCAR/DESMARCAR - BLOQUEIO DE CONTAS
07760 - 00003 - 7.0 - 00007 - DA-LIQUIDAÇÃO E VINCULAÇÃO LIQ. AUTOMÁT - NORMAL/ARBITRAGEM/PERFO
08226 - 00004 - 7.0 - 00009 - LIQUIDAÇÃO - GRAVAR NOVA DATA QUANDO ESTA EM PERÍODO FECHADO
08536 - 00005 - 7.0 - 00009 - DA-VINCULAÇÃO/LIQUIDAÇÃO-OTIMIZAÇÃO-BUSCA TAXAS/TIPO DOCTO. POR C
----------------------------------------------------------------------------------------------------
LIQUIDAÇÃO - ERRO ATUALIZAÇÃO SALDO NO ESTORNO
----------------------------------------------------------------------------------------------------
Palavras Chave:
LIQUIDAÇÃO - ERRO ATUALIZAÇÃO SALDO NO ESTORNO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB004F01
REPS /PWS/MZYCB004F02
REPS /PWS/MZYCB004F03
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F01
...
itab_zycbt030-belnr6 = itab_zycbt030-belnr_d.
itab_zycbt030-budat = v_datum.
itab_zycbt030-vlslliq =
itab_zycbt030-vlslliq + ( itab_zycbt006-vlme - v_liq_and -
v_vlmext ).
itab_zycbt030-vlsltrans =
itab_zycbt030-vlsltrans + ( itab_zycbt006-vlme - v_liq_and -
v_vlmext ).
CLEAR itab_zycbt030-belnr_d.
ELSE.
* >> Início da exclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3
itab_zycbt030-belnr_t = itab_zycbt030-belnr_d.
itab_zycbt030-budat_t = v_datum.
* << Fim da exclusão
itab_zycbt030-vlslliq =
itab_zycbt030-vlslliq + itab_zycbt006-vlme.
CLEAR itab_zycbt030-belnr_d.
ENDIF.
* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3
IF itab_zycbt030-belnr6 = itab_zycbt030-belnr.
CLEAR: itab_zycbt030-budat_t,
itab_zycbt030-belnr_t.
ENDIF.
* << Fim da inclusão
MODIFY itab_zycbt030.
PERFORM grava_zycbt084 USING ' '.
ENDLOOP.
IF itab_zycbt084-result_saldo > 0.
PERFORM atualiza_saldo_ordem_estorno.
ENDIF.
LOOP AT itab_zycbt069 WHERE nrseqc = itab_zycbt006-nrseqc
AND nrinvoic = itab_zycbt006-nrinvoic
AND dtvincul = itab_zycbt006-dtvincul
AND gsberf = itab_zycbt006-gsberf
...
...
itab_zycbt030-vlslliq =
itab_zycbt030-vlslliq + itab_zycbt030-v_kwert.
IF /pws/zycbe001-desc_receb IS INITIAL.
itab_zycbt030-vlsltrans =
itab_zycbt030-vlsltrans + itab_zycbt030-v_kwert.
itab_zycbt030-vlslliq =
itab_zycbt030-vlslliq + itab_zycbt084-result_saldo.
ENDIF.
CLEAR itab_zycbt030-belnr_d.
ELSE.
* >> Início da exclusão: FORM ESTORNO_PERIODO_FEC_PERF
itab_zycbt030-belnr_t = itab_zycbt030-belnr_d.
itab_zycbt030-budat_t = v_datum.
* << Fim da exclusão
itab_zycbt030-vlslliq =
itab_zycbt030-vlslliq + itab_zycbt006-vlme.
CLEAR itab_zycbt030-belnr_d.
* >> Início da inclusão: FORM ESTORNO_PERIODO_FEC_PERF
ENDIF.
IF itab_zycbt030-belnr6 = itab_zycbt030-belnr.
CLEAR: itab_zycbt030-budat_t,
itab_zycbt030-belnr_t.
* << Fim da inclusão
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F02
...
IF itab_zycbt030-v_belnr = itab_zycbt030-belnr_d.
itab_zycbt030-belnr6 = itab_zycbt006-belnr.
ELSE.
itab_zycbt030-belnr6 = itab_zycbt030-belnr_d.
ENDIF.
IF NOT itab_zycbt030-budat > itab_zycbt006-dtpagto
AND itab_zycbt030-belnr6 NE itab_zycbt030-belnr.
itab_zycbt030-budat = itab_zycbt006-dtpagto.
ENDIF.
IF itab_zycbt030-belnr_t IS INITIAL.
* >> Início da inclusão: FORM LANCAMENTO_PROVISAO2
read table itab_contabil
with key nrinvoic = itab_zycbt030-nrinvoic
nrparcf = itab_zycbt030-nrparcf
gsberf = itab_zycbt030-gsberf
msg = text-179.
if sy-subrc = 0.
* << Fim da inclusão
itab_zycbt030-belnr_t = itab_zycbt030-belnr6.
itab_zycbt030-budat_t = itab_zycbt030-budat.
ENDIF.
* >> Início da inclusão: FORM LANCAMENTO_PROVISAO2
endif.
* << Fim da inclusão
READ TABLE itab_recurso_aux
WITH KEY nrinvoic = itab_zycbt006-nrinvoic
gsberf = itab_zycbt006-gsberf
nrparcf = itab_zycbt006-nrparcf
...
...
IF sy-subrc NE 0.
v_subrc = 4.
EXIT.
ENDIF.
ENDIF.
IF wa_zycbt007-liq_trans IS INITIAL.
itab_zycbt030-belnr6 = v_belnr.
itab_zycbt030-budat = itab_zycbt006-dtpagto.
IF itab_zycbt030-belnr6 = itab_zycbt030-belnr.
itab_zycbt030-budat = itab_zycbt030-dtbelnr.
* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO
if /pws/zycbe001-desc_receb is initial.
itab_zycbt030-vlsltrans =
itab_zycbt030-vlsltrans + itab_zycbt006-vlme.
endif.
itab_zycbt030-vlslliq =
itab_zycbt030-vlslliq + itab_zycbt006-vlme.
* << Fim da inclusão
ELSE.
itab_zycbt030-budat = itab_zycbt006-dtpagto.
* >> Início da exclusão: FORM ESTORNO_PERIODO_ABERTO
ENDIF.
* << Fim da exclusão
IF /pws/zycbe001-desc_receb IS INITIAL.
itab_zycbt030-vlsltrans =
itab_zycbt030-vlsltrans + itab_cli-wrbtr.
ENDIF.
itab_zycbt030-vlslliq =
itab_zycbt030-vlslliq + itab_cli-wrbtr.
* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO
endif.
if itab_zycbt030-belnr6 = itab_zycbt030-belnr.
clear: itab_zycbt030-belnr_t, itab_zycbt030-budat_t.
endif.
* << Fim da inclusão
ELSE.
itab_zycbt030-vlslliq =
itab_zycbt030-vlslliq + itab_zycbt006-vlme.
ENDIF.
MODIFY itab_zycbt030.
PERFORM grava_zycbt084 USING ' '.
ENDLOOP.
IF v_subrc NE 0.
EXIT.
ENDIF.
...
...
itab_zycbt006-belnr = itab_zycbt006-belnr_d.
ENDIF.
itab_zycbt006-status = 'C'.
LOOP AT itab_zycbt030 WHERE nrinvoic = itab_zycbt006-nrinvoic
AND gsberf = itab_zycbt006-gsberf
AND nrparcf = itab_zycbt006-nrparcf
AND belnr_d NE ' '
AND belnr_d NE '0000000000'
AND belnr_d NE space.
itab_zycbt030-belnr6 = itab_zycbt030-belnr_d.
* >> Início da inclusão: FORM LANCAMENTO_PROVISAO_ARBITR_2
read table itab_contabil
with key nrinvoic = itab_zycbt030-nrinvoic
nrparcf = itab_zycbt030-nrparcf
gsberf = itab_zycbt030-gsberf
msg = text-126.
if sy-subrc = 0 and not itab_contabil-docto is initial
and itab_zycbt030-belnr_t is initial.
itab_zycbt030-belnr_t = itab_zycbt030-belnr6.
itab_zycbt030-budat_t = itab_zycbt030-budat.
endif.
* << Fim da inclusão
MODIFY itab_zycbt030.
ENDLOOP.
CLEAR v_baixa.
LOOP AT itab_zycbt209 WHERE nrinvoic = itab_zycbt006-nrinvoic
AND gsberf = itab_zycbt006-gsberf
AND nrparcf = itab_zycbt006-nrparcf
AND belnr_d NE ' '
AND belnr_d NE '0000000000'
AND belnr_d NE space.
CHECK NOT itab_zycbt209-belnr_d IS INITIAL.
...
...
dtvincul = itab_zycbt006-dtvincul
dtpagext = itab_zycbt006-dtpagext
dtpagto = itab_zycbt006-dtpagto
dtvencto = itab_zycbt006-dtvencto
liq_and = space
tdesmemb = 'V'.
IF sy-subrc EQ 0.
itab_zycbt030-vlslliq = itab_zycbt030-vlslliq -
itab_zycbt084-result_saldo.
MODIFY itab_zycbt030.
* >> Início da inclusão: FORM LANCAMENTO_PROVISAO3
endif.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM LANCAMENTO_PROVISAO3
modify itab_zycbt030.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM LANCAMENTO_PROVISAO3
read table itab_contabil
with key nrinvoic = itab_zycbt030-nrinvoic
nrparcf = itab_zycbt030-nrparcf
gsberf = itab_zycbt030-gsberf
msg = text-179.
if sy-subrc = 0 and not itab_contabil-docto is initial
and itab_zycbt030-belnr_t is initial.
itab_zycbt030-belnr_t = itab_zycbt030-belnr6.
itab_zycbt030-budat_t = itab_zycbt030-budat.
* << Fim da inclusão
MODIFY itab_zycbt030.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt209 WHERE nrinvoic = itab_zycbt006-nrinvoic
AND gsberf = itab_zycbt006-gsberf
AND nrparcf = itab_zycbt006-nrparcf.
CHECK NOT itab_zycbt209-belnr_d IS INITIAL.
itab_zycbt209-belnr2 = itab_zycbt209-belnr_d.
IF itab_zycbt209-belnr2 NE itab_zycbt209-belnr.
itab_zycbt209-dtbelnr = itab_zycbt006-dtpagto.
...
...
itab_zycbt030-budat = itab_zycbt030-dtbelnr.
ELSE.
itab_zycbt030-budat = itab_zycbt006-dtpagto.
ENDIF.
IF /pws/zycbe001-desc_receb IS INITIAL.
itab_zycbt030-vlsltrans =
itab_zycbt030-vlsltrans + itab_cli-wrbtr.
ENDIF.
itab_zycbt030-vlslliq =
itab_zycbt030-vlslliq + itab_cli-wrbtr.
* >> Início da inclusão: FORM ESTORNO_PERIODO_AB_PERF
if itab_cli-wrbtr is initial.
itab_zycbt030-vlslliq =
itab_zycbt030-vlslliq + itab_zycbt006-vlme.
endif.
* << Fim da inclusão
itab_zycbt030-vlslliq = itab_zycbt030-vlslliq +
itab_zycbt084-result_saldo.
ELSE.
itab_zycbt030-vlslliq =
itab_zycbt030-vlslliq + itab_zycbt006-vlme.
* >> Início da inclusão: FORM ESTORNO_PERIODO_AB_PERF
endif.
if itab_zycbt030-belnr6 = itab_zycbt030-belnr.
clear: itab_zycbt030-budat_t, itab_zycbt030-belnr_t.
* << Fim da inclusão
ENDIF.
MODIFY itab_zycbt030.
PERFORM grava_zycbt084 USING ' '.
ENDLOOP.
IF v_subrc NE 0.
EXIT.
ENDIF.
PERFORM clear_date_batch.
CLEAR: v_belnr.
LOOP AT itab_ace.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F03
...
INTO v_desc_receb
WHERE nrseqc EQ <fs_zycbt006>-nrseqc.
READ TABLE itab_zycbt030
WITH KEY
nrinvoic = <fs_zycbt006>-nrinvoic
nrparcf = <fs_zycbt006>-nrparcf
gsberf = <fs_zycbt006>-gsberf
ASSIGNING <fs_zycbt030>.
IF <fs_zycbt030> IS ASSIGNED AND
NOT <fs_zycbt030>-belnr_d IS INITIAL.
* >> Início da exclusão: FORM ATUALIZA_ZYCBT030
<fs_zycbt030>-budat_t = <fs_zycbt006>-dtpagto.
* << Fim da exclusão
IF wa_zycbt007-liq_trans EQ space.
<fs_zycbt030>-vlslliq =
<fs_zycbt030>-vlslliq - <fs_zycbt030>-v_kwert.
IF <fs_zycbt030>-v_belnr EQ <fs_zycbt030>-belnr_d.
<fs_zycbt030>-belnr6 = <fs_zycbt006>-belnr.
ELSE.
<fs_zycbt030>-belnr6 = <fs_zycbt030>-belnr_d.
ENDIF.
IF v_desc_receb IS INITIAL.
<fs_zycbt030>-vlsltrans =
<fs_zycbt030>-vlsltrans - <fs_zycbt030>-v_kwert.
ENDIF.
ELSE.
* >> Início da exclusão: FORM ATUALIZA_ZYCBT030
<fs_zycbt030>-belnr_t = <fs_zycbt030>-belnr_d.
* << Fim da exclusão
<fs_zycbt030>-vlslliq =
<fs_zycbt030>-vlslliq - <fs_zycbt006>-vlme.
* >> Início da inclusão: FORM ATUALIZA_ZYCBT030
endif.
if <fs_zycbt030>-belnr6 = <fs_zycbt030>-belnr.
clear: <fs_zycbt030>-budat_t, <fs_zycbt030>-budat_t.
* << Fim da inclusão
ENDIF.
PERFORM preenche_zycbt084
USING <fs_zycbt030>-vbeln <fs_zycbt006>-belnr space space.
...