CE PLUS - Nota 005482

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Valores Mantidos no Exterior

Data/Hora da Publicação: 17/12/2007 00:00:00

Data/Hora Última Alteração: 10/03/2010 17:41:00

Descrição da Nota: VALORES MANTIDOS NO EXTERIOR - DA COMPLETO

Sintoma

 

Inclusão de novas funcionalidades no Valores Mantidos no Exterior.

 

Solução

 

Inclusão de novas funcionalidades no Valores Mantidos no Exterior.

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

VALORES MANTIDOS NO EXTERIOR - DUMP AO SALVAR SEM ENTER

RELATÓRIO DE PAGAMENTOS COM RECURSOS NO EXTERIOR

SAÍDA DE PAGAMENTO - ORDEM DE PAGAMENTO - DATA EFETIVA

DA - ASSOCIAÇÃO DE ORDENS DE PAGAMENTO

VALORES MANTIDOS NO EXTERIOR - ESTORNO COM LIQUIDAÇÃO EM ANDAMENTO

VALORES MANTIDOS EXTERIOR - AJUSTE DE PERFORMANCE BKPF

DEREX - AJUSTES PARA NOVA ORDEM DE PAGAMENTO

CAPTAÇÂO - ORDEM DE PAGAMENTO

VALORES MANTIDOS NO EXTERIOR - CAMPO ZTERM

RELATÓRIO VALORES RECEBIDOS EM C/C NO EXTERIOR

VALORES MANTIDOS NO EXTERIOR - SELEÇAO DO VALOR DA TAXA.

FATURA/VINCULAÇÃO/LIQUIDAÇÃO - COMMODITIES

VALORES MANTIDOS EXTERIOR(XBLNR) - REFERENCIA HORA

DESENVOLVIMENTO ADICIONAL COMPLETO - ORDEM DE PAGAMENTO

DA SAÍDA DE PAGAMENTO - COMPENSAÇÃO AUTOMÁTICA CC ME

VALORES MANTIDOS NO EXTERIOR - DUMP NO MATCH-CODE DE FATURAS

DESENVOLVIMENTO ADICIONAL - SAÍDA DE PAGAMENTO UTILIZANDO CONTA CORRENTE

Informações Complementares

 

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

Nota Número 05482 Data: 17/12/2007 Hora: 14:22:41

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

 

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

Nota Número              : 05482

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00027

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

VALORES MANTIDOS NO EXTERIOR - DA COMPLETO

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

Palavras Chave:

VALORES MANTIDOS NO EXTERIOR - DA COMPLETO

 

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

Objetos da nota:

CUAD /PWS/SAPMZYCB034

DOMA /PWS/ZYGLD571

DOMA /PWS/ZYGLD573

DTEL /PWS/ZYGLL1367

DTEL /PWS/ZYGLL1368

DTEL /PWS/ZYGLL1369

DTEL /PWS/ZYGLL1370

DYNP /PWS/SAPMZYCB034                        0002

DYNP /PWS/SAPMZYCB034                        0100

DYNP /PWS/SAPMZYCB034                        0110

DYNP /PWS/SAPMZYCB034                        0120

DYNP /PWS/SAPMZYCB034                        0130

DYNP /PWS/SAPMZYCB034                        0131

DYNP /PWS/SAPMZYCB034                        0132

DYNP /PWS/SAPMZYCB034                        0140

DYNP /PWS/SAPMZYGL007                        0101

DYNP /PWS/SAPMZYGL007                        0108

DYNP /PWS/SAPMZYGL007                        0118

DYNP /PWS/SAPMZYGL007                        0120

FUNC /PWS/ZYCB_TRANSACAO_F_02

FUNC /PWS/ZYCB_TRANSACAO_F_30_P

REPS /PWS/MZYCB034F01

REPS /PWS/MZYCB034I01

REPS /PWS/MZYCB034O01

REPS /PWS/MZYCB034TOP

REPS /PWS/MZYGL007F01

REPS /PWS/MZYGL007I01

REPS /PWS/MZYGL007O01

REPS /PWS/MZYGL007TOP

REPT /PWS/SAPMZYCB034

REPT /PWS/SAPMZYGL007

TABD /PWS/ZYCBE227

TABD /PWS/ZYCBT007

TABD /PWS/ZYCBT089

TABD /PWS/ZYCBT227

TABL /PWS/ZYCBE238

TABL /PWS/ZYCBE239

TABL /PWS/ZYCBE240

TABL /PWS/ZYCBT238

TABL /PWS/ZYCBT239

TABL /PWS/ZYCBT240

 

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

Modificações efetuadas em CUAD /PWS/SAPMZYCB034

 

STATUS: 0100

 

ATRIBUTOS DE STATUS

TEXTO BREVE: Valores Mantidos no Exterior

 

* >> Início da inclusão:

BOTÃO ESTÁTICO

 

CÓDIGO DE FUNÇÃO: MOVE_DATA

CATEGORIA DE FUNÇÃO:

 

TEXTOS DE FUNÇÃO ESTÁTICOS

TEXTO DE FUNÇÃO: Adicionar Dispon.

NOME DE ÍCONE: ICON_MOVE

TEXTO DE ÍCONE:

TEXTO INFORMATIVO:

SELEÇÃO DIRETA:

TECLA DE ATALHO: Ctrl-Shift-F1

 

 

BOTÃO ESTÁTICO

 

CÓDIGO DE FUNÇÃO: RECEB_TOT

CATEGORIA DE FUNÇÃO:

 

TEXTOS DE FUNÇÃO ESTÁTICOS

TEXTO DE FUNÇÃO: Receber Total

NOME DE ÍCONE: ICON_PARAMETER_CHANGING

TEXTO DE ÍCONE:

TEXTO INFORMATIVO: Receber o Valor Total para Todas as Faturas

SELEÇÃO DIRETA:

TECLA DE ATALHO: Ctrl-Shift-F11

 

* << Fim da inclusão

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

Modificações efetuadas em DOMA /PWS/ZYGLD571

 

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

Domínio incluído: /PWS/ZYGLD571

Descrição breve incluída (21 caracteres), idioma: EN

"GL - TYPE OF CONTRACT"

Descrição breve incluída (21 caracteres), idioma: PT

"GL - TIPO DE CONTRATO"

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Categoria de dados: CHAR

Número de posições: 7

Comprimento de saída: 7

Rotina de conversão:

Letras minúsculas: NÃO

-Valores individuais

Incluído valor fixo "TIPO 01"

Texto incluído, idioma: PT (32 caracteres):

"Tipo de Lançamento Exportação 01"

Incluído valor fixo "TIPO 04"

Texto incluído, idioma: PT (32 caracteres):

"Tipo de Lançamento Financeiro 04"

Incluída tabela de valores:

 

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

Modificações efetuadas em DOMA /PWS/ZYGLD573

 

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

Domínio incluído: /PWS/ZYGLD573

Descrição breve incluída (41 caracteres), idioma: PT

"GL -Taxa do lançamento de disponibilidade"

Descrição breve incluída (29 caracteres), idioma: ES

"GL - Tasa del Contabilización"

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Categoria de dados: CHAR

Número de posições: 10

Comprimento de saída: 10

Rotina de conversão:

Letras minúsculas: NÃO

-Valores individuais

Incluído valor fixo "DTLANCTO"

Texto incluído, idioma: PT (26 caracteres):

"Taxa Cambial do Lançamento"

Incluído valor fixo "DTCREDEXT"

Texto incluído, idioma: PT (35 caracteres):

"Taxa Cambial do Crédito no Exterior"

Texto incluído, idioma: ES (36 caracteres):

"Tasa Cambial del Credito en Exterior"

Incluído valor fixo "DTDISP"

Texto incluído, idioma: PT (39 caracteres):

"Taxa Cambial da data da disponibilidade"

Incluído valor fixo "DTLANC"

Texto incluído, idioma: PT (34 caracteres):

"Taxa Cambial da data do lançamento"

Texto incluído, idioma: ES (28 caracteres):

"Tasa Cambial del Lanzamiento"

Incluído valor fixo "DTFECH"

Texto incluído, idioma: PT (33 caracteres):

"Taxa Cambial do Último Fechamento"

Texto incluído, idioma: ES (37 caracteres):

"Tasa Cambial del Último Encerramiento"

Incluída tabela de valores:

 

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

Modificações efetuadas em DTEL /PWS/ZYGLL1367

 

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

Elemento de dados incluído: /PWS/ZYGLL1367

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Descrição breve incluída: (32 caracteres), idioma: PT

"GL - CONTABILIZA DISPONIBILIDADE"

Categoria de dados: Domínio

Domínio: CHAR1

ID parâmetro:

Nome componente default:

Documentar modificações: NÃO

Nome da ajuda de pesquisa:

Parâmetro da ajuda de pesquisa:

Comprimento máximo do denominador breve: 10

Denominador breve incluído (10 caracteres), idioma: PT

"Cont. Disp"

Comprimento máximo do denominador médio: 15

Denominador médio incluído (13 caracteres), idioma: PT

"Cont. Dispon."

Comprimento máximo do denominador longo: 27

Denominador longo incluído (27 caracteres), idioma: PT

"Contabiliza Disponibilidade"

Comprimento máximo do título: 27

Título incluído (27 caracteres), idioma: PT

"Contabiliza Disponibilidade"

 

 

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

Modificações efetuadas em DTEL /PWS/ZYGLL1368

 

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

Elemento de dados incluído: /PWS/ZYGLL1368

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Descrição breve incluída: (21 caracteres), idioma: PT

"GL - TIPO DE CONTRATO"

Categoria de dados: Domínio

Domínio: /PWS/ZYGLD571

ID parâmetro:

Nome componente default:

Documentar modificações: NÃO

Nome da ajuda de pesquisa:

Parâmetro da ajuda de pesquisa:

Comprimento máximo do denominador breve: 10

Denominador breve incluído (10 caracteres), idioma: PT

"Tp. Contr."

Comprimento máximo do denominador médio: 15

Denominador médio incluído (11 caracteres), idioma: PT

"Tipo Contr."

Comprimento máximo do denominador longo: 20

Denominador longo incluído (13 caracteres), idioma: PT

"Tipo Contrato"

Comprimento máximo do título: 16

Título incluído (16 caracteres), idioma: PT

"Tipo de Contrato"

 

 

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

Modificações efetuadas em DTEL /PWS/ZYGLL1369

 

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

Elemento de dados incluído: /PWS/ZYGLL1369

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Descrição breve incluída: (42 caracteres), idioma: PT

"GL - Taxa do Lançamento da disponibilidade"

Categoria de dados: Domínio

Domínio: /PWS/ZYGLD573

ID parâmetro:

Nome componente default:

Documentar modificações: NÃO

Nome da ajuda de pesquisa:

Parâmetro da ajuda de pesquisa:

Comprimento máximo do denominador breve: 10

Denominador breve incluído (9 caracteres), idioma: PT

"Tx. Disp."

Comprimento máximo do denominador médio: 17

Denominador médio incluído (17 caracteres), idioma: PT

"Tx. Lançam. Disp."

Comprimento máximo do denominador longo: 37

Denominador longo incluído (37 caracteres), idioma: PT

"Taxa do Lançamento da disponibilidade"

Comprimento máximo do título: 37

Título incluído (37 caracteres), idioma: PT

"Taxa do Lançamento da disponibilidade"

 

 

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

Modificações efetuadas em DTEL /PWS/ZYGLL1370

 

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

Elemento de dados incluído: /PWS/ZYGLL1370

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Descrição breve incluída: (53 caracteres), idioma: PT

"GL - TAXA DO ESTORNO DO LANÇAMENTO DA DISPONIBILIDADE"

Categoria de dados: Domínio

Domínio: /PWS/ZYGLD573

ID parâmetro:

Nome componente default:

Documentar modificações: NÃO

Nome da ajuda de pesquisa:

Parâmetro da ajuda de pesquisa:

Comprimento máximo do denominador breve: 10

Denominador breve incluído (8 caracteres), idioma: PT

"Tx. Est."

Comprimento máximo do denominador médio: 15

Denominador médio incluído (14 caracteres), idioma: PT

"Tx. Est. Disp."

Comprimento máximo do denominador longo: 34

Denominador longo incluído (34 caracteres), idioma: PT

"Taxa do estorno Lançam. da dispon."

Comprimento máximo do título: 48

Título incluído (48 caracteres), idioma: PT

"Taxa do estorno do lançamento da disponibilidade"

 

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB034                        0002

 

* Solicitar arquivos para upload da tela

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB034                        0100

 

* Solicitar arquivos para upload da tela

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB034                        0110

 

* Solicitar arquivos para upload da tela

 

* >> Início da inclusão:

PROCESS BEFORE OUTPUT.

  MODULE: screen,

          seleciona_dados,

          verificar_linhas,

          calcula_total_destino.

 

  LOOP WITH CONTROL tc_op.

 

    MODULE: preenche_tc_op.

  ENDLOOP.

 

PROCESS AFTER INPUT.

 

  MODULE:

    drilldown.

 

  LOOP WITH CONTROL tc_op.

    FIELD /pws/zycbe226-nrinvoic     MODULE verifica_processo.

 

    MODULE: verifica_vlr_exterior,

            verifica_dt_limite,

            verifica_periodo_contabil,

            atualiza_tc_op.

  ENDLOOP.

 

  module  preenche_table_control.

 

 

  MODULE: user_command,

          user_command_exit AT EXIT-COMMAND.

 

PROCESS ON VALUE-REQUEST.

 

  FIELD /pws/zycbe226-nrinvoic MODULE get_invoice.

* << Fim da inclusão

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB034                        0120

 

* Solicitar arquivos para upload da tela

 

* >> Início da inclusão:

PROCESS BEFORE OUTPUT.

 

  MODULE:

    verificar_linhas,

    screen.

 

  LOOP WITH CONTROL tc_30.

 

    MODULE:

      preenche_tc_disponibilidade,

      loop_at_screen_tc_linhas.

  ENDLOOP.

 

PROCESS AFTER INPUT.

 

  LOOP WITH CONTROL tc_30.

 

    FIELD:

      /pws/zycbe238-dtdisp MODULE verifica_data_disp ON INPUT,

      /pws/zycbe238-vldisp MODULE verifica_campos ON INPUT.

 

    MODULE:

      atualiza_tc,

      define_operacao.

 

  ENDLOOP.

 

  MODULE:

    user_command.

* << Fim da inclusão

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB034                        0130

 

* Solicitar arquivos para upload da tela

 

* >> Início da inclusão:

PROCESS BEFORE OUTPUT.

 

* MODULE STATUS_0130.

 

  CALL SUBSCREEN:

    ss_disponibilidade INCLUDING syst-cprog '0131',

    ss_contrato        INCLUDING syst-cprog '0132'.

 

PROCESS AFTER INPUT.

 

  CALL SUBSCREEN:

    ss_disponibilidade,

    ss_contrato.

 

  MODULE USER_COMMAND.

* << Fim da inclusão

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB034                        0131

 

* Solicitar arquivos para upload da tela

 

* >> Início da inclusão:

PROCESS BEFORE OUTPUT.

 

  MODULE:

    verificar_linhas,

    screen.

 

  LOOP WITH CONTROL tc_70.

 

    MODULE:

      preenche_tc_disponibilidade,

      loop_at_screen_tc_linhas.

  ENDLOOP.

 

PROCESS AFTER INPUT.

 

  LOOP WITH CONTROL tc_70.

 

    FIELD:

      /pws/zycbe238-dtdisp MODULE verifica_data_disp ON INPUT,

      /pws/zycbe238-vldisp MODULE verifica_campos ON INPUT,

      /pws/zycbe238-vldisp MODULE verifica_taxa_contrato ON INPUT.

 

 

    MODULE:

      atualiza_tc,

      define_operacao.

 

  ENDLOOP.

 

  MODULE:

    user_command.

* << Fim da inclusão

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB034                        0132

 

* Solicitar arquivos para upload da tela

 

* >> Início da inclusão:

PROCESS BEFORE OUTPUT.

 

  MODULE:

    verificar_linhas.

 

  LOOP WITH CONTROL tc_contrato.

 

    MODULE:

      preenche_tc_contrato,

      loop_at_screen_tc_linhas.

  ENDLOOP.

 

PROCESS AFTER INPUT.

 

  LOOP WITH CONTROL tc_contrato.

    MODULE:

      atualiza_tc.

 

    CHAIN.

      FIELD:

        /PWS/ZYCBE239-BCO_MI,   /PWS/ZYCBE239-BCO_FECH,

        /PWS/ZYCBE239-KURSF,    /PWS/ZYCBE239-VLORDEM_MI,

        /PWS/ZYCBE239-DTCONTR,  /PWS/ZYCBE239-DTFECH,

        /PWS/ZYCBE239-DTDEBITO, /PWS/ZYCBE239-DTLIQUID,

        /PWS/ZYCBE239-DTSWIFT.

      MODULE verifica_campos ON CHAIN-REQUEST.

    ENDCHAIN.

 

    FIELD /PWS/ZYCBE239-DTDEBITO

      MODULE verifica_periodo_contabil ON INPUT.

 

    FIELD /PWS/ZYCBE239-KURSF

      MODULE verifica_taxa_contrato ON INPUT.

  ENDLOOP.

 

  MODULE:

    user_command.

* << Fim da inclusão

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB034                        0140

 

* Solicitar arquivos para upload da tela

 

* >> Início da inclusão:

PROCESS BEFORE OUTPUT.

 

  MODULE:

    verificar_linhas,

    screen.

 

  LOOP WITH CONTROL tc_rendimentos.

    MODULE:

      preenche_tc_rendimentos,

      loop_at_screen_tc_linhas.

  ENDLOOP.

 

PROCESS AFTER INPUT.

 

  LOOP WITH CONTROL tc_rendimentos.

    FIELD /PWS/ZYCBE240-BCO_EXT

      MODULE verifica_campos ON INPUT.

 

    MODULE:

      atualiza_tc.

  ENDLOOP.

 

  MODULE:

    user_command.

* << Fim da inclusão

 

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

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

 

* Solicitar arquivos para upload da tela

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYGL007                        0108

 

* Solicitar arquivos para upload da tela

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYGL007                        0118

 

* Solicitar arquivos para upload da tela

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYGL007                        0120

 

* Solicitar arquivos para upload da tela

 

* >> Início da inclusão:

PROCESS BEFORE OUTPUT.

 

* MODULE status_0120.

 

  MODULE: set_screen.

 

PROCESS AFTER INPUT.

* MODULE USER_COMMAND_0120.

* << Fim da inclusão

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_02

 

...

    IF NOT t_dados-d_valut IS INITIAL.

      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.

    ENDIF.

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

    IF sy-subrc <> 0.

      PERFORM bdc_field USING 'BSEG-SGTXT' t_dados-d_sgtxt.

    ENDIF.

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

    IF t_dados-zfbdt NE '00000000'.

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

      IF sy-subrc <> 0.

        WRITE: t_dados-zfbdt TO v_zfbdt.

        PERFORM bdc_field USING  'BSEG-ZFBDT' v_zfbdt.

      ENDIF.

    ENDIF.

* << Fim da inclusão

    PERFORM bdc_screen USING 'SAPLKACB' '0002'.

    READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER' chave = 'D'.

    IF sy-subrc <> 0.

      IF NOT t_dados-d_gsber IS INITIAL.

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

      ENDIF.

    ENDIF.

    IF NOT t_dados-aufnr IS INITIAL.

      PERFORM bdc_field USING 'COBL-AUFNR' t_dados-aufnr.

    ENDIF.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_P

 

...

          ENDIF.

          IF NOT t_dados-d_valut IS INITIAL

             OR ( NOT t_dados-c_valut IS INITIAL AND

                  NOT v_op            IS INITIAL ).

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

                                            chave = v_lanc1.

            IF sy-subrc <> 0.

              PERFORM bdc_field USING 'BSEG-VALUT' v_valut.

            ENDIF.

          ENDIF.

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

          PERFORM define_campo TABLES t_telas

                               USING  v_programa

                                      v_tela

                                      'BSEG-ZFBDT'.

          IF v_invisible EQ 0.

            IF NOT v_zfbdt IS INITIAL

             AND NOT v_zfbdt = '00.00.0000'

             AND NOT v_zfbdt = '00/00/0000'.

              PERFORM bdc_field  USING: 'BSEG-ZFBDT' v_zfbdt.

            ENDIF.

          ENDIF.

* << Fim da inclusão

          IF v_last EQ 'X'.

            PERFORM bdc_field USING: 'BDC_OKCODE'  '=PA'.

          ELSE.

            PERFORM bdc_field USING: 'RF05A-NEWBS' t_dados-newbs,

                                     'RF05A-NEWKO' t_dados-d_newko,

                                     'BDC_OKCODE'  '/00'.

          ENDIF.

          PERFORM bdc_screen USING 'SAPLKACB' '0002'.

          IF NOT t_dados-d_gsber IS INITIAL.

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

...

 

...

          PERFORM bdc_field USING v_campo2 v_dtdocto.

          IF v_cont = 5.

            PERFORM bdc_field  USING 'BDC_OKCODE' '=SU1'.

            PERFORM bdc_screen USING 'SAPDF05X'   '0732'.

            PERFORM bdc_field USING  'BDC_CURSOR' 'RF05A-VONDT(01)'.

            CLEAR v_cont.

          ENDIF.

        ENDLOOP.

      ENDIF.

      PERFORM bdc_field  USING 'BDC_OKCODE' '=GO'.

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

    ENDIF.

    LOOP AT t_doctos WHERE zuonr NE space.

      EXIT.

    ENDLOOP.

    IF v_filt_atrib = 'X' AND sy-subrc EQ 0.

      PERFORM bdc_screen USING 'SAPDF05X'    '3100'.

      PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

      PERFORM bdc_field  USING 'RF05A-ABPOS' '1'.

      PERFORM bdc_field  USING 'BDC_OKCODE'  '=OSU'.

      CLEAR v_xpos1.

      SELECT SINGLE selps FROM t021r

        INTO  v_xpos1

        WHERE event = 'SU-AG'

          AND feldn = 'ZUONR'.

      SHIFT v_xpos1 LEFT DELETING LEADING  '0'.

      WHILE v_xpos1 > 10.

        v_xpos1 = v_xpos1 - 10.

        PERFORM bdc_screen USING 'SAPDF05X'   '2000'.

        PERFORM bdc_field USING 'BDC_OKCODE'  'P+'.

        SHIFT v_xpos1 LEFT DELETING LEADING  '0'.

      ENDWHILE.

      CONCATENATE 'RF05A-XPOS1(' v_xpos1 ')' INTO v_xpos_zuonr.

      PERFORM bdc_screen USING 'SAPDF05X'    '2000'.

      PERFORM bdc_field USING 'BDC_CURSOR'   v_xpos_zuonr.

      PERFORM bdc_field  USING v_xpos_zuonr  'X'.

      PERFORM bdc_field  USING 'BDC_OKCODE'  '=GO'.

      PERFORM bdc_screen USING 'SAPDF05X'        '0731'.

      PERFORM bdc_field USING  'RF05A-SEL01(01)' t_dados-c_zuonr.

      LOOP AT t_doctos WHERE tcode  = t_dados-tcode  AND

                             tabela = t_dados-tabela AND

                             cpochv = t_dados-cpochv.

        IF NOT t_doctos-zuonr IS INITIAL.

          v_cont = v_cont + 1.

          CONCATENATE 'RF05A-SEL01(' v_cont ')' INTO v_xpos.

          PERFORM bdc_field USING v_xpos t_doctos-zuonr.

          IF v_cont > 5.

            PERFORM bdc_field USING 'BDC_OKCODE' 'SU1'.

            PERFORM bdc_screen USING 'SAPDF05X'        '0731'.

            CLEAR v_cont.

          ENDIF.

        ENDIF.

      ENDLOOP.

      PERFORM bdc_field  USING 'BDC_OKCODE'      '=GO'.

* << Fim da inclusão

    ENDIF.

    IF tcurx-currdec = 2.

      PERFORM bdc_screen USING 'SAPDF05X'   '3100'.

      PERFORM bdc_field  USING 'BDC_CURSOR' 'RF05A-ABPOS'.

      PERFORM bdc_field  USING 'BDC_OKCODE' '=OMX'.

      PERFORM bdc_screen USING 'SAPDF05X'   '3100'.

      PERFORM bdc_field  USING 'BDC_CURSOR' 'RF05A-ABPOS'.

      PERFORM bdc_field  USING 'BDC_OKCODE' '=Z-'.

      PERFORM bdc_screen USING 'SAPDF05X'    '3100'.

      PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB034F01

 

...

  CASE sy-dynnr.

    WHEN '0002'.

      SET PF-STATUS '0001' EXCLUDING 'SPOS'.

      SET TITLEBAR  '0100' WITH '- '(020) 'Criar'(015).

    WHEN '0100'.

      CASE sy-tcode.

        WHEN c_transacao_c.

          preenche_itab_status_exc 'AEND'.

          preenche_itab_status_exc 'ESTORNO'.

          preenche_itab_status_exc 'NOOP'.

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

          preenche_itab_status_exc 'MOVE_DATA'.

* << Fim da inclusão

        WHEN c_transacao_a.

          preenche_itab_status_exc 'AEND'.

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

          preenche_itab_status_exc 'MARK'.

          preenche_itab_status_exc 'UNMARK'.

          preenche_itab_status_exc 'DEL_LINE'.

* << Fim da exclusão

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

          preenche_itab_status_exc 'RECEB_TOT'.

* << Fim da inclusão

        WHEN c_transacao_e.

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

          preenche_itab_status_exc 'RECEB_TOT'.

          preenche_itab_status_exc 'MOVE_DATA'.

* << Fim da inclusão

          preenche_itab_status_exc 'ESTORNO'.

          preenche_itab_status_exc 'NOOP'.

          preenche_itab_status_exc 'MARK'.

          preenche_itab_status_exc 'UNMARK'.

          preenche_itab_status_exc 'DEL_LINE'.

          preenche_itab_status_exc 'SAVE'.

      ENDCASE.

      SET PF-STATUS '0100' EXCLUDING itab_status_exc.

      define_titulo.

  ENDCASE.

ENDFORM.

FORM trata_tela.

  CASE sy-dynnr.

    WHEN '0100'.

      PERFORM trata_tela_0100.

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

    WHEN '0120'.

      PERFORM trata_tela_0120.

* << Fim da inclusão

  ENDCASE.

ENDFORM.

FORM botao_especifico.

  DATA: myevent_tab  TYPE cntl_simple_events,

        myevent      TYPE cntl_simple_event,

        v_icone      TYPE iconname.

  CLEAR  : myevent.

  REFRESH: myevent_tab.

  IF itab_zyglt376[] IS INITIAL.

    SELECT * FROM /pws/zyglt376 INTO TABLE itab_zyglt376

...

 

...

  ENDIF.

ENDFORM.

FORM drill_down.

  DATA: v_campo(30) TYPE c,

        v_value(10) TYPE c,

        v_index     TYPE sy-tabix,

        v_bukrs     TYPE /pws/zycbe226-bukrs,

        v_gjahr     TYPE bkpf-gjahr,

        v_nrparcf   TYPE /pws/zycbe226-nrparcf,

        wa_zycbt017 TYPE t_s_zycbt017.

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

  FIELD-SYMBOLS: <fs_zycbt226> TYPE t_s_zycbe226.

* << Fim da exclusão

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

  DATA: v_periodo   TYPE frper.

  FIELD-SYMBOLS:

    <fs_contrato> TYPE t_contrato,

    <fs_disp> TYPE t_disponibilidade,

    <fs_zycbt226> TYPE t_s_zycbe226.

* << Fim da inclusão

  GET CURSOR FIELD v_campo VALUE v_value.

  CHECK NOT v_campo IS INITIAL.

  CASE v_campo.

    WHEN '/PWS/ZYCBE226-NRINVOIC'.

      AUTHORITY-CHECK OBJECT 'S_TCODE'

                      ID     'TCD'

                      FIELD  '/PWS/ZYCB005_E'.

      IF sy-subrc = 0.

        GET CURSOR LINE v_index.

        CHECK NOT v_index IS INITIAL.

...

 

...

      IF sy-subrc EQ 0.

        SET PARAMETER ID 'BLN' FIELD v_value.

        GET CURSOR LINE v_index.

        CHECK NOT v_index IS INITIAL.

        v_index = tc_op-top_line + v_index - 1.

        READ TABLE itab_zycbt226 INDEX v_index ASSIGNING <fs_zycbt226>.

        IF sy-subrc = 0.

          v_bukrs = <fs_zycbt226>-bukrs.

          CHECK NOT v_bukrs IS INITIAL.

          v_gjahr = <fs_zycbt226>-dtlancto(4).

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

          CHECK NOT v_gjahr IS INITIAL.

          SET PARAMETER ID 'BUK' FIELD v_bukrs.

          SET PARAMETER ID 'GJR' FIELD v_gjahr.

          CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

        ENDIF.

      ELSE.

        MESSAGE e261(sf) WITH 'FB03'.

      ENDIF.

    WHEN '/PWS/ZYCBE238-DOC_CONT'

      OR '/PWS/ZYCBE238-DOC_DESM'

      OR '/PWS/ZYCBE238-DOC_COMP'

      OR '/PWS/ZYCBE239-DOC_CONT'

      OR '/PWS/ZYCBE239-DOC_COMP'.

      AUTHORITY-CHECK OBJECT 'S_TCODE'

                      ID     'TCD'

                      FIELD  'FB03'.

      IF sy-subrc EQ 0.

        SET PARAMETER ID 'BLN' FIELD v_value.

        GET CURSOR LINE v_index.

        CHECK NOT v_index IS INITIAL.

        v_index = tc_op-top_line + v_index - 1.

        IF v_campo+0(13) EQ '/PWS/ZYCBE239'.

          READ TABLE itab_contrato

            INDEX v_index ASSIGNING <fs_contrato>.

          CHECK <fs_contrato> IS ASSIGNED.

          READ TABLE itab_zycbt226 ASSIGNING <fs_zycbt226>

            WITH KEY nrseq = <fs_contrato>-nrseq.

          v_gjahr = <fs_contrato>-dtdebito(4).

        ELSE.

          CASE sy-dynnr.

            WHEN '0120'.

              READ TABLE itab_disp_30 INDEX v_index ASSIGNING <fs_disp>.

            WHEN '0131'.

              READ TABLE itab_disp_70 INDEX v_index ASSIGNING <fs_disp>.

          ENDCASE.

          CHECK <fs_disp> IS ASSIGNED.

          READ TABLE itab_zycbt226 ASSIGNING <fs_zycbt226>

            WITH KEY nrseq = <fs_disp>-nrseq.

          v_gjahr = <fs_disp>-dtlanc(4).

        ENDIF.

        IF sy-subrc = 0.

          v_bukrs = <fs_zycbt226>-bukrs.

          CHECK NOT v_bukrs IS INITIAL.

* << Fim da inclusão

          CHECK NOT v_gjahr IS INITIAL.

          SET PARAMETER ID 'BUK' FIELD v_bukrs.

          SET PARAMETER ID 'GJR' FIELD v_gjahr.

          CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

        ENDIF.

      ELSE.

        MESSAGE e261(sf) WITH 'FB03'.

      ENDIF.

  ENDCASE.

ENDFORM.

FORM user_command_0100.

  DATA: v_linhas TYPE sy-tabix.

  CASE ok_code.

    WHEN 'SAVE'.

      PERFORM salva_previsto.

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

      PERFORM salva_rendimentos.

* << Fim da inclusão

      PERFORM processamento.

    WHEN 'PB_HELP'.

      v_tela_help = '0051'.

      EXIT.

    WHEN 'HELP_CLOSE'.

      v_tela_help = '0052'.

      EXIT.

    WHEN 'AEND'.

      PERFORM aend.

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

    WHEN 'MODO'.

      PERFORM modo_bi.

* << Fim da inclusão

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

    WHEN 'MARK'.

      PERFORM mark USING 'X'.

* << Fim da exclusão

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

    WHEN 'TAB100_30'.

      IF itab_disp_30[] IS INITIAL.

        ts_principal-activetab = wa_controle-ts_atual.

      ELSE.

        ts_principal-activetab = ok_code.

      ENDIF.

* << Fim da inclusão

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

    WHEN 'UNMARK'.

      PERFORM mark USING ' '.

* << Fim da exclusão

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

    WHEN 'TAB100_70'.

      IF itab_disp_70[] IS INITIAL.

        ts_principal-activetab = wa_controle-ts_atual.

      ELSE.

        ts_principal-activetab = ok_code.

      ENDIF.

* << Fim da inclusão

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

    WHEN 'DEL_LINE'.

      PERFORM del_line.

* << Fim da exclusão

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

    WHEN OTHERS.

      IF ok_code(6) EQ 'TAB100'.

        ts_principal-activetab = ok_code.

* << Fim da inclusão

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

    WHEN 'P--' OR 'P-' OR 'P++' OR 'P+'.

      DESCRIBE TABLE itab_zycbt226 LINES v_linhas.

      PERFORM paginacao_tc USING    v_linhas

                           CHANGING tc_op-top_line.

    WHEN 'ESTORNO'.

      PERFORM marcar_estorno USING 'X'.

* << Fim da exclusão

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

      ELSEIF ok_code(6) EQ 'TAB130'.

        ts_70-activetab = ok_code.

      ENDIF.

* << Fim da inclusão

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

    WHEN 'NOOP'.

      PERFORM marcar_estorno USING ' '.

    WHEN 'MODO'.

      PERFORM modo_bi.

* << Fim da exclusão

  ENDCASE.

ENDFORM.

FORM seleciona_parametros.

  IF wa_controle-parametros_carregados IS INITIAL.

    SELECT *

      FROM /pws/zycbt007

      INTO TABLE itab_zycbt007.

    SELECT *

      FROM /pws/zycbt089

      INTO TABLE itab_zycbt089.

...

 

...

         EXCEPTIONS

              i_codmod_nao_encontrado = 1

              i_func_nao_encontrado   = 2

              i_zexit_nao_encontrado  = 3

              OTHERS                  = 4.

    wa_controle-parametros_carregados = 'X'.

  ENDIF.

ENDFORM.

FORM seleciona_op.

  DATA:

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

    v_indice TYPE sy-index,

* << Fim da inclusão

    wa_zycbt017  TYPE t_s_zycbt017.

  FIELD-SYMBOLS: <fs_zycbt226> TYPE t_s_zycbe226,

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

                 <fs_contrato> LIKE LINE OF itab_contrato,

                 <fs_disp>     LIKE LINE OF itab_disp_70,

* << Fim da inclusão

                 <fs_zycbt017> TYPE t_s_zycbt017.

  IF sy-tcode NE c_transacao_c.

    CHECK wa_controle-dados_op_carregados IS INITIAL.

    SELECT *

      FROM /pws/zycbt226

      INTO CORRESPONDING FIELDS OF TABLE itab_zycbt226

      WHERE nrseq     IN s_nrseq

        AND nrinvoic  IN s_invoic

        AND nrparcf   IN s_nrparc

        AND gsberf    IN s_gsber

        AND bukrs     IN s_bukrs

        AND kunag     IN s_kunag

        AND dtcredext IN s_dtcext

        AND dtincl    IN s_dtincl

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

        AND destino   IN s_dest.

* << Fim da exclusão

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

        .

* << Fim da inclusão

    IF sy-subrc = 0.

      IF p_orig1 = 'X' AND p_orig2 IS INITIAL.

        opt_origem_embarque = 'X'.

        CLEAR opt_origem_pagantec.

        DELETE itab_zycbt226 WHERE tipo_op NE 'E'.

      ELSEIF p_orig1 IS INITIAL AND p_orig2 = 'X'.

        opt_origem_pagantec = 'X'.

        CLEAR opt_origem_embarque.

        DELETE itab_zycbt226 WHERE tipo_op NE 'P'.

      ELSEIF ( p_orig1 = 'X' AND p_orig2 = 'X' ) OR

...

 

...

      ENDIF.

    ENDIF.

    IF NOT itab_zycbt226[] IS INITIAL.

      SELECT *

        FROM /pws/zycbt017

        INTO TABLE itab_zycbt017

        FOR ALL ENTRIES IN itab_zycbt226

        WHERE nrinvoic  = itab_zycbt226-nrinvoic

          AND gsberf    = itab_zycbt226-gsberf

          AND nrparcf   = itab_zycbt226-nrparcf.

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

      SELECT * FROM /pws/zycbt227

        INTO TABLE itab_zycbt227

        FOR ALL ENTRIES IN itab_zycbt226

        WHERE nrseq = itab_zycbt226-nrseq.

      IF NOT itab_zycbt227[] IS INITIAL.

        SELECT *

          FROM /pws/zycbt017

          APPENDING TABLE itab_zycbt017

          FOR ALL ENTRIES IN itab_zycbt227

          WHERE nrinvoic  = itab_zycbt227-nrinvoic

            AND gsberf    = itab_zycbt227-gsberf

            AND nrparcf   = itab_zycbt227-nrparcf.

      ENDIF.

      SELECT * FROM /pws/zycbt238

        INTO TABLE itab_disp_30

        FOR ALL ENTRIES IN itab_zycbt226

        WHERE nrseq   = itab_zycbt226-nrseq

          AND destino = c_30.

      APPEND LINES OF itab_disp_30 TO itab_disp_ant.

      SELECT * FROM /pws/zycbt238

        INTO TABLE itab_disp_70

        FOR ALL ENTRIES IN itab_zycbt226

        WHERE nrseq   = itab_zycbt226-nrseq

          AND destino = c_70.

      APPEND LINES OF itab_disp_70 TO itab_disp_ant.

      IF NOT itab_disp_70[] IS INITIAL.

        SELECT * FROM /pws/zycbt239

          INTO TABLE itab_contrato

          FOR ALL ENTRIES IN itab_disp_70

          WHERE nrseq =   itab_disp_70-nrseq.

        IF sy-subrc EQ 0.

          SORT itab_contrato BY nrseq dtdisp tpcontr ASCENDING.

          APPEND LINES OF itab_contrato TO itab_contrato_ant.

        ENDIF.

        CLEAR:

          v_indice.

        LOOP AT itab_disp_70 ASSIGNING <fs_disp>.

          v_indice = v_indice + 1.

          LOOP AT itab_contrato ASSIGNING <fs_contrato>

            WHERE nrseq   = <fs_disp>-nrseq

              AND destino = <fs_disp>-destino

              AND dtdisp  = <fs_disp>-dtdisp.

            <fs_contrato>-indice = v_indice.

          ENDLOOP.

          <fs_disp>-indice     = v_indice.

        ENDLOOP.

      ENDIF.

      SELECT * FROM /pws/zycbt240 INTO TABLE itab_rendimentos.

      itab_rendimentos_ant = itab_rendimentos.

* << Fim da inclusão

      LOOP AT itab_zycbt226 ASSIGNING <fs_zycbt226>.

        READ TABLE itab_zycbt017 INTO wa_zycbt017 WITH KEY

                    nrinvoic  = <fs_zycbt226>-nrinvoic

                    gsberf    = <fs_zycbt226>-gsberf

                    nrparcf   = <fs_zycbt226>-nrparcf.

        IF sy-subrc EQ '0'.

          <fs_zycbt226>-vlavinc = wa_zycbt017-vlavinc.

        ENDIF.

      ENDLOOP.

    ENDIF.

    wa_controle-dados_op_carregados = 'X'.

  ELSE.

    IF NOT itab_zycbt226[] IS INITIAL.

      SELECT *

        FROM /pws/zycbt017

        INTO TABLE itab_zycbt017

        FOR ALL ENTRIES IN itab_zycbt226

        WHERE nrinvoic  = itab_zycbt226-nrinvoic

          AND gsberf    = itab_zycbt226-gsberf

          AND nrparcf   = itab_zycbt226-nrparcf.

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

      SELECT * FROM /pws/zycbt227

        INTO TABLE itab_zycbt227

        FOR ALL ENTRIES IN itab_zycbt226

        WHERE nrseq = itab_zycbt226-nrseq.

      IF NOT itab_zycbt227[] IS INITIAL.

        SELECT *

          FROM /pws/zycbt017

          INTO TABLE itab_zycbt017

          FOR ALL ENTRIES IN itab_zycbt227

          WHERE nrinvoic  = itab_zycbt227-nrinvoic

            AND gsberf    = itab_zycbt227-gsberf

            AND nrparcf   = itab_zycbt227-nrparcf.

      ENDIF.

* << Fim da inclusão

    ENDIF.

  ENDIF.

ENDFORM.

FORM trata_exit USING p_exit TYPE /pws/zyglt100-zexit.

  DATA: v_ucomm TYPE sy-ucomm,

        v_subrc TYPE sy-subrc.

  FIELD-SYMBOLS: <fs_zyglt100> LIKE LINE OF itab_zyglt100.

  CLEAR r_okcode.

  CALL METHOD cl_gui_cfw=>dispatch.

  IF NOT r_okcode IS INITIAL.

...

 

...

  CALL FUNCTION 'MESSAGES_COUNT'

       IMPORTING

            count                       = v_num_messages

       EXCEPTIONS

            inconsistent_range          = 1

            inconsistent_range_severity = 2

            OTHERS                      = 3.

  IF sy-subrc <> 0.

  ENDIF.

  CHECK v_num_messages > 0.

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

  CLEAR:

    wa_controle-msg_cnt.

* << Fim da inclusão

  CALL FUNCTION 'MESSAGES_SHOW'

       EXPORTING

            object             =

            'Mensagens emitidas durante o processo'(018)

            show_linno         = space

       EXCEPTIONS

            inconsistent_range = 1

            no_messages        = 2

            OTHERS             = 3.

  IF sy-subrc <> 0.

...

 

...

  ENDCASE.

ENDFORM.

FORM aend.

  EXPORT s_bukrs  TO MEMORY ID 'PROG34-BUKRS'.

  EXPORT s_invoic TO MEMORY ID 'PROG34-INVOIC'.

  EXPORT s_gsber  TO MEMORY ID 'PROG34-GSBER'.

  EXPORT s_nrparc TO MEMORY ID 'PROG34-NRPARC'.

  EXPORT s_kunag  TO MEMORY ID 'PROG34-KUNAG'.

  EXPORT s_dtincl TO MEMORY ID 'PROG34-DTINCL'.

  EXPORT s_dtcext TO MEMORY ID 'PROG34-DTCEXT'.

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

  CALL TRANSACTION c_transacao_a AND SKIP FIRST SCREEN.

* << Fim da exclusão

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

  PERFORM leave_to_transaction

    USING c_transacao_a.

* << Fim da inclusão

ENDFORM.

FORM trata_tela_0100.

  DATA: v_linhas TYPE sy-tabix.

  FIELD-SYMBOLS: <fs_cols> TYPE cxtab_column.

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

  DESCRIBE TABLE itab_zycbt226 LINES v_linhas.

  tc_op-lines = v_linhas.

* << Fim da exclusão

  LOOP AT SCREEN.

    IF sy-tcode = c_transacao_e.

...

 

...

        <fs_cols>-invisible = '0'.

      ENDIF.

    ELSEIF ( opt_origem_embarque = 'X' AND

             opt_origem_pagantec = 'X' ) OR

           ( opt_origem_embarque IS INITIAL AND

             opt_origem_pagantec IS INITIAL ).

      <fs_cols>-invisible = '0'.

    ENDIF.

  ENDLOOP.

ENDFORM.

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

FORM mark USING value(p_mark) TYPE c.

* << Fim da exclusão

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

FORM trata_tela_0120.

  DATA: v_linhas TYPE sy-tabix.

  FIELD-SYMBOLS: <fs_cols> TYPE cxtab_column.

* << Fim da inclusão

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

  FIELD-SYMBOLS: <fs_zycbt226> TYPE t_s_zycbe226.

* << Fim da exclusão

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

  DESCRIBE TABLE itab_disp_30 LINES v_linhas.

  tc_30-lines = v_linhas.

* << Fim da inclusão

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

  LOOP AT itab_zycbt226 ASSIGNING <fs_zycbt226>.

    <fs_op>-mark = p_mark.

* << Fim da exclusão

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

  LOOP AT SCREEN.

    IF sy-tcode = c_transacao_e.

      IF screen-group1 CA 'E'.

        screen-input = 0.

        MODIFY SCREEN.

      ENDIF.

    ENDIF.

* << Fim da inclusão

  ENDLOOP.

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

  LOOP AT tc_30-cols ASSIGNING <fs_cols>.

    IF sy-tcode = c_transacao_e.

      IF <fs_cols>-screen-group1 CA 'E'.

        <fs_cols>-screen-input = 0.

      ENDIF.

    ELSEIF sy-tcode = c_transacao_a.

      IF <fs_cols>-screen-group1 CA 'A'.

        <fs_cols>-screen-input = 1.

      ENDIF.

      IF <fs_cols>-screen-group1 CA 'F'.

        <fs_cols>-screen-input = 0.

      ENDIF.

* << Fim da inclusão

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

ENDFORM.

FORM del_line.

* << Fim da exclusão

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

    ELSEIF sy-tcode = c_transacao_c.

      IF opt_origem_pagantec = 'X'.

        IF <fs_cols>-screen-group2 CA 'A'.

          <fs_cols>-screen-input = 1.

        ENDIF.

        IF <fs_cols>-screen-group2 CA 'F'.

          <fs_cols>-screen-input = 0.

        ENDIF.

      ENDIF.

* << Fim da inclusão

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

  FIELD-SYMBOLS: <fs_zycbt226> TYPE t_s_zycbe226.

* << Fim da exclusão

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

      IF opt_origem_embarque = 'X'.

        IF <fs_cols>-screen-group3 CA 'A'.

          <fs_cols>-screen-input = 1.

        ENDIF.

        IF <fs_cols>-screen-group3 CA 'F'.

          <fs_cols>-screen-input = 0.

        ENDIF.

      ENDIF.

* << Fim da inclusão

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

  LOOP AT itab_zycbt226 ASSIGNING <fs_zycbt226> WHERE mark = 'X' .

    DELETE itab_zycbt226 INDEX sy-tabix.

* << Fim da exclusão

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

    ENDIF.

* << Fim da inclusão

  ENDLOOP.

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

ENDFORM.

* << Fim da inclusão

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

ENDFORM.

* << Fim da exclusão

FORM verifica_autorizacao USING value(p_tipo).

  DATA: p_oper(2)   TYPE c,

        wa_zycbt017 TYPE t_s_zycbt017.

...

 

...

        '/PWS/ZYCBM'

        'W'

        'Registro não será exibido por falta de autorização.'(m02)

        space

        space

        space

        '061'.

    ELSEIF wa_controle-autorizacao_emp = 'X'.

      MOVE-CORRESPONDING <fs_zycbt226> TO /pws/zycbe226.

      v_mark     = <fs_zycbt226>-mark.

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

      PERFORM atualiza_icone

        USING <fs_zycbt226>-operacao

        CHANGING v_icone.

* << Fim da inclusão

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

      CLEAR v_icone.

      CASE <fs_zycbt226>-operacao.

        WHEN space.

          v_icone = icon_space.

        WHEN 'E'.

          v_icone = icon_delete.

      ENDCASE.

* << Fim da exclusão

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

      IF NOT /pws/zycbe226-belnr_op2 IS INITIAL.

        /pws/zycbe226-belnr_op = /pws/zycbe226-belnr_op2.

      ENDIF.

* << Fim da inclusão

      IF /pws/zycbe226-destino IS INITIAL.

        IF opt_destino_30 = 'X'.

          /pws/zycbe226-destino = '30'.

        ELSEIF opt_destino_70 = 'X'.

          /pws/zycbe226-destino = '70'.

        ENDIF.

      ENDIF.

      IF /pws/zycbe226-tipo_op IS INITIAL.

        IF opt_origem_embarque = 'X'.

          /pws/zycbe226-tipo_op = 'E'.

...

 

...

      ENDIF.

      v_banco = <fs_zycbt226>-bco_recebedor.

      SHIFT v_banco RIGHT DELETING TRAILING space.

      TRANSLATE v_banco USING ' 0'.

      READ TABLE itab_lfa1 WITH KEY lifnr = v_banco

        INTO wa_lfa1.

      IF sy-subrc = 0.

        /pws/zycbe226-descr_bcoreceb = wa_lfa1-name1.

      ELSE.

        CLEAR /pws/zycbe226-descr_bcoreceb.

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

      ENDIF.

      v_banco = <fs_zycbt226>-bco_me.

      SHIFT v_banco RIGHT DELETING TRAILING space.

      TRANSLATE v_banco USING ' 0'.

      READ TABLE itab_lfa1 WITH KEY lifnr = v_banco

        INTO wa_lfa1.

      IF sy-subrc = 0.

        /pws/zycbe226-descr_bcome = wa_lfa1-name1.

      ELSE.

        CLEAR /pws/zycbe226-descr_bcome.

* << Fim da inclusão

      ENDIF.

    ENDIF.

    CLEAR /pws/zycbe226-sld_transferir.

    READ TABLE itab_zycbt030 ASSIGNING <fs_zycbt030> WITH KEY

          nrinvoic = /pws/zycbe226-nrinvoic

          nrparcf  = /pws/zycbe226-nrparcf

          gsberf   = /pws/zycbe226-gsberf.

    IF sy-subrc EQ '0'.

      /pws/zycbe226-sld_transferir = <fs_zycbt030>-vlsltrans.

    ENDIF.

...

 

...

  ENDIF.

  v_banco = /pws/zycbe226-bco_recebedor.

  SHIFT v_banco RIGHT DELETING TRAILING space.

  TRANSLATE v_banco USING ' 0'.

  READ TABLE itab_lfa1 WITH KEY lifnr = v_banco

    INTO wa_lfa1.

  IF sy-subrc = 0.

    /pws/zycbe226-descr_bcoreceb = wa_lfa1-name1.

  ELSE.

    CLEAR /pws/zycbe226-descr_bcoreceb.

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

  ENDIF.

  /pws/zycbe226-belnr_op2 = wa_zycbt226-belnr_op2.

  IF wa_zycbt226-drilldown EQ 'X'.

    MOVE wa_zycbt226-vlr_exterior TO /pws/zycbe226-vlr_exterior.

    CLEAR wa_zycbt226-drilldown.

* << Fim da inclusão

  ENDIF.

  IF sy-tcode EQ c_transacao_c.

    /pws/zycbe226-sld_exterior = /pws/zycbe226-vlr_exterior.

  ENDIF.

  IF sy-tcode            EQ c_transacao_c AND

     opt_origem_pagantec EQ 'X'.

    /pws/zycbe226-vlavinc        = /pws/zycbe226-vlr_exterior.

    /pws/zycbe226-sld_transferir = /pws/zycbe226-sld_exterior.

    /pws/zycbe226-sld_associar   = /pws/zycbe226-vlr_exterior.

    IF /pws/zycbe226-tipo_op NE 'P'.

      /pws/zycbe226-tipo_op      = 'P'.

    ENDIF.

  ELSEIF sy-tcode              EQ c_transacao_c AND

         opt_origem_embarque   EQ 'X'           AND

         /pws/zycbe226-tipo_op NE 'E'.

    /pws/zycbe226-tipo_op      = 'E'.

  ENDIF.

  MOVE-CORRESPONDING /pws/zycbe226 TO wa_zycbt226.

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

  IF NOT wa_zycbt226-belnr_op2 IS INITIAL.

    MOVE wa_zycbt226-belnr_op2 TO /pws/zycbe226-belnr_op.

  ENDIF.

* << Fim da inclusão

  wa_zycbt226-mark     = v_mark.

  MODIFY itab_zycbt226 FROM wa_zycbt226 INDEX tc_op-current_line.

  IF sy-subrc NE 0.

    APPEND wa_zycbt226 TO itab_zycbt226.

  ENDIF.

  wa_controle-tc_linhas = sy-loopc.

ENDFORM.

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

FORM marcar_estorno USING value(p_valor).

* << Fim da exclusão

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

FORM marcar_estorno

  USING value(p_valor)

  CHANGING p_itab TYPE INDEX TABLE.

  FIELD-SYMBOLS:

    <fs_line>   TYPE ANY,

    <fs_record> TYPE ANY.

* << Fim da inclusão

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

  FIELD-SYMBOLS: <fs_zycbt226> TYPE t_s_zycbe226.

  LOOP AT itab_zycbt226 ASSIGNING <fs_zycbt226> WHERE mark = 'X' .

* << Fim da exclusão

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

  LOOP AT p_itab ASSIGNING <fs_line>.

    ASSIGN COMPONENT 'MARK'  OF STRUCTURE <fs_line> TO <fs_record>.

    CHECK <fs_record> IS ASSIGNED.

    CHECK <fs_record> EQ 'X'.

    UNASSIGN <fs_record>.

    ASSIGN COMPONENT 'OPERACAO' OF STRUCTURE <fs_line> TO <fs_record>.

    CHECK <fs_record> IS ASSIGNED.

    CHECK <fs_record> NE c_novo.

* << Fim da inclusão

    IF p_valor = 'X'.

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

      <fs_zycbt226>-operacao = 'E'.

* << Fim da exclusão

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

      <fs_record> = c_excluido.

* << Fim da inclusão

    ELSEIF p_valor IS INITIAL.

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

      CLEAR <fs_zycbt226>-operacao.

* << Fim da exclusão

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

      CLEAR <fs_record>.

* << Fim da inclusão

    ENDIF.

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

    UNASSIGN <fs_record>.

* << Fim da inclusão

  ENDLOOP.

  IF sy-subrc NE 0.

    MESSAGE w061 WITH

      'Por favor, selecionar pelo menos uma fatura.'(m01).

  ENDIF.

ENDFORM.

...

 

...

         screen-name = '/PWS/ZYCBE226-REF_OP'        OR

         screen-name = '/PWS/ZYCBE226-OBS'           OR

         screen-name = '/PWS/ZYCBE226-DESTINO'.

        screen-input = '0'.

        MODIFY SCREEN.

      ENDIF.

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM importa_selecao.

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

  DATA:

    wa_nrseq LIKE LINE OF s_nrseq,

    wa_zycbt226 LIKE LINE OF itab_zycbt226,

    v_param(20) TYPE c,

    v_index(3) TYPE n,

    v_contador(3) TYPE n,

    v_nrseq TYPE /pws/zycbe226-nrseq.

  CLEAR:

    v_index,

    v_contador.

  GET PARAMETER ID 'ZYCB034-QTD' FIELD v_index.

  SET PARAMETER ID 'ZYCB034-QTD' FIELD space.

* << Fim da inclusão

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

  IF sy-tcode = c_transacao_a.

    IMPORT s_bukrs  FROM MEMORY ID 'PROG34-BUKRS'.

    IMPORT s_invoic FROM MEMORY ID 'PROG34-INVOIC'.

    IMPORT s_gsber  FROM MEMORY ID 'PROG34-GSBER'.

    IMPORT s_nrparc FROM MEMORY ID 'PROG34-NRPARC'.

    IMPORT s_kunag  FROM MEMORY ID 'PROG34-KUNAG'.

    IMPORT s_dtincl FROM MEMORY ID 'PROG34-DTINCL'.

    IMPORT s_dtcext FROM MEMORY ID 'PROG34-DTCEXT'.

  ENDIF.

* << Fim da exclusão

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

  wa_nrseq-sign   = 'I'.

  wa_nrseq-option = 'EQ'.

  DO v_index TIMES.

    CONCATENATE c_parametro v_contador INTO v_param.

    GET PARAMETER ID v_param FIELD wa_nrseq-low.

    SET PARAMETER ID v_param FIELD space.

    APPEND wa_nrseq TO s_nrseq.

    v_contador = v_contador + 1.

  ENDDO.

* << Fim da inclusão

ENDFORM.

FORM processamento.

  DATA: v_excecao(01) TYPE c,

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

        wa_disp LIKE LINE OF itab_disp_30,

        wa_zycbt226 LIKE LINE OF itab_zycbt226,

* << Fim da inclusão

        v_indice_226  TYPE sy-tabix.

  PERFORM: seleciona_op,

           seleciona_dados,

           armazena_dados_antigos.

  LOOP AT itab_zycbt226 ASSIGNING <fs_op>.

    v_indice_226 = sy-tabix.

    IF <fs_op>-status = 'C'.

      IF <fs_op>-operacao = 'E'.

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

        READ TABLE itab_disp_30 WITH KEY nrseq = <fs_op>-nrseq

          TRANSPORTING NO FIELDS.

        IF sy-subrc EQ 0.

          PERFORM message_store

            USING '/PWS/ZYCBM'

                  'I'

                  'Ordem de Pagamento'(001)

                  <fs_op>-nrseq

                  'tem disponibilidade(s) de 30%.'(m21)

                  'Estorno não permitido.'(m15)

                  '061'.

          CONTINUE.

        ENDIF.

        READ TABLE itab_disp_70 WITH KEY nrseq = <fs_op>-nrseq

          TRANSPORTING NO FIELDS.

        IF sy-subrc EQ 0.

          PERFORM message_store

            USING '/PWS/ZYCBM'

                  'I'

                  'Ordem de Pagamento'(001)

                  <fs_op>-nrseq

                  'tem disponibilidade(s) de 70%.'(m22)

                  'Estorno não permitido.'(m15)

                  '061'.

          CONTINUE.

        ENDIF.

* << Fim da inclusão

        IF <fs_op>-vlr_exterior NE <fs_op>-sld_exterior.

          PERFORM message_store

            USING '/PWS/ZYCBM'

                  'I'

                  'Ordem de Pagamento'(001)

                  <fs_op>-nrseq

                  'está paga.'(m14)

                  'Estorno não permitido.'(m15)

                  '061'.

          CONTINUE.

...

 

...

                  <fs_op>-nrseq

                  'está associada.'(m16)

                  'Estorno não permitido.'(m15)

                  '061'.

          CONTINUE.

        ENDIF.

        PERFORM: le_dados,

                 verifica_dados USING    'X'

                                CHANGING v_excecao.

        IF v_excecao IS INITIAL.

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

          PERFORM: contabilizacoes_estorno,

                   message_show USING 'X'.

* << Fim da exclusão

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

          PERFORM: contabilizacoes_estorno.

          REFRESH itab_contabilizacoes.

* << Fim da inclusão

        ENDIF.

      ELSE.

        PERFORM atualiza_dados_op.

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

        PERFORM processa_disponibilidade

          USING itab_disp_30.

        PERFORM processa_disponibilidade

          USING itab_disp_70.

* << Fim da inclusão

        CONTINUE.

      ENDIF.

    ELSEIF <fs_op>-status = 'I' OR

           <fs_op>-status IS INITIAL.

      CHECK <fs_op>-bloqueado IS INITIAL.

      CLEAR v_excecao.

      PERFORM: le_dados,

               verifica_dados USING    space

                              CHANGING v_excecao.

      IF v_excecao IS INITIAL.

        PERFORM: contabilizacoes.

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

        PERFORM message_show USING 'X'.

* << Fim da exclusão

      ENDIF.

    ENDIF.

  ENDLOOP.

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

  PERFORM message_show USING 'X'.

  IF sy-tcode EQ c_transacao_c.

    LOOP AT itab_zycbt226 INTO wa_zycbt226

      WHERE status NE c_contabilizado.

      EXIT.

    ENDLOOP.

    IF sy-subrc NE 0 AND NOT itab_zycbt226[] IS INITIAL.

      PERFORM leave_to_transaction

        USING c_transacao_a.

    ENDIF.

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM verifica_dados

  USING    p_estorno  TYPE c

  CHANGING p_excecao  TYPE c.

  DATA: v_mensagens TYPE sy-tabix.

  PERFORM verifica_parametrizacao_taxas

    USING    p_estorno

             itab_zycbt089

             <fs_op>-bukrs

    CHANGING p_excecao.

...

 

...

  DATA:

    v_dt_taxa    TYPE d,

    wa_zycet001  TYPE t_s_zycet001,

    wa_zycit054  TYPE t_s_zycit054,

    wa_zycet047  TYPE t_s_zycet047,

    wa_zycet048  TYPE t_s_zycet048,

    wa_bkpf      TYPE t_s_bkpf,

    v_op(30)     TYPE c,

    v_cli(23)    TYPE c,

    v_liqand(27) TYPE c.

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

  READ TABLE itab_zycbt089 INTO wa_zycbt089

    WITH KEY bukrs = p_bukrs.

  READ TABLE itab_zycbt007 INTO wa_zycbt007

    WITH KEY bukrs = p_bukrs.

* << Fim da inclusão

  CHECK NOT p_dtlanc IS INITIAL.

  IF NOT wa_zycbt007 IS INITIAL AND

     NOT wa_zycbt089 IS INITIAL.

    CASE p_tpcontab.

      WHEN 'O'.

        v_op = c_dtlanc.

        CASE v_op.

          WHEN c_dtlanc.

            v_dt_taxa = p_dtlanc.

          WHEN c_dtcredext.

...

 

...

  IF NOT itab_zycbt226[] IS INITIAL.

    SELECT *

      FROM kna1

      INTO TABLE itab_kna1

      FOR ALL ENTRIES IN itab_zycbt226

      WHERE kunnr = itab_zycbt226-kunag.

    SELECT *

      FROM lfa1

      INTO TABLE itab_lfa1

      FOR ALL ENTRIES IN itab_zycbt226

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

      WHERE lifnr = itab_zycbt226-bco_recebedor.

* << Fim da exclusão

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

      WHERE lifnr = itab_zycbt226-bco_recebedor

         OR lifnr = itab_zycbt226-bco_me.

* << Fim da inclusão

    SELECT *

      FROM /pws/zycbt225

      INTO TABLE itab_zycbt225

      FOR ALL ENTRIES IN itab_zycbt226

      WHERE nrseq = itab_zycbt226-nrseq.

    SELECT dtemb dtvencto viatrans dtaverb dtcruze nrseq

           kurrf_bl

      FROM /pws/zycet001

      INTO CORRESPONDING FIELDS OF TABLE itab_zycet001

      FOR ALL ENTRIES IN itab_zycbt226

...

 

...

                                          p_wa_zycbe033-c_newko

                                          'S'.

  PERFORM preenche_contas_bloqueio USING  sy-mandt

                                          <fs_op>-bukrs

                                          p_wa_zycbe033-koart

                                          p_wa_zycbe033-d_newko1

                                          'S'.

ENDFORM.

FORM limpa_dados_bi.

  FREE:

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

    itab_doctos,

* << Fim da inclusão

    itab_zycbt032,

    itab_zycbe033,

    itab_zycbt034,

    itab_zycbt036,

    itab_partidas,

    itab_zycbe224.

ENDFORM.

FORM modo_bi.

  TYPES: t_s_modo TYPE spopli,

         t_t_modo TYPE TABLE OF t_s_modo WITH DEFAULT KEY.

...

 

...

  REFRESH tdynpread.

  CALL FUNCTION 'DYNP_GET_STEPL'

       IMPORTING

            povstepl = v_line.

  tdynpread-fieldname = '/PWS/ZYCBE226-NRINVOIC'.

  tdynpread-stepl     = v_line.

  APPEND tdynpread.

  CALL FUNCTION 'DYNP_VALUES_READ'

       EXPORTING

            dyname     = '/PWS/SAPMZYCB034'

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

            dynumb     = '0100'

* << Fim da exclusão

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

            dynumb     = '0110'

* << Fim da inclusão

       TABLES

            dynpfields = tdynpread.

  IF sy-subrc EQ 0 AND

     NOT tdynpread-fieldvalue IS INITIAL.

    EXIT.

  ENDIF.

  IF sy-tcode = c_transacao_a OR

     sy-tcode = c_transacao_e.

    l_display = 'X'.

  ELSE.

...

 

...

            povstepl = v_line.

  DO v_line TIMES.

    CLEAR tdynpread.

    REFRESH tdynpread.

    tdynpread-fieldname = '/PWS/ZYCBE226-NRINVOIC'.

    tdynpread-stepl     = v_line - 1.

    APPEND tdynpread.

    CALL FUNCTION 'DYNP_VALUES_READ'

         EXPORTING

              dyname     = '/PWS/SAPMZYCB034'

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

              dynumb     = '0100'

* << Fim da exclusão

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

              dynumb     = '0110'

* << Fim da inclusão

         TABLES

              dynpfields = tdynpread.

    IF sy-subrc             EQ 0       AND

       tdynpread-fieldvalue IS INITIAL AND

       tdynpread-stepl      GT 0.

      v_line = tdynpread-stepl.

    ELSEIF sy-subrc EQ 0 AND

           NOT tdynpread-fieldvalue IS INITIAL.

      EXIT.

    ENDIF.

...

 

...

    tdynpread-stepl      = v_line.

    APPEND tdynpread.

    READ TABLE itab_zycbt226 INTO wa_zycbt226 WITH KEY

                                     nrinvoic = wa_invoice-nrinvoic

                                      nrparcf  = wa_invoice-nrparcf

                                      gsberf   = wa_invoice-gsberf.

    IF sy-subrc NE '0'.

      MOVE-CORRESPONDING wa_zycbt017 TO wa_zycbt226.

      MOVE-CORRESPONDING wa_invoice  TO wa_zycbt226.

      MOVE wa_invoice-vlsltrans      TO wa_zycbt226-sld_transferir.

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

      MOVE c_novo TO wa_zycbt226-operacao.

* << Fim da inclusão

      APPEND wa_zycbt226 TO itab_zycbt226.

    ENDIF.

  ENDLOOP.

  CALL FUNCTION 'DYNP_VALUES_UPDATE'

       EXPORTING

            dyname     = sy-cprog

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

            dynumb     = '0100'

* << Fim da exclusão

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

            dynumb     = '0110'

* << Fim da inclusão

       TABLES

            dynpfields = tdynpread

       EXCEPTIONS

            OTHERS     = 8.

ENDFORM.

FORM limpa_itabs.

  REFRESH:

  itab_zycbt017,

  itab_zycbt030,

  itab_zycbt039,

...

 

...

  itab_zycbt226,

  itab_zycbt226_ant,

  itab_zycet001,

  itab_zycet047,

  itab_zycet048,

  itab_zycit054,

  itab_zyglt316,

  itab_zyglt376,

  itab_zyglt368,

  itab_bkpf,

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

  itab_disp_ant,

  itab_disp_30,

  itab_disp_70,

  itab_rendimentos,

  itab_contrato,

* << Fim da inclusão

  itab_zycbt007,

  itab_zycbt089,

  itab_zyglt009,

  itab_kna1,

  itab_lfa1,

  itab_zyglt321,

  itab_zycbt009,

  itab_zycbt011,

  itab_zyglt100.

ENDFORM.

...

 

...

        value(p_belnr_est_f02)    TYPE /pws/zycbt226-belnr_op

        value(p_dtlancto_est_f02) TYPE /pws/zycbt226-dtlancto.

  DATA: wa_zycbt032        TYPE t_s_zycbt032,

        wa_zycbe033        TYPE t_s_zycbe033,

        wa_zycbt034        TYPE t_s_zycbt034,

        wa_zycbt036        TYPE t_s_zycbt036,

        wa_zycbt011        TYPE t_s_zycbt011,

        wa_zycbt030        TYPE t_s_zycbt030,

        wa_zycbt225        TYPE t_s_zycbt225,

        wa_zycbt209        TYPE t_s_zycbt209,

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

        wa_cont            TYPE t_contabilizacoes,

* << Fim da inclusão

        v_codeven          TYPE /pws/zycbt011-codeven,

        v_chvoper(3)       TYPE c,

        v_titulo(40)       TYPE c,

        v_tot_liqand       TYPE wrbtr.

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

  CHECK NOT p_belnr_est_f02 IS INITIAL.

* << Fim da inclusão

  IF <fs_op>-tipo_op = 'E'.

    CASE p_processo.

      WHEN 'C'.

        CHECK NOT <fs_op>-belnr_desm_cli IS INITIAL.

      WHEN 'L'.

        CHECK NOT <fs_op>-belnr_desmliqand IS INITIAL.

      WHEN 'O'.

        CHECK NOT <fs_op>-belnr_op IS INITIAL.

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

        CHECK <fs_op>-belnr_desmliqand IS INITIAL

          AND <fs_op>-belnr_desm_cli IS INITIAL.

* << Fim da inclusão

    ENDCASE.

  ENDIF.

  wa_zycbe033-tcode  = 'F-30'.

  wa_zycbe033-tabela = '/PWS/ZYCBT226'.

  CONCATENATE <fs_op>-nrinvoic <fs_op>-gsberf <fs_op>-nrparcf

    INTO wa_zycbe033-cpochv.

  PERFORM verifica_campo_vazio USING <fs_op>-dtlancto

                                     'DTLANCTO'

                                     'Data de Lançamento'(004).

  IF wa_controle-periodo_fechado = 'X'.

...

 

...

              periodo_fechado = 2

              OTHERS          = 3.

    IF sy-subrc = 0.

      READ TABLE itab_zycbt032 WITH KEY

        tcode  = 'F-30'

        tabela = '/PWS/ZYCBT226'

        cpochv = wa_zycbe033-cpochv

        tpmsg  = 'S'

        INTO wa_zycbt032.

      IF sy-subrc EQ 0.

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

        wa_cont-belnr    = wa_zycbt032-belnr.

        wa_cont-dtlancto = wa_zycbe033-budat.

        wa_cont-fb08     = 'X'.

        wa_cont-fbra     = 'X'.

* << Fim da inclusão

        CASE p_processo(1).

          WHEN 'C'.

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

            wa_cont-belnr_ant = <fs_op>-belnr_desm_cli.

            wa_cont-tabela = 'ITAB_ZYCBT226'.

            wa_cont-campo  = 'BELNR_DESM_CLI'.

* << Fim da inclusão

            CLEAR <fs_op>-belnr_desm_cli.

          WHEN 'L'.

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

            wa_cont-belnr_ant = <fs_op>-belnr_desmliqand.

            wa_cont-tabela = 'ITAB_ZYCBT226'.

            wa_cont-campo  = 'BELNR_DESMLIQAND'.

* << Fim da inclusão

            CLEAR <fs_op>-belnr_desmliqand.

          WHEN 'O'.

            IF <fs_op>-tipo_op = 'E'.

              CLEAR <fs_op>-belnr_compens.

              CLEAR <fs_op>-belnr_op.

            ELSEIF <fs_op>-tipo_op = 'P'.

              IF p_processo = 'OM'.

                CLEAR <fs_op>-belnr_op.

              ENDIF.

            ENDIF.

        ENDCASE.

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

        APPEND wa_cont TO itab_contabilizacoes.

* << Fim da inclusão

        IF <fs_op>-tipo_op = 'E'.

          IF p_processo = 'C'.

            LOOP AT itab_zycbt225 INTO wa_zycbt225

              WHERE nrseq = <fs_op>-nrseq.

              v_tot_liqand = v_tot_liqand + wa_zycbt225-vlme.

            ENDLOOP.

          ENDIF.

          PERFORM volta_saldo USING p_processo

                                    wa_zycbt032

                                    wa_zycbe033

...

 

...

            AND tpmsg  = 'E'.

          PERFORM message_store

            USING wa_zycbt032-msgid

                  wa_zycbt032-tpmsg

                  wa_zycbt032-msgv1

                  wa_zycbt032-msgv2

                  wa_zycbt032-msgv3

                  wa_zycbt032-msgv4

                  wa_zycbt032-nrmsg.

        ENDLOOP.

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

        PERFORM estornar_contabilizacoes

          USING itab_contabilizacoes.

* << Fim da inclusão

      ENDIF.

    ELSEIF sy-subrc = 1.

      LOOP AT itab_zycbt034 INTO wa_zycbt034.

        PERFORM message_store

          USING '/PWS/ZYCBM'

                'E'

                'Campo não está preenchido.'(m13)

                wa_zycbt034-campo

                '-'

                wa_zycbt034-descricao

                '061'.

      ENDLOOP.

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

      PERFORM estornar_contabilizacoes

        USING itab_contabilizacoes.

* << Fim da inclusão

    ENDIF.

    CALL FUNCTION '/PWS/ZYCB_ENQUEUE_CONTAS'

         EXPORTING

              i_bloqueia    = 'X'

         TABLES

              itab_zycbt224 = itab_zycbe224

         EXCEPTIONS

              zycbe224_null = 1

              erro_bloqueio = 2

              OTHERS        = 3.

...

 

...

    ENDIF.

  ENDIF.

ENDFORM.

FORM volta_saldo USING value(p_processo)   TYPE c

                       value(p_zycbt032)   TYPE t_s_zycbt032

                       value(p_zycbe033)   TYPE t_s_zycbe033

                       p_zycbt225          TYPE t_s_zycbt225

                       p_zycbt030          TYPE t_s_zycbt030

                       p_zycbt209          TYPE t_s_zycbt209

                       value(p_tot_liqand) TYPE wrbtr.

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

  DATA: v_volta_cli TYPE /pws/zycbt030-vlsltrans.

* << Fim da exclusão

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

  DATA:

  wa_cont     TYPE t_contabilizacoes,

  v_volta_cli TYPE /pws/zycbt030-vlsltrans.

* << Fim da inclusão

  CASE p_processo.

    WHEN 'C'.

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

      wa_cont-belnr_ant   = p_zycbt030-belnr6.

      wa_cont-valor_ant   = p_zycbt030-vlsltrans.

      wa_cont-campo_valor = 'VLSLTRANS'.

      wa_cont-campo       = 'BELNR6'.

      wa_cont-tabela      = 'ITAB_ZYCBT030'.

* << Fim da inclusão

      v_volta_cli = <fs_op>-vlr_exterior - p_tot_liqand.

      p_zycbt030-vlsltrans =

        p_zycbt030-vlsltrans + v_volta_cli.

      p_zycbt030-belnr6    = p_zycbt032-belnr.

      p_zycbt030-budat     = p_zycbe033-budat.

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

      UPDATE /pws/zycbt030

        SET   belnr6    = p_zycbt030-belnr6

              budat     = p_zycbt030-budat

              vlsltrans = p_zycbt030-vlsltrans

* << Fim da exclusão

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

      wa_cont-belnr   = p_zycbt030-belnr6.

      wa_cont-valor   = p_zycbt030-vlsltrans.

      APPEND wa_cont TO itab_contabilizacoes.

      MODIFY itab_zycbt030 FROM p_zycbt030

        TRANSPORTING vlsltrans belnr6 budat

* << Fim da inclusão

        WHERE nrinvoic  = <fs_op>-nrinvoic

          AND nrparcf   = <fs_op>-nrparcf

          AND gsberf    = <fs_op>-gsberf.

    WHEN 'L'.

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

      wa_cont-belnr_ant   = p_zycbt209-belnr2.

      wa_cont-valor_ant   = p_zycbt209-saldo.

      wa_cont-campo_valor = 'SALDO'.

      wa_cont-campo       = 'BELNR2'.

      wa_cont-tabela      = 'ITAB_ZYCBT209'.

* << Fim da inclusão

      p_zycbt209-saldo   = p_zycbt209-saldo + p_zycbt225-vlme.

      p_zycbt209-belnr2  = p_zycbt032-belnr.

      p_zycbt209-dtbelnr = p_zycbe033-budat.

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

      wa_cont-belnr   = p_zycbt209-belnr2.

      wa_cont-valor   = p_zycbt209-saldo.

* << Fim da inclusão

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

      UPDATE /pws/zycbt209

        SET   saldo     = p_zycbt209-saldo

              belnr2    = p_zycbt209-belnr2

              dtbelnr   = p_zycbt209-dtbelnr

* << Fim da exclusão

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

      APPEND wa_cont TO itab_contabilizacoes.

      MODIFY itab_zycbt209 FROM p_zycbt209

        TRANSPORTING saldo belnr2 dtbelnr

* << Fim da inclusão

        WHERE bukrs     = p_zycbt225-bukrs

          AND nrinvoic  = p_zycbt225-nrinvoic

          AND belnr     = p_zycbt225-belnr

          AND dtincl    = p_zycbt225-dtincl

          AND gsberf    = p_zycbt225-gsberf

          AND nrparcf   = p_zycbt225-nrparcf.

  ENDCASE.

ENDFORM.

FORM apaga_registros.

  DATA v_nrseq_op TYPE /pws/zycbt226-nrseq.

  CHECK <fs_op>-belnr_op         IS INITIAL AND

        <fs_op>-belnr_desm_cli   IS INITIAL AND

        <fs_op>-belnr_desmliqand IS INITIAL AND

        <fs_op>-belnr_compens    IS INITIAL.

  v_nrseq_op = <fs_op>-nrseq.

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

  MODIFY /pws/zycbt209 FROM TABLE itab_zycbt209.

  MODIFY /pws/zycbt030 FROM TABLE itab_zycbt030.

* << Fim da inclusão

  DELETE itab_zycbt226 WHERE nrseq = v_nrseq_op.

  DELETE FROM /pws/zycbt226 WHERE nrseq = v_nrseq_op.

  DELETE itab_zycbt225 WHERE nrseq = v_nrseq_op.

  DELETE FROM /pws/zycbt225 WHERE nrseq = v_nrseq_op.

ENDFORM.

FORM f02_reversa

            CHANGING p_belnr_est_f02    TYPE /pws/zycbt226-belnr_op

                     p_dtlancto_est_f02 TYPE /pws/zycbt226-dtlancto.

  DATA: wa_zycbt032       TYPE t_s_zycbt032,

        wa_zycbe033       TYPE t_s_zycbe033,

        wa_zycbt034       TYPE t_s_zycbt034,

        wa_partidas       TYPE t_s_zycbe033,

        wa_zycbt209       TYPE t_s_zycbt209,

        wa_zycbt225       TYPE t_s_zycbt225,

        wa_tab_op         TYPE t_s_tab_op,

        wa_zyglt316       TYPE t_s_zyglt316,

        wa_zycbt011       TYPE t_s_zycbt011,

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

        wa_cont           TYPE t_contabilizacoes,

* << Fim da inclusão

        v_lancto_multiplo TYPE c,

        v_newbs2          TYPE newbs,

        v_titulo(31)      TYPE c,

        v_codeven         TYPE /pws/zycbt011-codeven,

        v_banco           TYPE /pws/zycbt226-bco_me,

        v_tot_liqand      TYPE wrbtr.

  CONSTANTS: c_op(23)     TYPE c VALUE 'DOC. ORDEM DE PAGAMENTO',

             c_est_op(31) TYPE c VALUE 'DOC. ESTORNO ORDEM DE PAGAMENTO'

.

  CHECK <fs_op>-tipo_op = 'E'.

...

 

...

              periodo_fechado = 2

              OTHERS          = 3.

    IF sy-subrc = 0.

      READ TABLE itab_zycbt032 WITH KEY

        tcode  = 'F-02'

        tabela = '/PWS/ZYCBT226'

        cpochv = wa_zycbe033-cpochv

        tpmsg  = 'S'

        INTO wa_zycbt032.

      IF sy-subrc EQ 0.

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

      wa_cont-belnr    = wa_zycbt032-belnr.

      wa_cont-dtlancto = wa_zycbe033-budat.

      wa_cont-fb08     = 'X'.

      APPEND wa_cont TO itab_contabilizacoes.

* << Fim da inclusão

        p_belnr_est_f02    = wa_zycbt032-belnr.

        p_dtlancto_est_f02 = wa_zycbe033-budat.

        PERFORM message_store

          USING '/PWS/ZYCBM'

                'I'

                v_titulo

                '-'

                <fs_op>-nrseq

                space

                '061'.

...

 

...

        wa_zycbt034        TYPE t_s_zycbt034,

        wa_zycbt036        TYPE t_s_zycbt036,

        wa_zycbt011        TYPE t_s_zycbt011,

        wa_zycbt030        TYPE t_s_zycbt030,

        wa_zycbt225        TYPE t_s_zycbt225,

        wa_zycbt209        TYPE t_s_zycbt209,

        v_codeven          TYPE /pws/zycbt011-codeven,

        v_chvoper(3)       TYPE c,

        v_titulo(40)       TYPE c,

        v_tot_liqand       TYPE wrbtr,

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

        wa_cont            TYPE t_contabilizacoes,

* << Fim da inclusão

        v_count            TYPE i,

        v_total            TYPE i,

        v_ult(1)           TYPE c.

  CHECK <fs_op>-tipo_op = 'E'.

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

  CHECK NOT p_belnr_est_f02 IS INITIAL.

  CHECK <fs_op>-belnr_desm_cli IS INITIAL.

* << Fim da inclusão

  CHECK NOT <fs_op>-belnr_desmliqand IS INITIAL.

  wa_zycbe033-tcode  = 'F-30'.

...

 

...

                periodo_fechado = 2

                OTHERS          = 3.

      IF sy-subrc = 0.

        READ TABLE itab_zycbt032 WITH KEY

          tcode  = 'F-30'

          tabela = '/PWS/ZYCBT226'

          cpochv = wa_zycbe033-cpochv

          tpmsg  = 'S'

          INTO wa_zycbt032.

        IF sy-subrc EQ 0.

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

          wa_cont-belnr_ant = <fs_op>-belnr_desmliqand.

          wa_cont-tabela = 'ITAB_ZYCBT226'.

          wa_cont-campo  = 'BELNR_DESMLIQAND'.

          wa_cont-belnr    = wa_zycbt032-belnr.

          wa_cont-dtlancto = wa_zycbe033-budat.

          wa_cont-fb08     = 'X'.

          wa_cont-fbra     = 'X'.

          APPEND wa_cont TO itab_contabilizacoes.

* << Fim da inclusão

          CLEAR <fs_op>-belnr_desmliqand.

          PERFORM volta_saldo USING 'L'

                                    wa_zycbt032

                                    wa_zycbe033

                                    wa_zycbt225

                                    wa_zycbt030

                                    wa_zycbt209

                                    v_tot_liqand.

          MODIFY itab_zycbt209 FROM wa_zycbt209

            TRANSPORTING saldo

...

 

...

              AND tpmsg  = 'E'.

            PERFORM message_store

              USING wa_zycbt032-msgid

                    wa_zycbt032-tpmsg

                    wa_zycbt032-msgv1

                    wa_zycbt032-msgv2

                    wa_zycbt032-msgv3

                    wa_zycbt032-msgv4

                    wa_zycbt032-nrmsg.

          ENDLOOP.

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

          PERFORM estornar_contabilizacoes

            USING itab_contabilizacoes.

* << Fim da inclusão

        ENDIF.

      ELSEIF sy-subrc = 1.

        LOOP AT itab_zycbt034 INTO wa_zycbt034.

          PERFORM message_store

            USING '/PWS/ZYCBM'

                  'E'

                  'Campo não está preenchido.'(m13)

                  wa_zycbt034-campo

                  '-'

                  wa_zycbt034-descricao

                  '061'.

        ENDLOOP.

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

        PERFORM estornar_contabilizacoes

          USING itab_contabilizacoes.

* << Fim da inclusão

      ENDIF.

    ENDIF.

    REFRESH: itab_zycbt032,

             itab_zycbe033,

             itab_zycbt036,

             itab_zycbe224.

  ENDLOOP.

  CALL FUNCTION '/PWS/ZYCB_ENQUEUE_CONTAS'

       EXPORTING

            i_bloqueia    = 'X'

...

 

...

  IF sy-subrc = 0.

    wa_zycbt089-previsto_usd = /pws/zycbt089-previsto_usd.

    MODIFY TABLE itab_zycbt089 FROM wa_zycbt089.

    IF v_total_30 > wa_zycbt089-previsto_usd.

      v_msg_previsto = text-028.

    ELSE.

      CLEAR v_msg_previsto.

    ENDIF.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

FORM user_command_0131.

  CHECK ts_principal-activetab EQ c_tela_ts_70

    AND ts_70-activetab        EQ c_tela_disp_70.

  DATA:

    v_linhas TYPE sy-tabix.

  CASE ok_code.

    WHEN 'MARK'.

      PERFORM preenche_campo_itab

        USING 'MARK'

              'X'

        CHANGING itab_disp_70.

    WHEN 'UNMARK'.

      PERFORM preenche_campo_itab

        USING 'MARK'

              ' '

        CHANGING itab_disp_70.

    WHEN 'DEL_LINE'.

      PERFORM elimina_linha_marcada

        CHANGING itab_disp_70.

      PERFORM elimina_linhas_contrato

        USING itab_disp_70

        CHANGING itab_contrato.

    WHEN 'P--' OR 'P-' OR 'P++' OR 'P+'.

      DESCRIBE TABLE itab_disp_70 LINES v_linhas.

      PERFORM paginacao_tc USING    v_linhas

                           CHANGING tc_70-top_line.

    WHEN 'ESTORNO'.

      PERFORM marcar_estorno

        USING 'X'

        CHANGING itab_disp_70.

      PERFORM marcar_estorno_contrato

        USING 'X'

              itab_disp_70

        CHANGING itab_contrato.

    WHEN 'NOOP'.

      PERFORM marcar_estorno

        USING ' '

        CHANGING itab_disp_70.

      PERFORM marcar_estorno_contrato

        USING ' '

              itab_disp_70

        CHANGING itab_contrato.

    WHEN OTHERS.

  ENDCASE.

ENDFORM.

FORM preenche_tc_disponibilidade

  USING p_itab_disp TYPE t_t_disponibilidade

        p_tc        TYPE cxtab_control.

  DATA:

    wa_zycbt226 LIKE LINE OF itab_zycbt226.

  FIELD-SYMBOLS:

    <fs_disponibilidade> LIKE LINE OF p_itab_disp.

  READ TABLE p_itab_disp INDEX p_tc-current_line

    ASSIGNING <fs_disponibilidade>.

  IF sy-subrc EQ 0.

    READ TABLE itab_zycbt226

      INTO wa_zycbt226

      WITH KEY nrseq = <fs_disponibilidade>-nrseq.

    v_mark     = <fs_disponibilidade>-mark.

    MOVE-CORRESPONDING:

      wa_zycbt226 TO /pws/zycbe238,

      wa_zycbt226 TO /pws/zycbe226,

      <fs_disponibilidade> TO /pws/zycbe238.

    PERFORM atualiza_icone

      USING <fs_disponibilidade>-operacao

      CHANGING v_icone.

  ENDIF.

ENDFORM.

FORM atualiza_tc_disponibilidade

  USING p_itab_disp TYPE t_t_disponibilidade

        p_tc        TYPE cxtab_control

        p_destino   TYPE /pws/zycbe238-destino.

  DATA:

    wa_disp LIKE LINE OF p_itab_disp.

  /pws/zycbe238-destino = p_destino.

  READ TABLE p_itab_disp INTO wa_disp INDEX p_tc-current_line.

  MOVE-CORRESPONDING:

    /pws/zycbe238 TO wa_disp.

  MOVE:

    v_mark              TO wa_disp-mark,

    /pws/zycbe226-waers TO wa_disp-waers,

    /pws/zycbe238-vldisp   TO wa_disp-saldo.

  MODIFY p_itab_disp FROM wa_disp INDEX p_tc-current_line.

ENDFORM.

FORM loop_at_screen_disp

  USING p_itab_disp TYPE t_t_disponibilidade

        p_tc        TYPE cxtab_control

        p_destino   TYPE /pws/zycbe238-destino.

  DATA:

    v_fecha_linha TYPE c,

    v_newko   TYPE /pws/zycbe033-d_newko,

    wa_disp   LIKE LINE OF p_itab_disp.

  READ TABLE itab_zycbt007 INTO wa_zycbt007

    WITH KEY bukrs = /pws/zycbe226-bukrs.

  READ TABLE itab_disp_ant

    WITH KEY nrseq   = /pws/zycbe238-nrseq

             destino = p_destino

             dtdisp  = /pws/zycbe238-dtdisp

    TRANSPORTING NO FIELDS.

  IF sy-subrc EQ 0.

    v_fecha_linha = 'X'.

  ENDIF.

  LOOP AT SCREEN.

    IF v_fecha_linha = 'X'.

      CHECK screen-name NE c_mark.

      screen-input = 0.

      MODIFY SCREEN.

    ELSE.

      IF /pws/zycbe238-nrseq EQ space.

        screen-input = 0.

        MODIFY SCREEN.

      ELSE.

        IF wa_zycbt007-cont_disp EQ space.

          IF screen-name EQ '/PWS/ZYCBE238-DTLANC'.

            screen-input = 0.

            MODIFY SCREEN.

          ENDIF.

        ENDIF.

        IF ( screen-name  EQ '/PWS/ZYCBE238-VLDISP' OR

             screen-name  EQ '/PWS/ZYCBE238-DTLANC' OR

             screen-name  EQ '/PWS/ZYCBE238-DTDISP' ) AND

           screen-input NE 0.

          screen-required = 1.

          MODIFY SCREEN.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM loop_at_screen_contr

  USING p_itab_contrato TYPE t_t_contrato

        p_tc            TYPE cxtab_control.

  DATA:

    wa_contrato LIKE LINE OF p_itab_contrato.

  READ TABLE p_itab_contrato INTO wa_contrato

    INDEX p_tc-current_line.

  READ TABLE itab_zycbt007 INTO wa_zycbt007

    WITH KEY bukrs = /pws/zycbe226-bukrs.

  LOOP AT SCREEN.

    IF sy-tcode EQ c_transacao_e.

      screen-input = 0.

      MODIFY SCREEN.

    ELSE.

      IF /pws/zycbe239-tpcontr IS INITIAL.

        screen-input = 0.

        MODIFY SCREEN.

      ELSEIF /pws/zycbe239-tpcontr EQ c_tp4.

        IF screen-name EQ '/PWS/ZYCBE239-BCO_MI'   OR

           screen-name EQ '/PWS/ZYCBE239-BCO_FECH' OR

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

           screen-name EQ '/PWS/ZYCBE239-DTCONTR'  OR

           screen-name EQ '/PWS/ZYCBE239-DTFECH'   OR

           screen-name EQ '/PWS/ZYCBE239-DTDEBITO' OR

           screen-name EQ '/PWS/ZYCBE239-DTLIQUID' OR

           screen-name EQ '/PWS/ZYCBE239-DTSWIFT'.

          screen-input = 0.

          MODIFY SCREEN.

        ENDIF.

      ENDIF.

      IF wa_contrato-doc_cont NE space             AND

        ( screen-name  EQ '/PWS/ZYCBE239-BCO_MI'   OR

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

          screen-name  EQ '/PWS/ZYCBE239-DTDEBITO' OR

          screen-name  EQ '/PWS/ZYCBE239-TXTLANC' ).

        screen-input = 0.

        MODIFY SCREEN.

      ENDIF.

      IF screen-name EQ '/PWS/ZYCBE239-VLORDEM_MI'.

        screen-input = 0.

        MODIFY SCREEN.

      ENDIF.

      IF ( screen-name  EQ '/PWS/ZYCBE239-BCO_MI'   OR

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

           screen-name  EQ '/PWS/ZYCBE239-DTDEBITO' ) AND

         screen-input NE 0.

        screen-required = 1.

        MODIFY SCREEN.

      ENDIF.

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM user_command_0110.

  CHECK ts_principal-activetab EQ c_tela_receb.

  DATA:

    v_linhas TYPE sy-tabix.

  FIELD-SYMBOLS:

    <fs_zycbt226> TYPE t_s_zycbe226.

  CASE ok_code.

    WHEN 'MARK'.

      PERFORM preenche_campo_itab

        USING 'MARK'

              'X'

        CHANGING itab_zycbt226.

    WHEN 'UNMARK'.

      PERFORM preenche_campo_itab

        USING 'MARK'

              ' '

        CHANGING itab_zycbt226.

    WHEN 'DEL_LINE'.

      LOOP AT itab_zycbt226 ASSIGNING <fs_zycbt226>

        WHERE mark EQ 'X'.

        READ TABLE itab_disp_30 WITH KEY nrseq = <fs_zycbt226>-nrseq

          TRANSPORTING NO FIELDS.

        IF sy-subrc NE 0.

          READ TABLE itab_disp_70 WITH KEY nrseq = <fs_zycbt226>-nrseq

            TRANSPORTING NO FIELDS.

        ENDIF.

        IF sy-subrc NE 0.

          <fs_zycbt226>-operacao = c_novo.

        ELSE.

          CLEAR <fs_zycbt226>-mark.

        ENDIF.

      ENDLOOP.

      PERFORM elimina_linha_marcada

        CHANGING itab_zycbt226.

    WHEN 'P--' OR 'P-' OR 'P++' OR 'P+'.

      DESCRIBE TABLE itab_zycbt226 LINES v_linhas.

      PERFORM paginacao_tc USING    v_linhas

                           CHANGING tc_op-top_line.

    WHEN 'ESTORNO'.

      PERFORM marcar_estorno

        USING 'X'

        CHANGING itab_zycbt226.

    WHEN 'NOOP'.

      PERFORM marcar_estorno

        USING ' '

        CHANGING itab_zycbt226.

    WHEN 'MOVE_DATA'.

      PERFORM adicionar_disponibilidade.

  ENDCASE.

ENDFORM.

FORM mover_dados

  USING    p_itab_origem  TYPE t_t_zycbt226

           p_destino      TYPE /pws/zycbt238-destino

  CHANGING p_itab_destino TYPE t_t_disponibilidade.

  DATA:

    v_codaux1 TYPE /pws/zygle316-codaux1,

    v_codaux2 TYPE /pws/zygle316-codaux2,

    v_codaux3 TYPE /pws/zygle316-codaux3,

    v_indice   TYPE sy-index,

    v_existe   TYPE char1,

    wa_origem  LIKE LINE OF p_itab_origem,

    wa_destino LIKE LINE OF p_itab_destino.

  FIELD-SYMBOLS:

    <fs_origem> LIKE LINE OF p_itab_origem.

  LOOP AT p_itab_origem ASSIGNING <fs_origem> WHERE mark EQ 'X'.

    CHECK <fs_origem>-status EQ c_contabilizado.

    LOOP AT p_itab_destino INTO wa_destino

      WHERE nrseq = <fs_origem>-nrseq.

      READ TABLE itab_disp_ant

        WITH KEY nrseq   = wa_destino-nrseq

                 destino = wa_destino-destino

                 dtdisp  = wa_destino-dtdisp

        TRANSPORTING NO FIELDS.

      IF sy-subrc NE 0.

        v_existe = 'X'.

      ENDIF.

    ENDLOOP.

    READ TABLE itab_zycbt007 INTO wa_zycbt007

      WITH KEY bukrs = <fs_origem>-bukrs.

    CLEAR:

      wa_destino.

    wa_destino-nrseq = <fs_origem>-nrseq.

    wa_destino-destino = p_destino.

    wa_destino-operacao = c_novo.

    v_codaux3 = p_destino.

    v_codaux2 = <fs_origem>-waers.

    v_codaux1 = <fs_origem>-bco_me.

    SHIFT v_codaux1 LEFT DELETING LEADING '0'.

    IF wa_zycbt007-cont_disp EQ 'X'.

      PERFORM busca_conta_contabil

        USING c_debito

              <fs_origem>-bukrs

              'FBK'

              v_codaux1

              v_codaux2

              v_codaux3

        CHANGING wa_destino-conta_contabil.

    ELSE.

      wa_destino-conta_contabil = <fs_origem>-conta_contabil.

    ENDIF.

    IF wa_destino-conta_contabil EQ <fs_origem>-conta_contabil AND

       wa_zycbt007-cont_disp     EQ 'X'.

      PERFORM message_store USING

        '/PWS/ZYCBM'

        'E'

        text-m38

        text-m39

        text-m40

        text-m41

        '061'.

      CONTINUE.

    ENDIF.

    IF v_existe NE 'X'.

      APPEND wa_destino TO p_itab_destino.

    ENDIF.

    <fs_origem>-mark = space.

  ENDLOOP.

ENDFORM.

FORM adicionar_disponibilidade.

  DATA:

    wa_disp     LIKE LINE OF itab_disp_30,

    wa_zycbt226 LIKE LINE OF itab_zycbt226,

    v_total     TYPE /pws/zycbe238-vldisp,

    v_answer(1) TYPE c,

    v_ok(1)     TYPE c,

    itab_modo   TYPE STANDARD TABLE OF spopli,

    wa_modo     LIKE LINE OF itab_modo.

  LOOP AT itab_zycbt226 INTO wa_zycbt226

    WHERE mark = 'X'.

    CLEAR:

      v_total.

    LOOP AT itab_disp_30 INTO wa_disp

      WHERE nrseq = wa_zycbt226-nrseq.

      v_total = v_total + wa_disp-vldisp.

    ENDLOOP.

    LOOP AT itab_disp_70 INTO wa_disp

      WHERE nrseq = wa_zycbt226-nrseq.

      v_total = v_total + wa_disp-vldisp.

    ENDLOOP.

    IF v_total GE wa_zycbt226-vlr_exterior.

      v_ok = 'X'.

    ENDIF.

  ENDLOOP.

  IF sy-subrc NE 0.

    MESSAGE w061 WITH

      'Por favor, selecionar pelo menos uma fatura.'(m01).

    EXIT.

  ENDIF.

  IF v_ok EQ 'X'.

    MESSAGE w061 WITH

      'Não existe saldo suficiente para disponibilizar.'(m21).

    EXIT.

  ENDIF.

  wa_modo-selflag = '1'.

  wa_modo-varoption = '30%'(031).

  APPEND wa_modo TO itab_modo.

  wa_modo-selflag = '2'.

  wa_modo-varoption = '70%'(032).

  APPEND wa_modo TO itab_modo.

  SORT itab_modo BY selflag ASCENDING.

  CALL FUNCTION 'POPUP_TO_DECIDE_LIST'

       EXPORTING

            textline1          = 'Selecione o destino da'(m18)

            textline2          = 'disponibilidade:'(m19)

            titel              = 'Valores Mantidos no Exterior'(m20)

       IMPORTING

            answer             = v_answer

       TABLES

            t_spopli           = itab_modo

       EXCEPTIONS

            not_enough_answers = 1

            too_much_answers   = 2

            too_much_marks     = 3

            OTHERS             = 4.

  IF sy-subrc = 0.

    CASE v_answer.

      WHEN '1'.

        PERFORM mover_dados

          USING    itab_zycbt226

                   c_30

          CHANGING itab_disp_30.

        ts_principal-activetab = 'TAB100_30'.

      WHEN '2'.

        PERFORM mover_dados

          USING    itab_zycbt226

                   c_70

          CHANGING itab_disp_70.

        PERFORM adicionar_dados_contrato

          USING itab_disp_70.

        ts_principal-activetab = 'TAB100_70'.

        ts_70-activetab = 'TAB130_DISP'.

    ENDCASE.

  ENDIF.

ENDFORM.

FORM busca_conta_contabil

  USING p_tipo     TYPE char1

        p_bukrs    TYPE /pws/zyglt316-bukrs

        p_chave    TYPE /pws/zyglt316-ktosl

        p_codaux1  TYPE /pws/zygle316-codaux1

        p_codaux2  TYPE /pws/zygle316-codaux2

        p_codaux3  TYPE /pws/zygle316-codaux3

  CHANGING p_conta.

  DATA: itab_zyglt316 TYPE STANDARD TABLE OF /pws/zyglt316,

        wa_zyglt316 LIKE LINE OF itab_zyglt316.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

            bukrs           = p_bukrs

            ktosl           = p_chave

            codaux1         = p_codaux1

            codaux2         = p_codaux2

            codaux3         = p_codaux3

       TABLES

            account         = itab_zyglt316

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

            OTHERS          = 3.

  READ TABLE itab_zyglt316 INDEX 1 INTO wa_zyglt316.

  IF sy-subrc = 0.

    CASE p_tipo.

      WHEN c_debito.

        MOVE wa_zyglt316-konts TO p_conta.

      WHEN c_credito.

        MOVE wa_zyglt316-konth TO p_conta.

    ENDCASE.

  ENDIF.

ENDFORM.

FORM adicionar_dados_contrato

  USING p_itab_disp TYPE t_t_disponibilidade.

  DATA:

    v_indice    TYPE sy-index,

    wa_disp     LIKE LINE OF p_itab_disp,

    wa_contrato LIKE LINE OF itab_contrato.

  FIELD-SYMBOLS:

    <fs_disp> LIKE LINE OF p_itab_disp.

  DESCRIBE TABLE p_itab_disp LINES v_indice.

  LOOP AT p_itab_disp ASSIGNING <fs_disp>

    WHERE vldisp EQ 0.

    DO 2 TIMES.

      IF sy-index EQ 1.

        wa_contrato-tpcontr = c_tp1.

      ELSE.

        wa_contrato-tpcontr = c_tp4.

      ENDIF.

      MOVE:

        c_novo            TO wa_contrato-operacao,

        <fs_disp>-nrseq   TO wa_contrato-nrseq,

        <fs_disp>-destino TO wa_contrato-destino,

        v_indice          TO <fs_disp>-indice,

        v_indice          TO wa_contrato-indice.

      APPEND wa_contrato TO itab_contrato.

    ENDDO.

    v_indice = v_indice + 1.

  ENDLOOP.

ENDFORM.

FORM preenche_tc_contrato

  USING p_itab_disp     TYPE t_t_disponibilidade

        p_itab_contrato TYPE t_t_contrato

        p_tc            TYPE cxtab_control.

  DATA:

    wa_disp     LIKE LINE OF p_itab_disp,

    wa_zycbt226 LIKE LINE OF itab_zycbt226,

    wa_contrato LIKE LINE OF p_itab_contrato.

  FIELD-SYMBOLS:

    <fs_contrato> LIKE LINE OF p_itab_contrato.

  READ TABLE p_itab_contrato INDEX p_tc-current_line

    INTO wa_contrato.

  IF sy-subrc EQ 0.

    READ TABLE itab_zycbt226

      INTO wa_zycbt226

      WITH KEY nrseq = wa_contrato-nrseq.

    READ TABLE p_itab_disp INTO wa_disp

      WITH KEY indice = wa_contrato-indice.

    IF sy-subrc EQ 0.

      MOVE:

        wa_disp-dtdisp TO wa_contrato-dtdisp,

        wa_disp-vldisp TO /pws/zycbe238-vldisp.

    ENDIF.

    MOVE-CORRESPONDING:

      wa_contrato TO /pws/zycbe239,

      wa_zycbt226 TO /pws/zycbe226.

  ENDIF.

ENDFORM.

FORM user_command_0120.

  CHECK ts_principal-activetab EQ c_tela_disp_30.

  DATA: v_linhas TYPE sy-tabix.

  CASE ok_code.

    WHEN 'MARK'.

      PERFORM preenche_campo_itab

        USING 'MARK'

              'X'

        CHANGING itab_disp_30.

    WHEN 'UNMARK'.

      PERFORM preenche_campo_itab

        USING 'MARK'

              ' '

        CHANGING itab_disp_30.

    WHEN 'DEL_LINE'.

      PERFORM elimina_linha_marcada

        CHANGING itab_disp_30.

    WHEN 'P--' OR 'P-' OR 'P++' OR 'P+'.

      DESCRIBE TABLE itab_disp_30 LINES v_linhas.

      PERFORM paginacao_tc USING    v_linhas

                           CHANGING tc_30-top_line.

    WHEN 'ESTORNO'.

      PERFORM marcar_estorno

        USING 'X'

        CHANGING itab_disp_30.

    WHEN 'NOOP'.

      PERFORM marcar_estorno

        USING ' '

        CHANGING itab_disp_30.

  ENDCASE.

ENDFORM.

FORM salvar_dados_disp

  CHANGING p_disp TYPE t_disponibilidade.

  DATA:

    v_msg TYPE t_mensagem-msg.

  CHECK NOT p_disp-operacao IS INITIAL.

  CASE p_disp-operacao.

    WHEN c_novo.

      INSERT INTO /pws/zycbt238 VALUES p_disp.

    WHEN c_alterado.

      UPDATE /pws/zycbt238 FROM p_disp.

    WHEN c_excluido.

      DELETE FROM /pws/zycbt238

        WHERE nrseq   = p_disp-nrseq

          AND destino = p_disp-destino

          AND dtdisp  = p_disp-dtdisp.

  ENDCASE.

  CONCATENATE p_disp-nrseq '-' p_disp-destino '%' INTO v_msg.

  SHIFT v_msg LEFT DELETING LEADING '0'.

  IF sy-subrc EQ 0.

    CASE p_disp-operacao.

      WHEN c_novo.

        APPEND p_disp TO itab_disp_ant.

        PERFORM message_store USING

          '/PWS/ZYCBM'

          'I'

          'Disponibilidade'

          v_msg

          'gravada com sucesso.'(m37)

          space

          '061'.

      WHEN c_alterado.

        MODIFY itab_disp_ant FROM p_disp

          TRANSPORTING doc_comp doc_cont doc_desm

          WHERE nrseq   = p_disp-nrseq

            AND destino = p_disp-destino

            AND dtdisp  = p_disp-dtdisp.

      WHEN c_excluido.

        DELETE itab_disp_ant

          WHERE nrseq   = p_disp-nrseq

            AND destino = p_disp-destino

            AND dtdisp  = p_disp-dtdisp.

    ENDCASE.

  ENDIF.

  CLEAR:

    p_disp-operacao.

ENDFORM.

FORM salvar_dados_contrato

  CHANGING p_contrato TYPE t_contrato.

  DATA:

    v_msg TYPE t_mensagem-msg,

    v_msg2 TYPE t_mensagem-msg.

  CHECK NOT p_contrato-operacao IS INITIAL.

  CASE p_contrato-operacao.

    WHEN c_novo.

      INSERT INTO /pws/zycbt239 VALUES p_contrato.

    WHEN c_alterado.

      UPDATE /pws/zycbt239 FROM p_contrato.

    WHEN c_excluido.

      DELETE FROM /pws/zycbt239

        WHERE nrseq   = p_contrato-nrseq

          AND destino = p_contrato-destino

          AND dtdisp  = p_contrato-dtdisp.

  ENDCASE.

  IF sy-subrc EQ 0.

    CASE p_contrato-operacao.

      WHEN c_novo.

        APPEND p_contrato TO itab_contrato_ant.

        v_msg = p_contrato-nrseq.

        SHIFT v_msg LEFT DELETING LEADING '0'.

        CONCATENATE 'para a disponibilidade'(m35)

                    v_msg

               INTO v_msg

          SEPARATED BY space.

        CONCATENATE 'Dados do contrato'(m34)

                     p_contrato-tpcontr

                     v_msg2

               INTO v_msg2

          SEPARATED BY space.

        PERFORM message_store USING

          '/PWS/ZYCBM'

          'I'

          v_msg2

          v_msg

          'gravados com sucesso.'(m36)

          space

          '061'.

      WHEN c_alterado.

        MODIFY itab_contrato_ant FROM p_contrato

          TRANSPORTING bco_fech nrcontr dtcontr dtfech dtliquid dtswift

                       praca instituicao corret codnatoper codfrmentrega

                       codmodtransa codnorma modalidade frmreceb

                       doc_cont doc_comp waers

          WHERE tpcontr = p_contrato-tpcontr

            AND nrseq   = p_contrato-nrseq

            AND destino = p_contrato-destino

            AND dtdisp  = p_contrato-dtdisp.

      WHEN c_excluido.

        DELETE itab_contrato_ant

          WHERE nrseq   = p_contrato-nrseq

            AND destino = p_contrato-destino

            AND dtdisp  = p_contrato-dtdisp.

    ENDCASE.

  ENDIF.

  CLEAR:

    p_contrato-operacao.

ENDFORM.

FORM atualiza_tc_contrato

  USING p_itab_contrato TYPE t_t_contrato

        p_tc            TYPE cxtab_control.

  DATA:

    wa_contrato LIKE LINE OF p_itab_contrato.

  MOVE-CORRESPONDING:

    /pws/zycbe239 TO wa_contrato.

  READ TABLE p_itab_contrato INTO wa_contrato INDEX p_tc-current_line

    TRANSPORTING bco_mi bco_fech kursf dtcontr

                 dtfech dtdebito dtliquid dtswift indice vlordem_mi

                 operacao.

  PERFORM verifica_alteracao_contrato

    CHANGING wa_contrato.

  MODIFY p_itab_contrato FROM wa_contrato INDEX p_tc-current_line.

ENDFORM.

FORM define_operacao_disp

  USING    p_tc        TYPE cxtab_control

  CHANGING p_itab_disp TYPE t_t_disponibilidade.

  DATA:

    wa_disp LIKE LINE OF p_itab_disp.

  FIELD-SYMBOLS:

    <fs_disp> LIKE LINE OF p_itab_disp.

  READ TABLE p_itab_disp ASSIGNING <fs_disp>

    INDEX p_tc-current_line.

  IF sy-subrc EQ 0.

    CHECK <fs_disp>-operacao NE c_excluido.

    READ TABLE itab_disp_ant INTO wa_disp

      WITH KEY nrseq   = <fs_disp>-nrseq

               destino = <fs_disp>-destino

               dtdisp  = <fs_disp>-dtdisp.

    IF sy-subrc EQ 0.

      IF <fs_disp> EQ wa_disp.

        CLEAR:

          <fs_disp>-operacao.

      ENDIF.

    ELSE.

      <fs_disp>-operacao = c_novo.

    ENDIF.

  ENDIF.

ENDFORM.

FORM atualiza_icone

  USING    p_operacao TYPE t_disponibilidade-operacao

  CHANGING p_icone.

  CLEAR v_icone.

  CASE p_operacao.

    WHEN space.

      p_icone = icon_space.

    WHEN c_excluido.

      p_icone = icon_delete.

    WHEN c_novo.

      p_icone = icon_create.

    WHEN c_alterado.

      p_icone = icon_change.

  ENDCASE.

ENDFORM.

FORM processa_disponibilidade

  USING p_itab_disp     TYPE t_t_disponibilidade.

  DATA:

    v_tabix TYPE sy-tabix.

  FIELD-SYMBOLS:

    <fs_disp> LIKE LINE OF p_itab_disp.

  CHECK <fs_op> IS ASSIGNED.

  READ TABLE itab_zycbt007 INTO wa_zycbt007

    WITH KEY bukrs = <fs_op>-bukrs.

  READ TABLE itab_zyglt009 INTO wa_zyglt009

    WITH KEY bukrs = <fs_op>-bukrs.

  LOOP AT p_itab_disp ASSIGNING <fs_disp>

    WHERE nrseq = <fs_op>-nrseq.

    wa_controle-msg_cnt = wa_controle-msg_cnt + 1.

    IF <fs_disp>-destino EQ c_70.

      PERFORM processa_contrato

        USING itab_contrato

              <fs_disp>.

    ENDIF.

    IF wa_zycbt007-cont_disp = 'X'.

      PERFORM estorno_disponibilidade

        CHANGING <fs_disp>.

    ENDIF.

    IF wa_zycbt007-cont_disp = 'X'.

      PERFORM contabiliza_disponibilidade

        CHANGING <fs_disp>.

      IF wa_zyglt009-comp_aut_cc = 'X'.

        PERFORM desmembramento_disponibilidade

          CHANGING <fs_disp>.

        PERFORM clearing_disponibilidade

          CHANGING <fs_disp>.

      ENDIF.

    ENDIF.

    PERFORM atualizar_saldos

      USING <fs_disp>.

    PERFORM salvar_dados_disp

      CHANGING <fs_disp>.

  ENDLOOP.

  LOOP AT p_itab_disp ASSIGNING <fs_disp>

    WHERE nrseq = <fs_op>-nrseq.

    v_tabix = sy-tabix.

    READ TABLE itab_disp_ant

      WITH KEY nrseq   = <fs_disp>-nrseq

               destino = <fs_disp>-destino

               dtdisp  = <fs_disp>-dtdisp

      TRANSPORTING NO FIELDS.

    IF sy-subrc NE 0.

      DELETE p_itab_disp INDEX v_tabix.

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM processa_contrato

  USING p_itab_contrato TYPE t_t_contrato

        p_disp LIKE LINE OF itab_disp_70.

  DATA:

    v_tabix TYPE sy-tabix.

  FIELD-SYMBOLS:

    <fs_contrato> LIKE LINE OF p_itab_contrato.

  CHECK <fs_op> IS ASSIGNED.

  READ TABLE itab_zycbt007 INTO wa_zycbt007

    WITH KEY bukrs = <fs_op>-bukrs.

  LOOP AT p_itab_contrato ASSIGNING <fs_contrato>

    WHERE nrseq    = p_disp-nrseq

      AND destino  = p_disp-destino

      AND dtdisp   = p_disp-dtdisp

      AND operacao = c_excluido.

    PERFORM estorno_contrato

      CHANGING <fs_contrato>.

  ENDLOOP.

  LOOP AT p_itab_contrato ASSIGNING <fs_contrato>

    WHERE nrseq    = p_disp-nrseq

      AND destino  = p_disp-destino

      AND dtdisp   = p_disp-dtdisp.

    PERFORM contabiliza_contrato

      USING p_disp

      CHANGING <fs_contrato>.

  ENDLOOP.

  PERFORM clearing_contrato

    USING p_disp

          p_itab_contrato.

  LOOP AT p_itab_contrato ASSIGNING <fs_contrato>

    WHERE nrseq   = p_disp-nrseq

      AND destino = p_disp-destino

      AND dtdisp  = p_disp-dtdisp.

    v_tabix = sy-tabix.

    PERFORM salvar_dados_contrato

      CHANGING <fs_contrato>.

    READ TABLE itab_contrato_ant

      WITH KEY tpcontr = <fs_contrato>-tpcontr

               nrseq   = <fs_contrato>-nrseq

               destino = <fs_contrato>-destino

               dtdisp  = <fs_contrato>-dtdisp

      TRANSPORTING NO FIELDS.

    IF sy-subrc NE 0.

      DELETE p_itab_contrato INDEX v_tabix.

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM preenche_campo_itab

  USING p_campo   TYPE any

        p_valor   TYPE any

  CHANGING p_itab TYPE INDEX TABLE.

  FIELD-SYMBOLS:

    <fs_campo>    TYPE ANY,

    <fs_wa_itab>  TYPE ANY.

  LOOP AT p_itab ASSIGNING <fs_wa_itab>.

    ASSIGN COMPONENT p_campo OF STRUCTURE <fs_wa_itab> TO <fs_campo>.

    CHECK <fs_campo> IS ASSIGNED.

    <fs_campo> = p_valor.

    UNASSIGN <fs_campo>.

  ENDLOOP.

ENDFORM.

FORM marcar_estorno_contrato

  USING value(p_valor)

        p_itab_disp        TYPE t_t_disponibilidade

  CHANGING p_itab_contrato TYPE t_t_contrato.

  DATA:

    wa_disp LIKE LINE OF p_itab_disp.

  FIELD-SYMBOLS:

    <fs_contrato> LIKE LINE OF p_itab_contrato.

  LOOP AT p_itab_disp INTO wa_disp

    WHERE mark = 'X'.

    LOOP AT p_itab_contrato ASSIGNING <fs_contrato>

      WHERE nrseq   = wa_disp-nrseq

        AND destino = wa_disp-destino

        AND dtdisp  = wa_disp-dtdisp.

      <fs_contrato>-mark = 'X'.

    ENDLOOP.

  ENDLOOP.

  PERFORM marcar_estorno

    USING p_valor

          p_itab_contrato.

ENDFORM.

FORM elimina_linha_marcada

  CHANGING p_itab TYPE INDEX TABLE.

  DATA:

    v_tabix TYPE sy-tabix.

  FIELD-SYMBOLS:

    <fs_line>   TYPE ANY,

    <fs_record> TYPE ANY.

  LOOP AT p_itab ASSIGNING <fs_line>.

    v_tabix = sy-tabix.

    ASSIGN COMPONENT 'MARK' OF STRUCTURE <fs_line> TO <fs_record>.

    CHECK <fs_record> IS ASSIGNED.

    CHECK <fs_record> = 'X'.

    UNASSIGN <fs_record>.

    ASSIGN COMPONENT 'OPERACAO' OF STRUCTURE <fs_line> TO <fs_record>.

    CHECK <fs_record> IS ASSIGNED.

    CHECK <fs_record> EQ c_novo.

    UNASSIGN <fs_record>.

    DELETE p_itab INDEX v_tabix.

  ENDLOOP.

ENDFORM.

FORM elimina_linhas_contrato

  USING p_itab_disp TYPE t_t_disponibilidade

  CHANGING p_itab_contrato TYPE t_t_contrato.

  FIELD-SYMBOLS:

    <fs_contrato>   LIKE LINE OF p_itab_contrato.

  LOOP AT p_itab_contrato ASSIGNING <fs_contrato>.

    READ TABLE p_itab_disp

      WITH KEY nrseq   = <fs_contrato>-nrseq

               destino = <fs_contrato>-destino

               dtdisp  = <fs_contrato>-dtdisp

      TRANSPORTING NO FIELDS.

    IF sy-subrc NE 0.

      <fs_contrato>-mark = 'X'.

    ENDIF.

  ENDLOOP.

  PERFORM elimina_linha_marcada

    CHANGING p_itab_contrato.

ENDFORM.

FORM leave_to_transaction

  USING p_transacao.

  DATA:

    wa_zycbt226 LIKE LINE OF itab_zycbt226,

    v_param(20) TYPE c,

    v_index(3) TYPE n.

  CLEAR:

    v_index.

  LOOP AT itab_zycbt226 INTO wa_zycbt226.

    CONCATENATE c_parametro v_index INTO v_param.

    SET PARAMETER ID v_param FIELD wa_zycbt226-nrseq.

    v_index = v_index + 1.

  ENDLOOP.

  SET PARAMETER ID 'ZYCB034-QTD' FIELD v_index.

  SET PARAMETER ID 'UCOMM' FIELD 'CRET'.

  LEAVE TO TRANSACTION p_transacao AND SKIP FIRST SCREEN.

ENDFORM.

FORM contabiliza_contrato

  USING p_disp LIKE LINE OF itab_disp_70

  CHANGING p_contrato LIKE LINE OF itab_contrato.

  DATA:

    v_count     TYPE t_mensagem-msg,

    v_msg       TYPE t_mensagem-msg,

    v_cpochv    TYPE /pws/zycbe033-cpochv,

    wa_zycbt011 TYPE /pws/zycbe011,

    wa_zycbt034 LIKE LINE OF itab_zycbt034,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    wa_mensagem TYPE t_mensagem.

  CHECK p_contrato-doc_cont IS INITIAL.

  CHECK p_contrato-operacao NE c_excluido.

  PERFORM limpa_dados_bi.

  CONCATENATE <fs_op>-bukrs

              p_contrato-tpcontr

              p_contrato-nrseq

              p_contrato-destino

              p_contrato-dtdisp

         INTO v_cpochv.

  CASE <fs_op>-tipo_op.

    WHEN 'E'.

      PERFORM busca_parametros

        USING '029'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '029'

              'TRE'

              p_contrato-txtlanc

        CHANGING wa_zycbe033.

    WHEN 'P'.

      PERFORM busca_parametros

        USING '030'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '030'

              'TRE'

              p_contrato-txtlanc

        CHANGING wa_zycbe033.

  ENDCASE.

  PERFORM preenche_f02_contrato

    USING p_disp

          p_contrato

          wa_zycbt011

          v_cpochv

    CHANGING wa_zycbe033.

  APPEND wa_zycbe033 TO itab_zycbe033.

  IF itab_zycbt034[] IS INITIAL.

    PERFORM executa_f02.

    PERFORM verifica_contabilizacao

      USING c_f02 c_zycbt239 v_cpochv

            'Lançamento da Provisão do contrato'(m22)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      p_contrato-doc_cont = wa_mensagem-belnr.

      IF p_contrato-operacao IS INITIAL.

        p_contrato-operacao = c_alterado.

      ENDIF.

      v_msg = p_contrato-nrseq.

      SHIFT v_msg LEFT DELETING LEADING '0'.

      CONCATENATE v_msg p_contrato-tpcontr

             INTO v_msg

        SEPARATED BY space.

      CONCATENATE wa_controle-msg_cnt '.' INTO v_count.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              v_count

              wa_mensagem-msg

              v_msg

              'realizada com sucesso.'(m24)

              '061'.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg_doc

              space

              space

              space

              '061'.

      PERFORM limpa_dados_bi.

    ELSE.

      PERFORM store_erros

        USING itab_zycbt034.

    ENDIF.

  ELSE.

    PERFORM store_erros

      USING itab_zycbt034.

  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      TYPE t_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-tpmsg = c_sucesso.

    p_wa_mensagem-belnr = <fs_zycbt032>-belnr.

    p_wa_mensagem-msg   = p_msg.

    p_wa_mensagem-msg_doc = <fs_zycbt032>-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.

  ELSE.

    LOOP AT itab_zycbt032 ASSIGNING <fs_zycbt032>.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              <fs_zycbt032>-tpmsg

              <fs_zycbt032>-msg

              space

              space

              space

             '061'.

    ENDLOOP.

    FREE p_wa_mensagem.

  ENDIF.

ENDFORM.

FORM preenche_f02_contrato

  USING p_disp     LIKE LINE OF itab_disp_70

        p_contrato LIKE LINE OF itab_contrato

        p_zycbt011 TYPE /pws/zycbe011

        p_cpochv   TYPE /pws/zycbe033-cpochv

  CHANGING p_zycbe033 LIKE LINE OF itab_zycbe033.

  DATA:

    v_codaux TYPE /pws/zygle316-codaux1.

  p_zycbe033-tcode  = c_f02.

  p_zycbe033-tabela = c_zycbt239.

  p_zycbe033-cpochv = p_cpochv.

  p_zycbe033-bukrs = <fs_op>-bukrs.

  p_zycbe033-budat = p_contrato-dtdebito.

  p_zycbe033-bldat = p_zycbe033-budat.

  p_zycbe033-bktxt = p_contrato-txtlanc.

  p_zycbe033-waers   = <fs_op>-waers.

  p_zycbe033-gsber   = <fs_op>-gsberf.

  p_zycbe033-werks   = <fs_op>-werks.

  p_zycbe033-brnch = <fs_op>-j_1bbranch.

  p_zycbe033-wrbtr = p_disp-vldisp.

  p_zycbe033-kursf = p_contrato-kursf.

  v_codaux = p_contrato-bco_mi.

  SHIFT v_codaux LEFT DELETING LEADING '0'.

  CASE p_contrato-tpcontr.

    WHEN c_tp1.

      PERFORM busca_conta_contabil

        USING c_debito

              <fs_op>-bukrs

              'FBK'

              v_codaux

              space

              space

        CHANGING p_zycbe033-d_newko.

      p_zycbe033-c_newko = p_disp-conta_contabil.

    WHEN c_tp4.

      p_zycbe033-d_newko = p_disp-conta_contabil.

      PERFORM busca_conta_contabil

        USING c_debito

              <fs_op>-bukrs

              'FBK'

              v_codaux

              space

              space

        CHANGING p_zycbe033-c_newko.

  ENDCASE.

  PERFORM verifica_campo_vazio USING p_zycbe033-budat

                                     'DTCREDEXT'

                                     'Data do Documento'(005).

  PERFORM verifica_campo_vazio USING p_zycbe033-bldat

                                     'DTLANCTO'

                                     'Data de Lançamento'(004).

  PERFORM verifica_campo_vazio USING p_zycbe033-bukrs

                                     'BUKRS'

                                     'Empresa'(006).

  PERFORM verifica_campo_vazio USING p_zycbe033-waers

                                     'WAERS'

                                     'Moeda'(010).

  PERFORM verifica_campo_vazio USING p_zycbe033-kursf

                                     'KURSF'

                                     'Taxa de Câmbio'(019).

  PERFORM verifica_campo_vazio USING p_zycbe033-d_newko

                                     'NEWKO'

                                     'Conta Débito'(035).

ENDFORM.

FORM busca_parametros

  USING p_evento TYPE /pws/zycbt011-codeven

        p_modulo

  CHANGING p_zycbt011 TYPE /pws/zycbe011

           p_zycbe033 LIKE LINE OF itab_zycbe033.

  SELECT SINGLE * FROM /pws/zycbt011 INTO p_zycbt011

    WHERE codeven = p_evento

      AND codmod  = p_modulo.

  p_zycbe033-blart   = p_zycbt011-blart.

  p_zycbe033-agums   = p_zycbt011-agums.

  p_zycbe033-augtx   = p_zycbt011-txtdesc.

  p_zycbe033-d_sgtxt = p_zycbt011-txtdesc.

  p_zycbe033-agkoa   = 'S'.

ENDFORM.

FORM executa_f02.

  CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_02'

       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.

  IF sy-subrc <> 0.

    EXIT.

  ENDIF.

ENDFORM.

FORM busca_parametros_321

  USING p_evento

        p_chave

        p_txtlanc     TYPE /pws/zycbe239-txtlanc

  CHANGING p_zycbe033 LIKE LINE OF itab_zycbe033.

  DATA:

    v_hora(8) TYPE c,

    itab_zyglt321 TYPE STANDARD TABLE OF /pws/zyglt321,

    wa_zyglt321 LIKE LINE OF itab_zyglt321.

  SELECT * FROM /pws/zyglt321

    INTO TABLE itab_zyglt321

    WHERE ktosl   = p_chave  AND

          codeven = p_evento.

  LOOP AT itab_zyglt321 INTO wa_zyglt321.

    CASE wa_zyglt321-cpor3.

      WHEN 'SGTXT'.

        IF p_txtlanc IS INITIAL.

          CASE wa_zyglt321-cpocb.

            WHEN 'NRINVOIC'.

              p_zycbe033-d_sgtxt = <fs_op>-nrinvoic.

              p_zycbe033-c_sgtxt = <fs_op>-nrinvoic.

              p_zycbe033-augtx   = <fs_op>-nrinvoic.

            WHEN 'NREMB'.

              p_zycbe033-d_sgtxt = <fs_op>-nremb.

              p_zycbe033-c_sgtxt = <fs_op>-nremb.

              p_zycbe033-augtx   = <fs_op>-nremb.

            WHEN 'NRSEQ'.

              p_zycbe033-d_sgtxt = <fs_op>-nrseq.

              p_zycbe033-c_sgtxt = <fs_op>-nrseq.

              p_zycbe033-augtx   = <fs_op>-nrseq.

            WHEN 'OBS'.

              p_zycbe033-d_sgtxt = <fs_op>-obs.

              p_zycbe033-c_sgtxt = <fs_op>-obs.

              p_zycbe033-augtx   = <fs_op>-obs.

            WHEN 'REF_OP'.

              p_zycbe033-d_sgtxt = <fs_op>-ref_op.

              p_zycbe033-c_sgtxt = <fs_op>-ref_op.

              p_zycbe033-augtx   = <fs_op>-ref_op.

            WHEN OTHERS.

              CLEAR:

                p_zycbe033-d_sgtxt,

                p_zycbe033-c_sgtxt,

                p_zycbe033-augtx.

          ENDCASE.

        ELSE.

          p_zycbe033-d_sgtxt = p_txtlanc.

          p_zycbe033-c_sgtxt = p_txtlanc.

          p_zycbe033-augtx   = p_txtlanc.

        ENDIF.

      WHEN 'XBLNR'.

        v_hora = sy-uzeit.

        CONCATENATE v_hora+2(2)

                    ':'

                    v_hora+4(2)

               INTO v_hora.

        CASE wa_zyglt321-cpocb.

          WHEN 'NRINVOIC'.

            p_zycbe033-xblnr = <fs_op>-nrinvoic.

          WHEN 'NRINVOIC+MS'.

            CONCATENATE <fs_op>-nrinvoic

                        v_hora

                   INTO p_zycbe033-xblnr.

          WHEN 'NREMB'.

            p_zycbe033-xblnr = <fs_op>-nremb.

          WHEN 'NREMB+MS'.

            CONCATENATE <fs_op>-nremb

                        v_hora

                   INTO p_zycbe033-xblnr.

          WHEN 'NRSEQ'.

            p_zycbe033-xblnr = <fs_op>-nrseq.

          WHEN 'NRSEQ+MS'.

            CONCATENATE <fs_op>-nrseq

                        v_hora

                   INTO p_zycbe033-xblnr.

          WHEN 'REF_OP'.

            p_zycbe033-xblnr = <fs_op>-ref_op.

          WHEN 'REF_OP+MS'.

            CONCATENATE <fs_op>-ref_op

                        v_hora

                   INTO p_zycbe033-xblnr.

        ENDCASE.

      WHEN 'ZFBDT'.

        CASE wa_zyglt321-cpocb.

          WHEN 'DTINCL'.

            p_zycbe033-zfbdt = sy-datum.

          WHEN 'DTLANCTO'.

            p_zycbe033-zfbdt = <fs_op>-dtlancto.

          WHEN 'DTLIMITE'.

            p_zycbe033-zfbdt = <fs_op>-dtlimite.

        ENDCASE.

      WHEN 'VALUT'.

        CASE wa_zyglt321-cpocb.

          WHEN 'DTINCL'.

            p_zycbe033-d_valut = sy-datum.

            p_zycbe033-c_valut = sy-datum.

          WHEN 'DTLIMITE'.

            p_zycbe033-d_valut = <fs_op>-dtlimite.

            p_zycbe033-c_valut = <fs_op>-dtlimite.

        ENDCASE.

      WHEN 'ZUONR'.

        CASE wa_zyglt321-cpocb.

          WHEN 'NRSEQ'.

            p_zycbe033-d_zuonr = <fs_op>-nrseq.

            p_zycbe033-c_zuonr = <fs_op>-nrseq.

          WHEN 'NRINVOIC'.

            p_zycbe033-d_zuonr = <fs_op>-nrinvoic.

            p_zycbe033-c_zuonr = <fs_op>-nrinvoic.

          WHEN 'NREMB'.

            p_zycbe033-d_zuonr = <fs_op>-nremb.

            p_zycbe033-c_zuonr = <fs_op>-nremb.

        ENDCASE.

    ENDCASE.

  ENDLOOP.

ENDFORM.

FORM store_erros

  USING p_itab_zycbt034 TYPE t_t_zycbt034.

  DATA:

    wa_zycbt034 LIKE LINE OF p_itab_zycbt034.

  LOOP AT p_itab_zycbt034 INTO wa_zycbt034.

    PERFORM message_store

      USING '/PWS/ZYCBM'

            'I'

            'ERRO:'

            wa_zycbt034-campo

            '-'

            wa_zycbt034-descricao

            '061'.

  ENDLOOP.

ENDFORM.

FORM clearing_contrato

  USING p_disp LIKE LINE OF itab_disp_70

        p_itab_contrato TYPE t_t_contrato.

  DATA:

    v_count     TYPE t_mensagem-msg,

    v_msg       TYPE t_mensagem-msg,

    wa_contrato LIKE LINE OF p_itab_contrato,

    v_cpochv    TYPE /pws/zycbe033-cpochv,

    wa_zycbt011 TYPE /pws/zycbe011,

    wa_zycbt034 LIKE LINE OF itab_zycbt034,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    wa_mensagem TYPE t_mensagem.

  FIELD-SYMBOLS:

    <fs_contrato> TYPE t_contrato.

  READ TABLE p_itab_contrato

    WITH KEY nrseq    = p_disp-nrseq

             destino  = p_disp-destino

             dtdisp   = p_disp-dtdisp

             doc_cont = space

    TRANSPORTING NO FIELDS.

  CHECK sy-subrc NE 0.

  LOOP AT p_itab_contrato INTO wa_contrato

    WHERE nrseq    = p_disp-nrseq

      AND destino  = p_disp-destino

      AND dtdisp   = p_disp-dtdisp

      AND doc_comp EQ space.

  ENDLOOP.

  CHECK sy-subrc EQ 0.

  CLEAR wa_contrato.

  PERFORM limpa_dados_bi.

  CONCATENATE <fs_op>-bukrs

              p_disp-nrseq

              p_disp-destino

              p_disp-dtdisp

         INTO v_cpochv.

  CASE <fs_op>-tipo_op.

    WHEN c_embarque_exportacao.

      PERFORM busca_parametros

        USING '029'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '029'

              'TRE'

              space

        CHANGING wa_zycbe033.

    WHEN c_pagamento_antecipado.

      PERFORM busca_parametros

        USING '030'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '030'

              'TRE'

              space

        CHANGING wa_zycbe033.

  ENDCASE.

  PERFORM preenche_f30_clearing_contrato

    USING p_disp

          p_itab_contrato

          wa_zycbt011

          v_cpochv

    CHANGING wa_zycbe033.

  APPEND wa_zycbe033 TO itab_zycbe033.

  IF itab_zycbt034[] IS INITIAL.

    PERFORM executa_f30.

    CLEAR:

      wa_mensagem.

    PERFORM verifica_contabilizacao

      USING c_f30 c_zycbt239 v_cpochv

            'Lançamento do clearing dos contratos'(m27)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      wa_contrato-doc_comp = wa_mensagem-belnr.

      LOOP AT p_itab_contrato ASSIGNING <fs_contrato>

        WHERE nrseq    = p_disp-nrseq

          AND destino  = p_disp-destino

          AND dtdisp   = p_disp-dtdisp.

        IF <fs_contrato>-operacao IS INITIAL.

          <fs_contrato>-operacao = c_alterado.

        ENDIF.

        <fs_contrato>-doc_comp = wa_mensagem-belnr.

      ENDLOOP.

      CONCATENATE p_disp-nrseq

                  c_tp1

                  c_tp4

             INTO v_msg

        SEPARATED BY space.

      SHIFT v_msg LEFT DELETING LEADING '0'.

      CONCATENATE wa_controle-msg_cnt '.' INTO v_count.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              v_count

              wa_mensagem-msg

              v_msg

              'realizada com sucesso.'(m24)

              '061'.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg_doc

              space

              space

              space

              '061'.

      PERFORM limpa_dados_bi.

    ELSE.

      PERFORM store_erros

        USING itab_zycbt034.

    ENDIF.

  ELSE.

    PERFORM store_erros

      USING itab_zycbt034.

  ENDIF.

ENDFORM.

FORM executa_f30.

  CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_P'

       EXPORTING

            v_modo          = v_modo_bi

            v_filt_atrib    = 'X'

       TABLES

            t_dados         = itab_zycbe033

            t_campo         = itab_zycbt034

            t_zycbt032      = itab_zycbt032

            t_zycbt036      = itab_zycbt036

            t_doctos        = itab_doctos

       EXCEPTIONS

            campo_em_branco = 1

            periodo_fechado = 2

            OTHERS          = 3.

  IF sy-subrc <> 0.

    EXIT.

  ENDIF.

ENDFORM.

FORM preenche_f30_clearing_contrato

  USING p_disp     LIKE LINE OF itab_disp_70

        p_itab_contrato TYPE t_t_contrato

        p_zycbt011 TYPE /pws/zycbe011

        p_cpochv   TYPE /pws/zycbe033-cpochv

  CHANGING p_zycbe033 LIKE LINE OF itab_zycbe033.

  DATA:

    wa_doctos   LIKE LINE OF itab_doctos,

    wa_contrato LIKE LINE OF p_itab_contrato.

  p_zycbe033-tcode  = c_f30.

  p_zycbe033-tabela = c_zycbt239.

  p_zycbe033-cpochv = p_cpochv.

  READ TABLE p_itab_contrato INTO wa_contrato

    WITH KEY nrseq   = p_disp-nrseq

             destino = p_disp-destino

             dtdisp  = p_disp-dtdisp.

  p_zycbe033-bukrs = <fs_op>-bukrs.

  p_zycbe033-budat = wa_contrato-dtdebito.

  p_zycbe033-bldat = p_zycbe033-budat.

  p_zycbe033-waers   = <fs_op>-waers.

  p_zycbe033-gsber   = <fs_op>-gsberf.

  p_zycbe033-werks   = <fs_op>-werks.

  p_zycbe033-brnch = <fs_op>-j_1bbranch.

  p_zycbe033-wrbtr = p_disp-vldisp.

  p_zycbe033-kursf = wa_contrato-kursf.

  p_zycbe033-flag_nc = 'X'.

  p_zycbe033-d_newko = p_disp-conta_contabil.

  p_zycbe033-newbs   = '50'.

  LOOP AT p_itab_contrato INTO wa_contrato

    WHERE nrseq = p_disp-nrseq

      AND destino = p_disp-destino

      AND dtdisp = p_disp-dtdisp.

    wa_doctos-tcode   = p_zycbe033-tcode.

    wa_doctos-tabela  = p_zycbe033-tabela.

    wa_doctos-cpochv  = p_zycbe033-cpochv.

    wa_doctos-belnr   = wa_contrato-doc_cont.

    wa_doctos-dtdocto = wa_contrato-dtdebito.

    APPEND wa_doctos TO itab_doctos.

  ENDLOOP.

  PERFORM verifica_campo_vazio USING p_zycbe033-budat

                                     'DTCREDEXT'

                                     'Data do Documento'(005).

  PERFORM verifica_campo_vazio USING p_zycbe033-bldat

                                     'DTLANCTO'

                                     'Data de Lançamento'(004).

  PERFORM verifica_campo_vazio USING p_zycbe033-bukrs

                                     'BUKRS'

                                     'Empresa'(006).

  PERFORM verifica_campo_vazio USING p_zycbe033-waers

                                     'WAERS'

                                     'Moeda'(010).

  PERFORM verifica_campo_vazio USING p_zycbe033-kursf

                                     'KURSF'

                                     'Taxa de Câmbio'(019).

  PERFORM verifica_campo_vazio USING p_zycbe033-d_newko

                                     'NEWKO'

                                     'Conta Débito'(035).

ENDFORM.

FORM estorno_contrato

  CHANGING p_contrato TYPE t_contrato.

  DATA:

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    v_periodo            TYPE frper,

    v_ano                TYPE gjahr,

    v_periodo_fechado(1) TYPE c,

    v_cpochv    TYPE /pws/zycbe033-cpochv,

    wa_mensagem TYPE t_mensagem.

  CHECK p_contrato-operacao EQ c_excluido.

  CONCATENATE p_contrato-tpcontr

              p_contrato-nrseq

              p_contrato-destino

              p_contrato-dtdisp

         INTO v_cpochv.

  IF p_contrato-tpcontr EQ c_tp1.

    PERFORM estorno_clearing_contrato

      USING p_contrato

            v_cpochv.

  ENDIF.

  wa_zycbe033-mandt  = sy-mandt.

  wa_zycbe033-tcode  = c_fb08.

  wa_zycbe033-tabela = c_zycbt239.

  wa_zycbe033-cpochv = v_cpochv.

  wa_zycbe033-belnr  = p_contrato-doc_cont.

  wa_zycbe033-bukrs  = <fs_op>-bukrs.

  wa_zycbe033-bldat  = p_contrato-dtdebito.

  wa_zycbe033-budat  = p_contrato-dtdebito.

  PERFORM determina_periodo_contabil

    USING    <fs_op>-bukrs

             p_contrato-dtdebito

    CHANGING v_periodo

             v_ano.

  PERFORM verifica_periodo_contabil

    USING

      <fs_op>-bukrs

      v_periodo

      v_ano

    CHANGING v_periodo_fechado.

  IF v_periodo_fechado = 'X'.

    wa_zycbe033-stgrd = wa_zycbt007-perencer.

  ELSE.

    wa_zycbe033-stgrd = wa_zycbt007-percorr.

  ENDIF.

  APPEND wa_zycbe033 TO itab_zycbe033.

  PERFORM executa_fb08.

  PERFORM verifica_contabilizacao

    USING c_fb08 c_zycbt239 v_cpochv

          'Estorno do documento'(m26)

    CHANGING wa_mensagem.

  IF NOT wa_mensagem IS INITIAL.

    PERFORM message_store

      USING '/PWS/ZYCBM'

            'I'

            wa_mensagem-msg

            p_contrato-doc_cont

            'realizada com sucesso.'(m24)

            space

            '061'.

    PERFORM message_store

      USING '/PWS/ZYCBM'

            'I'

            wa_mensagem-msg_doc

            space

            space

            space

            '061'.

    CLEAR:

      p_contrato-doc_cont.

    PERFORM limpa_dados_bi.

  ELSE.

    PERFORM store_erros

      USING itab_zycbt034.

  ENDIF.

ENDFORM.

FORM estorno_clearing_contrato

  USING p_contrato TYPE t_contrato

        p_cpochv   TYPE /pws/zycbe033-cpochv.

  DATA:

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    v_periodo            TYPE frper,

    v_ano                TYPE gjahr,

    v_periodo_fechado(1) TYPE c,

    wa_mensagem TYPE t_mensagem.

  CHECK NOT p_contrato-doc_comp IS INITIAL.

  wa_zycbe033-mandt  = sy-mandt.

  wa_zycbe033-tcode  = c_fbra.

  wa_zycbe033-tabela = c_zycbt239.

  wa_zycbe033-cpochv = p_cpochv.

  wa_zycbe033-belnr  = p_contrato-doc_comp.

  wa_zycbe033-bukrs  = <fs_op>-bukrs.

  wa_zycbe033-bldat  = p_contrato-dtdebito.

  APPEND wa_zycbe033 TO itab_zycbe033.

  IF itab_zycbt034[] IS INITIAL.

    PERFORM executa_fbra.

    PERFORM verifica_contabilizacao

      USING c_fbra c_zycbt239 p_cpochv

            'Cancelamento do documento'(m25)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg

              wa_mensagem-belnr

              'realizada com sucesso.'(m24)

              space

              '061'.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg_doc

              space

              space

              space

              '061'.

      PERFORM limpa_dados_bi.

      CLEAR:

        wa_mensagem.

    ELSE.

      PERFORM store_erros

        USING itab_zycbt034.

    ENDIF.

  ELSE.

    PERFORM store_erros

      USING itab_zycbt034.

  ENDIF.

ENDFORM.

FORM verifica_periodo

  USING p_empresa

        p_data

        p_msg.

  DATA: v_periodo            TYPE frper,

        v_ano                TYPE gjahr,

        v_periodo_fechado(1) TYPE c.

  PERFORM determina_periodo_contabil

    USING    p_empresa

             p_data

    CHANGING v_periodo

             v_ano.

  PERFORM verifica_periodo_contabil

    USING

      p_empresa

      v_periodo

      v_ano

    CHANGING v_periodo_fechado.

  IF v_periodo_fechado = 'X'.

    PERFORM message_store

      USING '/PWS/ZYCBM'

            'E'

            p_msg

            space

            space

            space

            '061'.

  ENDIF.

ENDFORM.

FORM executa_fb08.

  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.

    EXIT.

  ENDIF.

ENDFORM.

FORM executa_fbra.

  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.

    EXIT.

  ENDIF.

ENDFORM.

FORM atualizar_saldos

  USING p_disp TYPE t_disponibilidade.

  DATA:

    wa_zycbt017 TYPE t_s_zycbt017.

  CASE <fs_op>-tipo_op.

    WHEN c_embarque_exportacao.

      PERFORM atualiza_saldo_zycbt017

        USING p_disp

              c_embarque_exportacao.

      PERFORM atualiza_saldo_zycbt030

        USING p_disp

              c_embarque_exportacao.

      PERFORM atualiza_saldo_zycbt226

        USING p_disp

              c_embarque_exportacao.

      PERFORM atualiza_saldo_zycbt227

        USING p_disp

              c_embarque_exportacao.

    WHEN c_pagamento_antecipado.

      PERFORM atualiza_saldo_zycbt017

        USING p_disp

              c_pagamento_antecipado.

      PERFORM atualiza_saldo_zycbt030

        USING p_disp

              c_pagamento_antecipado.

      PERFORM atualiza_saldo_zycbt226

        USING p_disp

              c_pagamento_antecipado.

      PERFORM atualiza_saldo_zycbt227

        USING p_disp

              c_pagamento_antecipado.

  ENDCASE.

ENDFORM.

FORM atualiza_saldo_zycbt017

  USING p_disp    TYPE t_disponibilidade

        p_tipo_op TYPE /pws/zycbe226-tipo_op.

  DATA:

    wa_disp     TYPE t_disponibilidade,

    wa_zycbt227 TYPE t_zycbt227,

    v_valor     TYPE /pws/zycbt226-sld_exterior.

  FIELD-SYMBOLS:

    <fs_zycbt017> LIKE LINE OF itab_zycbt017.

  CHECK NOT p_disp-operacao IS INITIAL.

  CASE p_tipo_op.

    WHEN c_embarque_exportacao.

      READ TABLE itab_zycbt017 ASSIGNING <fs_zycbt017>

        WITH KEY nrinvoic = <fs_op>-nrinvoic

                 nrparcf  = <fs_op>-nrparcf

                 gsberf   = <fs_op>-gsberf.

      CHECK <fs_zycbt017> IS ASSIGNED.

      CASE p_disp-operacao.

        WHEN c_excluido.

          <fs_zycbt017>-vlslf =

            <fs_zycbt017>-vlslf + p_disp-vldisp.

        WHEN c_novo.

          <fs_zycbt017>-vlslf =

            <fs_zycbt017>-vlslf - p_disp-vldisp.

      ENDCASE.

      UPDATE /pws/zycbt017

        SET vlslf = <fs_zycbt017>-vlslf

        WHERE nrinvoic = <fs_zycbt017>-nrinvoic

          AND nrparcf  = <fs_zycbt017>-nrparcf

          AND gsberf   = <fs_zycbt017>-gsberf.

    WHEN c_pagamento_antecipado.

      LOOP AT itab_zycbt227 INTO wa_zycbt227

        WHERE nrseq    = <fs_op>-nrseq.

        READ TABLE itab_zycbt017 ASSIGNING <fs_zycbt017>

          WITH KEY nrinvoic = wa_zycbt227-nrinvoic

                   nrparcf  = wa_zycbt227-nrparcf

                   gsberf   = wa_zycbt227-gsberf.

        CHECK <fs_zycbt017> IS ASSIGNED.

        CASE p_disp-operacao.

          WHEN c_excluido.

            READ TABLE itab_disp_ant INTO wa_disp

              WITH KEY nrseq   = p_disp-nrseq

                       destino = p_disp-destino

                       dtdisp  = p_disp-dtdisp.

            <fs_zycbt017>-vlslf = <fs_zycbt017>-vlslf +

              wa_disp-vldisp - wa_disp-saldo.

          WHEN c_novo.

            IF wa_zycbt227-saldo > p_disp-saldo.

              <fs_zycbt017>-vlslf =

                <fs_zycbt017>-vlslf - p_disp-saldo.

            ELSE.

              <fs_zycbt017>-vlslf =

                <fs_zycbt017>-vlslf - wa_zycbt227-saldo.

            ENDIF.

        ENDCASE.

        UPDATE /pws/zycbt017

          SET vlslf = <fs_zycbt017>-vlslf

          WHERE nrinvoic = <fs_zycbt017>-nrinvoic

            AND nrparcf  = <fs_zycbt017>-nrparcf

            AND gsberf   = <fs_zycbt017>-gsberf.

      ENDLOOP.

  ENDCASE.

ENDFORM.

FORM atualiza_saldo_zycbt030

  USING p_disp    TYPE t_disponibilidade

        p_tipo_op TYPE /pws/zycbe226-tipo_op.

  DATA:

    wa_disp     TYPE t_disponibilidade,

    wa_zycbt227 TYPE t_zycbt227,

    v_valor     TYPE /pws/zycbt226-sld_exterior.

  FIELD-SYMBOLS:

    <fs_zycbt030> LIKE LINE OF itab_zycbt030.

  CHECK NOT p_disp-operacao IS INITIAL.

  CASE p_tipo_op.

    WHEN c_embarque_exportacao.

      READ TABLE itab_zycbt030 ASSIGNING <fs_zycbt030>

        WITH KEY nrinvoic = <fs_op>-nrinvoic

                 nrparcf  = <fs_op>-nrparcf

                 gsberf   = <fs_op>-gsberf.

      CHECK <fs_zycbt030> IS ASSIGNED.

      CASE p_disp-operacao.

        WHEN c_excluido.

          <fs_zycbt030>-vlslliq =

            <fs_zycbt030>-vlslliq + p_disp-vldisp.

        WHEN c_novo.

          <fs_zycbt030>-vlslliq =

            <fs_zycbt030>-vlslliq - p_disp-vldisp.

      ENDCASE.

      UPDATE /pws/zycbt030

        SET vlslliq = <fs_zycbt030>-vlslliq

        WHERE nrinvoic = <fs_zycbt030>-nrinvoic

          AND nrparcf  = <fs_zycbt030>-nrparcf

          AND gsberf   = <fs_zycbt030>-gsberf

          AND vbeln    = <fs_zycbt030>-vbeln.

    WHEN c_pagamento_antecipado.

      LOOP AT itab_zycbt227 into wa_zycbt227

        WHERE nrseq    = <fs_op>-nrseq.

        READ TABLE itab_zycbt030 ASSIGNING <fs_zycbt030>

          WITH KEY nrinvoic = wa_zycbt227-nrinvoic

                   nrparcf  = wa_zycbt227-nrparcf

                   gsberf   = wa_zycbt227-gsberf.

        CHECK <fs_zycbt030> IS ASSIGNED.

        CASE p_disp-operacao.

          WHEN c_excluido.

            READ TABLE itab_disp_ant INTO wa_disp

              WITH KEY nrseq   = p_disp-nrseq

                       destino = p_disp-destino

                       dtdisp  = p_disp-dtdisp.

            <fs_zycbt030>-vlslliq = <fs_zycbt030>-vlslliq +

              wa_disp-vldisp - wa_disp-saldo.

          WHEN c_novo.

            IF wa_zycbt227-saldo > p_disp-saldo.

              <fs_zycbt030>-vlslliq =

                <fs_zycbt030>-vlslliq - p_disp-saldo.

            ELSE.

              <fs_zycbt030>-vlslliq =

                <fs_zycbt030>-vlslliq - wa_zycbt227-saldo.

            ENDIF.

        ENDCASE.

        UPDATE /pws/zycbt030

          SET vlslliq = <fs_zycbt030>-vlslliq

          WHERE nrinvoic = <fs_zycbt030>-nrinvoic

            AND nrparcf  = <fs_zycbt030>-nrparcf

            AND gsberf   = <fs_zycbt030>-gsberf

            AND vbeln    = <fs_zycbt030>-vbeln.

      ENDLOOP.

  ENDCASE.

ENDFORM.

FORM atualiza_saldo_zycbt226

  USING p_disp    TYPE t_disponibilidade

        p_tipo_op TYPE /pws/zycbe226-tipo_op.

  FIELD-SYMBOLS:

    <fs_zycbt226> LIKE LINE OF itab_zycbt226.

  CHECK NOT p_disp-operacao IS INITIAL.

  READ TABLE itab_zycbt226 ASSIGNING <fs_zycbt226>

    WITH KEY nrseq = p_disp-nrseq.

  CASE p_disp-operacao.

    WHEN c_excluido.

      <fs_zycbt226>-sld_exterior =

        <fs_zycbt226>-sld_exterior + p_disp-vldisp.

    WHEN c_novo.

      <fs_zycbt226>-sld_exterior =

        <fs_zycbt226>-sld_exterior - p_disp-vldisp.

  ENDCASE.

  UPDATE /pws/zycbt226

    SET sld_exterior = <fs_zycbt226>-sld_exterior

        belnr_op2    = <fs_zycbt226>-belnr_op2

        dtlancto2    = <fs_zycbt226>-dtlancto2

    WHERE nrseq = <fs_zycbt226>-nrseq.

ENDFORM.

FORM atualiza_saldo_zycbt227

  USING p_disp    TYPE t_disponibilidade

        p_tipo_op TYPE /pws/zycbe226-tipo_op.

  DATA:

    v_residuo type wrbtr.

  FIELD-SYMBOLS:

    <fs_zycbt227> LIKE LINE OF itab_zycbt227.

  CHECK NOT p_disp-operacao IS INITIAL.

  CHECK p_tipo_op EQ c_pagamento_antecipado.

  CLEAR v_residuo.

  LOOP AT itab_zycbt227 ASSIGNING <fs_zycbt227>

    WHERE nrseq    = <fs_op>-nrseq.

    CHECK p_disp-saldo > 0.

    CASE p_disp-operacao.

      WHEN c_excluido.

        IF <fs_zycbt227>-vlr_associado GT p_disp-saldo.

          <fs_zycbt227>-saldo = <fs_zycbt227>-saldo +

                                  p_disp-saldo.

          IF <fs_zycbt227>-saldo GT <fs_zycbt227>-vlr_associado.

            p_disp-saldo = <fs_zycbt227>-saldo -

                             <fs_zycbt227>-vlr_associado.

            <fs_zycbt227>-saldo = <fs_zycbt227>-vlr_associado.

          ENDIF.

        ELSE.

          <fs_zycbt227>-saldo = <fs_zycbt227>-vlr_associado.

          p_disp-saldo = p_disp-saldo - <fs_zycbt227>-vlr_associado.

        ENDIF.

      WHEN c_novo.

        IF <fs_zycbt227>-saldo GT p_disp-saldo.

          <fs_zycbt227>-saldo =

            <fs_zycbt227>-saldo - p_disp-saldo.

          CLEAR p_disp-saldo.

        ELSE.

          p_disp-saldo = p_disp-saldo - <fs_zycbt227>-saldo.

          CLEAR <fs_zycbt227>-saldo.

        ENDIF.

    ENDCASE.

    UPDATE /pws/zycbt227

      SET saldo = <fs_zycbt227>-saldo

      WHERE nrseq    = <fs_zycbt227>-nrseq

        AND nrinvoic = <fs_zycbt227>-nrinvoic

        AND nrparcf  = <fs_zycbt227>-nrparcf

        AND gsberf   = <fs_zycbt227>-gsberf

        AND dtassoc  = <fs_zycbt227>-dtassoc.

  ENDLOOP.

ENDFORM.

FORM atualiza_tc_rendimentos

  USING p_itab_rendimentos TYPE t_t_rendimentos

        p_tc            TYPE cxtab_control.

  DATA:

    wa_rend TYPE t_rendimentos.

  MOVE-CORRESPONDING:

    /pws/zycbe240 TO wa_rend.

  MOVE:

    c_novo   TO wa_rend-operacao,

    v_mark   TO wa_rend-mark,

    sy-datum TO wa_rend-dtincl.

  READ TABLE p_itab_rendimentos INDEX p_tc-current_line

    INTO wa_rend

    TRANSPORTING nrseqr.

  IF sy-subrc NE 0.

    CLEAR wa_rend-nrseqr.

  ENDIF.

  IF sy-subrc EQ 0.

    MODIFY p_itab_rendimentos FROM wa_rend INDEX p_tc-current_line.

  ELSE.

    APPEND wa_rend TO p_itab_rendimentos.

  ENDIF.

ENDFORM.

FORM preenche_tc_rendimentos

  USING p_itab_rendimentos TYPE t_t_rendimentos

        p_tc               TYPE cxtab_control.

  DATA:

    wa_rend TYPE t_rendimentos.

  READ TABLE p_itab_rendimentos INTO wa_rend

    INDEX p_tc-current_line.

  IF sy-subrc EQ 0.

    MOVE-CORRESPONDING:

      wa_rend TO /pws/zycbe240.

    MOVE:

      wa_rend-mark TO v_mark.

  ENDIF.

ENDFORM.

FORM salva_rendimentos.

  DATA:

    v_nrseqr TYPE /pws/zycbt240-nrseqr.

  FIELD-SYMBOLS:

    <fs_rend> TYPE t_rendimentos.

  IF v_nrseqr IS INITIAL.

    SELECT MAX( nrseqr ) FROM /pws/zycbt240 INTO v_nrseqr.

  ENDIF.

  LOOP AT itab_rendimentos_ant ASSIGNING <fs_rend>.

    READ TABLE itab_rendimentos

      WITH KEY nrseqr = <fs_rend>-nrseqr

      TRANSPORTING NO FIELDS.

    IF sy-subrc NE 0.

      DELETE FROM /pws/zycbt240 WHERE nrseqr = <fs_rend>-nrseqr.

      DELETE itab_rendimentos_ant WHERE nrseqr = <fs_rend>-nrseqr.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_rendimentos ASSIGNING <fs_rend>.

    IF <fs_rend>-nrseqr IS INITIAL.

      v_nrseqr = v_nrseqr + 1.

      <fs_rend>-nrseqr = v_nrseqr.

    ENDIF.

    READ TABLE itab_rendimentos_ant

      WITH KEY nrseqr = <fs_rend>-nrseqr

      TRANSPORTING NO FIELDS.

    IF sy-subrc NE 0.

      INSERT INTO /pws/zycbt240 VALUES <fs_rend>.

    ENDIF.

  ENDLOOP.

  IF sy-subrc NE 0 AND sy-tcode NE c_transacao_c.

    DELETE FROM /pws/zycbt240 WHERE nrseqr <> space.

    REFRESH itab_rendimentos_ant.

  ENDIF.

  MODIFY /pws/zycbt240 FROM TABLE itab_rendimentos.

ENDFORM.

FORM user_command_0140.

  CASE ok_code.

    WHEN 'MARK'.

      PERFORM preenche_campo_itab

        USING 'MARK'

              'X'

        CHANGING itab_rendimentos.

    WHEN 'UNMARK'.

      PERFORM preenche_campo_itab

        USING 'MARK'

              ' '

        CHANGING itab_rendimentos.

    WHEN 'DEL_LINE'.

      PERFORM elimina_linha_marcada

        CHANGING itab_rendimentos.

  ENDCASE.

ENDFORM.

FORM user_command_0132.

  CASE ok_code.

    WHEN '/CS'.

      PERFORM drill_down.

  ENDCASE.

ENDFORM.

FORM verifica_alteracao_contrato

  CHANGING p_contrato TYPE t_contrato.

  DATA:

    wa_contrato TYPE t_contrato.

  CHECK p_contrato-operacao IS INITIAL

     OR p_contrato-operacao EQ c_alterado.

  READ TABLE itab_contrato_ant INTO wa_contrato

    WITH KEY tpcontr = p_contrato-tpcontr

             nrseq   = p_contrato-nrseq

             destino = p_contrato-destino

             dtdisp  = p_contrato-dtdisp.

  CHECK sy-subrc EQ 0.

  IF p_contrato-bco_fech      NE wa_contrato-bco_fech      OR

     p_contrato-nrcontr       NE wa_contrato-nrcontr       OR

     p_contrato-dtcontr       NE wa_contrato-dtcontr       OR

     p_contrato-dtfech        NE wa_contrato-dtfech        OR

     p_contrato-dtliquid      NE wa_contrato-dtliquid      OR

     p_contrato-dtswift       NE wa_contrato-dtswift       OR

     p_contrato-praca         NE wa_contrato-praca         OR

     p_contrato-instituicao   NE wa_contrato-instituicao   OR

     p_contrato-corret        NE wa_contrato-corret        OR

     p_contrato-codnatoper    NE wa_contrato-codnatoper    OR

     p_contrato-codfrmentrega NE wa_contrato-codfrmentrega OR

     p_contrato-codmodtransa  NE wa_contrato-codmodtransa  OR

     p_contrato-codnorma      NE wa_contrato-codnorma      OR

     p_contrato-modalidade    NE wa_contrato-modalidade    OR

     p_contrato-txtlanc       NE wa_contrato-txtlanc       OR

     p_contrato-frmreceb      NE wa_contrato-frmreceb.

    p_contrato-operacao = c_alterado.

  ELSE.

    CLEAR p_contrato-operacao.

  ENDIF.

ENDFORM.

FORM contabiliza_disponibilidade

  CHANGING p_disp TYPE t_disponibilidade.

  DATA:

    v_count     TYPE t_mensagem-msg,

    v_msg       TYPE t_mensagem-msg,

    v_cpochv    TYPE /pws/zycbe033-cpochv,

    wa_zycbt011 TYPE /pws/zycbe011,

    wa_zycbt034 LIKE LINE OF itab_zycbt034,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    wa_mensagem TYPE t_mensagem.

  CHECK p_disp-doc_cont IS INITIAL.

  CHECK p_disp-operacao NE c_excluido.

  PERFORM limpa_dados_bi.

  CONCATENATE <fs_op>-bukrs

              p_disp-nrseq

              p_disp-destino

              p_disp-dtdisp

         INTO v_cpochv.

  CASE <fs_op>-tipo_op.

    WHEN 'E'.

      PERFORM busca_parametros

        USING '029'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '029'

              'TRE'

              space

        CHANGING wa_zycbe033.

    WHEN 'P'.

      PERFORM busca_parametros

        USING '030'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '030'

              'TRE'

              space

        CHANGING wa_zycbe033.

  ENDCASE.

  PERFORM preenche_f02_disponibilidade

    USING p_disp

          wa_zycbt011

          v_cpochv

    CHANGING wa_zycbe033.

  APPEND wa_zycbe033 TO itab_zycbe033.

  IF itab_zycbt034[] IS INITIAL.

    PERFORM executa_f02.

    PERFORM verifica_contabilizacao

      USING c_f02 c_zycbt239 v_cpochv

            'Lançamento da Provisão da disponibilidade'(m28)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      p_disp-doc_cont = wa_mensagem-belnr.

      IF p_disp-operacao IS INITIAL.

        p_disp-operacao = c_alterado.

      ENDIF.

      v_msg = p_disp-nrseq.

      SHIFT v_msg LEFT DELETING LEADING space.

      SHIFT v_msg LEFT DELETING LEADING '0'.

      CONCATENATE v_msg

                  '-'

                  p_disp-destino

                  '%'

             INTO v_msg.

      CONCATENATE wa_controle-msg_cnt '.' INTO v_count.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              v_count

              wa_mensagem-msg

              v_msg

              'realizada com sucesso.'(m24)

              '061'.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg_doc

              space

              space

              space

              '061'.

      PERFORM limpa_dados_bi.

    ELSE.

      PERFORM store_erros

        USING itab_zycbt034.

    ENDIF.

  ELSE.

    PERFORM store_erros

      USING itab_zycbt034.

  ENDIF.

ENDFORM.

FORM preenche_f02_disponibilidade

  USING p_disp     LIKE LINE OF itab_disp_70

        p_zycbt011 TYPE /pws/zycbe011

        p_cpochv   TYPE /pws/zycbe033-cpochv

  CHANGING p_zycbe033 LIKE LINE OF itab_zycbe033.

  DATA:

    wa_zycbt089 LIKE LINE OF itab_zycbt089,

    v_codaux TYPE /pws/zygle316-codaux1.

  READ TABLE itab_zycbt089 INTO wa_zycbt089

    WITH KEY bukrs = <fs_op>-bukrs.

  p_zycbe033-tcode  = c_f02.

  p_zycbe033-tabela = c_zycbt239.

  p_zycbe033-cpochv = p_cpochv.

  p_zycbe033-bukrs = <fs_op>-bukrs.

  p_zycbe033-budat = p_disp-dtlanc.

  p_zycbe033-bldat = p_zycbe033-budat.

  p_zycbe033-waers   = <fs_op>-waers.

  p_zycbe033-gsber   = <fs_op>-gsberf.

  p_zycbe033-werks   = <fs_op>-werks.

  p_zycbe033-brnch = <fs_op>-j_1bbranch.

  p_zycbe033-wrbtr = p_disp-vldisp.

  PERFORM busca_taxa_disponibilidade

    USING p_disp

          p_zycbt011

          wa_zycbt089-tx_lanc_dispon

    CHANGING p_zycbe033-kursf.

  p_zycbe033-d_newko = p_disp-conta_contabil.

  p_zycbe033-c_newko = <fs_op>-conta_contabil.

  CONCATENATE 'Desm.'

              <fs_op>-nrinvoic

              <fs_op>-nrparcf

         INTO p_zycbe033-c_zuonr

    SEPARATED BY space.

  PERFORM verifica_campo_vazio USING p_zycbe033-budat

                                     'DTCREDEXT'

                                     'Data do Documento'(005).

  PERFORM verifica_campo_vazio USING p_zycbe033-bldat

                                     'DTLANCTO'

                                     'Data de Lançamento'(004).

  PERFORM verifica_campo_vazio USING p_zycbe033-bukrs

                                     'BUKRS'

                                     'Empresa'(006).

  PERFORM verifica_campo_vazio USING p_zycbe033-waers

                                     'WAERS'

                                     'Moeda'(010).

  PERFORM verifica_campo_vazio USING p_zycbe033-kursf

                                     'KURSF'

                                     'Taxa de Câmbio'(019).

  PERFORM verifica_campo_vazio USING p_zycbe033-d_newko

                                     'NEWKO'

                                     'Conta Débito'(035).

ENDFORM.

FORM busca_taxa_disponibilidade

  USING    p_disp  TYPE t_disponibilidade

           p_zycbt011 TYPE /pws/zycbe011

           p_taxa     TYPE /pws/zycbt089-tx_lanc_dispon

  CHANGING p_kursf TYPE /pws/zycbe033-kursf.

  DATA:

    v_dt_taxa TYPE /pws/zycbe238-dtdisp.

  READ TABLE itab_zycbt007 INTO wa_zycbt007

    WITH KEY bukrs = <fs_op>-bukrs.

  CASE p_taxa.

    WHEN 'DTLANCTO'.

      v_dt_taxa = <fs_op>-dtlancto.

    WHEN 'DTCREDEXT'.

      v_dt_taxa = <fs_op>-dtcredext.

    WHEN 'DTFECH'.

      v_dt_taxa = p_disp-dtlanc.

      IF p_disp-dtlanc(6) NE <fs_op>-dtlancto(6).

        v_dt_taxa = p_disp-dtlanc.

        v_dt_taxa+4(2) = v_dt_taxa+4(2) + 1.

        v_dt_taxa+6(2) = '01'.

        v_dt_taxa = v_dt_taxa - 1.

      ENDIF.

    WHEN 'DTDISP'.

      v_dt_taxa = p_disp-dtdisp.

    WHEN 'DTLANC'.

      v_dt_taxa = p_disp-dtlanc.

  ENDCASE.

  PERFORM busca_taxa

    USING

      p_zycbt011-codeven

      <fs_op>-bukrs

      <fs_op>-waers

      wa_zycbt007-waersb

      v_dt_taxa

    CHANGING

      p_kursf.

ENDFORM.

FORM desmembramento_disponibilidade

  CHANGING p_disp TYPE t_disponibilidade.

  DATA:

    v_count     TYPE t_mensagem-msg,

    v_msg       TYPE t_mensagem-msg,

    v_cpochv    TYPE /pws/zycbe033-cpochv,

    wa_zycbt011 TYPE /pws/zycbe011,

    wa_zycbt034 LIKE LINE OF itab_zycbt034,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    wa_mensagem TYPE t_mensagem.

  CHECK NOT p_disp-doc_cont IS INITIAL.

  CHECK p_disp-doc_desm IS INITIAL.

  CHECK p_disp-operacao NE c_excluido.

  PERFORM limpa_dados_bi.

  CONCATENATE <fs_op>-bukrs

              p_disp-nrseq

              p_disp-destino

              p_disp-dtdisp

         INTO v_cpochv.

  CASE <fs_op>-tipo_op.

    WHEN 'E'.

      PERFORM busca_parametros

        USING '029'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '029'

              'TRE'

              space

        CHANGING wa_zycbe033.

    WHEN 'P'.

      PERFORM busca_parametros

        USING '030'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '030'

              'TRE'

              space

        CHANGING wa_zycbe033.

  ENDCASE.

  PERFORM preenche_f30_desmemb_disp

    USING p_disp

          wa_zycbt011

          v_cpochv

    CHANGING wa_zycbe033.

  APPEND wa_zycbe033 TO itab_zycbe033.

  IF itab_zycbt034[] IS INITIAL.

    PERFORM executa_f30.

    PERFORM verifica_contabilizacao

      USING c_f30 c_zycbt239 v_cpochv

            'Desmembramento da disponibilidade'(m29)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      p_disp-doc_desm = wa_mensagem-belnr.

      <fs_op>-belnr_op2 = p_disp-doc_desm.

      <fs_op>-dtlancto2 = p_disp-dtlanc.

      IF p_disp-operacao IS INITIAL.

        p_disp-operacao = c_alterado.

      ENDIF.

      v_msg = p_disp-nrseq.

      SHIFT v_msg LEFT DELETING LEADING space.

      SHIFT v_msg LEFT DELETING LEADING '0'.

      CONCATENATE v_msg

                  '-'

                  p_disp-destino

                  '%'

             INTO v_msg.

      CONCATENATE wa_controle-msg_cnt '.' INTO v_count.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              v_count

              wa_mensagem-msg

              v_msg

              'realizada com sucesso.'(m24)

              '061'.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg_doc

              space

              space

              space

              '061'.

      PERFORM limpa_dados_bi.

    ELSE.

      PERFORM store_erros

        USING itab_zycbt034.

    ENDIF.

  ELSE.

    PERFORM store_erros

      USING itab_zycbt034.

  ENDIF.

ENDFORM.

FORM preenche_f30_desmemb_disp

  USING p_disp     LIKE LINE OF itab_disp_70

        p_zycbt011 TYPE /pws/zycbe011

        p_cpochv   TYPE /pws/zycbe033-cpochv

  CHANGING p_zycbe033 LIKE LINE OF itab_zycbe033.

  DATA:

    wa_doctos   LIKE LINE OF itab_doctos,

    v_codaux TYPE /pws/zygle316-codaux1.

  p_zycbe033-tcode  = c_f30.

  p_zycbe033-tabela = c_zycbt239.

  p_zycbe033-cpochv = p_cpochv.

  p_zycbe033-bukrs = <fs_op>-bukrs.

  p_zycbe033-budat = p_disp-dtlanc.

  p_zycbe033-bldat = p_zycbe033-budat.

  p_zycbe033-waers   = <fs_op>-waers.

  p_zycbe033-gsber   = <fs_op>-gsberf.

  p_zycbe033-werks   = <fs_op>-werks.

  p_zycbe033-brnch = <fs_op>-j_1bbranch.

  p_zycbe033-wrbtr = p_disp-vldisp.

  p_zycbe033-newbs   = '40'.

  CONCATENATE 'Desm.'

              <fs_op>-nrinvoic

              <fs_op>-nrparcf

         INTO p_zycbe033-d_zuonr

    SEPARATED BY space.

  PERFORM define_taxa_cambio

    USING 'C'

      'X'

      p_zycbt011-codeven

      <fs_op>-bukrs

      <fs_op>-dtlancto

      <fs_op>-nrinvoic

    CHANGING

      p_zycbe033-kursf.

  p_zycbe033-d_newko = <fs_op>-conta_contabil.

  p_zycbe033-c_newko = p_disp-conta_contabil.

  wa_doctos-tcode   = p_zycbe033-tcode.

  wa_doctos-tabela  = p_zycbe033-tabela.

  wa_doctos-cpochv  = p_zycbe033-cpochv.

  wa_doctos-residuo = p_zycbe033-wrbtr.

  IF <fs_op>-belnr_op2 IS INITIAL.

    wa_doctos-belnr   = <fs_op>-belnr_op.

    wa_doctos-dtdocto = <fs_op>-dtlancto.

  ELSE.

    wa_doctos-belnr   = <fs_op>-belnr_op2.

    wa_doctos-dtdocto = <fs_op>-dtlancto2.

  ENDIF.

  APPEND wa_doctos TO itab_zycbt036.

  APPEND wa_doctos TO itab_doctos.

  PERFORM verifica_campo_vazio USING p_zycbe033-budat

                                     'DTCREDEXT'

                                     'Data do Documento'(005).

  PERFORM verifica_campo_vazio USING p_zycbe033-bldat

                                     'DTLANCTO'

                                     'Data de Lançamento'(004).

  PERFORM verifica_campo_vazio USING p_zycbe033-bukrs

                                     'BUKRS'

                                     'Empresa'(006).

  PERFORM verifica_campo_vazio USING p_zycbe033-waers

                                     'WAERS'

                                     'Moeda'(010).

  PERFORM verifica_campo_vazio USING p_zycbe033-kursf

                                     'KURSF'

                                     'Taxa de Câmbio'(019).

  PERFORM verifica_campo_vazio USING p_zycbe033-d_newko

                                     'NEWKO'

                                     'Conta Débito'(035).

ENDFORM.

FORM clearing_disponibilidade

  CHANGING p_disp TYPE t_disponibilidade.

  DATA:

    v_count     TYPE t_mensagem-msg,

    v_msg       TYPE t_mensagem-msg,

    v_cpochv    TYPE /pws/zycbe033-cpochv,

    wa_zycbt011 TYPE /pws/zycbe011,

    wa_zycbt034 LIKE LINE OF itab_zycbt034,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    wa_mensagem TYPE t_mensagem.

  CHECK p_disp-doc_comp IS INITIAL.

  CHECK NOT p_disp-doc_cont IS INITIAL.

  CHECK NOT p_disp-doc_desm IS INITIAL.

  CHECK p_disp-operacao NE c_excluido.

  PERFORM limpa_dados_bi.

  CONCATENATE <fs_op>-bukrs

              p_disp-nrseq

              p_disp-destino

              p_disp-dtdisp

         INTO v_cpochv.

  CASE <fs_op>-tipo_op.

    WHEN 'E'.

      PERFORM busca_parametros

        USING '029'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '029'

              'TRE'

              space

        CHANGING wa_zycbe033.

    WHEN 'P'.

      PERFORM busca_parametros

        USING '030'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '030'

              'TRE'

              space

        CHANGING wa_zycbe033.

  ENDCASE.

  PERFORM preenche_f30_clearing_disp

    USING p_disp

          wa_zycbt011

          v_cpochv

    CHANGING wa_zycbe033.

  APPEND wa_zycbe033 TO itab_zycbe033.

  IF itab_zycbt034[] IS INITIAL.

    PERFORM executa_f30.

    PERFORM verifica_contabilizacao

      USING c_f30 c_zycbt239 v_cpochv

            'Clearing da disponibilidade'(m30)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      p_disp-doc_comp = wa_mensagem-belnr.

      IF p_disp-operacao IS INITIAL.

        p_disp-operacao = c_alterado.

      ENDIF.

      v_msg = p_disp-nrseq.

      SHIFT v_msg LEFT DELETING LEADING space.

      SHIFT v_msg LEFT DELETING LEADING '0'.

      CONCATENATE v_msg

                  '-'

                  p_disp-destino

                  '%'

             INTO v_msg.

      CONCATENATE wa_controle-msg_cnt '.' INTO v_count.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              v_count

              wa_mensagem-msg

              v_msg

              'realizada com sucesso.'(m24)

              '061'.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg_doc

              space

              space

              space

              '061'.

      PERFORM limpa_dados_bi.

    ELSE.

      PERFORM store_erros

        USING itab_zycbt034.

    ENDIF.

  ELSE.

    PERFORM store_erros

      USING itab_zycbt034.

  ENDIF.

ENDFORM.

FORM preenche_f30_clearing_disp

  USING p_disp     LIKE LINE OF itab_disp_70

        p_zycbt011 TYPE /pws/zycbe011

        p_cpochv   TYPE /pws/zycbe033-cpochv

  CHANGING p_zycbe033 LIKE LINE OF itab_zycbe033.

  DATA:

    wa_doctos   LIKE LINE OF itab_doctos,

    v_codaux TYPE /pws/zygle316-codaux1.

  p_zycbe033-tcode  = c_f30.

  p_zycbe033-tabela = c_zycbt239.

  p_zycbe033-cpochv = p_cpochv.

  p_zycbe033-bukrs = <fs_op>-bukrs.

  p_zycbe033-budat = p_disp-dtlanc.

  p_zycbe033-bldat = p_zycbe033-budat.

  p_zycbe033-waers   = <fs_op>-waers.

  p_zycbe033-gsber   = <fs_op>-gsberf.

  p_zycbe033-werks   = <fs_op>-werks.

  p_zycbe033-brnch = <fs_op>-j_1bbranch.

  p_zycbe033-wrbtr = p_disp-vldisp.

  p_zycbe033-newbs   = '50'.

  p_zycbe033-flag_nc = 'X'.

  CLEAR:

    p_zycbe033-c_zuonr.

  PERFORM define_taxa_cambio

    USING 'C'

      space

      p_zycbt011-codeven

      <fs_op>-bukrs

      <fs_op>-dtlancto

      <fs_op>-nrinvoic

    CHANGING

      p_zycbe033-kursf.

  p_zycbe033-d_newko = <fs_op>-conta_contabil.

  p_zycbe033-c_newko = p_disp-conta_contabil.

  wa_doctos-tcode   = p_zycbe033-tcode.

  wa_doctos-tabela  = p_zycbe033-tabela.

  wa_doctos-cpochv  = p_zycbe033-cpochv.

  wa_doctos-belnr   = p_disp-doc_cont.

  wa_doctos-dtdocto = p_disp-dtlanc.

  APPEND wa_doctos TO itab_doctos.

  wa_doctos-belnr   = p_disp-doc_desm.

  wa_doctos-dtdocto = p_disp-dtlanc.

  CONCATENATE 'Desm.'

              <fs_op>-nrinvoic

              <fs_op>-nrparcf

         INTO wa_doctos-zuonr

    SEPARATED BY space.

  APPEND wa_doctos TO itab_doctos.

  PERFORM verifica_campo_vazio USING p_zycbe033-budat

                                     'DTCREDEXT'

                                     'Data do Documento'(005).

  PERFORM verifica_campo_vazio USING p_zycbe033-bldat

                                     'DTLANCTO'

                                     'Data de Lançamento'(004).

  PERFORM verifica_campo_vazio USING p_zycbe033-bukrs

                                     'BUKRS'

                                     'Empresa'(006).

  PERFORM verifica_campo_vazio USING p_zycbe033-waers

                                     'WAERS'

                                     'Moeda'(010).

  PERFORM verifica_campo_vazio USING p_zycbe033-kursf

                                     'KURSF'

                                     'Taxa de Câmbio'(019).

  PERFORM verifica_campo_vazio USING p_zycbe033-d_newko

                                     'NEWKO'

                                     'Conta Débito'(035).

ENDFORM.

FORM estorno_disponibilidade

  CHANGING p_disp TYPE t_disponibilidade.

  CHECK p_disp-operacao EQ c_excluido.

  IF NOT wa_zyglt009-comp_aut_cc = 'X'.

    PERFORM contabiliza_estorno_dispon

      USING p_disp.

  ELSE.

    IF p_disp-doc_comp IS INITIAL.

      PERFORM estorna_disp_incompleta

        USING p_disp.

    ELSE.

      PERFORM contabiliza_estorno_dispon

        USING p_disp.

      PERFORM clearing_conta_banco

        USING p_disp.

      PERFORM clearing_conta_disp

        USING p_disp.

    ENDIF.

  ENDIF.

ENDFORM.

FORM estorna_documento

  USING    p_dtlanc   TYPE /pws/zycbt238-dtlanc

           p_zycbe033 TYPE t_s_zycbe033

           p_cpochv   TYPE /pws/zycbe033-cpochv

  CHANGING 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 limpa_dados_bi.

  p_zycbe033-tcode  = c_fb08.

  p_zycbe033-belnr  = p_doc.

  p_zycbe033-bldat  = p_dtlanc.

  p_zycbe033-budat  = p_zycbe033-bldat.

  p_zycbe033-cpochv = p_cpochv.

  PERFORM determina_periodo_contabil

    USING    <fs_op>-bukrs

             p_dtlanc

    CHANGING v_periodo

             v_ano.

  PERFORM verifica_periodo_contabil

    USING

      <fs_op>-bukrs

      v_periodo

      v_ano

    CHANGING v_periodo_fechado.

  IF v_periodo_fechado = 'X'.

    p_zycbe033-stgrd = wa_zycbt007-perencer.

  ELSE.

    p_zycbe033-stgrd = wa_zycbt007-percorr.

  ENDIF.

  APPEND p_zycbe033 TO itab_zycbe033.

  IF itab_zycbt034 IS INITIAL.

    PERFORM executa_fb08.

    PERFORM verifica_contabilizacao

      USING c_fb08 c_zycbt239 p_cpochv

            'Estorno do documento'(m26)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg

              p_doc

              'realizada com sucesso.'(m24)

              space

              '061'.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg_doc

              space

              space

              space

              '061'.

      CLEAR:

        p_doc.

    ELSE.

      PERFORM store_erros

        USING itab_zycbt034.

    ENDIF.

  ELSE.

    PERFORM store_erros

      USING itab_zycbt034.

  ENDIF.

ENDFORM.

FORM cancela_documento

  USING    p_dtlanc   TYPE /pws/zycbt238-dtlanc

           p_zycbe033 TYPE t_s_zycbe033

           p_cpochv   TYPE /pws/zycbe033-cpochv

  CHANGING p_doc      TYPE /pws/zycbt238-doc_comp.

  DATA:

    wa_mensagem TYPE t_mensagem.

  CHECK NOT p_doc IS INITIAL.

  PERFORM limpa_dados_bi.

  p_zycbe033-tcode  = c_fbra.

  p_zycbe033-belnr  = p_doc.

  p_zycbe033-bldat  = p_dtlanc.

  APPEND p_zycbe033 TO itab_zycbe033.

  IF itab_zycbt034[] IS INITIAL.

    PERFORM executa_fbra.

    PERFORM verifica_contabilizacao

      USING c_fbra c_zycbt239 p_cpochv

            'Cancelamento do documento'(m25)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg

              p_doc

              'realizada com sucesso.'(m24)

              space

              '061'.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg_doc

              space

              space

              space

              '061'.

    ELSE.

      PERFORM store_erros

        USING itab_zycbt034.

    ENDIF.

  ELSE.

    PERFORM store_erros

      USING itab_zycbt034.

  ENDIF.

ENDFORM.

FORM contabiliza_estorno_dispon

  CHANGING p_disp TYPE t_disponibilidade.

  DATA:

    v_count     TYPE t_mensagem-msg,

    v_msg       TYPE t_mensagem-msg,

    v_cpochv    TYPE /pws/zycbe033-cpochv,

    wa_cont     TYPE t_contabilizacoes,

    wa_zycbt011 TYPE /pws/zycbe011,

    wa_zycbt034 LIKE LINE OF itab_zycbt034,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    wa_mensagem TYPE t_mensagem.

  PERFORM limpa_dados_bi.

  CONCATENATE <fs_op>-bukrs

              p_disp-nrseq

              p_disp-destino

              p_disp-dtdisp

         INTO v_cpochv.

  CASE <fs_op>-tipo_op.

    WHEN 'E'.

      PERFORM busca_parametros

        USING '029'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '029'

              'TRE'

              space

        CHANGING wa_zycbe033.

    WHEN 'P'.

      PERFORM busca_parametros

        USING '030'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '030'

              'TRE'

              space

        CHANGING wa_zycbe033.

  ENDCASE.

  PERFORM preenche_f02_estorno_dispon

    USING p_disp

          wa_zycbt011

          v_cpochv

    CHANGING wa_zycbe033.

  APPEND wa_zycbe033 TO itab_zycbe033.

  IF itab_zycbt034[] IS INITIAL.

    PERFORM executa_f02.

    PERFORM verifica_contabilizacao

      USING c_f02 c_zycbt239 v_cpochv

            'Lançamento do estorno da disponibilidade'(m32)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      p_disp-belnr_f02 = wa_mensagem-belnr.

      wa_cont-belnr    = p_disp-belnr_f02.

      wa_cont-dtlancto = wa_zycbe033-budat.

      wa_cont-fb08     = 'X'.

      APPEND wa_cont TO itab_contabilizacoes.

      v_msg = p_disp-nrseq.

      SHIFT v_msg LEFT DELETING LEADING space.

      SHIFT v_msg LEFT DELETING LEADING '0'.

      CONCATENATE v_msg

                  '-'

                  p_disp-destino

                  '%'

             INTO v_msg.

      CONCATENATE wa_controle-msg_cnt '.' INTO v_count.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              v_count

              wa_mensagem-msg

              v_msg

              'realizada com sucesso.'(m24)

              '061'.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg_doc

              space

              space

              space

              '061'.

      PERFORM limpa_dados_bi.

    ELSE.

      PERFORM store_erros

        USING itab_zycbt034.

    ENDIF.

  ELSE.

    PERFORM store_erros

      USING itab_zycbt034.

  ENDIF.

ENDFORM.

FORM preenche_f02_estorno_dispon

  USING p_disp     LIKE LINE OF itab_disp_70

        p_zycbt011 TYPE /pws/zycbe011

        p_cpochv   TYPE /pws/zycbe033-cpochv

  CHANGING p_zycbe033 LIKE LINE OF itab_zycbe033.

  DATA:

    wa_zycbt089 LIKE LINE OF itab_zycbt089,

    v_codaux TYPE /pws/zygle316-codaux1.

  READ TABLE itab_zycbt089 INTO wa_zycbt089

    WITH KEY bukrs = <fs_op>-bukrs.

  p_zycbe033-tcode  = c_f02.

  p_zycbe033-tabela = c_zycbt239.

  p_zycbe033-cpochv = p_cpochv.

  p_zycbe033-bukrs = <fs_op>-bukrs.

  p_zycbe033-budat = p_disp-dtlanc.

  p_zycbe033-bldat = p_zycbe033-budat.

  p_zycbe033-waers   = <fs_op>-waers.

  p_zycbe033-gsber   = <fs_op>-gsberf.

  p_zycbe033-werks   = <fs_op>-werks.

  p_zycbe033-brnch = <fs_op>-j_1bbranch.

  p_zycbe033-wrbtr = p_disp-vldisp.

  PERFORM busca_taxa_disponibilidade

    USING p_disp

          p_zycbt011

          wa_zycbt089-tx_est_dispon

    CHANGING p_zycbe033-kursf.

  p_zycbe033-d_newko = <fs_op>-conta_contabil.

  p_zycbe033-c_newko = p_disp-conta_contabil.

  PERFORM verifica_campo_vazio USING p_zycbe033-budat

                                     'DTCREDEXT'

                                     'Data do Documento'(005).

  PERFORM verifica_campo_vazio USING p_zycbe033-bldat

                                     'DTLANCTO'

                                     'Data de Lançamento'(004).

  PERFORM verifica_campo_vazio USING p_zycbe033-bukrs

                                     'BUKRS'

                                     'Empresa'(006).

  PERFORM verifica_campo_vazio USING p_zycbe033-waers

                                     'WAERS'

                                     'Moeda'(010).

  PERFORM verifica_campo_vazio USING p_zycbe033-kursf

                                     'KURSF'

                                     'Taxa de Câmbio'(019).

  PERFORM verifica_campo_vazio USING p_zycbe033-d_newko

                                     'NEWKO'

                                     'Conta Débito'(035).

ENDFORM.

FORM clearing_conta_banco

  CHANGING p_disp TYPE t_disponibilidade.

  DATA:

    v_count     TYPE t_mensagem-msg,

    v_msg       TYPE t_mensagem-msg,

    v_cpochv    TYPE /pws/zycbe033-cpochv,

    wa_cont     TYPE t_contabilizacoes,

    wa_zycbt011 TYPE /pws/zycbe011,

    wa_zycbt034 LIKE LINE OF itab_zycbt034,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    wa_mensagem TYPE t_mensagem.

  CHECK NOT p_disp-belnr_f02 IS INITIAL.

  CHECK p_disp-operacao EQ c_excluido.

  PERFORM limpa_dados_bi.

  CONCATENATE <fs_op>-bukrs

              p_disp-nrseq

              p_disp-destino

              p_disp-dtdisp

         INTO v_cpochv.

  CASE <fs_op>-tipo_op.

    WHEN 'E'.

      PERFORM busca_parametros

        USING '029'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '029'

              'TRE'

              space

        CHANGING wa_zycbe033.

    WHEN 'P'.

      PERFORM busca_parametros

        USING '030'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '030'

              'TRE'

              space

        CHANGING wa_zycbe033.

  ENDCASE.

  PERFORM preenche_f30_clearing_banco

    USING p_disp

          wa_zycbt011

          v_cpochv

    CHANGING wa_zycbe033.

  APPEND wa_zycbe033 TO itab_zycbe033.

  IF itab_zycbt034[] IS INITIAL.

    PERFORM executa_f30.

    PERFORM verifica_contabilizacao

      USING c_f30 c_zycbt239 v_cpochv

            'Clearing da conta corrente'(m31)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      wa_cont-belnr_ant = <fs_op>-belnr_op2.

      wa_cont-dtlanc_ant = <fs_op>-dtlancto2.

      wa_cont-tabela = 'ITAB_ZYCBT226'.

      wa_cont-campo  = 'BELNR_OP2'.

      wa_cont-belnr    = wa_mensagem-belnr.

      wa_cont-dtlancto = wa_zycbe033-bldat.

      wa_cont-fbra     = 'X'.

      wa_cont-fb08     = 'X'.

      APPEND wa_cont TO itab_contabilizacoes.

      <fs_op>-belnr_op2 = wa_mensagem-belnr.

      <fs_op>-dtlancto2 = wa_zycbe033-bldat.

      v_msg = p_disp-nrseq.

      SHIFT v_msg LEFT DELETING LEADING space.

      SHIFT v_msg LEFT DELETING LEADING '0'.

      CONCATENATE v_msg

                  '-'

                  p_disp-destino

                  '%'

             INTO v_msg.

      CONCATENATE <fs_op>-conta_contabil

                  v_msg

             INTO v_msg

        SEPARATED BY space.

      SHIFT v_msg LEFT DELETING LEADING '0'.

      CONCATENATE wa_controle-msg_cnt '.' INTO v_count.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              v_count

              wa_mensagem-msg

              v_msg

              'realizada com sucesso.'(m24)

              '061'.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg_doc

              space

              space

              space

              '061'.

      PERFORM limpa_dados_bi.

    ELSE.

      PERFORM store_erros

        USING itab_zycbt034.

      p_disp-operacao = c_alterado.

      PERFORM estornar_contabilizacoes

        CHANGING itab_contabilizacoes.

    ENDIF.

  ELSE.

    PERFORM store_erros

      USING itab_zycbt034.

    p_disp-operacao = c_alterado.

    PERFORM estornar_contabilizacoes

      CHANGING itab_contabilizacoes.

  ENDIF.

ENDFORM.

FORM preenche_f30_clearing_banco

  USING p_disp     LIKE LINE OF itab_disp_70

        p_zycbt011 TYPE /pws/zycbe011

        p_cpochv   TYPE /pws/zycbe033-cpochv

  CHANGING p_zycbe033 LIKE LINE OF itab_zycbe033.

  DATA:

    wa_doctos   LIKE LINE OF itab_doctos,

    v_codaux TYPE /pws/zygle316-codaux1.

  p_zycbe033-tcode  = c_f30.

  p_zycbe033-tabela = c_zycbt239.

  p_zycbe033-cpochv = p_cpochv.

  p_zycbe033-bukrs = <fs_op>-bukrs.

  p_zycbe033-budat = p_disp-dtlanc.

  p_zycbe033-bldat = p_zycbe033-budat.

  p_zycbe033-waers   = <fs_op>-waers.

  p_zycbe033-gsber   = <fs_op>-gsberf.

  p_zycbe033-werks   = <fs_op>-werks.

  p_zycbe033-brnch = <fs_op>-j_1bbranch.

  p_zycbe033-wrbtr = p_disp-vldisp.

  p_zycbe033-newbs   = '50'.

  PERFORM define_taxa_cambio

    USING 'C'

      'X'

      p_zycbt011-codeven

      <fs_op>-bukrs

      <fs_op>-dtlancto

      <fs_op>-nrinvoic

    CHANGING

      p_zycbe033-kursf.

  p_zycbe033-d_newko = <fs_op>-conta_contabil.

  wa_doctos-tcode   = p_zycbe033-tcode.

  wa_doctos-tabela  = p_zycbe033-tabela.

  wa_doctos-cpochv  = p_zycbe033-cpochv.

  wa_doctos-belnr   = p_disp-belnr_f02.

  wa_doctos-dtdocto = p_disp-dtlanc.

  APPEND wa_doctos TO itab_doctos.

  wa_doctos-belnr   = <fs_op>-belnr_op2.

  wa_doctos-dtdocto = <fs_op>-dtlancto2.

  APPEND wa_doctos TO itab_doctos.

  PERFORM verifica_campo_vazio USING p_zycbe033-budat

                                     'DTCREDEXT'

                                     'Data do Documento'(005).

  PERFORM verifica_campo_vazio USING p_zycbe033-bldat

                                     'DTLANCTO'

                                     'Data de Lançamento'(004).

  PERFORM verifica_campo_vazio USING p_zycbe033-bukrs

                                     'BUKRS'

                                     'Empresa'(006).

  PERFORM verifica_campo_vazio USING p_zycbe033-waers

                                     'WAERS'

                                     'Moeda'(010).

  PERFORM verifica_campo_vazio USING p_zycbe033-kursf

                                     'KURSF'

                                     'Taxa de Câmbio'(019).

  PERFORM verifica_campo_vazio USING p_zycbe033-d_newko

                                     'NEWKO'

                                     'Conta Débito'(035).

ENDFORM.

FORM clearing_conta_disp

  CHANGING p_disp TYPE t_disponibilidade.

  DATA:

    v_count     TYPE t_mensagem-msg,

    v_msg       TYPE t_mensagem-msg,

    v_cpochv    TYPE /pws/zycbe033-cpochv,

    wa_cont     TYPE t_contabilizacoes,

    wa_zycbt011 TYPE /pws/zycbe011,

    wa_zycbt034 LIKE LINE OF itab_zycbt034,

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    wa_mensagem TYPE t_mensagem.

  CHECK p_disp-operacao EQ c_excluido.

  PERFORM limpa_dados_bi.

  CONCATENATE <fs_op>-bukrs

              p_disp-nrseq

              p_disp-destino

              p_disp-dtdisp

         INTO v_cpochv.

  CASE <fs_op>-tipo_op.

    WHEN 'E'.

      PERFORM busca_parametros

        USING '029'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '029'

              'TRE'

              space

        CHANGING wa_zycbe033.

    WHEN 'P'.

      PERFORM busca_parametros

        USING '030'

              'E'

        CHANGING wa_zycbt011 wa_zycbe033.

      PERFORM busca_parametros_321

        USING '030'

              'TRE'

              space

        CHANGING wa_zycbe033.

  ENDCASE.

  PERFORM preenche_f30_clear_conta_disp

    USING p_disp

          wa_zycbt011

          v_cpochv

    CHANGING wa_zycbe033.

  APPEND wa_zycbe033 TO itab_zycbe033.

  IF itab_zycbt034[] IS INITIAL.

    PERFORM executa_f30.

    PERFORM verifica_contabilizacao

      USING c_f30 c_zycbt239 v_cpochv

            'Clearing da conta corrente'(m31)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      wa_cont-belnr    = wa_mensagem-belnr.

      wa_cont-dtlancto = wa_mensagem-bldat.

      wa_cont-fb08     = 'X'.

      APPEND wa_cont TO itab_contabilizacoes.

      v_msg = p_disp-nrseq.

      SHIFT v_msg LEFT DELETING LEADING space.

      SHIFT v_msg LEFT DELETING LEADING '0'.

      CONCATENATE v_msg

                  '-'

                  p_disp-destino

                  '%'

             INTO v_msg.

      CONCATENATE p_disp-conta_contabil

                  v_msg

             INTO v_msg

        SEPARATED BY space.

      SHIFT v_msg LEFT DELETING LEADING '0'.

      CONCATENATE wa_controle-msg_cnt '.' INTO v_count.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              v_count

              wa_mensagem-msg

              v_msg

              'realizada com sucesso.'(m24)

              '061'.

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'I'

              wa_mensagem-msg_doc

              space

              space

              space

              '061'.

      PERFORM limpa_dados_bi.

    ELSE.

      PERFORM store_erros

        USING itab_zycbt034.

      p_disp-operacao = c_alterado.

      PERFORM estornar_contabilizacoes

        CHANGING itab_contabilizacoes.

    ENDIF.

  ELSE.

    PERFORM store_erros

      USING itab_zycbt034.

    p_disp-operacao = c_alterado.

    PERFORM estornar_contabilizacoes

      CHANGING itab_contabilizacoes.

  ENDIF.

ENDFORM.

FORM preenche_f30_clear_conta_disp

  USING p_disp     LIKE LINE OF itab_disp_70

        p_zycbt011 TYPE /pws/zycbe011

        p_cpochv   TYPE /pws/zycbe033-cpochv

  CHANGING p_zycbe033 LIKE LINE OF itab_zycbe033.

  DATA:

    wa_doctos   LIKE LINE OF itab_doctos,

    v_codaux TYPE /pws/zygle316-codaux1.

  p_zycbe033-tcode  = c_f30.

  p_zycbe033-tabela = c_zycbt239.

  p_zycbe033-cpochv = p_cpochv.

  p_zycbe033-bukrs = <fs_op>-bukrs.

  p_zycbe033-budat = p_disp-dtlanc.

  p_zycbe033-bldat = p_zycbe033-budat.

  p_zycbe033-waers   = <fs_op>-waers.

  p_zycbe033-gsber   = <fs_op>-gsberf.

  p_zycbe033-werks   = <fs_op>-werks.

  p_zycbe033-brnch = <fs_op>-j_1bbranch.

  p_zycbe033-wrbtr = p_disp-vldisp.

  p_zycbe033-newbs   = '50'.

  p_zycbe033-flag_nc = 'X'.

  PERFORM busca_taxa_disponibilidade

    USING p_disp

          p_zycbt011

          wa_zycbt089-tx_est_dispon

    CHANGING p_zycbe033-kursf.

  p_zycbe033-d_newko = p_disp-conta_contabil.

  wa_doctos-tcode   = p_zycbe033-tcode.

  wa_doctos-tabela  = p_zycbe033-tabela.

  wa_doctos-cpochv  = p_zycbe033-cpochv.

  wa_doctos-belnr   = p_disp-belnr_f02.

  wa_doctos-dtdocto = p_disp-dtlanc.

  APPEND wa_doctos TO itab_doctos.

  wa_doctos-belnr   = p_disp-doc_cont.

  wa_doctos-dtdocto = p_disp-dtlanc.

  APPEND wa_doctos TO itab_doctos.

  PERFORM verifica_campo_vazio USING p_zycbe033-budat

                                     'DTCREDEXT'

                                     'Data do Documento'(005).

  PERFORM verifica_campo_vazio USING p_zycbe033-bldat

                                     'DTLANCTO'

                                     'Data de Lançamento'(004).

  PERFORM verifica_campo_vazio USING p_zycbe033-bukrs

                                     'BUKRS'

                                     'Empresa'(006).

  PERFORM verifica_campo_vazio USING p_zycbe033-waers

                                     'WAERS'

                                     'Moeda'(010).

  PERFORM verifica_campo_vazio USING p_zycbe033-kursf

                                     'KURSF'

                                     'Taxa de Câmbio'(019).

  PERFORM verifica_campo_vazio USING p_zycbe033-d_newko

                                     'NEWKO'

                                     'Conta Débito'(035).

ENDFORM.

FORM estornar_contabilizacoes

  CHANGING p_itab_cont TYPE t_t_contabilizacoes.

  DATA:

    v_cpochv    TYPE /pws/zycbe033-cpochv,

    wa_zycbe033 TYPE t_s_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 message_store

    USING '/PWS/ZYCBM'

          'I'

          '** ERRO NO ESTORNO **'(m33)

          space

          space

          space

          '061'.

  PERFORM limpa_dados_bi.

  CONCATENATE <fs_op>-bukrs

              <fs_op>-nrseq

         INTO v_cpochv.

  wa_zycbe033-tabela = c_zycbt239.

  wa_zycbe033-bukrs = <fs_op>-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

              wa_zycbe033

              v_cpochv

        CHANGING wa_cont-belnr.

    ENDIF.

    IF NOT wa_cont-belnr_ant IS INITIAL AND

           wa_cont-valor_ant IS INITIAL.

      ASSIGN (wa_cont-tabela) TO <fs_tabela>.

      CHECK <fs_tabela> IS ASSIGNED.

      LOOP AT <fs_tabela> ASSIGNING <fs_linha>.

        ASSIGN COMPONENT wa_cont-campo

          OF STRUCTURE <fs_linha> TO <fs_campo>.

        CHECK <fs_campo> IS ASSIGNED.

        CHECK NOT wa_cont-belnr_ant IS INITIAL.

        IF <fs_campo> EQ wa_cont-belnr OR

           <fs_campo> IS INITIAL.

          <fs_campo> = wa_cont-belnr_ant.

        ENDIF.

      ENDLOOP.

    ENDIF.

    IF NOT wa_cont-valor_ant IS INITIAL.

      ASSIGN (wa_cont-tabela) TO <fs_tabela>.

      CHECK <fs_tabela> IS ASSIGNED.

      LOOP AT <fs_tabela> ASSIGNING <fs_linha>.

        ASSIGN COMPONENT wa_cont-campo

          OF STRUCTURE <fs_linha> TO <fs_campo>.

        ASSIGN COMPONENT wa_cont-campo_valor

          OF STRUCTURE <fs_linha> TO <fs_campo_valor>.

        CHECK <fs_campo> IS ASSIGNED AND

              <fs_campo_valor> IS ASSIGNED.

        IF <fs_campo> EQ wa_cont-belnr OR

           <fs_campo> IS INITIAL.

          <fs_campo_valor> = wa_cont-valor_ant.

        ENDIF.

      ENDLOOP.

    ENDIF.

    IF wa_cont-fb08 EQ 'X'.

      PERFORM estorna_documento

        USING wa_cont-dtlancto

              wa_zycbe033

              v_cpochv

        CHANGING wa_cont-belnr.

    ENDIF.

  ENDLOOP.

  REFRESH:

    p_itab_cont.

ENDFORM.

FORM loop_at_screen_rendimentos

  USING p_itab_rend     TYPE t_t_rendimentos

        p_tc            TYPE cxtab_control.

  DATA:

    wa_rend TYPE t_rendimentos.

  READ TABLE p_itab_rend INTO wa_rend

    INDEX p_tc-current_line.

  READ TABLE itab_zycbt007 INTO wa_zycbt007

    WITH KEY bukrs = /pws/zycbe226-bukrs.

  LOOP AT SCREEN.

    IF sy-tcode EQ c_transacao_e.

      screen-input = 0.

      MODIFY SCREEN.

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM estorna_disp_incompleta

  USING p_disp TYPE t_disponibilidade.

  DATA:

    v_cpochv    TYPE /pws/zycbe033-cpochv,

    wa_zycbe033 TYPE t_s_zycbe033.

  FIELD-SYMBOLS:

    <fs_tabela> TYPE INDEX TABLE,

    <fs_linha>  TYPE ANY,

    <fs_campo>  TYPE ANY.

  PERFORM limpa_dados_bi.

  CONCATENATE <fs_op>-bukrs

              <fs_op>-nrseq

         INTO v_cpochv.

  wa_zycbe033-tabela = c_zycbt239.

  wa_zycbe033-bukrs = <fs_op>-bukrs.

  IF NOT p_disp-doc_desm IS INITIAL.

    PERFORM cancela_documento

      USING p_disp-dtlanc

            wa_zycbe033

            v_cpochv

      CHANGING p_disp-doc_desm.

    PERFORM estorna_documento

      USING p_disp-dtlanc

            wa_zycbe033

            v_cpochv

      CHANGING p_disp-doc_desm.

  ENDIF.

  IF NOT p_disp-doc_cont IS INITIAL.

    PERFORM estorna_documento

      USING p_disp-dtlanc

            wa_zycbe033

            v_cpochv

      CHANGING p_disp-doc_cont.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCB034I01

 

...

    WHEN '/CS'.

      PERFORM drill_down.

  ENDCASE.

  CASE sy-dynnr.

    WHEN '0002'.

      PERFORM user_command_0002.

    WHEN '0100'.

      PERFORM user_command_0100.

    WHEN '0051'.

      PERFORM user_command_0051.

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

    WHEN '0110'.

      PERFORM user_command_0110.

    WHEN '0120'.

      PERFORM user_command_0120.

    WHEN '0131'.

      PERFORM user_command_0131.

    WHEN '0132'.

      PERFORM user_command_0132.

    WHEN '0140'.

      PERFORM user_command_0140.

* << Fim da inclusão

  ENDCASE.

ENDMODULE.

MODULE user_command_exit INPUT.

  CASE sy-dynnr.

    WHEN '0100'.

      CASE sy-tcode.

        WHEN c_transacao_a OR

             c_transacao_e.

          LEAVE TO SCREEN 0001.

        WHEN OTHERS.

...

 

...

    IF NOT /pws/zycbe226-dtcredext IS INITIAL.

      /pws/zycbe226-dtlimite = /pws/zycbe226-dtcredext +

                               wa_zycbt089-nrdias_ord_pagto.

    ELSE.

      /pws/zycbe226-dtlimite = sy-datum +

                               wa_zycbt089-nrdias_ord_pagto.

    ENDIF.

  ENDIF.

ENDMODULE.

MODULE verifica_periodo_contabil INPUT.

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

  DATA: v_periodo            TYPE frper,

        v_ano                TYPE gjahr,

        v_periodo_fechado(1) TYPE c.

* << Fim da exclusão

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

  DATA:

    wa_contrato TYPE t_contrato,

    v_empresa TYPE /pws/zycbe226-bukrs,

    v_data    TYPE /pws/zycbe226-dtlancto,

    v_msg     TYPE /pws/zycbt032-msg,

    v_condicao.

* << Fim da inclusão

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

  PERFORM determina_periodo_contabil

    USING    /pws/zycbe226-bukrs

             /pws/zycbe226-dtlancto

    CHANGING v_periodo

             v_ano.

* << Fim da exclusão

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

  CASE sy-dynnr.

    WHEN '0132'.

      v_empresa = /pws/zycbe226-bukrs.

      v_msg     = 'Favor corrigir campo Data de Débito/Crédito.'(m23).

      v_data    = /pws/zycbe239-dtdebito.

      READ TABLE itab_contrato INTO wa_contrato

        INDEX tc_contrato-current_line.

* << Fim da inclusão

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

  PERFORM verifica_periodo_contabil

    USING

      /pws/zycbe226-bukrs

      v_periodo

      v_ano

    CHANGING v_periodo_fechado.

* << Fim da exclusão

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

      IF wa_contrato-operacao EQ c_novo.

        v_condicao = 'X'.

      ENDIF.

* << Fim da inclusão

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

  IF v_periodo_fechado = 'X'.

* << Fim da exclusão

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

    WHEN '0110'.

      v_empresa = /pws/zycbe226-bukrs.

      v_msg     = 'Favor corrigir campo Data de Lançamento.'(m12).

      v_data    = /pws/zycbe226-dtlancto.

* << Fim da inclusão

    IF sy-tcode = c_transacao_c.

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

      PERFORM message_store

        USING '/PWS/ZYCBM'

              'E'

              'Favor corrigir campo Data de Lançamento.'(m12)

              space

              space

              space

              '061'.

      CLEAR v_periodo_fechado.

    ELSEIF sy-tcode = c_transacao_a.

      wa_controle-periodo_fechado = v_periodo_fechado.

* << Fim da exclusão

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

        v_condicao = 'X'.

* << Fim da inclusão

    ENDIF.

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

  ENDIF.

* << Fim da exclusão

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

  ENDCASE.

  CHECK v_condicao EQ 'X'.

  PERFORM verifica_periodo

    USING v_empresa

          v_data

          v_msg.

* << Fim da inclusão

ENDMODULE.

MODULE get_invoice INPUT.

  PERFORM get_invoice.

ENDMODULE.

* >> Início da inclusão:

MODULE atualiza_tc INPUT.

  CASE sy-dynnr.

    WHEN '0120'.

      PERFORM atualiza_tc_disponibilidade

        USING itab_disp_30

              tc_30

              c_30.

    WHEN '0131'.

      PERFORM atualiza_tc_disponibilidade

        USING itab_disp_70

              tc_70

              c_70.

    WHEN '0132'.

      PERFORM atualiza_tc_contrato

        USING itab_contrato

              tc_contrato.

    WHEN '0140'.

      PERFORM atualiza_tc_rendimentos

        USING itab_rendimentos

              tc_rendimentos.

  ENDCASE.

ENDMODULE.

MODULE guarda_ts_atual INPUT.

  wa_controle-ts_atual = ts_principal-activetab.

ENDMODULE.

MODULE verifica_campos INPUT.

  DATA:

    wa_disp     LIKE LINE OF itab_disp_30,

    v_sldext    TYPE /pws/zycbe226-sld_exterior.

  CLEAR:

    wa_contrato,

    v_sldext.

  CASE sy-dynnr.

    WHEN '0120'.

      LOOP AT itab_disp_70 INTO wa_disp

        WHERE nrseq   = /pws/zycbe238-nrseq

          AND operacao NE space.

        READ TABLE itab_disp_ant

          WITH KEY nrseq   = wa_disp-nrseq

                   destino = wa_disp-destino

                   dtdisp  = wa_disp-dtdisp

          TRANSPORTING NO FIELDS.

        IF sy-subrc NE 0.

          v_sldext = v_sldext + wa_disp-vldisp.

        ENDIF.

      ENDLOOP.

      v_sldext = v_sldext + /pws/zycbe238-vldisp.

      IF /pws/zycbe238-vldisp GT /pws/zycbe226-sld_exterior OR

         v_sldext             GT /pws/zycbe226-sld_exterior.

        MESSAGE e061

          WITH 'Valor maior que o saldo. Favor corrigir.'(033).

      ENDIF.

    WHEN '0131'.

      LOOP AT itab_disp_30 INTO wa_disp

        WHERE nrseq   = /pws/zycbe238-nrseq

          AND operacao NE space.

        READ TABLE itab_disp_ant

          WITH KEY nrseq   = wa_disp-nrseq

                   destino = wa_disp-destino

                   dtdisp  = wa_disp-dtdisp

          TRANSPORTING NO FIELDS.

        IF sy-subrc NE 0.

          v_sldext = v_sldext + wa_disp-vldisp.

        ENDIF.

      ENDLOOP.

      v_sldext = v_sldext + /pws/zycbe238-vldisp.

      IF /pws/zycbe238-vldisp GT /pws/zycbe226-sld_exterior OR

         v_sldext             GT /pws/zycbe226-sld_exterior.

        MESSAGE e061

          WITH 'Valor maior que o saldo. Favor corrigir.'(033).

      ENDIF.

    WHEN '0132'.

      CLEAR:

        wa_contrato.

      MOVE-CORRESPONDING:

        /pws/zycbe239 TO wa_contrato.

      READ TABLE itab_contrato INTO wa_contrato

        INDEX tc_contrato-current_line

        TRANSPORTING indice operacao.

      MODIFY itab_contrato FROM wa_contrato

        INDEX tc_contrato-current_line.

      IF /pws/zycbe239-tpcontr EQ c_tp1.

        MODIFY itab_contrato FROM wa_contrato

          TRANSPORTING bco_mi bco_fech kursf dtcontr

                       dtfech dtdebito dtliquid dtswift

          WHERE indice = wa_contrato-indice.

      ENDIF.

    WHEN '0140'.

      IF NOT /pws/zycbe240-bco_ext IS INITIAL.

        SELECT name1 UP TO 1 ROWS

          FROM lfa1 INTO /pws/zycbe240-nome_bco

          WHERE lifnr = /pws/zycbe240-bco_ext.

        ENDSELECT.

      ELSE.

        CLEAR /pws/zycbe240-nome_bco.

      ENDIF.

  ENDCASE.

ENDMODULE.

MODULE verifica_data_disp INPUT.

  DATA:

    v_destino TYPE /pws/zycbe238-destino.

  CASE sy-dynnr.

    WHEN '0120'.

      v_destino = c_30.

    WHEN '0131'.

      v_destino = c_70.

  ENDCASE.

  READ TABLE itab_disp_ant

    WITH KEY nrseq   = /pws/zycbe238-nrseq

             destino =  v_destino

             dtdisp  = /pws/zycbe238-dtdisp

    TRANSPORTING NO FIELDS.

  IF sy-subrc EQ 0.

    MESSAGE e061 WITH 'Data Inválida, Favor redigitar.'(034).

  ENDIF.

ENDMODULE.

MODULE verifica_taxa_contrato INPUT.

  DATA:

    v_indice    TYPE sy-index,

    v_kursf     TYPE /pws/zycbt239-kursf.

  CLEAR:

    wa_disp,

    wa_contrato.

  CASE sy-dynnr.

    WHEN '0131'.

      READ TABLE itab_disp_70 INTO wa_disp

        INDEX tc_70-current_line.

      v_indice = wa_disp-indice.

      READ TABLE itab_contrato INTO wa_contrato

        WITH KEY indice  = v_indice

                 tpcontr = c_tp1.

    WHEN '0132'.

      CHECK /pws/zycbe239-tpcontr NE c_tp4.

      READ TABLE itab_contrato INTO wa_contrato

        INDEX tc_contrato-current_line.

      v_indice = wa_contrato-indice.

      READ TABLE itab_disp_70 INTO wa_disp

        WITH KEY indice = v_indice.

  ENDCASE.

  wa_contrato-vlordem_mi =

    wa_contrato-kursf * wa_disp-vldisp.

  MODIFY itab_contrato FROM wa_contrato

    TRANSPORTING vlordem_mi

    WHERE indice = wa_contrato-indice.

ENDMODULE.

MODULE define_operacao INPUT.

  CASE sy-dynnr.

    WHEN '0120'.

      PERFORM define_operacao_disp

        USING tc_30

        CHANGING itab_disp_30.

    WHEN '0131'.

      PERFORM define_operacao_disp

        USING tc_70

        CHANGING itab_disp_70.

  ENDCASE.

ENDMODULE.

module drilldown input.

  DATA: v_campo(30) TYPE c,

        v_value(10) TYPE c,

        v_index     TYPE sy-tabix.

  FIELD-SYMBOLS:

    <fs_receb> LIKE LINE OF itab_zycbt226.

  CASE ok_code.

    WHEN '/CS'.

      CHECK sy-tcode = c_transacao_c.

      LOOP AT SCREEN.

        IF SCREEN-name EQ '/PWS/ZYCBE226-VLR_EXTERIOR' OR

           SCREEN-name EQ '/PWS/ZYCBE226-BCO_ME'.

          SCREEN-required = 0.

          MODIFY SCREEN.

        ENDIF.

      ENDLOOP.

      GET CURSOR FIELD v_campo VALUE v_value.

      CHECK NOT v_campo IS INITIAL.

      CHECK v_campo EQ '/PWS/ZYCBE226-SLD_TRANSFERIR'.

      GET CURSOR LINE v_index.

      CHECK NOT v_index IS INITIAL.

      IF tc_op-top_line NE 1.

        v_index = v_index + tc_op-top_line - 1.

      ENDIF.

      READ TABLE itab_zycbt226 INDEX v_index ASSIGNING <fs_receb>.

      CHECK sy-subrc EQ 0.

      MOVE:

        <fs_receb>-SLD_TRANSFERIR TO <fs_receb>-VLR_EXTERIOR,

        'X' TO <fs_receb>-drilldown.

    WHEN 'RECEB_TOT'.

      LOOP AT SCREEN.

        IF SCREEN-name EQ '/PWS/ZYCBE226-VLR_EXTERIOR' OR

           SCREEN-name EQ '/PWS/ZYCBE226-BCO_ME'.

          SCREEN-required = 0.

          MODIFY SCREEN.

        ENDIF.

      ENDLOOP.

      LOOP AT itab_zycbt226 ASSIGNING <fs_receb>.

        MOVE:

          <fs_receb>-SLD_TRANSFERIR TO <fs_receb>-VLR_EXTERIOR,

          'X' TO <fs_receb>-drilldown.

      ENDLOOP.

  ENDCASE.

endmodule.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCB034O01

 

...

          ENDIF.

        ENDIF.

        <fs_zycbt226>-acesso_emp = wa_controle-autorizacao_emp.

  endloop.

  DELETE itab_zycbt226 WHERE acesso_emp is initial.

  PERFORM message_show USING 'X'.

ENDMODULE.

MODULE calcula_total_destino OUTPUT.

  PERFORM calcula_total_destino.

ENDMODULE.

* >> Início da inclusão:

module preenche_tc_disponibilidade output.

  CASE sy-dynnr.

    WHEN '0120'.

      PERFORM preenche_tc_disponibilidade

        USING itab_disp_30

              tc_30.

    WHEN '0131'.

      PERFORM preenche_tc_disponibilidade

        USING itab_disp_70

              tc_70.

  ENDCASE.

endmodule.

module loop_at_screen_tc_linhas output.

  CASE sy-dynnr.

    WHEN '0120'.

      PERFORM loop_at_screen_disp

        using itab_disp_30

              tc_30

              c_30.

    WHEN '0131'.

      PERFORM loop_at_screen_disp

        using itab_disp_70

              tc_70

              c_70.

    WHEN '0132'.

      PERFORM loop_at_screen_contr

        using itab_contrato

              tc_contrato.

   WHEN '0140'.

      PERFORM loop_at_screen_rendimentos

        using itab_rendimentos

              tc_rendimentos.

  ENDCASE.

endmodule.

module preenche_tc_contrato output.

  PERFORM preenche_tc_contrato

    USING itab_disp_70

          itab_contrato

          tc_contrato.

endmodule.

module preenche_tc_rendimentos output.

  PERFORM preenche_tc_rendimentos

    USING itab_rendimentos

          tc_rendimentos.

endmodule.

module verificar_linhas output.

  DATA:

    v_linhas type sy-index.

  CASE sy-dynnr.

    WHEN '0110'.

      DESCRIBE TABLE itab_zycbt226 LINES v_linhas.

      tc_op-lines = v_linhas.

    WHEN '0120'.

      DESCRIBE TABLE itab_disp_30 LINES v_linhas.

      tc_30-lines = v_linhas.

    WHEN '0131'.

      DESCRIBE TABLE itab_disp_70 LINES v_linhas.

      tc_70-lines = v_linhas.

    WHEN '0132'.

      DESCRIBE TABLE itab_contrato LINES v_linhas.

      tc_contrato-lines = v_linhas.

    WHEN '0140'.

      DESCRIBE TABLE itab_rendimentos LINES v_linhas.

      tc_rendimentos-lines = v_linhas.

  ENDCASE.

endmodule.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCB034TOP

 

PROGRAM  /pws/sapmzycb034 MESSAGE-ID /pws/zycbm.

INCLUDE: /pws/zygli100,

         /pws/zygli101,

         <icon>.

TYPE-POOLS: icon.

TABLES: /pws/zycbe226,

* >> Início da inclusão:

        /pws/zycbe238,

        /pws/zycbe239,

        /pws/zycbe240,

* << Fim da inclusão

        /pws/zycbe017,

        /pws/zycbt089.

* >> Início da exclusão:

CONTROLS: tc_op TYPE TABLEVIEW USING SCREEN '0100'.

* << Fim da exclusão

* >> Início da inclusão:

CONTROLS:

  ts_70        TYPE TABSTRIP,

  ts_principal TYPE TABSTRIP,

  tc_op        TYPE TABLEVIEW USING SCREEN '0110',

  tc_30        TYPE TABLEVIEW USING SCREEN '0120',

  tc_70        TYPE TABLEVIEW USING SCREEN '0131',

  tc_contrato  TYPE TABLEVIEW USING SCREEN '0132',

  tc_rendimentos TYPE TABLEVIEW USING SCREEN '0140'.

* << Fim da inclusão

CONSTANTS:

* >> Início da inclusão:

  c_debito               TYPE c VALUE 'D',

  c_credito              TYPE c VALUE 'C',

  c_30(2)                TYPE c VALUE '30',

  c_70(2)                TYPE c VALUE '70',

  c_tp1                  TYPE /pws/zycbt239-tpcontr VALUE 'TIPO 01',

  c_tp4                  TYPE /pws/zycbt239-tpcontr VALUE 'TIPO 04',

  c_contabilizado        TYPE /pws/zycbt226-status  VALUE 'C',

  c_excluido             TYPE c VALUE 'E',

  c_alterado             TYPE c VALUE 'A',

  c_novo                 TYPE c VALUE 'N',

  c_tela_receb           TYPE FELD-FCOD VALUE 'TAB100_RECEB',

  c_tela_disp_30         TYPE FELD-FCOD VALUE 'TAB100_30',

  c_tela_ts_70           TYPE FELD-FCOD VALUE 'TAB100_70',

  c_tela_disp_70         TYPE FELD-FCOD VALUE 'TAB130_DISP',

  c_mark(6)              TYPE c VALUE 'V_MARK',

  c_parametro(14)        TYPE C VALUE 'ZYCBE034-NRSEQ',

  c_f02                  TYPE /pws/zycbt032-tcode   VALUE 'F-02',

  c_f30                  TYPE /pws/zycbt032-tcode   VALUE 'F-30',

  c_fb08                 TYPE /pws/zycbt032-tcode   VALUE 'FB08',

  c_fbra                 TYPE /pws/zycbt032-tcode   VALUE 'FBRA',

  c_zycbt239            TYPE /pws/zycbe033-tabela VALUE '/PWS/ZYCBT239',

  c_embarque_exportacao  TYPE /pws/zycbt226-tipo_op VALUE 'E',

  c_pagamento_antecipado TYPE /pws/zycbt226-tipo_op VALUE 'P',

  c_tx_lancamento        TYPE c VALUE 'L',

  c_tx_estorno           TYPE c VALUE 'E',

* << Fim da inclusão

  c_transacao_c(14)      TYPE c VALUE '/PWS/ZYCB034_C',

  c_transacao_a(14)      TYPE c VALUE '/PWS/ZYCB034_A',

  c_transacao_e(14)      TYPE c VALUE '/PWS/ZYCB034_E',

  c_op                   TYPE sy-cprog VALUE '/PWS/SAPMZYCB034',

  c_modulo(1)            TYPE c VALUE 'E',

  c_chave_oper(3)        TYPE c VALUE 'TRE',

  c_chv_oper_fat(3)      TYPE c VALUE 'FTE',

  c_codeven_op_emb(5)    TYPE c VALUE '029',

  c_codeven_op_pagant(5) TYPE c VALUE '030',

  c_codeven_fat(5)       TYPE c VALUE '010',

...

 

...

  c_desm_trs(8)          TYPE c VALUE 'DESM_TRS'.

TYPES:

BEGIN OF t_controle,

  dados_op_carregados(1)   TYPE c,

  parametros_carregados(1) TYPE c,

  msg_inicializada(1)      TYPE c,

  tc_linhas                TYPE sy-srows,

  autorizacao_emp(1)       TYPE c,

  total_30_70(1)           TYPE c,

  periodo_fechado(1)       TYPE c,

* >> Início da inclusão:

  ts_atual                 LIKE ts_principal-activetab,

  msg_cnt(3)               TYPE N,

* << Fim da inclusão

END OF t_controle,

* >> Início da inclusão:

BEGIN OF t_disponibilidade.

        INCLUDE STRUCTURE /pws/zycbt238.

TYPES:

  belnr_f02     type /pws/zycbt238-doc_cont,

  indice        TYPE sy-index,

  mark(1)       TYPE c,

  operacao(1)   TYPE c,

END OF t_disponibilidade,

BEGIN OF t_contrato.

        INCLUDE STRUCTURE /pws/zycbt239.

TYPES:

  indice        TYPE sy-index,

  mark(1)       TYPE c,

  operacao(1)   TYPE c,

END OF t_contrato,

BEGIN OF t_zycbt227.

        INCLUDE STRUCTURE /pws/zycbt227.

TYPES:

END OF t_zycbt227,

BEGIN OF t_mensagem,

  bukrs         TYPE /pws/zycbt001-bukrs,

  belnr         TYPE /pws/zycbt154-belnr_pr,

  budat         TYPE /pws/zycbe033-budat,

  bldat         TYPE /pws/zycbe033-bldat,

  tpmsg         TYPE /pws/zycbt032-tpmsg,

  msg           TYPE /pws/zycbt032-msg,

  msg_doc       TYPE /pws/zycbt032-msg,

END OF t_mensagem,

BEGIN OF t_doctos.

        INCLUDE STRUCTURE /pws/zycbt036.

TYPES:

END OF t_doctos,

BEGIN OF t_rendimentos.

        INCLUDE STRUCTURE /pws/zycbt240.

TYPES:

  mark(1)       TYPE c,

  operacao(1)   TYPE c,

END OF t_rendimentos,

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,

* << Fim da inclusão

BEGIN OF t_s_zycbt011.

        INCLUDE STRUCTURE /pws/zycbt011.

TYPES:

END OF t_s_zycbt011,

BEGIN OF t_s_zyglt321.

        INCLUDE STRUCTURE /pws/zyglt321.

TYPES:

END OF t_s_zyglt321,

BEGIN OF t_s_zycbt007.

        INCLUDE STRUCTURE /pws/zycbt007.

...

 

...

BEGIN OF t_s_tab_op.

        INCLUDE STRUCTURE /pws/zycbt226.

TYPES:

END OF t_s_tab_op,

BEGIN OF t_s_zycbe226.

        INCLUDE STRUCTURE /pws/zycbe226.

TYPES: mark(1)       TYPE c,

       operacao(1)   TYPE c,

       bloqueado(1)  TYPE c,

       acesso_emp(1) TYPE c,

* >> Início da inclusão:

       drilldown(1)  TYPE c,

* << Fim da inclusão

END OF t_s_zycbe226,

  BEGIN OF t_s_zycbt225.

        INCLUDE STRUCTURE /pws/zycbt225.

TYPES:

END OF t_s_zycbt225,

BEGIN OF t_s_zycbt017.

        INCLUDE STRUCTURE /pws/zycbt017.

TYPES:

END OF t_s_zycbt017,

BEGIN OF t_s_zycbt030.

...

 

...

t_t_kna1     TYPE SORTED TABLE OF t_s_kna1

WITH UNIQUE KEY kunnr,

t_t_lfa1     TYPE SORTED TABLE OF t_s_lfa1

WITH UNIQUE KEY lifnr,

t_t_zycbt011 TYPE SORTED TABLE OF t_s_zycbt011

WITH UNIQUE KEY codeven codmod bukrs,

t_t_zycbt009 TYPE SORTED TABLE OF t_s_zycbt009

WITH UNIQUE KEY codpadr,

t_t_zycbt039 TYPE SORTED TABLE OF t_s_zycbt039

WITH UNIQUE KEY modo,

* >> Início da inclusão:

t_t_disponibilidade TYPE TABLE OF t_disponibilidade WITH DEFAULT KEY,

t_t_contrato        TYPE TABLE OF t_contrato        WITH DEFAULT KEY,

t_t_zycbt227        TYPE TABLE OF t_zycbt227        WITH DEFAULT KEY,

t_t_doctos          TYPE TABLE OF t_doctos          WITH DEFAULT KEY,

t_t_rendimentos     TYPE TABLE OF t_rendimentos     WITH DEFAULT KEY,

t_t_contabilizacoes TYPE TABLE OF t_contabilizacoes WITH DEFAULT KEY,

* << Fim da inclusão

t_t_zycbt032       TYPE TABLE OF t_s_zycbt032       WITH DEFAULT KEY,

t_t_zycbe033       TYPE TABLE OF t_s_zycbe033       WITH DEFAULT KEY,

t_t_zycbt034       TYPE TABLE OF t_s_zycbt034       WITH DEFAULT KEY,

t_t_zycbt036       TYPE TABLE OF t_s_zycbt036       WITH DEFAULT KEY,

t_t_zyglt100       TYPE TABLE OF /pws/zyglt100      WITH DEFAULT KEY,

t_t_zyglt316       TYPE TABLE OF /pws/zyglt316      WITH DEFAULT KEY,

t_t_zyglt321       TYPE TABLE OF /pws/zyglt321      WITH DEFAULT KEY,

t_t_zyglt368       TYPE TABLE OF /pws/zyglt368      WITH DEFAULT KEY,

t_t_zycbt225       TYPE TABLE OF t_s_zycbt225       WITH DEFAULT KEY,

t_t_zycbt226       TYPE TABLE OF t_s_zycbe226       WITH DEFAULT KEY,

...

 

...

      itab_zyglt368       TYPE t_t_zyglt368,

      itab_zycbt011       TYPE t_t_zycbt011,

      itab_zycet001       TYPE t_t_zycet001,

      itab_zycet047       TYPE t_t_zycet047,

      itab_zycet048       TYPE t_t_zycet048,

      itab_zycit054       TYPE t_t_zycit054,

      itab_kna1           TYPE t_t_kna1,

      itab_lfa1           TYPE t_t_lfa1,

      itab_bkpf           TYPE t_t_bkpf,

      itab_zycbe224       TYPE t_t_zycbe224,

* >> Início da inclusão:

      itab_disp_30        TYPE t_t_disponibilidade,

      itab_disp_70        TYPE t_t_disponibilidade,

      itab_contrato       TYPE t_t_contrato,

      itab_zycbt227       TYPE t_t_zycbt227,

      itab_rendimentos    TYPE t_t_rendimentos,

      itab_disp_ant       TYPE t_t_disponibilidade,

      itab_contrato_ant   TYPE t_t_contrato,

      itab_doctos         TYPE t_t_doctos,

      itab_rendimentos_ant TYPE t_t_rendimentos,

      itab_contabilizacoes TYPE t_t_contabilizacoes,

* << Fim da inclusão

      itab_zycbt032       TYPE t_t_zycbt032,

      itab_zycbe033       TYPE t_t_zycbe033,

      itab_zycbt034       TYPE t_t_zycbt034,

      itab_zycbt036       TYPE t_t_zycbt036,

      itab_partidas       TYPE t_t_zycbe033.

DATA: wa_zycbt007  TYPE t_s_zycbt007,

      wa_zyglt009  TYPE t_s_zyglt009,

      wa_zycbt089  TYPE t_s_zycbt089,

      wa_controle  TYPE t_controle,

      wa_fat       TYPE t_s_zycbt017,

...

 

...

  opt_origem_pagantec(1) TYPE c,

  opt_destino_30(1)      TYPE c,

  opt_destino_70(1)      TYPE c,

  v_mark(1)            TYPE c,

  v_icone              TYPE icons-text,

  v_tela_help          TYPE sy-dynnr VALUE '0052'.

SELECTION-SCREEN BEGIN OF SCREEN 0001.

SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-011.

SELECT-OPTIONS: s_bukrs  FOR /pws/zycbe226-bukrs,

                s_nrseq  FOR /pws/zycbe226-nrseq,

* >> Início da exclusão:

                s_dest   FOR /pws/zycbe226-destino,

* << Fim da exclusão

                s_invoic FOR /pws/zycbe226-nrinvoic

                  MATCHCODE OBJECT /pws/zycba275,

                s_gsber  FOR /pws/zycbe226-gsberf,

                s_nrparc FOR /pws/zycbe226-nrparcf,

                s_kunag  FOR /pws/zycbe017-kunag,

                s_dtincl FOR /pws/zycbe226-dtincl,

                s_dtcext FOR /pws/zycbe226-dtcredext.

SELECTION-SCREEN END OF BLOCK a.

SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-021.

PARAMETERS: p_orig1 AS CHECKBOX,

...

 

...

PARAMETERS: p_moedag RADIOBUTTON GROUP w,

            p_moedam RADIOBUTTON GROUP w,

            p_moedab RADIOBUTTON GROUP w.

SELECTION-SCREEN END OF BLOCK c.

SELECTION-SCREEN END OF SCREEN 0001.

AT SELECTION-SCREEN OUTPUT.

  PERFORM: status_gui_0001,

           importa_selecao.

AT SELECTION-SCREEN.

  CHECK sy-dynnr EQ '0001'.

* >> Início da inclusão:

  DATA:

    v_ucomm type sy-ucomm.

  GET PARAMETER ID 'UCOMM' FIELD v_ucomm.

  SET PARAMETER ID 'UCOMM' FIELD space.

  IF NOT v_ucomm IS INITIAL.

    sy-ucomm = v_ucomm.

  ENDIF.

* << Fim da inclusão

  CASE sy-ucomm.

    WHEN 'CRET'.

      CLEAR wa_controle.

      PERFORM: limpa_itabs,

               seleciona_op.

      IF NOT itab_zycbt226[] IS INITIAL.

        CALL SCREEN '0100'.

      ELSE.

        MESSAGE i222.

        CALL SCREEN '0001'.

...

 

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

Modificações efetuadas em REPS /PWS/MZYGL007I01

 

...

    MESSAGE e015 WITH 'Entre com um valor entre 0 e 100.'(090).

  ENDIF.

ENDMODULE.

MODULE set_ccme INPUT.

  IF v_cc1 = 'X'.

    /pws/zyglt009-comp_aut_cc = 'X'.

  ELSE.

    CLEAR /pws/zyglt009-comp_aut_cc.

  ENDIF.

ENDMODULE.

* >> Início da inclusão:

module set_cont_disp input.

  IF v_conts = 'X'.

    /pws/zycbt007-cont_disp = 'X'.

  ELSE.

    /pws/zycbt007-cont_disp = space.

  ENDIF.

endmodule.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYGL007O01

 

...

                          AND NOT screen-name EQ 'SS_ROTINA'

                          AND NOT screen-name EQ 'TAB_GERAL3'

                          AND NOT screen-name EQ 'TAB_CORRET'

                          AND NOT screen-name EQ 'TAB_TAXA'

                          AND NOT screen-name EQ 'TAB_LIMITE'

                          AND NOT screen-name EQ 'TAB_CANC'

                          AND NOT screen-name EQ 'TAB_CONTAB2'

                          AND NOT screen-name EQ 'TAB_GERAIS2'

                          AND NOT screen-name EQ 'TAB_DOWNP'

                          AND NOT screen-name EQ 'TAB_COMIS'

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

                          AND NOT screen-name EQ 'TAB_TAXA2'.

* << Fim da exclusão

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

                          AND NOT screen-name EQ 'TAB_TAXA2'

                          AND NOT screen-name EQ 'TAB_DEREX'.

* << Fim da inclusão

      screen-input = 0.

    ENDIF.

    MODIFY SCREEN.

  ENDLOOP.

ENDMODULE.

MODULE move_dados_pbo OUTPUT.

  MOVE: wa_zycbt007 TO /pws/zycbt007,

        wa_zyglt009 TO /pws/zyglt009,

        wa_zycbt089 TO /pws/zycbt089.

ENDMODULE.

...

 

...

ENDMODULE.

MODULE set_ccme OUTPUT.

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

    v_cc1 = 'X'.

    CLEAR v_cc2.

  ELSE.

    v_cc2 = 'X'.

    CLEAR v_cc1.

  ENDIF.

ENDMODULE.

* >> Início da inclusão:

MODULE set_cont_disp OUTPUT.

  IF /pws/zycbt007-cont_disp = 'X'.

    v_conts = 'X'.

    CLEAR v_contn.

  ELSEIF /pws/zycbt007-cont_disp = space.

    v_contn = 'X'.

    CLEAR v_conts.

  ENDIF.

ENDMODULE.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYGL007TOP

 

...

      v_dr_sim            TYPE c,

      v_dr_nao            TYPE c,

      v_me                TYPE c,

      v_mi                TYPE c,

      v_dt_cred_vinc     TYPE c,

      v_contaimp1(1)     TYPE c,

      v_contaimp2(1)     TYPE c,

      v_contaimp3(1)     TYPE c,

      v_prov_prem(1)     TYPE c,

      v_prov_prem2(1)    TYPE c,

* >> Início da inclusão:

      v_conts(1)         TYPE c,

      v_contn(1)         TYPE c,

* << Fim da inclusão

      v_cc1(1)           TYPE c,

* >> Início da exclusão:

      v_cc2(1)           TYPE c.

* << Fim da exclusão

* >> Início da inclusão:

      v_cc2(1)           TYPE c,

      v_lei(30),

      v_cambio(30),

      v_origem(30).

* << Fim da inclusão

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCB034

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 031

 

Texto: (3 caracteres)

"30%"

 

Comprimento máximo: 3

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 032

 

Texto: (3 caracteres)

"70%"

 

Comprimento máximo: 3

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 033

 

Texto: (40 caracteres)

"Valor maior que o saldo. Favor corrigir."

 

Comprimento máximo: 40

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 034

 

Texto: (31 caracteres)

"Data Inválida, Favor redigitar."

 

Comprimento máximo: 31

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 035

 

Texto: (12 caracteres)

"Conta Débito"

 

Comprimento máximo: 12

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M18

 

Texto: (22 caracteres)

"Selecione o destino da"

 

Comprimento máximo: 22

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M19

 

Texto: (16 caracteres)

"disponibilidade:"

 

Comprimento máximo: 16

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M20

 

Texto: (28 caracteres)

"Valores Mantidos no Exterior"

 

Comprimento máximo: 28

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M21

 

Texto: (48 caracteres)

"Não existe saldo suficiente para disponibilizar."

 

Comprimento máximo: 48

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M22

 

Texto: (34 caracteres)

"Lançamento da Provisão do contrato"

 

Comprimento máximo: 34

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M23

 

Texto: (44 caracteres)

"Favor corrigir campo Data de Débito/Crédito."

 

Comprimento máximo: 44

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M24

 

Texto: (22 caracteres)

"realizada com sucesso."

 

Comprimento máximo: 22

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M25

 

Texto: (25 caracteres)

"Cancelamento do documento"

 

Comprimento máximo: 25

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M26

 

Texto: (20 caracteres)

"Estorno do documento"

 

Comprimento máximo: 20

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M27

 

Texto: (36 caracteres)

"Lançamento do clearing dos contratos"

 

Comprimento máximo: 36

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M28

 

Texto: (41 caracteres)

"Lançamento da Provisão da disponibilidade"

 

Comprimento máximo: 41

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M29

 

Texto: (33 caracteres)

"Desmembramento da disponibilidade"

 

Comprimento máximo: 33

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M30

 

Texto: (27 caracteres)

"Clearing da disponibilidade"

 

Comprimento máximo: 27

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M31

 

Texto: (26 caracteres)

"Clearing da conta corrente"

 

Comprimento máximo: 26

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M32

 

Texto: (40 caracteres)

"Lançamento do estorno da disponibilidade"

 

Comprimento máximo: 40

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M33

 

Texto: (21 caracteres)

"** ERRO NO ESTORNO **"

 

Comprimento máximo: 21

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M34

 

Texto: (17 caracteres)

"Dados do contrato"

 

Comprimento máximo: 17

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M35

 

Texto: (22 caracteres)

"para a disponibilidade"

 

Comprimento máximo: 22

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M36

 

Texto: (21 caracteres)

"gravados com sucesso."

 

Comprimento máximo: 21

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M37

 

Texto: (20 caracteres)

"gravada com sucesso."

 

Comprimento máximo: 20

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M38

 

Texto: (28 caracteres)

"Registro não será efetuado !"

 

Comprimento máximo: 28

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M39

 

Texto: (49 caracteres)

"Parametrização Geral, Contabiliza Disponibilidade"

 

Comprimento máximo: 49

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M40

 

Texto: (42 caracteres)

"=Sim, porém contas cadastradas na chave de"

 

Comprimento máximo: 42

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M41

 

Texto: (38 caracteres)

"operação(Fornecedor Banco) são iguais."

 

Comprimento máximo: 38

 

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

Excluído texto de seleção:

 

Idioma: PT

 

Variável (SELECT-OPTION / PARAMETER): S_DEST

 

Texto: (26 caracteres)

"Destino do Recurso"

 

Referência ao Dictionary: NÃO

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYGL007

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 091

 

Texto: (18 caracteres)

"Data de lançamento"

 

Comprimento máximo: 18

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 092

 

Texto: (27 caracteres)

"Data de crédito no exterior"

 

Comprimento máximo: 27

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 093

 

Texto: (23 caracteres)

"Data de disponibilidade"

 

Comprimento máximo: 23

 

 

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

Modificações efetuadas em TABD /PWS/ZYCBE227

 

MODIFICAR ESTRUTURA: /PWS/ZYCBE227

DESCRIÇÃO BREVE: CB - Associação de faturas a ordens de pagamento

 

COMPONENTES NOVOS

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

SALDO           WRBTR          /PWS/ZYCBE227   WAERS

 

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

Modificações efetuadas em TABD /PWS/ZYCBT007

 

MODIFICAR TABELA TRANSPARENTE: /PWS/ZYCBT007

DESCRIÇÃO BREVE: GL - Parâmetros Gerais Câmbio

 

CARACTERÍSTICAS

 

CAMPOS NOVOS

 

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

CONT_DISP       /PWS/ZYGLL1367

 

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

Modificações efetuadas em TABD /PWS/ZYCBT089

 

MODIFICAR TABELA TRANSPARENTE: /PWS/ZYCBT089

DESCRIÇÃO BREVE: CB - Parâm Gerais - Câmbio Exportação

 

CARACTERÍSTICAS

 

CAMPOS NOVOS

 

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

TX_LANC_DISPON       /PWS/ZYGLL1369

TX_EST_DISPON        /PWS/ZYGLL1370

 

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

Modificações efetuadas em TABD /PWS/ZYCBT227

 

MODIFICAR TABELA TRANSPARENTE: /PWS/ZYCBT227

DESCRIÇÃO BREVE: CB - Associação de faturas a ordens de pagamento

 

CARACTERÍSTICAS

 

CAMPOS NOVOS

 

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

SALDO           WRBTR                                   /PWS/ZYCBT227  WAERS

 

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

Modificações efetuadas em TABL /PWS/ZYCBE238

 

INCLUIR ESTRUTURA: /PWS/ZYCBE238

DESCRIÇÃO BREVE: CB - DISPONIBILIDADE DE VALORES MANTIDOS NO EXTERIOR

 

COMPONENTES NOVOS

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

MANDT         MANDT

NRSEQ         /PWS/ZYGLL1342

DESTINO  /PWS/ZYGLL1346

DTDISP         BUDAT          /PWS/ZYCBE238   WAERS

VLDISP         WRBTR

WAERS         WAERS

DTLANC         BUDAT

CONTA_CONTABIL  ALLGKONTO

DOC_CONT        BELNR_D

DOC_DESM  BELNR_D

DOC_COMP  BELNR_D

SALDO         WRBTR          /PWS/ZYCBE238   WAERS

 

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

Modificações efetuadas em TABL /PWS/ZYCBE239

 

INCLUIR ESTRUTURA: /PWS/ZYCBE238

DESCRIÇÃO BREVE: CB - DADOS DO CONTRATO DA DISPONIBILIDADE

Classe desenvolvimento: /PWS/ZYCB

 

COMPONENTES NOVOS

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

MANDT          MANDT

TPCONTR        /PWS/ZYGLL1368

NRSEQ          /PWS/ZYGLL1342

DESTINO        /PWS/ZYGLL1346

DTDISP         DATUM

BCO_MI         /PWS/ZYCBL135    LFA1                                           KRED

BCO_FECH       /PWS/ZYCBL260    LFA1                                           KRED

KURSF          KURSF

VLORDEM_MI     WRBTR                              /PWS/ZYCBE239   WAERS

NRCONTR        /PWS/ZYCBL020

DTCONTR        DATUM

DTFECH         DATUM

DTDEBITO       DATUM

DTLIQUID       DATUM

DTSWIFT        DATUM

PRACA          /PWS/ZYCBL315

INSTITUICAO    /PWS/ZYGLL889                                                   /PWS/ZYCAA018

CORRET         /PWS/ZYCBL245    LFA1                                           KRED

CODNATOPER     /PWS/ZYGLL661    /PWS/ZYGLT206

CODFRMENTREGA  /PWS/ZYGLL663    /PWS/ZYGLT207                                  /PWS/ZYCBA211

CODMODTRANSA   /PWS/ZYGLL663    /PWS/ZYGLT208                                  /PWS/ZYCBA212

CODNORMA       /PWS/ZYGLL733    /PWS/ZYGLT214                                  /PWS/ZYGLA220

MODALIDADE     /PWS/ZYGLL728

TXTLANC        BF_BUTXTEB

FRMRECEB       /PWS/ZYGLL663

DOC_CONT       BELNR_D

DOC_COMP       BELNR_D

WAERS          WAERS

 

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

Modificações efetuadas em TABL /PWS/ZYCBE240

 

INCLUIR ESTRUTURA: /PWS/ZYCBE240

DESCRIÇÃO BREVE: CB - RENDIMENTOS RECEBIDOS

Classe desenvolvimento: /PWS/ZYCB

 

COMPONENTES NOVOS

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

MANDT          MANDT

NRSEQR         /PWS/ZYCBL222

BUKRS          BUKRS            T001                                           H_T001

WAERS          WAERS            TCURC

WERKS          WERKS_D          T001W                                          H_T001W

J_1BBRANCH     J_1BBRANC_       J_1BBRANCH                                     J_1BBRANHV

GSBER          GSBER            TGSB                                           H_TGSB

VLCRED         WRBTR                              /PWS/ZYCBE240   WAERS

DTINCL         DATUM

DTRECEB        DATUM

ORIG_APLIC     NAME1

BCO_EXT        /PWS/ZYGLL1348   LFA1                                           KRED

NOME_BCO       NAME1

TXTINF         SGTXT

 

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

Modificações efetuadas em TABL /PWS/ZYCBT238

 

INCLUIR TABELA TRANSPARENTE: /PWS/ZYCBT238

DESCRIÇÃO BREVE: CB - DISPONIBILIDADE DE VALORES MANTIDOS NO EXTERIOR

 

CARACTERÍSTICAS

 

CATEGORIA DA TABELA: Tabela transparente

CLASSE DE ENTREGA: A

(X) - AUTUALIZAÇÃO DE TABELAS PERMITIDA

 

CAMPOS NOVOS

 

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

MANDT           MANDT           X   X

NRSEQ           /PWS/ZYGLL1342  X   X

DESTINO         /PWS/ZYGLL1346  X   X

DTDISP          BUDAT           X   X

VLDISP          WRBTR                                   /PWS/ZYCBT238 WAERS

WAERS           WAERS

DTLANC          BUDAT

CONTA_CONTABIL  ALLGKONTO

DOC_CONT        BELNR_D

DOC_DESM        BELNR_D

DOC_COMP        BELNR_D

SALDO           WRBTR                                   /PWS/ZYCBT238 WAERS

 

 

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.

 

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

Modificações efetuadas em TABL /PWS/ZYCBT239

 

INCLUIR TABELA TRANSPARENTE: /PWS/ZYCBT239

DESCRIÇÃO BREVE: CB - DADOS DO CONTRATO DA DISPONIBILIDADE

 

CARACTERÍSTICAS

 

CATEGORIA DA TABELA: Tabela transparente

CLASSE DE ENTREGA: A

(X) - AUTUALIZAÇÃO DE TABELAS PERMITIDA

 

CAMPOS NOVOS

 

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

MANDT           MANDT           X   X

TPCONTR         /PWS/ZYGLL1368  X   X

NRSEQ           /PWS/ZYGLL1342  X   X

DESTINO         /PWS/ZYGLL1346  X   X

DTDISP          DATUM           X   X

BCO_MI          /PWS/ZYCBL135            LFA1

BCO_FECH        /PWS/ZYCBL260            LFA1

KURSF           KURSF

VLORDEM_MI      WRBTR                                   /PWS/ZYCBT239 WAERS

NRCONTR         /PWS/ZYCBL020

DTCONTR         DATUM

DTFECH          DATUM

DTDEBITO        DATUM

DTLIQUID        DATUM

DTSWIFT         DATUM

PRACA           /PWS/ZYCBL315

INSTITUICAO     /PWS/ZYGLL889

CORRET          /PWS/ZYCBL245

CODNATOPER      /PWS/ZYGLL661

CODFRMENTREGA   /PWS/ZYGLL663

CODMODTRANSA    /PWS/ZYGLL663

CODNORMA        /PWS/ZYGLL733

MODALIDADE      /PWS/ZYGLL728

TXTLANC         BF_BUTXTEB

FRMRECEB        /PWS/ZYGLL663

DOC_CONT        BELNR_D

DOC_COMP        BELNR_D

WAERS           WAERS

 

 

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.

 

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

Modificações efetuadas em TABL /PWS/ZYCBT240

 

INCLUIR TABELA TRANSPARENTE: /PWS/ZYCBT240

DESCRIÇÃO BREVE: CB - RENDIMENTOS RECEBIDOS

 

CARACTERÍSTICAS

 

CATEGORIA DA TABELA: Tabela transparente

CLASSE DE ENTREGA: A

(X) - AUTUALIZAÇÃO DE TABELAS PERMITIDA

 

CAMPOS NOVOS

 

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

MANDT           MANDT           X   X

NRSEQR          /PWS/ZYCBL222   X   X

BUKRS           BUKRS

WAERS           WAERS

WERKS           WERKS_D

J_1BBRANCH      J_1BBRANC_

GSBER           GSBER

VLCRED          WRBTR                                   /PWS/ZYCBT240 WAERS

DTINCL          DATUM

DTRECEB         DATUM

ORIG_APLIC      NAME1

BCO_EXT         /PWS/ZYGLL1348

NOME_BCO        NAME1

TXTINF          SGTXT

 

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.

 

 

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

03270  - 00001 - DESENVOLVIMENTO ADICIONAL COMPLETO - ORDEM DE PAGAMENTO

03351  - 00002 - VALORES MANTIDOS NO EXTERIOR - DUMP NO MATCH-CODE DE FATURAS

03662  - 00003 - VALORES MANTIDOS NO EXTERIOR - CAMPO ZTERM

03912  - 00004 - VALORES MANTIDOS EXTERIOR - AJUSTE DE PERFORMANCE BKPF

04102  - 00005 - VALORES MANTIDOS NO EXTERIOR - DUMP AO SALVAR SEM ENTER

04364  - 00006 - SAÍDA DE PAGAMENTO - ORDEM DE PAGAMENTO - DATA EFETIVA

04709  - 00007 - VALORES MANTIDOS NO EXTERIOR - ESTORNO COM LIQUIDAÇÃO EM ANDAMENTO

04861  - 00008 - DA SAÍDA DE PAGAMENTO - COMPENSAÇÃO AUTOMÁTICA CC ME

04879  - 00009 - VALORES MANTIDOS NO EXTERIOR - SELEÇAO DO VALOR DA TAXA.

04958  - 00010 - FATURA/VINCULAÇÃO/LIQUIDAÇÃO - COMMODITIES

04992  - 00011 - VALORES MANTIDOS EXTERIOR(XBLNR) - REFERENCIA HORA

05469  - 00012 - DESENVOLVIMENTO ADICIONAL - SAÍDA DE PAGAMENTO UTILIZANDO CONTA CORRENTE

05470  - 00013 - RELATÓRIO VALORES RECEBIDOS EM C/C NO EXTERIOR

05471  - 00014 - DEREX - AJUSTES PARA NOVA ORDEM DE PAGAMENTO

05475  - 00015 - RELATÓRIO DE PAGAMENTOS COM RECURSOS NO EXTERIOR

05478  - 00016 - DA - ASSOCIAÇÃO DE ORDENS DE PAGAMENTO

05479  - 00017 - CAPTAÇÂO - ORDEM DE PAGAMENTO