Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Liquidação de Fatura
Data/Hora da Publicação: 31/05/2007 00:00:00
Data/Hora Última Alteração: 10/03/2010 15:35:53
Descrição da Nota: LIQUIDAÇÃO - ESTORNO DAS PROVISÕES E CALCULO.
Sintoma
Programa esta realizando estorno das provisões no momento de criar liquidação quando já existe
liquidação na mesma data, com isto está gerando problemas nos calculos das provisões.
Solução
Ajustes efetuados no Produto reestruturando o código, para que o programa não estorne as provisões
no momento da criação da contabilização
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03807 Data: 31/05/2007 Hora: 10:05:16
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03807
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00027
Agrupamento : 00168
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
LIQUIDAÇÃO - ESTORNO DAS PROVISÕES E CALCULO.
----------------------------------------------------------------------------------------------------
Palavras Chave:
LIQUIDAÇÃO - ESTORNO DAS PROVISÕES E CALCULO.
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB004F01
REPS /PWS/MZYCB004F02
REPS /PWS/MZYCB004F03
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F01
...
OTHERS = 3.
IF sy-subrc NE 0.
ENDIF.
IF itab_zycbt006-v_status <> 'N'.
IF ( /pws/zycbt001-tpcontr(1) EQ 'A' OR
/pws/zycbt001-tpcontr(1) EQ 'E' OR
/pws/zycbt001-tpcontr(1) EQ 'D' OR
/pws/zycbt001-tpcontr(1) EQ 'T' ) AND
wa_zycbt007-fprovisao EQ 'C'
AND v_subrc = 0.
* >> Início da inclusão: FORM GRAVA_TABELAS
CLEAR itab_zycbt154.
REFRESH itab_zycbt154.
SELECT * FROM /pws/zycbt154 INTO TABLE itab_zycbt154
WHERE nrcorresp = /pws/zycbe005-nrseqc
AND tpcontr = /pws/zycbe005-tpcontr
AND dtcont = v_dtpagto
AND dtpagext = v_dtpagext
AND codmodul = 'JU'
AND codmod = 'E'
AND liquid = 'X'.
IF sy-tcode NE c_transacao_c.
* << Fim da inclusão
PERFORM estorna_diferenca_juros.
* >> Início da inclusão: FORM GRAVA_TABELAS
ENDIF.
PERFORM busca_liquidacoes.
* << Fim da inclusão
PERFORM provisiona_diferenca_juros.
ENDIF.
ENDIF.
PERFORM atualiza_tabelas_transp2.
IF wa_zycbt007-liq_com_cg NE 'RP'.
...
...
zycbe224_null = 1
erro_bloqueio = 2
OTHERS = 3.
IF sy-subrc NE 0.
ENDIF.
IF ( /pws/zycbt001-tpcontr(1) EQ 'A' OR
/pws/zycbt001-tpcontr(1) EQ 'E' OR
/pws/zycbt001-tpcontr(1) EQ 'D' OR
/pws/zycbt001-tpcontr(1) EQ 'T' ) AND
wa_zycbt007-fprovisao EQ 'C'.
* >> Início da inclusão: FORM GRAVA_TABELAS
CLEAR itab_zycbt154.
REFRESH itab_zycbt154.
SELECT * FROM /pws/zycbt154 INTO TABLE itab_zycbt154
WHERE nrcorresp = /pws/zycbe005-nrseqc
AND tpcontr = /pws/zycbe005-tpcontr
AND dtcont = v_dtpagto
AND dtpagext = v_dtpagext
AND codmodul = 'JU'
AND codmod = 'E'
AND liquid = 'X'.
IF sy-tcode NE c_transacao_c.
* << Fim da inclusão
PERFORM estorna_diferenca_juros.
* >> Início da inclusão: FORM GRAVA_TABELAS
ENDIF.
PERFORM busca_liquidacoes.
* << Fim da inclusão
PERFORM provisiona_diferenca_juros.
ENDIF.
PERFORM atualiza_tabelas_transparentes.
IF NOT itab_contabil[] IS INITIAL.
PERFORM executa_exit_p USING 'LIQ019'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F02
...
WHERE kurst = v_kurst
AND fcurr = /pws/zycbt001-waers
AND tcurr = wa_zycbt007-waersb
AND gdatu GE v_dtbudat.
READ TABLE itab_tcurr INDEX 1.
itab_zycbe033-kursf = itab_tcurr-ukurs.
ENDFORM.
FORM estorna_diferenca_juros.
DATA: v_monat LIKE t001b-frpe1,
v_ano LIKE t009b-bdatj.
* >> Início da exclusão: FORM ESTORNA_DIFERENCA_JUROS
CLEAR itab_zycbt154.
REFRESH itab_zycbt154.
SELECT * FROM /pws/zycbt154 INTO TABLE itab_zycbt154
WHERE nrcorresp = /pws/zycbe005-nrseqc
AND tpcontr = /pws/zycbe005-tpcontr
AND dtcont = v_dtpagto
AND dtpagext = v_dtpagext
AND codmodul = 'JU'
AND codmod = 'E'
AND liquid = 'X'.
* << Fim da exclusão
LOOP AT itab_zycbt154.
CLEAR: itab_zycbe033,
itab_zycbt032,
itab_zycbt034.
REFRESH: itab_zycbe033,
itab_zycbt032,
itab_zycbt034.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
...
...
WHERE belnr_jur EQ itab_zycbt154-belnr_pr.
ENDLOOP.
CLEAR: itab_zycbe033,
itab_zycbt032,
itab_zycbt034,
itab_zycbt006_pj.
REFRESH: itab_zycbe033,
itab_zycbt032,
itab_zycbt034,
itab_zycbt006_pj.
* >> Início da exclusão: FORM ESTORNA_DIFERENCA_JUROS
SELECT a~nrseqc a~tpdesp a~nrparc a~dtincl a~nrinvoic
a~nrparcf
a~gsberf a~dtvincul a~dtvencto a~nrcontr a~tpcontr
a~bconegoc a~bcofinan a~bukrs a~gsber a~kunnr a~waers
b~vlvinc b~slpagar a~txtinf a~ftxt b~belnr a~dtpagext
a~status a~kostl a~prctr a~fipos
a~vlme a~dtpagto b~j_1bbranch b~werks
a~deduz_juros b~waers_c b~parid b~vlme_p b~bukrs_f
a~txjtotal b~dtpror b~tptxjur b~vljur
b~dtbelnr b~belnr_vinc
a~vljur_acc a~vljur_ace
a~kostl a~aufnr a~kstrg a~prctr a~ps_posid a~nplnr
a~matnr a~kdauf a~fictr a~fipos a~geber a~ebeln
a~cod_area a~matnr_or a~bukrs_or a~fkart_or a~gsber_or
a~kaufn_or a~kdpos_or a~kndnr_or a~kokrs_or a~kstrg_or
a~pprctr_or a~prctr_or a~pspnr_or a~rkaufnr_or a~spart_or
a~versi_or a~vkorg_or a~vrgar_or a~werks_or a~vtweg_or
INTO CORRESPONDING FIELDS OF TABLE itab_zycbt005_t
FROM /pws/zycbt006 AS a LEFT JOIN /pws/zycbt005 AS b
ON b~nrseqc = a~nrseqc
AND b~tpdesp = a~tpdesp
AND b~nrparc = a~nrparc
AND b~dtincl = a~dtincl
AND b~nrinvoic = a~nrinvoic
AND b~nrparcf = a~nrparcf
AND b~gsberf = a~gsberf
AND b~dtvincul = a~dtvincul
AND b~dtvencto = a~dtvencto
WHERE a~nrseqc EQ v_nrseqc
AND a~dtvincul EQ v_dtvincul
AND a~dtpagext EQ v_dtpagext
AND a~dtpagto EQ v_dtpagto.
LOOP AT itab_zycbt005_t.
MOVE itab_zycbt005_t-txjtotal TO itab_zycbt005_t-txjtotal2.
IF itab_zycbt005_t-waers NE /pws/zycbt001-waers.
itab_zycbt005_t-v_armda = 'X'.
ENDIF.
MODIFY itab_zycbt005_t.
ENDLOOP.
LOOP AT itab_zycbt005.
DELETE itab_zycbt005_t WHERE nrseqc = itab_zycbt005-nrseqc
AND tpdesp = itab_zycbt005-tpdesp
AND nrparc = itab_zycbt005-nrparc
AND dtincl = itab_zycbt005-dtincl
AND nrinvoic = itab_zycbt005-nrinvoic
AND nrparcf = itab_zycbt005-nrparcf
AND gsberf = itab_zycbt005-gsberf
AND dtvincul = itab_zycbt005-dtvincul
AND dtvencto = itab_zycbt005-dtvencto
AND dtpagext = v_dtpagext
AND dtpagto = v_dtpagto.
CLEAR itab_zycbt005_t.
MOVE-CORRESPONDING itab_zycbt005 TO itab_zycbt005_t.
APPEND itab_zycbt005_t.
ENDLOOP.
IF itab_zycbt005[] IS INITIAL.
DELETE itab_zycbt005_t WHERE nrseqc = /pws/zycbt006-nrseqc
AND tpdesp = /pws/zycbt006-tpdesp
AND nrparc = /pws/zycbt006-nrparc
AND dtincl = /pws/zycbt006-dtincl
AND nrinvoic = /pws/zycbt006-nrinvoic
AND nrparcf = /pws/zycbt006-nrparcf
AND gsberf = /pws/zycbt006-gsberf
AND dtvincul = /pws/zycbt006-dtvincul
AND dtvencto = /pws/zycbt006-dtvencto
AND dtpagext = v_dtpagext
AND dtpagto = v_dtpagto.
ENDIF.
* << Fim da exclusão
ENDFORM.
FORM lancamento_provisao3.
DATA: v_docto LIKE /pws/zycbt030-belnr,
v_subrc LIKE sy-subrc,
v_linha TYPE i,
v_index TYPE i,
v_belnr TYPE belnr_d,
v_slliq LIKE /pws/zycbt006-vlme.
LOOP AT itab_zycbt006 WHERE v_status EQ 'I' AND
v_armda NE 'X' AND
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F03
...
ENDIF.
LOOP AT itab_zycbt032
ASSIGNING <fs_zycbt032>
WHERE
tcode EQ wa_zycbe033-tcode AND
tabela EQ wa_zycbe033-tabela AND
cpochv EQ wa_zycbe033-cpochv.
preenche_erro <fs_zycbt032>-belnr <fs_zycbt032>-msg.
ENDLOOP.
ENDFORM.
* >> Início da inclusão:
form busca_liquidacoes.
SELECT a~nrseqc a~tpdesp a~nrparc a~dtincl a~nrinvoic
a~nrparcf
a~gsberf a~dtvincul a~dtvencto a~nrcontr a~tpcontr
a~bconegoc a~bcofinan a~bukrs a~gsber a~kunnr a~waers
b~vlvinc b~slpagar a~txtinf a~ftxt b~belnr a~dtpagext
a~status a~kostl a~prctr a~fipos
a~vlme a~dtpagto b~j_1bbranch b~werks
a~deduz_juros b~waers_c b~parid b~vlme_p b~bukrs_f
a~txjtotal b~dtpror b~tptxjur b~vljur
b~dtbelnr b~belnr_vinc
a~vljur_acc a~vljur_ace
a~kostl a~aufnr a~kstrg a~prctr a~ps_posid a~nplnr
a~matnr a~kdauf a~fictr a~fipos a~geber a~ebeln
a~cod_area a~matnr_or a~bukrs_or a~fkart_or a~gsber_or
a~kaufn_or a~kdpos_or a~kndnr_or a~kokrs_or a~kstrg_or
a~pprctr_or a~prctr_or a~pspnr_or a~rkaufnr_or a~spart_or
a~versi_or a~vkorg_or a~vrgar_or a~werks_or a~vtweg_or
INTO CORRESPONDING FIELDS OF TABLE itab_zycbt005_t
FROM /pws/zycbt006 AS a LEFT JOIN /pws/zycbt005 AS b
ON b~nrseqc = a~nrseqc
AND b~tpdesp = a~tpdesp
AND b~nrparc = a~nrparc
AND b~dtincl = a~dtincl
AND b~nrinvoic = a~nrinvoic
AND b~nrparcf = a~nrparcf
AND b~gsberf = a~gsberf
AND b~dtvincul = a~dtvincul
AND b~dtvencto = a~dtvencto
WHERE a~nrseqc EQ v_nrseqc
AND a~dtvincul EQ v_dtvincul
AND a~dtpagext EQ v_dtpagext
AND a~dtpagto EQ v_dtpagto.
LOOP AT itab_zycbt005_t.
MOVE itab_zycbt005_t-txjtotal TO itab_zycbt005_t-txjtotal2.
IF itab_zycbt005_t-waers NE /pws/zycbt001-waers.
itab_zycbt005_t-v_armda = 'X'.
ENDIF.
MODIFY itab_zycbt005_t.
ENDLOOP.
LOOP AT itab_zycbt005.
DELETE itab_zycbt005_t WHERE nrseqc = itab_zycbt005-nrseqc
AND tpdesp = itab_zycbt005-tpdesp
AND nrparc = itab_zycbt005-nrparc
AND dtincl = itab_zycbt005-dtincl
AND nrinvoic = itab_zycbt005-nrinvoic
AND nrparcf = itab_zycbt005-nrparcf
AND gsberf = itab_zycbt005-gsberf
AND dtvincul = itab_zycbt005-dtvincul
AND dtvencto = itab_zycbt005-dtvencto
AND dtpagext = v_dtpagext
AND dtpagto = v_dtpagto.
CLEAR itab_zycbt005_t.
MOVE-CORRESPONDING itab_zycbt005 TO itab_zycbt005_t.
APPEND itab_zycbt005_t.
ENDLOOP.
IF itab_zycbt005[] IS INITIAL.
DELETE itab_zycbt005_t WHERE nrseqc = /pws/zycbt006-nrseqc
AND tpdesp = /pws/zycbt006-tpdesp
AND nrparc = /pws/zycbt006-nrparc
AND dtincl = /pws/zycbt006-dtincl
AND nrinvoic = /pws/zycbt006-nrinvoic
AND nrparcf = /pws/zycbt006-nrparcf
AND gsberf = /pws/zycbt006-gsberf
AND dtvincul = /pws/zycbt006-dtvincul
AND dtvencto = /pws/zycbt006-dtvencto
AND dtpagext = v_dtpagext
AND dtpagto = v_dtpagto.
ENDIF.
endform.
* << Fim da inclusão