CE PLUS - Nota 011752

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.

 

Versões Tratadas

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

...