CE PLUS - Nota 001309

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Rotina Mensal

Data/Hora da Publicação: 10/05/2006 00:00:00

Data/Hora Última Alteração: 18/02/2011 17:23:33

Descrição da Nota: ROTINA MENSAL EXPORTAÇÃO CONTABILIZAÇÃO SEPARADA DE ACC E ACE = SIM

Sintoma

1) Está parametrizado na tabela zygl007 (Rotina mensal: Clearing e Separação de Juros de ACC e

ACE e contabilização separada de ACC e ACE = SIM).

- Criei um contrato de ACC e fiz uma vinculação no dia 01.04.2006.

- Rodei a rotina mensal no dia 30.04.2006: Na 1ª tela da rotina mensal os valores de juros de ACC

e ACE foram separados corretamente. Mas na 2ª tela da rotina (Relatório de contabilidade), o

programa está trazendo o valor total de provisão na diferença à provisionar para os juros de ACC

e ACE e está errado, pois dessa forma irá provisionar o dobro.

 

 

Solução

Ajuste efetuado para que qdo parametrizada a tabela zygl007 (Rotina mensal: Clearing, Separação de

Juros de ACC e ACE e contabilização separada de ACC e ACE = SIM), seja exibida na 2ª tela da rotina

mensal (Relatório de contabilidade), o valor total de provisão separado para o ACC e para o ACE e

para que a contabilização efetue o lançamento contábil com os valores corretos.

Ajuste efetuado na Liquidação para lançar a provisão na conta do ACE quando há separação ACC/ACE.

Ajuste efetuado no programa de encerramento para que lance a diferença de provisão x pagamento e

efetue o clearing nas contas corretas e com os valores separados de ACC/ACE.

Ajuste no programa de captação para que exiba e anule/estorne todos documentos de clearing gerados

no encerramento, pois pode haver mais de um quando há separação de ACC/ACE

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

ROTINA MENSAL VALOR DA DIFERENÇA A PROVISIONAR

VALORES DE MOEDAS SEM CASAS DECIMAIS INCORRETOS PARA TRANSFERÊNCIA LP/CP

ROTINA MENSAL COM TRANSFERÊNCIA DE LONGO PARA CURTO, GERAVA F-30 A MAIS

ROTINA MENSAL EXPORTAÇÃO - MENSAGEM EMPRESA NÃO ENCONTRADA

Informações Complementares

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

Nota Número 01309 Data: 10/05/2006 Hora: 11:44:49

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

 

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

Nota Número              : 01309

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00023

Agrupamento              : 00115

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

Referência às notas relacionadas:

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

 

00444  - 00001 - 6.0    - 00021  - VALORES DE MOEDAS SEM CASAS DECIMAIS INCORRETOS PARA TRANSFERÊNCI

00742  - 00002 - 6.0    - 00022  - ROTINA MENSAL VALOR DA DIFERENÇA A PROVISIONAR

00760  - 00003 - 6.0    - 00022  - ROTINA MENSAL EXPORTAÇÃO - MENSAGEM EMPRESA NÃO ENCONTRADA

01054  - 00004 - 6.0    - 00023  - ROTINA MENSAL COM TRANSFERÊNCIA DE LONGO PARA CURTO, GERAVA F-30

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

ROTINA MENSAL EXPORTAÇÃO CONTABILIZAÇÃO SEPARADA DE ACC E ACE = SIM

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

Palavras Chave:

ROTINA MENSAL EXPORTAÇÃO CONTABILIZAÇÃO SEPARADA DE ACC E ACE = SIM

LIQUIDAÇÃO ENCERRAMENTO ANULAÇÃO ENCERRAMENTO NA CAPTAÇÃO ROTINA CLEAR.

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

Objetos da nota:

REPS /PWS/MZYCB001F01

REPS /PWS/MZYCB001F04

REPS /PWS/MZYCB001O01

REPS /PWS/MZYCB004F02

REPS /PWS/ZYCBI003

REPS /PWS/ZYCBR003

REPS /PWS/ZYCBR056

 

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

Modificações efetuadas em REPS /PWS/MZYCB001F01

 

...

  CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

       EXPORTING

            v_bukrs = p_bukrs

            v_date  = p_budat

       IMPORTING

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

            v_year  = p_ano.

* << Fim da exclusão

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

            v_year  = p_ano

       EXCEPTIONS

            variante_de_exercicio        = 1

            data_nao_encontrada          = 2

            empresa_nao_encontrada       = 3

            period_in_not_valid          = 4

            period_not_assigned          = 5

            version_undefined            = 6

            OTHERS                       = 7.

* << Fim da inclusão

ENDFORM.

FORM reverse_document_zycbt_belnr2 USING value(belnr2)

                                         value(dtvincul)

                                         value(vlme)

                                         tabela.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB001F04

 

...

FORM anula_enceramento.

  SELECT * FROM /pws/zycbt154 INTO TABLE itab_zycbt154

         WHERE nrcorresp EQ /pws/zycbe001-nrseqc AND

               belnr_cl <> space.

  IF sy-subrc = 0.

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

    READ  TABLE itab_zycbt154 WITH KEY nrcorresp = /pws/zycbe001-nrseqc.

* << Fim da exclusão

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

    LOOP AT itab_zycbt154 WHERE NOT belnr_cl IS initial.

* << Fim da inclusão

    itab_zycbe033-mandt  = sy-mandt.

    itab_zycbe033-tcode  = 'FBRA'.

    itab_zycbe033-tabela = '/PWS/ZYCBT001'.

    itab_zycbe033-cpochv = /pws/zycbe001-nrseqc.

    itab_zycbe033-belnr  = itab_zycbt154-belnr_cl.

...

 

...

                                        cpochv = /pws/zycbe001-nrseqc

                                        tpmsg  = 'S'.

      IF sy-subrc EQ 0.

        PERFORM clear_date_batch.

        PERFORM executa_fb08.

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

        READ  TABLE itab_zycbt154 WITH KEY nrcorresp =

   /pws/zycbe001-nrseqc

                                           codmodul  = 'JD'.

        IF sy-subrc EQ 0.

          PERFORM fb08_diferenca.

        ENDIF.

        LOOP AT itab_zycbt154.

* << Fim da exclusão

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

          v_belnr_cl = itab_zycbt154-belnr_cl.

* << Fim da inclusão

          CLEAR: itab_zycbt154-status,

                 itab_zycbt154-belnr_cl.

          CHECK itab_zycbt154-nrcorresp EQ /pws/zycbe001-nrseqc.

          UPDATE /pws/zycbt154 SET status   = itab_zycbt154-status

                              belnr_cl = itab_zycbt154-belnr_cl

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

                          WHERE nrcorresp = /pws/zycbe001-nrseqc.

* << Fim da exclusão

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

                          WHERE nrcorresp = /pws/zycbe001-nrseqc

                            AND belnr_cl  = v_belnr_cl.

          MODIFY itab_zycbt154 TRANSPORTING belnr_cl

                               WHERE nrcorresp = /pws/zycbe001-nrseqc

                                 AND belnr_cl  = v_belnr_cl.

* << Fim da inclusão

          COMMIT WORK.

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

        ELSE.

          LOOP AT itab_zycbt032.

            MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                              itab_zycbt032-msg+50(50).

          ENDLOOP.

        ENDIF.

      ENDIF.

    ENDLOOP.

    LOOP AT itab_zycbt154 WHERE codmodul = 'JD'.

      PERFORM fb08_diferenca.

* << Fim da inclusão

        ENDLOOP.

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

    LOOP AT itab_zycbt154 WHERE NOT belnr_cl IS initial

                             OR codmodul EQ 'JD'.

    ENDLOOP.

    IF sy-subrc NE 0.

* << Fim da inclusão

        CLEAR /pws/zycbe001-f_encerrado.

        CLEAR /pws/zycbe001-dtencerra.

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

       UPDATE /pws/zycbt001 SET f_encerrado = /pws/zycbe001-f_encerrado

* << Fim da exclusão

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

      UPDATE /pws/zycbt001

                        SET f_encerrado = /pws/zycbe001-f_encerrado

* << Fim da inclusão

                                  dtencerra   = /pws/zycbe001-dtencerra

                                    WHERE nrseqc = /pws/zycbe001-nrseqc.

        COMMIT WORK.

        MESSAGE s015 WITH text-258.

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

      ELSE.

        LOOP AT itab_zycbt032.

          MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                            itab_zycbt032-msg+50(50).

        ENDLOOP.

      ENDIF.

* << Fim da exclusão

    ENDIF.

  ELSE.

    CLEAR /pws/zycbe001-f_encerrado.

    CLEAR /pws/zycbe001-dtencerra.

    UPDATE /pws/zycbt001 SET   f_encerrado = /pws/zycbe001-f_encerrado

...

 

...

       /pws/zycbe001-tpcontr(1) EQ 'P'.

    ENDIF.

  ENDIF.

ENDFORM.

FORM fb08_diferenca.

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

  PERFORM clear_date_batch.

  itab_zycbe033-tcode = 'FB08'.

  itab_zycbe033-mandt  = sy-mandt.

  itab_zycbe033-tabela = '/PWS/ZYCBT001'.

  itab_zycbe033-cpochv = /pws/zycbe001-nrseqc.

  itab_zycbe033-bukrs  = /pws/zycbe001-bukrs.

  itab_zycbe033-bldat  = /pws/zycbe001-dtencerra.

  itab_zycbe033-budat  = /pws/zycbe001-dtencerra.

  PERFORM determina_periodo USING itab_zycbe033-budat

                         CHANGING v_monat.

  PERFORM determina_ano USING itab_zycbe033-budat

                              itab_zycbe033-bukrs

                     CHANGING v_ano.

  PERFORM period_refresh.

  CALL FUNCTION 'FI_PERIOD_CHECK'

       EXPORTING

            i_bukrs          = itab_zycbe033-bukrs

            i_gjahr          = v_ano

            i_koart          = 'S'

            i_monat          = v_monat

       EXCEPTIONS

            error_period     = 1

            error_period_acc = 2

            OTHERS           = 3.

  IF sy-subrc = 0.

    itab_zycbe033-stgrd = '01'.

  ELSE.

    itab_zycbe033-stgrd = '02'.

    itab_zycbe033-budat = sy-datum.

  ENDIF.

* << Fim da inclusão

  itab_zycbe033-belnr = itab_zycbt154-belnr_pr.

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

  MODIFY itab_zycbe033 INDEX 1.

* << Fim da exclusão

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

  append itab_zycbe033.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYCB_TRANSACAO_FB08'

       EXPORTING

            v_modo          = v_modo_bi

       TABLES

            t_dados         = itab_zycbe033

...

 

...

      DELETE FROM /pws/zycbt154 WHERE codmod    = 'E' AND

                                 codmodul  = 'JD' AND

                                 tpcontr   = /pws/zycbe001-tpcontr AND

                                 nrcorresp = /pws/zycbe001-nrseqc AND

                                 belnr_pr  = itab_zycbt154-belnr_pr.

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

      DELETE itab_zycbt154 WHERE codmod    = 'E'

                             AND codmodul  = 'JD'

                             AND tpcontr   = /pws/zycbe001-tpcontr

                             AND nrcorresp = /pws/zycbe001-nrseqc

                             AND belnr_pr  = itab_zycbt154-belnr_pr.

* << Fim da inclusão

    ELSE.

      LOOP AT itab_zycbt032.

        MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                          itab_zycbt032-msg+50(50).

      ENDLOOP.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB001O01

 

...

      CLEAR /pws/zycbe002.

    ENDLOOP.

  ENDIF.

ENDMODULE.

MODULE exibir_encerramento OUTPUT.

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

  SELECT SINGLE belnr_cl FROM /pws/zycbt154 INTO v_belnr_cl

* << Fim da exclusão

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

  SELECT * FROM /pws/zycbt154 INTO TABLE itab_zycbt154

* << Fim da inclusão

             WHERE nrcorresp EQ /pws/zycbe001-nrseqc

               AND tpcontr   EQ /pws/zycbe001-tpcontr

               AND codmod    EQ 'E'.

  LEAVE TO LIST-PROCESSING.

  WRITE AT 1(30) sy-uline.

  WRITE:  /01 '|' NO-GAP, text-181,

           16 '|' NO-GAP, text-182,

           30 '|' NO-GAP.

  WRITE AT /1(30) sy-uline.

  FORMAT COLOR COL_NORMAL INTENSIFIED ON.

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

  SORT itab_zycbt154 BY belnr_cl.

  DELETE adjacent duplicates from itab_zycbt154 comparing belnr_cl.

* << Fim da inclusão

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

  WRITE: /01 '|' NO-GAP, v_belnr_cl,

* << Fim da exclusão

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

  LOOP AT itab_zycbt154.

    WRITE: /01 '|' NO-GAP, itab_zycbt154-belnr_cl,

* << Fim da inclusão

          16 '|' NO-GAP, /pws/zycbe001-dtencerra,

          30 '|' NO-GAP.

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

  ENDLOOP.

* << Fim da inclusão

  WRITE AT /1(30) sy-uline.

  SUPPRESS DIALOG.

ENDMODULE.

MODULE status_0400 OUTPUT.

  SET PF-STATUS '0400'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F02

 

...

        v_codaux2 LIKE /pws/zyglt316-codaux2,

        v_codaux3 LIKE /pws/zyglt316-codaux3.

  DATA: BEGIN OF itab_contas OCCURS 0.

          INCLUDE STRUCTURE /pws/zyglt316.

  DATA: END OF itab_contas.

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

  CLEAR /pws/zyglt009-nrdias_cp.

  SELECT SINGLE nrdias_cp

* << Fim da exclusão

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

  CLEAR /pws/zyglt009.

  SELECT SINGLE *

* << Fim da inclusão

         FROM /pws/zyglt009

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

         INTO /pws/zyglt009-nrdias_cp

* << Fim da exclusão

         WHERE bukrs EQ /pws/zycbt001-bukrs.

...

 

...

                INTO v_codaux1 SEPARATED BY space.

  ELSE.

    CONCATENATE 'JUROS' v_prazo INTO v_codaux1 SEPARATED BY space.

  ENDIF.

  v_codaux2 = /pws/zycbt001-tpcontr.

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

  if /pws/zyglt009-cont_rot_sep = 'S'.

    v_codaux3 = 'ACE'.

  endif.

* << Fim da inclusão

  REFRESH itab_contas.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

            bukrs           = /pws/zycbt001-bukrs

            ktosl           = 'PVE'

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCBI003

 

...

        d_newkoir    LIKE /pws/zycbe033-d_newko,

        c_newkoir    LIKE /pws/zycbe033-c_newko,

        d_sgtxtir    LIKE /pws/zycbe033-d_sgtxt,

        c_sgtxtir    LIKE /pws/zycbe033-c_sgtxt,

        blartir      LIKE /pws/zycbe033-blart,

* >> Início da inclusão:

        subtotal     TYPE c,

* << Fim da inclusão

      END OF itab_contabil.

* >> Início da inclusão:

DATA: itab_contabil_aux LIKE itab_contabil OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

DATA: BEGIN OF itab_relat OCCURS 50,

        tpcontab(2) TYPE c,

        nrseqc      LIKE /pws/zycbt001-nrseqc,

* >> Início da inclusão:

        ftpj        TYPE c,

* << Fim da inclusão

        nrcontr     LIKE /pws/zycbt001-nrcontr,

        tpcontr     LIKE /pws/zycbt001-tpcontr,

        nrparcp     LIKE /pws/zycbt002-nrparc,

        nrparcj     LIKE /pws/zycbt002-nrparc,

        nrinvoic    LIKE /pws/zycbt005-nrinvoic,

...

 

...

        txc         LIKE tcurr-ukurs,

        vlmej       LIKE /pws/zycbt001-vlme,

        vlmij       LIKE /pws/zycbt001-vlme,

        ftme        LIKE tcurr-ffact,

        ftmi        LIKE tcurr-ffact,

* >> Início da exclusão:

        ftpj        TYPE c,

* << Fim da exclusão

        d_newko     LIKE /pws/zycbe033-d_newko,

        c_newko     LIKE /pws/zycbe033-c_newko,

        kostl       LIKE /pws/zycbt001-kostl,

        prctr       LIKE /pws/zycbt001-prctr,

        fipos       LIKE /pws/zycbt001-fipos,

...

 

...

      itab_zycbt034 LIKE /pws/zycbt034 OCCURS 10 WITH HEADER LINE.

DATA: wa_itab_relat LIKE itab_relat,

      wa_zycbt007 LIKE /pws/zycbt007,

      v_contabilizado,

      v_cpochv    LIKE /pws/zycbe033-cpochv,

* >> Início da exclusão:

      v_codeven   LIKE /pws/zycbt011-codeven.

* << Fim da exclusão

* >> Início da inclusão:

      v_codeven   LIKE /pws/zycbt011-codeven,

      aux_relat   LIKE itab_relat.

* << Fim da inclusão

DATA: BEGIN OF wa_taxa_cambial,

        txc  LIKE tcurr-ukurs,

        ftme LIKE tcurr-ffact,

        ftmi LIKE tcurr-ffact,

      END OF wa_taxa_cambial.

...

 

...

        v_vlirprov   LIKE /pws/zycbt154-vlme,

        v_faux,

        v_waers      LIKE /pws/zycbt001-waers,

        v_vlme_mes   LIKE /pws/zycbt001-vlme,

        v_vlmi_mes   LIKE /pws/zycbt001-vlmi,

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

        aux_relat    LIKE itab_relat,

* << Fim da exclusão

        v_nrdias(8)  TYPE n,

        v_tjuros     LIKE /pws/zycbt004-vlme,

        v_tir        LIKE /pws/zycbt004-vlme,

        v_primeiro   TYPE c,

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

        v_sy_index   LIKE sy-tabix.

* << Fim da exclusão

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

        v_sy_index   LIKE sy-tabix,

        v_conta_dif  TYPE c,

        v_ftpj       LIKE itab_relat-ftpj,

        v_vlmej2     LIKE /pws/zycbt001-vlme,

        v_vlmeir2    LIKE /pws/zycbt001-vlme.

* << Fim da inclusão

  DATA: BEGIN OF itab_sub_tipo OCCURS 5,

          tpcontab(02) TYPE c,

          tpcontr  LIKE /pws/zycbt001-tpcontr,

          waers    LIKE /pws/zycbt001-waers,

          vlmej    LIKE /pws/zycbt001-vlme,

...

 

...

  ELSE.

    v_tamr = 229.

  ENDIF.

  NEW-PAGE LINE-SIZE v_tamr.

  PERFORM totaliza_valores_lancados.

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

  SORT itab_relat BY tpcontr nrseqc tpcontab nrcontr nrinvoic

* << Fim da exclusão

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

  SORT itab_relat BY tpcontr nrseqc ftpj tpcontab nrcontr nrinvoic

* << Fim da inclusão

                     dtvincul nrparcp nrparcj dtde.

  IF NOT itab_relat[] IS INITIAL.

    SELECT lifnr name1

           FROM lfa1

           INTO TABLE itab_lfa1

...

 

...

              172 itab_relat-vlrprov CURRENCY v_waers, v_waers,

              225 itab_relat-vlirprov CURRENCY v_waers NO-ZERO,

               AT v_tamr sy-vline.

      FORMAT COLOR OFF.

      ULINE.

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

    ENDIF.

    IF itab_relat-vlmej > 0.

      v_vlmej2  = v_vlmej2  + itab_relat-vlmej.

    ENDIF.

    IF itab_relat-vlmeir > 0.

      v_vlmeir2 = v_vlmeir2 + itab_relat-vlmeir.

    ENDIF.

    AT END OF ftpj.

      PERFORM verifica_provisao_liquidacao CHANGING v_separa.

      IF wa_zycbt007-fprovisao        EQ 'C'     AND

         ( /pws/zyglt009-calc_rot_sep EQ 'S'     OR

           /pws/zyglt009-cont_rot_sep EQ 'S' )   AND

         aux_relat-tpcontab           IS INITIAL AND

         ( aux_relat-tpcontr          EQ 'A'     OR

           aux_relat-tpcontr          EQ 'E' )   AND

         v_separa                     EQ 'X'.

        CLEAR: v_vlrjprov, v_vlirprov.

        LOOP AT itab_zycbt154 WHERE nrcorresp EQ aux_relat-nrseqc

                                AND bukrs     EQ aux_relat-bukrs

                                AND waers     EQ aux_relat-waers

                                AND gsber     EQ aux_relat-gsber

                                AND tpcontr   EQ aux_relat-tpcontr

                                AND bco       EQ aux_relat-bco

                                AND codmodul  NE 'C'

                                AND codmodul  NE 'CD'

                                AND codmodul  NE 'CF'

                                AND codmodul  NE 'CI'.

          PERFORM verifica_conta_acc_ace CHANGING v_conta_dif.

          IF v_conta_dif IS INITIAL.

            IF itab_zycbt154-codmodul EQ 'IR'.

              ADD itab_zycbt154-vlme TO v_vlirprov.

            ELSE.

              ADD itab_zycbt154-vlme TO v_vlrjprov.

            ENDIF.

          ENDIF.

        ENDLOOP.

        itab_relat-vlrprov  = v_vlmej2 - v_vlrjprov.

        itab_relat-vlirprov = v_vlmeir2 - v_vlirprov.

        MODIFY itab_relat INDEX v_sytabix TRANSPORTING vlrprov vlirprov.

* << Fim da inclusão

    ENDIF.

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

      CLEAR: v_vlmej2, v_vlmeir2.

    ENDAT.

* << Fim da inclusão

    AT END OF nrseqc.

      IF itab_relat-tpcontab IS INITIAL OR

         itab_relat-tpcontab EQ 'PR'    OR

         ( itab_relat-tpcontab   EQ 'C'   AND

           wa_zycbt007-fprovisao NE 'C' ).

...

 

...

                     148 text-058,

                     172 v_vlrjprov CURRENCY v_waers,

                     AT v_tamr sy-vline.

            FORMAT RESET.

          ENDIF.

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

          PERFORM verifica_provisao_liquidacao CHANGING v_separa.

          IF NOT ( wa_zycbt007-fprovisao        EQ 'C'     AND

                   ( /pws/zyglt009-calc_rot_sep EQ 'S'     OR

                     /pws/zyglt009-cont_rot_sep EQ 'S' )   AND

                   aux_relat-tpcontab           IS INITIAL AND

                   ( aux_relat-tpcontr          EQ 'A'     OR

                     aux_relat-tpcontr          EQ 'E' )   AND

                   v_separa                     EQ 'X' ).

* << Fim da inclusão

          itab_relat-vlrprov  = ( itab_relat-vlmej + v_tjuros ) -

                                  v_vlrjprov.

          itab_relat-vlrjprov = v_vlrjprov.

          itab_relat-vlirprov  = itab_relat-vlmeir - v_vlirprov.

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

          MODIFY itab_relat TRANSPORTING vlrprov vlirprov

                 WHERE nrseqc   = itab_relat-nrseqc

                   AND tpcontab = itab_relat-tpcontab.

* << Fim da exclusão

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

            MODIFY itab_relat INDEX v_sytabix

                   TRANSPORTING vlrprov vlirprov.

          ENDIF.

* << Fim da inclusão

        ELSE.

          itab_relat-vlirprov = itab_relat-vlmeir.

          itab_relat-vlrprov = itab_relat-vlmej.

          MODIFY itab_relat INDEX v_sytabix TRANSPORTING

                                           vlrprov vlirprov.

...

 

...

        FORMAT COLOR OFF.

        ULINE.

      ENDIF.

      CLEAR v_primeiro.

      PERFORM exibe_top_relatorio.

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

      CLEAR: v_vlmej2, v_vlmeir2.

* << Fim da inclusão

    ENDAT.

    IF NOT v_faux IS INITIAL.

      CLEAR v_faux.

      IF itab_relat-f_encerrado = 'I'.

        IF NOT v_vlmej IS INITIAL.

...

 

...

  NEW-PAGE LINE-SIZE v_tamr

           LINE-COUNT 65.

  PERFORM exibe_cabecalho_contabil.

  REFRESH itab_contabil.

  IF wa_zycbt007-fprovisao = 'C'.

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

   SORT itab_relat BY tpcontab nrseqc nrparcp nrparcj bukrs waers gsber

                                            tpcontr d_newko c_newko bco.

* << Fim da exclusão

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

    SORT itab_relat BY tpcontab nrseqc ftpj nrparcp nrparcj bukrs waers

                    gsber tpcontr d_newko c_newko bco vlrprov.

* << Fim da inclusão

  ELSE.

    SORT itab_relat BY tpcontab bukrs waers gsber

                     tpcontr d_newko c_newko bco.

  ENDIF.

  PERFORM processa_aberto.

...

 

...

    itab_contabil-vlrprov   = itab_contabil-vlme.

    APPEND itab_contabil.

    CLEAR itab_contabil.

  ELSE.

    itab_contabil-nrcorresp = wa_itab_relat-nrseqc.

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

  ENDIF.

  IF ( /pws/zyglt009-calc_rot_sep EQ 'S'   OR

       /pws/zyglt009-cont_rot_sep EQ 'S' ) AND

     wa_zycbt007-fprovisao      = 'C'.

    itab_contabil-subtotal = 'X'.

* << Fim da inclusão

  ENDIF.

  APPEND itab_contabil.

  CLEAR v_vlrjprov.

  v_vlrjprov = itab_contabil-vlme.

  CLEAR itab_contabil.

...

 

...

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

  READ TABLE itab_contas INDEX 1.

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

  IF sy-subrc = 0.

* << Fim da inclusão

  itab_relat-d_newko = itab_contas-konts.

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

  ENDIF.

* << Fim da inclusão

  CONCATENATE 'IRRF' v_prazo INTO v_codaux1 SEPARATED BY space.

...

 

...

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

  READ TABLE itab_contas INDEX 1.

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

  IF sy-subrc = 0.

* << Fim da inclusão

  itab_relat-c_newko = itab_contas-konth.

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

  ENDIF.

* << Fim da inclusão

  CLEAR itab_zycbt011.

...

 

...

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

  READ TABLE itab_contas INDEX 1.

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

  IF sy-subrc = 0.

* << Fim da inclusão

  itab_relat-d_newko = itab_contas-konts.

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

  ENDIF.

* << Fim da inclusão

  IF /pws/zyglt009-provjur_moeda = 'X' AND

...

 

...

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

  READ TABLE itab_contas INDEX 1.

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

  IF sy-subrc = 0.

* << Fim da inclusão

  itab_relat-c_newko = itab_contas-konth.

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

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM lancamento_provisao.

  DATA: v_descricao(30).

  SELECT * FROM /pws/zycbt013 INTO TABLE itab_zycbt013

       WHERE tabela = '/PWS/ZYCBT154'.

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

  IF ( /pws/zyglt009-calc_rot_sep EQ 'S'   OR

       /pws/zyglt009-cont_rot_sep EQ 'S' ) AND

     wa_zycbt007-fprovisao        EQ 'C'.

    DELETE itab_contabil WHERE NOT subtotal IS initial.

    REFRESH itab_contabil_aux.

    LOOP AT itab_contabil.

      CLEAR itab_contabil_aux.

      MOVE-CORRESPONDING itab_contabil TO itab_contabil_aux.

      COLLECT itab_contabil_aux.

    ENDLOOP.

    itab_contabil[] = itab_contabil_aux[].

  ELSE.

* << Fim da inclusão

  SORT itab_contabil.

  DELETE ADJACENT DUPLICATES FROM itab_contabil.

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

  ENDIF.

* << Fim da inclusão

  LOOP AT itab_contabil.

    CLEAR /pws/zycbt154.

    IF itab_contabil-vlrprov > 0 OR itab_contabil-vlmetransf > 0.

      IF itab_contabil-tpcontab IS INITIAL.

        CONCATENATE 'JU'

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCBR003

 

...

  v_base_dias     TYPE i,

  v_lin           TYPE i,

  v_imp           TYPE i,

  v_modo_bi,

  v_defator       LIKE tcurr-ffact,

* >> Início da exclusão:

  v_parafator     LIKE tcurr-tfact.

* << Fim da exclusão

* >> Início da inclusão:

  v_parafator     LIKE tcurr-tfact,

  v_separa        TYPE c,

  v_vlprov_aux    LIKE /pws/zycbt004-vlme.

* << Fim da inclusão

SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.

SELECT-OPTIONS s_bukrs FOR /pws/zycbt001-bukrs.

PARAMETERS: s_dtentr LIKE sy-datum.

SELECTION-SCREEN END OF BLOCK a1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-046.

...

 

...

        v_gsber    LIKE itab_relat-gsber,

        v_tpcontr  LIKE itab_relat-tpcontr,

        v_d_newko  LIKE itab_relat-d_newko,

        v_c_newko  LIKE itab_relat-c_newko,

        v_bco      LIKE itab_relat-bco,

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

        v_nrparcj  LIKE itab_relat-nrparcj.

* << Fim da exclusão

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

        v_nrparcj  LIKE itab_relat-nrparcj,

        v_ftpj     LIKE itab_relat-ftpj.

* << Fim da inclusão

  itab_relat_aux[] = itab_relat[].

  IF wa_zycbt007-fprovisao EQ 'C'.

    DELETE itab_relat

        WHERE tpcontab EQ 'C' AND

              vlrprov  IS initial.

...

 

...

           ( v_d_newko NE itab_relat-d_newko ) OR

           ( v_c_newko NE itab_relat-c_newko ) OR

           ( v_bco     NE itab_relat-bco     ) OR

           ( itab_relat-tpcontab EQ 'C'        AND

             v_nrparcj           NE itab_relat-nrparcj ).

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

          PERFORM processa_subtotal_waers USING v_vlprov v_vlprovir ' '.

* << Fim da exclusão

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

          IF ( /pws/zyglt009-calc_rot_sep EQ 'S' OR

               /pws/zyglt009-cont_rot_sep EQ 'S' ) AND

             ( itab_relat-tpcontr = 'A' OR

               itab_relat-tpcontr = 'E' ).

            PERFORM processa_subtotal_waers USING

                                                v_vlprov v_vlprovir 'X'.

          ELSE.

            PERFORM processa_subtotal_waers USING

                                                v_vlprov v_vlprovir ' '.

          ENDIF.

* << Fim da inclusão

          CLEAR: v_vlprov, v_vlprovir, v_nrseq.

        ENDIF.

      ENDIF.

    ELSE.

      ON CHANGE OF itab_relat-bukrs.

...

 

...

            itab_contabil-nrcorresp  = wa_itab_relat-nrseqc.

            APPEND itab_contabil.

            CLEAR itab_contabil.

          ENDIF.

        ELSE.

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

          IF itab_relat-nrseqc <> v_nrseq.

* << Fim da exclusão

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

          IF itab_relat-nrseqc              <> v_nrseq

             OR ( itab_relat-nrseqc            EQ v_nrseq AND

                  ( /pws/zyglt009-calc_rot_sep EQ 'S'     OR

                    /pws/zyglt009-cont_rot_sep EQ 'S' )   AND

                  itab_relat-ftpj              EQ v_ftpj ).

* << Fim da inclusão

            ADD itab_relat-vlmej    TO v_vlmej_w.

            ADD itab_relat-vlmeir   TO v_vlmeir_w.

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

            PERFORM verifica_provisao_liquidacao CHANGING v_separa.

            IF ( /pws/zyglt009-calc_rot_sep EQ 'S'       OR

                 /pws/zyglt009-cont_rot_sep EQ 'S' )     AND

               ( itab_contabil-vlrprov      IS INITIAL   OR

                 v_separa                   IS INITIAL ).

              CLEAR v_vlprov_aux.

              LOOP AT itab_relat_aux WHERE nrseqc = itab_relat-nrseqc.

                v_vlprov_aux = v_vlprov_aux + itab_relat_aux-vlrprov.

              ENDLOOP.

              IF v_vlprov_aux IS INITIAL.

                READ TABLE itab_zycbt154 WITH KEY

                                          nrcorresp = itab_relat-nrseqc.

                IF sy-subrc NE 0.

                  ADD itab_relat-vlmej  TO v_vlprov.

                ENDIF.

              ELSEIF v_vlprov IS INITIAL.

                v_vlprov = itab_relat-vlrprov.

              ENDIF.

            ELSE.

* << Fim da inclusão

            ADD itab_relat-vlrprov  TO v_vlprov.

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

            ENDIF.

* << Fim da inclusão

            ADD itab_relat-vlirprov TO v_vlprovir.

...

 

...

              IF wa_itab_relat-tpcontab EQ 'C'.

                itab_contabil-nrparcp = wa_itab_relat-nrparcj.

              ELSE.

                itab_contabil-nrparcp    = wa_itab_relat-nrparcp.

              ENDIF.

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

              PERFORM verifica_provisao_liquidacao CHANGING v_separa.

              IF ( /pws/zyglt009-calc_rot_sep EQ 'S'     OR

                   /pws/zyglt009-cont_rot_sep EQ 'S' )   AND

                 ( itab_contabil-vlrprov      IS INITIAL OR

                   v_separa                   IS INITIAL ).

                CLEAR v_vlprov_aux.

                LOOP AT itab_relat_aux WHERE nrseqc = itab_relat-nrseqc.

                  v_vlprov_aux = v_vlprov_aux + itab_relat_aux-vlrprov.

                ENDLOOP.

                IF v_vlprov_aux IS INITIAL.

                  READ TABLE itab_zycbt154 WITH KEY

                                          nrcorresp = itab_relat-nrseqc.

                  IF sy-subrc NE 0.

                    IF NOT itab_relat-vlmej_contr IS INITIAL.

                      itab_contabil-vlrprov = itab_relat-vlmej_contr.

                    ELSEIF NOT itab_relat-vlmej_ace IS INITIAL.

                      itab_contabil-vlrprov = itab_relat-vlmej_ace.

                    ENDIF.

                  ENDIF.

                ENDIF.

              ENDIF.

* << Fim da inclusão

              itab_contabil-kursf      = wa_itab_relat-txc.

              itab_contabil-dtcont     = s_dtentr.

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

              itab_contabil-vlme       = itab_relat-vlrprov.

* << Fim da exclusão

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

              IF /pws/zyglt009-calc_rot_sep = 'S'.

                itab_contabil-vlme = itab_relat-vlmej.

              ELSE.

                itab_contabil-vlme = itab_relat-vlrprov.

              ENDIF.

* << Fim da inclusão

              itab_contabil-vlmeir     = itab_relat-vlirprov.

              IF wa_zycbt007-fprovisao  <> space.

                itab_contabil-nrcorresp = wa_itab_relat-nrseqc.

              ENDIF.

              APPEND itab_contabil.

              CLEAR itab_contabil.

            ENDIF.

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

          ELSE.

            ADD itab_relat-vlrprov  TO v_vlprov.

* << Fim da inclusão

          ENDIF.

        ENDIF.

      ENDIF.

    ELSE.

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

      CLEAR v_vlmej_w.

* << Fim da inclusão

      ADD itab_relat-vlmetransf TO v_vlmej_w.

      MOVE-CORRESPONDING wa_itab_relat TO itab_contabil.

      itab_contabil-vlmetransf  =  wa_itab_relat-vlmetransf.

      itab_contabil-nrparcp     =  wa_itab_relat-nrparcp.

      itab_contabil-kursf       =  wa_itab_relat-txc.

...

 

...

    v_gsber   = itab_relat-gsber.

    v_tpcontr = itab_relat-tpcontr.

    v_d_newko = itab_relat-d_newko.

    v_c_newko = itab_relat-c_newko.

    v_bco     = itab_relat-bco.

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

    v_ftpj    = itab_relat-ftpj.

* << Fim da inclusão

  ENDLOOP.

  IF wa_zycbt007-fprovisao EQ 'C'.

    PERFORM processa_subtotal_waers USING v_vlprov v_vlprovir 'X'.

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

    IF /pws/zyglt009-calc_rot_sep NE 'S' AND

       /pws/zyglt009-cont_rot_sep NE 'S' AND

       wa_zycbt007-fprovisao      NE 'C'.

* << Fim da inclusão

    DELETE ADJACENT DUPLICATES FROM itab_contabil COMPARING ALL FIELDS.

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

    ENDIF.

* << Fim da inclusão

  ELSE.

...

 

...

    itab_tcurx-currdec = 2.

    v_vlmeaux = p_vlme.

  ENDIF.

  p_vlmi = ( ( p_taxa / v_defator ) * v_parafator ) * v_vlmeaux.

ENDFORM.

* >> Início da inclusão:

FORM verifica_conta_acc_ace CHANGING p_conta_dif.

  DATA: v_codaux2 LIKE /pws/zyglt316-codaux2,

        v_codaux3 LIKE /pws/zyglt316-codaux3.

  CLEAR p_conta_dif.

  v_codaux1 = 'J'.

  v_codaux2 = aux_relat-tpcontr.

  IF aux_relat-ftpj = 'A'.

    v_codaux3 = 'ACC'.

  ELSEIF aux_relat-ftpj = 'E'.

    v_codaux3 = 'ACE'.

  ENDIF.

  REFRESH itab_contas.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

            bukrs           = aux_relat-bukrs

            ktosl           = 'DSE'

            codaux1         = v_codaux1

            codaux2         = v_codaux2

            codaux3         = v_codaux3

       TABLES

            account         = itab_contas

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

  READ TABLE itab_contas INDEX 1.

  IF sy-subrc = 0.

    IF itab_zycbt154-d_newko NE itab_contas-konts.

      p_conta_dif = 'X'.

    ENDIF.

  ELSE.

    EXIT.

  ENDIF.

ENDFORM.

FORM verifica_provisao_liquidacao CHANGING p_separa.

  DATA: v_cont TYPE i.

  CLEAR p_separa.

  LOOP AT itab_zycbt154 WHERE nrcorresp EQ aux_relat-nrseqc

                          AND bukrs     EQ aux_relat-bukrs

                          AND waers     EQ aux_relat-waers

                          AND gsber     EQ aux_relat-gsber

                          AND tpcontr   EQ aux_relat-tpcontr

                          AND bco       EQ aux_relat-bco

                          AND codmodul  NE 'C'

                          AND codmodul  NE 'CD'

                          AND codmodul  NE 'CF'

                          AND codmodul  NE 'CI'.

    v_cont = v_cont + 1.

  ENDLOOP.

  IF v_cont > 1 OR sy-subrc NE 0.

    p_separa = 'X'.

  ELSE.

    LOOP AT itab_zycbt154 WHERE nrcorresp EQ aux_relat-nrseqc

                            AND bukrs     EQ aux_relat-bukrs

                            AND waers     EQ aux_relat-waers

                            AND gsber     EQ aux_relat-gsber

                            AND tpcontr   EQ aux_relat-tpcontr

                            AND bco       EQ aux_relat-bco

                            AND liquid    NE 'X'

                            AND codmodul  NE 'C'

                            AND codmodul  NE 'CD'

                            AND codmodul  NE 'CF'

                            AND codmodul  NE 'CI'.

    ENDLOOP.

    IF sy-subrc = 0.

      p_separa = 'X'.

    ENDIF.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/ZYCBR056

 

...

DATA: END OF itab_zycbt154.

DATA: BEGIN OF itab_zycbt004 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbt004.

DATA: END OF itab_zycbt004.

DATA: BEGIN OF itab_relat OCCURS 0,

* >> Início da exclusão:

      belnr  LIKE /pws/zycbt001-belnr,

      vlprov LIKE /pws/zycbt001-vlme,

      waers  LIKE /pws/zycbt001-waers,

      budat  LIKE sy-datum,

* << Fim da exclusão

* >> Início da inclusão:

      belnr   LIKE /pws/zycbt001-belnr,

      vlprov  LIKE /pws/zycbt001-vlme,

      waers   LIKE /pws/zycbt001-waers,

      budat   LIKE sy-datum,

      tpjuros LIKE /pws/zycbt004-tpjuros,

* << Fim da inclusão

      END OF itab_relat.

DATA: BEGIN OF itab_zycbe033 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbe033.

DATA: END OF itab_zycbe033.

DATA: BEGIN OF itab_zycbt034 OCCURS 0.

...

 

...

DATA: BEGIN OF itab_relat2 OCCURS 0,

      belnrpg  LIKE /pws/zycbt001-belnr,

      vlpagto  LIKE /pws/zycbt001-vlme,

      waers    LIKE /pws/zycbt001-waers,

      budat    LIKE sy-datum,

* >> Início da inclusão:

      tpjuros LIKE /pws/zycbt004-tpjuros,

* << Fim da inclusão

      END OF itab_relat2.

DATA: BEGIN OF itab_modo OCCURS 0.

DATA:   modo  LIKE /pws/zycbt039-modo,

        descr LIKE /pws/zycbt039-descr.

        INCLUDE STRUCTURE spopli.

DATA: END OF itab_modo.

DATA: v_nrseqc_aux LIKE /pws/zycbt001-nrseqc,

      v_totvlprv   LIKE /pws/zycbt001-vlme,

      v_totvlpg    LIKE /pws/zycbt001-vlme,

      vl_diferenca LIKE /pws/zycbt001-vlme,

* >> Início da inclusão:

      v_totvlprv_acc   LIKE /pws/zycbt001-vlme,

      v_totvlpg_acc    LIKE /pws/zycbt001-vlme,

      vl_diferenca_acc LIKE /pws/zycbt001-vlme,

      v_totvlprv_ace   LIKE /pws/zycbt001-vlme,

      v_totvlpg_ace    LIKE /pws/zycbt001-vlme,

      vl_diferenca_ace LIKE /pws/zycbt001-vlme,

      v_conta_acc      LIKE /pws/zyglt316-konth,

      v_conta_ace      LIKE /pws/zyglt316-konth,

      v_acc_ok         TYPE c,

      v_ace_ok         TYPE c,

* << Fim da inclusão

      v_modo_bi,

      ok_code      LIKE sy-ucomm,

      v_codeven    LIKE /pws/zycbt011-codeven,

      v_belnr_f_02 LIKE /pws/zycbt032-belnr,

      v_encerrado,

      v_dtlanc     LIKE sy-datum,

* >> Início da exclusão:

      v_codaux1    LIKE /pws/zyglt316-codaux1.

* << Fim da exclusão

* >> Início da inclusão:

      v_codaux1    LIKE /pws/zyglt316-codaux1,

      v_codaux3    LIKE /pws/zyglt316-codaux1.

* << Fim da inclusão

DATA: wa_zycbt007 LIKE /pws/zycbt007,

      wa_zycbt011 LIKE /pws/zycbt011.

PARAMETERS: p_nrseqc LIKE /pws/zycbt001-nrseqc,

            p_tpcont LIKE /pws/zycbt001-tpcontr,

            p_dtence LIKE /pws/zycbt001-dtencerra,

...

 

...

  IF p_tpcont+0(1) = 'P' OR  p_tpcont+0(1) = 'S'.

    PERFORM seleciona_pre_sec.

  ELSE.

    PERFORM seleciona_juros_prov.

  ENDIF.

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

  IF ( p_tpcont = 'A' OR p_tpcont = 'E' ) AND

     /pws/zyglt009-cont_rot_sep = 'S'     AND

     wa_zycbt007-fprovisao      = 'C'.

    PERFORM verifica_diferenca_acc_ace.

  ELSE.

* << Fim da inclusão

  LOOP AT itab_zycbt154.

    MOVE: itab_zycbt154-belnr_pr TO itab_relat-belnr,

          itab_zycbt154-vlme     TO itab_relat-vlprov,

          itab_zycbt154-waers    TO itab_relat-waers,

          itab_zycbt154-dtcont   TO itab_relat-budat.

...

 

...

          itab_zycbt004-dtpagto TO itab_relat2-budat.

    APPEND itab_relat2.

    v_totvlpg = v_totvlpg + itab_zycbt004-vlme.

  ENDLOOP.

  vl_diferenca = v_totvlprv - v_totvlpg.

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

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM exibe_dados.

  DATA: v_tabix LIKE sy-tabix.

  LEAVE TO LIST-PROCESSING.

  WRITE AT 1(40) sy-uline.

...

 

...

            16 '|' NO-GAP, (22) itab_relat-vlprov CURRENCY

            itab_relat-waers  RIGHT-JUSTIFIED,

            40 '|' NO-GAP.

    WRITE AT /1(40) sy-uline.

  ENDLOOP.

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

  IF v_totvlprv IS INITIAL.

    v_totvlprv = v_totvlprv_acc + v_totvlprv_ace.

  ENDIF.

* << Fim da inclusão

  FORMAT COLOR COL_TOTAL.

  WRITE: / '|' NO-GAP, text-003,

        16 '|' NO-GAP, (22) v_totvlprv CURRENCY itab_relat-waers

        RIGHT-JUSTIFIED,

        40 '|' NO-GAP.

...

 

...

            16 '|' NO-GAP, (22) itab_relat2-vlpagto

            CURRENCY itab_relat2-waers RIGHT-JUSTIFIED,

            40 '|' NO-GAP.

    WRITE AT /1(40) sy-uline.

  ENDLOOP.

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

  IF v_totvlpg IS INITIAL.

    v_totvlpg = v_totvlpg_acc + v_totvlpg_ace.

  ENDIF.

* << Fim da inclusão

  FORMAT COLOR COL_TOTAL.

  WRITE: /01 '|' NO-GAP, text-006,

          16 '|' NO-GAP, (22) v_totvlpg CURRENCY itab_relat-waers

          RIGHT-JUSTIFIED,

          40 '|' NO-GAP.

...

 

...

        LEAVE PROGRAM.

      ELSE.

        MOVE v_data2 TO v_dtlanc.

        IF NOT v_data2 IS INITIAL.

          PERFORM verfica_periodo.

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

          IF vl_diferenca NE 0.

* << Fim da exclusão

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

          IF vl_diferenca NE 0

             OR vl_diferenca_acc NE 0

             OR vl_diferenca_ace NE 0.

* << Fim da inclusão

            PERFORM f_02_encerramento.

          ELSE.

            IF itab_relat[]  IS INITIAL AND

               itab_relat2[] IS INITIAL.

              MESSAGE s063.

...

 

...

  ELSE.

    SELECT SINGLE * FROM t001w

      WHERE werks = p_werks.

    IF sy-subrc EQ 0.

      itab_zycbe033-brnch = t001w-j_1bbranch.

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

    ENDIF.

* << Fim da inclusão

    ENDIF.

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

  IF /pws/zyglt009-cont_rot_sep EQ 'S'     AND

     wa_zycbt007-fprovisao      EQ 'C'     AND

     v_codaux3                  IS INITIAL AND

     vl_diferenca               IS INITIAL AND

     vl_diferenca_acc           IS INITIAL AND

     vl_diferenca_ace           IS INITIAL AND

     v_acc_ok                   IS INITIAL AND

     v_ace_ok                   IS INITIAL.

    v_codaux3 = 'ACC'.

* << Fim da inclusão

  ENDIF.

  CLEAR itab_zyglt316.

  REFRESH itab_zyglt316.

  IF /pws/zyglt009-provjur_moeda = 'X' AND

     p_waers = wa_zycbt007-waersa.

...

 

...

       EXPORTING

            bukrs           = p_bukrs

            ktosl           = 'PVE'

            codaux1         = v_codaux1

            codaux2         = p_tpcont

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

            codaux3         = v_codaux3

* << Fim da inclusão

       TABLES

            account         = itab_zyglt316

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

...

 

...

  IF sy-subrc EQ 0 .

    READ TABLE itab_zyglt316 INDEX 1.

    itab_zycbe033-agkon = itab_zyglt316-konth.

  ENDIF.

  APPEND itab_zycbe033.

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

  IF v_codaux3                  EQ 'ACC' AND

     /pws/zyglt009-cont_rot_sep EQ 'S'   AND

     wa_zycbt007-fprovisao      EQ 'C'.

    LOOP AT itab_relat WHERE tpjuros = 'A'.

      itab_zycbt036-tcode   = 'F-30'.

      itab_zycbt036-tabela  = '/PWS/ZYCBT001'.

      itab_zycbt036-cpochv  = p_nrseqc.

      itab_zycbt036-belnr   = itab_relat-belnr.

      itab_zycbt036-dtdocto = itab_relat-budat.

      APPEND itab_zycbt036.

    ENDLOOP.

    LOOP AT itab_relat2 WHERE tpjuros = 'A'.

      itab_zycbt036-tcode   = 'F-30'.

      itab_zycbt036-tabela  = '/PWS/ZYCBT001'.

      itab_zycbt036-cpochv  = p_nrseqc.

      itab_zycbt036-belnr   = itab_relat2-belnrpg.

      itab_zycbt036-dtdocto = itab_relat2-budat.

      APPEND itab_zycbt036.

    ENDLOOP.

  ELSEIF v_codaux3              EQ 'ACE' AND

     /pws/zyglt009-cont_rot_sep EQ 'S'   AND

     wa_zycbt007-fprovisao      EQ 'C'.

    LOOP AT itab_relat WHERE tpjuros = 'E'.

      itab_zycbt036-tcode   = 'F-30'.

      itab_zycbt036-tabela  = '/PWS/ZYCBT001'.

      itab_zycbt036-cpochv  = p_nrseqc.

      itab_zycbt036-belnr   = itab_relat-belnr.

      itab_zycbt036-dtdocto = itab_relat-budat.

      APPEND itab_zycbt036.

    ENDLOOP.

    LOOP AT itab_relat2 WHERE tpjuros = 'E'.

      itab_zycbt036-tcode   = 'F-30'.

      itab_zycbt036-tabela  = '/PWS/ZYCBT001'.

      itab_zycbt036-cpochv  = p_nrseqc.

      itab_zycbt036-belnr   = itab_relat2-belnrpg.

      itab_zycbt036-dtdocto = itab_relat2-budat.

      APPEND itab_zycbt036.

    ENDLOOP.

  ELSE.

* << Fim da inclusão

  LOOP AT itab_relat.

    itab_zycbt036-tcode   = 'F-30'.

    itab_zycbt036-tabela  = '/PWS/ZYCBT001'.

    itab_zycbt036-cpochv  = p_nrseqc.

    itab_zycbt036-belnr   = itab_relat-belnr.

...

 

...

    itab_zycbt036-cpochv  = p_nrseqc.

    itab_zycbt036-belnr   = itab_relat2-belnrpg.

    itab_zycbt036-dtdocto = itab_relat2-budat.

    APPEND itab_zycbt036.

  ENDLOOP.

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

  ENDIF.

* << Fim da inclusão

  IF vl_diferenca NE 0.

    itab_zycbt036-tcode   = 'F-30'.

    itab_zycbt036-tabela  = '/PWS/ZYCBT001'.

    itab_zycbt036-cpochv  = p_nrseqc.

    itab_zycbt036-belnr   = v_belnr_f_02.

...

 

...

                                        tabela = '/PWS/ZYCBT001'

                                        cpochv = p_nrseqc

                                        tpmsg  = 'S'.

      IF sy-subrc = 0.

        MESSAGE i061 WITH text-020 itab_zycbt032-belnr.

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

        IF v_codaux3                  EQ 'ACC' AND

           /pws/zyglt009-cont_rot_sep EQ 'S'   AND

           wa_zycbt007-fprovisao      EQ 'C'.

          LOOP AT itab_zycbt154 WHERE d_newko = v_conta_acc

                                   OR c_newko = v_conta_acc.

            MOVE itab_zycbt032-belnr TO itab_zycbt154-belnr_cl.

            MOVE 'E'                 TO itab_zycbt154-status.

            MODIFY itab_zycbt154 INDEX sy-tabix.

          ENDLOOP.

          v_acc_ok = 'X'.

          CLEAR vl_diferenca.

        ELSEIF v_codaux3                  EQ 'ACE' AND

               /pws/zyglt009-cont_rot_sep EQ 'S'   AND

               wa_zycbt007-fprovisao      EQ 'C'.

          LOOP AT itab_zycbt154 WHERE d_newko = v_conta_ace

                                  OR c_newko = v_conta_ace.

            MOVE itab_zycbt032-belnr TO itab_zycbt154-belnr_cl.

            MOVE 'E'                 TO itab_zycbt154-status.

            MODIFY itab_zycbt154 INDEX sy-tabix.

          ENDLOOP.

          v_ace_ok = 'X'.

          CLEAR vl_diferenca.

        ELSE.

* << Fim da inclusão

        LOOP AT itab_zycbt154.

          MOVE itab_zycbt032-belnr TO itab_zycbt154-belnr_cl.

          MOVE 'E'                 TO itab_zycbt154-status.

          MODIFY itab_zycbt154 INDEX sy-tabix.

        ENDLOOP.

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

        ENDIF.

* << Fim da inclusão

        MODIFY /pws/zycbt154 FROM TABLE itab_zycbt154.

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

        IF v_codaux3                  EQ 'ACC'   AND

           v_ace_ok                   IS INITIAL AND

           /pws/zyglt009-cont_rot_sep EQ 'S'     AND

           wa_zycbt007-fprovisao      EQ 'C'.

          IF vl_diferenca_ace NE 0.

            CLEAR: vl_diferenca, vl_diferenca_acc.

            PERFORM f_02_encerramento.

          ELSE.

            v_codaux3 = 'ACE'.

            PERFORM efetua_clearing.

          ENDIF.

        ELSEIF v_codaux3                  EQ 'ACE'   AND

               v_acc_ok                   IS INITIAL AND

               /pws/zyglt009-cont_rot_sep EQ 'S'     AND

               wa_zycbt007-fprovisao      EQ 'C'.

          IF vl_diferenca_acc NE 0.

            CLEAR: vl_diferenca, vl_diferenca_ace.

            PERFORM f_02_encerramento.

          ELSE.

            v_codaux3 = 'ACC'.

            PERFORM efetua_clearing.

          ENDIF.

        ELSE.

* << Fim da inclusão

        UPDATE /pws/zycbt001

          SET:  f_encerrado = 'E'

                dtencerra   = v_dtlanc

          WHERE nrseqc     EQ p_nrseqc.

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

        ENDIF.

* << Fim da inclusão

        COMMIT WORK.

        MOVE 'X' TO v_encerrado.

        EXPORT v_encerrado TO MEMORY ID 'E003'.

        EXPORT v_dtlanc TO MEMORY ID 'E020'.

        LEAVE PROGRAM.

...

 

...

    ENDIF.

  ELSE.

    LOOP AT itab_zycbt034.

      MESSAGE i016 WITH itab_zycbt034-descricao.

    ENDLOOP.

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

    PERFORM estorno_f_02.

* << Fim da inclusão

  ENDIF.

  CLEAR: itab_zycbe033, itab_zycbt032, itab_zycbt034, itab_zycbt036,

         sy-ucomm.

  REFRESH: itab_zycbe033, itab_zycbt032, itab_zycbt034, itab_zycbt036.

ENDFORM.

...

 

...

ENDFORM.

FORM f_02_encerramento.

  DATA: v_monat LIKE t001b-frpe1,

        v_cta_desp LIKE /pws/zyglt316-konts,

        v_cta_prov LIKE /pws/zyglt316-konts.

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

  CLEAR v_belnr_f_02.

* << Fim da inclusão

  PERFORM get_parameters.

  itab_zycbe033-tcode  = 'F-02'.

  itab_zycbe033-tabela = '/PWS/ZYCBT001'.

  itab_zycbe033-cpochv = p_nrseqc.

  itab_zycbe033-budat = v_dtlanc.

...

 

...

  itab_zycbe033-waers  = p_waers.

  PERFORM verify_null_field USING wa_zycbt011-blart

                                  'BLART'

                                  text-012.

  itab_zycbe033-blart  = wa_zycbt011-blart.

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

  CLEAR v_codaux3.

  IF     vl_diferenca     IS INITIAL AND

         vl_diferenca_acc NE 0       AND

         vl_diferenca_ace NE 0.

    v_codaux3    = 'ACC'.

    vl_diferenca = vl_diferenca_acc.

  ELSEIF vl_diferenca     IS INITIAL AND

         vl_diferenca_acc NE 0       AND

         vl_diferenca_ace IS INITIAL.

    v_codaux3 = 'ACC'.

    vl_diferenca = vl_diferenca_acc.

  ELSEIF vl_diferenca     IS INITIAL AND

         vl_diferenca_acc IS INITIAL AND

         vl_diferenca_ace NE 0.

    v_codaux3 = 'ACE'.

    vl_diferenca = vl_diferenca_ace.

  ENDIF.

* << Fim da inclusão

  PERFORM verify_null_field USING vl_diferenca

                                  'VLME'

                                  text-016.

  itab_zycbe033-wrbtr  = abs( vl_diferenca ).

  itab_zycbe033-d_gsber = p_gsber.

...

 

...

       EXPORTING

            bukrs           = p_bukrs

            ktosl           = 'PVE'

            codaux1         = v_codaux1

            codaux2         = p_tpcont

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

            codaux3         = v_codaux3

* << Fim da inclusão

       TABLES

            account         = itab_zyglt316

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

...

 

...

       EXPORTING

            bukrs           = p_bukrs

            ktosl           = 'DSE'

            codaux1         = v_codaux1

            codaux2         = p_tpcont

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

            codaux3         = v_codaux3

* << Fim da inclusão

       TABLES

            account         = itab_zyglt316

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

...

 

...

      READ TABLE itab_zycbt032 WITH KEY tcode  = 'F-02'

                                        tabela = '/PWS/ZYCBT001'

                                        cpochv = p_nrseqc

                                        tpmsg  = 'S'.

      IF sy-subrc = 0.

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

        CLEAR itab_zycbt154.

* << Fim da inclusão

        MOVE itab_zycbt032-belnr TO v_belnr_f_02.

        MOVE: text-018              TO itab_zycbt154-codmod,

              text-017              TO itab_zycbt154-codmodul,

              p_tpcont              TO itab_zycbt154-tpcontr,

              v_dtlanc              TO itab_zycbt154-dtcont,

...

 

...

          itab_zycbt154-bco = p_bconeg.

        ENDIF.

        APPEND itab_zycbt154.

        MODIFY /pws/zycbt154 FROM TABLE itab_zycbt154.

        COMMIT WORK.

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

        IF v_codaux3                  EQ 'ACC' AND

           /pws/zyglt009-cont_rot_sep EQ 'S'   AND

           wa_zycbt007-fprovisao      EQ 'C'.

          CLEAR vl_diferenca_acc.

        ELSEIF v_codaux3                  EQ 'ACE' AND

               /pws/zyglt009-cont_rot_sep EQ 'S'   AND

               wa_zycbt007-fprovisao      EQ 'C'.

          CLEAR vl_diferenca_ace.

        ENDIF.

* << Fim da inclusão

        PERFORM efetua_clearing.

      ELSE.

        LOOP AT itab_zycbt032.

          MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                            itab_zycbt032-msg+50(50).

...

 

...

         sy-ucomm.

  REFRESH: itab_zycbe033, itab_zycbt032, itab_zycbt034, itab_zycbt036.

ENDFORM.

FORM estorno_f_02.

  DATA: v_monat LIKE t001b-frpe1.

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

  CHECK NOT v_belnr_f_02 IS INITIAL.

* << Fim da inclusão

  itab_zycbe033-tcode = 'FB08'.

  itab_zycbe033-tabela = '/PWS/ZYCBT154'.

  itab_zycbe033-cpochv = p_nrseqc.

  itab_zycbe033-belnr  = v_belnr_f_02.

  itab_zycbe033-bukrs  = p_bukrs.

...

 

...

  ELSE.

    itab_zycbe033-stgrd = '02'.

  ENDIF.

  APPEND itab_zycbe033.

  CALL FUNCTION '/PWS/ZYCB_TRANSACAO_FB08'

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

       EXPORTING

            v_modo          = v_modo_bi

* << Fim da inclusão

       TABLES

            t_dados         = itab_zycbe033

            t_campo         = itab_zycbt034

            t_zycbt032      = itab_zycbt032

       EXCEPTIONS

...

 

...

            OTHERS                     = 8.

ENDFORM.

MODULE user_command_0300 INPUT.

  CASE sy-ucomm.

    WHEN 'RW'.

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

      IF vl_diferenca NE 0.

* << Fim da exclusão

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

      IF vl_diferenca NE 0

         OR vl_diferenca_acc NE 0

         OR vl_diferenca_ace NE 0.

* << Fim da inclusão

        PERFORM f_02_encerramento.

      ELSE.

        PERFORM efetua_clearing.

      ENDIF.

  ENDCASE.

...

 

...

             AND codmodul  EQ 'JU'.

  SELECT * FROM /pws/zycbt004 INTO TABLE itab_zycbt004

           WHERE nrseqc EQ p_nrseqc

             AND tpdesp LIKE 'J%'.

ENDFORM.

* >> Início da inclusão:

FORM verifica_diferenca_acc_ace.

  IF /pws/zyglt009-provjur_moeda = 'X' AND

     p_waers = wa_zycbt007-waersa.

    CONCATENATE 'JUROS C' wa_zycbt007-waersa

                INTO v_codaux1 SEPARATED BY space.

  ELSE.

    v_codaux1 = 'JUROS C'.

  ENDIF.

  v_codaux3 = 'ACC'.

  REFRESH itab_zyglt316.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

            bukrs           = p_bukrs

            ktosl           = 'PVE'

            codaux1         = v_codaux1

            codaux2         = p_tpcont

            codaux3         = v_codaux3

       TABLES

            account         = itab_zyglt316

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

  READ TABLE itab_zyglt316 INDEX 1.

  IF sy-subrc = 0.

    v_conta_acc = itab_zyglt316-konth.

  ENDIF.

  v_codaux3 = 'ACE'.

  REFRESH itab_zyglt316.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

            bukrs           = p_bukrs

            ktosl           = 'PVE'

            codaux1         = v_codaux1

            codaux2         = p_tpcont

            codaux3         = v_codaux3

       TABLES

            account         = itab_zyglt316

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

  READ TABLE itab_zyglt316 INDEX 1.

  IF sy-subrc = 0.

    v_conta_ace = itab_zyglt316-konth.

  ENDIF.

  CLEAR: v_totvlprv_acc, v_totvlprv_ace, v_totvlpg_acc, v_totvlpg_ace.

  LOOP AT itab_zycbt154 WHERE c_newko = v_conta_acc.

    MOVE: itab_zycbt154-belnr_pr TO itab_relat-belnr,

          itab_zycbt154-vlme     TO itab_relat-vlprov,

          itab_zycbt154-waers    TO itab_relat-waers,

          itab_zycbt154-dtcont   TO itab_relat-budat,

          'A'                    TO itab_relat-tpjuros.

    APPEND itab_relat.

    v_totvlprv_acc = v_totvlprv_acc + itab_zycbt154-vlme.

  ENDLOOP.

  LOOP AT itab_zycbt004 WHERE tpjuros = 'A'.

    MOVE: itab_zycbt004-belnr   TO itab_relat2-belnrpg,

          itab_zycbt004-vlme    TO itab_relat2-vlpagto,

          itab_zycbt004-waers   TO itab_relat2-waers,

          itab_zycbt004-dtpagto TO itab_relat2-budat,

          itab_zycbt004-tpjuros TO itab_relat2-tpjuros.

    APPEND itab_relat2.

    v_totvlpg_acc = v_totvlpg_acc + itab_zycbt004-vlme.

  ENDLOOP.

  vl_diferenca_acc = v_totvlprv_acc - v_totvlpg_acc.

  LOOP AT itab_zycbt154 WHERE c_newko = v_conta_ace.

    MOVE: itab_zycbt154-belnr_pr TO itab_relat-belnr,

          itab_zycbt154-vlme     TO itab_relat-vlprov,

          itab_zycbt154-waers    TO itab_relat-waers,

          itab_zycbt154-dtcont   TO itab_relat-budat,

          'E'                    TO itab_relat-tpjuros.

    APPEND itab_relat.

    v_totvlprv_ace = v_totvlprv_ace + itab_zycbt154-vlme.

  ENDLOOP.

  LOOP AT itab_zycbt004 WHERE tpjuros = 'E'.

    MOVE: itab_zycbt004-belnr   TO itab_relat2-belnrpg,

          itab_zycbt004-vlme    TO itab_relat2-vlpagto,

          itab_zycbt004-waers   TO itab_relat2-waers,

          itab_zycbt004-dtpagto TO itab_relat2-budat,

          itab_zycbt004-tpjuros TO itab_relat2-tpjuros.

    APPEND itab_relat2.

    v_totvlpg_ace = v_totvlpg_ace + itab_zycbt004-vlme.

  ENDLOOP.

  vl_diferenca_ace = v_totvlprv_ace - v_totvlpg_ace.

  CLEAR: v_codaux3, v_acc_ok, v_ace_ok.

ENDFORM.

* << Fim da inclusão