Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Liquidação de Fatura
Data/Hora da Publicação: 14/09/2006 00:00:00
Data/Hora Última Alteração: 22/02/2011 11:56:32
Descrição da Nota: LIQUIDAÇÃO DE FATURAS - ARBITRAGEM - CASAS DECIMAIS
Sintoma
Ao efetuar uma liquidação com arbitragem, Contrato USD x Fatura EUR, o valor na tela esta incorreto,
exemplo, em vez de 5.000,00 esta 500.000,00. Os valores da diferença em reais, na quarta f-30 estão
incorretos, gerando erro. Ao ocorrer o erro, o sistema estorna todos documentos corretamente, mas
grava uma nova data no campo /PWS/ZYCBT030-BUDAT, gerando erro na próxima liquidação. Se a
liquidação for correta, ao efetaur o estorno com arbitragem, na transação F22 esta lançando valor em
moeda interna incorreto.
Solução
Retirar o tratamento onde multiplica o valor ME por 100, assim o valor fica correto. Deixar apenas o
tratamento para moedas sem casas decimais. No estorno, atualizar o campo BUDAT da tabela interna
itab_zycbt030 com a atual data da tabela transparente.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02101 Data: 14/09/2006 Hora: 11:29:06
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02101
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00025
Agrupamento : 00131
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01946 - 00001 - 6.0 - 00024 - LIQUIDAÇÃO COM ARBITRAGEM DE MOEDA
02011 - 00002 - 6.0 - 00024 - LIQUIDAÇÃO COM ARBITRAGEM - CALCULO PROVISÃO JUROS
----------------------------------------------------------------------------------------------------
LIQUIDAÇÃO DE FATURAS - ARBITRAGEM - CASAS DECIMAIS
----------------------------------------------------------------------------------------------------
Palavras Chave:
LIQUIDAÇÃO DE FATURAS ARBITRAGEM CASAS DECIMAIS
VLME /PWS/ZYCBT030-BUDAT
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB004F01
REPS /PWS/MZYCB004F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F01
...
ENDIF.
ENDIF.
LOOP AT itab_zycbt005.
itab_zycbt005-vlme = itab_zycbt005-slpagar.
IF itab_zycbt005-waers NE itab_zycbt005-waers_c.
* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005
itab_zycbt005-vlme =
( itab_zycbt005-vlme / itab_zycbt005-parid ) * 100.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005
itab_zycbt005-vlme = itab_zycbt005-vlme / itab_zycbt005-parid.
* << Fim da inclusão
PERFORM verifica_casas_decimais
USING
itab_zycbt005-vlme
itab_zycbt005-waers
itab_zycbt005-waers_c
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F02
...
SELECT SINGLE kursf FROM bkpf
INTO bkpf-kursf
WHERE belnr EQ itab_zycbt006-belnr5
AND bukrs EQ itab_zycbt006-bukrs
AND gjahr EQ v_year.
* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN
IF tcurx-currdec = 2.
v_reais_c = ( itab_zycbt006-vlme * itab_paridade-v_parid ) / 100.
ELSE.
* << Fim da exclusão
v_reais_c = ( itab_paridade-v_vlme_c )
/ ( 10 ** ( tcurx-currdec - 2 ) ).
* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN
ENDIF.
* << Fim da exclusão
v_reais_c = ( ( bkpf-kursf / v_defator )
* v_parafator ) * v_reais_c.
CLEAR bkpf.
READ TABLE itab_zycbt209
WITH KEY nrinvoic = itab_zycbt006-nrinvoic
...
...
cpochv = v_cpochv
tpmsg = 'S'.
IF sy-subrc EQ 0.
CLEAR: itab_zycbt030-belnr_d,
itab_zycbt030-status_d.
* >> Início da exclusão: FORM ANULA_DESM_CLIENTE_ABITR
MODIFY itab_zycbt030 TRANSPORTING belnr_d status_d
* << Fim da exclusão
* >> Início da inclusão: FORM ANULA_DESM_CLIENTE_ABITR
SELECT SINGLE budat
FROM /pws/zycbt030
INTO itab_zycbt030-budat
WHERE nrinvoic = itab_zycbt030-nrinvoic
AND vbeln = itab_zycbt030-vbeln
AND gsberf = itab_zycbt030-gsberf
AND nrparcf = itab_zycbt030-nrparcf.
MODIFY itab_zycbt030 TRANSPORTING budat belnr_d status_d
* << Fim da inclusão
WHERE nrinvoic = itab_zycbt030-nrinvoic
AND vbeln = itab_zycbt030-vbeln
AND gsberf = itab_zycbt030-gsberf
AND nrparcf = itab_zycbt030-nrparcf.
itab_contabil-nrinvoic = itab_zycbt030-nrinvoic.
...
...
SELECT SINGLE kursf FROM bkpf
INTO bkpf-kursf
WHERE belnr EQ itab_zycbt006-belnr_d
AND bukrs EQ itab_zycbt006-bukrs
AND gjahr EQ v_year.
* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS
IF tcurx-currdec = 2.
v_reais_c = ( itab_zycbt006-vlme * itab_zycbt005-parid ) / 100.
ELSE.
* << Fim da exclusão
v_reais_c = ( itab_zycbt006-vlme * itab_zycbt005-parid )
/ ( 10 ** ( tcurx-currdec - 2 ) ).
* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS
ENDIF.
* << Fim da exclusão
v_reais_c = ( ( bkpf-kursf / v_defator )
* v_parafator ) * v_reais_c.
CLEAR bkpf.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
...