CE PLUS - Nota 003807

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

Versões Tratadas

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