CE PLUS - Nota 004930

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Rotina Mensal

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

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

Descrição da Nota: CODE INSPECTOR(ROTINA MENSAL)

Sintoma

O código está passando pelo code inspector e retornando muitos erros.

 

 

Solução

Os erros foram corrigidos no F6D.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

ROTINA MENSAL EXPORTAÇÃO - COMISSÃO - BCO. NEGOCIADOR

ROTINA MENSAL EXPORTAÇÃO - DUPLICIDADE PROVISÃO COMISSÃO

DESENVOLVIMENTO ADICIONAL - ESTORNO DA ROTINA MENSAL.

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

CALCULO DO VALOR MI PARA JPY NA ROTINA MENSAL PARA CLERING NO PAGAMENTO

ROTINA MENSAL - ERRO AO CALCULAR OS JUROS P/ CONTRATOS COM ESCALONAMENTO

ROTINA MENSAL - EXPORTAÇÃO - VALOR JUROS

ROTINA MENSAL EXPORTAÇÃO - JUROS ACC X PRÉ

281688 - ROTINA MENSAL ULTIMA PARCELA - DEDUZ JUROS LIQUIDAÇÃO

ROTINA MENSAL EXPORTAÇÃO - ESTORNO MENSAL - DATA LANÇAMENTO ESTORNO

ROTINA MENSAL EXPORTAÇÃO /PWS/ZYCBT062

PAÍS DE DESTINO INDEFINIDO EM EMBARQUE POR PEDIDO DE COMPRA

ROTINA MENSAL EXPORTAÇÃO - TRANSFERÊNCIA LP/CP - CONTABILIZAÇÃO

CALCULO DO VALOR MI PARA JPY NA ROTINA MENSAL PARA CLEARING NO PAGAMENTO

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

ROTINA MENSAL EXPORTAÇÃO - TAXAS

ROTINA MENSAL EXPORTAÇÃO - CONTA DÉBITO NA MÃO COM 17 CARACTERES

ROTINA MENSAL EXPORTAÇÃO - NÃO CONTABILIZA F-02

ROTINA MENSAL EXPORTAÇÃO - EXCLUSÃO MENSAGEM WARNING

ROTINA MENSAL - CAMPO TAXA - MONTANTE CONVERTE

ROTINA MENSAL DE EXPORTAÇÃO - JUROS ACC X PRÉ

ROTINA MENSAL - DUPLICAR REGISTRO CONTRATO DE PT

Informações Complementares

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

Nota Número 04930 Data: 05/10/2007 Hora: 14:50:35

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

 

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

Nota Número              : 04930

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00015

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

Referência às notas relacionadas:

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

 

00471  - 00001 - 6.0    - 00021  - CALCULO DO VALOR MI PARA JPY NA ROTINA MENSAL PARA CLERING NO PAG

00474  - 00002 - 6.0    - 00021  - CALCULO DO VALOR MI PARA JPY NA ROTINA MENSAL PARA CLEARING NO PA

00673  - 00003 - 6.0    - 00022  - 281688 - ROTINA MENSAL ULTIMA PARCELA - DEDUZ JUROS LIQUIDAÇÃO

01033  - 00004 - 6.0    - 00022  - ROTINA MENSAL EXPORTAÇÃO - ESTORNO MENSAL - DATA LANÇAMENTO ESTOR

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

01309  - 00006 - 6.0    - 00023  - ROTINA MENSAL EXPORTAÇÃO CONTABILIZAÇÃO SEPARADA DE ACC E ACE = S

02434  - 00007 - 6.0    - 00025  - ROTINA MENSAL - DUPLICAR REGISTRO CONTRATO DE PT

02567  - 00008 - 6.0    - 00025  - ROTINA MENSAL - ERRO AO CALCULAR OS JUROS P/ CONTRATOS COM ESCALO

02625  - 00009 - 6.0    - 00025  - ROTINA MENSAL EXPORTAÇÃO - NÃO CONTABILIZA F-02

02670  - 00010 - 6.0    - 00026  - ROTINA MENSAL EXPORTAÇÃO - EXCLUSÃO MENSAGEM WARNING

02674  - 00011 - 6.0    - 00026  - ROTINA MENSAL EXPORTAÇÃO - COMISSÃO - BCO. NEGOCIADOR

02694  - 00012 - 6.0    - 00026  - ROTINA MENSAL EXPORTAÇÃO - TRANSFERÊNCIA LP/CP - CONTABILIZAÇÃO

03166  - 00013 - 6.0    - 00026  - ROTINA MENSAL - EXPORTAÇÃO - VALOR JUROS

03221  - 00014 - 6.0    - 00026  - ROTINA MENSAL EXPORTAÇÃO - CONTA DÉBITO NA MÃO COM 17 CARACTERES

03289  - 00015 - 6.0    - 00026  - ROTINA MENSAL - CAMPO TAXA - MONTANTE CONVERTE

03450  - 00016 - 7.0    - 00001  - DESENVOLVIMENTO ADICIONAL - ESTORNO DA ROTINA MENSAL.

03457  - 00017 - 7.0    - 00001  - ROTINA MENSAL EXPORTAÇÃO /PWS/ZYCBT062

03651  - 00018 - 7.0    - 00001  - ROTINA MENSAL DE EXPORTAÇÃO - JUROS ACC X PRÉ

03756  - 00019 - 7.0    - 00001  - ROTINA MENSAL EXPORTAÇÃO - DUPLICIDADE PROVISÃO COMISSÃO

03942  - 00020 - 7.0    - 00002  - ROTINA MENSAL EXPORTAÇÃO - TAXAS

04193  - 00021 - 7.0    - 00002  - ROTINA MENSAL EXPORTAÇÃO - JUROS ACC X PRÉ

04606  - 00022 - 7.0    - 00002  - PAÍS DE DESTINO INDEFINIDO EM EMBARQUE POR PEDIDO DE COMPRA

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

CODE INSPECTOR(ROTINA MENSAL)

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

Palavras Chave:

CODE INSPECTOR(ROTINA MENSAL)

 

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

Objetos da nota:

REPS /PWS/ZYCBI003

REPS /PWS/ZYCBR003

REPT /PWS/ZYCBR003

 

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

Modificações efetuadas em REPS /PWS/ZYCBI003

 

...

        fcode LIKE rsmpe-func,

      END OF itab_status.

DATA: BEGIN OF itab_total_ac OCCURS 0,

      waers LIKE /pws/zycbt001-waers,

      slacc LIKE /pws/zycbt001-vlme,

      slace LIKE /pws/zycbt001-vlme,

      END OF itab_total_ac.

DATA: itab_zycbt009  LIKE /pws/zycbt009 OCCURS 3   WITH HEADER LINE,

      itab_zycbt010  LIKE /pws/zycbt010 OCCURS 2   WITH HEADER LINE,

      itab_zycbt011  LIKE /pws/zycbt011 OCCURS 5   WITH HEADER LINE,

* >> Início da exclusão:

      itab_zycbt013  LIKE /pws/zycbt013 OCCURS 5   WITH HEADER LINE,

* << Fim da exclusão

      itab_zycbt022  LIKE /pws/zycbt022 OCCURS 5   WITH HEADER LINE,

* >> Início da exclusão:

      itab_zycbt029  LIKE /pws/zycbt154 OCCURS 10  WITH HEADER LINE,

* << Fim da exclusão

      itab_zycbt154  LIKE /pws/zycbt154 OCCURS 10  WITH HEADER LINE,

      itab_tcurx     LIKE tcurx         OCCURS 10  WITH HEADER LINE.

* >> Início da exclusão:

DATA: BEGIN OF itab_zycbt154t OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbt154.

DATA: END OF itab_zycbt154t.

DATA: BEGIN OF itab_zycbt001_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbt001.

DATA: END OF itab_zycbt001_aux.

DATA: BEGIN OF itab_zycbt002_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbt002.

DATA: END OF itab_zycbt002_aux.

* << Fim da exclusão

DATA : BEGIN OF itab_zycbt036 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbt036.

DATA : END OF itab_zycbt036.

DATA: BEGIN OF itab_contabil OCCURS 20,

        tpcontab(2)  TYPE c,

        tpcontr      LIKE /pws/zycbt001-tpcontr,

        bco          LIKE /pws/zycbt001-bconegoc,

        descbanc     LIKE lfa1-name1,

        dtcont       LIKE sy-datum,

        bukrs        LIKE /pws/zycbt001-bukrs,

...

 

...

      wa_zycbt007 LIKE /pws/zycbt007,

      v_contabilizado,

      v_cpochv    LIKE /pws/zycbe033-cpochv,

      v_codeven   LIKE /pws/zycbt011-codeven,

      aux_relat   LIKE itab_relat.

DATA: BEGIN OF wa_taxa_cambial,

        txc  LIKE tcurr-ukurs,

        ftme LIKE tcurr-ffact,

        ftmi LIKE tcurr-ffact,

      END OF wa_taxa_cambial.

* >> Início da exclusão:

DATA: v_tamn       TYPE i VALUE 248,

* << Fim da exclusão

* >> Início da inclusão:

  DATA:

* << Fim da inclusão

      v_dias_mes   TYPE i,

* >> Início da exclusão:

      v_agkon      LIKE /pws/zycbe033-agkon,

      v_newko      LIKE /pws/zycbe033-d_newko,

* << Fim da exclusão

      v_data       LIKE /pws/zycbt154-dtcont,

      v_totac      LIKE /pws/zycbt001-vlme,

      v_premio     LIKE /pws/zycbt136-vlprinc,

      v_dias       TYPE i,

      v_dias3      TYPE i,

...

 

...

                margem_cambio_nao_encontrada = 4

                derived_2_times              = 5

                montante_nao_encontrado      = 6

                tx_juros_nao_encontrada      = 7

                dias_base_nao_encontrado     = 8

                dias_periodo_nao_encontrado  = 9

                me_nao_encontrada            = 10

                ctg_cambio_nao_encontrada    = 11

                dtbase_nao_encontrada        = 12

                OTHERS                       = 13.

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

      CASE sy-subrc.

        WHEN 1.

        WHEN 2.

        WHEN 3.

        WHEN 4.

        WHEN 5.

        WHEN 6.

        WHEN 7.

        WHEN 8.

        WHEN 9.

        WHEN 10.

        WHEN 11.

        WHEN 12.

        WHEN 13.

        WHEN OTHERS.

      ENDCASE.

* << Fim da inclusão

    ENDIF.

    itab_msg-nrseqc   = itab_zycbt001-nrseqc.

    itab_msg-nrcontr  = itab_zycbt001-nrcontr.

    itab_msg-tpcontr  = itab_zycbt001-tpcontr.

    itab_msg-tpmsg    = 'E'.

    APPEND itab_msg.

  ELSE.

    MOVE-CORRESPONDING itab_relat TO wa_taxa_cambial.

    v_ok = 'X'.

    IF NOT v_liq IS INITIAL.

...

 

...

  ENDIF.

ENDFORM.

FORM exibe_relatorio.

  FIELD-SYMBOLS:

    <fs_itab_relat> LIKE LINE OF itab_relat[].

  DATA: v_nrlines    TYPE i,

        v_vlmej      LIKE /pws/zycbt001-vlme,

        v_vlmeir     LIKE /pws/zycbt001-vlme,

        v_vlmejc(16),

        v_vlmij      LIKE /pws/zycbt001-vlme,

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

        v_vlmiir     LIKE /pws/zycbt001-vlme,

        v_vlmijc(16),

* << Fim da exclusão

        v_nrcorresp  LIKE /pws/zycbt154-nrcorresp,

        v_vlrjprov   LIKE /pws/zycbt154-vlme,

        v_vlirprov   LIKE /pws/zycbt154-vlme,

        v_faux,

        v_waers      LIKE /pws/zycbt001-waers,

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

        v_vlme_mes   LIKE /pws/zycbt001-vlme,

        v_vlmi_mes   LIKE /pws/zycbt001-vlmi,

* << Fim da exclusão

        v_nrdias(8)  TYPE n,

        v_tjuros     LIKE /pws/zycbt004-vlme,

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

        v_tir        LIKE /pws/zycbt004-vlme,

* << Fim da exclusão

        v_primeiro   TYPE c,

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

        v_sy_index   LIKE sy-tabix,

* << Fim da exclusão

        v_conta_dif  TYPE c,

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

        v_ftpj       LIKE itab_relat-ftpj,

* << Fim da exclusão

        v_vlmej2     LIKE /pws/zycbt001-vlme,

        v_vlmeir2    LIKE /pws/zycbt001-vlme.

...

 

...

      itab_relat-vlmeir =

      itab_relat-vlmeir * ( 10 ** ( itab_tcurx-currdec - 2 ) ).

      MODIFY itab_relat.

    ENDIF.

    v_sytabix = v_sytabix + 1.

    wa_itab_relat = itab_relat.

    IF NOT itab_relat-txc IS INITIAL AND

           itab_relat-tpcontab NE 'T'.

      v_txc = itab_relat-txc.

    ENDIF.

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

    v_sy_index = sy-tabix.

* << Fim da exclusão

    READ TABLE itab_lfa1 WITH KEY lifnr = itab_relat-bco.

    IF sy-subrc EQ 0.

      itab_relat-descbanc = itab_lfa1-name1.

    ELSE.

      CLEAR itab_relat-descbanc.

    ENDIF.

    CLEAR v_nrdias.

    IF NOT itab_relat-dtate IS INITIAL AND

       NOT itab_relat-dtde  IS INITIAL.

      v_nrdias = itab_relat-dtate - itab_relat-dtde.

...

 

...

          ENDIF.

        ELSE.

          itab_relat-vlirprov = itab_relat-vlmeir.

          itab_relat-vlrprov = itab_relat-vlmej.

          MODIFY itab_relat INDEX v_sytabix TRANSPORTING

                                           vlrprov vlirprov.

        ENDIF.

        MOVE itab_relat-vlmej  TO v_vlmej.

        MOVE itab_relat-vlmij  TO v_vlmij.

        MOVE itab_relat-vlmeir TO v_vlmeir.

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

        MOVE itab_relat-vlme_mes TO v_vlme_mes.

        MOVE itab_relat-vlmi_mes TO v_vlmi_mes.

* << Fim da exclusão

        ULINE.

        PERFORM calcula_vlmi USING aux_relat-tpcontr

                                   aux_relat-waers

                                   v_vlmej

                                   v_txc

                             CHANGING v_vlmij.

        FORMAT COLOR COL_NORMAL INTENSIFIED ON.

        WRITE: /    sy-vline,

                    text-106,

                172 v_vlmej CURRENCY v_waers,

...

 

...

                itab_total_ac-waers.

    WRITE: AT v_tamr sy-vline.

    FORMAT COLOR OFF.

    ULINE.

  ENDLOOP.

  DESCRIBE TABLE itab_msg LINES v_nrlines.

  CHECK NOT v_nrlines IS INITIAL.

  NEW-PAGE.

  PERFORM exibe_mensagens.

ENDFORM.

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

FORM verifica_taxa_juros USING value(p_txj).

  CLEAR itab_msg.

  IF p_txj IS INITIAL.

    MOVE-CORRESPONDING itab_zycbt001 TO itab_msg.

    itab_msg-tpmsg    = 'W'.

    itab_msg-msg      = text-004.

    APPEND itab_msg.

  ENDIF.

ENDFORM.

* << Fim da exclusão

FORM exibe_cabecalho.

  DATA: v_tamc TYPE i,

        v_dia_sem(20),

        v_textodia(23),

        v_s_dtentr(10).

  SELECT SINGLE butxt INTO (t001-butxt)

               FROM t001

               WHERE bukrs = s_bukrs.

  SELECT SINGLE *

    FROM /pws/zycbt021

...

 

...

  ULINE.

ENDFORM.

FORM exibe_dia_da_semana USING p_dia_sem.

  CALL FUNCTION '/PWS/ZYCB_DIA_DA_SEMANA'

       EXPORTING

            datum         = sy-datum

       IMPORTING

            dia_da_semana = p_dia_sem

       EXCEPTIONS

            OTHERS        = 1.

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

  CASE sy-subrc.

    WHEN 1.

  ENDCASE.

* << Fim da inclusão

ENDFORM.

FORM processa_dados_contabil.

  itab_status-fcode = 'RCON'.

  APPEND itab_status.

  IF NOT v_contabilizado IS INITIAL OR

         s_rbrela = 'X'.

    itab_status-fcode = 'CONT'.

    APPEND itab_status.

  ENDIF.

  SET PF-STATUS '003' EXCLUDING itab_status.

...

 

...

            bukrs           = itab_relat-bukrs

            ktosl           = 'DSE'

            codaux1         = v_codaux1

            codaux2         = v_codaux2

       TABLES

            account         = itab_contas

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

  ENDCASE.

* << Fim da inclusão

  READ TABLE itab_contas INDEX 1.

  IF sy-subrc = 0.

    itab_relat-d_newko = itab_contas-konts.

  ENDIF.

  CONCATENATE 'IRRF' v_prazo INTO v_codaux1 SEPARATED BY space.

  v_codaux2 = v_tpcontr.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

            bukrs           = itab_relat-bukrs

            ktosl           = 'PVE'

            codaux1         = v_codaux1

            codaux2         = v_codaux2

       TABLES

            account         = itab_contas

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

  ENDCASE.

* << Fim da inclusão

  READ TABLE itab_contas INDEX 1.

  IF sy-subrc = 0.

    itab_relat-c_newko = itab_contas-konth.

  ENDIF.

  CLEAR itab_zycbt011.

  v_tpcontr = itab_relat-tpcontr.

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

    IF itab_relat-tpcontr(1) EQ 'A' AND

       itab_relat-ftpj       EQ 'E'.

      v_codeven = '005E'.

...

 

...

            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.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

  ENDCASE.

* << Fim da inclusão

  READ TABLE itab_contas INDEX 1.

  IF sy-subrc = 0.

    itab_relat-d_newko = itab_contas-konts.

  ENDIF.

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

     itab_relat-waers = wa_zycbt007-waersa.

    CONCATENATE 'JUROS' v_prazo wa_zycbt007-waersa

                INTO v_codaux1 SEPARATED BY space.

  ELSE.

    CONCATENATE 'JUROS' v_prazo INTO v_codaux1 SEPARATED BY space.

...

 

...

            ktosl           = 'PVE'

            codaux1         = v_codaux1

            codaux2         = v_codaux2

            codaux3         = v_codaux3

       TABLES

            account         = itab_contas

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

  ENDCASE.

* << Fim da inclusão

  READ TABLE itab_contas INDEX 1.

  IF sy-subrc = 0.

    itab_relat-c_newko = itab_contas-konth.

  ENDIF.

ENDFORM.

FORM lancamento_provisao.

  DATA: v_descricao(30).

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

  SELECT * FROM /pws/zycbt013 INTO TABLE itab_zycbt013

       WHERE tabela = '/PWS/ZYCBT154'.

* << Fim da exclusão

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

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

         wa_zycbt007-fprovisao        EQ 'C' ).

    LOOP AT itab_contabil WHERE NOT subtotal IS initial.

      v_sytabix = sy-tabix.

      READ TABLE itab_contabil WITH KEY

                                    nrcorresp = itab_contabil-nrcorresp

                                    vlrprov   = itab_contabil-vlrprov

                                    subtotal  = ' '.

      IF sy-subrc = 0.

...

 

...

      IF NOT itab_contabil-vlmetransf IS INITIAL.

        itab_zycbe033-wrbtr   = itab_contabil-vlmetransf.

      ELSE.

        itab_zycbe033-wrbtr   = itab_contabil-vlrprov.

      ENDIF.

      IF wa_zycbt007-fdtdoc = 'L'.

        itab_zycbe033-bldat   = itab_zycbe033-budat.

      ELSE.

        itab_zycbe033-bldat   = sy-datum.

      ENDIF.

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

      READ TABLE itab_zycbt001

* << Fim da inclusão

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

      READ TABLE itab_zycbt001 WITH KEY

                                       nrseqc = itab_contabil-nrcorresp.

* << Fim da exclusão

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

        WITH KEY nrseqc = itab_contabil-nrcorresp+2(8).

* << Fim da inclusão

      IF sy-subrc = 0.

        itab_zycbe033-brnch = itab_zycbt001-j_1bbranch.

      ENDIF.

      itab_zycbe033-bktxt   = wa_zycbt007-bktxt.

      itab_zycbe033-kursf   = itab_contabil-kursf.

      itab_zycbe033-blart   = itab_contabil-blart.

      itab_zycbe033-d_gsber = itab_contabil-gsber.

      itab_zycbe033-d_kostl = itab_contabil-kostl.

      itab_zycbe033-d_prctr = itab_contabil-prctr.

      itab_zycbe033-d_fipos = itab_contabil-fipos.

      itab_zycbe033-d_fictr = itab_contabil-fictr.

      itab_zycbe033-c_gsber = itab_contabil-gsber.

      READ TABLE itab_zycbt001

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

        WITH KEY nrseqc  = itab_contabil-nrcorresp.

* << Fim da exclusão

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

        WITH KEY nrseqc  = itab_contabil-nrcorresp+2(8).

* << Fim da inclusão

      IF sy-subrc = 0.

        itab_zycbe033-werks = itab_zycbt001-werks.

      ENDIF.

      IF NOT itab_contabil-fipos_transf IS INITIAL AND

                                     itab_contabil-tpcontab EQ 'T'.

        itab_zycbe033-d_fipos = itab_contabil-fipos_transf.

        itab_zycbe033-c_fipos = itab_contabil-fipos_transf.

      ENDIF.

      REFRESH itab_zyglt321.

      IF itab_contabil-tpcontab IS INITIAL OR

...

 

...

            ELSEIF itab_zyglt321-cpocb = 'NRCONTR'.

              itab_zycbe033-d_zuonr = /pws/zycbt001-nrcontr.

              itab_zycbe033-c_zuonr = /pws/zycbt001-nrcontr.

            ENDIF.

          WHEN 'ZTERM'.

            IF itab_zyglt321-cpocb = 'ZTERM'.

              itab_zycbe033-zterm = /pws/zycbt001-zterm.

            ENDIF.

        ENDCASE.

      ENDLOOP.

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

      CALL CUSTOMER-FUNCTION '002'

        TABLES

          t_dados = itab_zycbe033.

* << Fim da exclusão

      APPEND itab_zycbe033.

      IF NOT itab_contabil-vlirprov IS INITIAL.

        IF itab_contabil-tpcontab EQ 'C'.

          CONCATENATE 'CI'

            itab_contabil-bco       itab_contabil-bukrs

            itab_contabil-gsber     itab_contabil-waers

            itab_contabil-d_newkoir itab_contabil-c_newkoir

            INTO itab_zycbe033-cpochv.

        ELSE.

          CONCATENATE 'IR' itab_contabil-bco       itab_contabil-bukrs

                           itab_contabil-gsber     itab_contabil-waers

                        itab_contabil-d_newkoir itab_contabil-c_newkoir

                           INTO itab_zycbe033-cpochv.

        ENDIF.

        itab_zycbe033-wrbtr   = itab_contabil-vlirprov.

        itab_zycbe033-d_newko = itab_contabil-d_newkoir.

        itab_zycbe033-c_newko = itab_contabil-c_newkoir.

        itab_zycbe033-blart   = itab_contabil-blartir.

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

        CALL CUSTOMER-FUNCTION '003'

          TABLES

            t_dados = itab_zycbe033.

* << Fim da exclusão

        APPEND itab_zycbe033.

      ENDIF.

      LOOP AT itab_zycbt034.

        MESSAGE i016 WITH itab_zycbt034-descricao.

      ENDLOOP.

      IF     itab_zycbt034   IS INITIAL AND

         NOT itab_zycbe033[] IS INITIAL.

        IF itab_contabil-tpcontab IS INITIAL OR

           itab_contabil-tpcontab = 'PR'     OR

           itab_contabil-tpcontab EQ 'C'.

...

 

...

                        itab_contabil-tpcontr itab_contabil-bco

                        itab_contabil-bukrs   itab_contabil-gsber

                        itab_contabil-waers itab_contabil-d_newko

                        itab_contabil-c_newko INTO v_cpochv.

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

                                              tabela = '/PWS/ZYCBT002'

                                              cpochv = v_cpochv

                                              tpmsg  = 'S'.

          ENDIF.

          IF sy-subrc = 0.

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

            CALL CUSTOMER-FUNCTION '007'.

* << Fim da exclusão

            UPDATE /pws/zycbt001 SET f_encerrado = 'C'

                      WHERE f_encerrado = 'I'

                      AND   nrseqc      = itab_contabil-nrcorresp(8).

            MOVE-CORRESPONDING itab_contabil TO /pws/zycbt154.

            IF NOT itab_contabil-vlmetransf IS INITIAL.

              /pws/zycbt154-vlme   = itab_contabil-vlmetransf.

            ELSE.

              /pws/zycbt154-vlme   = itab_contabil-vlrprov.

            ENDIF.

            IF itab_contabil-tpcontab IS INITIAL.

...

 

...

      CONCATENATE itab_zycbt154-codmodul itab_zycbt154-tpcontr

                  itab_zycbt154-bco      itab_zycbt154-dtcont

                  itab_zycbt154-bukrs    itab_zycbt154-gsber

                  itab_zycbt154-waers    itab_zycbt154-d_newko

                  itab_zycbt154-c_newko  INTO v_cpochv.

      READ TABLE itab_zycbt032 WITH KEY tcode  = 'FB08'

                                        tabela = '/PWS/ZYCBT154'

                                        cpochv = v_cpochv

                                        tpmsg  = 'S'.

      IF sy-subrc EQ 0.

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

        CALL CUSTOMER-FUNCTION '008'.

* << Fim da exclusão

        IF wa_zycbt007-fprovisao EQ space.

          MOVE-CORRESPONDING itab_zycbt154 TO /pws/zycbt154.

          DELETE /pws/zycbt154.

        ELSE.

          UPDATE /pws/zycbt154 SET status = 'S'

                    WHERE codmod    = itab_zycbt154-codmod

                      AND codmodul  = itab_zycbt154-codmodul

                      AND tpcontr   = itab_zycbt154-tpcontr

                      AND codint    = itab_zycbt154-codint

                      AND bco       = itab_zycbt154-bco

...

 

...

       EXPORTING

            bukrs           = itab_relat-bukrs

            ktosl           = 'CPT'

            codaux1         = v_codaux1

       TABLES

            account         = itab_contas

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

  ENDCASE.

* << Fim da inclusão

  READ TABLE itab_contas INDEX 1.

  itab_relat-d_newko = itab_contas-konth.

  CONCATENATE itab_relat-tpcontr 'C' INTO v_codaux1 SEPARATED BY space.

  CLEAR:   itab_contas.

  REFRESH: itab_contas.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

            bukrs           = itab_relat-bukrs

            ktosl           = 'CPT'

            codaux1         = v_codaux1

       TABLES

            account         = itab_contas

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

  ENDCASE.

* << Fim da inclusão

  READ TABLE itab_contas INDEX 1.

  itab_relat-c_newko = itab_contas-konth.

ENDFORM.

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

FORM processa_periodo_jc USING value(p_vlme)

                               value(p_dtinicio) TYPE d

* << Fim da exclusão

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

FORM processa_periodo_jc USING

* << Fim da inclusão

                               value(p_dtfim) TYPE d.

  DATA: v_liq,

        v_dtde  LIKE /pws/zycbt002-dtinicio,

        v_dtate LIKE /pws/zycbt002-dtfinal,

        v_saldo LIKE /pws/zycbt001-vlme.

  CLEAR itab_zycbt006_aux.

  REFRESH itab_zycbt006_aux.

  LOOP AT itab_zycbt006 WHERE nrseqc = itab_zycbt001-nrseqc.

    MOVE itab_zycbt006 TO itab_zycbt006_aux.

    APPEND itab_zycbt006_aux.

...

 

...

                           AND dtinicio < p_dtfim.

    CLEAR v_liq.

    v_dtde  = itab_zycbt002j-dtinicio.

    v_dtate = itab_zycbt002j-dtfinal.

    LOOP AT itab_zycbt006 WHERE nrseqc   = itab_zycbt001-nrseqc    AND

                                dtpagto  > itab_zycbt002j-dtinicio AND

                                dtpagto <= itab_zycbt002j-dtfinal.

      v_liq = 'X'.

      v_saldo = itab_zycbt001-slpagar.

      LOOP AT itab_zycbt006_aux WHERE dtpagto >= itab_zycbt006-dtpagto.

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

        SELECT SINGLE parid FROM /pws/zycbt005

* << Fim da exclusão

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

        SELECT parid UP TO 1 ROWS FROM /pws/zycbt005

* << Fim da inclusão

                  INTO /pws/zycbt005-parid

                  WHERE nrseqc   = itab_zycbt006_aux-nrseqc

                    AND tpdesp   = itab_zycbt006_aux-tpdesp

                    AND nrparc   = itab_zycbt006_aux-nrparc

                    AND nrinvoic = itab_zycbt006_aux-nrinvoic

                    AND gsberf   = itab_zycbt006_aux-gsberf

                    AND dtvincul = itab_zycbt006_aux-dtvincul

                    AND dtvencto = itab_zycbt006_aux-dtvencto

                    AND nrparcf  = itab_zycbt006_aux-nrparcf.

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

        ENDSELECT.

* << Fim da inclusão

        IF /pws/zycbt005-parid > 0.

          itab_zycbt006_aux-vlme = itab_zycbt006_aux-vlme *

                                   /pws/zycbt005-parid.

        ENDIF.

        v_saldo = v_saldo + itab_zycbt006_aux-vlme.

      ENDLOOP.

      itab_relat-dtde  = v_dtde.

      IF itab_zycbt006-dtpagto < s_dtentr.

        itab_relat-dtate = itab_zycbt006-dtpagto.

      ELSE.

...

 

...

                                           itab_zycbt002j-tptxjur

                                           itab_relat-dtde

                                           itab_relat-dtate

                                           itab_zycbt001-waers

                                           itab_zycbt011-ctmoed

                                           'A'.

    ENDLOOP.

    IF v_dtate < itab_zycbt002j-dtfinal.

      v_saldo = itab_zycbt001-slpagar.

      LOOP AT itab_zycbt006_aux WHERE dtpagto > v_dtde.

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

        SELECT SINGLE parid FROM /pws/zycbt005

* << Fim da exclusão

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

        SELECT parid UP TO 1 ROWS FROM /pws/zycbt005

* << Fim da inclusão

                  INTO /pws/zycbt005-parid

                  WHERE nrseqc   = itab_zycbt006_aux-nrseqc

                    AND tpdesp   = itab_zycbt006_aux-tpdesp

                    AND nrparc   = itab_zycbt006_aux-nrparc

                    AND nrinvoic = itab_zycbt006_aux-nrinvoic

                    AND gsberf   = itab_zycbt006_aux-gsberf

                    AND dtvincul = itab_zycbt006_aux-dtvincul

                    AND dtvencto = itab_zycbt006_aux-dtvencto

                    AND nrparcf  = itab_zycbt006_aux-nrparcf.

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

        ENDSELECT.

* << Fim da inclusão

        IF /pws/zycbt005-parid > 0.

          itab_zycbt006_aux-vlme = itab_zycbt006_aux-vlme *

                                   /pws/zycbt005-parid.

        ENDIF.

        v_saldo = v_saldo + itab_zycbt006_aux-vlme.

      ENDLOOP.

      itab_relat-dtde  = v_dtde.

      IF itab_zycbt002j-dtfinal < s_dtentr.

        itab_relat-dtate = itab_zycbt002j-dtfinal.

      ELSE.

...

 

...

                                           itab_zycbt002j-tptxjur

                                           itab_relat-dtde

                                           itab_relat-dtate

                                           itab_zycbt001-waers

                                           itab_zycbt011-ctmoed

                                           'A'.

    ENDIF.

    IF v_liq IS INITIAL.

      v_saldo = itab_zycbt001-slpagar.

      LOOP AT itab_zycbt006_aux WHERE dtpagto > v_dtde.

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

        SELECT SINGLE parid FROM /pws/zycbt005

* << Fim da exclusão

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

        SELECT parid UP TO 1 ROWS FROM /pws/zycbt005

* << Fim da inclusão

                  INTO /pws/zycbt005-parid

                  WHERE nrseqc   = itab_zycbt006_aux-nrseqc

                    AND tpdesp   = itab_zycbt006_aux-tpdesp

                    AND nrparc   = itab_zycbt006_aux-nrparc

                    AND nrinvoic = itab_zycbt006_aux-nrinvoic

                    AND gsberf   = itab_zycbt006_aux-gsberf

                    AND dtvincul = itab_zycbt006_aux-dtvincul

                    AND dtvencto = itab_zycbt006_aux-dtvencto

                    AND nrparcf  = itab_zycbt006_aux-nrparcf.

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

        ENDSELECT.

* << Fim da inclusão

        IF /pws/zycbt005-parid > 0.

          itab_zycbt006_aux-vlme = itab_zycbt006_aux-vlme *

                                   /pws/zycbt005-parid.

        ENDIF.

        v_saldo = v_saldo + itab_zycbt006_aux-vlme.

      ENDLOOP.

      itab_relat-dtde  = v_dtde.

      IF itab_zycbt002j-dtfinal < s_dtentr.

        itab_relat-dtate = itab_zycbt002j-dtfinal.

      ELSE.

...

 

...

                   CHANGING p_ano.

  CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

       EXPORTING

            v_bukrs = p_bukrs

            v_date  = p_budat

       IMPORTING

            v_year  = p_ano.

ENDFORM.

FORM preenche_contas_pgto.

  DATA: v_codaux1 LIKE /pws/zyglt316-codaux1,

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

        v_codaux2 LIKE /pws/zyglt316-codaux2,

        v_codaux3 LIKE /pws/zyglt316-codaux3,

        v_tpcontr LIKE /pws/zycbt001-tpcontr.

* << Fim da exclusão

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

        v_codaux3 LIKE /pws/zyglt316-codaux3.

* << Fim da inclusão

  DATA: BEGIN OF itab_contas OCCURS 0.

          INCLUDE STRUCTURE /pws/zyglt316.

  DATA: END OF itab_contas.

  IF /pws/zyglt009-calc_rot_sep = 'N' AND

     /pws/zyglt009-cont_rot_sep = 'S'.

    v_codaux3 = 'ACE'.

  ELSE.

    IF  itab_zycbt004-tpjuros = 'A'.

      v_codaux3 = 'ACC'.

    ELSEIF itab_zycbt004-tpjuros = 'E'.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCBR003

 

...

  /pws/zycbt005,

  /pws/zycbt039.

DATA:

  itab_zycbt001      LIKE /pws/zycbt001 OCCURS 10 WITH HEADER LINE,

  itab_zycbt001_ence LIKE /pws/zycbt001 OCCURS 10 WITH HEADER LINE,

  itab_zycbt002p     LIKE /pws/zycbt002 OCCURS 20 WITH HEADER LINE,

  itab_zycbt002j     LIKE /pws/zycbt002 OCCURS 20 WITH HEADER LINE,

  itab_zycbt002j_aux LIKE /pws/zycbt002 OCCURS 20 WITH HEADER LINE,

  itab_zycbt002c TYPE STANDARD TABLE OF /pws/zycbt002

    WITH HEADER LINE,

* >> Início da exclusão:

  itab_zycbt074 TYPE STANDARD TABLE OF t_zycbt074

    WITH HEADER LINE,

* << Fim da exclusão

* >> Início da inclusão:

  itab_zycbt074 TYPE STANDARD TABLE OF t_zycbt074,

* << Fim da inclusão

  itab_zycbt003      LIKE /pws/zycbt003 OCCURS 20 WITH HEADER LINE,

  itab_zycbt004      LIKE /pws/zycbt004 OCCURS 20 WITH HEADER LINE,

  itab_zycbt004_pr   LIKE /pws/zycbt004 OCCURS 20 WITH HEADER LINE,

  itab_zycbt004_ence LIKE /pws/zycbt004 OCCURS 20 WITH HEADER LINE,

  itab_zycbt005      LIKE /pws/zycbt005 OCCURS 20 WITH HEADER LINE,

  itab_zycbt005_pos  LIKE /pws/zycbt005 OCCURS 10 WITH HEADER LINE,

  itab_zycbt005_ence LIKE /pws/zycbt005 OCCURS 10 WITH HEADER LINE,

  itab_zycbt006_pos  LIKE /pws/zycbt006 OCCURS 10 WITH HEADER LINE,

  itab_zycbt006      LIKE /pws/zycbt006 OCCURS 20 WITH HEADER LINE,

  itab_zycbt006_aux  LIKE /pws/zycbt006 OCCURS 20 WITH HEADER LINE,

...

 

...

  itab_period        LIKE casdayattr OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF itab_contas OCCURS 0.

        INCLUDE STRUCTURE /pws/zyglt316.

DATA: END OF itab_contas.

DATA: BEGIN OF itab_zycbt062 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbt062.

DATA: END OF itab_zycbt062.

DATA: BEGIN OF itab_modo OCCURS 0.

        INCLUDE STRUCTURE spopli.

DATA: END OF itab_modo.

* >> Início da exclusão:

DATA: BEGIN OF itab_tcurr OCCURS 1.

        INCLUDE STRUCTURE tcurr.

DATA: END OF itab_tcurr.

* << Fim da exclusão

DATA:

  wa_zycbt011 LIKE /pws/zycbt011.

DATA:

  v_dtoperac      LIKE sy-datum,

  v_dtinicio      LIKE sy-datum,

  v_dtexec        LIKE sy-datum,

  v_dtentr        LIKE sy-datum,

  v_sytabix       LIKE sy-tabix,

  v_monat         LIKE t001b-frpe1,

  v_ano           LIKE t009b-bdatj,

...

 

...

          itab_relat-vlme = itab_relat-vlme + itab_zycbt006_pos-vlme.

        ENDLOOP.

      ENDIF.

    ENDIF.

    PERFORM escalonamento USING v_dtfinal.

    IF NOT itab_relat-vlme IS INITIAL.

      IF v_ffrcalc NE 'L' AND

         v_ffrcalc NE 'C' AND

         v_ffrcalc NE 'S'.

        PERFORM processa_periodo_j USING itab_relat-vlme

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

                                         v_dtoperac

* << Fim da exclusão

                                         v_dtfinal

                                         'A'.

      ELSEIF v_ffrcalc EQ 'C'.

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

        PERFORM processa_periodo_jc USING itab_relat-vlme

                                          v_dtoperac

* << Fim da exclusão

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

        PERFORM processa_periodo_jc USING

* << Fim da inclusão

                                          v_dtfinal.

      ELSE.

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

        PERFORM processa_periodo_jl USING itab_relat-vlme

                                         v_dtoperac

* << Fim da exclusão

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

        PERFORM processa_periodo_jl USING

* << Fim da inclusão

                                         v_dtfinal.

      ENDIF.

      LOOP AT itab_zycbt004 WHERE nrseqc = itab_zycbt001-nrseqc.

        PERFORM preenche_itab_relat_pago.

      ENDLOOP.

      PERFORM preenche_variacao_cambial USING v_vlmeaux.

    ENDIF.

  ENDLOOP.

  CLEAR: itab_zycbt001, itab_zycbt002p, itab_zycbt002j.

ENDFORM.

FORM preenche_itab_relat.

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

  DATA v_dtexec LIKE sy-datum.

* << Fim da exclusão

  itab_relat-nrseqc   = itab_zycbt001-nrseqc.

  itab_relat-nrcontr  = itab_zycbt001-nrcontr.

  itab_relat-tpcontr  = itab_zycbt001-tpcontr.

  itab_relat-nrparcj  = itab_zycbt002j-nrparc.

  itab_relat-nrparcp  = itab_zycbt002p-nrparc.

  itab_relat-przcontr = itab_zycbt001-przcontr.

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

  CONCATENATE s_dtentr(6) '01' INTO v_dtexec.

* << Fim da exclusão

  itab_relat-nrinvoic    = itab_zycbt005-nrinvoic.

...

 

...

    PERFORM preenche_contas.

  ELSE.

    itab_relat-kostl        = itab_zycbt001-kostl.

    itab_relat-prctr        = itab_zycbt001-prctr.

    itab_relat-fipos        = itab_zycbt001-fipos.

    itab_relat-fipos_transf = itab_zycbt001-fipos_transf.

    PERFORM preenche_contas_transferencia.

  ENDIF.

ENDFORM.

FORM processa_periodo_j USING value(p_vlme)

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

                              value(p_dtinicio) TYPE d

* << Fim da exclusão

                              value(p_dtfim) TYPE d

                              value(p_tpjuros).

  DATA: v_dtate LIKE sy-datum.

  CLEAR itab_zycbt002j.

  LOOP AT itab_zycbt002j WHERE nrseqc   = itab_zycbt001-nrseqc

                           AND dtinicio < p_dtfim.

    itab_relat-vlme = p_vlme.

    itab_relat-ftpj = p_tpjuros.

    itab_relat-dtde = itab_zycbt002j-dtinicio.

    IF itab_zycbt002j-dtfinal < p_dtfim.

...

 

...

      MODIFY itab_zycbt001.

      UPDATE /pws/zycbt001 SET f_encerrado = 'E'

                        WHERE nrseqc = itab_zycbt001-nrseqc.

    ENDIF.

    CLEAR v_slvinc.

    v_slvinc = itab_zycbt001-slvinc.

    LOOP AT itab_zycbt005_pos WHERE nrseqc = itab_zycbt001-nrseqc.

      v_slvinc = v_slvinc + itab_zycbt005_pos-vlvinc.

    ENDLOOP.

    PERFORM processa_saldo_acc USING v_slvinc

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

                                     v_dtoperac

* << Fim da exclusão

                                     s_dtentr

                                     'A'.

    PERFORM processa_vinculacoes.

    IF NOT itab_zycbt062[] IS INITIAL.

      LOOP AT itab_zycbt062 WHERE nrseq_c = itab_zycbt001-nrseqc.

        PERFORM preenche_liq_and.

      ENDLOOP.

    ENDIF.

    LOOP AT itab_zycbt004 WHERE nrseqc = itab_zycbt001-nrseqc.

      PERFORM preenche_itab_relat_pago.

...

 

...

        /pws/zyglt009-prov_prem IS INITIAL ).

      LOOP AT itab_zycbt136 WHERE nrseqc = itab_zycbt001-nrseqc

                              AND datinc <= s_dtentr.

        PERFORM preenche_itab_premio.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  CLEAR itab_zycbt001.

ENDFORM.

FORM processa_saldo_acc USING value(p_vlme) LIKE /pws/zycbt001-vlme

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

                              value(p_dtinicio) TYPE d

* << Fim da exclusão

                              value(p_dtfim) TYPE d

                              value(p_tpjuros).

  CHECK p_vlme > 0.

  IF p_dtfim > s_dtentr.

    p_dtfim = s_dtentr.

  ENDIF.

  PERFORM escalonamento USING p_dtfim.

  IF s_dtentr               LE itab_zycbt001-dtentr OR NOT

     itab_zycbt005-nrinvoic IS INITIAL OR

     p_tpjuros              EQ 'A'.

    PERFORM processa_periodo_j USING p_vlme

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

                                     p_dtinicio

* << Fim da exclusão

                                     p_dtfim

                                     p_tpjuros.

  ELSE.

    CLEAR itab_zycbt003.

    SORT itab_zycbt003 BY nrseqc ASCENDING

                          dtpror DESCENDING.

    LOOP AT itab_zycbt003 WHERE nrseqc = itab_zycbt001-nrseqc

                            AND tppror = 'E'.

      PERFORM processa_periodo_j USING p_vlme

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

                                       p_dtinicio

* << Fim da exclusão

                                       p_dtfim

                                       p_tpjuros.

      EXIT.

    ENDLOOP.

    CLEAR itab_msg.

    IF itab_zycbt003-dtpror IS INITIAL OR

       itab_zycbt003-dtpror < p_dtfim.

      MOVE-CORRESPONDING itab_zycbt001 TO itab_msg.

      itab_msg-nrinvoic = itab_zycbt005-nrinvoic.

      itab_msg-tpmsg    = 'E'.

      itab_msg-msg      = text-002.

      APPEND itab_msg.

    ENDIF.

  ENDIF.

  PERFORM preenche_variacao_cambial USING p_vlme.

ENDFORM.

FORM processa_vinculacoes.

  DATA: primeiro(1) TYPE c VALUE 'X',

        v_vlvinc    LIKE /pws/zycbt005-vlvinc,

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

        v_data      type /pws/zycbt005-dtvincul,

* << Fim da inclusão

        v_dtate     LIKE sy-datum.

  LOOP AT itab_zycbt005 WHERE nrseqc = itab_zycbt001-nrseqc.

    primeiro = 'X'.

    itab_zycbt005-vlme_p = itab_zycbt005-vlme_p * itab_zycbt005-parid.

    PERFORM seleciona_data_operacao.

    IF itab_zycbt001-tpcontr(1) EQ 'E' AND NOT

       itab_zycbt001-dtinijur IS INITIAL.

      v_dtoperac = itab_zycbt001-dtinijur.

    ENDIF.

    IF itab_zycbt005-dtcredext IS INITIAL.

...

 

...

          IF primeiro EQ 'X'.

            IF v_dtoperac < v_dtate.

              PERFORM processa_ace USING v_dtoperac.

            ENDIF.

          ENDIF.

        ELSE.

          IF v_dtoperac < itab_zycbt005-dtvincul.

            v_vlme_par = itab_zycbt006_aux-vlme * itab_zycbt005-parid.

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

              PERFORM processa_saldo_acc USING v_vlme_par

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

                                               v_dtoperac

* << Fim da exclusão

                                               itab_zycbt005-dtvincul

                                               'A'.

            ELSE.

              PERFORM processa_saldo_acc USING v_vlme_par

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

                                               v_dtoperac

* << Fim da exclusão

                                               itab_zycbt005-dtvincul

                                               'E'.

            ENDIF.

...

 

...

                     gsberf   = itab_zycbt005-gsberf   AND

                     dtvincul = itab_zycbt005-dtvincul AND

                     dtvencto = itab_zycbt005-dtvencto.

        ENDSELECT.

        v_vlvinc = itab_zycbt005-vlvinc - /pws/zycbt050-vldev.

        PERFORM escalonamento USING itab_zycbt005-dtvincul.

        IF v_vlvinc GT 0.

          IF v_dtoperac < itab_zycbt005-dtvincul.

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

              PERFORM processa_saldo_acc USING v_vlvinc

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

                                               v_dtoperac

* << Fim da exclusão

                                               itab_zycbt005-dtvincul

                                               'A'.

            ELSE.

              PERFORM processa_saldo_acc USING v_vlvinc

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

                                               v_dtoperac

* << Fim da exclusão

                                               itab_zycbt005-dtvincul

                                               'E'.

            ENDIF.

...

 

...

          IF v_dtoperac < v_dtate.

            PERFORM processa_ace2 USING v_dtoperac.

          ENDIF.

        ENDIF.

      ELSE.

        IF v_dtoperac < itab_zycbt005-dtvincul.

          v_vlme_par = itab_zycbt005-vlme_p *

                       itab_zycbt005-parid.

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

            PERFORM processa_saldo_acc USING v_vlme_par

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

                                             v_dtoperac

* << Fim da exclusão

                                             itab_zycbt005-dtvincul

                                             'A'.

          ELSE.

            PERFORM processa_saldo_acc USING v_vlme_par

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

                                             v_dtoperac

* << Fim da exclusão

                                             itab_zycbt005-dtvincul

                                             'E'.

          ENDIF.

          IF primeiro EQ 'X'.

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

            PERFORM processa_ace2 USING itab_zycbt005-dtvincul.

* << Fim da exclusão

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

            v_data = itab_zycbt005-dtvincul.

            PERFORM processa_ace2 USING v_data.

* << Fim da inclusão

          ENDIF.

        ELSEIF v_dtoperac < v_dtate.

          IF primeiro EQ 'X'.

            PERFORM processa_ace_a_2 USING v_dtoperac.

          ENDIF.

        ENDIF.

      ENDIF.

      CLEAR primeiro.

      sy-subrc = 0.

    ENDIF.

...

 

...

                  USING v_vlme_par

                        p_data_de

                        v_dtate.

    ENDIF.

  ENDLOOP.

  CASE /pws/zycbt007-dtjuros.

    WHEN 'DTVENCTO'.

      v_dtate = itab_zycbt005-dtvencto.

    WHEN 'DTPAGEXT'.

      CLEAR v_calcula_juros.

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

      CALL CUSTOMER-FUNCTION '001'

           IMPORTING

               v_subrc = v_calcula_juros.

* << Fim da exclusão

      IF v_calcula_juros EQ 'X'.

        READ TABLE itab_zycbt017

              WITH KEY nrinvoic = itab_zycbt005-nrinvoic

                       gsberf   = itab_zycbt005-gsberf.

        IF sy-subrc = 0.

          IF itab_zycbt017-credext NE '00000000'.

            v_dtate = itab_zycbt017-credext.

          ELSE.

            v_dtate = s_dtentr.

          ENDIF.

...

 

...

  ENDIF.

ENDFORM.

FORM processa_periodo_jace USING value(p_vlme)

                                 value(p_dtinicio) TYPE d

                                 value(p_dtfim)    TYPE d.

  DATA: v_txjtotal LIKE /pws/zycbt002-txjtotal,

        v_tptxjur  LIKE /pws/zycbt002-tptxjur,

        v_dtate    LIKE /pws/zycbt002-dtfinal,

        v_sysubrc  LIKE sy-subrc,

        v_primeiro VALUE '1',

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

        v_ultimo   TYPE i,

        v_nrparc   TYPE i.

* << Fim da exclusão

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

        v_ultimo   TYPE /pws/zycbt002-nrparc,

        v_nrparc   TYPE /pws/zycbt002-nrparc.

* << Fim da inclusão

  CLEAR itab_zycbt002j.

  CLEAR v_ultimo.

  LOOP AT itab_zycbt002j WHERE nrseqc = itab_zycbt001-nrseqc.

    v_ultimo = v_ultimo + 1.

    IF itab_zycbt002j-nrparc > v_nrparc.

      v_nrparc = itab_zycbt002j-nrparc.

    ENDIF.

    v_nrparc = itab_zycbt002j-nrparc.

  ENDLOOP.

  LOOP AT itab_zycbt002j WHERE nrseqc  =  itab_zycbt001-nrseqc AND

...

 

...

                                         v_txjtotal

                                         v_tptxjur

                                         v_dtate

                                         p_dtfim

                                         itab_zycbt001-waers

                                         itab_zycbt011-ctmoed

                                         'E'.

  ENDIF.

ENDFORM.

FORM processa_cambio_pronto.

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

  DATA:

    v_data type /pws/zycbt005-dtvincul.

* << Fim da inclusão

  LOOP AT itab_zycbt001 WHERE tpcontr(1) = 'C'.

    PERFORM seleciona_data_operacao.

    LOOP AT itab_zycbt005 WHERE nrseqc = itab_zycbt001-nrseqc.

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

      v_data = itab_zycbt005-dtvincul.

* << Fim da inclusão

      IF itab_zycbt005-dtcredext IS INITIAL.

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

        PERFORM processa_ace USING itab_zycbt005-dtvincul.

* << Fim da exclusão

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

        PERFORM processa_ace USING v_data.

* << Fim da inclusão

      ELSE.

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

        PERFORM processa_ace2 USING itab_zycbt005-dtvincul.

* << Fim da exclusão

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

        PERFORM processa_ace2 USING v_data.

* << Fim da inclusão

      ENDIF.

      PERFORM preenche_variacao_cambial USING itab_zycbt005-vlvinc.

    ENDLOOP.

...

 

...

FORM verifica_data_entrada.

  DATA v_dtfim LIKE sy-datum.

  CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'

       EXPORTING

            day_in            = s_dtentr

       IMPORTING

            last_day_of_month = v_dtfim

       EXCEPTIONS

            day_in_no_date    = 1

            OTHERS            = 2.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

  ENDCASE.

* << Fim da inclusão

  IF s_dtentr <> v_dtfim.

    MESSAGE i015 WITH text-043.

    LEAVE LIST-PROCESSING.

  ELSE.

    SELECT *

           FROM /pws/zycbt154 UP TO 1 ROWS

           WHERE codmod   =  'E'      AND

                 dtcont   >= s_dtentr AND

                 bukrs    EQ s_bukrs  AND

                 codmodul NE 'T'.

...

 

...

  ELSE.

    v_dtentr+4(2) = v_dtentr+4(2) - 1.

    CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'

         EXPORTING

              day_in            = v_dtentr

         IMPORTING

              last_day_of_month = v_dtinicio

         EXCEPTIONS

              day_in_no_date    = 1

              OTHERS            = 2.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

  ENDCASE.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM totaliza_valores_lancados.

  DATA : BEGIN OF itab_convnrseq OCCURS 0,

            nrcorresp LIKE /pws/zycbt154-nrcorresp,

         END OF itab_convnrseq.

  LOOP AT itab_zycbt001.

    itab_convnrseq-nrcorresp = itab_zycbt001-nrseqc.

    APPEND itab_convnrseq.

  ENDLOOP.

...

 

...

                  AT sy-linsz sy-vline.

      ENDIF.

    ENDON.

  ENDLOOP.

  IF sy-subrc NE 0.

    WRITE : / sy-vline, text-063,

              AT sy-linsz sy-vline.

  ENDIF.

  ULINE.

ENDFORM.

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

FORM processa_periodo_jl USING value(p_vlme)

                               value(p_dtinicio) TYPE d

* << Fim da exclusão

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

FORM processa_periodo_jl USING

* << Fim da inclusão

                               value(p_dtfim) TYPE d.

  DATA: v_saldo_final LIKE /pws/zycbt001-vlme,

        v_ultimo      LIKE /pws/zycbt006-dtpagto,

        v_inicio      LIKE /pws/zycbt006-dtpagto,

        v_saldo_aux   LIKE /pws/zycbt001-vlme,

        v_linha2      LIKE sy-tabix,

        v_contr       TYPE i,

        v_cont        TYPE i,

        v_linha       TYPE i,

        v_deduz.

...

 

...

    itab_relat-dtate = s_dtentr.

    PERFORM seleciona_taxa.

    itab_relat-txc   = v_taxac.

    itab_relat-vlmij = itab_relat-vlmej * itab_relat-txc.

    PERFORM preenche_itab_relat.

    APPEND itab_relat.

  ENDIF.

  CLEAR v_contr.

ENDFORM.

FORM seleciona_taxa.

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

  DATA: v_data    LIKE sy-datum,

        v_dtbudat LIKE sy-datum,

* << Fim da exclusão

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

   DATA:

* << Fim da inclusão

        v_kurst   LIKE /pws/zycbt009-kurst.

  CONCATENATE '005' itab_zycbt001-tpcontr INTO v_codeven.

  CLEAR wa_zycbt011.

  SELECT *

         UP TO 1 ROWS

         FROM /pws/zycbt011

         INTO wa_zycbt011

         WHERE codeven = v_codeven AND

               codmod  = text-066.

  ENDSELECT.

...

 

...

           FROM /pws/zycbt007

           INTO wa_zycbt007

           WHERE bukrs EQ s_bukrs.

  ENDIF.

  SELECT kurst

         UP TO 1 ROWS

         FROM /pws/zycbt009

         INTO v_kurst

         WHERE codpadr = wa_zycbt011-ctmoed.

  ENDSELECT.

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

  v_data = s_dtentr.

  CONVERT DATE v_data INTO INVERTED-DATE v_dtbudat.

* << Fim da exclusão

  CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

       EXPORTING

            i_montante                 = '1'

            i_demoeda                  = itab_zycbt001-waers

            i_paramoeda                = wa_zycbt007-waersb

            i_ctmoeda                  = v_kurst

            i_dtbase                   = s_dtentr

       IMPORTING

            e_txc                      = v_taxac

       EXCEPTIONS

            i_demoeda_nao_encontrado   = 1

            i_paramoeda_nao_encontrado = 2

            i_ctmoeda_nao_encontrado   = 3

            i_dtbase_nao_encontrada    = 4

            taxa_nao_encontrada        = 5

            fator_nao_encontrado       = 6

            i_montante_nao_encontrado  = 7

            OTHERS                     = 8.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

    WHEN 4.

    WHEN 5.

    WHEN 6.

    WHEN 7.

    WHEN 8.

  ENDCASE.

* << Fim da inclusão

ENDFORM.

FORM mapeia_transacao.

  itab_zycbe033-tcode  = 'FB08'.

  itab_zycbe033-tabela = '/PWS/ZYCBT154'.

  CONCATENATE itab_zycbt154-codmodul itab_zycbt154-tpcontr

              itab_zycbt154-bco      itab_zycbt154-dtcont

              itab_zycbt154-bukrs    itab_zycbt154-gsber

              itab_zycbt154-waers    itab_zycbt154-d_newko

              itab_zycbt154-c_newko  INTO itab_zycbe033-cpochv.

  itab_zycbe033-belnr = itab_zycbt154-belnr_pr.

...

 

...

  ELSEIF wa_zycbt007-dataestorno EQ 'UDM'.

    IF s_rbinte = 'X'.

      CALL FUNCTION 'LAST_DAY_OF_MONTHS'

           EXPORTING

                day_in            = v_data

           IMPORTING

                last_day_of_month = v_data

           EXCEPTIONS

                day_in_no_date    = 1

                OTHERS            = 2.

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

      CASE sy-subrc.

        WHEN 1.

        WHEN 2.

      ENDCASE.

* << Fim da inclusão

    ENDIF.

  ELSEIF wa_zycbt007-dataestorno EQ 'UDU'.

    IF s_rbinte = 'X'.

      CALL FUNCTION 'LAST_DAY_OF_MONTHS'

           EXPORTING

                day_in            = v_data

           IMPORTING

                last_day_of_month = v_data

           EXCEPTIONS

                day_in_no_date    = 1

                OTHERS            = 2.

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

      CASE sy-subrc.

        WHEN 1.

        WHEN 2.

      ENDCASE.

* << Fim da inclusão

    ENDIF.

    PERFORM converte_data.

  ENDIF.

  itab_zycbe033-budat = v_data.

  itab_zycbe033-bldat = s_dtentr.

  PERFORM determina_periodo USING itab_zycbe033-budat

                                  itab_zycbe033-bukrs

                         CHANGING v_monat.

  PERFORM determina_ano USING itab_zycbe033-budat

                              itab_zycbe033-bukrs

...

 

...

      itab_zycbe033-budat = s_dtentr.

    ELSEIF itab_zycbt154-dtcont EQ itab_zycbe033-budat.

      itab_zycbe033-stgrd = '01'.

    ELSE.

      itab_zycbe033-stgrd = '02'.

    ENDIF.

  ELSE.

    itab_zycbe033-stgrd = '02'.

    itab_zycbe033-budat = sy-datum.

  ENDIF.

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

  CALL CUSTOMER-FUNCTION '004'

    TABLES

      t_dados = itab_zycbe033.

* << Fim da exclusão

  APPEND itab_zycbe033.

ENDFORM.

FORM modo_batch_input.

  CLEAR:  /pws/zycbt039, itab_modo.

  REFRESH itab_modo.

  SELECT * FROM /pws/zycbt039.

    itab_modo-selflag   = /pws/zycbt039-modo.

    itab_modo-varoption = /pws/zycbt039-descr.

    APPEND itab_modo.

  ENDSELECT.

...

 

...

            titel              = text-069

       IMPORTING

            answer             = v_modo_bi

       TABLES

            t_spopli           = itab_modo

       EXCEPTIONS

            not_enough_answers = 1

            too_much_answers   = 2

            too_much_marks     = 3

            OTHERS             = 4.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

    WHEN 4.

  ENDCASE.

* << Fim da inclusão

  IF v_modo_bi EQ '1' OR v_modo_bi EQ 'A'.

    v_modo_bi = 'N'.

  ELSEIF v_modo_bi EQ '3'.

    v_modo_bi = 'A'.

  ELSEIF v_modo_bi EQ '2'.

    v_modo_bi = 'E'.

  ENDIF.

ENDFORM.

FORM converte_data.

  CLEAR:  itab_period, v_confirm, v_txt_f.

...

 

...

            date_to                    = v_data

            language                   = text-102

       TABLES

            day_attributes             = itab_period

       EXCEPTIONS

            factory_calendar_not_found = 1

            holiday_calendar_not_found = 2

            date_has_invalid_format    = 3

            date_inconsistency         = 4

            OTHERS                     = 5.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

    WHEN 4.

    WHEN 5.

  ENDCASE.

  READ TABLE itab_period WITH KEY weekday = '6'.

* << Fim da inclusão

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

  READ TABLE itab_period WITH KEY weekday = 6.

* << Fim da exclusão

  IF sy-subrc EQ 0.

    PERFORM verifica_dia.

  ELSE.

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

    READ TABLE itab_period WITH KEY weekday = 7.

* << Fim da exclusão

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

    READ TABLE itab_period WITH KEY weekday = '7'.

* << Fim da inclusão

    IF sy-subrc EQ 0.

...

 

...

              date_to                    = v_data

              language                   = text-102

         TABLES

              day_attributes             = itab_period

         EXCEPTIONS

              factory_calendar_not_found = 1

              holiday_calendar_not_found = 2

              date_has_invalid_format    = 3

              date_inconsistency         = 4

              OTHERS                     = 5.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

    WHEN 4.

    WHEN 5.

  ENDCASE.

* << Fim da inclusão

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

    READ TABLE itab_period WITH KEY weekday = 6.

* << Fim da exclusão

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

    READ TABLE itab_period WITH KEY weekday = '6'.

* << Fim da inclusão

    IF sy-subrc NE 0.

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

      READ TABLE itab_period WITH KEY weekday = 7.

* << Fim da exclusão

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

      READ TABLE itab_period WITH KEY weekday = '7'.

* << Fim da inclusão

      IF sy-subrc NE 0.

        v_sair_fadc = 'S'.

        LOOP AT itab_period.

...

 

...

  itab_relat-bco      = itab_zycbt001-bcofinan.

  READ TABLE itab_tcurx WITH KEY currkey = itab_zycbt001-waers.

  IF sy-subrc <> 0.

    itab_tcurx-currdec = 2.

  ENDIF.

  v_vlmeaux = itab_relat-vlme / ( 10 ** ( itab_tcurx-currdec - 2 ) ).

  CLEAR itab_zycbt011.

  CONCATENATE '025' itab_zycbt001-tpcontr INTO v_codeven.

  READ TABLE itab_zycbt011 WITH KEY codeven = v_codeven.

  IF sy-subrc EQ 0.

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

    READ TABLE itab_zycbt009 WITH KEY codpadr = itab_zycbt011-ctmoed.

* << Fim da exclusão

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

    READ TABLE itab_zycbt009

      WITH KEY codpadr = itab_zycbt011-ctmoed+3(1).

* << Fim da inclusão

    IF sy-subrc EQ 0.

      CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

           EXPORTING

                i_montante  = v_vlmeaux

                i_demoeda   = itab_zycbt001-waers

                i_paramoeda = /pws/zycbt007-waersb

                i_ctmoeda   = itab_zycbt009-kurst

                i_dtbase    = s_dtentr

           IMPORTING

                e_txc       = itab_relat-txc

...

 

...

       EXPORTING

            bukrs           = itab_relat-bukrs

            ktosl           = 'PVE'

            codaux1         = v_codaux1

       TABLES

            account         = itab_contas

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

  ENDCASE.

* << Fim da inclusão

  READ TABLE itab_contas INDEX 1.

  itab_relat-d_newko = itab_contas-konts.

  CONCATENATE 'PREMIO' itab_zycbt001-tpcontr

              INTO v_codaux1 SEPARATED BY space.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

            bukrs           = itab_relat-bukrs

            ktosl           = 'RCE'

            codaux1         = v_codaux1

       TABLES

            account         = itab_contas

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

  ENDCASE.

* << Fim da inclusão

  READ TABLE itab_contas INDEX 1.

  itab_relat-c_newko = itab_contas-konth.

ENDFORM.

FORM calcula_dias_uteis USING p_dtde

                              p_dtate.

  v_dias = p_dtate - p_dtde.

  DO v_dias TIMES.

    IF v_data EQ 00000000.

      v_data = p_dtde.

    ENDIF.

...

 

...

       TABLES

            holiday_attributes           = itab_thol

       EXCEPTIONS

            calendar_buffer_not_loadable = 1

            date_after_range             = 2

            date_before_range            = 3

            date_invalid                 = 4

            holiday_calendar_id_missing  = 5

            holiday_calendar_not_found   = 6

            OTHERS                       = 7.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

    WHEN 4.

    WHEN 5.

    WHEN 6.

    WHEN 7.

  ENDCASE.

* << Fim da inclusão

ENDFORM.

FORM verifica_dia_semana.

  CALL FUNCTION '/PWS/ZYCB_DIA_DA_SEMANA'

       EXPORTING

            datum  = v_data

       IMPORTING

            wotnr  = v_dia_semana

       EXCEPTIONS

            OTHERS = 1.

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

  CASE sy-subrc.

    WHEN 1.

  ENDCASE.

* << Fim da inclusão

  IF v_dia_semana = '6' OR ( v_dia_semana = '7' ).

    v_feriado = 'X'.

  ELSE.

    v_feriado = space.

  ENDIF.

ENDFORM.

FORM processa_calculo_premio USING    p_dtde

                                      p_dtate.

  DATA v_num TYPE p DECIMALS 5.

  IF itab_zycbt136-tpcal EQ 'LA'.

...

 

...

                  WITH p_gsber  = itab_zycbt001_ence-gsber

                  WITH p_bcofin = itab_zycbt001_ence-bcofinan

                  WITH p_bconeg = itab_zycbt001_ence-bconegoc

                  AND RETURN.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDLOOP.

ENDFORM.

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

FORM escalonamento USING    p_dtbase.

* << Fim da exclusão

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

FORM escalonamento USING    p_dtbase TYPE sy-datum.

* << Fim da inclusão

  CLEAR: v_tx_esc_tot, v_tx_esc_var, v_tx_esc_fix.

  DATA: v_txjuros(1) TYPE c.

  IF itab_zycbt001-tpcalcjur EQ 'E'.

    LOOP AT itab_zycbt002j WHERE nrseqc = itab_zycbt001-nrseqc.

      IF p_dtbase GE itab_zycbt002j-dtinicio AND

         p_dtbase LE itab_zycbt002j-dtfinal.

        IF p_dtbase EQ itab_zycbt002j-dtinicio

        AND v_txjuros = 'X'.

          EXIT.

        ENDIF.

...

 

...

  DATA: v_dtate         LIKE sy-datum,

        v_vlme          LIKE /pws/zycbt006-vlme.

  CLEAR: v_vlme, v_vlme_par.

  ADD itab_zycbt005-vlme_p TO v_vlme.

  v_dtate = itab_zycbt005-dtcredext.

  PERFORM escalonamento USING v_dtate.

  IF v_dtate > s_dtentr.

    v_dtate = s_dtentr.

  ENDIF.

  IF itab_zycbt005-dtvincul < v_dtate.

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

    v_vlme_par = itab_zycbt005-vlme_p * itab_zycbt005-parid.

    PERFORM processa_periodo_jace

                USING v_vlme_par

                      itab_zycbt005-dtvincul

                      v_dtate.

  ELSE.

* << Fim da exclusão

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

    p_data_de = itab_zycbt005-dtvincul.

  ENDIF.

* << Fim da inclusão

    v_vlme_par = itab_zycbt005-vlme_p * itab_zycbt005-parid.

    PERFORM processa_periodo_jace

                USING v_vlme_par

                      p_data_de

                      v_dtate.

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

  ENDIF.

* << Fim da exclusão

ENDFORM.

FORM processa_ace_a_2 USING value(p_data_de).

...

 

...

  itab_relat-nrparcj     = itab_zycbt002c-nrparc.

  itab_relat-przcontr    = itab_zycbt001-przcontr.

  itab_relat-dtentreg    = itab_zycbt001-dtentr.

  itab_relat-dtliquid    = itab_zycbt001-dtliquid.

  itab_relat-aliqir      = itab_zycbt002c-aliqir.

  itab_relat-f_encerrado = itab_zycbt001-f_encerrado.

  itab_relat-kostl       = itab_zycbt002c-kostl.

  itab_relat-prctr       = itab_zycbt002c-prctr.

  itab_relat-fipos       = itab_zycbt002c-fipos.

  itab_relat-fictr       = itab_zycbt002c-fictr.

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

  itab_relat-txc         = itab_tcurr-ukurs.

* << Fim da exclusão

  CONCATENATE s_dtentr(6) '01' INTO v_dtexec.

  itab_relat-bco = itab_zycbt001-bconegoc.

  SELECT name1

    UP TO 1 ROWS

    INTO (lfa1-name1)

    FROM lfa1

    WHERE lifnr EQ itab_relat-bco.

  ENDSELECT.

  IF sy-subrc EQ 0.

    itab_relat-descbanc = lfa1-name1.

...

 

...

            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.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

  ENDCASE.

* << Fim da inclusão

  READ TABLE itab_contas INDEX 1.

  IF sy-subrc EQ 0.

    itab_relat-d_newkoir = itab_contas-konts.

  ENDIF.

  v_codaux1 = text-125.

  v_codaux2 = itab_zycbt001-tpcontr.

  v_codaux3 = text-126.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

            bukrs           = itab_relat-bukrs

            ktosl           = 'PVE'

            codaux1         = v_codaux1

            codaux2         = v_codaux2

            codaux3         = v_codaux3

       TABLES

            account         = itab_contas

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

  ENDCASE.

* << Fim da inclusão

  READ TABLE itab_contas INDEX 1.

  IF sy-subrc EQ 0.

    itab_relat-c_newkoir = itab_contas-konth.

  ENDIF.

  CLEAR itab_zycbt011.

  READ TABLE itab_zycbt011 WITH KEY codeven = '004CM'.

  itab_relat-blart   = itab_zycbt011-blart.

  itab_relat-d_sgtxt = itab_zycbt011-txtdesc.

  itab_relat-c_sgtxt = itab_zycbt011-txtdesc.

  v_codaux1 = 'CO'.

...

 

...

            bukrs           = itab_relat-bukrs

            ktosl           = 'DSE'

            codaux1         = v_codaux1

            codaux2         = v_codaux2

       TABLES

            account         = itab_contas

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

  ENDCASE.

* << Fim da inclusão

  READ TABLE itab_contas INDEX 1.

  IF sy-subrc EQ 0.

    itab_relat-d_newko = itab_contas-konts.

  ENDIF.

  CONCATENATE text-127 v_prazo INTO v_codaux1 SEPARATED BY space.

  v_codaux2 = itab_zycbt001-tpcontr.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

            bukrs           = itab_relat-bukrs

            ktosl           = 'PVE'

            codaux1         = v_codaux1

            codaux2         = v_codaux2

       TABLES

            account         = itab_contas

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

  ENDCASE.

* << Fim da inclusão

  READ TABLE itab_contas INDEX 1.

  IF sy-subrc EQ 0.

    itab_relat-c_newko = itab_contas-konth.

  ENDIF.

ENDFORM.

FORM calcula_vlmi USING p_tpcontr

                        p_waers

                        p_vlmej

                        p_txc

                  CHANGING p_vlmij.

  IF wa_zycbt011-ctmoed IS INITIAL.

    CONCATENATE '005' p_tpcontr INTO v_codeven.

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

    SELECT SINGLE ctmoed FROM /pws/zycbt011

* << Fim da exclusão

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

    SELECT ctmoed UP TO 1 ROWS FROM /pws/zycbt011

* << Fim da inclusão

                         INTO wa_zycbt011-ctmoed

                         WHERE codeven = v_codeven AND

                               codmod  = text-066.

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

    ENDSELECT.

* << Fim da inclusão

  ENDIF.

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

  READ TABLE itab_zycbt009 WITH KEY codpadr = wa_zycbt011-ctmoed.

* << Fim da exclusão

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

  READ TABLE itab_zycbt009 WITH KEY codpadr = wa_zycbt011-ctmoed+3(1).

* << Fim da inclusão

  IF sy-subrc NE 0 OR itab_zycbt009-kurst IS INITIAL.

    itab_zycbt009-kurst = 'M'.

  ENDIF.

  CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

       EXPORTING

            i_montante                 = p_vlmej

            i_demoeda                  = p_waers

            i_paramoeda                = wa_zycbt007-waersb

            i_ctmoeda                  = itab_zycbt009-kurst

            i_dtbase                   = s_dtentr

...

 

...

ENDFORM.

FORM montante_converte

  USING

   value(p_ctmoed) LIKE /pws/zycbt011-ctmoed

   value(p_waers)  LIKE tcurx-currkey

   value(p_vlme)   LIKE /pws/zycbt001-vlme

 CHANGING

   p_taxa          LIKE tcurr-ukurs

   p_vlmi          LIKE /pws/zycbt001-vlme.

  READ TABLE itab_zycbt009

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

    WITH KEY codpadr = p_ctmoed TRANSPORTING kurst.

* << Fim da exclusão

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

    WITH KEY codpadr = p_ctmoed+3(1) TRANSPORTING kurst.

* << Fim da inclusão

  IF sy-subrc NE 0 OR

     itab_zycbt009-kurst IS INITIAL.

    itab_zycbt009-kurst = 'M'.

  ENDIF.

  IF p_taxa IS INITIAL.

    CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

         EXPORTING

              i_montante                 = p_vlme

              i_demoeda                  = p_waers

              i_paramoeda                = wa_zycbt007-waersb

...

 

...

            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.

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

  CASE sy-subrc.

    WHEN 1.

    WHEN 2.

    WHEN 3.

  ENDCASE.

* << Fim da inclusão

  READ TABLE itab_contas INDEX 1.

  IF sy-subrc = 0.

    IF itab_zycbt154-d_newko NE itab_contas-konts.

      p_conta_dif = 'X'.

    ENDIF.

    IF itab_zycbt154-d_newko+7 EQ itab_contas-konts.

      CLEAR p_conta_dif.

    ENDIF.

  ELSE.

    EXIT.

...

 

...

                            AND codmodul  NE 'CD'

                            AND codmodul  NE 'CF'

                            AND codmodul  NE 'CI'.

    ENDLOOP.

    IF sy-subrc = 0.

      p_separa = 'X'.

    ENDIF.

  ENDIF.

ENDFORM.

FORM preenche_liq_and.

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

  DATA:

    v_nrparc type /pws/zycbt004-nrparc value 000.

* << Fim da inclusão

  CLEAR itab_relat.

  itab_relat-nrseqc   = itab_zycbt001-nrseqc.

  itab_relat-nrcontr  = itab_zycbt001-nrcontr.

  itab_relat-tpcontr  = itab_zycbt001-tpcontr.

  itab_relat-nrparcj  = itab_zycbt004-nrparc.

  itab_relat-dtde     = itab_zycbt062-dtinicio.

  itab_relat-dtate    = itab_zycbt062-dtfinal.

  READ TABLE itab_zycbt060 WITH KEY

                              nrseq = itab_zycbt062-nrseq.

  IF sy-subrc EQ 0.

...

 

...

  itab_relat-bukrs    = itab_zycbt001-bukrs.

  itab_relat-gsber    = itab_zycbt001-gsber.

  itab_relat-bco      = itab_zycbt001-bconegoc.

  itab_relat-txjtotal = itab_zycbt062-txjtotal.

  itab_relat-vlme     = itab_zycbt062-vlme.

  itab_relat-ftpj     = 'A'.

  itab_relat-waers    = itab_zycbt001-waers.

  READ TABLE itab_zycbt004 WITH KEY

                              nrseqc = itab_zycbt062-nrseq_c

                              tpdesp = 'J'

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

                              nrparc = '000'

* << Fim da exclusão

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

                              nrparc = v_nrparc

* << Fim da inclusão

                              dtincl = itab_zycbt062-dtincl.

  PERFORM preenche_contas_pgto.

  v_liq = 'X'.

  PERFORM processa_calculo_juros USING itab_zycbt062-vlme

                                       itab_zycbt062-txjtotal

                                       itab_zycbt062-tptxjur

                                       itab_relat-dtde

                                       itab_relat-dtate

                                       itab_zycbt001-waers

                                       itab_zycbt011-ctmoed

...

 

 

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

Modificações efetuadas em REPT /PWS/ZYCBR003

 

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

Excluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 004

 

Texto: (19 caracteres)

"Taxa de juros nula."

 

Comprimento máximo: 19

 

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

Excluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 138

 

Texto: (8 caracteres)

"Estornar"

 

Comprimento máximo: 8