CE PLUS - Nota 002680

Módulo: CÂMBIO IMPORTAÇÃO

Funcionalidade: Financiamento

Data/Hora da Publicação: 13/12/2006 00:00:00

Data/Hora Última Alteração: 18/02/2011 09:45:52

Descrição da Nota: FINANCIAMENTO - CÁLCULO DO NÚMERO DE DIAS EM PARCELAS DE COMISSÃO

Sintoma

Ao gerar as parcelas de comissão para financiamentos, o programa está calculando de forma incorreta

o número de dias para as parcelas.

 

 

Solução

O programa passou a calcular o número de dias somente quando a data de vencimento das parcelas de

comissão estiverem preenchidas.

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 02680 Data: 13/12/2006 Hora: 09:22:14

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

 

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

Nota Número              : 02680

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00026

Agrupamento              : 00144

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

FINANCIAMENTO - CÁLCULO DO NÚMERO DE DIAS EM PARCELAS DE COMISSÃO

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

Palavras Chave:

FINANCIAMENTO NÚMERO DIAS DATA FINAL PARCELAS COMISSÃO

 

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

Objetos da nota:

REPS /PWS/MZYCM101F01

REPS /PWS/MZYCM101I01

REPT /PWS/SAPMZYCM101

 

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

Modificações efetuadas em REPS /PWS/MZYCM101F01

 

...

         FROM /pws/zycbt112

         WHERE nrseq < text-118

           AND nrseq LIKE v_ano.

  v_count = v_nrseqc+0(8) + 1.

  CONCATENATE v_count sy-datum+2(2) INTO /pws/zycbe112-nrseq.

  v_nrseqc     = /pws/zycbe112-nrseq.

  v_nrseqcview = /pws/zycbe112-nrseq.

ENDFORM.

FORM save_changes.

  DATA: v_tabix LIKE sy-tabix,

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

        v_min   LIKE v_soma_vlme.

* << Fim da exclusão

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

        v_min   LIKE v_soma_vlme,

        v_comissao(01) TYPE c.

* << Fim da inclusão

  CLEAR wa_zycbt007.

  SELECT SINGLE * FROM /pws/zycbt007

                  INTO wa_zycbt007

                  WHERE bukrs EQ /pws/zycbe112-bukrs.

  v_soma_vlme = 0.

  v_min = 5 / 100.

  LOOP AT itab_zycbt113c.

    v_soma_vlme = v_soma_vlme + itab_zycbt113c-vlme.

    v_tabix = sy-tabix.

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

    IF itab_zycbt113c-dtfinal IS INITIAL OR

       itab_zycbt113c-dtvecto IS INITIAL.

      v_comissao = 'X'.

    ENDIF.

* << Fim da inclusão

  ENDLOOP.

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

  IF NOT v_comissao IS INITIAL.

    MESSAGE i061 WITH

      'Deve-se informar'(242) 'o número de dias'(243)

      'e a data final'(244) 'das parcelas de comissão'(245).

    EXIT.

  ENDIF.

* << Fim da inclusão

  IF v_soma_vlme <> /pws/zycbe112-vlcomis.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCM101I01

 

...

          IF lin > 1.

            linh = lin - 1.

            READ TABLE itab_zycbt113c INDEX linh.

            v_dinic = itab_zycbt113c-dtfinal.

            READ TABLE itab_zycbt113c INDEX lin.

            itab_zycbt113c-dtinicio = v_dinic.

          ELSEIF lin = 1.

            itab_zycbt113c-dtinicio = /pws/zycbe112-dtdesem.

          ENDIF.

          v_auxnr = itab_zycbt113c-nrdias.

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

          IF NOT itab_zycbt113c-dtfinal IS INITIAL.

* << Fim da inclusão

          itab_zycbt113c-nrdias =

           ( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

          ENDIF.

* << Fim da inclusão

          IF v_auxnr <> itab_zycbt113c-nrdias.

            itab_zycbt113c-dtvecto = itab_zycbt113c-dtfinal.

          ENDIF.

          MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtinicio nrdias.

          MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtfinal dtvecto.

...

 

...

              itab_zycbt113c-nrdias = 0.

              itab_zycbt113c-dtinicio = 0.

             MODIFY itab_zycbt113c INDEX 1 TRANSPORTING nrdias dtinicio.

            ENDIF.

            CLEAR : itab_zycbt113c, v_nrd.

            LOOP AT itab_zycbt113c.

              v_nrd = v_nrd + itab_zycbt113c-nrdias.

            ENDLOOP.

            READ TABLE itab_zycbt113c INDEX 1.

            itab_zycbt113c-dtinicio = /pws/zycbe112-dtdesem.

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

            IF NOT itab_zycbt113c-dtfinal IS INITIAL.

* << Fim da inclusão

            itab_zycbt113c-nrdias =

              ( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).

            itab_zycbt113c-dtfinal =

              ( itab_zycbt113c-dtinicio + itab_zycbt113c-nrdias ).

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

            ENDIF.

* << Fim da inclusão

            DESCRIBE TABLE itab_zycbt113c LINES lin.

            IF lin > 0.

             MODIFY itab_zycbt113c INDEX 1 TRANSPORTING nrdias dtinicio.

              MODIFY itab_zycbt113c INDEX 1 TRANSPORTING dtfinal.

            ENDIF.

            DESCRIBE TABLE itab_zycbt113c LINES lin.

            READ TABLE itab_zycbt113c INDEX lin.

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

            IF NOT itab_zycbt113c-dtfinal IS INITIAL.

* << Fim da inclusão

            itab_zycbt113c-dtvecto = itab_zycbt113c-dtfinal.

            itab_zycbt113c-nrdias =

             ( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

            ENDIF.

* << Fim da inclusão

            IF lin > 1.

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING nrdias.

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtinicio.

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtfinal.

...

 

...

            READ TABLE itab_zycbt113c INDEX lin.

            IF sy-tcode <> '/PWS/ZYCB101_C' AND lin > 0.

              itab_zycbt113c-nrdias = 0.

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING nrdias.

            ENDIF.

            CLEAR : itab_zycbt113c, v_nrd.

            LOOP AT itab_zycbt113c.

              v_nrd = v_nrd + itab_zycbt113c-nrdias.

            ENDLOOP.

            v_auxnr = /pws/zycbe112-dtvencto - itab_zycbt113c-dtinicio.

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

            IF NOT itab_zycbt113c-dtfinal IS INITIAL.

* << Fim da inclusão

            itab_zycbt113c-nrdias =

             ( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

            ENDIF.

* << Fim da inclusão

            IF lin > 0.

              READ TABLE itab_zycbt113c INDEX lin.

              IF NOT itab_zycbt113c-dtvecto IS INITIAL.

            MODIFY itab_zycbt113c INDEX lin TRANSPORTING nrdias dtfinal.

              ENDIF.

            ENDIF.

            LOOP AT itab_zycbt113c.

* >> Início da exclusão: MODULE EXIBIR_MENSAGEM

              IF itab_zycbt113c-dtvecto IS INITIAL.

* << Fim da exclusão

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

              IF itab_zycbt113c-dtvecto IS INITIAL

                AND NOT itab_zycbt113c-dtfinal IS INITIAL.

* << Fim da inclusão

                itab_zycbt113c-dtvecto = itab_zycbt113c-dtfinal.

                MODIFY itab_zycbt113c.

              ENDIF.

            ENDLOOP.

            IF lin > 1 AND sy-tcode <> '/PWS/ZYCB101_C'.

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

              IF NOT itab_zycbt113c-dtfinal IS INITIAL.

* << Fim da inclusão

              itab_zycbt113c-nrdias =

               ( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

              ENDIF.

* << Fim da inclusão

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING nrdias.

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtfinal.

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtvecto.

            ELSEIF lin = 1 AND sy-tcode <> '/PWS/ZYCB101_C'.

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

              IF NOT itab_zycbt113c-dtfinal IS INITIAL.

* << Fim da inclusão

              itab_zycbt113c-nrdias =

               ( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

              ENDIF.

* << Fim da inclusão

              MODIFY itab_zycbt113c INDEX 1 TRANSPORTING nrdias.

              MODIFY itab_zycbt113c INDEX 1 TRANSPORTING dtinicio.

              MODIFY itab_zycbt113c INDEX 1 TRANSPORTING dtfinal.

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtvecto.

            ENDIF.

            DESCRIBE TABLE itab_zycbt113c LINES lin.

            IF v_flagc = 'X' AND lin > 1.

              READ TABLE itab_zycbt113c INDEX 1.

              itab_zycbt113c-dtinicio = /pws/zycbe112-dtdesem.

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

              IF NOT itab_zycbt113c-dtfinal IS INITIAL.

* << Fim da inclusão

              itab_zycbt113c-nrdias =

               ( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).

              itab_zycbt113c-dtfinal = v_auxnrb =

               ( itab_zycbt113c-dtinicio + itab_zycbt113c-nrdias ).

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

              ENDIF.

* << Fim da inclusão

              MODIFY itab_zycbt113c INDEX 1 TRANSPORTING nrdias.

              MODIFY itab_zycbt113c INDEX 1 TRANSPORTING dtinicio.

              MODIFY itab_zycbt113c INDEX 1 TRANSPORTING dtfinal.

              READ TABLE itab_zycbt113c INDEX lin.

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

              IF NOT itab_zycbt113c-dtfinal IS INITIAL.

* << Fim da inclusão

              itab_zycbt113c-dtinicio =

               ( itab_zycbt113c-dtfinal - itab_zycbt113c-nrdias ).

              itab_zycbt113c-nrdias =

               ( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

              ENDIF.

* << Fim da inclusão

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING nrdias.

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtinicio.

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtfinal.

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtvecto.

              CLEAR: v_flagc.

            ELSEIF lin = 1 AND v_flagc = 'X'.

              itab_zycbt113c-dtinicio = /pws/zycbe112-dtdesem.

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

              IF NOT itab_zycbt113c-dtfinal IS INITIAL.

* << Fim da inclusão

              itab_zycbt113c-nrdias =

               ( itab_zycbt113c-dtfinal - itab_zycbt113c-dtinicio ).

* >> Início da inclusão: MODULE EXIBIR_MENSAGEM

              ENDIF.

* << Fim da inclusão

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING nrdias.

              MODIFY itab_zycbt113c INDEX lin TRANSPORTING dtinicio.

              CLEAR: v_flagc.

            ENDIF.

          ENDIF.

...

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCM101

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 242

 

Texto: (16 caracteres)

"Deve-se informar"

 

Comprimento máximo: 16

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 243

 

Texto: (16 caracteres)

"o número de dias"

 

Comprimento máximo: 16

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 244

 

Texto: (14 caracteres)

"e a data final"

 

Comprimento máximo: 14

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 245

 

Texto: (24 caracteres)

"das parcelas de comissão"

 

Comprimento máximo: 24