CE PLUS - Nota 007119

Módulo: CÂMBIO IMPORTAÇÃO

Funcionalidade: Rotina Mensal

Data/Hora da Publicação: 11/08/2008 00:00:00

Data/Hora Última Alteração: 04/03/2010 15:16:59

Descrição da Nota: ROTINA MENSAL IMP. - PARCELAS DE PRINCIPAL A MAIS QUE PARCELAS DE JUROS

Sintoma

 

Ao executar a rotina mensal de importação, clearing no pagamento, onde o financiamento tem menos

parcelas de juros do que de principal, não esta demonstrando corretamente o valor à provisionar

(negativo) e o valor total do financiamento.

 

Solução

 

Somar tudo de uma parcela de juros e subtrair o valor provisionado, para que não fique negativo.

Versões Tratadas

7.0

Informações Complementares

 

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

Nota Número 07119 Data: 11/08/2008 Hora: 14:19:37

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

 

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

Nota Número              : 07119

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00006

Agrupamento              : 00060

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

ROTINA MENSAL IMP. - PARCELAS DE PRINCIPAL A MAIS QUE PARCELAS DE JUROS

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

Palavras Chave:

PARCELAS DE PRINCIPAL A MAIS QUE PARCELAS DE JUROS

ROTINA MENSAL IMPORTAÇÃO

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

Objetos da nota:

REPS /PWS/ZYCBI112

REPS /PWS/ZYCBR112

 

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

Modificações efetuadas em REPS /PWS/ZYCBI112

 

...

          waers   LIKE /pws/zycbt112-waers,

          vlmej   LIKE /pws/zycbt112-vlme,

          vlmeir  LIKE /pws/zycbt112-vlme,

          vlme_mes LIKE /pws/zycbt112-vlme,

        END OF itab_total.

  PERFORM exibe_cabecalho_relatorio.

  PERFORM totaliza_valores_lancados.

  CLEAR: v_tabix, v_vlpagj, v_vlpagir, v_vlpagc.

  SORT itab_relat BY tpcontab

                     codint nrseq nrparcj nrparcp nrfinanc dtate.

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

  itab_relat_aux[] = itab_relat[].

* << Fim da inclusão

  LOOP AT itab_relat.

    v_waers  = itab_relat-waers.

    v_tabix = v_tabix + 1.

    FORMAT RESET.

    aux_relat = itab_relat.

    ON CHANGE OF itab_relat-codint.

      FORMAT COLOR 1 INVERSE OFF INTENSIFIED OFF.

      LOOP AT itab_sub_tipo.

        WRITE: /    sy-vline,

                    text-006, text-003, itab_sub_tipo-codint,

...

 

 

...

        IF aux_relat-tpcontab = 'C'.

          WRITE:  111 v_vlrjprov3 CURRENCY v_waers.

        ELSE.

          WRITE:  111 v_vlrjprov CURRENCY v_waers.

        ENDIF.

        WRITE:   141 v_vlrjprov2 CURRENCY v_waers,

                 AT v_tamr sy-vline.

        FORMAT RESET.

      ENDIF.

      IF aux_relat-tpcontab <> 'C'.

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

        itab_relat-vlrprov  = aux_relat-vlmej - v_vlrjprov.

* << Fim da exclusão

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

        CLEAR: v_valor_p, v_valor_i.

        LOOP AT itab_relat_aux WHERE nrseq    = aux_relat-nrseq

                                 AND tpcontab = aux_relat-tpcontab

                                 AND nrparcj  = v_nrparcj.

          v_valor_p = v_valor_p + itab_relat_aux-vlmej.

          v_valor_i = v_valor_i + itab_relat_aux-vlmeir.

        ENDLOOP.

        itab_relat-vlrprov  = v_valor_p - v_vlrjprov.

* << Fim da inclusão

        itab_relat-vlrjprov = v_vlrjprov.

        MODIFY itab_relat TRANSPORTING vlrprov vlrjprov

               WHERE nrseq = aux_relat-nrseq

                 AND tpcontab <> 'C'

                 AND nrparcj = aux_relat-nrparcj.

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

        itab_relat-vlrprov2  = aux_relat-vlmeir - v_vlrjprov2.

* << Fim da exclusão

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

        itab_relat-vlrprov2  = v_valor_i - v_vlrjprov2.

* << Fim da inclusão

        itab_relat-vlrjprov2 = v_vlrjprov2.

        MODIFY itab_relat TRANSPORTING vlrprov2 vlrjprov2

               WHERE nrseq = aux_relat-nrseq

                 AND tpcontab <> 'C'

                 AND nrparcj = aux_relat-nrparcj.

      ELSE.

        itab_relat-vlrprov3  = aux_relat-vlmej - v_vlrjprov3.

        itab_relat-vlrjprov3 = v_vlrjprov3.

        MODIFY itab_relat TRANSPORTING vlrprov3 vlrjprov3

               WHERE nrseq = aux_relat-nrseq

...

 

...

    ELSE.

      itab_relat-vlrprov = aux_relat-vlmej.

      MODIFY itab_relat INDEX v_tabix TRANSPORTING vlrprov.

      itab_relat-vlrprov2 = aux_relat-vlmeir.

      MODIFY itab_relat INDEX v_tabix TRANSPORTING vlrprov2.

      IF aux_relat-tpcontab = 'C'.

        itab_relat-vlrprov3  = aux_relat-vlmej.

        MODIFY itab_relat INDEX v_tabix TRANSPORTING vlrprov3.

      ENDIF.

    ENDIF.

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

    MOVE aux_relat-vlmej TO v_vlmej.

    MOVE aux_relat-vlmeir TO v_vlmeir.

* << Fim da exclusão

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

    MOVE v_valor_p TO v_vlmej.

    MOVE v_valor_i TO v_vlmeir.

* << Fim da inclusão

    MOVE aux_relat-vlme_mes TO v_vlme_mes.

    ULINE.

    FORMAT COLOR COL_NORMAL INTENSIFIED ON.

    WRITE: /    sy-vline,

                text-006, text-022, aux_relat-nrseq,

                text-108, aux_relat-nrparcj.

    IF aux_relat-tpcontab = ' '.

      WRITE: text-110.

    ELSE.

      WRITE: text-109.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCBR112

 

...

      v_ok2            TYPE i,

      v_ok3(1)         TYPE c,

      v_modo_bi,

      v_vlpagj         LIKE /pws/zycbt112-vlme,

      v_vlpagir        LIKE /pws/zycbt112-vlme,

      v_vlpagc         LIKE /pws/zycbt112-vlme,

      v_vlpagj2        LIKE /pws/zycbt112-vlme,

      v_vlpagir2       LIKE /pws/zycbt112-vlme,

      v_vlpagc2        LIKE /pws/zycbt112-vlme,

      v_valor_p        LIKE /pws/zycbt112-vlme,

* >> Início da inclusão:

      v_valor_i        type /pws/zycbt112-vlme,

* << Fim da inclusão

      v_quebra(1)      TYPE c,

      v_codmod         LIKE /pws/zycbt154-codmod,

      v_vlmeir         LIKE /pws/zycbt112-vlme,

      v_vlmej          LIKE /pws/zycbt112-vlme,

      v_waers          LIKE /pws/zycbt112-waers,

      v_nrcorresp      LIKE /pws/zycbt154-nrcorresp,

      v_tamn           TYPE i VALUE 220,

      v_tjuros         LIKE /pws/zycbt129-vlme,

      v_tcomis         LIKE /pws/zycbt129-vlme,

      v_tir            LIKE /pws/zycbt129-vlme,

...

 

...

  CLEAR itab_zycbt113j.

  LOOP AT itab_zycbt113j WHERE nrseq = itab_zycbt112-nrseq.

    IF wa_zycbt007-fprovisao <> 'C'.

      CHECK ( itab_zycbt113j-dtpagto IS INITIAL ).

    ENDIF.

    IF itab_zycbt113p-dtinicio => itab_zycbt113j-dtinicio AND

       ( itab_zycbt113p-dtfinal <= itab_zycbt113j-dtfinal OR

         p_dtfim                <= itab_zycbt113j-dtfinal ).

      IF itab_zycbt113p-nrparc = '001'.

        p_vlme = itab_zycbt112-vlme.

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

      ELSEIF ( itab_zycbt113p-nrparc <> '001' AND

               itab_zycbt113p-nrdias < itab_zycbt113j-nrdias ).

        p_vlme = itab_zycbt112-sldesem.

* << Fim da exclusão

      ELSE.

        LOOP AT itab_zycbt113p_aux WHERE nrseq = itab_zycbt112-nrseq

                                    AND nrparc < itab_zycbt113p-nrparc.

          IF p_vlme IS INITIAL.

            p_vlme = itab_zycbt112-vlme - itab_zycbt113p_aux-vlme.

          ELSE.

            p_vlme = p_vlme - itab_zycbt113p_aux-vlme.

          ENDIF.

        ENDLOOP.

      ENDIF.

...