CE PLUS - Nota 010090

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Mercadoria

Data/Hora da Publicação: 23/04/2010 00:00:00

Data/Hora Última Alteração: 22/02/2011 16:22:05

Descrição da Nota: RENEGOCIAÇÃO DE PARCELA

Sintoma

Ao renegociar uma das parcelas de uma fatura parcela o programa está contabilizando todas as

parcelas e substituindo o documento contabil existente sem que seja estornado o documento anterior.

 

 

Solução

Ajustado programa para contabilizar apenas as parcelas que necessitarem ser contabilizadas e no caso

de ter que realizar a contabilização de uma parcela que já foi contabilizada efetuar o estorno do

documento anterior.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTE NO RATEIO POR DIVISÃO ABSOLUTA NO MOMENTO DE SALVAR A FATURA

FALHA AO ALTERAR UMA FATURA DE PAGAMENTO ANTECIPADO

Informações Complementares

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

Nota Número 10090 Data: 23/04/2010 Hora: 15:13:04

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

 

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

Nota Número              : 10090

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00003

Agrupamento              : 00018

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

Referência às notas relacionadas:

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

 

02760  - 00001 - 6.0    - 00026  - AJUSTE NO RATEIO POR DIVISÃO ABSOLUTA NO MOMENTO DE SALVAR A FATU

08460  - 00002 - 7.0    - 00009  - FALHA AO ALTERAR UMA FATURA DE PAGAMENTO ANTECIPADO

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

RENEGOCIAÇÃO DE PARCELA

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

Palavras Chave:

CONTABILIZAÇÃO - PARCELA - RENEGOCIAR - ESTORNO - FATURA - PARCELADA

/PWS/SAPMZYCI003

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

Objetos da nota:

REPS /PWS/MZYCI003F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F01

 

...

  LOOP AT itab_zycit003.

    v_tabix = sy-tabix.

    PERFORM atualizando_total.

    MODIFY itab_zycit003.

  ENDLOOP.

  PERFORM check_total.

  IF v_dif_saldo = 'S'.

    v_stop = 'X'.

    CLEAR v_dif_saldo.

  ENDIF.

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

  PERFORM atualiza_total_parcelas.

  IF v_erro_par EQ 'X'.

    v_stop = 'X'.

  ENDIF.

* << Fim da inclusão

  IF v_stop = 'X'.

    EXIT.

  ENDIF.

  PERFORM consiste_sequencial.

  PERFORM rotina_de_contabilizacao.

  PERFORM salvar_bco.

  IF sy-binpt EQ 'X'.

    EXPORT /pws/zycie006 TO MEMORY ID 'BPFATIMP_01'.

  ENDIF.

  IF /pws/zycie006-tpfatura EQ '04' AND v_salva_desp EQ 'X'.

...

 

...

FORM contabilizacao_f-02_ou_f-43.

  IF /pws/zycie006-statusp IS INITIAL AND /pws/zycie006-frpagto NE 'A'.

    IF NOT itab_zycit132[] IS INITIAL

    AND /pws/zycie006-waers NE /pws/zycbt007-waersb

    AND ( /pws/zycie006-tpfatura = '01' OR

          /pws/zycie006-tpfatura = '11' ).

      v_parcela = 'X'.

      CLEAR v_rev.

* >> Início da inclusão: FORM CONTABILIZACAO_F-02_OU_F-43

      IF okcode EQ 'RENE'.

* << Fim da inclusão

      LOOP AT itab_zycit132 WHERE mark = 'X' AND status = 'C'.

        PERFORM reverse_document_fb08.

      ENDLOOP.

* >> Início da inclusão: FORM CONTABILIZACAO_F-02_OU_F-43

      ENDIF.

      IF NOT v_rev IS INITIAL.

        PERFORM dele_custo USING /pws/zycit031-inco1_ci space.

      ENDIF.

      LOOP AT itab_zycit132 WHERE status NE 'X'.

        v_parcela = 'X'.

        IF NOT itab_zycit132-belnr_p IS INITIAL.

          READ TABLE itab_zycit132_ini

                         WITH KEY nrparc = itab_zycit132-nrparc.

          IF sy-subrc NE 0.

            CLEAR itab_zycit132_ini-vlparc.

          ENDIF.

          IF itab_zycit132-vlparc NE itab_zycit132_ini-vlparc OR

             itab_zycit132-dtvencto NE itab_zycit132_ini-dtvencto.

            PERFORM reverse_document_fb08.

* << Fim da inclusão

      IF NOT v_rev IS INITIAL.

        PERFORM dele_custo USING /pws/zycit031-inco1_ci space.

* >> Início da inclusão: FORM CONTABILIZACAO_F-02_OU_F-43

            ENDIF.

            IF itab_zycit132-status EQ 'X'.

              PERFORM fill_date_f-43_f-02.

            ENDIF.

* << Fim da inclusão

      ENDIF.

* >> Início da exclusão: FORM CONTABILIZACAO_F-02_OU_F-43

      LOOP AT itab_zycit132 WHERE mark NE 'X' AND status NE 'X'.

* << Fim da exclusão

* >> Início da inclusão: FORM CONTABILIZACAO_F-02_OU_F-43

        ELSE.

* << Fim da inclusão

        PERFORM fill_date_f-43_f-02.

* >> Início da inclusão: FORM CONTABILIZACAO_F-02_OU_F-43

        ENDIF.

* << Fim da inclusão

      ENDLOOP.

    ELSE.

      PERFORM fill_date_f-43_f-02.

    ENDIF.

  ELSEIF /pws/zycie006-frpagto NE 'A'.

    IF NOT itab_zycit132[] IS INITIAL AND

       /pws/zycie006-waers NE /pws/zycbt007-waersb AND

     ( /pws/zycie006-tpfatura = '01' OR /pws/zycie006-tpfatura = '11' ).

* >> Início da inclusão: FORM CONTABILIZACAO_F-02_OU_F-43

      IF okcode EQ 'RENE'.

* << Fim da inclusão

      LOOP AT itab_zycit132 WHERE mark EQ 'X' AND status NE 'X'.

        v_parcela = 'X'.

        IF NOT itab_zycit132-belnr_p IS INITIAL.

          PERFORM reverse_document_fb08.

        ENDIF.

      ENDLOOP.

* >> Início da inclusão: FORM CONTABILIZACAO_F-02_OU_F-43

      ENDIF.

* << Fim da inclusão

      CLEAR v_rev.

...

 

...

        v_parcela = 'X'.

        IF NOT itab_zycit132-belnr_p IS INITIAL.

          READ TABLE itab_zycit132_ini

                         WITH KEY nrparc = itab_zycit132-nrparc.

          IF sy-subrc NE 0.

            CLEAR itab_zycit132_ini-vlparc.

          ENDIF.

          IF itab_zycit132-vlparc NE itab_zycit132_ini-vlparc OR

             itab_zycit132-dtvencto NE itab_zycit132_ini-dtvencto.

            PERFORM reverse_document_fb08.

* >> Início da exclusão: FORM CONTABILIZACAO_F-02_OU_F-43

          ENDIF.

* << Fim da exclusão

          IF NOT v_rev IS INITIAL.

            PERFORM dele_custo USING /pws/zycit031-inco1_ci space.

* >> Início da inclusão: FORM CONTABILIZACAO_F-02_OU_F-43

            ENDIF.

            IF itab_zycit132-status EQ 'X'.

              PERFORM fill_date_f-43_f-02.

            ENDIF.

* << Fim da inclusão

          ENDIF.

        ELSE.

...

 

...

  LOOP AT itab_zycit132 WHERE mark = 'X' OR status EQ 'X'.

    v_total_parc = v_total_parc - itab_zycit132-vlparc.

  ENDLOOP.

  IF v_total_parc NE /pws/zycie006-vltotal AND NOT itab_zycit132[] IS

  INITIAL

                    AND NOT /pws/zycie006-eliminado = 'X'.

    v_tot_dif = v_total_parc - /pws/zycie006-vltotal.

    WRITE v_tot_dif TO v_tot_char CURRENCY v_waers_par.

    IF okcode = 'SAVE' OR okcode = 'RENE'.

      MESSAGE s015 WITH text-084 v_tot_char.

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

      v_erro_par = 'X'.

* << Fim da inclusão

    ELSEIF v_resposta EQ 'J'.

      MESSAGE s015 WITH text-084 v_tot_char.

      v_erro_par = 'X'.

    ELSE.

      MESSAGE s015 WITH text-084 v_tot_char.

    ENDIF.

  ENDIF.

ENDFORM.

...