CE PLUS - Nota 010270

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Liquidação de Fatura

Data/Hora da Publicação: 11/06/2010 00:00:00

Data/Hora Última Alteração: 20/01/2011 16:30:32

Descrição da Nota: LIQUIDAÇÃO - ERRO ATUALIZAÇÃO SALDO NO ESTORNO

Sintoma

O campo budat_t esta sendo atualizado na ida e no estorno da liquidação, gerando problema em uma

nova liquidação. Cenário em que o contrato é do ano atual e a fatura é do ano anterior(limpar-

primeira liquidação). Neste mesmo cenário, Câmbio Pronto, não esta atualizando o saldo da fatura na

tabela /pws/zycbt030.

 

 

Solução

Os campos BUDAT_T e BELNR_T são para gravar somente o primeiro desmembramento ocorrido na fatura,

portanto, se NÃO houver desmembramento, não atualiza mais ou, uma vez atualizado, também não

sobrepõe. Com isso não ocorrerá erro ao tentar fazer uma nova liquidação do mesmo contrato/fatura.

Quanto ao saldo, se NÃO houve desmembramento, tem que somar com o valor da tabela /pws/zycbt006

(valor liquidado).

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

LIQUIDAÇÃO - BOTÃO MARCAR/DESMARCAR - BLOQUEIO DE CONTAS

LIQUIDAÇÃO - GRAVAR NOVA DATA QUANDO ESTA EM PERÍODO FECHADO

DA-VINCULAÇÃO/LIQUIDAÇÃO-OTIMIZAÇÃO-BUSCA TAXAS/TIPO DOCTO. POR CONTRATO

TRATAMENTO CAMPOS /PWS/ZYCBT030-BELNR_T /PWS/ZYCBT030-BUDAT_T

DA-LIQUIDAÇÃO E VINCULAÇÃO LIQ. AUTOMÁT - NORMAL/ARBITRAGEM/PERFORMANCE

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 10270 Data: 11/06/2010 Hora: 09:47:37

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 10270

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00003

Agrupamento              : 00026

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

05512  - 00001 - 7.0    - 00004  - TRATAMENTO CAMPOS /PWS/ZYCBT030-BELNR_T /PWS/ZYCBT030-BUDAT_T

05897  - 00002 - 7.0    - 00004  - LIQUIDAÇÃO - BOTÃO MARCAR/DESMARCAR - BLOQUEIO DE CONTAS

07760  - 00003 - 7.0    - 00007  - DA-LIQUIDAÇÃO E VINCULAÇÃO LIQ. AUTOMÁT - NORMAL/ARBITRAGEM/PERFO

08226  - 00004 - 7.0    - 00009  - LIQUIDAÇÃO - GRAVAR NOVA DATA QUANDO ESTA EM PERÍODO FECHADO

08536  - 00005 - 7.0    - 00009  - DA-VINCULAÇÃO/LIQUIDAÇÃO-OTIMIZAÇÃO-BUSCA TAXAS/TIPO DOCTO. POR C

----------------------------------------------------------------------------------------------------

LIQUIDAÇÃO - ERRO ATUALIZAÇÃO SALDO NO ESTORNO

----------------------------------------------------------------------------------------------------

Palavras Chave:

LIQUIDAÇÃO - ERRO ATUALIZAÇÃO SALDO NO ESTORNO

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/MZYCB004F01

REPS /PWS/MZYCB004F02

REPS /PWS/MZYCB004F03

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB004F01

 

...

        itab_zycbt030-belnr6  = itab_zycbt030-belnr_d.

        itab_zycbt030-budat   = v_datum.

        itab_zycbt030-vlslliq =

        itab_zycbt030-vlslliq + ( itab_zycbt006-vlme - v_liq_and -

                                  v_vlmext ).

        itab_zycbt030-vlsltrans =

  itab_zycbt030-vlsltrans + ( itab_zycbt006-vlme - v_liq_and -

                              v_vlmext ).

        CLEAR itab_zycbt030-belnr_d.

      ELSE.

* >> Início da exclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

        itab_zycbt030-belnr_t = itab_zycbt030-belnr_d.

        itab_zycbt030-budat_t = v_datum.

* << Fim da exclusão

        itab_zycbt030-vlslliq =

          itab_zycbt030-vlslliq + itab_zycbt006-vlme.

        CLEAR itab_zycbt030-belnr_d.

      ENDIF.

* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

      IF itab_zycbt030-belnr6 = itab_zycbt030-belnr.

        CLEAR: itab_zycbt030-budat_t,

               itab_zycbt030-belnr_t.

      ENDIF.

* << Fim da inclusão

      MODIFY itab_zycbt030.

      PERFORM grava_zycbt084 USING ' '.

    ENDLOOP.

    IF itab_zycbt084-result_saldo > 0.

      PERFORM atualiza_saldo_ordem_estorno.

    ENDIF.

    LOOP AT itab_zycbt069 WHERE nrseqc   = itab_zycbt006-nrseqc

                            AND nrinvoic = itab_zycbt006-nrinvoic

                            AND dtvincul = itab_zycbt006-dtvincul

                            AND gsberf   = itab_zycbt006-gsberf

...

 

...

          itab_zycbt030-vlslliq =

            itab_zycbt030-vlslliq + itab_zycbt030-v_kwert.

          IF /pws/zycbe001-desc_receb IS INITIAL.

            itab_zycbt030-vlsltrans =

              itab_zycbt030-vlsltrans + itab_zycbt030-v_kwert.

            itab_zycbt030-vlslliq =

              itab_zycbt030-vlslliq + itab_zycbt084-result_saldo.

          ENDIF.

          CLEAR itab_zycbt030-belnr_d.

        ELSE.

* >> Início da exclusão: FORM ESTORNO_PERIODO_FEC_PERF

          itab_zycbt030-belnr_t = itab_zycbt030-belnr_d.

          itab_zycbt030-budat_t = v_datum.

* << Fim da exclusão

          itab_zycbt030-vlslliq =

            itab_zycbt030-vlslliq + itab_zycbt006-vlme.

          CLEAR itab_zycbt030-belnr_d.

* >> Início da inclusão: FORM ESTORNO_PERIODO_FEC_PERF

        ENDIF.

        IF itab_zycbt030-belnr6 = itab_zycbt030-belnr.

          CLEAR: itab_zycbt030-budat_t,

                 itab_zycbt030-belnr_t.

* << Fim da inclusão

        ENDIF.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB004F02

 

...

        IF itab_zycbt030-v_belnr = itab_zycbt030-belnr_d.

          itab_zycbt030-belnr6 = itab_zycbt006-belnr.

        ELSE.

          itab_zycbt030-belnr6 = itab_zycbt030-belnr_d.

        ENDIF.

        IF NOT itab_zycbt030-budat > itab_zycbt006-dtpagto

           AND itab_zycbt030-belnr6 NE itab_zycbt030-belnr.

          itab_zycbt030-budat  = itab_zycbt006-dtpagto.

        ENDIF.

        IF itab_zycbt030-belnr_t IS INITIAL.

* >> Início da inclusão: FORM LANCAMENTO_PROVISAO2

          read table itab_contabil

          with key nrinvoic = itab_zycbt030-nrinvoic

                   nrparcf  = itab_zycbt030-nrparcf

                   gsberf   = itab_zycbt030-gsberf

                   msg      = text-179.

          if sy-subrc = 0.

* << Fim da inclusão

          itab_zycbt030-belnr_t = itab_zycbt030-belnr6.

          itab_zycbt030-budat_t = itab_zycbt030-budat.

        ENDIF.

* >> Início da inclusão: FORM LANCAMENTO_PROVISAO2

        endif.

* << Fim da inclusão

        READ TABLE itab_recurso_aux

              WITH KEY nrinvoic = itab_zycbt006-nrinvoic

                       gsberf   = itab_zycbt006-gsberf

                       nrparcf  = itab_zycbt006-nrparcf

...

 

...

        IF sy-subrc NE 0.

          v_subrc = 4.

          EXIT.

        ENDIF.

      ENDIF.

      IF wa_zycbt007-liq_trans IS INITIAL.

        itab_zycbt030-belnr6 = v_belnr.

        itab_zycbt030-budat  = itab_zycbt006-dtpagto.

        IF itab_zycbt030-belnr6 = itab_zycbt030-belnr.

          itab_zycbt030-budat = itab_zycbt030-dtbelnr.

* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO

          if /pws/zycbe001-desc_receb is initial.

            itab_zycbt030-vlsltrans =

              itab_zycbt030-vlsltrans + itab_zycbt006-vlme.

          endif.

          itab_zycbt030-vlslliq =

            itab_zycbt030-vlslliq + itab_zycbt006-vlme.

* << Fim da inclusão

        ELSE.

          itab_zycbt030-budat = itab_zycbt006-dtpagto.

* >> Início da exclusão: FORM ESTORNO_PERIODO_ABERTO

        ENDIF.

* << Fim da exclusão

        IF /pws/zycbe001-desc_receb IS INITIAL.

          itab_zycbt030-vlsltrans =

            itab_zycbt030-vlsltrans + itab_cli-wrbtr.

        ENDIF.

        itab_zycbt030-vlslliq =

          itab_zycbt030-vlslliq + itab_cli-wrbtr.

* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO

        endif.

        if itab_zycbt030-belnr6 = itab_zycbt030-belnr.

          clear: itab_zycbt030-belnr_t, itab_zycbt030-budat_t.

        endif.

* << Fim da inclusão

      ELSE.

        itab_zycbt030-vlslliq =

          itab_zycbt030-vlslliq + itab_zycbt006-vlme.

      ENDIF.

      MODIFY itab_zycbt030.

      PERFORM grava_zycbt084 USING ' '.

    ENDLOOP.

    IF v_subrc NE 0.

      EXIT.

    ENDIF.

...

 

...

      itab_zycbt006-belnr = itab_zycbt006-belnr_d.

    ENDIF.

    itab_zycbt006-status = 'C'.

    LOOP AT itab_zycbt030 WHERE nrinvoic = itab_zycbt006-nrinvoic

                            AND gsberf   = itab_zycbt006-gsberf

                            AND nrparcf  = itab_zycbt006-nrparcf

                            AND belnr_d  NE '          '

                            AND belnr_d  NE '0000000000'

                            AND belnr_d  NE space.

      itab_zycbt030-belnr6 = itab_zycbt030-belnr_d.

* >> Início da inclusão: FORM LANCAMENTO_PROVISAO_ARBITR_2

      read table itab_contabil

      with key nrinvoic = itab_zycbt030-nrinvoic

               nrparcf  = itab_zycbt030-nrparcf

               gsberf   = itab_zycbt030-gsberf

               msg      = text-126.

      if sy-subrc = 0 and not itab_contabil-docto is initial

         and itab_zycbt030-belnr_t is initial.

        itab_zycbt030-belnr_t = itab_zycbt030-belnr6.

        itab_zycbt030-budat_t = itab_zycbt030-budat.

      endif.

* << Fim da inclusão

      MODIFY itab_zycbt030.

    ENDLOOP.

    CLEAR v_baixa.

    LOOP AT itab_zycbt209 WHERE nrinvoic = itab_zycbt006-nrinvoic

                            AND gsberf   = itab_zycbt006-gsberf

                            AND nrparcf  = itab_zycbt006-nrparcf

                            AND belnr_d  NE '          '

                            AND belnr_d  NE '0000000000'

                            AND belnr_d  NE space.

      CHECK NOT itab_zycbt209-belnr_d IS INITIAL.

...

 

...

                                    dtvincul = itab_zycbt006-dtvincul

                                    dtpagext = itab_zycbt006-dtpagext

                                     dtpagto  = itab_zycbt006-dtpagto

                                    dtvencto = itab_zycbt006-dtvencto

                                          liq_and  = space

                                          tdesmemb = 'V'.

          IF sy-subrc EQ 0.

            itab_zycbt030-vlslliq = itab_zycbt030-vlslliq -

                                    itab_zycbt084-result_saldo.

            MODIFY itab_zycbt030.

* >> Início da inclusão: FORM LANCAMENTO_PROVISAO3

          endif.

* << Fim da inclusão

          ENDIF.

* >> Início da inclusão: FORM LANCAMENTO_PROVISAO3

        modify itab_zycbt030.

* << Fim da inclusão

        ENDIF.

* >> Início da inclusão: FORM LANCAMENTO_PROVISAO3

      read table itab_contabil

      with key nrinvoic = itab_zycbt030-nrinvoic

               nrparcf  = itab_zycbt030-nrparcf

               gsberf   = itab_zycbt030-gsberf

               msg      = text-179.

      if sy-subrc = 0 and not itab_contabil-docto is initial

         and itab_zycbt030-belnr_t is initial.

        itab_zycbt030-belnr_t = itab_zycbt030-belnr6.

        itab_zycbt030-budat_t = itab_zycbt030-budat.

* << Fim da inclusão

        MODIFY itab_zycbt030.

      ENDIF.

    ENDLOOP.

    LOOP AT itab_zycbt209 WHERE nrinvoic = itab_zycbt006-nrinvoic

                            AND gsberf   = itab_zycbt006-gsberf

                            AND nrparcf  = itab_zycbt006-nrparcf.

      CHECK NOT itab_zycbt209-belnr_d IS INITIAL.

      itab_zycbt209-belnr2  = itab_zycbt209-belnr_d.

      IF itab_zycbt209-belnr2 NE itab_zycbt209-belnr.

        itab_zycbt209-dtbelnr = itab_zycbt006-dtpagto.

...

 

...

          itab_zycbt030-budat  = itab_zycbt030-dtbelnr.

        ELSE.

          itab_zycbt030-budat  = itab_zycbt006-dtpagto.

        ENDIF.

        IF /pws/zycbe001-desc_receb IS INITIAL.

          itab_zycbt030-vlsltrans =

            itab_zycbt030-vlsltrans + itab_cli-wrbtr.

        ENDIF.

        itab_zycbt030-vlslliq =

          itab_zycbt030-vlslliq + itab_cli-wrbtr.

* >> Início da inclusão: FORM ESTORNO_PERIODO_AB_PERF

        if itab_cli-wrbtr is initial.

          itab_zycbt030-vlslliq =

            itab_zycbt030-vlslliq + itab_zycbt006-vlme.

        endif.

* << Fim da inclusão

        itab_zycbt030-vlslliq = itab_zycbt030-vlslliq +

                                itab_zycbt084-result_saldo.

      ELSE.

        itab_zycbt030-vlslliq =

          itab_zycbt030-vlslliq + itab_zycbt006-vlme.

* >> Início da inclusão: FORM ESTORNO_PERIODO_AB_PERF

      endif.

      if itab_zycbt030-belnr6 = itab_zycbt030-belnr.

        clear: itab_zycbt030-budat_t, itab_zycbt030-belnr_t.

* << Fim da inclusão

      ENDIF.

      MODIFY itab_zycbt030.

      PERFORM grava_zycbt084 USING ' '.

    ENDLOOP.

    IF v_subrc NE 0.

      EXIT.

    ENDIF.

    PERFORM clear_date_batch.

    CLEAR: v_belnr.

    LOOP AT itab_ace.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB004F03

 

...

    INTO v_desc_receb

    WHERE nrseqc EQ <fs_zycbt006>-nrseqc.

  READ TABLE itab_zycbt030

    WITH KEY

      nrinvoic = <fs_zycbt006>-nrinvoic

      nrparcf  = <fs_zycbt006>-nrparcf

      gsberf   = <fs_zycbt006>-gsberf

    ASSIGNING <fs_zycbt030>.

  IF <fs_zycbt030> IS ASSIGNED AND

     NOT <fs_zycbt030>-belnr_d IS INITIAL.

* >> Início da exclusão: FORM ATUALIZA_ZYCBT030

    <fs_zycbt030>-budat_t = <fs_zycbt006>-dtpagto.

* << Fim da exclusão

    IF wa_zycbt007-liq_trans EQ space.

      <fs_zycbt030>-vlslliq =

        <fs_zycbt030>-vlslliq - <fs_zycbt030>-v_kwert.

      IF <fs_zycbt030>-v_belnr EQ <fs_zycbt030>-belnr_d.

        <fs_zycbt030>-belnr6 = <fs_zycbt006>-belnr.

      ELSE.

        <fs_zycbt030>-belnr6 = <fs_zycbt030>-belnr_d.

      ENDIF.

      IF v_desc_receb IS INITIAL.

        <fs_zycbt030>-vlsltrans =

          <fs_zycbt030>-vlsltrans - <fs_zycbt030>-v_kwert.

      ENDIF.

    ELSE.

* >> Início da exclusão: FORM ATUALIZA_ZYCBT030

      <fs_zycbt030>-belnr_t = <fs_zycbt030>-belnr_d.

* << Fim da exclusão

      <fs_zycbt030>-vlslliq =

        <fs_zycbt030>-vlslliq - <fs_zycbt006>-vlme.

* >> Início da inclusão: FORM ATUALIZA_ZYCBT030

    endif.

    if <fs_zycbt030>-belnr6 = <fs_zycbt030>-belnr.

      clear: <fs_zycbt030>-budat_t, <fs_zycbt030>-budat_t.

* << Fim da inclusão

    ENDIF.

    PERFORM preenche_zycbt084

      USING <fs_zycbt030>-vbeln <fs_zycbt006>-belnr space space.

...