CE PLUS - Nota 007218

Módulo: CÂMBIO IMPORTAÇÃO

Funcionalidade: Financiamento

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

Data/Hora Última Alteração: 18/02/2011 10:00:38

Descrição da Nota: FINANCIAMENTO DE IMPORTAÇÃO

Sintoma

Não existe

 

 

Solução

Flexibilizar o financiamento de importação, permitindo a alteração do vencimento final da operação e

também das parcelas, adequando o tratamento contábil.

 

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

EXPORTAÇÃO CAPTAÇÃO

FINANCIAMENTO - ANO CONTABIL - LANÇAMENTO DE ESTORNO

FINANCIAMENTO DE IMPORTAÇÃO

REFINANCIAMENTO - FINANCIAMENTO - BLOQUEIO JUROS/COMISSÃO

FINANCIAMENTO - EXCLUSÃO PARCELAS DE COMISSÃO

Informações Complementares

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

Nota Número 07218 Data: 29/08/2008 Hora: 07:32:51

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

 

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

Nota Número              : 07218

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00006

Agrupamento              : 00062

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

Referência às notas relacionadas:

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

 

03340  - 00001 - 6.0    - 00026  - FINANCIAMENTO - EXCLUSÃO PARCELAS DE COMISSÃO

04543  - 00002 - 7.0    - 00002  - FINANCIAMENTO DE IMPORTAÇÃO

05088  - 00003 - 7.0    - 00003  - REFINANCIAMENTO - FINANCIAMENTO - BLOQUEIO JUROS/COMISSÃO

06002  - 00004 - 7.0    - 00004  - FINANCIAMENTO - ANO CONTABIL - LANÇAMENTO DE ESTORNO

07116  - 00005 - 7.0    - 00006  - EXPORTAÇÃO CAPTAÇÃO

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

FINANCIAMENTO DE IMPORTAÇÃO

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

Palavras Chave:

FINANCIAMENTO DE IMPORTAÇÃO - ALTERAÇÃO DO VENCIMENTO FINAL DA OPERAÇÃO

TRATAMENTO CONTÁBIL

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

Objetos da nota:

DYNP /PWS/SAPMZYCM101                        0101

DYNP /PWS/SAPMZYCM101                        0102

FUNC /PWS/ZYCB_TRANSACAO_FB02B

FUNC /PWS/ZYCM_TRANSACAO_F_43C

FUNC /PWS/ZYCM_TRANSACAO_F_51I

MESS /PWS/ZYCMM272

REPS /PWS/MZYCM101F01

REPS /PWS/MZYCM101I01

REPS /PWS/MZYCM101O01

REPS /PWS/MZYCM101TOP

REPS /PWS/MZYCM101X01

REPS /PWS/ZYCBI112

REPT /PWS/SAPMZYCM101

TABD /PWS/ZYCBE113

TABD /PWS/ZYCBT113

 

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

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

 

SOLICITAR A TELA 0101 DO PROGRAMA /PWS/SAPMZYCM101

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCM101                        0102

 

SOLICITAR A TELA 0102 DO PROGRAMA /PWS/SAPMZYCM101

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_FB02B

 

...

 

           t_dados-zfbdt   TO v_zfbdt,

           t_dados-d_valut TO v_valut.

    PERFORM bdc_screen USING 'SAPMF05L' '0100'.

    PERFORM bdc_field  USING:

      'BDC_OKCODE'        '/00',

      'RF05L-BELNR'         t_dados-belnr,

      'RF05L-BUKRS'         t_dados-bukrs,

      'RF05L-GJAHR'         v_gjahs.

    PERFORM bdc_screen USING 'SAPMF05L' '0700'.

      PERFORM bdc_field  USING:

        'BDC_CURSOR'          'RF05L-ANZDT(01)',

        'BDC_OKCODE'          '=PK'.

      PERFORM bdc_screen USING 'SAPMF05L' '0300'.

      PERFORM bdc_field  USING:

        'BSEG-VALUT'          v_valut,

        'BSEG-ZFBDT'          v_zfbdt,

        'BSEG-ZUONR'          t_dados-d_zuonr,

        'BDC_CURSOR'          BSEG-ZFBDT,

        'BDC_OKCODE'          '=Z+'.

        PERFORM bdc_screen USING 'SAPLKACB' '0002'.

        PERFORM bdc_field  USING:

          'BDC_CURSOR'         'COBL-KOSTL',

          'BDC_OKCODE'         '=ENTE'.

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

IF v_tp_pagt = 'N'.

* << Fim da exclusão

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

IF v_tp_pagt = 'N' OR t_dados-newbs = '29'.

* << Fim da inclusão

        PERFORM bdc_screen USING 'SAPMF05L' '0304'.

        PERFORM bdc_field  USING:

        'BSEG-ZUONR'          t_dados-d_zuonr,

        'BDC_CURSOR'          BSEG-ZFBDT,

        'BDC_OKCODE'          '=AE'.

ELSE.

      PERFORM bdc_screen USING 'SAPMF05L' '0300'.

      PERFORM bdc_field  USING:

        'BSEG-VALUT'          v_valut,

        'BSEG-ZFBDT'          v_zfbdt,

        'BSEG-ZUONR'          t_dados-d_zuonr,

        'BDC_CURSOR'          BSEG-ZFBDT,

        'BDC_OKCODE'          '=AE'.

        PERFORM bdc_screen USING 'SAPLKACB' '0002'.

        PERFORM bdc_field  USING:

          'BDC_CURSOR'         'COBL-GSBER',

          'BDC_OKCODE'         '=ENTE'.

ENDIF.

 

...

 

 

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

Modificações efetuadas em REPS /PWS/LZYCBGF2UXX

 

...

INCLUDE /PWS/LZYCBGF2U76.

INCLUDE /PWS/LZYCBGF2U78.

INCLUDE /PWS/LZYCBGF2U79.

INCLUDE /PWS/LZYCBGF2U80.

INCLUDE /PWS/LZYCBGF2U81.

INCLUDE /PWS/LZYCBGF2U82.

INCLUDE /PWS/LZYCBGF2U83.

INCLUDE /PWS/LZYCBGF2U84.

INCLUDE /PWS/LZYCBGF2U85.

INCLUDE /PWS/LZYCBGF2U86.

* >> Início da inclusão:

INCLUDE /PWS/LZYCBGF2U87.

* << Fim da inclusão

 

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

Modificações efetuadas em FUNC /PWS/ZYCM_TRANSACAO_F_43C

 

...

                                        itab_oculto

                                  USING v_string_credito.

    CLEAR /pws/zycbt007.

    SELECT SINGLE fdivisao

           FROM /pws/zycbt007

           INTO /pws/zycbt007-fdivisao

           WHERE bukrs EQ t_dados-bukrs.

    WRITE: t_dados-bukrs TO v_bukrs,

           t_dados-bldat TO v_data_doc_char,

           t_dados-budat TO v_data_lanc_char,

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

           t_dados-kursf TO v_kursf.

* << Fim da exclusão

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

           t_dados-kursf TO v_kursf,

           t_dados-c_valut TO v_data_val_char.

* << Fim da inclusão

    v_monat = t_dados-budat+4(2).

    v_gjahr = v_date.

    v_koart = 'K'.

    v_data_lanc_char_ant = v_data_lanc_char.

    PERFORM check_periodo USING v_koart

                                v_monat

                                v_bukrs

                                v_gjahr

                       CHANGING v_data_lanc_char

                                v_ok.

...

 

...

      IF NOT t_dados-brnch IS INITIAL.

        PERFORM bdc_field  USING 'BSEG-BUPLA' t_dados-brnch.

      ENDIF.

    ENDIF.

    PERFORM bdc_field USING:

    'BSEG-WRBTR'  v_wrbtr,

    'RF05A-NEWBS' t_dados-newbs,

    'RF05A-NEWKO' t_dados-d_newko,

    'RF05A-NEWUM' t_dados-umskz,

    'BDC_OKCODE'  '/00'.

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

    IF v_tela EQ '0300'.

          READ TABLE itab_oculto WITH KEY campo = 'BSEG-VALUT'

                                          chave = 'D'.

          IF sy-subrc <> 0.

            PERFORM bdc_field USING 'BSEG-VALUT' v_data_val_char.

          ENDIF.

          READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZFBDT'

                                          chave = 'D'.

          IF sy-subrc <> 0.

            PERFORM bdc_field USING 'BSEG-ZFBDT' v_zfbdt_char.

          ENDIF.

    ENDIF.

* << Fim da inclusão

    IF t_dados-newbs1 EQ 50.

      PERFORM bdc_screen USING 'SAPLKACB' '0002'.

      READ TABLE itab_oculto WITH KEY campo = 'BSEG-GSBER'

                                  chave = 'C'.

      IF sy-subrc <> 0 AND NOT t_dados-c_gsber IS INITIAL.

        PERFORM bdc_field USING 'COBL-GSBER' t_dados-c_gsber.

      ENDIF.

    ENDIF.

    IF t_dados-newbs EQ '29'.

      v_chave_debito = '29'.

...

 

 

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

Modificações efetuadas em MÓDULO DA FUNC /PWS/ZYCM_TRANSACAO_F_51I

 

 

MODIFICAR MÓDULO DE FUNÇÃO: /PWS/ZYCM_TRANSACAO_F_51I

CARACTERÍSTICAS

 

CLASSIFICAÇÃO:

GRUPO DE FUNÇÕES: /PWS/ZYCMGF2

TEXTO BREVE: GL - Call Transaction F-51 - Gera antes partida fornecedor chvlç 34/40

 

TIPO DE EXECUÇÃO:

(X) - MÓDULO DE FUNÇÃO NORMAL

(_) - MÓDULO DE ACESSO REMOTO

(_) - MÓDULO DE ATUALIZAÇÃO

     (X) - INÍCIO IMEDIATO

     (_) - INÍCIO IMEDIATO-SEM ATUAL.POSTER.

     (_) - INÍC. RETARDADO

     (_) - PROCES. CLOETIVO

 

DADOS GERAIS:

(_) - BLOQUEIO PROCESSO

(_) - GLOBAL

 

EXPORTAÇÃO:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA       TRANSF.  TEXTO BREVE

V_BUDAT       TYPE   /PWS/ZYCBT113-DTCONT  X        Data de lançamento no documento

 

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

Modificações efetuadas em FUNC /PWS/ZYCM_TRANSACAO_F_51I

 

...

    v_gjahr = t_dados-budat+0(4).

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

                                   v_monat

                                   v_bukrs

                                   v_gjahr

                          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.

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

    CONCATENATE v_data_lanc_char+6(04)

                v_data_lanc_char+3(2)

                v_data_lanc_char+0(2)

                                     INTO v_budat.

* << Fim da inclusão

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    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,

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

           'BKPF-WAERS'  t_dados-waers,

           'BKPF-KURSF'  v_kursf,

           'BKPF-WWERT'  v_data_conv_char,

...

 

 

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

Modificações efetuadas em MESS /PWS/ZYCMM272

 

CRIAR MENSAGENS

CLASSE DE MENSAGENS: /PWS/ZYCMM

 

CARCACTERÍSTICAS

 

CLASSE DE DESENVOLVIMENTO: /PWS/ZYCM

 

ATRIBUTOS

TEXTO BREVE: CM - Mensagens Câmbio Importação

 

MENSAGENS (CRIAR)

 

MENSAGEM                TEXTOS BREVE MENSAGEM

272                     Dt.do Venc. não pode ser menor que a Dt.Final da Parcela do Princ. Paga!

 

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

Modificações efetuadas em REPS /PWS/MZYCM101F01

 

...

                campo_em_branco = 1

                OTHERS          = 2.

      IF sy-subrc = 0.

      ELSE.

      ENDIF.

    ELSE.

      IF ( itab_zycbt113c[]         EQ itab_zycbt113_ant[] OR

           ( itab_zycbt113c[]       NE itab_zycbt113_ant[] AND

             /pws/zycbe112-fpagto_c NE 'L'                 AND

             wa_zycbt112-fpagto_c   NE 'L' ) )             AND

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

           itab_zycbt113p[]         EQ itab_zycbt113_ant[] AND

* << Fim da inclusão

           itab_zycmt020[]          EQ itab_zycmt020_cp[]  AND

         sy-tcode                   EQ '/PWS/ZYCB101_A'    AND

         v_relevante                IS INITIAL             AND

         v_msg_                     IS INITIAL.

        MESSAGE i017.

      ENDIF.

    ENDIF.

    REFRESH itab_zycbt113_ant.

    LOOP AT itab_zycbt113c.

      CLEAR itab_zycbt113_ant.

...

 

...

  SELECT * FROM /pws/zycbt131

         INTO TABLE itab_zycbt131

         WHERE  nrseq     = /pws/zycbe112-nrseq

         AND    mdcorresp = 'IF'.

  IF sy-subrc = 0.

    EXPORT itab_zycbt131 TO MEMORY ID 'M101'.

    SUBMIT /pws/zycbr357 AND RETURN.

  ENDIF.

  SET PARAMETER ID '/PWS/ZYCBP361' FIELD /pws/zycbe112-nrseq.

  IF sy-binpt IS INITIAL.

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

  v_flag = 'X'.

  SET PARAMETER ID 'X' FIELD v_flag.

* << Fim da inclusão

    LEAVE TO TRANSACTION '/PWS/ZYCB101_E' AND SKIP FIRST SCREEN.

  ENDIF.

ENDFORM.

FORM create_zycbt113_p.

  itab_zycbt113p-nrparc   = v_countlinej.

  itab_zycbt113p-nrseq    = /pws/zycbe112-nrseq.

  itab_zycbt113p-nrfinanc = /pws/zycbe112-nrfinanc.

  itab_zycbt113p-tpparc = 'P'.

  IF itab_zycbt113p-dtvecto IS INITIAL.

    itab_zycbt113p-dtvecto = itab_zycbt113p-dtfinal.

...

 

...

  ENDLOOP.

  IF  /pws/zycbe112-nrseq+0(1) NE '5' AND

     ( ( NOT /pws/zycbe112-belnr IS INITIAL AND

             /pws/zycbe112-fassoc EQ ' ' ) OR

     NOT itab_excluidos[] IS INITIAL ).

    PERFORM reverse_document_zycbt112.

    PERFORM save_zycbt113.

  ELSE.

    PERFORM verifica_relevantes.

    IF v_relevante IS INITIAL.

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

        CLEAR: v_flag.

        LOOP AT itab_zycbt113p.

          READ TABLE itab_zycbt113pa

               WITH KEY nrseq  = itab_zycbt113p-nrseq

                      tpparc = itab_zycbt113p-tpparc

                      nrparc = itab_zycbt113p-nrparc.

          IF itab_zycbt113p-vlme EQ itab_zycbt113pa-vlme.

           IF itab_zycbt113p-dtfinal NE itab_zycbt113pa-dtfinal AND

              itab_zycbt113p-ftransf EQ itab_zycbt113pa-ftransf.

              PERFORM fill_date_fb02.

              MODIFY /pws/zycbt112 FROM /pws/zycbe112.

              COMMIT WORK.

           ENDIF.

          ENDIF.

        ENDLOOP.

         PERFORM reverse_document_zycbt112.

* << Fim da inclusão

      PERFORM modify_zycbt112.

      READ TABLE itab_zycbt113p WITH KEY belnr = ' '.

      IF sy-subrc EQ 0 AND /pws/zycbe112-fassoc EQ 'X'.

        PERFORM finaliza_processo_contabil.

      ELSEIF sy-subrc EQ 0 AND

             /pws/zycbe112-fassoc EQ ' ' AND

             /pws/zycbe112-belnr IS INITIAL.

        PERFORM fill_date1_f48.

      ELSE.

      ENDIF.

...

 

...

                                    wa_log

                                    'C'.

          ELSE.

            PERFORM grava_log USING '/PWS/ZYCBT112'

                                    wa_log

                                    'A'.

          ENDIF.

        ENDIF.

        PERFORM save_zycbt113.

      ELSE.

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

        CLEAR: v_flag.

        LOOP AT itab_zycbt113p.

          READ TABLE itab_zycbt113pa

               WITH KEY nrseq  = itab_zycbt113p-nrseq

                      tpparc = itab_zycbt113p-tpparc

                      nrparc = itab_zycbt113p-nrparc.

          IF itab_zycbt113p-vlme EQ itab_zycbt113pa-vlme.

           IF itab_zycbt113p-dtfinal NE itab_zycbt113pa-dtfinal AND

              itab_zycbt113p-ftransf EQ itab_zycbt113pa-ftransf.

              PERFORM fill_date_fb02.

              MODIFY /pws/zycbt112 FROM /pws/zycbe112.

              COMMIT WORK.

           ENDIF.

          ENDIF.

        ENDLOOP.

* << Fim da inclusão

        PERFORM reverse_document_zycbt112.

        PERFORM save_zycbt113.

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

FORM call_zycb105_l.

  DATA: v_numero   LIKE /pws/zycbt112-nrseq,

        v_assoc(2),

        v_empresa  LIKE /pws/zycbt112-bukrs,

...

 

...

  ENDIF.

  IF NOT itab_excluidos[] IS INITIAL.

    PERFORM estorna_parcelas_excluidas.

  ENDIF.

  LOOP AT itab_zycbt113p WHERE ftransf NE 'C'

                           AND belnr NE ' '

                           AND ( dtpagto EQ ' ' OR

                                 dtpagto EQ '00000000' ).

    READ TABLE itab_zycbt113pa WITH KEY nrparc = itab_zycbt113p-nrparc.

    IF itab_zycbt113p-vlme EQ itab_zycbt113pa-vlme AND

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

       itab_zycbt113p-dtvecto EQ itab_zycbt113pa-dtvecto.

      IF v_mdparc EQ 'X'.

* << Fim da exclusão

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

       itab_zycbt113p-ftransf EQ itab_zycbt113pa-ftransf.

* << Fim da inclusão

        CONTINUE.

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

      ENDIF.

* << Fim da exclusão

    ENDIF.

    IF itab_zycbt113p-belnr IS INITIAL.

      CONTINUE.

    ENDIF.

    itab_zycbe033-mandt  = sy-mandt.

    itab_zycbe033-tcode  = 'FB08'.

    itab_zycbe033-tabela = text-008.

    itab_zycbe033-cpochv = /pws/zycbe112-nrseq.

    itab_zycbe033-belnr  = itab_zycbt113p-belnr.

    itab_zycbe033-bukrs  = wa_zycbt112-bukrs.

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

    IF NOT wa_zycbt112-dtcont IS INITIAL.

      itab_zycbe033-budat = wa_zycbt112-dtcont.

* << Fim da exclusão

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

     IF NOT itab_zycbt113p-dtcont IS INITIAL.

       itab_zycbe033-budat  = itab_zycbt113p-dtcont.

     ELSEIF NOT wa_zycbt112-dtcont IS INITIAL.

       itab_zycbe033-budat  = wa_zycbt112-dtcont.

* << Fim da inclusão

    ELSE.

      itab_zycbe033-budat  = wa_zycbt112-dtdesem.

    ENDIF.

    PERFORM determina_ano

      USING    itab_zycbe033-budat

      CHANGING itab_zycbe033-gjahs.

    PERFORM determina_periodo

      USING    itab_zycbe033-budat

      CHANGING v_monat.

    CALL FUNCTION 'FI_PERIOD_CHECK'

...

 

...

    PERFORM periodo_fecham_mensal.

    IF /pws/zycbe112-dtdesem NE '00000000'.

      IF /pws/zycbt154-dtcont > /pws/zycbe112-dtdesem

          AND sy-tcode EQ '/PWS/ZYCB101_C'.

        MESSAGE w087.

      ENDIF.

    ENDIF.

  ENDIF.

  v_tcode = text-237.

  LOOP AT itab_zycbt113p .

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

    READ TABLE itab_zycbt113pa WITH KEY nrparc = itab_zycbt113p-nrparc.

    IF itab_zycbt113p-vlme EQ itab_zycbt113pa-vlme AND

       itab_zycbt113p-ftransf EQ itab_zycbt113pa-ftransf.

       CONTINUE.

    ENDIF.

* << Fim da inclusão

    READ TABLE itab_zycmt020 INDEX sy-tabix.

    PERFORM get_parameters_112.

    IF itab_zycbt113p-ftransf EQ 'C' OR

       itab_zycbt113p-belnr   NE ' ' OR

       ( itab_zycbt113p-dtpagto NE ' ' AND

         itab_zycbt113p-dtpagto NE '00000000' ).

      CONTINUE.

    ENDIF.

    itab_zycbe033-mandt = sy-mandt.

    itab_zycbe033-tcode = v_tcode.

...

 

...

          APPEND wa_mensagem TO itab_mensagem.

          /pws/zycbe112-statusp    = text-007.

          itab_zycbt113p-belnr     = itab_zycbt032-belnr.

          itab_zycbt113p-belnr_ori = itab_zycbt032-belnr.

          IF v_prazo EQ 'L'.

            itab_zycbt113p-belnr_lp = itab_zycbt032-belnr.

            itab_zycbt113p-ftransf  = 'L'.

          ELSE.

            itab_zycbt113p-ftransf = 'S'.

          ENDIF.

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

          itab_zycbt113p-dtcont = itab_zycbe033-budat.

* << Fim da inclusão

          MODIFY itab_zycbt113p.

          UPDATE /pws/zycbt112 SET statusp = /pws/zycbe112-statusp

                               WHERE nrseq = /pws/zycbe112-nrseq.

          UPDATE /pws/zycbt113 SET belnr     = itab_zycbt032-belnr

                                   belnr_lp  = itab_zycbt113p-belnr_lp

                                   ftransf   = itab_zycbt113p-ftransf

                                   belnr_ori = itab_zycbt032-belnr

                             WHERE nrseq     = /pws/zycbe112-nrseq

                               AND nrparc    = itab_zycbt113p-nrparc

                               AND tpparc    = 'P'.

...

 

...

  SELECT * FROM /pws/zyglt321

           INTO TABLE itab_zyglt321

           WHERE ktosl   = 'FIN'

             AND codeven = v_codeven.

  REFRESH: itab_zycbt012.

  SELECT * FROM /pws/zycbt012

           INTO TABLE itab_zycbt012

           WHERE codeven = v_codeven

             AND codmod  = text-016.

  CLEAR itab_zycbt012.

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

  IF /pws/zycbe112-fassoc EQ ' '.

* << Fim da exclusão

    v_nrdias =  itab_zycbt113p-dtfinal - /pws/zycbe112-dtdesem.

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

  ELSE.

    v_nrdias =  itab_zycbt113p-dtfinal - sy-datum.

  ENDIF.

* << Fim da exclusão

  CLEAR /pws/zyglt009.

  SELECT SINGLE nrdias_cp FROM /pws/zyglt009

                     INTO /pws/zyglt009-nrdias_cp

                     WHERE bukrs EQ /pws/zycbe112-bukrs.

  IF v_nrdias <= /pws/zyglt009-nrdias_cp.

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

    v_prazo = 'S'.

* << Fim da exclusão

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

    v_prazo = text-466.

* << Fim da inclusão

  ELSE.

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

    v_prazo = 'L'.

* << Fim da exclusão

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

    v_prazo = text-465.

  ENDIF.

  IF itab_zycbt113p-ftransf = text-007.

    v_prazo = text-007.

* << Fim da inclusão

  ENDIF.

  CLEAR wa_zycbt011.

  SELECT SINGLE * FROM /pws/zycbt011

                INTO wa_zycbt011

                WHERE codeven = v_codeven

                  AND codmod  = text-016

                  AND bukrs   = /pws/zycbe112-bukrs.

  CONCATENATE /pws/zycbe112-codint v_prazo

              INTO v_codaux1 SEPARATED BY space.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

...

 

...

  DATA: v_monat LIKE t001b-frpe1.

  CLEAR v_erro_estorno.

  LOOP AT itab_zycbt113p.

    CHECK NOT itab_zycbt113p-belnr IS INITIAL.

    itab_zycbe033-mandt = sy-mandt.

    itab_zycbe033-tcode = 'FB08'.

    itab_zycbe033-tabela = text-008.

    itab_zycbe033-cpochv = /pws/zycbe112-nrseq.

    itab_zycbe033-belnr  = itab_zycbt113p-belnr.

    itab_zycbe033-bukrs  = /pws/zycbe112-bukrs.

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

    IF NOT wa_zycbt112-dtcont IS INITIAL.

      itab_zycbe033-budat = wa_zycbt112-dtcont.

* << Fim da exclusão

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

     IF NOT itab_zycbt113p-dtcont IS INITIAL.

       itab_zycbe033-budat  = itab_zycbt113p-dtcont.

     ELSEIF NOT wa_zycbt112-dtcont IS INITIAL.

       itab_zycbe033-budat  = wa_zycbt112-dtcont.

* << Fim da inclusão

    ELSE.

      itab_zycbe033-budat  = /pws/zycbe112-dtdesem.

    ENDIF.

    PERFORM determina_periodo

      USING    itab_zycbe033-budat

      CHANGING v_monat.

    CALL FUNCTION 'FI_PERIOD_CHECK'

         EXPORTING

              i_bukrs          = itab_zycbe033-bukrs

              i_gjahr          = itab_zycbe033-budat+0(4)

...

 

...

  ENDIF.

  LOOP AT itab_zycbt113_ant WHERE belnr_c NE ' '

                              AND belnr_p EQ ' '.

    itab_zycbe033-mandt  = sy-mandt.

    itab_zycbe033-tcode  = 'FB08'.

    itab_zycbe033-tabela = text-051.

    CONCATENATE itab_zycbt113_ant-nrseq itab_zycbt113_ant-tpparc

                itab_zycbt113_ant-nrparc INTO itab_zycbe033-cpochv.

    itab_zycbe033-belnr  = itab_zycbt113_ant-belnr_c.

    itab_zycbe033-bukrs  = /pws/zycbe112-bukrs.

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

     IF NOT itab_zycbt113_ant-dtcont IS INITIAL.

       itab_zycbe033-budat  = itab_zycbt113_ant-dtcont.

     ELSEIF NOT wa_zycbt112-dtcont IS INITIAL.

       itab_zycbe033-budat  = wa_zycbt112-dtcont.

     ELSE.

* << Fim da inclusão

    itab_zycbe033-budat  = wa_zycbt112-dtdesem.

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

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

* << Fim da exclusão

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

     ENDIF.

     PERFORM determina_ano

      USING    itab_zycbe033-budat

      CHANGING itab_zycbe033-gjahs.

* << Fim da inclusão

    v_monat = itab_zycbe033-budat+2(2).

    CALL FUNCTION 'FI_PERIOD_CHECK'

         EXPORTING

              i_bukrs          = itab_zycbe033-bukrs

              i_gjahr          = itab_zycbe033-budat+0(4)

              i_koart          = '+'

              i_monat          = v_monat

         EXCEPTIONS

              error_period     = 1

              error_period_acc = 2

...

 

...

FORM reverse_document_zycbt112_cab.

  DATA:

    wa_mensagem LIKE LINE OF itab_mensagem.

  PERFORM clear_date_batch.

  itab_zycbe033-mandt = sy-mandt.

  itab_zycbe033-tcode = 'FB08'.

  itab_zycbe033-tabela = text-008.

  itab_zycbe033-cpochv = /pws/zycbe112-nrseq.

  itab_zycbe033-belnr  = /pws/zycbe112-belnr.

  itab_zycbe033-bukrs  = wa_zycbt112-bukrs.

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

  READ TABLE itab_zycbt113p WITH KEY

                      dtpagto = '00000000'.

  IF sy-subrc = 0.

    IF NOT itab_zycbt113p-dtcont IS INITIAL.

       itab_zycbe033-budat  = itab_zycbt113p-dtcont.

    ELSEIF NOT wa_zycbt112-dtcont IS INITIAL.

       itab_zycbe033-budat  = wa_zycbt112-dtcont.

    ELSE.

       itab_zycbe033-budat  = wa_zycbt112-dtdesem.

    ENDIF.

  ELSE.

* << Fim da inclusão

  itab_zycbe033-budat  = wa_zycbt112-dtdesem.

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

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

* << Fim da exclusão

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

  ENDIF.

  PERFORM determina_ano

       USING itab_zycbe033-budat

    CHANGING itab_zycbe033-gjahs.

* << Fim da inclusão

  v_monat = itab_zycbe033-budat+2(2).

  CALL FUNCTION 'FI_PERIOD_CHECK'

       EXPORTING

            i_bukrs          = itab_zycbe033-bukrs

            i_gjahr          = itab_zycbe033-budat+0(4)

            i_koart          = '+'

            i_monat          = v_monat

       EXCEPTIONS

            error_period     = 1

            error_period_acc = 2

...

 

...

FORM estorna_parcelas_excluidas.

  DATA:

    wa_mensagem LIKE LINE OF itab_mensagem.

  LOOP AT itab_excluidos.

    itab_zycbe033-mandt = sy-mandt.

    itab_zycbe033-tcode = 'FB08'.

    itab_zycbe033-tabela = text-008.

    itab_zycbe033-cpochv = /pws/zycbe112-nrseq.

    itab_zycbe033-belnr  = itab_excluidos-belnr.

    itab_zycbe033-bukrs  = wa_zycbt112-bukrs.

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

    IF NOT wa_zycbt112-dtcont IS INITIAL.

      itab_zycbe033-budat = wa_zycbt112-dtcont.

* << Fim da exclusão

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

  READ TABLE itab_zycbt113p   WITH KEY

                      dtpagto = '00000000'.

  IF sy-subrc = 0.

    IF NOT itab_zycbt113p-dtcont IS INITIAL.

       itab_zycbe033-budat  = itab_zycbt113p-dtcont.

    ELSEIF NOT wa_zycbt112-dtcont IS INITIAL.

       itab_zycbe033-budat  = wa_zycbt112-dtcont.

    ELSE.

       itab_zycbe033-budat  = wa_zycbt112-dtdesem.

    ENDIF.

* << Fim da inclusão

    ELSE.

      itab_zycbe033-budat  = wa_zycbt112-dtdesem.

    ENDIF.

    PERFORM determina_ano

      USING itab_zycbe033-budat

      CHANGING itab_zycbe033-gjahs.

    PERFORM determina_periodo

      USING itab_zycbe033-budat

      CHANGING v_monat.

    CALL FUNCTION 'FI_PERIOD_CHECK'

...

 

...

ENDFORM.

FORM recontabiliza_parcelas.

  DATA:

    wa_mensagem LIKE LINE OF itab_mensagem.

  REFRESH itab_zycbt036.

  CLEAR itab_zycbt036.

  PERFORM busca_parametros_f_51_clear.

  CLEAR: v_vlres, v_errof.

  LOOP AT itab_zycbt113pa WHERE dtpagto EQ ' ' OR

                                dtpagto EQ '00000000'.

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

    CLEAR v_flag.

* << Fim da inclusão

    READ TABLE itab_zycbt113p WITH KEY nrparc = itab_zycbt113pa-nrparc.

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

    IF itab_zycbt113p-vlme    EQ itab_zycbt113pa-vlme    AND

       itab_zycbt113p-dtvecto EQ itab_zycbt113pa-dtvecto AND

       itab_zycbt113p-belnr   EQ itab_zycbt113pa-belnr.

      IF v_mdparc EQ 'X'.

* << Fim da exclusão

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

    IF itab_zycbt113p-vlme EQ itab_zycbt113pa-vlme AND

       itab_zycbt113p-ftransf EQ itab_zycbt113pa-ftransf.

       v_flag = 'X'.

* << Fim da inclusão

        CONTINUE.

      ENDIF.

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

    ENDIF.

* << Fim da exclusão

    v_vlres = v_vlres + itab_zycbt113pa-vlme.

    IF v_prazo1 EQ 'L' AND

       itab_zycbt113pa-ftransf EQ 'L'.

      itab_zycbt036-tcode  = text-083.

      itab_zycbt036-tabela = text-008.

...

 

...

                                        'DTDESEM'

                                        text-011.

        itab_zycbe033-bldat   = /pws/zycbe112-dtdesem.

        itab_zycbe033-d_valut = /pws/zycbe112-dtdesem.

        IF wa_zycbt007-dt_efet = 'E'.

          itab_zycbe033-d_valut = itab_zycbt113pa-dtvecto .

          converte_data itab_zycbt113pa-dtvecto itab_zycbe033-c_valut.

        ENDIF.

    ENDCASE.

    converte_data itab_zycbt113pa-dtvecto itab_zycbe033-c_valut.

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

    itab_zycbe033-budat = /pws/zycbe112-dtdesem.

* << Fim da exclusão

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

    IF itab_zycbt113pa-ftransf = text-007.

      SELECT  dtcont

        FROM /pws/zycbt154

          UP TO 1 ROWS

        INTO /pws/zycbt154-dtcont

       WHERE nrcorresp EQ /pws/zycbe112-nrseq

         AND tpcontr EQ itab_zycbt113pa-nrparc+1(2)

         AND codmod  EQ 'I'

         AND codmodul EQ 'T'.

      ENDSELECT.

      itab_zycbe033-budat  = /pws/zycbt154-dtcont.

    ELSE.

      IF NOT itab_zycbt113pa-dtcont IS INITIAL.

        itab_zycbe033-budat  = itab_zycbt113pa-dtcont.

      ELSEIF NOT /pws/zycbe112-dtcont IS INITIAL.

        itab_zycbe033-budat  = /pws/zycbe112-dtcont.

      ELSE.

        itab_zycbe033-budat  = /pws/zycbe112-dtdesem.

      ENDIF.

    ENDIF.

    PERFORM determina_ano

      USING    itab_zycbe033-budat

      CHANGING itab_zycbe033-gjahs.

* << Fim da inclusão

    itab_zycbe033-bktxt = wa_zycbt007-bktxt.

    IF NOT /pws/zycbe112-ftxt IS INITIAL.

      itab_zycbe033-d_sgtxt = /pws/zycbe112-txtinf.

      itab_zycbe033-c_sgtxt = /pws/zycbe112-txtinf.

    ENDIF.

    PERFORM preenche_dados_batch USING itab_zycbt113pa-dtfinal.

    IF /pws/zycbe112-ftxt IS INITIAL AND

       itab_zycbe033-d_sgtxt IS INITIAL.

      itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.

      itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.

...

 

...

    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_zycbt113pa-belnr.

    SELECT SINGLE awkey FROM bkpf

                        INTO itab_zycbe033-awkey

                        WHERE belnr EQ itab_zycbt113pa-belnr

                          AND bukrs EQ wa_zycbt112-bukrs

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

                          AND gjahr EQ wa_zycbt112-dtdesem(4).

* << Fim da exclusão

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

                          AND gjahr EQ itab_zycbe033-gjahs.

* << Fim da inclusão

    IF /pws/zycbe112-bco_forn IS INITIAL.

      PERFORM verify_null_field USING /pws/zycbe112-lifnr

                                      'LIFNR'

                                      text-022.

    ELSE.

      PERFORM verify_null_field USING /pws/zycbe112-bcofinan

                                      'LIFNR'

                                      text-022.

    ENDIF.

    itab_zycbe033-d_gsber = /pws/zycbe112-gsber.

...

 

...

                                          tpmsg  = 'S'.

        IF sy-subrc = 0.

          itab_zycbt036-tcode  = text-083.

          itab_zycbt036-tabela = text-008.

          itab_zycbt036-cpochv = /pws/zycbe112-nrseq.

          itab_zycbt036-belnr = itab_zycbt032-belnr.

          SELECT SINGLE awkey FROM bkpf

                              INTO itab_zycbt036-awkey

                              WHERE belnr EQ itab_zycbt032-belnr

                                AND bukrs EQ /pws/zycbe112-bukrs

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

                                AND gjahr EQ /pws/zycbe112-dtdesem(4).

* << Fim da exclusão

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

                                AND gjahr EQ itab_zycbe033-gjahs.

* << Fim da inclusão

          APPEND itab_zycbt036.

        ELSE.

          LOOP AT itab_zycbt032.

            wa_mensagem-tpmsg = c_erro.

            wa_mensagem-msg = itab_zycbt032-msg.

            APPEND wa_mensagem TO itab_mensagem.

          ENDLOOP.

        ENDIF.

      ELSE.

        LOOP AT itab_zycbt034.

...

 

...

          APPEND wa_mensagem TO itab_mensagem.

          MOVE 'X' TO v_errof.

        ENDLOOP.

      ENDIF.

    ENDIF.

    PERFORM clear_date_batch.

  ENDLOOP.

  IF v_errof EQ 'X'.

    EXIT.

  ENDIF.

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

 IF v_flag IS INITIAL.

* << Fim da inclusão

  LOOP AT itab_zycbt113pa WHERE ftransf EQ 'C'.

    DELETE FROM /pws/zycbt154 WHERE codmod EQ 'I'

                         AND codmodul EQ 'T'

                         AND nrcorresp EQ /pws/zycbe112-nrseq

                         AND belnr_cl  EQ itab_zycbt113pa-belnr.

  ENDLOOP.

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

 ELSE.

  EXIT.

 ENDIF.

* << Fim da inclusão

  IF okcode EQ 'DELL' AND

     /pws/zycbe112-nrseq+0(1) = '5'.

    PERFORM clear_date_batch.

    PERFORM reclassifica_financ_original.

  ELSE.

    PERFORM gera_novas_parcelas.

  ENDIF.

ENDFORM.

FORM busca_parametros_f_51_clear.

  DATA : v_diasp LIKE /pws/zycbt113-nrdias.

...

 

...

    v_newkof = itab_zyglt316-konth.

  ENDIF.

  PERFORM verify_null_field USING v_newkof

                                  'C_NEWKO'

                                  text-018.

ENDFORM.

FORM gera_novas_parcelas.

  DATA:

    wa_mensagem LIKE LINE OF itab_mensagem.

  CLEAR : v_flag, v_nrdias.

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

  LOOP AT itab_zycbt113p .

* << Fim da exclusão

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

  LOOP AT itab_zycbt113p.

* << Fim da inclusão

    v_tabix = sy-tabix.

    PERFORM get_parameters_112.

    IF itab_zycbt113p-dtpagto NE ' ' AND

       itab_zycbt113p-dtpagto NE '00000000'.

      CONTINUE.

    ENDIF.

    READ TABLE itab_zycbt113pa WITH KEY nrparc = itab_zycbt113p-nrparc.

    IF itab_zycbt113p-vlme EQ itab_zycbt113pa-vlme AND

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

       itab_zycbt113p-dtvecto EQ itab_zycbt113pa-dtvecto AND

       itab_zycbt113p-belnr EQ itab_zycbt113pa-belnr.

      IF v_mdparc EQ 'X'.

* << Fim da exclusão

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

       itab_zycbt113p-ftransf EQ itab_zycbt113pa-ftransf.

* << Fim da inclusão

        CONTINUE.

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

      ENDIF.

* << Fim da exclusão

    ENDIF.

    itab_zycbe033-mandt = sy-mandt.

    itab_zycbe033-tcode = text-083.

    itab_zycbe033-tabela = text-008.

    itab_zycbe033-cpochv = /pws/zycbe112-nrseq.

    CASE wa_zycbt007-fdtdoc.

...

 

...

                                        'DTDESEM'

                                        text-011.

        itab_zycbe033-bldat   = /pws/zycbe112-dtdesem.

        itab_zycbe033-d_valut = /pws/zycbe112-dtdesem.

        IF wa_zycbt007-dt_efet = 'E'.

          itab_zycbe033-d_valut = itab_zycbt113p-dtvecto .

          converte_data itab_zycbt113p-dtvecto itab_zycbe033-c_valut.

        ENDIF.

    ENDCASE.

    converte_data itab_zycbt113p-dtvecto itab_zycbe033-c_valut.

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

    itab_zycbe033-budat = /pws/zycbe112-dtdesem.

* << Fim da exclusão

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

    IF itab_zycbt113p-ftransf = text-007.

      SELECT  dtcont

        FROM /pws/zycbt154

          UP TO 1 ROWS

        INTO /pws/zycbt154-dtcont

       WHERE nrcorresp EQ /pws/zycbe112-nrseq

         AND tpcontr EQ itab_zycbt113p-nrparc+1(2)

         AND codmod  EQ 'I'

         AND codmodul EQ 'T'.

      ENDSELECT.

      IF sy-subrc = 0.

        itab_zycbe033-budat  = /pws/zycbt154-dtcont.

      ELSE.

        IF NOT itab_zycbt113p-dtcont IS INITIAL.

          itab_zycbe033-budat  = itab_zycbt113p-dtcont.

        ELSEIF NOT /pws/zycbe112-dtcont IS INITIAL.

          itab_zycbe033-budat  = /pws/zycbe112-dtcont.

        ELSE.

          itab_zycbe033-budat  = /pws/zycbe112-dtdesem.

        ENDIF.

      ENDIF.

    ELSE.

      IF NOT itab_zycbt113p-dtcont IS INITIAL.

        itab_zycbe033-budat  = itab_zycbt113p-dtcont.

      ELSEIF NOT /pws/zycbe112-dtcont IS INITIAL.

        itab_zycbe033-budat  = /pws/zycbe112-dtcont.

      ELSE.

        itab_zycbe033-budat  = /pws/zycbe112-dtdesem.

      ENDIF.

    ENDIF.

    PERFORM determina_ano

      USING    itab_zycbe033-budat

      CHANGING itab_zycbe033-gjahs.

* << Fim da inclusão

    itab_zycbe033-bktxt = wa_zycbt007-bktxt.

    IF NOT /pws/zycbe112-ftxt IS INITIAL.

      itab_zycbe033-d_sgtxt = /pws/zycbe112-txtinf.

      itab_zycbe033-c_sgtxt = /pws/zycbe112-txtinf.

    ENDIF.

    PERFORM preenche_dados_batch USING itab_zycbt113p-dtfinal.

    IF /pws/zycbe112-ftxt IS INITIAL AND

       itab_zycbe033-d_sgtxt IS INITIAL.

      itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.

      itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.

...

 

...

             INTO wa_mensagem-msg

        SEPARATED BY space.

      APPEND wa_mensagem TO itab_mensagem.

    ENDLOOP.

    IF itab_zycbt034 IS INITIAL.

      CALL FUNCTION '/PWS/ZYCM_TRANSACAO_F_51I'

           EXPORTING

                v_modo          = v_modo_bi

                v_zuonr         = v_zuonr

                v_dacc          = /pws/zyglt009-dacc

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

           IMPORTING

                v_budat         = v_budat

* << Fim da inclusão

           TABLES

                t_dados         = itab_zycbe033

                t_campo         = itab_zycbt034

                t_zycbt036      = itab_zycbt036

                t_zycbt032      = itab_zycbt032

           EXCEPTIONS

                campo_em_branco = 1

                OTHERS          = 2.

      IF sy-subrc = 0.

        READ TABLE itab_zycbt032 WITH KEY tcode  = text-083

...

 

...

            SEPARATED BY space.

          REFRESH itab_zycbt036.

          itab_zycbt036-tcode  = text-083.

          itab_zycbt036-tabela = text-008.

          itab_zycbt036-cpochv = /pws/zycbe112-nrseq.

          itab_zycbt036-belnr = itab_zycbt032-belnr.

          SELECT SINGLE awkey FROM bkpf

                              INTO itab_zycbt036-awkey

                              WHERE belnr EQ itab_zycbt032-belnr

                                AND bukrs EQ /pws/zycbe112-bukrs

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

                                AND gjahr EQ /pws/zycbe112-dtdesem(4).

* << Fim da exclusão

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

                                 AND gjahr EQ v_budat(4).

* << Fim da inclusão

          APPEND itab_zycbt036.

          itab_zycbt113p-belnr = itab_zycbt032-belnr.

          IF v_prazo EQ 'L'.

            itab_zycbt113p-belnr_lp = itab_zycbt032-belnr.

            itab_zycbt113p-ftransf  = 'L'.

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

          ELSEIF v_prazo EQ text-007.

            itab_zycbt113p-ftransf = text-007.

* << Fim da inclusão

          ELSE.

            itab_zycbt113p-ftransf = 'S'.

          ENDIF.

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

          itab_zycbt113p-dtcont = v_budat.

* << Fim da inclusão

          MODIFY itab_zycbt113p.

          UPDATE /pws/zycbt113 SET belnr    = itab_zycbt032-belnr

                              belnr_lp = itab_zycbt113p-belnr_lp

                              ftransf  = itab_zycbt113p-ftransf

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

                               dtcont  = itab_zycbt113p-dtcont

* << Fim da inclusão

                        WHERE nrseq    = /pws/zycbe112-nrseq

                          AND nrparc   = itab_zycbt113p-nrparc

                          AND tpparc   = 'P'.

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

         IF /pws/zycbe112-nrseq+0(1) = '5'.

* << Fim da inclusão

          DESCRIBE TABLE itab_zycbt113p LINES v_li.

          IF v_li = v_tabix.

            CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'

                 EXPORTING

                      defaultoption  = ''

                      textline1      = text-125

                      textline2      = text-126

                      titel          = text-124

                      cancel_display = ''

                 IMPORTING

                      answer         = v_answer

                 EXCEPTIONS

                OTHERS = 0.

            IF v_answer EQ 'J'.

              UPDATE /pws/zycbt113 SET bloq_juros = 'X'

                                 WHERE nrseq    = itab_zycbt112-nrseq

                                   AND ( tpparc = 'J' OR tpparc = 'C' ).

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

            ENDIF.

* << Fim da inclusão

            ENDIF.

          ENDIF.

        ELSE.

          LOOP AT itab_zycbt032.

            wa_mensagem-tpmsg = c_erro.

            wa_mensagem-msg = itab_zycbt032-msg.

            APPEND wa_mensagem TO itab_mensagem.

          ENDLOOP.

          CLEAR itab_zycbt113p-belnr.

          MODIFY itab_zycbt113p.

...

 

...

           WHERE nrseq = /pws/zycbe112-nrseq.

    PERFORM grava_log USING '/PWS/ZYCBT112'

                            wa_log

                            'A'.

  ENDIF.

  MOVE /pws/zycbt112 TO wa_zycbt112.

ENDFORM.

FORM busca_conta_parcela.

  IF itab_zycbt113pa-ftransf EQ 'L'.

    v_prazo = 'L'.

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

  ELSEIF itab_zycbt113pa-ftransf EQ text-007.

    v_prazo = text-007.

* << Fim da inclusão

  ELSE.

    v_prazo = 'S'.

  ENDIF.

  CONCATENATE wa_zycbt112-codint v_prazo

              INTO v_codaux1 SEPARATED BY space.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

            bukrs           = /pws/zycbe112-bukrs

            ktosl           = 'FIN'

            codaux1         = v_codaux1

...

 

...

                                       'DTDESEM'

                                       text-011.

        itab_zycbe033-bldat   = wa_zycbt112r-dtdesem.

        itab_zycbe033-d_valut = wa_zycbt112r-dtdesem.

        IF wa_zycbt007-dt_efet = 'E'.

          itab_zycbe033-d_valut = wa_zycbt113-dtvecto .

          converte_data wa_zycbt113-dtvecto itab_zycbe033-c_valut.

        ENDIF.

    ENDCASE.

    converte_data wa_zycbt113-dtvecto itab_zycbe033-c_valut.

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

    itab_zycbe033-budat = wa_zycbt112r-dtdesem.

* << Fim da exclusão

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

    IF wa_zycbt113-ftransf = text-007.

      SELECT  dtcont

        FROM /pws/zycbt154

          UP TO 1 ROWS

        INTO /pws/zycbt154-dtcont

       WHERE nrcorresp EQ /pws/zycbe112-nrseq

         AND tpcontr EQ wa_zycbt113-nrparc+1(2)

         AND codmod  EQ 'I'

         AND codmodul EQ 'T'.

      ENDSELECT.

      itab_zycbe033-budat  = /pws/zycbt154-dtcont.

    ELSE.

     IF NOT wa_zycbt113-dtcont IS INITIAL.

       itab_zycbe033-budat  = wa_zycbt113-dtcont.

     ELSEIF NOT wa_zycbt112r-dtcont IS INITIAL.

       itab_zycbe033-budat  = wa_zycbt112r-dtcont.

     ELSE.

       itab_zycbe033-budat  = wa_zycbt112r-dtdesem.

     ENDIF.

    ENDIF.

     PERFORM determina_ano

      USING    itab_zycbe033-budat

      CHANGING itab_zycbe033-gjahs.

* << Fim da inclusão

    itab_zycbe033-bktxt = wa_zycbt007-bktxt.

    IF NOT /pws/zycbe112-ftxt IS INITIAL.

      itab_zycbe033-d_sgtxt = wa_zycbt112r-txtinf.

      itab_zycbe033-c_sgtxt = wa_zycbt112r-txtinf.

    ENDIF.

    LOOP AT itab_zyglt321.

      CASE itab_zyglt321-cpor3.

        WHEN 'SGTXT'.

          IF itab_zyglt321-cpocb IS INITIAL AND

             /pws/zycbe112-ftxt IS INITIAL AND

...

 

...

                                        'DTDESEM'

                                        text-011.

        itab_zycbe033-bldat   = /pws/zycbe112-dtdesem.

        itab_zycbe033-d_valut = /pws/zycbe112-dtdesem.

        IF wa_zycbt007-dt_efet = 'E'.

          itab_zycbe033-d_valut = itab_zycbt113p-dtvecto .

          converte_data itab_zycbt113p-dtvecto itab_zycbe033-c_valut.

        ENDIF.

    ENDCASE.

    converte_data itab_zycbt113p-dtvecto itab_zycbe033-c_valut.

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

    itab_zycbe033-budat = /pws/zycbe112-dtdesem.

* << Fim da exclusão

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

    IF itab_zycbt113p-ftransf = text-007.

      SELECT  dtcont

        FROM /pws/zycbt154

          UP TO 1 ROWS

        INTO /pws/zycbt154-dtcont

       WHERE nrcorresp EQ /pws/zycbe112-nrseq

         AND tpcontr EQ itab_zycbt113p-nrparc+1(2)

         AND codmod  EQ 'I'

         AND codmodul EQ 'T'.

      ENDSELECT.

      IF sy-subrc = 0.

        itab_zycbe033-budat  = /pws/zycbt154-dtcont.

      ELSE.

       IF NOT itab_zycbt113p-dtcont IS INITIAL.

         itab_zycbe033-budat  = itab_zycbt113p-dtcont.

       ELSEIF NOT /pws/zycbe112-dtcont IS INITIAL.

         itab_zycbe033-budat  = /pws/zycbe112-dtcont.

       ELSE.

         itab_zycbe033-budat  = /pws/zycbe112-dtdesem.

       ENDIF.

      ENDIF.

    ELSE.

     IF NOT itab_zycbt113p-dtcont IS INITIAL.

       itab_zycbe033-budat  = itab_zycbt113p-dtcont.

     ELSEIF NOT /pws/zycbe112-dtcont IS INITIAL.

       itab_zycbe033-budat  = /pws/zycbe112-dtcont.

     ELSE.

       itab_zycbe033-budat  = /pws/zycbe112-dtdesem.

     ENDIF.

    ENDIF.

    PERFORM determina_ano

      USING    itab_zycbe033-budat

      CHANGING itab_zycbe033-gjahs.

* << Fim da inclusão

    itab_zycbe033-bktxt = wa_zycbt007-bktxt.

    IF NOT /pws/zycbe112-ftxt IS INITIAL.

      itab_zycbe033-d_sgtxt = /pws/zycbe112-txtinf.

      itab_zycbe033-c_sgtxt = /pws/zycbe112-txtinf.

    ENDIF.

    PERFORM preenche_dados_batch USING itab_zycbt113p-dtfinal.

    IF /pws/zycbe112-ftxt IS INITIAL AND

       itab_zycbe033-d_sgtxt IS INITIAL.

      itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.

      itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.

...

 

...

                                        'DTDESEM'

                                        text-011.

        itab_zycbe033-bldat   = /pws/zycbe112-dtdesem.

        itab_zycbe033-d_valut = /pws/zycbe112-dtdesem.

        IF wa_zycbt007-dt_efet = 'E'.

          itab_zycbe033-d_valut = itab_zycbt113p-dtfinal .

          converte_data itab_zycbt113p-dtfinal itab_zycbe033-c_valut.

        ENDIF.

    ENDCASE.

    converte_data /pws/zycbe112-dtvencto itab_zycbe033-c_valut.

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

    IF NOT /pws/zycbe112-dtcont IS INITIAL.

      itab_zycbe033-budat = /pws/zycbe112-dtcont.

* << Fim da exclusão

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

    IF itab_zycbt113p-ftransf = text-007.

      SELECT  dtcont

        FROM /pws/zycbt154

          UP TO 1 ROWS

        INTO /pws/zycbt154-dtcont

       WHERE nrcorresp EQ /pws/zycbe112-nrseq

         AND tpcontr EQ itab_zycbt113p-nrparc+1(2)

         AND codmod  EQ 'I'

         AND codmodul EQ 'T'.

      ENDSELECT.

      IF sy-subrc = 0.

        itab_zycbe033-budat  = /pws/zycbt154-dtcont.

      ELSE.

       IF NOT itab_zycbt113p-dtcont IS INITIAL.

        itab_zycbe033-budat  = itab_zycbt113p-dtcont.

       ELSEIF NOT /pws/zycbe112-dtcont IS INITIAL.

        itab_zycbe033-budat  = /pws/zycbe112-dtcont.

       ELSE.

        itab_zycbe033-budat  = /pws/zycbe112-dtdesem.

      ENDIF.

     ENDIF.

    ELSE.

     IF NOT itab_zycbt113p-dtcont IS INITIAL.

       itab_zycbe033-budat  = itab_zycbt113p-dtcont.

     ELSEIF NOT /pws/zycbe112-dtcont IS INITIAL.

       itab_zycbe033-budat  = /pws/zycbe112-dtcont.

* << Fim da inclusão

    ELSE.

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

      itab_zycbe033-budat = /pws/zycbe112-dtdesem.

* << Fim da exclusão

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

       itab_zycbe033-budat  = /pws/zycbe112-dtdesem.

     ENDIF.

* << Fim da inclusão

    ENDIF.

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

    PERFORM determina_ano

      USING    itab_zycbe033-budat

      CHANGING itab_zycbe033-gjahs.

* << Fim da inclusão

    itab_zycbe033-bktxt = wa_zycbt007-bktxt.

    itab_zycbe033-agums = wa_zycbt011-agums.

    itab_zycbe033-agkoa = wa_zycbt011-koart.

    IF wa_zycbt112-bco_forn = 'X'.

      itab_zycbe033-agkon = wa_zycbt112-bcofinan.

    ELSE.

      itab_zycbe033-agkon = wa_zycbt112-lifnr.

    ENDIF.

    PERFORM verify_null_field USING itab_zycbe033-agkon

                                    'AGKON'

...

 

...

          itab_zycbe033-c_zuonr = itab_zycbe033-d_zuonr.

        ELSEIF itab_zyglt321-cpocb = 'NRFINANC-NRSEQ'.

          CONCATENATE /pws/zycbe112-nrfinanc '-' /pws/zycbe112-nrseq

                      INTO itab_zycbe033-d_zuonr.

          itab_zycbe033-c_zuonr = itab_zycbe033-d_zuonr.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

          itab_zycbe033-c_zuonr = itab_zyglt321-descr.

        ENDIF.

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

      WHEN 'VALUT'.

        IF itab_zyglt321-cpocb = 'DTINCL'.

          itab_zycbe033-c_valut = /pws/zycbe112-dtincl.

        ENDIF.

* << Fim da inclusão

    ENDCASE.

  ENDLOOP.

ENDFORM.

FORM verifica_pais_filial USING p_bukrs LIKE /pws/zycbe112-bukrs

                                p_brnch LIKE /pws/zycbe112-j_1bbranch.

  SELECT SINGLE adrnr FROM j_1bbranch INTO j_1bbranch-adrnr

                WHERE bukrs  = p_bukrs

                  AND branch = p_brnch.

  IF sy-subrc = 0.

    SELECT country

...

 

...

  ENDIF.

  APPEND   'endform.                                     ' TO t_prog.

  GENERATE SUBROUTINE POOL t_prog NAME w_prog.

  IF sy-subrc = 0.

    PERFORM log IN PROGRAM (w_prog) USING    p_dados

                                             p_tabela

                                    CHANGING p_wa_log

                                    IF FOUND.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

form fill_date_fb02.

    PERFORM clear_date_batch.

    itab_zycbe033-mandt  = sy-mandt.

    itab_zycbe033-tcode  = 'FB02'.

    itab_zycbe033-tabela = '/PWS/ZYCBT113'.

    itab_zycbe033-cpochv = /pws/zycbe112-nrseq.

    PERFORM verify_null_field

            USING /pws/zycbe112-bukrs 'BUKRS' text-012.

    itab_zycbe033-bukrs = /pws/zycbe112-bukrs.

    PERFORM verify_null_field

            USING itab_zycbt113p-belnr 'BELNR' text-463.

    itab_zycbe033-belnr = itab_zycbt113p-belnr.

    CONCATENATE '001' /PWS/ZYCBE112-CODINT INTO v_codeven.

    CLEAR itab_zyglt321.

    REFRESH itab_zyglt321.

    SELECT *

      INTO TABLE itab_zyglt321

      FROM /pws/zyglt321

     WHERE ktosl   = 'FIN'

       AND codeven = v_codeven.

    IF sy-subrc = 0.

       READ TABLE itab_zyglt321

            WITH KEY CPOR3 = 'ZFBDT'.

       IF itab_zyglt321-cpocb = 'DTFINAL'.

          itab_zycbe033-zfbdt = itab_zycbt113p-dtfinal.

       ELSE.

          itab_zycbe033-zfbdt = itab_zycbt113p-dtfinal.

       ENDIF.

    ENDIF.

    itab_zycbe033-zfbdt = itab_zycbt113p-dtfinal.

    IF itab_zycbt113p-ftransf = text-007.

      SELECT  dtcont

        FROM /pws/zycbt154

          UP TO 1 ROWS

        INTO /pws/zycbt154-dtcont

       WHERE nrcorresp EQ /pws/zycbe112-nrseq

         AND tpcontr EQ itab_zycbt113p-nrparc+1(2)

         AND codmod  EQ 'I'

         AND codmodul EQ 'T'.

      ENDSELECT.

      IF sy-subrc = 0.

        itab_zycbe033-gjahs  = /pws/zycbt154-dtcont.

      ELSE.

       IF NOT itab_zycbt113p-dtcont IS INITIAL.

         itab_zycbe033-gjahs  = itab_zycbt113p-dtcont.

       ELSEIF NOT /pws/zycbe112-dtcont IS INITIAL.

         itab_zycbe033-gjahs  = /pws/zycbe112-dtcont.

       ELSE.

         itab_zycbe033-gjahs  = /pws/zycbe112-dtdesem.

       ENDIF.

      ENDIF.

    ELSE.

     IF NOT itab_zycbt113p-dtcont IS INITIAL.

       itab_zycbe033-gjahs  = itab_zycbt113p-dtcont.

     ELSEIF NOT /pws/zycbe112-dtcont IS INITIAL.

       itab_zycbe033-gjahs  = /pws/zycbe112-dtcont.

     ELSE.

       itab_zycbe033-gjahs  = /pws/zycbe112-dtdesem.

     ENDIF.

    ENDIF.

    PERFORM verify_null_field

            USING itab_zycbe033-gjahs 'GJAHS' text-464.

  LOOP AT itab_zyglt321.

    CASE itab_zyglt321-cpor3.

      WHEN 'ZFBDT'.

        CASE itab_zyglt321-cpocb.

          WHEN 'DTFINAL'.

            itab_zycbe033-zfbdt = itab_zycbt113p-dtfinal.

        ENDCASE.

      WHEN 'ZUONR'.

        CASE itab_zyglt321-cpocb.

          WHEN 'NRSEQ'.

            itab_zycbe033-d_zuonr = itab_zycbt113p-nrseq.

            itab_zycbe033-c_zuonr = itab_zycbt113p-nrseq.

        ENDCASE.

      WHEN 'VALUT'.

        CASE itab_zyglt321-cpocb.

          WHEN 'DTINCL'.

            itab_zycbe033-d_valut = /pws/zycbe112-dtincl.

            itab_zycbe033-c_valut = /pws/zycbe112-dtincl.

        ENDCASE.

      WHEN 'XBLNR'.

        CASE itab_zyglt321-cpocb.

          WHEN 'NRSEQ'.

            itab_zycbe033-xblnr = itab_zycbt113p-nrseq.

        ENDCASE.

    ENDCASE.

  ENDLOOP.

   CLEAR itab_zycbe033-newbs.

   IF itab_zycbt113p-belnr = itab_zycbt113p-belnr_ori.

      itab_zycbe033-newbs = '29'.

   ENDIF.

    APPEND itab_zycbe033.

    LOOP AT itab_zycbt034.

      MESSAGE i016 WITH itab_zycbt034-descricao.

    ENDLOOP.

    IF itab_zycbt034[] IS INITIAL.

        CALL FUNCTION '/PWS/ZYCB_TRANSACAO_FB02B'

           EXPORTING

                v_modo          = v_modo_bi

           TABLES

                t_dados         = itab_zycbe033

                t_campo         = itab_zycbt034

                t_zycbt032      = itab_zycbt032

                t_zycbt036      = itab_zycbt036

           EXCEPTIONS

                campo_em_branco = 1

                periodo_fechado = 2

                OTHERS          = 3.

      IF sy-subrc EQ 0.

        READ TABLE itab_zycbt032 WITH KEY tcode  = 'FB02'

                                          tabela = '/PWS/ZYCBT113'

                                          cpochv = /pws/zycbe112-nrseq

                                          tpmsg  = 'S'.

        IF sy-subrc NE 0.

          MESSAGE i015 WITH text-461.

        ELSE.

          MESSAGE i015 WITH text-462.

        ENDIF.

      ELSE.

        MESSAGE i015 WITH text-461.

      ENDIF.

    ENDIF.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCM101I01

 

...

            CLEAR /pws/zycbt154.

            SELECT dtcont

              FROM /pws/zycbt154

                up to 1 rows

              INTO /pws/zycbt154-dtcont

             WHERE codmod EQ 'I'

             AND codmodul EQ 'T'

            AND nrcorresp EQ /pws/zycbe112-nrseq

             AND belnr_cl EQ v_valor.

            endselect.

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

            IF sy-subrc = 0.

* << Fim da inclusão

            i_gjahr = /pws/zycbt154-dtcont(4).

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

            ELSE.

               IF NOT itab_zycbt113p-dtcont IS INITIAL.

                  i_gjahr = itab_zycbt113p-dtcont(4).

               ELSEIF NOT wa_zycbt112-dtcont IS INITIAL.

                  i_gjahr = wa_zycbt112-dtcont(4).

               ELSE.

                  i_gjahr = wa_zycbt112-dtdesem(4).

               ENDIF.

            ENDIF.

* << Fim da inclusão

          ELSE.

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

            IF NOT itab_zycbt113p-dtcont IS INITIAL.

               i_gjahr = itab_zycbt113p-dtcont(4).

            ELSEIF NOT wa_zycbt112-dtcont IS INITIAL.

* << Fim da inclusão

            i_gjahr = wa_zycbt112-dtcont(4).

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

            ELSE.

               i_gjahr = wa_zycbt112-dtdesem(4).

            ENDIF.

* << Fim da inclusão

          ENDIF.

        ENDIF.

        SET PARAMETER ID 'BUK' FIELD i_bukrs.

        SET PARAMETER ID 'BLN' FIELD i_belnr.

        SET PARAMETER ID 'GJR' FIELD i_gjahr.

        AUTHORITY-CHECK OBJECT 'S_TCODE'

            ID 'TCD'  FIELD 'FB03'.

        IF sy-subrc EQ 0.

          CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

        ELSE.

...

 

...

ENDMODULE.

MODULE consiste_dtdesem INPUT.

  CLEAR v_retorno.

ENDMODULE.

MODULE consiste_dtvencto INPUT.

  v_vencto = wa_zycbt112-dtvencto.

  IF /pws/zycbe112-dtvencto < /pws/zycbe112-dtincl.

    MESSAGE i184.

    /pws/zycbe112-dtvencto = v_vencto.

    EXIT.

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

  ENDIF.

  IF NOT itab_zycbt113p[] IS INITIAL.

     LOOP AT itab_zycbt113p WHERE dtpagto <> '' AND

                                  dtpagto <> '00000000'.

       IF /pws/zycbe112-dtvencto < itab_zycbt113p-dtfinal.

         MESSAGE i272.

       ENDIF.

     ENDLOOP.

* << Fim da inclusão

  ENDIF.

ENDMODULE.

MODULE consiste_fornec INPUT.

  SELECT SINGLE * FROM lfa1

    WHERE lifnr EQ /pws/zycbe112-lifnr.

  IF lfa1-land1 EQ 'BR'.

    MESSAGE i178.

    CLEAR /pws/zycbe112-lifnr.

  ENDIF.

ENDMODULE.

...

 

...

      WHEN 'J'.

        CLEAR   itab_zycmt020.

        REFRESH itab_zycmt020.

      WHEN OTHERS.

        IF NOT /pws/zycmt019-tpmatnr IS INITIAL.

          MOVE /pws/zycmt019-tpmatnr TO /pws/zycbe112-codint.

        ENDIF.

    ENDCASE.

  ENDIF.

ENDMODULE.

* >> Início da inclusão:

module dias_principal input.

 LOOP AT itab_zycbt113p.

   v_nrdias = itab_zycbt113p-dtfinal - /pws/zycbe112-dtdesem.

   IF  itab_zycbt113p-ftransf EQ 'C'.

       READ TABLE itab_zycbt113p_ant

            WITH KEY nrseq   = itab_zycbt113p-nrseq

                     nrparc  = itab_zycbt113p-nrparc

                     tpparc  = itab_zycbt113p-tpparc.

       IF sy-subrc = 0.

         IF itab_zycbt113p_ant-nrdias <> itab_zycbt113p-nrdias.

            IF v_nrdias < wa_zyglt009-nrdias_cp.

               itab_zycbt113p-ftransf = 'C'.

               v_descprzcontr = text-459.

            ELSE.

               itab_zycbt113p-ftransf = 'L'.

               v_descprzcontr = text-458.

            ENDIF.

         ENDIF.

       ENDIF.

   ELSE.

      IF v_nrdias < wa_zyglt009-nrdias_cp.

        itab_zycbt113p-ftransf = 'S'.

        v_descprzcontr = text-460.

      ELSE.

        itab_zycbt113p-ftransf = 'L'.

        v_descprzcontr = text-459.

      ENDIF.

   ENDIF.

   MODIFY itab_zycbt113p.

 ENDLOOP.

endmodule.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCM101O01

 

...

         FROM /pws/zycbt064 INTO TABLE itab_zycbt064

         WHERE nrchave   = /pws/zycbe112-nrseq

           AND mdcorresp = 'IF'.

  IF sy-subrc = 0.

    SELECT * FROM /pws/zycbt048 INTO TABLE itab_zycbt048

             FOR ALL ENTRIES IN itab_zycbt064

             WHERE nrseq     = itab_zycbt064-nrboleto

               AND nrcorresp = itab_zycbt064-nrchave

               AND mdcorresp = 'IF'.

  ENDIF.

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

  SELECT SINGLE * FROM /pws/zyglt009 INTO wa_zyglt009

                  WHERE bukrs EQ /pws/zycbe112-bukrs.

* << Fim da inclusão

ENDMODULE.

MODULE insert_line OUTPUT.

  CASE sy-dynnr.

    WHEN '0102'.

      /pws/zycbe113 = itab_zycbt113p.

      mark = itab_zycbt113p-mark.

      /pws/zycbe113-dtvecto     = itab_zycbt113p-dtvecto.

      /pws/zycbe048-nrcontr     = itab_zycbt113p-nrcontr.

      /pws/zycbe048-dtcontr     = itab_zycbt113p-dtcontr.

      /pws/zycbe048-dtdebito    = itab_zycbt113p-dtdebito.

...

 

...

                / /pws/zycbt010-nrdias * nrdias ).

        ENDIF.

      ELSE.

        MESSAGE w048.

        FIELDS /pws/zycbe112-tptaxa.

      ENDIF.

    ENDIF.

  ENDIF.

ENDMODULE.

MODULE set-screen OUTPUT.

* >> Início da exclusão: MODULE SET-SCREEN

  DATA : v_nrseqb LIKE /pws/zycbt113-nrseq."#EC NEEDED

* << Fim da exclusão

* >> Início da inclusão: MODULE SET-SCREEN

  DATA : v_nrseqb LIKE /pws/zycbt113-nrseq. "#EC NEEDED

* << Fim da inclusão

  IF v_status_s = '0'.

    LOOP AT SCREEN.

      screen-input = '0'.

      MODIFY SCREEN.

    ENDLOOP.

  ELSE.

    SELECT nrseq FROM /pws/zycbt113

                   up to 1 rows

                 INTO v_nrseqb

                WHERE nrseq EQ /pws/zycbe112-nrseq

...

 

...

    ELSE.

      LOOP AT SCREEN.

        IF screen-name = '/PWS/ZYCBE112-SLDESEM'.

          screen-input = '0'.

        ELSEIF screen-name EQ '/PWS/ZYCBE112-BCOFINAN'.

          IF /pws/zycbe112-flinha = 'X'.

            screen-input = '0'.

          ELSE.

            screen-input = '1'.

          ENDIF.

* >> Início da inclusão: MODULE SET-SCREEN

        ELSEIF screen-name = '/PWS/ZYCBE113-FTRANSF'   OR

               screen-name = 'V_DESCPRZCONTR'.

            screen-input = '0'.

* << Fim da inclusão

        ELSEIF v_nrseqcview(1) EQ '5' AND

               ( screen-name EQ '/PWS/ZYCBE112-WAERS' OR

                 screen-name EQ '/PWS/ZYCBE112-VLME' ).

          screen-input = '0'.

        ELSE.

          screen-input = '1'.

        ENDIF.

        IF v_prinpg EQ 'X' OR /pws/zycbe112-fassoc = 'X'.

          IF screen-name EQ '/PWS/ZYCBE112-NRFINANC' OR

             screen-name EQ '/PWS/ZYCBE112-DTDESEM'  OR

...

 

...

             screen-name EQ '/PWS/ZYCBE112-WAERS'    OR

             screen-name EQ '/PWS/ZYCBE112-KURSF'    OR

             screen-name EQ '/PWS/ZYCBE112-FTAXA'    OR

             screen-name EQ '/PWS/ZYCBE112-VLME'     OR

             screen-name EQ '/PWS/ZYCBE112-LIFNR'    OR

             screen-name EQ '/PWS/ZYCBE112-GSBER'    OR

             screen-name EQ '/PWS/ZYCBE112-KOSTL'    OR

             screen-name EQ '/PWS/ZYCBE112-PRCTR'    OR

             screen-name EQ '/PWS/ZYCBE112-FICTR'    OR

             screen-name EQ '/PWS/ZYCBE112-FIPOS'    OR

* >> Início da exclusão: MODULE SET-SCREEN

             screen-name EQ '/PWS/ZYCBE112-CODINT'   OR

             screen-name EQ '/PWS/ZYCBE112-DTVENCTO'.

* << Fim da exclusão

* >> Início da inclusão: MODULE SET-SCREEN

             screen-name EQ '/PWS/ZYCBE112-CODINT'.

* << Fim da inclusão

            screen-input = '0'.

          ENDIF.

        ENDIF.

        IF v_jurpg EQ 'X'.

          IF screen-name EQ '/PWS/ZYCBE112-DTDESEM'  OR

             screen-name EQ '/PWS/ZYCBE112-BUKRS'    OR

             screen-name EQ '/PWS/ZYCBE112-WAERS'    OR

* >> Início da exclusão: MODULE SET-SCREEN

             screen-name EQ '/PWS/ZYCBE112-VLME'     OR

             screen-name EQ '/PWS/ZYCBE112-DTVENCTO'.

* << Fim da exclusão

* >> Início da inclusão: MODULE SET-SCREEN

             screen-name EQ '/PWS/ZYCBE112-VLME'.

* << Fim da inclusão

            screen-input = '0'.

          ENDIF.

        ENDIF.

        IF v_compg EQ 'X'.

          IF screen-name EQ '/PWS/ZYCBE112-DTDESEM'  OR

             screen-name EQ '/PWS/ZYCBE112-BUKRS'    OR

             screen-name EQ '/PWS/ZYCBE112-WAERS'    OR

             screen-name EQ '/PWS/ZYCBE112-VLME'     OR

* >> Início da exclusão: MODULE SET-SCREEN

             screen-name EQ '/PWS/ZYCBE112-DTVENCTO' OR

* << Fim da exclusão

             screen-name EQ '/PWS/ZYCBE112-PERCOMIS' OR

             screen-name EQ '/PWS/ZYCBE112-VLCOMIS'  OR

             screen-name EQ '/PWS/ZYCBE112-FPAGTO_C' OR

             screen-name EQ '/PWS/ZYCBE112-NRPARC'   OR

             screen-name EQ '/PWS/ZYCBE112-TPCOMIS'  OR

             screen-name EQ '/PWS/ZYCBE112-TPTAXA'.

            screen-input = '0'.

          ENDIF.

        ENDIF.

        MODIFY SCREEN.

...

 

...

        SELECT SINGLE * FROM lfa1

          WHERE lifnr EQ /pws/zycbe112-lifnr.

        fornecedor = lfa1-name1.

      ENDIF.

      IF NOT /pws/zycbe112-dtvencto IS INITIAL.

        IF /pws/zycbe112-dtvencto IS INITIAL OR

           /pws/zycbe112-dtdesem  IS INITIAL.

          CLEAR nrdias.

        ELSE.

          nrdias = ( /pws/zycbe112-dtvencto - /pws/zycbe112-dtdesem ).

* >> Início da inclusão: MODULE SET-SCREEN

         IF NOT nrdias IS INITIAL.

          IF sy-tcode NE  '/PWS/ZYCB101_C'.

             IF itab_zycbt113p[] IS INITIAL.

               SELECT * FROM /pws/zycbt113

                 INTO TABLE itab_zycbt113p

                WHERE nrseq EQ v_nrseqc

                  AND tpparc EQ 'P'

                  AND status NE 'E'.

             ENDIF.

          ENDIF.

          READ TABLE itab_zycbt113p index sy-tfill.

          IF sy-tcode EQ c_transacao_e.

            IF itab_zycbt113p-ftransf = text-465.

               /pws/zycbe113-ftransf = itab_zycbt113p-ftransf.

               v_descprzcontr = text-458.

            ELSEIF itab_zycbt113p-ftransf = text-466.

               /pws/zycbe113-ftransf = itab_zycbt113p-ftransf.

               v_descprzcontr = text-460.

            ENDIF.

          ENDIF.

          IF itab_zycbt113p-ftransf EQ text-007.

             /pws/zycbe113-ftransf = text-007.

             v_descprzcontr = text-459.

          ELSE.

            IF sy-tcode EQ c_transacao_c OR

               sy-tcode EQ c_transacao_a.

              IF wa_zyglt009-nrdias_cp < nrdias.

                 v_prazo = text-465.

                 v_descprzcontr = text-458.

              ELSEIF wa_zyglt009-nrdias_cp >= nrdias.

                 v_prazo = text-466.

                 v_descprzcontr = text-460.

              ENDIF.

              IF v_prazo = text-466 AND

                 /pws/zycbe113-ftransf = text-007.

                  /pws/zycbe113-ftransf = text-007.

                  v_descprzcontr = text-459.

              ELSE.

                  IF v_prazo = text-466.

                    /pws/zycbe113-ftransf = text-466.

                  ELSE.

                    IF nrdias > wa_zyglt009-nrdias_cp.

                      /pws/zycbe113-ftransf = text-465.

                      v_descprzcontr = text-458.

                    ELSEIF nrdias <= wa_zyglt009-nrdias_cp.

                      /pws/zycbe113-ftransf = text-007.

                      v_descprzcontr = text-459.

                    ENDIF.

                  ENDIF.

              ENDIF.

            ENDIF.

            IF v_flag = 'X'.

              IF wa_zyglt009-nrdias_cp < nrdias.

                 v_prazo = text-465.

                 v_descprzcontr = text-458.

              ELSEIF wa_zyglt009-nrdias_cp >= nrdias.

                 v_prazo = text-466.

                 v_descprzcontr = text-460.

              ENDIF.

              IF v_prazo = text-466 AND

                  /pws/zycbe113-ftransf = text-007.

                  /pws/zycbe113-ftransf = text-007.

                  v_descprzcontr = text-459.

              ELSE.

                  IF v_prazo = text-466.

                    /pws/zycbe113-ftransf = text-466.

                  ELSE.

                    IF nrdias > wa_zyglt009-nrdias_cp.

                      /pws/zycbe113-ftransf = text-465.

                      v_descprzcontr = text-458.

                    ELSEIF nrdias <= wa_zyglt009-nrdias_cp.

                      /pws/zycbe113-ftransf = text-007.

                      v_descprzcontr = text-459.

                    ENDIF.

                  ENDIF.

              ENDIF.

            ENDIF.

           ENDIF.

         ELSE.

            CLEAR:/pws/zycbe113-ftransf, v_descprzcontr.

         ENDIF.

* << Fim da inclusão

        ENDIF.

      ENDIF.

      CLEAR /pws/zyglt214.

      SELECT SINGLE * FROM /pws/zyglt214

             INTO /pws/zyglt214

             WHERE codnorma = /pws/zycbe112-codnorma.

      IF sy-subrc EQ 0.

        norma = /pws/zyglt214-norma.

      ELSE.

        CLEAR norma.

...

 

...

  ENDIF.

  MOVE: v_moeda   TO v_waers.

  IF v_nrseqc IS INITIAL.

    GET PARAMETER ID '/PWS/ZYCBP361' FIELD v_nrseqc.

  ENDIF.

ENDMODULE.

MODULE status_0300 OUTPUT.

  SET PF-STATUS '0300'.

  SET TITLEBAR '300'.

  GET PARAMETER ID '/PWS/ZYCBP361' FIELD v_nrseqc.

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

  GET PARAMETER ID 'X' FIELD v_flag.

* << Fim da inclusão

ENDMODULE.

MODULE set_screen_0100 OUTPUT.

  IF v_status_s = '0'.

    LOOP AT SCREEN.

      IF screen-group1 NE 'TAB'.

        screen-input = '0'.

        MODIFY SCREEN.

      ENDIF.

      IF screen-name = 'TAB_ASSOC'.

        SELECT SINGLE * FROM /pws/zycbt112

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCM101TOP

 

...

TYPE-POOLS: sydes.

DATA: wa_zycbt007     LIKE /pws/zycbt007,

      wa_zycbt011     LIKE /pws/zycbt011,

      wa_zycbt011_rd  LIKE /pws/zycbt011,

      wa_zycbt031a    LIKE /pws/zycbt031,

      wa_zycbt064a    LIKE /pws/zycbt064,

      wa_zycbt114     LIKE /pws/zycbt114,

      wa_zycbt112r    LIKE /pws/zycbt112,

      wa_cols         TYPE cxtab_column,

      wa_zycbe112_aux LIKE /pws/zycbe112,

* >> Início da exclusão:

      wa_zycbe113_aux LIKE /pws/zycbe113.

* << Fim da exclusão

* >> Início da inclusão:

      wa_zycbe113_aux LIKE /pws/zycbe113,

      wa_zyglt009     LIKE /pws/zyglt009.

* << Fim da inclusão

DATA: wa_log          TYPE char4000,

      wa_zycbt112_log LIKE /pws/zycbt112,

      wa_zycbt113_log LIKE /pws/zycbt113.

DATA:

  v_tela_help      LIKE sy-dynnr VALUE '0052',

  v_existe         VALUE 'N',

  v_apagar         VALUE 'S',

  v_origem         TYPE c,

  v_index          LIKE sy-tabix,

  v_processa,"#EC NEEDED

...

 

...

  v_nrseq_ant      LIKE /pws/zycbt112-nrseq,

  v_nrseq_aux      LIKE /pws/zycbt112-nrseq,

  v_prazo,

  v_dele,

  v_prazo1,

  v_mdparc,

  v_nrdias         TYPE i,

  v_newkof         LIKE /pws/zycbt012-saknr1,

  v_vlres          LIKE /pws/zycbt113-vlme,

  v_zuonr          LIKE bseg-zuonr,

* >> Início da inclusão:

  v_budat          TYPE /pws/zycbt113-dtcont,

* << Fim da inclusão

  v_dias(1),

  v_jurpg(1),

  norma            LIKE /pws/zyglt214-norma,

  v_pedido,

  v_display,

  v_exclui(1)      TYPE c,

  v_relevante,

  v_errof(1)       TYPE c,

  v_modifp ,"#EC NEEDED

  txtmodalidade(25) TYPE c,

...

 

...

  v_vlr_item       LIKE /pws/zycmt020-vlpago,

  v_tabix          LIKE sy-tabix,

  v_lifnr          LIKE ekko-lifnr,

  v_campo1(22)     TYPE c,

  v_valor1         LIKE ekko-ebeln,

  v_ped            LIKE ekpo-ebeln,

  v_lines          TYPE i,

  v_saldo          LIKE /pws/zycmt020-vlpago,

  v_tot_pedido     LIKE /pws/zycmt020-netwr,

  pressed_tab        LIKE sy-ucomm,

* >> Início da exclusão:

  dynpronr(4)        TYPE c."#EC NEEDED

* << Fim da exclusão

* >> Início da inclusão:

  dynpronr(4)        TYPE c,"#EC NEEDED

  v_descprzcontr(21)      TYPE c.

CONSTANTS: c_transacao_c(14) VALUE '/PWS/ZYCB101_C',

           c_transacao_a(14) VALUE '/PWS/ZYCB101_A',

           c_transacao_e(14) VALUE '/PWS/ZYCB101_E'.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/ZYCBI112

 

...

ENDFORM.

FORM totaliza_comissao.

  CLEAR: v_tcomis.

  LOOP AT itab_relat_aux WHERE nrseq = itab_relat-nrseq

                           AND nrparcj = itab_relat-nrparcj

                           AND tpcontab = 'C'.

    v_tcomis = v_tcomis + itab_relat_aux-vlmej.

  ENDLOOP.

ENDFORM.

FORM clearing_transferencia.

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

  DATA: v_dtcont TYPE /pws/zycbt112-dtcont,

        v_ano    TYPE bkpf-gjahr.

* << Fim da inclusão

  PERFORM get_parameters_f-51t.

  PERFORM clear_date_batch.

  itab_zycbe033-mandt = sy-mandt.

  itab_zycbe033-tcode = text-100.

  itab_zycbe033-tabela = text-101.

  itab_zycbe033-cpochv = itab_contabil-nrseq.

  IF NOT s_dtlanc IS INITIAL.

    itab_zycbe033-budat = s_dtlanc.

  ELSE.

    itab_zycbe033-budat = s_dtentr.

...

 

...

    itab_zycbe033-d_valut = itab_contabil-dtfpar.

    itab_zycbe033-c_valut = itab_contabil-dtfpar.

  ENDIF.

  READ TABLE itab_zycbt113p WITH KEY nrseq = itab_contabil-nrseq

                                     nrparc = itab_contabil-nrparcp.

  IF sy-subrc = 0.

    itab_zycbt036-tcode  = text-100.

    itab_zycbt036-tabela = text-101.

    itab_zycbt036-cpochv = itab_contabil-nrseq.

    itab_zycbt036-belnr  = itab_zycbt113p-belnr_lp.

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

    IF NOT itab_zycbt113p-dtcont IS INITIAL.

        v_dtcont = itab_zycbt113p-dtcont.

    ELSEIF NOT itab_zycbt112-dtcont IS INITIAL.

        v_dtcont = itab_zycbt112-dtcont.

    ELSE.

        v_dtcont = itab_zycbt112-dtdesem.

    ENDIF.

    PERFORM determina_ano USING v_dtcont

                                itab_zycbt112-bukrs

                       CHANGING v_ano.

* << Fim da inclusão

    SELECT SINGLE awkey FROM bkpf

                        INTO itab_zycbt036-awkey

                        WHERE belnr EQ itab_zycbt113p-belnr_lp

                          AND bukrs EQ itab_zycbt112-bukrs

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

                          AND gjahr EQ itab_zycbt112-dtdesem(4).

* << Fim da exclusão

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

                          AND gjahr EQ v_ano.

* << Fim da inclusão

    APPEND itab_zycbt036.

  ENDIF.

  itab_zycbe033-d_newko = itab_contabil-d_newko.

  itab_zycbe033-c_newko = itab_contabil-c_newko.

  itab_zycbe033-xblnr   = itab_contabil-nrseq.

  itab_zycbe033-d_zuonr = itab_contabil-nrseq.

  itab_zycbe033-c_zuonr = itab_contabil-nrseq.

  itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.

  itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.

  PERFORM verify_null_field USING itab_contabil-bukrs

...

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCM101

 

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

Excluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 211

 

Texto: (14 caracteres)

"IMPORT INVOICE"

 

Comprimento máximo: 20

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 458

 

Texto: (11 caracteres)

"Longo Prazo"

 

Comprimento máximo: 11

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 459

 

Texto: (11 caracteres)

"Curto Prazo"

 

Comprimento máximo: 11

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 460

 

Texto: (16 caracteres)

"Curtíssimo Prazo"

 

Comprimento máximo: 16

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 461

 

Texto: (32 caracteres)

"Data Efetiva não foi atualizada."

 

Comprimento máximo: 32

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 462

 

Texto: (32 caracteres)

"Registro atualizado com sucesso!"

 

Comprimento máximo: 32

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 463

 

Texto: (9 caracteres)

"Documento"

 

Comprimento máximo: 9

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 464

 

Texto: (9 caracteres)

"Exercício"

 

Comprimento máximo: 132

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 465

 

Texto: (1 caracteres)

"L"

 

Comprimento máximo: 1

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 466

 

Texto: (1 caracteres)

"S"

 

Comprimento máximo: 1

 

 

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

Modificações efetuadas em TABD /PWS/ZYCBE113

 

MODIFICAR ESTRUTURA DA TABELA: /PWS/ZYCBE113

DESCRIÇÃO BREVE: CM - Período (Principal, Juros e Comissão)

 

CARACTERÍSTICAS

 

CLASSSE DE DESENVOLVIMENTO: /PWS/ZYCM

 

COMPONENTES NOVOS

 

COMPONENTE:   TP. COMPONENTE:   TAB.REF.:   CPO.REF.:   AJUD. PESQU.

DTCONT        BUDAT

 

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

Modificações efetuadas em TABD /PWS/ZYCBT113

 

MODIFICAR TABELA TRANSPARENTE: /PWS/ZYCBT113

DESCRIÇÃO BREVE: CM - Período (Principal, Juros e Comissão)

 

CARACTERÍSTICAS

 

CATEGORIA DA TABELA: TABELA TRANSPARENTE

CLASSE DE ENTREGA:   A

(X) - AUTUALIZAÇÃO DE TABELAS PERMITIDA

 

CRIAR CAMPO NOVO

 

CAMPOS:         TP. CAMPO   CH: INI: TAB.VERIF.:    TAB.REF.:     CPO.RE

DTCONT          BUDAT

 

OPÇÕES TÉCNICAS

 

TIPO DE DADOS: APPL0

CATEGOR. TAMANHO: 0

 

(X) - AR. BUFFER NÃO PERMITIDO

(_) - AR. BUFFER PERMITIDO, MAS DESATIVADO

(_) - AR. BUFFER ATIVADO

(_) - RGSTS. IND ARMAZENADOS

(_) - ÁREA GEN ARMAZENADA EM BUFFER   Nº DE CPOS CHAVE: 0

(_) - TOTALMENTE ARMAZENADO

(_) - REGISTRAR MODIFICS. DDS. EM LOG.