CE PLUS - Nota 007549

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Captação

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

Data/Hora Última Alteração: 22/02/2011 13:07:49

Descrição da Nota: PROBLEMA NO PROGRAMA DE CAPTAÇÃO ( /PWS/ZYCB001 )

Sintoma

Programa não trazia o calculo correto dos juros, os registros da pasta de juros sumiam quando

alterava a data da liquidação e não recalculava as datas quando alterava o numero de dias

 

 

Solução

calculo correto, não apagar registros e fazer o recalculo dos dias das datas

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

CAPTAÇÃO - CALCULO JUROS DE CONTRATO NA PARCELA VIGENTE COM SLPAGAR

ROTINA MENSAL EXPORTAÇÃO E CAPTAÇÃO - CÁLCULO JUROS

CAPTAÇÃO - CALCULO DE JUROS DA PARCELA

CAPTAÇÃO PRORROGAÇÃO DE JUROS - FLAG ALTERA TAXA.

Informações Complementares

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

Nota Número 07549 Data: 07/11/2008 Hora: 16:33:41

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

 

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

Nota Número              : 07549

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00007

Agrupamento              : 00072

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

Referência às notas relacionadas:

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

 

01391  - 00004 - 6.0    - 00023  - CAPTAÇÃO PRORROGAÇÃO DE JUROS - FLAG ALTERA TAXA.

02253  - 00003 - 6.0    - 00025  - CAPTAÇÃO - CALCULO DE JUROS DA PARCELA

03094  - 00002 - 6.0    - 00026  - CAPTAÇÃO - CALCULO JUROS DE CONTRATO NA PARCELA VIGENTE COM SLPAG

03744  - 00001 - 7.0    - 00001  - ROTINA MENSAL EXPORTAÇÃO E CAPTAÇÃO - CÁLCULO JUROS

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

PROBLEMA NO PROGRAMA DE CAPTAÇÃO ( /PWS/ZYCB001 )

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

Palavras Chave:

PROBLEMA NO PROGRAMA DE CAPTAÇÃO ( /PWS/ZYCB001 ) - CALCULO DOS JUROS,

REGISTRO SOME QUANDO MUDA DTA.LIQ, RECALCULAR DATAS

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

Objetos da nota:

DYNP /PWS/SAPMZYCB001                        0101

REPS /PWS/MZYCB001F01

REPS /PWS/MZYCB001I01

REPT /PWS/SAPMZYCB001

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB001                        0101

 

MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0101

...

  FIELD /pws/zycbe001-fdtjuros MODULE fdtlanc_consistency2 ON INPUT.

  FIELD /pws/zycbe001-fdtlanc MODULE fdtlanc_consistency.

  CHAIN.

    FIELD: /pws/zycbe001-ftxt,

           /pws/zycbe001-txtinf.

    MODULE ftxt_consistency.

  ENDCHAIN.

  FIELD /pws/zycbe001-ffrcalc MODULE juros_dp.

  CHAIN.

    FIELD: /pws/zycbe001-dtentr, /pws/zycbe001-dtliquid.

* >> Início da exclusão:

    MODULE limpa_zycbt002 ON CHAIN-REQUEST.

* << Fim da exclusão

  ENDCHAIN.

 

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

Modificações efetuadas em REPS /PWS/MZYCB001F01

 

...

    itab_zycbt002-tpparc   = 'J'.

    itab_zycbt002-nrcontr  = /pws/zycbe001-nrcontr .

    itab_zycbt002-tpcontr  = /pws/zycbe001-tpcontr .

    itab_zycbt002-bconegoc = /pws/zycbe001-bconegoc.

    itab_zycbt002-bcofinan = /pws/zycbe001-bcofinan.

    itab_zycbt002-dtinicio = /pws/zycbe002-dtinicio.

    itab_zycbt002-dtfinal  = /pws/zycbe002-dtfinal.

    itab_zycbt002-nrdias   = /pws/zycbe002-nrdias.

    itab_zycbt002-nrdiasj  = /pws/zycbe002-nrdiasj.

    APPEND itab_zycbt002.

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

  else.

    itab_zycbt002-nrdias   = /pws/zycbe002-nrdias.

    itab_zycbt002-dtfinal  =

               ( /pws/zycbe002-dtinicio + /pws/zycbe002-nrdias ).

    /pws/zycbe002-dtfinal = itab_zycbt002-dtfinal.

    if itab_zycbt002-dtfinal > /PWS/ZYCBE001-DTLIQUID .

        MESSAGE i015 WITH text-497.

    else.

      modify itab_zycbt002 TRANSPORTING  nrdias

                                         dtfinal

                          WHERE NRPARC = /pws/zycbe002-NRPARC.

    endif.

* << Fim da inclusão

  ENDIF.

  /pws/zycbe002-txjtotal = /pws/zycbe002-txjfixa + /pws/zycbe002-txjvar.

  /pws/zycbe002-tptxjur  = /pws/zycbe002-tptxjur .

  IF NOT itab_zycbt003 IS INITIAL.

    READ TABLE itab_zycbt003 WITH KEY dtpror = itab_zycbt002-dtfinal.

    IF sy-subrc EQ 0.

      IF itab_zycbt003-falttx EQ ' '

      AND /pws/zycbe002-txjfixa  NE itab_zycbt002-txjfixa.

        MESSAGE i301.

        /pws/zycbe002-txjfixa   = itab_zycbt002-txjfixa.

...

 

...

      v_erro_bi = 'X'.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM calcj_pre_cambiais.

  DATA : v_liquid      LIKE /pws/zycbt006-vlme,

         v_dtcalc      LIKE /pws/zycbt006-dtpagext,

         v_dias        LIKE /pws/zycbt002-nrdias,

         v_nrdias      LIKE /pws/zycbt010-nrdias,

         v_slpagar     LIKE /pws/zycbt006-vlme,

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

         v_slpgant     LIKE /pws/zycbt006-vlme,

         v_vlme        LIKE /pws/zycbt002-vlme,

         v_vlmetot     LIKE /pws/zycbt002-vlme,

         v_vlfinal     LIKE /pws/zycbt006-vlme,

         v_prim        LIKE /pws/zycbt006-dtpagext,

* << Fim da inclusão

         v_nrparcj_aux LIKE /pws/zycbt002-nrparc.

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

  CLEAR: itab_zycbt010, v_slpagar.

* << Fim da exclusão

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

  CLEAR: itab_zycbt010,

         v_slpagar,

         v_vlme,

         v_vlmetot,

         v_vlfinal,

         v_prim.

* << Fim da inclusão

  READ TABLE itab_zycbt010 WITH KEY tptxjur = itab_zycbt002-tptxjur.

  v_nrdias = itab_zycbt010-nrdias.

  SELECT SINGLE * FROM /pws/zycbt006

                  WHERE nrseqc EQ /pws/zycbe001-nrseqc.

  CLEAR :  v_liquid, v_dias.

  IF sy-subrc EQ 0.

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

    IF itab_zycbt002j_aux[] IS INITIAL.

      itab_zycbt002j_aux[] = itab_zycbt002[].

    ENDIF.

* << Fim da inclusão

    SORT itab_zycbt006 BY dtpagto ASCENDING.

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

    LOOP AT itab_zycbt006 WHERE dtpagext >  itab_zycbt002-dtinicio AND

                                dtpagext <= itab_zycbt002-dtfinal.

      v_liquid = v_liquid + itab_zycbt006-vljur.

      v_dtcalc = itab_zycbt006-dtpagto.

    ENDLOOP.

* << Fim da exclusão

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

    CLEAR v_prim.

* << Fim da inclusão

    LOOP AT itab_zycbt006 WHERE dtpagext <= itab_zycbt002-dtfinal.

      SELECT SINGLE parid

             FROM /pws/zycbt005

             INTO itab_zycbt005-parid

             WHERE nrseqc = itab_zycbt006-nrseqc

               AND tpdesp = itab_zycbt006-tpdesp

               AND nrparc = itab_zycbt006-nrparc

               AND dtincl = itab_zycbt006-dtincl

               AND nrinvoic = itab_zycbt006-nrinvoic

               AND nrparcf = itab_zycbt006-nrparcf

               AND gsberf = itab_zycbt006-gsberf

               AND dtvincul = itab_zycbt006-dtvincul

               AND dtvencto = itab_zycbt006-dtvencto.

      v_slpagar = v_slpagar + ( itab_zycbt006-vlme *

                                itab_zycbt005-parid ).

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

    ENDLOOP.

* << Fim da exclusão

    v_slpagar = /pws/zycbe001-vlme - v_slpagar.

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

    IF itab_zycbt002j_aux[] IS INITIAL.

      itab_zycbt002j_aux[] = itab_zycbt002[].

    ENDIF.

* << Fim da exclusão

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

      v_vlfinal = itab_zycbt006-vlme .

      v_dtcalc = itab_zycbt006-dtpagto.

* << Fim da inclusão

    IF v_dtcalc EQ '00000000'.

      v_dtcalc = itab_zycbt002-dtinicio.

    ENDIF.

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

    IF v_dtcalc < itab_zycbt002-dtfinal.

      v_dias = itab_zycbt002-dtfinal - v_dtcalc.

* << Fim da exclusão

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

      IF NOT v_dtcalc IS INITIAL AND

             v_prim   IS INITIAL.

        v_dias = v_dtcalc - itab_zycbt002-dtinicio.

        v_prim  = v_dtcalc.

        IF itab_zycbt002-txjtotal > 0 AND

           v_dias > 0.

          v_vlme = /pws/zycbe001-vlme *

                              itab_zycbt002-txjtotal

                              / 100 * v_dias / v_nrdias.

          v_slpgant = v_slpagar.

* << Fim da inclusão

    ENDIF.

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

    CLEAR itab_zycbt002-vlme.

* << Fim da exclusão

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

      ELSE.

        v_dias = v_dtcalc -  v_prim.

* << Fim da inclusão

    IF itab_zycbt002-txjtotal > 0 AND

       v_dias > 0.

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

      itab_zycbt002-vlme = v_slpagar *

* << Fim da exclusão

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

          v_vlme = v_slpgant *

* << Fim da inclusão

                           itab_zycbt002-txjtotal

                           / 100 * v_dias / v_nrdias.

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

        else.

        clear v_vlmetot.

        ENDIF.

* << Fim da inclusão

    ENDIF.

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

    itab_zycbt002-vlme = itab_zycbt002-vlme + v_liquid.

* << Fim da exclusão

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

        v_vlmetot = v_vlmetot + v_vlme .

    ENDLOOP.

    v_slpgant = v_slpgant - v_vlfinal .

    v_dias = itab_zycbt002-dtfinal - v_dtcalc .

    v_vlme = v_slpgant *

                      itab_zycbt002-txjtotal

                      / 100 * v_dias / v_nrdias.

    v_vlmetot = v_vlmetot + v_vlme .

    itab_zycbt002-vlme =   v_vlmetot.

* << Fim da inclusão

  ELSE.

    v_calc = ' '.

    IF itab_zycbt002-nrdiasj IS INITIAL.

      itab_zycbt002-vlme =

         ( ( /pws/zycbe001-slpagar * ( itab_zycbt002-txjtotal / 100 ) )

              / itab_zycbt010-nrdias )

       * ( itab_zycbt002-dtfinal - itab_zycbt002-dtinicio ).

    ELSE.

      itab_zycbt002-vlme =

        ( ( /pws/zycbe001-slpagar * ( itab_zycbt002-txjtotal / 100 ) )

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCB001

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 497

 

Texto: (41 caracteres)

" Dt Final excede Dt Liquid. do Contrato !"

 

Comprimento máximo: 132