CE PLUS - Nota 007783

Módulo: CÂMBIO FINANCEIRO

Funcionalidade: Empréstimos

Data/Hora da Publicação: 15/12/2008 00:00:00

Data/Hora Última Alteração: 18/02/2011 14:25:55

Descrição da Nota: EMPRESTIMO - PROBLEMA COM OS CAMPOS DE PERIODO E ANO FISCAL

Sintoma

Emprestimo - problema com os campos de periodo e ano fiscal -afetando as contabilizações , não

trazendo as informações corretas

 

 

Solução

ajustar o programa e as funçoes para verificar o periodo e o ano fiscal correto

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

EMPRÉSTIMO - NÃO ESTÁ SENDO FEITO O ESTORNO

VERIFICAÇÃO AMPLIADA, CODE INSPECTOR MODULO DE FUNÇÃO CAMBIO

EMPRÉSTIMO - AO CRIAR UM NOVO EMPRÉSTIMO O SISTEMA NÃO CONSEGUE SALVAR

AJUDA DE PESQUISA, ASSOCIAÇÃO CARTA DE CREDITO IMPORTAÇÃO - CODE INSPECT

COMPLEMENTO DO BOLETO EM PAGAMENTO ANTECIPADO -PERIODO FECHADO INCORRETO

CODE INSPECTOR, VERIFICAÇÃO AMPLIADA GRUPOS DE FUNÇÃO CAMBIO

EMPRESTIMO - PARCELA PRINCIPAL LONGO / CURTISSIMO PRAZO

IRRF SOBRE COMISSÃO DE EMPRÉSTIMO CONTABILIZADO NO COMPLEMENTO DO BOLETO

Informações Complementares

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

Nota Número 07783 Data: 15/12/2008 Hora: 16:42:06

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

 

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

Nota Número              : 07783

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00008

Agrupamento              : 00077

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

Referência às notas relacionadas:

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

 

01230  - 00008 - 6.0    - 00023  - EMPRESTIMO - PARCELA PRINCIPAL LONGO / CURTISSIMO PRAZO

01597  - 00007 - 6.0    - 00023  - EMPRÉSTIMO - NÃO ESTÁ SENDO FEITO O ESTORNO

02717  - 00006 - 6.0    - 00025  - EMPRÉSTIMO - AO CRIAR UM NOVO EMPRÉSTIMO O SISTEMA NÃO CONSEGUE S

04196  - 00005 - 7.0    - 00002  - IRRF SOBRE COMISSÃO DE EMPRÉSTIMO CONTABILIZADO NO COMPLEMENTO DO

05772  - 00004 - 7.0    - 00004  - VERIFICAÇÃO AMPLIADA, CODE INSPECTOR MODULO DE FUNÇÃO CAMBIO

05990  - 00003 - 7.0    - 00004  - CODE INSPECTOR, VERIFICAÇÃO AMPLIADA GRUPOS DE FUNÇÃO CAMBIO

06023  - 00002 - 7.0    - 00004  - AJUDA DE PESQUISA, ASSOCIAÇÃO CARTA DE CREDITO IMPORTAÇÃO - CODE

07765  - 00001 - 7.0    - 00007  - COMPLEMENTO DO BOLETO EM PAGAMENTO ANTECIPADO -PERIODO FECHADO IN

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

EMPRESTIMO - PROBLEMA COM OS CAMPOS DE PERIODO E ANO FISCAL

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

Palavras Chave:

EMPRESTIMO - PROBLEMA COM OS CAMPOS DE PERIODO E ANO FISCAL -

AFETANDO AS CONTABILIZAÇÕES

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

Objetos da nota:

FUNC /PWS/ZYCA_TRANSACAO_F_02

FUNC /PWS/ZYCA_TRANSACAO_F_51I

FUNC /PWS/ZYCA_TRANSACAO_F_51J

FUNC /PWS/ZYCM_TRANSACAO_F_43

FUNC /PWS/ZYCM_TRANSACAO_F_43A

FUNC /PWS/ZYCM_TRANSACAO_F_63

REPS /PWS/MZYCA111F01

 

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

Modificações efetuadas em FUNC /PWS/ZYCA_TRANSACAO_F_02

 

...

                                       itab_oculto

                                using  v_string_debito.

    perform trata_string_credito tables t_dados

                                        t_campo

                                        itab_oculto

                                 using  v_string_credito.

    write: t_dados-bukrs to v_bukrs,

           t_dados-bldat to v_data_doc_char,

           t_dados-budat to v_data_lanc_char,

           t_dados-kursf to v_kursf.

* >> Início da exclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_02

    v_monat = t_dados-budat+4(2).

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_02

  DATA v_periv(2).

  SELECT periv

         FROM t001

         INTO v_periv

         WHERE bukrs EQ t_dados-bukrs.

  ENDSELECT.

  CALL FUNCTION 'DETERMINE_PERIOD'

       EXPORTING

            date                = t_dados-budat

            version             = v_periv

       IMPORTING

            period              = v_monat

       EXCEPTIONS

            period_in_not_valid = 1

            period_not_assigned = 2

            version_undefined   = 3

            OTHERS              = 4.

  IF sy-subrc EQ 0.

  else.

  ENDIF.

* << Fim da inclusão

    v_gjahr = v_date.

    v_koart = 'S'.

      perform check_periodo using    v_koart

                                     v_monat

                                     v_bukrs

                                     v_gjahr

                                     v_konto

                            changing v_data_lanc_char

                                     v_ok.

      concatenate '0' v_data_lanc_char+3(2) into v_monat.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCA_TRANSACAO_F_51I

 

...

    CLEAR itab_oculto.

    REFRESH itab_oculto.

    PERFORM trata_string_credito TABLES t_dados

                                        t_campo

                                        itab_oculto

                                USING  v_string_credito.

    WRITE: t_dados-bukrs TO v_bukrs,

           t_dados-bldat TO v_data_doc_char,

           t_dados-budat TO v_data_lanc_char,

           t_dados-kursf TO v_kursf.

* >> Início da exclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_51I

    v_monat = t_dados-budat+4(2).

    v_gjahr = t_dados-budat+0(4).

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_51I

  DATA v_periv(2).

  SELECT periv

         FROM t001

         INTO v_periv

         WHERE bukrs EQ t_dados-bukrs.

  ENDSELECT.

  CALL FUNCTION 'DETERMINE_PERIOD'

       EXPORTING

            date                = t_dados-budat

            version             = v_periv

       IMPORTING

            period              = v_monat

       EXCEPTIONS

            period_in_not_valid = 1

            period_not_assigned = 2

            version_undefined   = 3

            OTHERS              = 4.

  IF sy-subrc EQ 0.

  else.

  ENDIF.

  CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

      EXPORTING

           v_bukrs                = t_dados-bukrs

           v_date                 = t_dados-budat

      IMPORTING

           v_year                 = v_gjahr

      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.

  IF sy-subrc EQ 0.

  else.

  ENDIF.

* << Fim da inclusão

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

                                   v_monat

                                   v_bukrs

                                   v_gjahr

                                   v_konto

                          CHANGING v_data_lanc_char

                                   v_ok.

    CONCATENATE '0' v_data_lanc_char+3(2) INTO v_monat.

    MOVE v_data_lanc_char+6(4) TO v_gjahr.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCA_TRANSACAO_F_51J

 

...

    CLEAR itab_oculto.

    REFRESH itab_oculto.

    PERFORM trata_string_debito TABLES t_dados

                                       t_campo

                                       itab_oculto

                                USING  v_string_debito.

    WRITE: t_dados-bukrs TO v_bukrs,

           t_dados-bldat TO v_data_doc_char,

           t_dados-budat TO v_data_lanc_char,

           t_dados-kursf TO v_kursf.

* >> Início da exclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_51J

    v_monat = t_dados-budat+4(2).

    v_gjahr = t_dados-budat+0(4).

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_51J

  DATA v_periv(2).

  SELECT periv

         FROM t001

         INTO v_periv

         WHERE bukrs EQ t_dados-bukrs.

  ENDSELECT.

  CALL FUNCTION 'DETERMINE_PERIOD'

       EXPORTING

            date                = t_dados-budat

            version             = v_periv

       IMPORTING

            period              = v_monat

       EXCEPTIONS

            period_in_not_valid = 1

            period_not_assigned = 2

            version_undefined   = 3

            OTHERS              = 4.

  IF sy-subrc EQ 0.

  else.

  ENDIF.

  CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

      EXPORTING

           v_bukrs                = t_dados-bukrs

           v_date                 = t_dados-budat

      IMPORTING

           v_year                 = v_gjahr

      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.

  IF sy-subrc EQ 0.

  else.

  ENDIF.

* << Fim da inclusão

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

                                   v_monat

                                   v_bukrs

                                   v_gjahr

                                   v_konto

                          CHANGING v_data_lanc_char

                                   v_ok.

    CONCATENATE '0' v_data_lanc_char+3(2) INTO v_monat.

    MOVE v_data_lanc_char+6(4) TO v_gjahr.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCM_TRANSACAO_F_43

 

...

                          CHANGING v_data_lanc_char

                                   v_ok.

    CONCATENATE '0' v_data_lanc_char+3(2) INTO v_monat.

    MOVE v_data_lanc_char+6(4) TO v_gjahr.

    PERFORM bdc_screen USING 'SAPMF05A' '0100'.

    PERFORM bdc_field  USING:

           'BKPF-BLDAT' v_data_doc_char,

           'BKPF-BLART' t_dados-blart,

           'BKPF-BUKRS' t_dados-bukrs,

           'BKPF-BUDAT' v_data_lanc_char,

* >> Início da exclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_43

           'BKPF-MONAT' t_dados-budat+4(2),

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_43

           'BKPF-MONAT' v_data_lanc_char+3(2),

* << Fim da inclusão

           'BKPF-WAERS' t_dados-waers,

           'BKPF-KURSF' v_kursf,

           'BKPF-BKTXT' t_dados-bktxt.

    IF NOT t_dados-xblnr IS INITIAL.

      PERFORM bdc_field  USING 'BKPF-XBLNR' t_dados-xblnr.

    ENDIF.

    IF t_dados-newbs EQ '39'.

      PERFORM bdc_field  USING:

          'RF05A-NEWBS' '39',

          'RF05A-NEWKO' t_dados-c_newko,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCM_TRANSACAO_F_43A

 

...

                          CHANGING v_data_lanc_char

                                   v_ok.

    CONCATENATE '0' v_data_lanc_char+3(2) INTO v_monat.

    MOVE v_data_lanc_char+6(4) TO v_gjahr.

    PERFORM bdc_screen USING 'SAPMF05A' '0100'.

    PERFORM bdc_field  USING:

           'BKPF-BLDAT' v_data_doc_char,

           'BKPF-BLART' t_dados-blart,

           'BKPF-BUKRS' t_dados-bukrs,

           'BKPF-BUDAT' v_data_lanc_char,

* >> Início da exclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_43A

           'BKPF-MONAT' t_dados-budat+4(2),

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_43A

           'BKPF-MONAT' v_data_lanc_char+3(2),

* << Fim da inclusão

           'BKPF-WAERS' t_dados-waers,

           'BKPF-KURSF' v_kursf,

           'BKPF-BKTXT' t_dados-bktxt.

    READ TABLE t_contas INDEX 1.

    PERFORM bdc_field  USING:

          'RF05A-NEWBS'   t_contas-bschl,

          'RF05A-NEWKO'   t_contas-d_newko,

          'RF05A-NEWUM'   v_agums,

          'BDC_OKCODE'    '/00'.

    CLEAR v_tabix.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCM_TRANSACAO_F_63

 

...

                          CHANGING v_data_lanc_char

                                   v_ok.

    CONCATENATE '0' v_data_lanc_char+3(2) INTO v_monat.

    MOVE v_data_lanc_char+6(4) TO v_gjahr.

    PERFORM bdc_screen USING 'SAPLF040' '0100'.

    PERFORM bdc_field  USING:

           'BKPF-BLDAT'  v_data_doc_char,

           'BKPF-BLART'  t_dados-blart,

           'BKPF-BUKRS'  t_dados-bukrs,

           'BKPF-BUDAT'  v_data_lanc_char,

* >> Início da exclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_63

           'BKPF-MONAT'  t_dados-budat+4(2),

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_63

           'BKPF-MONAT'   v_data_lanc_char+3(2),

* << Fim da inclusão

           'BKPF-WAERS'  t_dados-waers,

           'BKPF-KURSF'  v_kursf,

           'BKPF-XBLNR'  t_dados-xblnr,

           'BKPF-BKTXT'  t_dados-bktxt,

           'VBKPF-XBWAE' v_montante,

           'RF05V-NEWBS' '31',

           'RF05V-NEWKO' t_dados-agkon,

           'BDC_OKCODE' '/00'.

    WRITE: t_dados-wrbtr TO v_wrbtr CURRENCY t_dados-waers,

           t_dados-dmbtr TO v_dmbtr CURRENCY t_dados-waersb,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCA111F01

 

...

    ENDIF.

    MODIFY itab_zycbt129j INDEX sy-tabix.

    MOVE itab_zycbt129j TO /pws/zycbt129.

    MODIFY /pws/zycbt129.

  ENDLOOP.

  DELETE FROM /pws/zycbt129 WHERE nrseq  = itab_zycbt129j-nrseq AND

                                  tpparc = 'J'                  AND

                                  nrparc > itab_zycbt129j-nrparc.

ENDFORM.

FORM reverse_document_zycbt128.

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

  DATA v_monat LIKE t001b-frpe1.

* << Fim da exclusão

  CLEAR /pws/zycbe128-fassoc.

  SELECT fassoc

         UP TO 1 ROWS

         FROM /pws/zycbt128

         INTO /pws/zycbe128-fassoc

         WHERE nrseq EQ /pws/zycbe128-nrseq.

  ENDSELECT.

  IF /pws/zycbe128-fassoc EQ 'X'.

    PERFORM recontabiliza_parcelas.

    EXIT.

...

 

...

      CONTINUE.

    ENDIF.

    itab_zycbe033-mandt  = sy-mandt.

    itab_zycbe033-tcode  = 'FBRA'.

    itab_zycbe033-tabela = text-008.

    itab_zycbe033-cpochv = wa_zycbt128-nrseq.

    itab_zycbe033-belnr  = itab_zycbt129pa-belnr.

    itab_zycbe033-bukrs  = wa_zycbt128-bukrs.

    itab_zycbe033-bldat  = wa_zycbt128-dtdesem.

    itab_zycbe033-budat  = wa_zycbt128-dtdesem.

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

    itab_zycbe033-gjahs  = wa_zycbt128-dtdesem+0(4).

    v_monat              = itab_zycbe033-budat+2(2).

* << Fim da exclusão

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

  PERFORM determina_periodo USING itab_zycbe033-budat

                                  wa_zycbt128-bukrs

                         CHANGING v_monat.

    PERFORM determina_ano USING wa_zycbt128-dtdesem

                                wa_zycbt128-bukrs

                       CHANGING v_ano.

    itab_zycbe033-gjahs  = v_ano.

* << Fim da inclusão

    PERFORM verify_null_field USING wa_zycbt128-bukrs

                                    'BUKRS'

                                    text-012.

    itab_zycbe033-bukrs  = wa_zycbt128-bukrs.

    CALL FUNCTION 'FI_PERIOD_CHECK'

         EXPORTING

              i_bukrs          = itab_zycbe033-bukrs

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

              i_gjahr          = itab_zycbe033-budat+0(4)

* << Fim da exclusão

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

              i_gjahr          = v_ano

* << Fim da inclusão

              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'.

...

 

...

        v_erro_bi = 'X'.

      ENDLOOP.

      v_erro_exclusao = 'X'.

    ENDIF.

  ENDIF.

  REFRESH itab_zycbt036.

  itab_zycbt036-tcode  = text-095.

  itab_zycbt036-tabela = text-008.

  itab_zycbt036-cpochv = /pws/zycbe128-nrseq.

  itab_zycbt036-belnr  = itab_zycbt032-belnr.

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

    PERFORM determina_ano USING /pws/zycbe128-dtdesem

                                /pws/zycbe128-bukrs

                          CHANGING v_ano.

* << Fim da inclusão

  SELECT awkey

         UP TO 1 ROWS

         FROM bkpf

         INTO itab_zycbt036-awkey

         WHERE belnr EQ itab_zycbt032-belnr     AND

               bukrs EQ /pws/zycbe128-bukrs     AND

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

               gjahr EQ /pws/zycbe128-dtdesem(4).

* << Fim da exclusão

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

               gjahr EQ v_ano.

* << Fim da inclusão

  ENDSELECT.

  APPEND itab_zycbt036.

  v_vlres = /pws/zycbe128-vlme.

  PERFORM clear_date_batch.

  PERFORM gera_novas_parcelas.

ENDFORM.

FORM get_parameters_111.

  DATA v_codeven LIKE /pws/zycbt011-codeven.

  v_codeven = '001E'.

  EXPORT v_codeven TO MEMORY ID 'A001'.

...

 

...

  LOOP AT itab_zycbt129_ant WHERE belnr_c NE ' '.

   READ TABLE itab_zycbt129c WITH KEY nrparc = itab_zycbt129_ant-nrparc.

    itab_zycbe033-mandt  = sy-mandt.

    itab_zycbe033-tcode  = 'FB08'.

    itab_zycbe033-tabela = text-051.

    CONCATENATE itab_zycbt129_ant-nrseq itab_zycbt129_ant-tpparc

                itab_zycbt129_ant-nrparc INTO itab_zycbe033-cpochv.

    itab_zycbe033-belnr = itab_zycbt129_ant-belnr_c.

    itab_zycbe033-bukrs = wa_zycbt128-bukrs.

    itab_zycbe033-budat = wa_zycbt128-dtdesem.

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

    itab_zycbe033-gjahs = wa_zycbt128-dtdesem+0(4).

    v_monat = itab_zycbe033-budat+2(2).

* << Fim da exclusão

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

  PERFORM determina_periodo USING wa_zycbt128-dtdesem

                                  wa_zycbt128-bukrs

                         CHANGING v_monat.

    PERFORM determina_ano USING wa_zycbt128-dtdesem

                                wa_zycbt128-bukrs

                               CHANGING v_ano.

    itab_zycbe033-gjahs = v_ano.

* << Fim da inclusão

    CALL FUNCTION 'FI_PERIOD_CHECK'

         EXPORTING

              i_bukrs          = itab_zycbe033-bukrs

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

              i_gjahr          = itab_zycbe033-budat+0(4)

* << Fim da exclusão

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

              i_gjahr          = v_ano

* << Fim da inclusão

              i_koart          = 'S'

...

 

...

ENDFORM.

FORM reverse_document_zycbt128_cab.

  PERFORM clear_date_batch.

  itab_zycbe033-mandt  = sy-mandt.

  itab_zycbe033-tcode  = 'FB08'.

  itab_zycbe033-tabela = text-008.

  itab_zycbe033-cpochv = wa_zycbt128-nrseq.

  itab_zycbe033-belnr  = wa_zycbt128-belnr.

  itab_zycbe033-bukrs  = wa_zycbt128-bukrs.

  itab_zycbe033-budat  = wa_zycbt128-dtdesem.

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

  itab_zycbe033-gjahs  = wa_zycbt128-dtdesem+0(4).

  v_monat = itab_zycbe033-budat+2(2).

* << Fim da exclusão

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

  PERFORM determina_periodo USING itab_zycbe033-budat

                                  itab_zycbe033-bukrs

                         CHANGING v_monat.

    PERFORM determina_ano USING itab_zycbe033-budat

                                itab_zycbe033-bukrs

                               CHANGING v_ano.

    itab_zycbe033-gjahs  = v_ano.

* << Fim da inclusão

  CALL FUNCTION 'FI_PERIOD_CHECK'

       EXPORTING

            i_bukrs          = itab_zycbe033-bukrs

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

            i_gjahr          = itab_zycbe033-budat+0(4)

* << Fim da exclusão

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

            i_gjahr          = v_ano

* << Fim da inclusão

            i_koart          = 'S'

...

 

...

ENDFORM.

FORM estorna_parcelas_excluidas.                            "#EC CALLED

  LOOP AT itab_excluidos.

    itab_zycbe033-mandt  = sy-mandt.

    itab_zycbe033-tcode  = 'FB08'.

    itab_zycbe033-tabela = text-008.

    itab_zycbe033-cpochv = wa_zycbt128-nrseq.

    itab_zycbe033-belnr  = itab_excluidos-belnr.

    itab_zycbe033-bukrs  = wa_zycbt128-bukrs.

    itab_zycbe033-budat  = wa_zycbt128-dtdesem.

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

    itab_zycbe033-gjahs  = wa_zycbt128-dtdesem+0(4).

    v_monat = itab_zycbe033-budat+2(2).

* << Fim da exclusão

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

  PERFORM determina_periodo USING itab_zycbe033-budat

                                  itab_zycbe033-bukrs

                         CHANGING v_monat.

    PERFORM determina_ano USING itab_zycbe033-budat

                                itab_zycbe033-bukrs

                               CHANGING v_ano.

    itab_zycbe033-gjahs  = v_ano.

* << Fim da inclusão

    CALL FUNCTION 'FI_PERIOD_CHECK'

         EXPORTING

              i_bukrs          = itab_zycbe033-bukrs

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

              i_gjahr          = itab_zycbe033-budat+0(4)

* << Fim da exclusão

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

              i_gjahr          = v_ano

* << Fim da inclusão

              i_koart          = 'S'

...

 

...

        CONTINUE.

      ENDIF.

    ENDIF.

    v_vlres = v_vlres + itab_zycbt129pa-vlme.

    IF v_prazo1 EQ 'L' AND

       itab_zycbt129pa-ftransf EQ 'L'.

      itab_zycbt036-tcode  = text-095.

      itab_zycbt036-tabela = text-008.

      itab_zycbt036-cpochv = /pws/zycbe128-nrseq.

      itab_zycbt036-belnr = itab_zycbt129pa-belnr.

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

    PERFORM determina_ano USING /pws/zycbe128-dtdesem

                                /pws/zycbe128-bukrs

                          CHANGING v_ano.

* << Fim da inclusão

      SELECT awkey

             UP TO 1 ROWS

             FROM bkpf

             INTO itab_zycbt036-awkey

             WHERE belnr EQ itab_zycbt129pa-belnr AND

                   bukrs EQ /pws/zycbe128-bukrs   AND

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

                   gjahr EQ /pws/zycbe128-dtdesem(4).

* << Fim da exclusão

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

                   gjahr EQ v_ano.

* << Fim da inclusão

      ENDSELECT.

      APPEND itab_zycbt036.

      CONTINUE.

    ENDIF.

    PERFORM busca_conta_parcela.

    itab_zycbe033-mandt = sy-mandt.

    itab_zycbe033-tcode = text-095.

    itab_zycbe033-tabela = text-008.

    itab_zycbe033-cpochv = /pws/zycbe128-nrseq.

    CASE wa_zycbt007-fdtdoc.

...

 

...

    PERFORM verify_null_field USING /pws/zycbe128-sldesem

                                    'SLDESEM'

                                    text-015.

    itab_zycbe033-wrbtr = itab_zycbt129pa-vlme.

    itab_zycbe033-newbs = '50'.

    itab_zycbe033-c_newko = v_newkof.

    itab_zycbe033-d_newko = v_newkof.

    itab_zycbe033-agkon = itab_zyglt316-konth.

    itab_zycbe033-agkoa = 'S'.

    itab_zycbe033-belnr = itab_zycbt129pa-belnr.

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

    PERFORM determina_ano USING wa_zycbt128-dtdesem

                                wa_zycbt128-bukrs

                          CHANGING v_ano.

* << Fim da inclusão

    SELECT awkey

           UP TO 1 ROWS

           FROM bkpf

           INTO itab_zycbe033-awkey

           WHERE belnr EQ itab_zycbt129pa-belnr AND

                 bukrs EQ wa_zycbt128-bukrs     AND

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

                 gjahr EQ wa_zycbt128-dtdesem(4).

* << Fim da exclusão

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

                 gjahr EQ v_ano.

* << Fim da inclusão

    ENDSELECT.

    itab_zycbe033-d_gsber = /pws/zycbe128-gsber.

    itab_zycbe033-d_kostl = /pws/zycbe128-kostl.

    itab_zycbe033-d_prctr = /pws/zycbe128-prctr.

    itab_zycbe033-d_fipos = /pws/zycbe128-fipos.

    itab_zycbe033-d_fictr = /pws/zycbe128-fictr.

    itab_zycbe033-c_gsber = /pws/zycbe128-gsber.

    itab_zycbe033-c_kostl = /pws/zycbe128-kostl.

    itab_zycbe033-c_prctr = /pws/zycbe128-prctr.

    itab_zycbe033-c_fipos = /pws/zycbe128-fipos.

...

 

...

      IF sy-subrc = 0.

        READ TABLE itab_zycbt032 WITH KEY tcode  = text-095

                                          tabela = text-008

                                          cpochv = /pws/zycbe128-nrseq

                                          tpmsg  = 'S'.

        IF sy-subrc = 0.

          itab_zycbt036-tcode  = text-095.

          itab_zycbt036-tabela = text-008.

          itab_zycbt036-cpochv = /pws/zycbe128-nrseq.

          itab_zycbt036-belnr  = itab_zycbt032-belnr.

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

    PERFORM determina_ano USING /pws/zycbe128-dtdesem

                                /pws/zycbe128-bukrs

                          CHANGING v_ano.

* << Fim da inclusão

          SELECT awkey

                 UP TO 1 ROWS

                 FROM bkpf

                 INTO itab_zycbt036-awkey

                 WHERE belnr EQ itab_zycbt032-belnr AND

                       bukrs EQ /pws/zycbe128-bukrs AND

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

                       gjahr EQ /pws/zycbe128-dtdesem(4).

* << Fim da exclusão

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

                       gjahr EQ v_ano.

* << Fim da inclusão

          ENDSELECT.

          APPEND itab_zycbt036.

        ELSE.

          LOOP AT itab_zycbt032.

            MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                              itab_zycbt032-msg+50(50).

          ENDLOOP.

          v_erro_exclusao = 'X'.

        ENDIF.

      ELSE.

...

 

...

                                          tabela = text-008

                                          cpochv = /pws/zycbe128-nrseq

                                          tpmsg  = 'S'.

        IF sy-subrc = 0.

          MESSAGE i015 WITH itab_zycbt032-msg.

          REFRESH itab_zycbt036.

          itab_zycbt036-tcode  = text-095.

          itab_zycbt036-tabela = text-008.

          itab_zycbt036-cpochv = /pws/zycbe128-nrseq.

          itab_zycbt036-belnr  = itab_zycbt032-belnr.

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

    PERFORM determina_ano USING /pws/zycbe128-dtdesem

                                /pws/zycbe128-bukrs

                          CHANGING v_ano.

* << Fim da inclusão

          SELECT awkey

                 UP TO 1 ROWS

                 FROM bkpf

                 INTO itab_zycbt036-awkey

                 WHERE belnr EQ itab_zycbt032-belnr AND

                       bukrs EQ /pws/zycbe128-bukrs AND

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

                       gjahr EQ /pws/zycbe128-dtdesem(4).

* << Fim da exclusão

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

                       gjahr EQ v_ano .

* << Fim da inclusão

          ENDSELECT.

          APPEND itab_zycbt036.

          itab_zycbt129p-belnr = itab_zycbt032-belnr.

          IF v_prazo EQ 'L'.

            itab_zycbt129p-belnr_lp = itab_zycbt032-belnr.

            itab_zycbt129p-ftransf  = 'L'.

          ELSE.

            itab_zycbt129p-ftransf = 'S'.

          ENDIF.

          MODIFY itab_zycbt129p.

...

 

...

  itab_zycbe033-d_fipos = /pws/zycbe128-fipos.

  itab_zycbe033-d_fictr = /pws/zycbe128-fictr.

  itab_zycbe033-c_gsber = /pws/zycbe128-gsber.

  itab_zycbe033-c_kostl = /pws/zycbe128-kostl.

  itab_zycbe033-c_prctr = /pws/zycbe128-prctr.

  itab_zycbe033-c_fipos = /pws/zycbe128-fipos.

  itab_zycbe033-c_fictr = /pws/zycbe128-fictr.

  itab_zycbe033-agkoa   = 'S'.

  itab_zycbe033-agkon   = itab_zycbt012-saknr1.

  itab_zycbe033-belnr   = /pws/zycbe128-belnr.

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

    PERFORM determina_ano USING /pws/zycbe128-dtdesem

                                /pws/zycbe128-bukrs

                          CHANGING v_ano.

* << Fim da inclusão

  SELECT awkey

         UP TO 1 ROWS

         FROM bkpf

         INTO itab_zycbe033-awkey

         WHERE belnr EQ /pws/zycbe128-belnr AND

               bukrs EQ /pws/zycbe128-bukrs AND

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

               gjahr EQ /pws/zycbe128-dtdesem(4).

* << Fim da exclusão

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

               gjahr EQ v_ano.

* << Fim da inclusão

  ENDSELECT.

  APPEND itab_zycbe033.

  IMPORT v_codeven FROM MEMORY ID 'A001'.

  LOOP AT itab_zycbt034.

    MESSAGE i254 WITH itab_zycbt034-descricao v_codeven.

    v_erro_bi = 'X'.

  ENDLOOP.

  CLEAR sy-subrc.

  IF itab_zycbt034 IS INITIAL.

    CALL FUNCTION '/PWS/ZYCA_TRANSACAO_F_04'

...

 

...

    itab_zycbe033-mandt  = sy-mandt.

    itab_zycbe033-tcode  = c_fb08.

    itab_zycbe033-tabela = c_zycbt129.

    CONCATENATE itab_zycbt129_ant-nrseq

                itab_zycbt129_ant-tpparc

                itab_zycbt129_ant-nrparc

           INTO itab_zycbe033-cpochv.

    itab_zycbe033-belnr = itab_zycbt129_ant-belnr_ci.

    itab_zycbe033-bukrs = wa_zycbt128-bukrs.

    itab_zycbe033-budat = wa_zycbt128-dtdesem.

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

    itab_zycbe033-gjahs = wa_zycbt128-dtdesem(4).

    v_monat = itab_zycbe033-budat+2(2).

* << Fim da exclusão

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

  PERFORM determina_periodo USING itab_zycbe033-budat

                                  itab_zycbe033-bukrs

                         CHANGING v_monat.

    PERFORM determina_ano USING itab_zycbe033-budat

                                itab_zycbe033-bukrs

                               CHANGING v_ano.

    itab_zycbe033-gjahs  = v_ano.

* << Fim da inclusão

    CALL FUNCTION 'FI_PERIOD_CHECK'

         EXPORTING

              i_bukrs          = itab_zycbe033-bukrs

              i_gjahr          = itab_zycbe033-gjahs

              i_koart          = 'S'

              i_monat          = v_monat

         EXCEPTIONS

              error_period     = 1

              error_period_acc = 2

              OTHERS           = 3.

...