Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Liquidação de Fatura
Data/Hora da Publicação: 08/12/2011 14:58:35
Data/Hora Última Alteração: 08/12/2011 14:58:35
Descrição da Nota: CAPTAÇÃO - HISTÓRICO CONTÁBIL QUANDO LIQUIDA FATURA COM MAIS PARCELAS
Sintoma
Ao efetuar a liquidação de faturas com mais de 2 parcelas onde 1 das parcelas foi devolvida, o
sistema está contabilizando a liquidação corretamente, porém está atualizando a tabela de
contratos /pws/zycbt001 incorretamente e demonstrando o histórico contábil incorreto.
Solução
O programa irá selecionar corretamente a informação da fatura, mesmo que esta possua várias
parcelas.
8.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11752 Data: 08/12/2011 Hora: 11:22:51
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11752
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00009
Agrupamento : 00098
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
----------------------------------------------------------------------------------------------------
CAPTAÇÃO - HISTÓRICO CONTÁBIL QUANDO LIQUIDA FATURA COM MAIS PARCELAS
----------------------------------------------------------------------------------------------------
Palavras Chave:
CAPTAÇÃO - HISTÓRICO CONTÁBIL - LIQUIDAÇÃO DE FATURAS COM MAIS PARCELAS
DEVOLUÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB004F01
REPS /PWS/ZYCBR059
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F01
...
AND dtvencto <= v_dtvencto.
ELSEIF NOT v_nrinvoic IS INITIAL AND
v_dtvencto IS INITIAL.
SELECT *
FROM /pws/zycbt005
INTO TABLE itab_zycbt005
WHERE nrseqc EQ v_nrseqc
AND tpdesp EQ ' '
AND dtvincul EQ v_dtvincul
AND slpagar GT 0
* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005
AND nrinvoic = v_nrinvoic
AND nrparcf = v_nrparcf
AND gsberf = v_gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005
and nrinvoic = v_nrinvoic.
if not v_nrparcf is initial.
delete itab_zycbt005 where nrparcf ne v_nrparcf.
endif.
if not v_gsberf is initial.
delete itab_zycbt005 where gsberf ne v_gsberf.
endif.
* << Fim da inclusão
ELSE.
SELECT *
FROM /pws/zycbt005
INTO TABLE itab_zycbt005
WHERE nrseqc EQ v_nrseqc
AND tpdesp EQ ' '
AND dtvincul EQ v_dtvincul
AND slpagar GT 0
AND dtvencto <= v_dtvencto
* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005
AND nrinvoic = v_nrinvoic
AND nrparcf = v_nrparcf
AND gsberf = v_gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005
and nrinvoic = v_nrinvoic.
if not v_nrparcf is initial.
delete itab_zycbt005 where nrparcf ne v_nrparcf.
endif.
if not v_gsberf is initial.
delete itab_zycbt005 where gsberf ne v_gsberf.
* << Fim da inclusão
ENDIF.
ENDIF.
* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005
endif.
* << Fim da inclusão
IF NOT itab_zycbt005[] IS INITIAL.
SELECT nrinvoic nrparcf gsberf pendcomm
FROM /pws/zycbt030 INTO TABLE itab_pendcomm
FOR ALL ENTRIES IN itab_zycbt005
WHERE nrinvoic = itab_zycbt005-nrinvoic
...
...
itab_zycbt005-slpagar.
MODIFY itab_zycbt005 INDEX tc_faturas-current_line.
ENDIF.
/pws/zycbe006-txjtotal = itab_zycbt005-txjtotal2.
/pws/zycbe006-vljur = itab_zycbt005-v_vljur.
/pws/zycbe006-vlir = itab_zycbt005-vlir.
/pws/zycbe017-credext = itab_zycbt005-dtcredext.
/pws/zycbe006-deduz_juros = v_deduz.
READ TABLE itab_paridade
WITH KEY nrinvoic = itab_zycbt005-nrinvoic
* >> Início da exclusão: FORM CARREGA_ZYCBE006
dtvincul = itab_zycbt005-dtvincul .
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_ZYCBE006
dtvincul = itab_zycbt005-dtvincul
nrparcf = itab_zycbt005-nrparcf.
* << Fim da inclusão
IF sy-subrc = 0.
v_parid = itab_paridade-v_parid.
v_waers_c = itab_paridade-v_waers_c.
v_vlme_c = itab_paridade-v_vlme_c.
MODIFY itab_paridade TRANSPORTING v_vlme_c
WHERE nrinvoic = itab_zycbt005-nrinvoic AND
* >> Início da exclusão: FORM CARREGA_ZYCBE006
dtvincul = itab_zycbt005-dtvincul .
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_ZYCBE006
dtvincul = itab_zycbt005-dtvincul and
nrparcf = itab_zycbt005-nrparcf.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM altera_itab_zycbt005.
DATA: v_vlmedif LIKE /pws/zycbt006-vlme.
DATA: v_saldo_fatura TYPE /pws/zycbe006-vlme.
IF v_status_s EQ 0.
MODIFY itab_zycbt005
INDEX tc_faturas-current_line TRANSPORTING mark.
EXIT.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR059
...
append itab_despesa.
endloop.
endloop.
sort itab_zycbt017 by nrinvoic nremb.
sort itab_zycbt005 by nrinvoic gsberf dtvincul.
sort itab_zycbt006 by nrinvoic gsberf dtpagext.
if itab_zycbt001-tpcontr(1) ne 'P' and
itab_zycbt001-tpcontr(1) ne 'S' and
itab_zycbt001-tpcontr(1) ne 'N'.
loop at itab_zycbt017.
* >> Início da inclusão: FORM SELECIONA_DADOS
clear: itab_dados.
* << Fim da inclusão
move: itab_zycbt017-nremb to itab_dados-nremb,
itab_zycbt017-nrinvoic to itab_dados-nrinvoic,
itab_zycbt017-nrparcf to itab_dados-nrparcf,
itab_zycbt017-bukrs to itab_dados-bukrs,
itab_zycbt017-gsberf to itab_dados-gsberf.
loop at itab_zycbt005 where nrinvoic = itab_zycbt017-nrinvoic
and gsberf = itab_zycbt017-gsberf
and nrparcf = itab_zycbt017-nrparcf.
clear sy-subrc.
loop at itab_zycbt004 where
...
...
itab_zycbt004-belnr to itab_juros-belnr.
endif.
move: itab_zycbt002-dtinicio to itab_juros-dtinicio,
itab_zycbt002-dtfinal to itab_juros-dtfinal ,
itab_zycbt002-txjtotal to itab_juros-txjtotal,
itab_zycbt002-vlme to itab_juros-vlme .
append itab_juros.
endif.
endloop.
endif.
* >> Início da inclusão: FORM SELECIONA_DADOS
delete itab_dados where nrinvoic is initial
and bukrs is initial
and gsberf is initial
and nrparcf is initial
and nremb is initial
and dtvincul is initial
and vlvinc is initial
and belnr_vinc is initial
and belnr_trans is initial
and belnr_dcontr is initial
and belnr_dclib is initial
and vlme is initial
and dtpagext is initial
and belnr_dcli is initial
and belnr_dace is initial
and dtliquid is initial
and belnr_liq is initial
and belnr_cli_ace is initial
and belnr5 is initial
and vljur is initial
and dtpagto is initial
and belnr is initial
and vljur_ace is initial
and dtpagto_ace is initial
and belnr_ace is initial
and belnr_perf is initial
and belnr_desm_cc is initial
and dt_desm_cc is initial.
* << Fim da inclusão
endform.
form move_dados.
data: n1(3) type n,
n2(3) type n.
clear: itab_zycbt069_aux,
itab_zycbt084_aux.
refresh: itab_zycbt069_aux,
itab_zycbt084_aux.
loop at itab_zycbt069 where nrinvoic = itab_aux-nrinvoic
and nrparcf = itab_aux-nrparcf
...