Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Vinculação
Data/Hora da Publicação: 02/03/2010 00:00:00
Data/Hora Última Alteração: 26/03/2010 10:57:32
Descrição da Nota: DEVOLUÇÃO DA VINCULAÇÃO DE FATURAS, LIQUIDAÇÃO DE FATURAS
Sintoma
Ao processar uma devolução do saldo da fatura através da Vinculação (/PWS/ZYCB009_A - Modificar), o
sistema esta gerando erro na contalização da operação, onde esta buscando o documento contábil da
vinculação, onde ja foi compensado.
Solução
Alterado o Programa de Devolução de Vinculação para considerar a primeira letra do tipo de contrato,
verificado também pontos na liquidação.
8.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 09890 Data: 02/03/2010 Hora: 14:41:54
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 09890
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00002
Agrupamento : 00011
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
DEVOLUÇÃO DA VINCULAÇÃO DE FATURAS, LIQUIDAÇÃO DE FATURAS
----------------------------------------------------------------------------------------------------
Palavras Chave:
DEVOLUÇÃO DA VINCULAÇÃO DE FATURAS, LIQUIDAÇÃO DE FATURAS
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB004F01
REPS /PWS/MZYCB004F02
REPS /PWS/MZYCB004F03
REPS /PWS/MZYCB009F05
REPS /PWS/MZYCB009F06
REPS /PWS/MZYCB009F07
REPS /PWS/MZYCB009F09
REPS /PWS/MZYCB009F10
REPS /PWS/MZYCB009O01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F01
...
if itab_zycbe033-kursf is initial.
v_tpcontabil = 'D_CON'.
itab_zycbe033-waers = /pws/zycbe001-waers.
perform busca_dados_bi using /pws/zycbe001-bukrs
v_tpcontabil.
if itab_zycbe033-kursf is initial.
v_taxa_vazia = 'X'.
endif.
endif.
clear itab_zycbe033-kursf.
* >> Início da exclusão: FORM VALIDA_TAXA_PARAMETRO
if itab_zycbt001-tpcontr ne 'C'.
* << Fim da exclusão
* >> Início da inclusão: FORM VALIDA_TAXA_PARAMETRO
if itab_zycbt001-tpcontr(1) ne 'C'.
* << Fim da inclusão
perform verifica_data2 using wa_zycbt007-dtliquid
itab_zycbt006-dtpagto.
else.
perform verifica_data2 using wa_zycbt007-dtliqcp
itab_zycbt006-dtpagto.
endif.
if not v_databl is initial.
perform define_cambio using v_databl
itab_zycbt006-waers
wa_zycbt007-waersb
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F02
...
itab_partidas-dtdocto = itab_zycbt226i-dtlancto2.
concatenate text-234 itab_zycbt226i-nrseq
into itab_partidas-d_zuonr
separated by space.
itab_partidas-v_sinal = '-'.
append itab_partidas.
endloop.
if sy-subrc = 0
or itab_zycbt006-vlme ne itab_zycbt005-vlvinc
or ( not itab_zycbt006-belnr_d is initial and
* >> Início da exclusão: FORM BAIXA_CLIENTE_ACE
itab_zycbt001-tpcontr eq 'C' ).
* << Fim da exclusão
* >> Início da inclusão: FORM BAIXA_CLIENTE_ACE
itab_zycbt001-tpcontr(1) eq 'C' ).
* << Fim da inclusão
clear itab_zycbe033-d_zuonr.
endif.
else.
read table itab_zycbt226i with key nrinvoic = itab_zycbt006-nrinvoic
gsberf = itab_zycbt006-gsberf
nrparcf = itab_zycbt006-nrparcf.
if sy-subrc = 0.
itab_zycbe033-newbs = '50'.
clear: v_codaux1, v_codaux2.
v_codaux1 = itab_zycbt226i-bco_me.
...
...
and liq_and = space
and tdesmemb = 'V'.
endif.
endif.
v_subrc = 4.
check not itab_zycbt006-belnr_d is initial.
if ( itab_zycbt006-belnr_d eq itab_zycbt006-belnr5 ) and
( itab_zycbt005-vlvinc eq itab_zycbt006-vlme ).
clear itab_zycbt006-belnr_d.
modify itab_zycbt006 index v_index.
* >> Início da exclusão: FORM LANCAMENTO_PROVISAO3
if /pws/zycbe001-tpcontr ca 'PS'.
* << Fim da exclusão
* >> Início da inclusão: FORM LANCAMENTO_PROVISAO3
if /pws/zycbe001-tpcontr(1) ca 'PS'.
* << Fim da inclusão
loop at itab_zycbt069 where nrseqc = itab_zycbt006-nrseqc
and nrinvoic = itab_zycbt006-nrinvoic
and dtvincul = itab_zycbt006-dtvincul
and gsberf = itab_zycbt006-gsberf
and nrparcf = itab_zycbt006-nrparcf.
clear itab_zycbt069-belnr_d.
modify itab_zycbt069.
endloop.
endif.
else.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F03
...
nrseqc eq <fs_zycbt006>-nrseqc and
tpdesp eq <fs_zycbt006>-tpdesp and
nrparc eq <fs_zycbt006>-nrparc and
dtincl eq <fs_zycbt006>-dtincl and
nrinvoic eq <fs_zycbt006>-nrinvoic and
nrparcf eq <fs_zycbt006>-nrparcf and
gsberf eq <fs_zycbt006>-gsberf and
dtvincul eq <fs_zycbt006>-dtvincul and
dtvencto eq <fs_zycbt006>-dtvencto and
dtpagto eq <fs_zycbt006>-dtpagto.
* >> Início da exclusão: FORM ESTORNO_CONT_ERRO
if <fs_zycbt006>-tpcontr ca 'PS'.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_CONT_ERRO
if <fs_zycbt006>-tpcontr(1) ca 'PS'.
* << Fim da inclusão
loop at itab_zycbt069
assigning <fs_zycbt069>
where
nrseqc eq <fs_zycbt006>-nrseqc and
dtvincul eq <fs_zycbt006>-dtvincul and
nrinvoic eq <fs_zycbt006>-nrinvoic and
nrparcf eq <fs_zycbt006>-nrparcf and
gsberf eq <fs_zycbt006>-gsberf.
clear <fs_zycbt069>-belnr_d.
endloop.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F05
...
message i061 with
text-271 itab_zycbt005-nrinvoic text-272 text-283.
v_tstwaers = 'X'.
exit.
endif.
endif.
modify itab_zycbt005 index v_index.
endform.
form exibe_datas.
data v_flag type c.
* >> Início da exclusão: FORM EXIBE_DATAS
case /pws/zycbe001-tpcontr.
when 'C '.
* << Fim da exclusão
* >> Início da inclusão: FORM EXIBE_DATAS
case /pws/zycbe001-tpcontr(1).
when 'C'.
* << Fim da inclusão
if /pws/zycbt007-liq_cp eq 'X'.
move 'X' to v_flag.
endif.
* >> Início da exclusão: FORM EXIBE_DATAS
when 'DP'.
* << Fim da exclusão
* >> Início da inclusão: FORM EXIBE_DATAS
when 'D'.
* << Fim da inclusão
if /pws/zycbt089-f_cont_vinc eq 'F'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F06
...
itab_zycbe033-waers = /pws/zycbe050-waers.
itab_zycbe033-kursf = v_taxa.
perform verify_null_field using wa_zycbt011-blart
'BLART'
text-006.
itab_zycbe033-blart = wa_zycbt011-blart.
perform verify_null_field using /pws/zycbe050-vldev
'VLME'
text-007.
itab_zycbe033-wrbtr = /pws/zycbe050-vldev.
* >> Início da exclusão: FORM DESMEMBRA_DEV
if /pws/zycbe001-tpcontr = 'E'.
* << Fim da exclusão
* >> Início da inclusão: FORM DESMEMBRA_DEV
if /pws/zycbe001-tpcontr(1) = 'E'.
* << Fim da inclusão
loop at itab_zycbt006 where status = 'C'.
endloop.
if sy-subrc eq 0.
itab_zycbe033-belnr = /pws/zycbe001-belnr2.
else.
perform verify_null_field using itab_zycbt005-belnr
'BELNR'
text-120.
itab_zycbe033-belnr = itab_zycbt005-belnr.
endif.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F07
...
where nrseqc = wa_zycbt005-nrseqc and
tpdesp = wa_zycbt005-tpdesp and
nrparc = wa_zycbt005-nrparc and
dtincl = wa_zycbt005-dtincl and
nrinvoic = wa_zycbt005-nrinvoic and
gsberf = wa_zycbt005-gsberf and
nrparcf = wa_zycbt005-nrparcf and
dtvincul = wa_zycbt005-dtvincul and
dtvencto = wa_zycbt005-dtvencto and
dtpagto = wa_zycbt005-dtvincul.
* >> Início da exclusão: FORM FILL_DATE1_F30_CP_ESTORNO
if /pws/zycbe001-tpcontr eq 'C ' and
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30_CP_ESTORNO
if /pws/zycbe001-tpcontr(1) eq 'C' and
* << Fim da inclusão
wa_zycbt007-liq_cp eq 'X'.
delete itab_zycbt006
where nrseqc = wa_zycbt005-nrseqc and
tpdesp = wa_zycbt005-tpdesp and
nrparc = wa_zycbt005-nrparc and
dtincl = wa_zycbt005-dtincl and
nrinvoic = wa_zycbt005-nrinvoic and
gsberf = wa_zycbt005-gsberf and
nrparcf = wa_zycbt005-nrparcf and
dtvincul = wa_zycbt005-dtvincul and
...
...
select single j_1bbranch
from t001w into (j_1bbranch)
where werks = wa_zycbt005-werks.
perform verifica_pais_filial using /pws/zycbe001-bukrs
j_1bbranch.
itab_zycbe033-brnch = j_1bbranch.
perform verify_null_field using wa_zycbt005-dtvincul
'DTPAGTO'
text-003.
itab_zycbe033-budat = wa_zycbt005-dtvincul.
* >> Início da exclusão: FORM ESTORNA_CP
if /pws/zycbe001-tpcontr eq 'C ' and
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_CP
if /pws/zycbe001-tpcontr(1) eq 'C' and
* << Fim da inclusão
wa_zycbt007-liq_cp eq 'X'.
move /pws/zycbe006-dtpagto to itab_zycbe033-budat.
endif.
if wa_zycbt007-fdtdoc = 'D'.
itab_zycbe033-bldat = sy-datum.
else.
itab_zycbe033-bldat = itab_zycbe033-budat.
endif.
refresh itab_zyglt321.
select * from /pws/zyglt321
...
...
wa_zycbt005-nrparcf
itab_zycbt030-budat itab_zycbt030-vbeln
itab_zycbt030-belnr into v_cpochv.
itab_zycbe033-tcode = 'F-30'.
itab_zycbe033-tabela = '/PWS/ZYCBT006'.
itab_zycbe033-cpochv = v_cpochv.
perform verify_null_field using wa_zycbt005-dtvincul
'DTPAGTO'
text-003.
itab_zycbe033-budat = wa_zycbt005-dtvincul.
* >> Início da exclusão: FORM LANCA_CP
if /pws/zycbe001-tpcontr eq 'C ' and
* << Fim da exclusão
* >> Início da inclusão: FORM LANCA_CP
if /pws/zycbe001-tpcontr(1) eq 'C' and
* << Fim da inclusão
wa_zycbt007-liq_cp eq 'X'.
move /pws/zycbe006-dtpagto to itab_zycbe033-budat.
endif.
if wa_zycbt007-fdtdoc = 'D'.
itab_zycbe033-bldat = sy-datum.
else.
itab_zycbe033-bldat = itab_zycbe033-budat.
endif.
if not wa_zycbt011-agums is initial
and itab_zycbe033-agums is initial.
...
...
wa_zycbt005-dtvincul wa_zycbt005-dtvencto
itab_zycbt030-budat itab_zycbt030-vbeln
itab_zycbt030-belnr into v_cpochv.
itab_zycbe033-tcode = 'F-30'.
itab_zycbe033-tabela = '/PWS/ZYCBT006'.
itab_zycbe033-cpochv = v_cpochv.
perform verify_null_field using wa_zycbt005-dtvincul
'DTPAGTO'
text-003.
itab_zycbe033-budat = wa_zycbt005-dtvincul.
* >> Início da exclusão: FORM CLEARING_030
if /pws/zycbe001-tpcontr eq 'C ' and
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_030
if /pws/zycbe001-tpcontr(1) eq 'C' and
* << Fim da inclusão
wa_zycbt007-liq_cp eq 'X'.
move /pws/zycbe006-dtpagto to itab_zycbe033-budat.
endif.
if wa_zycbt007-fdtdoc = 'D'.
itab_zycbe033-bldat = sy-datum.
else.
itab_zycbe033-bldat = itab_zycbe033-budat.
endif.
refresh itab_zyglt321.
select * from /pws/zyglt321
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F09
...
itab_contabil-gsberf = itab_zycbt030-gsberf.
itab_contabil-nrparcf = itab_zycbt030-nrparcf.
itab_contabil-docto = itab_zycbt032-belnr.
itab_contabil-dtdocto = itab_zycbe033-budat.
itab_contabil-bukrs = itab_zycbt006-bukrs.
itab_contabil-msg = text-110.
append itab_contabil.
perform clearing_cliente.
perform clear_date_batch.
perform clearing_ace.
* >> Início da exclusão: FORM ESTORNA_CP_ARBITR
if wa_zycbt005-tpcontr = 'D'.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_CP_ARBITR
if wa_zycbt005-tpcontr(1) = 'D'.
* << Fim da inclusão
if wa_zycbt005-status = 'I'.
itab_zycbt005-dtbelnr = itab_zycbe033-budat.
itab_zycbt005-belnr = itab_zycbt032-belnr.
itab_zycbt005-status = 'C'.
itab_zycbt005-slpagar = 0.
itab_zycbt005-belnr_vinc = itab_zycbt032-belnr.
modify itab_zycbt005.
else.
wa_zycbt005-dtbelnr = itab_zycbe033-budat.
wa_zycbt005-belnr = itab_zycbt032-belnr.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F10
...
perform grava_log using '/PWS/ZYCBT005'
wa_log
'C'.
endif.
endloop.
endif.
if v_erro_estorno is initial.
modify /pws/zycbt005 from table itab_zycbt005.
modify /pws/zycbt017 from table itab_zycbt017.
elseif /pws/zycbe001-tpcontr ne 'DP' and
* >> Início da exclusão: FORM GRAVA_CONTABILIZACAO
/pws/zycbe001-tpcontr ne 'C'.
* << Fim da exclusão
* >> Início da inclusão: FORM GRAVA_CONTABILIZACAO
/pws/zycbe001-tpcontr(1) ne 'C'.
* << Fim da inclusão
modify /pws/zycbt005 from table itab_zycbt005.
modify /pws/zycbt017 from table itab_zycbt017.
endif.
if /pws/zycbe001-tpcontr(1) = 'P' or
/pws/zycbe001-tpcontr(1) = 'S'.
itab_zycbt002p-ftransf = 'X'.
modify itab_zycbt002p transporting ftransf
where slvinc = 0 and
przcontr eq 'L'.
modify /pws/zycbt002 from table itab_zycbt002p.
...
...
perform clear_itabs.
itab_zycbe033-mandt = sy-mandt.
itab_zycbe033-tcode = text-041.
itab_zycbe033-tabela = text-002.
itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.
read table itab_zycbt030
with key nrinvoic = itab_zycbt005-nrinvoic
nrparcf = itab_zycbt005-nrparcf
gsberf = itab_zycbt005-gsberf.
if ( wa_zycbt089-bx_cli_vinc is initial and
* >> Início da exclusão: FORM CLEARING_EST_ERRO
itab_zycbt005-tpcontr = 'A' ) or
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_EST_ERRO
itab_zycbt005-tpcontr(1) = 'A' ) or
* << Fim da inclusão
( wa_zycbt089-bx_cli_vinc = 'X' and
itab_zycbt005-baixa_cli = ' ' ) or
( itab_zycbt005-tpcontr(1) = 'D' and
wa_zycbt089-f_cont_vinc = 'A' ).
itab_zycbe033-belnr = v_belnr_001.
elseif ( wa_zycbt089-bx_cli_vinc = 'X' and
itab_zycbt005-baixa_cli = 'X' ).
itab_zycbe033-belnr = itab_zycbt030-belnr_d.
endif.
if ( wa_zycbt089-bx_cli_vinc is initial and
* >> Início da exclusão: FORM CLEARING_EST_ERRO
itab_zycbt005-tpcontr = 'A' ) or
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_EST_ERRO
itab_zycbt005-tpcontr(1) = 'A' ) or
* << Fim da inclusão
( wa_zycbt089-bx_cli_vinc = 'X' and
itab_zycbt005-baixa_cli = ' ' ) or
( itab_zycbt005-tpcontr(1) = 'D' and
wa_zycbt089-f_cont_vinc = 'A' ).
perform busca_taxa_contabil using 'tx_desm_acc'.
elseif ( wa_zycbt089-bx_cli_vinc = 'X' and
itab_zycbt005-baixa_cli = 'X' ).
perform busca_taxa_contabil using 'tx_desm_cli'.
endif.
perform: preenche_dados_contabilizacao,
...
...
periodo_fechado = 2
others = 3.
if sy-subrc eq 0.
read table itab_zycbt032
with key tcode = text-041
tabela = text-456
cpochv = itab_zycbe033-cpochv
tpmsg = 'S'.
if sy-subrc = 0.
if ( wa_zycbt089-bx_cli_vinc is initial and
* >> Início da exclusão: FORM CLEARING_EST_ERRO
itab_zycbt005-tpcontr = 'A' ) or
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_EST_ERRO
itab_zycbt005-tpcontr(1) = 'A' ) or
* << Fim da inclusão
( wa_zycbt089-bx_cli_vinc = 'X' and
itab_zycbt005-baixa_cli = ' ' ) or
( itab_zycbt005-tpcontr(1) = 'D' and
wa_zycbt089-f_cont_vinc = 'A' ).
perform preenche_zycbt084 using itab_zycbt030-vbeln
itab_zycbe033-belnr
space
'C'.
elseif ( wa_zycbt089-bx_cli_vinc = 'X' and
itab_zycbt005-baixa_cli = 'X' ).
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009O01
...
wa_cols-screen-name = '/PWS/ZYCBE005-KDAUF' or
wa_cols-screen-name = '/PWS/ZYCBE005-FICTR' or
wa_cols-screen-name = '/PWS/ZYCBE005-GEBER' or
wa_cols-screen-name = '/PWS/ZYCBE005-EBELN' or
wa_cols-screen-name = '/PWS/ZYCBE005-ERGOKONT' or
wa_cols-screen-name = 'WA_DESVINCULA-VLDESVIN' or
wa_cols-screen-name = '/PWS/ZYCBE005-COD_AREA' or
wa_cols-screen-name = '/PWS/ZYCBE005-DTCREDEXT'.
if ( wa_cols-screen-name eq '/PWS/ZYCBE005-VLME_P' or
wa_cols-screen-name eq '/PWS/ZYCBE005-VLVINC' ) and
* >> Início da exclusão: MODULE SET_SCREEN
/pws/zycbe001-tpcontr ca 'E' and
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN
/pws/zycbe001-tpcontr(1) ca 'E' and
* << Fim da inclusão
/pws/zycbt089-bx_cli_vinc = 'X' and
sy-tcode ne '/PWS/ZYCB009_C'.
wa_cols-screen-input = '0'.
else.
wa_cols-screen-input = '1'.
endif.
elseif wa_cols-screen-name = '/PWS/ZYCBE005-PARID'.
if sy-tcode eq c_transacao_a.
wa_cols-screen-input = '0'.
else.
...