CE PLUS - Nota 006114

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Rotina de Pagamento

Data/Hora da Publicação: 05/03/2008 00:00:00

Data/Hora Última Alteração: 18/02/2011 13:54:33

Descrição da Nota: COMPLEMENTO DO BOLETO - DA ESTORNO PAGAMENTO ANTECIPADO/FAT. IMPORTAÇÃO

Sintoma

DA Estorno Pagamento Antecipado/Fat. Importação

 

 

Solução

DA Estorno Pagamento Antecipado/Fat. Importação

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

COTAÇÃO MOEDA - MODIFICAR/EXCLUIR

CODE INSPECTOR, VERIFICAÇÃO AMPLIADA - CAMBIO

SAÍDA DE PAGAMENTO/COMPLEMENTO - BOLETO/REMESSA FORMATO DE DATA

DESPESAS DE EXPORTAÇÃO

COMPLEMENTO DE BOLETO REMESSA CAMPO LIFNR ZYCAT024

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

PAGAMENTO DO BOLETO DE REMESSA FINANCEIRA, DEDUZINDO O IRRF

REMESSA - AJUSTE NO CALCULO DE IMPOSTOS

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

PROCESSAR BOLETO COMISSÃO DE AGENTE - DUMP EDIÇÃO CAMPOS

COMPLEMENTO DO BOLETO - ESTORNO - PAGAMENTO FATURA

COMPLEMENTO DO BOLETO REMESA EXCLUIR

Informações Complementares

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

Nota Número 06114 Data: 05/03/2008 Hora: 19:22:13

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

 

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

Nota Número              : 06114

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00004

Agrupamento              : 00037

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

Referência às notas relacionadas:

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

 

00999  - 00001 - 6.0    - 00023  - PAGAMENTO DO BOLETO DE REMESSA FINANCEIRA, DEDUZINDO O IRRF

01009  - 00002 - 6.0    - 00023  - PROCESSAR BOLETO COMISSÃO DE AGENTE - DUMP EDIÇÃO CAMPOS

01020  - 00003 - 6.0    - 00023  - COMPLEMENTO DE BOLETO REMESSA CAMPO LIFNR ZYCAT024

02184  - 00004 - 6.0    - 00025  - COMPLEMENTO DO BOLETO - ESTORNO - PAGAMENTO FATURA

02206  - 00005 - 6.0    - 00025  - COMPLEMENTO DO BOLETO REMESA EXCLUIR

02246  - 00006 - 6.0    - 00025  - SAÍDA DE PAGAMENTO/COMPLEMENTO - BOLETO/REMESSA FORMATO DE DATA

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

04594  - 00008 - 7.0    - 00002  - COTAÇÃO MOEDA - MODIFICAR/EXCLUIR

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

05911  - 00010 - 7.0    - 00004  - REMESSA - AJUSTE NO CALCULO DE IMPOSTOS

06077  - 00011 - 7.0    - 00004  - DESPESAS DE EXPORTAÇÃO

06094  - 00012 - 7.0    - 00004  - CODE INSPECTOR, VERIFICAÇÃO AMPLIADA - CAMBIO

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

COMPLEMENTO DO BOLETO - DA ESTORNO PAGAMENTO ANTECIPADO/FAT. IMPORTAÇÃO

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

Palavras Chave:

COMPLEMENTO DO BOLETO - DA ESTORNO PAGAMENTO ANTECIPADO/FAT. IMPORTAÇÃO

 

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

Objetos da nota:

FUNC /PWS/ZYCA_TRANSACAO_F_51P

FUNC /PWS/ZYCB_TRANSACAO_F_02A

REPS /PWS/LZYCAGF2F01

REPS /PWS/LZYCAGF2TOP

REPS /PWS/MZYCA110F01

REPS /PWS/MZYCB110F01

REPS /PWS/MZYCM110F01

REPS /PWS/MZYGL110F01

REPS /PWS/MZYGL110TOP

REPT /PWS/SAPMZYCB110

 

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

Modificações efetuadas em FUNC /PWS/ZYCA_TRANSACAO_F_51P

 

FUNCTION /pws/zyca_transacao_f_51p.

  DATA:

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

    v_tela(4),

* << Fim da inclusão

    v_cont(2) TYPE n,

    v_campo(15),

    v_bldat(10),

    v_budat(10),

    v_budat2(10),

    v_wrbtr(16),

    v_dmbtr(16),

    v_kursf(9),

    v_xpos(2)            TYPE n,

    v_xpos1(2)           TYPE n,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_02A

 

...

        IF sy-subrc NE 0.

          v_cconta = knb1-akont.

        ENDIF.

      ELSE.

        v_cconta = knb1-akont.

      ENDIF.

      PERFORM determina_string USING t_dados-newbs

                                   t_dados-bukrs

                                   v_cconta

                          CHANGING v_string_debito.

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

    ELSEIF t_dados-agkoa = 'K'.

      SELECT SINGLE akont FROM lfb1

        INTO lfb1-akont

        WHERE lifnr = t_dados-d_newko

          AND bukrs = t_dados-bukrs.

      IF NOT t_dados-umskz IS INITIAL.

        SELECT SINGLE plcontas FROM /pws/zycbt007

                               INTO /pws/zycbt007-plcontas

                               WHERE bukrs EQ t_dados-bukrs.

        SELECT SINGLE skont FROM t074

          INTO v_cconta

          WHERE ktopl = /pws/zycbt007-plcontas

            AND koart = 'K'

            AND umskz = t_dados-umskz

            AND hkont = lfb1-akont.

        IF sy-subrc NE 0.

          v_cconta = lfb1-akont.

        ENDIF.

      ELSE.

        v_cconta = lfb1-akont.

      ENDIF.

      PERFORM determina_string USING t_dados-newbs

                                     t_dados-bukrs

                                     v_cconta

                            CHANGING v_string_debito.

* << Fim da inclusão

    ENDIF.

    IF t_dados-agkoa2 = 'S'.

      PERFORM determina_string USING    t_dados-newbs1

                                        t_dados-bukrs

                                        t_dados-c_newko

                               CHANGING v_string_credito1.

    ELSEIF t_dados-agkoa2 = 'D'.

      SELECT SINGLE akont FROM knb1

        INTO knb1-akont

        WHERE kunnr = t_dados-c_newko

...

 

...

          WHERE ktopl = /pws/zycbt007-plcontas

            AND koart = 'D'

            AND umskz = t_dados-zumsk

            AND hkont = knb1-akont.

        IF sy-subrc NE 0.

          v_cconta = knb1-akont.

        ENDIF.

      ELSE.

        v_cconta = knb1-akont.

      ENDIF.

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

      PERFORM determina_string USING t_dados-newbs1

                                     t_dados-bukrs

                                     v_cconta

                            CHANGING v_string_credito1.

    ELSEIF t_dados-agkoa = 'K'.

      SELECT SINGLE akont FROM lfb1

        INTO lfb1-akont

        WHERE lifnr = t_dados-c_newko

          AND bukrs = t_dados-bukrs.

      IF NOT t_dados-zumsk IS INITIAL.

        SELECT SINGLE plcontas FROM /pws/zycbt007

                               INTO /pws/zycbt007-plcontas

                               WHERE bukrs EQ t_dados-bukrs.

        SELECT SINGLE skont FROM t074

          INTO v_cconta

          WHERE ktopl = /pws/zycbt007-plcontas

            AND koart = 'K'

            AND umskz = t_dados-zumsk

            AND hkont = lfb1-akont.

        IF sy-subrc NE 0.

          v_cconta = lfb1-akont.

        ENDIF.

      ELSE.

        v_cconta = lfb1-akont.

      ENDIF.

* << Fim da inclusão

      PERFORM determina_string USING t_dados-newbs1

                                     t_dados-bukrs

                                     v_cconta

                            CHANGING v_string_credito1.

    ENDIF.

    IF v_lancto_multiplo_c = 'X'.

      IF t_dados-koart = 'S'.

        PERFORM determina_string USING    v_newbs2

                                          t_dados-bukrs

                                          t_dados-d_newko1

...

 

...

    WRITE: t_dados-c_valut TO v_data_val_char,

           t_dados-wrbtr   TO v_wrbtr CURRENCY t_dados-waers.

    PERFORM bdc_screen USING 'SAPMF05A' v_tela.

    PERFORM bdc_field  USING:

               'BSEG-WRBTR'  v_wrbtr,

               'RF05A-NEWBS' t_dados-newbs1,

               'RF05A-NEWKO' t_dados-c_newko,

               'RF05A-NEWUM' t_dados-zumsk.

    READ TABLE itab_oculto WITH KEY campo = 'BSEG-VALUT' chave = 'D'.

    IF sy-subrc <> 0.

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

      IF NOT v_data_val_char IS INITIAL AND

             t_dados-agkoa EQ 'S'.

* << Fim da inclusão

      PERFORM bdc_field USING 'BSEG-VALUT' v_data_val_char.

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

      ENDIF.

* << Fim da inclusão

    ENDIF.

    EXPORT v_f02 TO MEMORY ID 'F02'.

    PERFORM define_campo TABLES t_telas

                         USING  v_programa

                                v_tela

                                'BSEG-ZFBDT'.

...

 

 

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

Modificações efetuadas em REPS /PWS/LZYCAGF2F01

 

...

        ENDLOOP.

      ENDLOOP.

      IF NOT v_lines IS INITIAL.

        PERFORM bdc_screen USING  'SAPMF05A'    '0701'.

        PERFORM bdc_field  USING: 'BDC_CURSOR'  'RF05A-BUKZ1(1)',

                                  'BDC_OKCODE'  '=PI'.

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

FORM define_tela USING t_dados_tcode

                       t_dados_bukrs

                       v_agkon

                       v_newbs

              CHANGING v_umskz

                       v_tela.

  DATA: vf_kred     LIKE vf_kred,

        vf_debi     LIKE vf_debi,

        v_razao_esp LIKE t019-umskz.

  TABLES ska1.

  SELECT SINGLE * FROM t001

    WHERE bukrs EQ t_dados_bukrs.

  CALL FUNCTION 'FI_POSTING_KEY_DATA'

       EXPORTING

            i_bschl = v_newbs

            i_umskz = v_umskz

       IMPORTING

            e_t074u = t074u

            e_tbsl  = tbsl

            e_umsks = bseg-umsks

            e_xumsw = bseg-xumsw

            e_umskz = bseg-umskz

            e_shkzg = bseg-shkzg.

  SELECT SINGLE * FROM tstcp

    WHERE tcode EQ t_dados_tcode.

  IF tstcp-param(1) = '/'.

    IF tstcp-param CA ' '.

    ENDIF.

    SUBTRACT 2 FROM sy-fdpos.

    IF sy-fdpos GT 0.

      SELECT SINGLE * FROM t020

        WHERE tcode EQ tstcp-param+2(sy-fdpos).

    ENDIF.

  ENDIF.

  v_razao_esp = bseg-umsks.

  IF ' AW' NS v_razao_esp.

    v_razao_esp = 'X'.

  ENDIF.

  CALL FUNCTION 'FI_VENDOR_DATA'

       EXPORTING

            i_bukrs        = t_dados_bukrs

            i_lifnr        = v_agkon

       IMPORTING

            e_kred         = vf_kred

       EXCEPTIONS

            vendor_missing = 1

            OTHERS         = 2.

  if sy-subrc = 0.

  else.

  endif.

  MOVE-CORRESPONDING vf_kred TO lfb1.

  CALL FUNCTION 'FI_CUSTOMER_DATA'

       EXPORTING

            i_bukrs          = t_dados_bukrs

            i_kunnr          = v_agkon

       IMPORTING

            e_debi           = vf_debi

       EXCEPTIONS

            customer_missing = 1

            OTHERS           = 2.

  if sy-subrc = 0.

  else.

  endif.

  MOVE-CORRESPONDING vf_debi TO knb1.

  CASE tbsl-koart.

    WHEN 'D'.

      MOVE: knb1-akont TO bseg-hkont,

            tbsl-koart TO bseg-koart.

    WHEN 'K'.

      MOVE: lfb1-akont TO bseg-hkont,

            tbsl-koart TO bseg-koart.

  ENDCASE.

  SELECT SINGLE * FROM ska1

       WHERE ktopl = t001-ktopl AND

             saknr = bseg-hkont.

  SELECT SINGLE * FROM skb1

       WHERE saknr = bseg-hkont AND

             bukrs = t_dados_bukrs.

  IF skb1-mwskz CA '<>'.

    v_razao_esp = 'S'.

  ENDIF.

  SELECT SINGLE dynnr

       FROM t019

       INTO v_tela

       WHERE dyncl EQ t020-dyncl  AND

             koart EQ tbsl-koart  AND

             umskz EQ v_razao_esp AND

             buvar EQ t001-buvar.

  IF sy-subrc NE 0.

    SELECT SINGLE dynnr

           FROM t019

           INTO v_tela

           WHERE dyncl EQ t020-dyncl  AND

                 koart EQ tbsl-koart  AND

                 umskz EQ v_razao_esp AND

                 buvar EQ ' '.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/LZYCAGF2TOP

 

FUNCTION-POOL /pws/zycagf2.

TABLES: skb1,"#EC NEEDED

        lfbw,

        lfa1,

        lfb1,

        knb1,

* >> Início da inclusão:

        t001,

        T074U,

        tbsl,

        bseg,

        tstcp,

        t020,

* << Fim da inclusão

        tcurx,

        usr01,

        /pws/zycbt007.

TYPES: BEGIN OF msg_struc,

        tcode LIKE bdcmsgcoll-tcode,

        dyname LIKE bdcmsgcoll-dyname,

        dynumb LIKE bdcmsgcoll-dynumb,

        msgtyp LIKE bdcmsgcoll-msgtyp,

        msgspra LIKE bdcmsgcoll-msgspra,

        msgid LIKE bdcmsgcoll-msgid,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCA110F01

 

...

                           WHERE nrseq    EQ /pws/zycbe031-nrseq

                             AND dtboleto EQ /pws/zycbe031-dtboleto.

      IF ok_code EQ 'DEL'.

        /pws/zycbe031-status = 'E'.

        CASE /pws/zycbe031-mdcorresp.

          WHEN 'ID'.

            wa_zycbt118-statusp = 'I'.

            CLEAR: wa_zycbt118-belnr_p,

                   wa_zycbt118-dtpagto.

            MODIFY /pws/zycbt118 FROM wa_zycbt118.

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

          WHEN 'ED'.

            wa_zycbt118-statusp = 'I'.

            CLEAR: wa_zycbt118-belnr_p,

                   wa_zycbt118-dtpagto.

            MODIFY /pws/zycbt118 FROM wa_zycbt118.

* << Fim da exclusão

          WHEN 'IP'.

            CLEAR itab_zycbt064.

            REFRESH itab_zycbt064.

            SELECT *

                   FROM /pws/zycbt064

                   INTO TABLE itab_zycbt064

                   WHERE nrboleto EQ /pws/zycbe031-nrseq    AND

                         dtboleto EQ /pws/zycbe031-dtboleto.

            IF /pws/zycbe031-nrparc NE ' ' AND

               /pws/zycbe031-nrparc NE '000'.

...

 

...

              wa_zycbt128-sldesem =

                wa_zycbt128-sldesem + wa_zycbt129-vlme.

              MODIFY /pws/zycbt128 FROM wa_zycbt128.

            ENDLOOP.

          WHEN 'CD'.

            wa_zycbt118-statusp = 'I'.

            CLEAR: wa_zycbt118-belnr_p,

                   wa_zycbt118-dtpagto.

            MODIFY /pws/zycbt118 FROM wa_zycbt118.

          WHEN 'ED'.

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

            wa_zycbt118-statusp = 'I'.

            CLEAR: wa_zycbt118-belnr_p,

                   wa_zycbt118-dtpagto.

            MODIFY /pws/zycbt118 FROM wa_zycbt118.

* << Fim da inclusão

            wa_despesa-status = 'I'.

            CLEAR wa_despesa-dtpagto.

            IF NOT wa_despesa-frpagto = 'C' OR

               ( wa_despesa-tpcontr(1) CA 'PS' AND

                 wa_despesa-tpdesp EQ 'J' ).

              CLEAR: wa_despesa-belnr.

            ENDIF.

            FREE: itab_zycbt064_aux, itab_zycbt004_aux.

            SELECT nrchave nrinvoic nrparc dtliquid tpjuros

                   tpdesp dtincl

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB110F01

 

...

       EXCEPTIONS

            i_demoeda_nao_encontrado   = 1

            i_paramoeda_nao_encontrado = 2

            i_ctmoeda_nao_encontrado   = 3

            i_dtbase_nao_encontrada    = 4

            taxa_nao_encontrada        = 5

            fator_nao_encontrado       = 6

            i_montante_nao_encontrado  = 7

            OTHERS                     = 8.

ENDFORM.

* >> Início da inclusão:

form busca_parametros321_ia

  CHANGING wa_zycbe033 LIKE LINE OF itab_zycbe033.

  DATA:

    v_codeven type /pws/zyglt321-codeven,

    v_hora(8) TYPE c.

  CONCATENATE '005' wa_zycbt117-codint

    INTO v_codeven.

  SELECT *

    FROM /pws/zyglt321

    INTO TABLE itab_zyglt321

    WHERE ktosl   EQ 'DSI'

      AND codeven EQ v_codeven.

  LOOP AT itab_zyglt321.

    CASE itab_zyglt321-cpor3.

      WHEN 'SGTXT'.

        CASE itab_zyglt321-cpocb.

          WHEN 'NRSEQ'.

            wa_zycbe033-d_sgtxt = wa_zycbt117-nrseq.

            wa_zycbe033-c_sgtxt = wa_zycbt117-nrseq.

          WHEN 'EBELN'.

            wa_zycbe033-d_sgtxt = wa_zycbt117-ebeln.

            wa_zycbe033-c_sgtxt = wa_zycbt117-ebeln.

          WHEN 'TXTINF'.

            wa_zycbe033-d_sgtxt = wa_zycbt117-txtinf.

            wa_zycbe033-c_sgtxt = wa_zycbt117-txtinf.

          WHEN 'NRFINANC'.

            wa_zycbe033-d_sgtxt = wa_zycbt117-nrfinanc.

            wa_zycbe033-c_sgtxt = wa_zycbt117-nrfinanc.

          WHEN 'NRFAT'.

            wa_zycbe033-d_sgtxt = wa_zycbt117-nrfat.

            wa_zycbe033-c_sgtxt = wa_zycbt117-nrfat.

          WHEN 'CODINT'.

            wa_zycbe033-d_sgtxt = wa_zycbt117-codint.

            wa_zycbe033-c_sgtxt = wa_zycbt117-codint.

        ENDCASE.

      WHEN 'ZFBDT'.

        CASE itab_zyglt321-cpocb.

          WHEN 'DTINCL'.

            wa_zycbe033-zfbdt = wa_zycbt117-dtincl.

          WHEN 'DTVENCTO'.

            wa_zycbe033-zfbdt = wa_zycbt117-dtvencto.

          WHEN 'DTEMB'.

            wa_zycbe033-zfbdt = wa_zycbt117-dtemb.

        ENDCASE.

      WHEN 'ZUONR'.

        CASE itab_zyglt321-cpocb.

          WHEN 'NRSEQ'.

            wa_zycbe033-d_zuonr = wa_zycbt117-nrseq.

            wa_zycbe033-c_zuonr = wa_zycbt117-nrseq.

          WHEN 'EBELN'.

            wa_zycbe033-d_zuonr = wa_zycbt117-ebeln.

            wa_zycbe033-c_zuonr = wa_zycbt117-ebeln.

          WHEN 'TXTINF'.

            wa_zycbe033-d_zuonr = wa_zycbt117-txtinf.

            wa_zycbe033-c_zuonr = wa_zycbt117-txtinf.

          WHEN 'NRFINANC'.

            wa_zycbe033-d_zuonr = wa_zycbt117-nrfinanc.

            wa_zycbe033-c_zuonr = wa_zycbt117-nrfinanc.

          WHEN 'NRFAT'.

            wa_zycbe033-d_zuonr = wa_zycbt117-nrfat.

            wa_zycbe033-c_zuonr = wa_zycbt117-nrfat.

          WHEN 'CODINT'.

            wa_zycbe033-d_zuonr = wa_zycbt117-codint.

            wa_zycbe033-c_zuonr = wa_zycbt117-codint.

        ENDCASE.

      WHEN 'ZTERM'.

        CASE itab_zyglt321-cpocb.

          WHEN 'ZTERM'.

            wa_zycbe033-zterm = wa_zycbt117-zterm.

        ENDCASE.

      WHEN 'VALUT'.

        CASE itab_zyglt321-cpocb.

          WHEN 'DTINCL'.

            wa_zycbe033-d_valut = wa_zycbt117-dtincl.

            wa_zycbe033-c_valut = wa_zycbt117-dtincl.

          WHEN 'DTVENCTO'.

            wa_zycbe033-d_valut = wa_zycbt117-dtvencto.

            wa_zycbe033-c_valut = wa_zycbt117-dtvencto.

          WHEN 'DTEMB'.

            wa_zycbe033-d_valut = wa_zycbt117-dtemb.

            wa_zycbe033-c_valut = wa_zycbt117-dtemb.

        ENDCASE.

      WHEN 'XBLNR'.

        v_hora = sy-uzeit.

        CONCATENATE v_hora+2(2)

                    ':'

                    v_hora+4(2)

               INTO v_hora.

        CASE itab_zyglt321-cpocb.

          WHEN 'NRSEQ'.

            wa_zycbe033-xblnr = wa_zycbt117-nrseq.

          WHEN 'EBELN'.

            wa_zycbe033-xblnr = wa_zycbt117-ebeln.

          WHEN 'TXTINF'.

            wa_zycbe033-xblnr = wa_zycbt117-txtinf.

          WHEN 'NRFINANC'.

            wa_zycbe033-xblnr = wa_zycbt117-nrfinanc.

          WHEN 'NRFAT'.

            wa_zycbe033-xblnr = wa_zycbt117-nrfat.

          WHEN 'CODINT'.

            wa_zycbe033-xblnr = wa_zycbt117-codint.

          WHEN 'NRSEQ+MS'.

            CONCATENATE wa_zycbt117-nrseq

                        v_hora

                   INTO wa_zycbe033-xblnr.

          WHEN 'EBELN+MS'.

            CONCATENATE wa_zycbt117-ebeln

                        v_hora

                   INTO wa_zycbe033-xblnr.

          WHEN 'TXTINF+MS'.

            CONCATENATE wa_zycbt117-txtinf

                        v_hora

                   INTO wa_zycbe033-xblnr.

          WHEN 'NRFINANC+MS'.

            CONCATENATE wa_zycbt117-nrfinanc

                        v_hora

                   INTO wa_zycbe033-xblnr.

          WHEN 'NRFAT+MS'.

            CONCATENATE wa_zycbt117-nrfat

                        v_hora

                   INTO wa_zycbe033-xblnr.

          WHEN 'CODINT+MS'.

            CONCATENATE wa_zycbt117-codint

                        v_hora

                   INTO wa_zycbe033-xblnr.

        ENDCASE.

    ENDCASE.

  ENDLOOP.

endform.

form estorna_boleto_associado

  USING p_md type /pws/zycbt031-mdcorresp.

  DATA:

    wa_mensagem LIKE LINE OF itab_mensagem.

  SELECT * UP TO 1 ROWS

    FROM /pws/zycbt131

    WHERE nrseq     = itab_zycbt031-nrcorresp

      AND mdcorresp = p_md.

  ENDSELECT.

  IF sy-subrc EQ 0.

    MESSAGE i061 WITH 'Processo Associado. Estorno não permitido.'(263).

    EXIT.

  ENDIF.

  CASE p_md.

    WHEN 'IA'.

      perform executa_f02_inversa_ia.

      perform clearing_fornecedor_f51_ia.

      perform clearing_f51_rze_ia.

    WHEN 'IP'.

      perform executa_f02_inversa_ip.

      perform clearing_fornecedor_f51_ip.

      perform clearing_f51_rze_ip.

  ENDCASE.

  REFRESH itab_mensagem.

endform.

form executa_f02_inversa_ia.

  DATA:

    wa_mensagem LIKE LINE OF itab_mensagem,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    wa_cont     LIKE LINE OF itab_contabilizacoes,

    v_cpochv    TYPE /pws/zycbe033-cpochv.

  CONCATENATE wa_zycbt117-nrseq itab_zycbt031-nrseq

    INTO v_cpochv SEPARATED BY space.

  PERFORM preenche_zycbe033_estorno_ia

    USING 'F-02' c_f02 v_cpochv

    CHANGING wa_zycbe033.

  IF itab_zycbt034 IS INITIAL.

    CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_02A'

         EXPORTING

              v_modo          = v_modo_bi

         TABLES

              t_dados         = itab_zycbe033

              t_campo         = itab_zycbt034

              t_zycbt032      = itab_zycbt032

         EXCEPTIONS

              campo_em_branco = 1

              periodo_fechado = 2

              OTHERS          = 3.

    PERFORM verifica_contabilizacao

      USING c_f02 c_zycbt117 v_cpochv

      'Estorno do Complemento do Boleto'(264)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      wa_cont-belnr    = wa_mensagem-belnr.

      wa_cont-dtlancto = wa_zycbe033-budat.

      wa_cont-fb08     = 'X'.

      wa_cont-fbra     = space.

      append wa_cont to itab_contabilizacoes.

    ENDIF.

  ENDIF.

endform.

form clearing_fornecedor_f51_ia.

  DATA:

    wa_mensagem LIKE LINE OF itab_mensagem,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    wa_cont LIKE LINE OF itab_contabilizacoes,

    v_cpochv    TYPE /pws/zycbe033-cpochv.

  READ TABLE itab_mensagem WITH KEY TPMSG = 'E'

    TRANSPORTING NO FIELDS.

  CHECK sy-subrc NE '0'.

  CONCATENATE wa_zycbt117-nrseq itab_zycbt031-nrseq

    INTO v_cpochv SEPARATED BY space.

  PERFORM preenche_zycbe033_estorno_ia

    USING c_f51 c_f51lfn v_cpochv

    CHANGING wa_zycbe033.

  IF itab_zycbt034 IS INITIAL.

    CALL FUNCTION '/PWS/ZYCA_TRANSACAO_F_51P'

         EXPORTING

              v_modo          = v_modo_bi

              v_processo      = 'I'

         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.

    PERFORM verifica_contabilizacao

      USING c_f51 c_zycbt117 v_cpochv

      'Estorno do Complemento do Boleto'(264)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      wa_cont-belnr    = wa_mensagem-belnr.

      wa_cont-dtlancto = wa_zycbe033-budat.

      wa_cont-fb08     = 'X'.

      wa_cont-fbra     = 'X'.

      append wa_cont to itab_contabilizacoes.

    ELSE.

      PERFORM estornar_contabilizacoes

        CHANGING itab_contabilizacoes.

    ENDIF.

  ENDIF.

endform.

form clearing_f51_rze_ia.

  DATA:

    wa_mensagem LIKE LINE OF itab_mensagem,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    v_cpochv    TYPE /pws/zycbe033-cpochv.

  READ TABLE itab_mensagem WITH KEY TPMSG = 'E'

    TRANSPORTING NO FIELDS.

  CHECK sy-subrc NE '0'.

  CONCATENATE wa_zycbt117-nrseq itab_zycbt031-nrseq

    INTO v_cpochv SEPARATED BY space.

  PERFORM preenche_zycbe033_estorno_ia

    USING c_f51 c_f51rze v_cpochv

    CHANGING wa_zycbe033.

  IF itab_zycbt034 IS INITIAL.

    CALL FUNCTION '/PWS/ZYCA_TRANSACAO_F_51P'

         EXPORTING

              v_modo          = v_modo_bi

              v_processo      = 'I'

         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.

    PERFORM verifica_contabilizacao

      USING c_f51 c_zycbt117 v_cpochv

      'Estorno do Complemento do Boleto'(264)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      CLEAR: wa_zycbt117-dtpagto,

             wa_zycbt117-belnr_p,

             wa_zycbt117-dtassoc,

             wa_zycbt117-belnr_as.

      wa_zycbt117-statusp = 'I'.

      MODIFY /pws/zycbt117 FROM wa_zycbt117.

      /pws/zycbe031-status = 'E'.

    ELSE.

      perform estornar_contabilizacoes

        CHANGING itab_contabilizacoes.

    ENDIF.

  ENDIF.

endform.

FORM verifica_contabilizacao

  USING

    value(p_transacao) TYPE /pws/zycbt032-tcode

    value(p_tabela)    TYPE /pws/zycbt032-tabela

    value(p_cpochv)    TYPE /pws/zycbt032-cpochv

    value(p_msg)       TYPE /pws/zycbt032-msg

  CHANGING

    p_wa_mensagem      LIKE LINE OF itab_mensagem.

  CONSTANTS:

    c_sucesso(1) TYPE c VALUE 'S'.

  FIELD-SYMBOLS:

    <fs_zycbt032> LIKE LINE OF itab_zycbt032,

    <fs_zycbe033> LIKE LINE OF itab_zycbe033.

  READ TABLE itab_zycbt032

    WITH KEY

      tcode  = p_transacao

      tabela = p_tabela

      cpochv = p_cpochv

      tpmsg  = c_sucesso

    ASSIGNING <fs_zycbt032>.

  IF <fs_zycbt032> IS ASSIGNED.

    p_wa_mensagem-transacao = p_transacao.

    p_wa_mensagem-tpmsg = c_sucesso.

    p_wa_mensagem-belnr = <fs_zycbt032>-belnr.

    p_wa_mensagem-msg   = p_msg.

    READ TABLE itab_zycbe033

      WITH KEY

        tcode  = p_transacao

        tabela = p_tabela

        cpochv = p_cpochv

      ASSIGNING <fs_zycbe033>.

    IF <fs_zycbe033> IS ASSIGNED.

      p_wa_mensagem-bldat = <fs_zycbe033>-bldat.

      p_wa_mensagem-budat = <fs_zycbe033>-budat.

    ENDIF.

    APPEND p_wa_mensagem TO itab_mensagem.

  ELSE.

    LOOP AT itab_zycbt032 ASSIGNING <fs_zycbt032>.

      p_wa_mensagem-tpmsg = <fs_zycbt032>-tpmsg.

      p_wa_mensagem-msg   = <fs_zycbt032>-msg.

      APPEND p_wa_mensagem TO itab_mensagem.

    ENDLOOP.

    FREE p_wa_mensagem.

  ENDIF.

ENDFORM.

form preenche_zycbe033_estorno_ia

  using p_transacao

        p_processo

    value(p_cpochv)      TYPE /pws/zycbe033-cpochv

  CHANGING wa_zycbe033 LIKE LINE OF itab_zycbe033.

  DATA:

    v_monat     TYPE t001b-frpe1,

    v_ano       TYPE t009b-bdatj,

    wa_mensagem LIKE LINE OF itab_mensagem,

    wa_zycbt036 LIKE LINE OF itab_zycbt036,

    v_codeven   TYPE /pws/zycbt011-codeven.

  perform clear_date_batch.

  CONCATENATE '005' wa_zycbt117-codint INTO v_codeven.

  SELECT * UP TO 1 ROWS FROM /pws/zycbt011

  WHERE codeven = v_codeven

    AND codmod  = 'I'

    AND bukrs   = wa_zycbt117-bukrs.

  ENDSELECT.

  wa_zycbe033-mandt  = sy-mandt.

  wa_zycbe033-cpochv = p_cpochv.

  wa_zycbe033-tcode  = p_transacao.

  wa_zycbe033-tabela = c_zycbt117.

  wa_zycbe033-bukrs  = wa_zycbt117-bukrs.

  wa_zycbe033-waers  = wa_zycbt117-waers.

  wa_zycbe033-kursf  = itab_zycbt031-kursf.

  wa_zycbe033-blart  = /pws/zycbt011-blart.

  wa_zycbe033-bldat  = /PWS/ZYCBE031-dtcredpr.

  wa_zycbe033-budat  = /PWS/ZYCBE031-dtcredpr.

  wa_zycbe033-werks  = wa_zycbt117-WERKS.

  wa_zycbe033-brnch  = wa_zycbt117-J_1BBRANCH.

  perform busca_filial

    USING    wa_zycbe033-bukrs

             wa_zycbe033-werks

    CHANGING wa_zycbe033-brnch.

  wa_zycbt036-mandt   = sy-mandt.

  wa_zycbt036-cpochv  = wa_zycbe033-cpochv.

  wa_zycbt036-tcode   = wa_zycbe033-tcode.

  wa_zycbt036-tabela  = wa_zycbe033-tabela.

  v_ano   = wa_zycbe033-bldat(4).

  v_monat = wa_zycbe033-bldat+4(2).

  CALL FUNCTION 'FI_PERIOD_CHECK'

       EXPORTING

            i_bukrs          = wa_zycbe033-bukrs

            i_gjahr          = v_ano

            i_koart          = 'K'

            i_monat          = v_monat

       EXCEPTIONS

            error_period     = 1

            error_period_acc = 2

            OTHERS           = 3.

  IF sy-subrc NE '0'.

    wa_zycbe033-bldat  = sy-datum.

    wa_zycbe033-budat  = sy-datum.

  ENDIF.

  CASE p_processo.

    WHEN c_f02.

      wa_zycbe033-d_newko = itab_zycbt031-lifnr.

      wa_zycbe033-newbs  = '21'.

      wa_zycbe033-agkoa  = 'K'.

      wa_zycbe033-c_newko = itab_zycbt031-lifnr.

      wa_zycbe033-newbs1  = '39'.

      wa_zycbe033-agkoa2  = 'K'.

      wa_zycbe033-zumsk   = /pws/zycbt011-agums.

      wa_zycbe033-bktxt  = wa_zycbt007-bktxt.

      wa_zycbe033-wrbtr  = /PWS/ZYCBE031-VLME.

  PERFORM verifica_campo_vazio USING:

    wa_zycbe033-d_newko      'D_NEWKO' 'Conta débito'(016),

    wa_zycbe033-c_newko      'C_NEWKO' 'Conta crédito'(018).

    WHEN c_f51lfn.

      wa_zycbe033-d_newko = 132456789.

      wa_zycbe033-agkon = wa_zycbt117-lifnr.

      wa_zycbe033-agkoa  = 'K'.

      READ TABLE itab_mensagem INTO wa_mensagem

        WITH KEY transacao = c_f02.

      wa_zycbt036-belnr   = wa_mensagem-belnr.

      wa_zycbt036-dtdocto = wa_mensagem-bldat.

      SELECT SINGLE budat awkey FROM bkpf

        INTO (wa_zycbt036-dtdocto,wa_zycbt036-awkey)

        WHERE belnr EQ wa_mensagem-belnr

          AND bukrs EQ wa_zycbt117-bukrs

          AND gjahr EQ wa_mensagem-bldat(4).

      APPEND wa_zycbt036 TO itab_zycbt036.

      wa_zycbt036-belnr   = wa_zycbt117-belnr_p.

      wa_zycbt036-dtdocto = wa_zycbt117-dtpagto.

      SELECT SINGLE budat awkey FROM bkpf

        INTO (wa_zycbt036-dtdocto,wa_zycbt036-awkey)

        WHERE belnr EQ wa_zycbt036-belnr

          AND bukrs EQ wa_zycbt117-bukrs

          AND gjahr EQ wa_zycbt036-dtdocto(4).

      APPEND wa_zycbt036 TO itab_zycbt036.

    WHEN c_f51rze.

      wa_zycbe033-d_newko = 132456789.

      wa_zycbe033-agkon = wa_zycbt117-lifnr.

      wa_zycbe033-agkoa = 'K'.

      wa_zycbe033-agums = /pws/zycbt011-agums.

      READ TABLE itab_mensagem INTO wa_mensagem

        WITH KEY transacao = c_f02.

      wa_zycbt036-belnr   = wa_mensagem-belnr.

      wa_zycbt036-dtdocto = wa_mensagem-bldat.

      SELECT SINGLE budat awkey FROM bkpf

        INTO (wa_zycbt036-dtdocto,wa_zycbt036-awkey)

        WHERE belnr EQ wa_mensagem-belnr

          AND bukrs EQ wa_zycbt117-bukrs

          AND gjahr EQ wa_mensagem-bldat(4).

      APPEND wa_zycbt036 TO itab_zycbt036.

      wa_zycbt036-belnr   = wa_zycbt117-belnr_as.

      wa_zycbt036-dtdocto = wa_zycbt117-dtassoc.

      SELECT SINGLE budat awkey FROM bkpf

        INTO (wa_zycbt036-dtdocto,wa_zycbt036-awkey)

        WHERE belnr EQ wa_zycbt036-belnr

          AND bukrs EQ wa_zycbt117-bukrs

          AND gjahr EQ wa_zycbt036-dtdocto(4).

      APPEND wa_zycbt036 TO itab_zycbt036.

  ENDCASE.

  PERFORM busca_parametros321_ia

    CHANGING wa_zycbe033.

  PERFORM verifica_campo_vazio USING:

    wa_zycbe033-bukrs        'BUKRS'   'Empresa'(010),

    wa_zycbe033-waers        'WAERS'   'Moeda'(011),

    wa_zycbe033-blart        'BLART'   'Tipo de documento'(268),

    wa_zycbe033-bldat        'BLDAT'   'Data documento'(267),

    wa_zycbe033-budat        'BUDAT'   'Data lançamento'(269).

  CHECK itab_zycbt034 IS INITIAL.

  APPEND wa_zycbe033 TO itab_zycbe033.

endform.

FORM verifica_campo_vazio

  USING

    value(p_campo)     TYPE any

    value(p_nomecampo) TYPE /pws/zycbt034-campo

    value(p_descricao) TYPE /pws/zycbt034-descricao.

  DATA

    wa_zycbt034 LIKE LINE OF itab_zycbt034.

  IF p_campo IS INITIAL.

    wa_zycbt034-campo     = p_nomecampo.

    wa_zycbt034-descricao = p_descricao.

    APPEND wa_zycbt034 TO itab_zycbt034.

  ENDIF.

ENDFORM.

form busca_parametros321_ip

  using p_evento

  CHANGING wa_zycbe033 LIKE LINE OF itab_zycbe033.

  DATA:

    v_hora(8) TYPE c.

  SELECT *

    FROM /pws/zyglt321

    INTO TABLE itab_zyglt321

    WHERE ktosl   EQ 'DSI'

      AND codeven EQ p_evento.

  LOOP AT itab_zyglt321.

    CASE itab_zyglt321-cpor3.

      WHEN 'SGTXT'.

        CASE itab_zyglt321-cpocb.

          WHEN 'NRSEQ'.

            wa_zycbe033-d_sgtxt = wa_zycbt119-nrseq.

            wa_zycbe033-c_sgtxt = wa_zycbt119-nrseq.

          WHEN 'EBELN'.

            wa_zycbe033-d_sgtxt = wa_zycbt119-ebeln.

            wa_zycbe033-c_sgtxt = wa_zycbt119-ebeln.

          WHEN 'TXTINF'.

            wa_zycbe033-d_sgtxt = wa_zycbt119-txtinf.

            wa_zycbe033-c_sgtxt = wa_zycbt119-txtinf.

          WHEN 'NRPAGTO'.

            wa_zycbe033-d_sgtxt = wa_zycbt119-nrpagto.

            wa_zycbe033-c_sgtxt = wa_zycbt119-nrpagto.

          WHEN 'NRFAT'.

            wa_zycbe033-d_sgtxt = wa_zycbt119-nrfat.

            wa_zycbe033-c_sgtxt = wa_zycbt119-nrfat.

          WHEN 'CODINT'.

            wa_zycbe033-d_sgtxt = wa_zycbt119-codint.

            wa_zycbe033-c_sgtxt = wa_zycbt119-codint.

        ENDCASE.

      WHEN 'ZFBDT'.

        CASE itab_zyglt321-cpocb.

          WHEN 'DTINCL'.

            wa_zycbe033-zfbdt = wa_zycbt119-dtincl.

          WHEN 'DTVENCTO'.

            wa_zycbe033-zfbdt = wa_zycbt119-dtvencto.

          WHEN 'DTEMB'.

            wa_zycbe033-zfbdt = wa_zycbt119-dtemb.

        ENDCASE.

      WHEN 'ZUONR'.

        CASE itab_zyglt321-cpocb.

          WHEN 'NRSEQ'.

            wa_zycbe033-d_zuonr = wa_zycbt119-nrseq.

            wa_zycbe033-c_zuonr = wa_zycbt119-nrseq.

          WHEN 'EBELN'.

            wa_zycbe033-d_zuonr = wa_zycbt119-ebeln.

            wa_zycbe033-c_zuonr = wa_zycbt119-ebeln.

          WHEN 'TXTINF'.

            wa_zycbe033-d_zuonr = wa_zycbt119-txtinf.

            wa_zycbe033-c_zuonr = wa_zycbt119-txtinf.

          WHEN 'NRPAGTO'.

            wa_zycbe033-d_zuonr = wa_zycbt119-nrpagto.

            wa_zycbe033-c_zuonr = wa_zycbt119-nrpagto.

          WHEN 'NRFAT'.

            wa_zycbe033-d_zuonr = wa_zycbt119-nrfat.

            wa_zycbe033-c_zuonr = wa_zycbt119-nrfat.

          WHEN 'CODINT'.

            wa_zycbe033-d_zuonr = wa_zycbt119-codint.

            wa_zycbe033-c_zuonr = wa_zycbt119-codint.

        ENDCASE.

      WHEN 'VALUT'.

        CASE itab_zyglt321-cpocb.

          WHEN 'DTINCL'.

            wa_zycbe033-d_valut = wa_zycbt119-dtincl.

            wa_zycbe033-c_valut = wa_zycbt119-dtincl.

          WHEN 'DTVENCTO'.

            wa_zycbe033-d_valut = wa_zycbt119-dtvencto.

            wa_zycbe033-c_valut = wa_zycbt119-dtvencto.

          WHEN 'DTEMB'.

            wa_zycbe033-d_valut = wa_zycbt119-dtemb.

            wa_zycbe033-c_valut = wa_zycbt119-dtemb.

        ENDCASE.

      WHEN 'XBLNR'.

        v_hora = sy-uzeit.

        CONCATENATE v_hora+2(2)

                    ':'

                    v_hora+4(2)

               INTO v_hora.

        CASE itab_zyglt321-cpocb.

          WHEN 'NRSEQ'.

            wa_zycbe033-xblnr = wa_zycbt119-nrseq.

          WHEN 'EBELN'.

            wa_zycbe033-xblnr = wa_zycbt119-ebeln.

          WHEN 'TXTINF'.

            wa_zycbe033-xblnr = wa_zycbt119-txtinf.

          WHEN 'NRPAGTO'.

            wa_zycbe033-xblnr = wa_zycbt119-nrpagto.

          WHEN 'NRFAT'.

            wa_zycbe033-xblnr = wa_zycbt119-nrfat.

          WHEN 'CODINT'.

            wa_zycbe033-xblnr = wa_zycbt119-codint.

          WHEN 'NRSEQ+MS'.

            CONCATENATE wa_zycbt119-nrseq

                        v_hora

                   INTO wa_zycbe033-xblnr.

          WHEN 'EBELN+MS'.

            CONCATENATE wa_zycbt119-ebeln

                        v_hora

                   INTO wa_zycbe033-xblnr.

          WHEN 'TXTINF+MS'.

            CONCATENATE wa_zycbt119-txtinf

                        v_hora

                   INTO wa_zycbe033-xblnr.

          WHEN 'NRPAGTO+MS'.

            CONCATENATE wa_zycbt119-nrpagto

                        v_hora

                   INTO wa_zycbe033-xblnr.

          WHEN 'NRFAT+MS'.

            CONCATENATE wa_zycbt119-nrfat

                        v_hora

                   INTO wa_zycbe033-xblnr.

          WHEN 'CODINT+MS'.

            CONCATENATE wa_zycbt119-codint

                        v_hora

                   INTO wa_zycbe033-xblnr.

        ENDCASE.

    ENDCASE.

  ENDLOOP.

endform.

form executa_f02_inversa_ip.

  DATA:

    wa_mensagem LIKE LINE OF itab_mensagem,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    wa_cont LIKE LINE OF itab_contabilizacoes,

    v_cpochv    TYPE /pws/zycbe033-cpochv.

  CONCATENATE wa_zycbt119-nrseq itab_zycbt031-nrseq

    INTO v_cpochv SEPARATED BY space.

  PERFORM preenche_zycbe033_estorno_ip

    USING 'F-02' c_f02 v_cpochv

    CHANGING wa_zycbe033.

  IF itab_zycbt034 IS INITIAL.

    CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_02A'

         EXPORTING

              v_modo          = v_modo_bi

         TABLES

              t_dados         = itab_zycbe033

              t_campo         = itab_zycbt034

              t_zycbt032      = itab_zycbt032

         EXCEPTIONS

              campo_em_branco = 1

              periodo_fechado = 2

              OTHERS          = 3.

    PERFORM verifica_contabilizacao

      USING c_f02 c_zycbt119 v_cpochv

      'Estorno do Complemento do Boleto'(264)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      wa_cont-belnr    = wa_mensagem-belnr.

      wa_cont-dtlancto = wa_zycbe033-budat.

      wa_cont-fb08     = 'X'.

      wa_cont-fbra     = space.

      append wa_cont to itab_contabilizacoes.

    ENDIF.

  ENDIF.

endform.

form clearing_fornecedor_f51_ip.

  DATA:

    wa_mensagem LIKE LINE OF itab_mensagem,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    wa_cont     LIKE LINE OF itab_contabilizacoes,

    v_cpochv    TYPE /pws/zycbe033-cpochv.

  READ TABLE itab_mensagem WITH KEY TPMSG = 'E'

    TRANSPORTING NO FIELDS.

  CHECK sy-subrc NE '0'.

  CONCATENATE wa_zycbt119-nrseq itab_zycbt031-nrseq

    INTO v_cpochv SEPARATED BY space.

  PERFORM preenche_zycbe033_estorno_ip

    USING c_f51 c_f51lfn v_cpochv

    CHANGING wa_zycbe033.

  IF itab_zycbt034 IS INITIAL.

    CALL FUNCTION '/PWS/ZYCA_TRANSACAO_F_51P'

         EXPORTING

              v_modo          = v_modo_bi

              v_processo      = 'I'

         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.

    PERFORM verifica_contabilizacao

      USING c_f51 c_zycbt119 v_cpochv

      'Estorno do Complemento do Boleto'(264)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      wa_cont-belnr    = wa_mensagem-belnr.

      wa_cont-dtlancto = wa_zycbe033-budat.

      wa_cont-fb08     = 'X'.

      wa_cont-fbra     = 'X'.

      append wa_cont to itab_contabilizacoes.

    ELSE.

      perform estornar_contabilizacoes

        CHANGING itab_contabilizacoes.

    ENDIF.

  ENDIF.

endform.

form clearing_f51_rze_ip.

  DATA:

    wa_mensagem LIKE LINE OF itab_mensagem,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    v_cpochv    TYPE /pws/zycbe033-cpochv.

  READ TABLE itab_mensagem WITH KEY TPMSG = 'E'

    TRANSPORTING NO FIELDS.

  CHECK sy-subrc NE '0'.

  CONCATENATE wa_zycbt119-nrseq itab_zycbt031-nrseq

    INTO v_cpochv SEPARATED BY space.

  PERFORM preenche_zycbe033_estorno_ip

    USING c_f51 c_f51rze v_cpochv

    CHANGING wa_zycbe033.

  IF itab_zycbt034 IS INITIAL.

    CALL FUNCTION '/PWS/ZYCA_TRANSACAO_F_51P'

         EXPORTING

              v_modo          = v_modo_bi

              v_processo      = 'I'

         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.

    PERFORM verifica_contabilizacao

      USING c_f51 c_zycbt119 v_cpochv

      'Estorno do Complemento do Boleto'(264)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      CLEAR: wa_zycbt119-dtpagto,

             wa_zycbt119-belnr_p,

             wa_zycbt119-dtassoc,

             wa_zycbt119-belnr_as.

      wa_zycbt119-statusp = 'I'.

      MODIFY /pws/zycbt119 FROM wa_zycbt119.

      /pws/zycbe031-status = 'E'.

    ELSE.

      perform estornar_contabilizacoes

        CHANGING itab_contabilizacoes.

    ENDIF.

  ENDIF.

endform.

form preenche_zycbe033_estorno_ip

  using p_transacao

        p_processo

    value(p_cpochv)      TYPE /pws/zycbe033-cpochv

  CHANGING wa_zycbe033 LIKE LINE OF itab_zycbe033.

  DATA:

    v_monat     TYPE t001b-frpe1,

    v_ano       TYPE t009b-bdatj,

    wa_mensagem LIKE LINE OF itab_mensagem,

    wa_zycbt036 LIKE LINE OF itab_zycbt036,

    v_codeven   TYPE /pws/zycbt011-codeven.

  perform clear_date_batch.

  CONCATENATE '007' wa_zycbt119-codint INTO v_codeven.

  SELECT * UP TO 1 ROWS FROM /pws/zycbt011

  WHERE codeven = v_codeven

    AND codmod  = 'I'

    AND bukrs   = wa_zycbt119-bukrs.

  ENDSELECT.

  wa_zycbe033-mandt  = sy-mandt.

  wa_zycbe033-cpochv = p_cpochv.

  wa_zycbe033-tcode  = p_transacao.

  wa_zycbe033-tabela = c_zycbt119.

  wa_zycbe033-bukrs  = wa_zycbt119-bukrs.

  wa_zycbe033-waers  = wa_zycbt119-waers.

  wa_zycbe033-kursf  = itab_zycbt031-kursf.

  wa_zycbe033-blart  = /pws/zycbt011-blart.

  wa_zycbe033-bldat  = /PWS/ZYCBE031-dtcredpr.

  wa_zycbe033-budat  = /PWS/ZYCBE031-dtcredpr.

  wa_zycbe033-werks  = wa_zycbt119-WERKS.

  wa_zycbe033-brnch  = wa_zycbt119-J_1BBRANCH.

  perform busca_filial

    USING    wa_zycbe033-bukrs

             wa_zycbe033-werks

    CHANGING wa_zycbe033-brnch.

  wa_zycbt036-mandt   = sy-mandt.

  wa_zycbt036-cpochv  = wa_zycbe033-cpochv.

  wa_zycbt036-tcode   = wa_zycbe033-tcode.

  wa_zycbt036-tabela  = wa_zycbe033-tabela.

  v_ano   = wa_zycbe033-bldat(4).

  v_monat = wa_zycbe033-bldat+4(2).

  CALL FUNCTION 'FI_PERIOD_CHECK'

       EXPORTING

            i_bukrs          = wa_zycbe033-bukrs

            i_gjahr          = v_ano

            i_koart          = 'K'

            i_monat          = v_monat

       EXCEPTIONS

            error_period     = 1

            error_period_acc = 2

            OTHERS           = 3.

  IF sy-subrc NE '0'.

    wa_zycbe033-bldat  = sy-datum.

    wa_zycbe033-budat  = sy-datum.

  ENDIF.

  CASE p_processo.

    WHEN c_f02.

      wa_zycbe033-d_newko = itab_zycbt031-lifnr.

      wa_zycbe033-newbs  = '21'.

      wa_zycbe033-agkoa  = 'K'.

      wa_zycbe033-c_newko = itab_zycbt031-lifnr.

      wa_zycbe033-newbs1  = '39'.

      wa_zycbe033-agkoa2  = 'K'.

      wa_zycbe033-zumsk   = /pws/zycbt011-agums.

      wa_zycbe033-bktxt  = wa_zycbt007-bktxt.

      wa_zycbe033-wrbtr  = /PWS/ZYCBE031-VLME.

  PERFORM verifica_campo_vazio USING:

    wa_zycbe033-d_newko      'D_NEWKO' 'Conta débito'(016),

    wa_zycbe033-c_newko      'C_NEWKO' 'Conta crédito'(018).

    WHEN c_f51lfn.

      wa_zycbe033-d_newko = 132456789.

      wa_zycbe033-agkon = wa_zycbt119-lifnr.

      wa_zycbe033-agkoa  = 'K'.

      READ TABLE itab_mensagem INTO wa_mensagem

        WITH KEY transacao = c_f02.

      wa_zycbt036-belnr   = wa_mensagem-belnr.

      wa_zycbt036-dtdocto = wa_mensagem-bldat.

      SELECT SINGLE budat awkey FROM bkpf

        INTO (wa_zycbt036-dtdocto,wa_zycbt036-awkey)

        WHERE belnr EQ wa_mensagem-belnr

          AND bukrs EQ wa_zycbt119-bukrs

          AND gjahr EQ wa_mensagem-bldat(4).

      APPEND wa_zycbt036 TO itab_zycbt036.

      wa_zycbt036-belnr   = wa_zycbt119-belnr_p.

      wa_zycbt036-dtdocto = wa_zycbt119-dtpagto.

      SELECT SINGLE budat awkey FROM bkpf

        INTO (wa_zycbt036-dtdocto,wa_zycbt036-awkey)

        WHERE belnr EQ wa_zycbt036-belnr

          AND bukrs EQ wa_zycbt119-bukrs

          AND gjahr EQ wa_zycbt036-dtdocto(4).

      APPEND wa_zycbt036 TO itab_zycbt036.

    WHEN c_f51rze.

      wa_zycbe033-d_newko = 132456789.

      wa_zycbe033-agkon = wa_zycbt119-lifnr.

      wa_zycbe033-agkoa = 'K'.

      wa_zycbe033-agums = /pws/zycbt011-agums.

      READ TABLE itab_mensagem INTO wa_mensagem

        WITH KEY transacao = c_f02.

      wa_zycbt036-belnr   = wa_mensagem-belnr.

      wa_zycbt036-dtdocto = wa_mensagem-bldat.

      SELECT SINGLE budat awkey FROM bkpf

        INTO (wa_zycbt036-dtdocto,wa_zycbt036-awkey)

        WHERE belnr EQ wa_mensagem-belnr

          AND bukrs EQ wa_zycbt119-bukrs

          AND gjahr EQ wa_mensagem-bldat(4).

      APPEND wa_zycbt036 TO itab_zycbt036.

      wa_zycbt036-belnr   = wa_zycbt119-belnr_as.

      wa_zycbt036-dtdocto = wa_zycbt119-dtassoc.

      SELECT SINGLE budat awkey FROM bkpf

        INTO (wa_zycbt036-dtdocto,wa_zycbt036-awkey)

        WHERE belnr EQ wa_zycbt036-belnr

          AND bukrs EQ wa_zycbt119-bukrs

          AND gjahr EQ wa_zycbt036-dtdocto(4).

      APPEND wa_zycbt036 TO itab_zycbt036.

  ENDCASE.

  PERFORM busca_parametros321_ip

    USING v_codeven

    CHANGING wa_zycbe033.

  PERFORM verifica_campo_vazio USING:

    wa_zycbe033-bukrs        'BUKRS'   'Empresa'(010),

    wa_zycbe033-waers        'WAERS'   'Moeda'(011),

    wa_zycbe033-blart        'BLART'   'Tipo de documento'(268),

    wa_zycbe033-bldat        'BLDAT'   'Data documento'(267),

    wa_zycbe033-budat        'BUDAT'   'Data lançamento'(269).

  CHECK itab_zycbt034 IS INITIAL.

  APPEND wa_zycbe033 TO itab_zycbe033.

endform.

FORM busca_filial

  USING    p_bukrs type /pws/zycbe033-bukrs

           p_werks type /pws/zycbe033-werks

  CHANGING p_brnch type /pws/zycbe033-brnch.

  CHECK NOT p_brnch IS INITIAL.

  SELECT SINGLE * FROM t001w WHERE werks = p_werks.

  IF sy-subrc = 0 AND NOT t001w-j_1bbranch IS INITIAL.

    p_brnch = t001w-j_1bbranch.

  ENDIF.

  PERFORM verifica_pais_filial

    USING p_bukrs

          p_brnch.

ENDFORM.

FORM estornar_contabilizacoes

  CHANGING p_itab_cont TYPE t_t_contabilizacoes.

  DATA:

    v_cpochv    TYPE /pws/zycbe033-cpochv,

    wa_zycbe033 TYPE /pws/zycbe033,

    wa_cont TYPE t_contabilizacoes.

  FIELD-SYMBOLS:

    <fs_tabela> TYPE INDEX TABLE,

    <fs_linha>  TYPE ANY,

    <fs_campo>  TYPE ANY,

    <fs_campo_valor>  TYPE ANY.

  PERFORM clear_date_batch.

  CONCATENATE itab_zycbt031-bukrs

              itab_zycbt031-nrseq

         INTO v_cpochv.

  wa_zycbe033-tabela = c_zycbt117.

  wa_zycbe033-bukrs = itab_zycbt031-bukrs.

  SORT p_itab_cont BY belnr DESCENDING.

  LOOP AT p_itab_cont INTO wa_cont.

    IF wa_cont-fbra EQ 'X'.

      PERFORM cancela_documento

        USING wa_cont-dtlancto

              v_cpochv

        CHANGING wa_zycbe033

                 wa_cont-belnr.

    ENDIF.

    IF wa_cont-fb08 EQ 'X'.

      PERFORM estorna_documento

        USING wa_cont-dtlancto

              v_cpochv

        CHANGING wa_zycbe033

                 wa_cont-belnr.

    ENDIF.

  ENDLOOP.

  REFRESH:

    p_itab_cont.

ENDFORM.

FORM estorna_documento

  USING    p_dtlanc   TYPE /pws/zycbt238-dtlanc

           p_cpochv   TYPE /pws/zycbe033-cpochv

  CHANGING p_zycbe033 TYPE /pws/zycbe033

           p_doc      TYPE /pws/zycbt238-doc_comp.

  DATA:

    v_periodo            TYPE frper,

    v_ano                TYPE gjahr,

    v_periodo_fechado(1) TYPE c,

    wa_mensagem TYPE t_mensagem.

  PERFORM clear_date_batch.

  p_zycbe033-tcode  = 'FB08'.

  p_zycbe033-belnr  = p_doc.

  p_zycbe033-bldat  = p_dtlanc.

  p_zycbe033-budat  = p_zycbe033-bldat.

  p_zycbe033-cpochv = p_cpochv.

  p_zycbe033-stgrd = /pws/zycbt007-perencer.

  APPEND p_zycbe033 TO itab_zycbe033.

  IF itab_zycbt034 IS INITIAL.

    CALL FUNCTION '/PWS/ZYCB_TRANSACAO_FB08'

         EXPORTING

              v_modo          = v_modo_bi

         TABLES

              t_dados         = itab_zycbe033

              t_campo         = itab_zycbt034

              t_zycbt032      = itab_zycbt032

         EXCEPTIONS

              campo_em_branco = 1

              OTHERS          = 2.

    IF sy-subrc <> 0.

    ENDIF.

    PERFORM verifica_contabilizacao

      USING 'FB08' c_zycbt117 p_cpochv

            'Estorno do documento'(266)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      CLEAR:

        p_doc.

    ENDIF.

  ENDIF.

ENDFORM.

FORM cancela_documento

  USING    p_dtlanc   TYPE /pws/zycbt238-dtlanc

           p_cpochv   TYPE /pws/zycbe033-cpochv

  CHANGING p_zycbe033 TYPE /pws/zycbe033

           p_doc      TYPE /pws/zycbt238-doc_comp.

  DATA:

    wa_mensagem TYPE t_mensagem.

  CHECK NOT p_doc IS INITIAL.

  PERFORM clear_date_batch.

  p_zycbe033-tcode  = 'FBRA'.

  p_zycbe033-belnr  = p_doc.

  p_zycbe033-bldat  = p_dtlanc.

  APPEND p_zycbe033 TO itab_zycbe033.

  IF itab_zycbt034[] IS INITIAL.

  CALL FUNCTION '/PWS/ZYCB_TRANSACAO_FBRA'

       EXPORTING

            v_modo          = v_modo_bi

       TABLES

            t_dados         = itab_zycbe033

            t_campo         = itab_zycbt034

            t_zycbt032      = itab_zycbt032

       EXCEPTIONS

            campo_em_branco = 1

            OTHERS          = 2.

  IF sy-subrc <> 0.

  ENDIF.

    PERFORM verifica_contabilizacao

      USING 'FBRA' c_zycbt117 p_cpochv

            'Cancelamento do documento'(265)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

    ENDIF.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCM110F01

 

...

  ENDIF.

  itab_zycbe033-zterm = wa_zycbt117-zterm.

  IF itab_zycbe033-brnch IS INITIAL.

    SELECT SINGLE * FROM t001w WHERE werks = wa_zycbt117-werks.

    IF sy-subrc EQ 0.

      PERFORM verifica_pais_filial USING wa_zycbt117-bukrs

                                         t001w-j_1bbranch.

      itab_zycbe033-brnch = t001w-j_1bbranch.

    ENDIF.

  ENDIF.

* >> Início da inclusão: FORM FILL_DATE_F-63_IA

  perform busca_parametros321_ia

    CHANGING itab_zycbe033.

* << Fim da inclusão

  APPEND itab_zycbe033.

  IF NOT itab_zycmt020[] IS INITIAL.

    PERFORM contabiliza_item.

  ENDIF.

  LOOP AT itab_zycbt034.

    MESSAGE i127 WITH itab_zycbt034-descricao v_evento.

  ENDLOOP.

  IF itab_zycbt034 IS INITIAL.

    IF itab_zycmt020[] IS INITIAL.

      CALL FUNCTION '/PWS/ZYCM_TRANSACAO_F_63B'

...

 

...

  itab_zycbe033-d_kostl = wa_zycbt119-kostl.

  itab_zycbe033-d_prctr = wa_zycbt119-prctr.

  itab_zycbe033-d_fipos = wa_zycbt119-fipos.

  itab_zycbe033-d_fictr = wa_zycbt119-fictr.

  itab_zycbe033-c_gsber = wa_zycbt119-gsber.

  IF v_tcode EQ 'F-43'.

    itab_zycbe033-umskz = wa_zycbt011-agums.

    itab_zycbe033-d_newko = wa_zycbt119-lifnr.

    itab_zycbe033-c_newko = wa_zycbt119-lifnr.

  ENDIF.

* >> Início da inclusão: FORM FILL_DATE_F-63_IP

  PERFORM busca_parametros321_ip

    USING v_evento

    CHANGING itab_zycbe033.

* << Fim da inclusão

  APPEND itab_zycbe033.

  IF NOT itab_zycmt020[] IS INITIAL.

    PERFORM contabiliza_item.

  ENDIF.

  LOOP AT itab_zycbt034.

    MESSAGE i016 WITH itab_zycbt034-descricao.

  ENDLOOP.

  IF itab_zycbt034 IS INITIAL.

    v_syrepid = sy-repid.

    CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

...

 

...

                                    text-016.

    itab_zycbe033-c_newko = /pws/zycbe031-bcooper.

    itab_zycbe033-agkoa   = 'K'.

    PERFORM verify_null_field USING itab_zycbe033-c_newko

                                    'NEWKO'

                                    text-021.

  ENDIF.

ENDFORM.

FORM get_parameters_119e031.

  DATA: v_codeven LIKE /pws/zycbt011-codeven VALUE '007F'.

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

  CONCATENATE '007' wa_zycbt119-codint INTO v_codeven.

* << Fim da inclusão

  CLEAR wa_zycbt007.

  SELECT SINGLE * FROM /pws/zycbt007

                  INTO wa_zycbt007

                  WHERE bukrs EQ /pws/zycbe031-bukrs.

  REFRESH itab_zycbt013.

  SELECT * FROM /pws/zycbt013

           INTO TABLE itab_zycbt013

           WHERE tabela = '/PWS/ZYCBT119'.

  REFRESH: itab_zycbt012.

  SELECT * FROM /pws/zycbt012

...

 

...

  PERFORM verifica_pais_filial USING /pws/zycbe031-bukrs

                                     wa_zycbt117-j_1bbranch.

  itab_zycbe033-brnch = wa_zycbt117-j_1bbranch.

  IF NOT wa_zycbt117-ftxt IS INITIAL.

    itab_zycbe033-d_sgtxt = wa_zycbt117-txtinf.

    itab_zycbe033-c_sgtxt = wa_zycbt117-txtinf.

  ELSE.

    itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.

    itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.

  ENDIF.

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

  perform busca_parametros321_ia

    CHANGING itab_zycbe033.

* << Fim da inclusão

  CLEAR:   itab_zyglt100.

  REFRESH: itab_zyglt100.

  IF itab_zyglt100[] IS INITIAL.

    v_syrepid = sy-repid.

    CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

         EXPORTING

              i_codmod                = 'E'

              i_func                  = v_syrepid

         TABLES

              itab_zyglt100           = itab_zyglt100

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYGL110F01

 

...

                         WHERE nrseq    EQ /pws/zycbe031-nrseq

                           AND dtboleto EQ /pws/zycbe031-dtboleto.

    IF ok_code EQ 'DEL'.

      /pws/zycbe031-status = 'E'.

      CASE /pws/zycbe031-mdcorresp.

        WHEN 'ID'.

          wa_zycbt118-statusp = 'I'.

          CLEAR: wa_zycbt118-belnr_p,

                 wa_zycbt118-dtpagto.

          MODIFY /pws/zycbt118 FROM wa_zycbt118.

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

        WHEN 'ED'.

          IF /pws/zycbe031-tabela = '/PWS/ZYCT118'.

            wa_zycbt118-statusp = 'I'.

            CLEAR: wa_zycbt118-belnr_p,

                   wa_zycbt118-dtpagto.

            MODIFY /pws/zycbt118 FROM wa_zycbt118.

          ENDIF.

* << Fim da exclusão

        WHEN 'IP'.

          CLEAR itab_zycbt064.

          REFRESH itab_zycbt064.

          SELECT *

                 FROM /pws/zycbt064

                 INTO TABLE itab_zycbt064

                 WHERE nrboleto EQ /pws/zycbe031-nrseq    AND

                       dtboleto EQ /pws/zycbe031-dtboleto.

          IF /pws/zycbe031-nrparc NE ' ' AND

             /pws/zycbe031-nrparc NE '000'.

...

 

...

           wa_zycbt128-sldesem = wa_zycbt128-sldesem + wa_zycbt129-vlme.

              MODIFY /pws/zycbt128 FROM wa_zycbt128.

            ENDIF.

          ENDLOOP.

        WHEN 'CD'.

          wa_zycbt118-statusp = 'I'.

          CLEAR: wa_zycbt118-belnr_p,

                 wa_zycbt118-dtpagto.

          MODIFY /pws/zycbt118 FROM wa_zycbt118.

        WHEN 'ED'.

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

          IF /pws/zycbe031-tabela = '/PWS/ZYCT118'.

            wa_zycbt118-statusp = 'I'.

            CLEAR: wa_zycbt118-belnr_p,

                   wa_zycbt118-dtpagto.

            MODIFY /pws/zycbt118 FROM wa_zycbt118.

          ENDIF.

* << Fim da inclusão

          wa_despesa-status = 'I'.

          CLEAR wa_despesa-dtpagto.

          IF NOT wa_despesa-frpagto EQ 'C' OR

             wa_despesa-tpdesp      EQ 'J' OR

             wa_despesa-tpdesp      EQ 'D'.

            CLEAR: wa_despesa-belnr.

          ENDIF.

          FREE: itab_zycbt064_aux, itab_zycbt004_aux.

          SELECT nrchave nrinvoic nrparc dtliquid tpjuros

                 tpdesp dtincl

...

 

...

      PERFORM selecionar_ip.

      SELECT * FROM /pws/zycbt133

        INTO TABLE itab_zycbt133

        WHERE bukrs = /pws/zycbe031-bukrs.

      READ TABLE itab_zycbt133 WITH KEY codmod = 'I'.

      IF sy-subrc EQ 0.

        IF /pws/zycbe145-cod_fech EQ 'TR' OR

          ( ( /pws/zycbe145-cod_fech EQ 'PR' OR

              /pws/zycbe145-cod_fech EQ '  ' ) AND

            wa_zycbt108-belnr_co IS INITIAL ).

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

          IF NOT wa_zycbt119-belnr_as IS INITIAL.

            PERFORM estorna_boleto_associado

              USING 'IP'.

          ELSE.

* << Fim da inclusão

          IF v_est_aprov = 'N'.

            IF /pws/zycbe031-nrparc NE ' ' AND

               /pws/zycbe031-nrparc NE '000'.

              PERFORM anula_compens_ip_parcial.

            ELSE.

              PERFORM anula_compens.

            ENDIF.

          ELSE.

            IF v_erro_anulacomp IS INITIAL.

              PERFORM estorna_aprov.

            ELSE.

              CLEAR v_erro_anulacomp.

              MESSAGE i061 WITH text-070 wa_zycbt119-belnr51 text-071

                           text-074.

            ENDIF.

          ENDIF.

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

          ENDIF.

* << Fim da inclusão

        ELSE.

          PERFORM exclui_boleto.

        ENDIF.

      ENDIF.

    ENDIF.

    IF /pws/zycbe031-mdcorresp = 'TV'.

      CLEAR /pws/zyglt009.

      SELECT SINGLE * FROM /pws/zyglt009

                      INTO /pws/zyglt009

                      WHERE bukrs EQ /pws/zycbe031-bukrs.

...

 

...

          PERFORM estorna_trava.

        ENDIF.

      ENDIF.

    ENDIF.

    IF /pws/zycbe031-mdcorresp = 'EJ'.

      PERFORM selecionar_ej.

      PERFORM estorna_aprov.

    ENDIF.

    IF /pws/zycbe031-mdcorresp = 'IA'.

      PERFORM selecionar_ia.

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

      IF NOT wa_zycbt117-belnr_as IS INITIAL.

        perform estorna_boleto_associado

          USING 'IA'.

      ELSE.

* << Fim da inclusão

      CLEAR /pws/zyglt009.

      SELECT SINGLE contpa FROM /pws/zyglt009

                           INTO /pws/zyglt009-contpa

                           WHERE bukrs EQ /pws/zycbe031-bukrs.

      IF /pws/zyglt009-contpa = 'X'.

        CLEAR ekpo.

        SELECT SINGLE ebelp FROM ekpo

                            INTO ekpo-ebelp

                            WHERE ebeln EQ wa_zycbt117-ebeln

                              AND j_1bmatuse EQ '3'.

...

 

...

          IF sy-subrc = 0 AND NOT bseg-augbl IS INITIAL.

            MESSAGE w061 WITH text-152 v_belnr text-153 text-154.

            EXIT.

          ELSE.

            PERFORM estorna_aprov.

          ENDIF.

          v_status_s = 0.

        ENDIF.

      ENDIF.

    ENDIF.

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

    ENDIF.

* << Fim da inclusão

    IF /pws/zycbe031-mdcorresp = 'CP'.

      PERFORM selecionar_cp.

      IF /pws/zycbt124-tpoper EQ 'R' AND /pws/zycbt125-tprem EQ '1'.

        PERFORM anula_compensacao_cp_revenda.

      ELSE.

        IF NOT /pws/zycbe031-belnr_comp IS INITIAL.

          PERFORM estorna_f04.

        ENDIF.

        PERFORM exclui_cp.

      ENDIF.

...

 

...

        wa_zycbt031 = /pws/zycbe031.

      ENDIF.

    ELSE.

      v_status_despesa = '0'.

    ENDIF.

  ENDIF.

  SET PF-STATUS '0200' EXCLUDING itab_pf_status.

  REFRESH itab_pf_status.

ENDFORM.

FORM desabilitar_100.

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

  DATA:

    v_belnr_as type /pws/zycbt117-belnr_as.

* << Fim da inclusão

  IF /pws/zycbt118-fcambio = 'N'.

    v_status_s = '0'.

  ELSEIF /pws/zycbt118-fcambio = 'S'.

    IF v_status_despesa = '1'.

      v_status_despesa = '0'.

    ELSE.

      v_status_despesa = '1'.

    ENDIF.

  ENDIF.

  IF v_desp_a = 'A'.

...

 

...

  IF sy-subrc EQ 0.

    IF v_prog_origem NE c_prog_cotacao.

      LOOP AT SCREEN.

        IF screen-name NE 'V_PROPOR'.

          screen-input = '0'.

          MODIFY SCREEN.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDIF.

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

  IF /pws/zycbe031-mdcorresp EQ 'IP'.

    SELECT belnr_as FROM /pws/zycbt119

      INTO v_belnr_as

      WHERE NRSEQ = /pws/zycbe031-NRCORRESP.

    ENDSELECT.

    IF NOT v_belnr_as IS INITIAL.

      LOOP AT SCREEN.

        IF screen-name EQ '/PWS/ZYCBE145-BUKRS_P' OR

           screen-name EQ '/PWS/ZYCBE145-ZLSCH' OR

           screen-name EQ '/PWS/ZYCBE031-BCOOPER' OR

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

           screen-name EQ '/PWS/ZYCBE031-DTCREDPR'.

          screen-input = '0'.

          MODIFY SCREEN.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDIF.

  IF /pws/zycbe031-mdcorresp EQ 'IA'.

    SELECT belnr_as FROM /pws/zycbt117

      INTO v_belnr_as

      WHERE NRSEQ = /pws/zycbe031-NRCORRESP.

    ENDSELECT.

    IF NOT v_belnr_as IS INITIAL.

      LOOP AT SCREEN.

        IF screen-name EQ '/PWS/ZYCBE145-BUKRS_P' OR

           screen-name EQ '/PWS/ZYCBE145-ZLSCH' OR

           screen-name EQ '/PWS/ZYCBE031-BCOOPER' OR

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

           screen-name EQ '/PWS/ZYCBE031-DTCREDPR'.

          screen-input = '0'.

          MODIFY SCREEN.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDIF.

* << Fim da inclusão

  tc_cont-line_sel_mode  = 0.

  tc_dados-line_sel_mode = 0.

ENDFORM.

MODULE insert_line OUTPUT.

  PERFORM insere_dados.

ENDMODULE.

FORM insere_dados.

  MOVE: itab_zycbt031_tc-bukrs         TO /pws/zycbt031-bukrs,

        itab_zycbt031_tc-gsber         TO /pws/zycbe119-gsber,

        itab_zycbt031_tc-werks         TO /pws/zycbe119-werks,

...

 

...

             WHERE nrseq = /pws/zycbe031-nrseq.

    ELSEIF sy-index = 3.

      MESSAGE i061 WITH text-098 /pws/zycbe031-belnr_cl_cide text-179.

      CLEAR: /pws/zycbe031-belnr_cl_cide, /pws/zycbt031-belnr_cl_cide.

   UPDATE /pws/zycbt031 SET belnr_cl_cide = /pws/zycbe031-belnr_cl_cide

                                      WHERE nrseq = /pws/zycbe031-nrseq.

    ENDIF.

  ENDIF.

ENDFORM.

FORM exclui_boleto.

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

  check erro_bi is initial.

* << Fim da inclusão

  /pws/zycbe031-status = 'I'.

  /pws/zycbe031-statusp = 'I'.

  SELECT * FROM /pws/zycbt064

    INTO TABLE itab_zycbt064

    WHERE nrboleto = /pws/zycbe031-nrseq.

  IF sy-index = 1 OR sy-index = 0.

    /pws/zycbe031-belnr_p = space.

  ELSEIF sy-index = 2.

    IF /pws/zycbe031-pagtoirrf EQ 'BCO'.

      IF /pws/zycbe031-mdcorresp EQ 'EL'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYGL110TOP

 

...

  c_chave_pagto_desp_financ

                       TYPE /pws/zyglt316-ktosl   VALUE 'PDS',

  c_cod_desp_comissao_ir

                       TYPE /pws/zygle316-codaux1 VALUE 'CO IR',

  c_cod_desp_ir_comissao

                       TYPE /pws/zygle316-codaux1 VALUE 'IR CO',

  c_cod_prov_comissao_ir_curto

                       TYPE /pws/zygle316-codaux1 VALUE 'COMIS C IR',

  c_f02(4)             TYPE c                     VALUE 'F-02',

  c_f63(4)             TYPE c                     VALUE 'F-63',

* >> Início da inclusão:

  c_f51(4)             TYPE c                     VALUE 'F-51',

  c_f51lfn(7)          TYPE c                     VALUE 'F-51LFN',

  c_f51rze(7)          TYPE c                     VALUE 'F-51RZE',

  c_zycbt117           TYPE /pws/zycbt032-tabela  VALUE 'ZYCBT117',

  c_zycbt119           TYPE /pws/zycbt032-tabela  VALUE 'ZYCBT119',

* << Fim da inclusão

  c_fb08(4)            TYPE c                     VALUE 'FB08',

  c_mod_financ         TYPE /pws/zycbt012-codmod  VALUE 'F',

  c_contabilizado(1)   TYPE c                     VALUE 'C',

  c_cod_emprestimo(2)  TYPE c                     VALUE 'CE',

  c_banco              type /pws/zycbe031-pagtoirrf VALUE 'BCO',

  c_empresa            type /pws/zycbe031-pagtoirrf VALUE 'EMP',

  c_origem(6)        TYPE c        VALUE 'ORIGEM',

  c_prog_cotacao     TYPE sy-tcode VALUE '/PWS/ZYCB116',

  c_newko              TYPE /pws/zycbt034-campo   VALUE 'NEWKO',

  c_dtdesem            TYPE /pws/zycbt034-campo   VALUE 'DTDESEM',

...

 

...

  c_vlme               TYPE /pws/zycbt034-campo   VALUE 'VLME',

  c_waers              TYPE /pws/zycbt034-campo   VALUE 'WAERS',

  c_agkon              TYPE /pws/zycbt034-campo   VALUE 'AGKON',

  c_d_newko            TYPE /pws/zycbt034-campo   VALUE 'D_NEWKO'

  .

CONTROLS:

    tc_fatura TYPE TABLEVIEW USING SCREEN 0400,

    tc_banco  TYPE TABLEVIEW USING SCREEN 0900,

    tc_cont   TYPE TABLEVIEW USING SCREEN 0100,

    tc_dados  TYPE TABLEVIEW USING SCREEN 0101.

* >> Início da inclusão:

TYPES:

  BEGIN OF t_mensagem,

    bukrs         TYPE /pws/zycbt233-bukrs,

    hbkid         TYPE /pws/zycbt235-hbkid,

    tipo          TYPE /pws/zycbt235-tipo,

    transacao     TYPE /pws/zycbe033-TCODE,

    belnr         TYPE /pws/zycbt236-belnr_desp,

    budat         TYPE /pws/zycbt236-budat,

    bldat         TYPE /pws/zycbt236-bldat,

    tpmsg         TYPE /pws/zycbt032-tpmsg,

    msg           TYPE /pws/zycbt032-msg,

  END OF t_mensagem,

  t_t_mensagem TYPE STANDARD TABLE OF t_mensagem

    WITH NON-UNIQUE DEFAULT KEY,

BEGIN OF t_contabilizacoes,

  belnr      TYPE /pws/zycbe033-belnr,

  dtlancto   TYPE /pws/zycbe033-bldat,

  fb08       TYPE c,

  fbra       TYPE c,

  belnr_ant  TYPE /pws/zycbe033-belnr,

  dtlanc_ant TYPE /pws/zycbe033-bldat,

  tabela     TYPE /pws/zycbe033-tabela,

  campo      TYPE awkey,

  valor      TYPE wrbtr,

  campo_valor TYPE awkey,

  valor_ant  TYPE wrbtr,

END OF t_contabilizacoes,

  t_t_contabilizacoes TYPE TABLE OF t_contabilizacoes

    WITH DEFAULT KEY.

  DATA: itab_mensagem  TYPE t_t_mensagem,

        itab_contabilizacoes TYPE t_t_contabilizacoes.

* << Fim da inclusão

DATA: wa_t001w     LIKE t001w,

      wa_zycbt089  LIKE /pws/zycbt089,

      wa_zycbt011  LIKE /pws/zycbt011,

      wa_zycbt031a LIKE /pws/zycbe031,

      wa_zycbt124  LIKE /pws/zycbt124,

      wa_zycet010  LIKE /pws/zycet010,

      wa_cols      TYPE cxtab_column,

      wa_zycbt048  LIKE /pws/zycbe048,

      wa_zycbt128  LIKE /pws/zycbt128,

      wa_zycbt129  LIKE /pws/zycbt129,

...

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCB110

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 263

 

Texto: (42 caracteres)

"Processo Associado. Estorno não permitido."

 

Comprimento máximo: 42

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 264

 

Texto: (32 caracteres)

"Estorno do Complemento do Boleto"

 

Comprimento máximo: 32

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 265

 

Texto: (25 caracteres)

"Cancelamento do documento"

 

Comprimento máximo: 25

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 266

 

Texto: (20 caracteres)

"Estorno do documento"

 

Comprimento máximo: 20

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 267

 

Texto: (14 caracteres)

"Data documento"

 

Comprimento máximo: 14

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 268

 

Texto: (17 caracteres)

"Tipo de documento"

 

Comprimento máximo: 17

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 269

 

Texto: (15 caracteres)

"Data lançamento"

 

Comprimento máximo: 15