Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Liquidação de Fatura
Data/Hora da Publicação: 13/06/2008 00:00:00
Data/Hora Última Alteração: 22/02/2011 12:41:44
Descrição da Nota: LIQUIDAÇÃO DE FATURA
Sintoma
Contrato pronto em usd, com vinculação de fatura em JPY.
A vinculação do contrato 7508 (pronto) é total, porém na table control o valor exibido possui 2
casas decimais a menos do valor vinculado. Esse valor errado acaba provocando erro na
contabilização.
Solução
Tratada as casas decimais quando moeda for JPY.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 06766 Data: 13/06/2008 Hora: 14:33:36
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 06766
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00005
Agrupamento : 00051
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00430 - 00001 - 6.0 - 00021 - NA LIQUIDAÇÃO COM ARBITRAGEM, O VALOR VINCULADO NÃO ESTÁ CORRETO
00534 - 00002 - 6.0 - 00022 - CASAS DECIMAIS NA LIQUIDAÇÃO DE CONTRATOS
01596 - 00003 - 6.0 - 00023 - LIQUIDAÇÃO - PROBLEMAS COM FATOR DE CONVERSÃO DE MOEDAS
02011 - 00004 - 6.0 - 00024 - LIQUIDAÇÃO COM ARBITRAGEM - CALCULO PROVISÃO JUROS
02101 - 00005 - 6.0 - 00025 - LIQUIDAÇÃO DE FATURAS - ARBITRAGEM - CASAS DECIMAIS
04674 - 00006 - 7.0 - 00002 - EXPORTAÇÃO LIQUIDAÇÃO - CÁLCULO DE JUROS EM JPY
06401 - 00007 - 7.0 - 00005 - LIQUIDAÇÃO - PROCESSO INTERCOMPANY
----------------------------------------------------------------------------------------------------
LIQUIDAÇÃO DE FATURA
----------------------------------------------------------------------------------------------------
Palavras Chave:
LIQUIDAÇÃO, LIQUIDAÇÃO DE FATURA
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCB_TRANSACAO_F_30_W
REPS /PWS/MZYCB004F01
REPS /PWS/MZYCB004TOP
REPS /PWS/MZYCB004I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_W
...
IF itab_parts-agkoa EQ 'D'.
IF itab_parts-agums IS INITIAL.
v_tela = '0301'.
ELSE.
PERFORM define_tela2 USING itab_parts-tcode
t_dados-bukrs
itab_parts-agkoa
CHANGING itab_parts-agums
v_tela.
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W
if v_emp_p <> t_dados-bukrs.
* << Fim da inclusão
AT FIRST.
PERFORM verifica_empresas USING t_dados-bukrs
'UMBUCHNG'
t_dados-agkon
'D'.
ENDAT.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W
ENDIF.
* << Fim da inclusão
ELSEIF itab_parts-agkoa EQ 'K'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F01
...
IF sy-subrc EQ 0.
MESSAGE i061 WITH text-054
itab_zycbt005-nrinvoic
text-231
text-217.
DELETE itab_zycbt005.
CONTINUE.
ENDIF.
itab_zycbt005-vlme = itab_zycbt005-slpagar.
IF itab_zycbt005-waers NE itab_zycbt005-waers_c.
* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005
IF itab_zycbt005-parid < 1.
itab_zycbt005-vlme = itab_zycbt005-vlme * itab_zycbt005-parid.
ELSE.
* << Fim da inclusão
itab_zycbt005-vlme = itab_zycbt005-vlme / itab_zycbt005-parid.
* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005
PERFORM verifica_casas_decimais
USING
itab_zycbt005-vlme
itab_zycbt005-waers
itab_zycbt005-waers_c
CHANGING itab_zycbt005-vlme.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005
ENDIF.
SELECT *
FROM tcurx
UP TO 1 ROWS
WHERE currkey EQ itab_zycbt005-waers_c.
ENDSELECT.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
itab_zycbt005-vlme = itab_zycbt005-vlme /
( 10 ** ( tcurx-currdec - 2 ) ).
* << Fim da inclusão
ENDIF.
MODIFY itab_zycbt005.
MOVE-CORRESPONDING itab_zycbt005 TO itab_paridade.
MOVE itab_zycbt005-parid TO itab_paridade-v_parid.
MOVE itab_zycbt005-waers_c TO itab_paridade-v_waers_c.
APPEND itab_paridade.
ENDLOOP.
CLEAR: itab_zycbt005-status.
MODIFY itab_zycbt005 TRANSPORTING status
WHERE nrseqc = v_nrseqc.
LOOP AT itab_paridade.
itab_paridade-v_vlme_c =
itab_paridade-vlme * itab_paridade-v_parid.
* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005
SELECT *
FROM tcurx
UP TO 1 ROWS
WHERE currkey EQ itab_paridade-waers.
ENDSELECT.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
itab_paridade-v_vlme_c = itab_paridade-v_vlme_c /
( 10 ** ( tcurx-currdec - 2 ) ).
* << Fim da inclusão
PERFORM verifica_casas_decimais
USING
itab_paridade-v_vlme_c
itab_paridade-v_waers_c
itab_paridade-waers
CHANGING itab_paridade-v_vlme_c.
MODIFY itab_paridade.
ENDLOOP.
ELSE.
SELECT a~nrseqc a~tpdesp a~nrparc a~dtincl a~nrinvoic
...
...
SELECT SINGLE kursf FROM bkpf
INTO itab_zycbe033-kursf
WHERE belnr EQ itab_zycbt005-belnr
AND bukrs EQ itab_zycbt006-bukrs
AND gjahr EQ v_year.
PERFORM verify_null_field USING itab_zycbe033-kursf
'TXCAMB'
text-051.
PERFORM determina_fator USING v_parafator
v_defator.
* >> Início da inclusão: FORM FILL_DATE6_F30_ACE
SELECT *
UP TO 1 ROWS
FROM tcurx
WHERE currkey = itab_zycbt005-waers.
ENDSELECT.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
* << Fim da inclusão
itab_zycbe033-wrbtr = itab_zycbt006-vlme *
* >> Início da exclusão: FORM FILL_DATE6_F30_ACE
( ( itab_zycbt005-parid / v_defator ) * v_parafator ).
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE6_F30_ACE
( ( itab_zycbt005-parid / v_defator ) * v_parafator ) /
( 10 ** ( tcurx-currdec - 2 ) ).
* << Fim da inclusão
PERFORM verifica_casas_decimais
USING
...
...
itab_zycbe033-belnr = itab_zycbt005-belnr.
ENDIF.
itab_zycbe033-dtdocto = itab_zycbt005-dtbelnr.
ENDIF.
ENDIF.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT006'.
itab_zycbt036-cpochv = v_cpochv.
PERFORM determina_fator USING v_parafator
v_defator.
* >> Início da inclusão: FORM FILL_DATE6_F30_ACE
SELECT *
UP TO 1 ROWS
FROM tcurx
WHERE currkey = itab_zycbt005-waers.
ENDSELECT.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
* << Fim da inclusão
itab_zycbt036-residuo = itab_zycbt006-vlme *
* >> Início da exclusão: FORM FILL_DATE6_F30_ACE
( ( itab_zycbt005-parid / v_defator ) * v_parafator ).
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE6_F30_ACE
( ( itab_zycbt005-parid / v_defator ) * v_parafator ) /
( 10 ** ( tcurx-currdec - 2 ) ).
* << Fim da inclusão
PERFORM verifica_casas_decimais
USING
...
...
( ( itab_paridade-v_parid / v_defator ) * v_parafator ).
PERFORM verifica_casas_decimais
USING
v_vlme_c
itab_zycbt005-waers_c
itab_zycbt005-waers
CHANGING v_vlme_c.
ELSEIF itab_zycbt005-vlme NE 0 AND v_parid NE 0.
v_vlme_c = itab_zycbt005-vlme *
( ( itab_paridade-v_parid / v_defator ) * v_parafator ).
* >> Início da inclusão: FORM CALC_PARIDADE
SELECT *
FROM tcurx
UP TO 1 ROWS
WHERE currkey EQ itab_zycbt005-waers.
ENDSELECT.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
v_vlme_c = v_vlme_c / ( 10 ** ( tcurx-currdec - 2 ) ).
* << Fim da inclusão
PERFORM verifica_casas_decimais
USING
v_vlme_c
itab_zycbt005-waers_c
itab_zycbt005-waers
CHANGING v_vlme_c.
ENDIF.
MOVE v_vlme_c TO itab_paridade-v_vlme_c.
MODIFY itab_paridade TRANSPORTING v_vlme_c
WHERE nrinvoic = itab_zycbt005-nrinvoic AND
...
...
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
IF itab_zycbt034 IS INITIAL.
PERFORM unlock_razao USING itab_zycbe033-d_newko
itab_zycbe033-bukrs.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_W'
EXPORTING
v_modo = v_modo_bi
v_vinc_tot = 'X'
* >> Início da inclusão: FORM LANCAMENTO_LIQUIDA_3
v_emp_p = v_emp_p
* << Fim da inclusão
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_partidas = itab_partidas
EXCEPTIONS
campo_em_branco = 1.
IF sy-subrc = 0.
CONCATENATE itab_zycbt006-nrseqc itab_zycbt006-tpdesp
itab_zycbt006-nrparc itab_zycbt006-dtincl
...
...
itab_zycbe033-c_sgtxt = wa_zycbt011_d-txtdesc.
ELSE.
itab_zycbe033-augtx = itab_zycbt006-txtinf.
itab_zycbe033-d_sgtxt = itab_zycbt006-txtinf.
itab_zycbe033-c_sgtxt = itab_zycbt006-txtinf.
ENDIF.
READ TABLE itab_zycbt017 WITH KEY
nrinvoic = itab_zycbt006-nrinvoic
gsberf = itab_zycbt006-gsberf
nrparcf = itab_zycbt006-nrparcf.
* >> Início da inclusão: FORM FILL_DATE6_F30_LIQUID_3
v_emp_p = itab_zycbt017-bukrs.
* << Fim da inclusão
CONCATENATE '003' itab_zycbt006-tpcontr INTO v_codeven.
CLEAR itab_zyglt321.
REFRESH itab_zyglt321.
SELECT * FROM /pws/zyglt321
INTO TABLE itab_zyglt321
WHERE ktosl = 'CPT'
AND codeven = v_codeven.
LOOP AT itab_zyglt321.
CASE itab_zyglt321-cpor3.
WHEN 'SGTXT'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004TOP
...
v_dtliq,
v_transitoria,
v_vlme_sl LIKE /pws/zycbt006-vlme,
v_viatrans LIKE /pws/zycet001-viatrans,
v_vktra LIKE /pws/zycit054-vktra,
v_dtemb LIKE /pws/zycet001-dtemb,
v_dtaverb2 LIKE /pws/zycet001-dtaverb,
v_dtcruze LIKE /pws/zycet001-dtcruze,
v_nrseq LIKE /pws/zycet001-nrseq,
v_kursf6 LIKE bkpf-kursf ,
* >> Início da inclusão:
v_emp_p LIKE /pws/zycbt017-bukrs,
* << Fim da inclusão
v_liquida,
v_saldot LIKE /pws/zycbt209-vlme,
v_slpagar LIKE /pws/zycbt005-slpagar,
v_belnr(10) TYPE n.
DATA: icc_ TYPE c,
conta_ LIKE /pws/zycbt012-saknr1,
belnr_ LIKE /pws/zycbt030-belnr,
v_exec(1) TYPE c.
DATA: v_vljur_acc LIKE /pws/zycbt002-vlme,
v_vljur_ace LIKE /pws/zycbt002-vlme,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004I01
...
ENDIF.
ENDIF.
IF itab_zycbt001-tpcontr(1) = 'E'.
v_vljur_ace = itab_zycbt005-v_vljur.
CLEAR v_vljur_acc.
ENDIF.
SELECT SINGLE * FROM tcurx WHERE currkey = itab_zycbt005-waers_c.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
* >> Início da exclusão: MODULE CALCULA_JUROS
IF NOT tcurx-currdec IS INITIAL.
* << Fim da exclusão
itab_zycbt005-v_vljur = itab_zycbt005-v_vljur *
( 10 ** ( tcurx-currdec - 2 ) ).
v_vljur_acc = v_vljur_acc *
( 10 ** ( tcurx-currdec - 2 ) ).
v_vljur_ace = v_vljur_ace *
( 10 ** ( tcurx-currdec - 2 ) ).
* >> Início da exclusão: MODULE CALCULA_JUROS
ENDIF.
* << Fim da exclusão
MOVE: v_vljur_acc TO /pws/zycbe006-vljur_acc,
...