Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Vinculação
Data/Hora da Publicação: 19/07/2011 00:00:00
Data/Hora Última Alteração: 19/07/2011 14:22:00
Descrição da Nota: VINCULAÇÃO E LIQUIDAÇÃO DE CONTRATOS EM BRL COM FATURAS EM OUTRAS MOEDAS
Sintoma
Novo tratamento nas funcionalidades de Vinculação (/PWS/ZYCB009) e Liquidação (/PWS/ZYCBT004),
possibilitando operações de Arbitragem em processos de faturas em qualquer moeda externa e captação
em BRL.
Solução
Foi criado um novo tratamento na Vinculação e Liquidação para permitir vincular e liquidar faturas
com moedas diferentes de BRL em um contrato de captação em moeda BRL.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11334 Data: 19/07/2011 Hora: 13:59:17
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11334
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00008
Agrupamento : 00078
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
08269 - 00001 - 7.0 - 00009 - TRATAMENTO DE PROCESSOS DE EXPORTAÇÃO EM BRL-CAPTAÇAO,VINCULAÇAO
08981 - 00002 - 7.0 - 00010 - LIQUIDAÇÃO - VALORES INCORRETOS QUANDO FOR MOEDA JPY
09742 - 00003 - 8.0 - 00002 - LIQUIDAÇÃO DE CONTRATO ACC, PROGRAMA BUSCA TAXA INCORRETA
----------------------------------------------------------------------------------------------------
VINCULAÇÃO E LIQUIDAÇÃO DE CONTRATOS EM BRL COM FATURAS EM OUTRAS MOEDAS
----------------------------------------------------------------------------------------------------
Palavras Chave:
VINCULAÇÃO, LIQUIDAÇÃO, CONTRATOS BRL, FATURAS OUTRAS MOEDAS
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCB_TRANSACAO_F_22G
REPS /PWS/MZYCB004F01
REPS /PWS/MZYCB004F02
REPS /PWS/MZYCB009F03
REPS /PWS/MZYCB009F05
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_22G
...
'BSEG-ZUONR' v_zuonr.
IF NOT v_gsber IS INITIAL.
READ TABLE itab_oculto WITH KEY campo = 'BSEG-GSBER'
chave = v_lanc1.
IF sy-subrc NE 0.
PERFORM bdc_field USING:
'BSEG-GSBER' v_gsber.
ENDIF.
ENDIF.
IF NOT v_zfbdt IS INITIAL.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_22G
IF v_tela = '0304'.
PERFORM bdc_field USING 'BSEG-ZFBDT' v_zfbdt.
ELSE.
* << Fim da inclusão
READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZFBDT'
chave = v_lanc1.
IF sy-subrc <> 0.
PERFORM bdc_field USING 'BSEG-ZFBDT' v_zfbdt.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_22G
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
IF NOT v_zterm IS INITIAL.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F01
...
importing
v_year = v_year
exceptions
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
others = 7.
* >> Início da inclusão: FORM FILL_DATE6_F30_ACE
if /pws/zycbe001-waers eq wa_zycbt007-waersb.
itab_zycbe033-kursf = 1.
else.
* << Fim da inclusão
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.
* >> Início da inclusão: FORM FILL_DATE6_F30_ACE
endif.
* << Fim da inclusão
perform verify_null_field using itab_zycbe033-kursf
'TXCAMB'
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F02
...
v_data_aux = itab_zycbt006-dtpagto.
v_data_aux+6(2) = '01'.
v_databl = v_data_aux.
WHEN 'DTLANC'.
v_databl = p_dtlanc.
WHEN 'TXACE'.
PERFORM verifica_data2 USING wa_zycbt007-dtvincul
itab_zycbt006-dtpagto.
WHEN 'DTVINCUL'.
v_databl = itab_zycbt006-dtvincul.
* >> Início da exclusão: FORM VERIFICA_DATA2
IF /pws/zycbe001-waers EQ wa_zycbt007-waersb .
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_DATA2
if /pws/zycbe001-waers eq wa_zycbt007-waersb and
( itab_zycbe033-waers is initial or
itab_zycbe033-waers eq wa_zycbt007-waersb ).
* << Fim da inclusão
itab_zycbe033-kursf = /pws/zycbe001-txcneg.
ENDIF.
WHEN 'DTCREDEXT'.
v_databl = itab_zycbt006-dtpagext.
WHEN 'VIATRANS'.
IF itab_zycbt030-nrinvoic IS INITIAL.
READ TABLE itab_zycbt030 WITH KEY
nrinvoic = itab_zycbt006-nrinvoic
gsberf = itab_zycbt006-gsberf
nrparcf = itab_zycbt006-nrparcf.
...
...
v_databl = v_dtemb.
ELSEIF wa_zycet048-dtvrc EQ 'DTAVERB'.
v_databl = v_dtaverb2.
ELSEIF wa_zycet048-dtvrc EQ 'DTCRUZE'.
v_databl = v_dtcruze.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
WHEN 'TXFAT'.
* >> Início da exclusão: FORM VERIFICA_DATA2
IF /pws/zycbe001-waers EQ wa_zycbt007-waersb.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_DATA2
if /pws/zycbe001-waers eq wa_zycbt007-waersb and
( itab_zycbe033-waers is initial or
itab_zycbe033-waers eq wa_zycbt007-waersb ).
* << Fim da inclusão
itab_zycbe033-kursf = /pws/zycbe001-txcneg.
ELSE.
SELECT SINGLE belnr dtbelnr
FROM /pws/zycbt030
INTO (v_belnr,v_dtemb)
WHERE nrinvoic EQ itab_zycbt006-nrinvoic AND
gsberf EQ itab_zycbt006-gsberf AND
nrparcf EQ itab_zycbt006-nrparcf.
IF NOT v_belnr IS INITIAL AND
NOT v_dtemb IS INITIAL.
...
...
WHERE belnr EQ itab_zycbt006-belnr5
AND bukrs EQ itab_zycbt006-bukrs
AND gjahr EQ v_year.
READ TABLE itab_tcurx WITH KEY
currkey = /pws/zycbe001-waers INTO tcurx.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
v_reais_c = ( itab_paridade_ant-v_vlme_c )
/ ( 10 ** ( tcurx-currdec - 2 ) ).
* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN
if /pws/zycbe001-waers eq wa_zycbt007-waersb.
v_reais_c = v_reais_c.
else.
* << Fim da inclusão
v_reais_c = ( ( bkpf-kursf / v_defator )
* v_parafator ) * v_reais_c.
* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN
endif.
* << Fim da inclusão
CLEAR bkpf.
READ TABLE itab_tcurx WITH KEY
currkey = itab_zycbt006-waers INTO tcurx.
IF sy-subrc <> 0.
tcurx-currdec = 2.
...
...
v_reais_c = itab_paridade-v_vlme_c.
ENDIF.
READ TABLE itab_tcurx WITH KEY currkey = /pws/zycbe001-waers
INTO tcurx.
IF sy-subrc NE 0.
tcurx-currdec = 2.
ENDIF.
IF tcurx-currdec = 0.
v_reais_c = v_reais_c / ( 10 ** ( tcurx-currdec - 2 ) ).
ENDIF.
* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS
if /pws/zycbe001-waers eq wa_zycbt007-waersb.
v_reais_c = v_reais_c.
else.
* << Fim da inclusão
v_reais_c = ( ( bkpf-kursf / v_defator )
* v_parafator ) * v_reais_c.
* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS
endif.
* << Fim da inclusão
CLEAR bkpf.
CLEAR itab_zycbt084.
READ TABLE itab_zycbt084 WITH KEY
nrseqc = itab_zycbt006-nrseqc
nrinvoic = itab_zycbt006-nrinvoic
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F03
...
if not itab_transport[] is initial.
leave program.
endif.
clear v_erro_estorno.
set parameter id '001' field /pws/zycbe001-nrseqc. "#EC *
set parameter id '9999' field /pws/zycbe005-dtvincul. "#EC *
endform.
form altera_itab_zycbt005.
data: subrc like sy-subrc.
v_index = tc_faturas-current_line.
* >> Início da exclusão: FORM ALTERA_ITAB_ZYCBT005
if /pws/zycbe001-waers = 'BRL' and
itab_zycbt005-waers ne 'BRL'.
delete itab_zycbt005 index v_index.
message i061 with text-503 text-504 text-505 .
exit.
endif.
* << Fim da exclusão
if v_status_s eq 0.
read table itab_zycbt005_aux index v_index.
if /pws/zycbe005-mark eq 'X'.
itab_zycbt005-mark = 'X'.
itab_zycbt005_aux-mark = 'X'.
else.
clear itab_zycbt005-mark.
clear itab_zycbt005_aux-mark.
endif.
modify itab_zycbt005 index v_index.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F05
...
and fvinc eq space
and status eq space.
endif.
sort itab_zycbt017_aux by nrinvoic nrparcf gsberf.
delete adjacent duplicates from itab_zycbt017_aux
comparing nrinvoic nrparcf gsberf.
describe table itab_zycbt017_aux lines v_nlin.
loop at itab_zycbt017_aux.
itab_zycbt017_aux-v_fsaldo = 'X'.
modify itab_zycbt017_aux index sy-tabix.
* >> Início da exclusão: FORM SELECIONAR_ZYCBT017
if /pws/zycbt007-waersb eq /pws/zycbe001-waers.
if itab_zycbt017_aux-waers ne /pws/zycbe001-waers.
message w061 with text-503 text-504
itab_zycbt017_aux-nrinvoic text-505 .
endif.
if itab_zycbt017_aux-bukrs ne /pws/zycbe001-bukrs.
message w061 with text-503 text-504
itab_zycbt017_aux-nrinvoic text-506 .
endif.
endif.
* << Fim da exclusão
endloop.
clear: refe,
nrin,
gsbe,
fkda,
kuna,
dtve,
dtbl,
inco,
nrre,
...