Você está na página 1de 14

***----------------------------------------------------------------------*

*** PROCESS-IT *
***----------------------------------------------------------------------*
*** Autor......: Aurélio da Silva Leite *
*** Data.......: 01/04/2021 *
*** Descrição..: Carga e armazenamento dos dados SITEF *
*** Programa...: ZFIBK051 *
*** Cls Desenv.: ZDEV *
*** Transação..: ZESTABELECIMENTOS *
*** Request....: *
***----------------------------------------------------------------------*
*** Histórico das Modificações *
***----------------------------------------------------------------------*
***----------------------------------------------------------------------*
REPORT zfibk051.

TYPE-POOLS: truxs, vrm, slis.

***-----------------------------------------------------------------------
*** Tabelas transparentes
***-----------------------------------------------------------------------
TABLES: zestabelecimento, lfa1.

**-----------------------------------------------------------------------
** Tipos de estruturas
**-----------------------------------------------------------------------
TYPES: BEGIN OF ty_zestabelecimento,
mand TYPE zestabelecimento-mandt,
cnpj TYPE zestabelecimento-cnpj,
empresa TYPE zestabelecimento-empresa,
bknumber TYPE zestabelecimento-bknumber,
divisao TYPE zestabelecimento-divisao,
centro_custo TYPE zestabelecimento-centro_custo,
nome_loja TYPE zestabelecimento-nome_loja,
sitef TYPE zestabelecimento-sitef,
cod_cielo TYPE zestabelecimento-cod_cielo,
nlogico_cielo TYPE zestabelecimento-nlogico_cielo,
cod_rede TYPE zestabelecimento-cod_rede,
nlogico_rede TYPE zestabelecimento-nlogico_rede,
amex TYPE zestabelecimento-amex,
ticket TYPE zestabelecimento-ticket,
sodexo TYPE zestabelecimento-sodexo,
vr TYPE zestabelecimento-vr,
planvale TYPE zestabelecimento-planvale,
policard TYPE zestabelecimento-policard,
alelo TYPE zestabelecimento-alelo,
valecard TYPE zestabelecimento-valecard,
sorocred TYPE zestabelecimento-sorocred,
biq_beneficios TYPE zestabelecimento-biq_beneficios,
vegascard TYPE zestabelecimento-vegascard,
senff TYPE zestabelecimento-senff,
greencard TYPE zestabelecimento-greencard,
verocard TYPE zestabelecimento-verocard,
ben_visa_vale TYPE zestabelecimento-ben_visa_vale,
coopercard TYPE zestabelecimento-coopercard,
cabal_vale TYPE zestabelecimento-cabal_vale,
bnb_club TYPE zestabelecimento-bnb_club,
mercado_pago TYPE zestabelecimento-mercado_pago,
sel TYPE c,
END OF ty_zestabelecimento.

DATA: BEGIN OF t_estabelecimento OCCURS 0,


mand TYPE zestabelecimento-mandt,
cnpj TYPE zestabelecimento-cnpj,
empresa TYPE zestabelecimento-empresa,
bknumber TYPE zestabelecimento-bknumber,
divisao TYPE zestabelecimento-divisao,
centro_custo TYPE zestabelecimento-centro_custo,
nome_loja TYPE zestabelecimento-nome_loja,
sitef TYPE zestabelecimento-sitef,
cod_cielo TYPE zestabelecimento-cod_cielo,
nlogico_cielo TYPE zestabelecimento-nlogico_cielo,
cod_rede TYPE zestabelecimento-cod_rede,
nlogico_rede TYPE zestabelecimento-nlogico_rede,
amex TYPE zestabelecimento-amex,
ticket TYPE zestabelecimento-ticket,
sodexo TYPE zestabelecimento-sodexo,
vr TYPE zestabelecimento-vr,
planvale TYPE zestabelecimento-planvale,
policard TYPE zestabelecimento-policard,
alelo TYPE zestabelecimento-alelo,
valecard TYPE zestabelecimento-valecard,
sorocred TYPE zestabelecimento-sorocred,
biq_beneficios TYPE zestabelecimento-biq_beneficios,
vegascard TYPE zestabelecimento-vegascard,
senff TYPE zestabelecimento-senff,
greencard TYPE zestabelecimento-greencard,
verocard TYPE zestabelecimento-verocard,
ben_visa_vale TYPE zestabelecimento-ben_visa_vale,
coopercard TYPE zestabelecimento-coopercard,
cabal_vale TYPE zestabelecimento-cabal_vale,
bnb_club TYPE zestabelecimento-bnb_club,
mercado_pago TYPE zestabelecimento-mercado_pago,
END OF t_estabelecimento.

**-----------------------------------------------------------------------
** Tabelas internas
**-----------------------------------------------------------------------
DATA: it_zestab TYPE TABLE OF ty_zestabelecimento.
DATA: st_zestab TYPE ty_zestabelecimento.
DATA: it_doc TYPE TABLE OF ty_zestabelecimento.
DATA: st_doc TYPE ty_zestabelecimento.
DATA: it_int TYPE TABLE OF alsmex_tabline WITH HEADER LINE.
DATA: it_raw TYPE truxs_t_text_data.
DATA: it_preenc TYPE TABLE OF ty_zestabelecimento.
DATA: st_preenc TYPE ty_zestabelecimento.
DATA: it_lfa1 TYPE TABLE OF lfa1.
DATA: st_lfa1 TYPE lfa1.
DATA: it_zsdt066 TYPE TABLE OF zsdt066.
DATA: st_zsdt066 TYPE zsdt066.

DATA: lv_limpa_tela TYPE c.

**-----------------------------------------------------------------------
** Estruturas / Work Areas
**-----------------------------------------------------------------------
DATA: wa_doc TYPE ty_zestabelecimento.
DATA: gw_alv TYPE TABLE OF ty_zestabelecimento,
gw_fcat TYPE TABLE OF slis_fieldcat_alv,
wa_layout TYPE slis_layout_alv.

DATA: gs_alv TYPE ty_zestabelecimento,


gs_fcat TYPE slis_fieldcat_alv.

*---------------------------------------------------------------------*
* Variaveis
*---------------------------------------------------------------------*
DATA: v_repid TYPE sy-repid.

*---------------------------------------------------------------------*
** Constantes
*---------------------------------------------------------------------*
CONSTANTS: c_x(1) TYPE c VALUE 'X'.

**-----------------------------------------------------------------------
** Parâmetros da tela de entrada
**-----------------------------------------------------------------------
SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE TEXT-004.

PARAMETERS: rb_pesq RADIOBUTTON GROUP rb01 USER-COMMAND muda_tela


DEFAULT 'X',
rb_excel RADIOBUTTON GROUP rb01,
rb_inser RADIOBUTTON GROUP rb01.

SELECTION-SCREEN END OF BLOCK b01.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.


SELECT-OPTIONS: s_empres FOR zestabelecimento-empresa MODIF ID t1,
s_bknumb FOR zestabelecimento-bknumber MODIF ID t1,
s_divisa FOR zestabelecimento-divisao MODIF ID t1,
s_cnpj FOR zestabelecimento-cnpj MODIF ID t1,
s_name FOR zestabelecimento-nome_loja MODIF ID t1.
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.


PARAMETERS: p_file TYPE localfile MODIF ID t2.
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-003.


PARAMETERS: p_cnpj TYPE zestabelecimento-cnpj MODIF ID t3,
p_empres TYPE zestabelecimento-empresa MODIF ID t3,
p_bknumb TYPE zestabelecimento-bknumber MODIF ID t3,
p_divisa TYPE zestabelecimento-divisao MODIF ID t3,
p_ccusto TYPE zestabelecimento-centro_custo MODIF ID t3,
p_nloja TYPE zestabelecimento-nome_loja MODIF ID t3,
p_sitef TYPE zestabelecimento-sitef MODIF ID t3,
p_cdciel TYPE zestabelecimento-cod_cielo MODIF ID t3,
p_nlciel TYPE zestabelecimento-nlogico_cielo MODIF ID t3,
p_cdrede TYPE zestabelecimento-cod_rede MODIF ID t3,
p_nlrede TYPE zestabelecimento-nlogico_rede MODIF ID t3,
p_amex TYPE zestabelecimento-amex MODIF ID t3,
p_ticket TYPE zestabelecimento-ticket MODIF ID t3,
p_sodexo TYPE zestabelecimento-sodexo MODIF ID t3,
p_vr TYPE zestabelecimento-vr MODIF ID t3,
p_planvl TYPE zestabelecimento-planvale MODIF ID t3,
p_policd TYPE zestabelecimento-policard MODIF ID t3,
p_alelo TYPE zestabelecimento-alelo MODIF ID t3,
p_valecd TYPE zestabelecimento-valecard MODIF ID t3,
p_sorocr TYPE zestabelecimento-sorocred MODIF ID t3,
p_bbenef TYPE zestabelecimento-biq_beneficios MODIF ID t3,
p_vegasc TYPE zestabelecimento-vegascard MODIF ID t3,
p_senff TYPE zestabelecimento-senff MODIF ID t3,
p_greenc TYPE zestabelecimento-greencard MODIF ID t3,
p_verocd TYPE zestabelecimento-verocard MODIF ID t3,
p_bvisav TYPE zestabelecimento-ben_visa_vale MODIF ID t3,
p_cooper TYPE zestabelecimento-coopercard MODIF ID t3,
p_cabalv TYPE zestabelecimento-cabal_vale MODIF ID t3,
p_bnbclu TYPE zestabelecimento-bnb_club MODIF ID t3,
p_mcpago TYPE zestabelecimento-mercado_pago MODIF ID t3.

SELECTION-SCREEN END OF BLOCK b3.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.


PERFORM f_sel_arquivo.

*----------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
*----------------------------------------------------------------------*
PERFORM modifica_tela.
PERFORM preenche_tela.

**-----------------------------------------------------------------------
** Processamento
**-----------------------------------------------------------------------
START-OF-SELECTION.

IF rb_pesq EQ 'X'.
PERFORM seleciona_dados.
PERFORM monta_alv.

ELSEIF rb_excel EQ 'X'.


IF p_file IS NOT INITIAL.
PERFORM carrega_dados.
PERFORM trata_dados.
ELSE.
MESSAGE TEXT-005 TYPE 'S' DISPLAY LIKE 'E'.
EXIT.
ENDIF.

ELSEIF rb_inser EQ 'X'.


PERFORM grava_tabela.
ENDIF.

END-OF-SELECTION.

*&---------------------------------------------------------------------*
*& Form F_SEL_ARQUIVO
*&---------------------------------------------------------------------*
FORM f_sel_arquivo .

CALL FUNCTION 'F4_FILENAME'


EXPORTING
field_name = 'p_file'
IMPORTING
file_name = p_file.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form CARREGA_DADOS
*&---------------------------------------------------------------------*
FORM carrega_dados .

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'


EXPORTING
filename = p_file
i_begin_col = '1'
i_begin_row = '2'
i_end_col = '50'
i_end_row = '65560'
TABLES
intern = it_int
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE e000 WITH TEXT-013.
ELSE.
ENDIF.

ENDFORM. "le_arquivo

*&---------------------------------------------------------------------*
*& Form TRATA_DADOS
*&---------------------------------------------------------------------*
FORM trata_dados .

LOOP AT it_int.
* CHECK tg_int-row NE '0001'.
CASE it_int-col.
WHEN '0001'.
wa_doc-empresa = it_int-value.
WHEN '0002'.
wa_doc-bknumber = it_int-value.
WHEN '0003'.
wa_doc-divisao = it_int-value.
WHEN '0004'.
wa_doc-centro_custo = it_int-value.
WHEN '0006'.
wa_doc-cnpj = it_int-value.
WHEN '0005'.
wa_doc-nome_loja = it_int-value.
WHEN '0007'.
wa_doc-sitef = it_int-value.
WHEN '0008'.
wa_doc-cod_cielo = it_int-value.
WHEN '0009'.
wa_doc-nlogico_cielo = it_int-value.
WHEN '0010'.
wa_doc-cod_rede = it_int-value.
WHEN '0011'.
wa_doc-nlogico_rede = it_int-value.
WHEN '0012'.
wa_doc-amex = it_int-value.
WHEN '0013'.
wa_doc-ticket = it_int-value.
WHEN '0014'.
wa_doc-sodexo = it_int-value.
WHEN '0015'.
wa_doc-vr = it_int-value.
WHEN '0016'.
wa_doc-planvale = it_int-value.
WHEN '0017'.
wa_doc-policard = it_int-value.
WHEN '0018'.
wa_doc-alelo = it_int-value.
WHEN '0019'.
wa_doc-valecard = it_int-value.
WHEN '0020'.
wa_doc-sorocred = it_int-value.
WHEN '0021'.
wa_doc-biq_beneficios = it_int-value.
WHEN '0022'.
wa_doc-vegascard = it_int-value.
WHEN '0023'.
wa_doc-senff = it_int-value.
WHEN '0024'.
wa_doc-greencard = it_int-value.
WHEN '0025'.
wa_doc-verocard = it_int-value.
WHEN '0026'.
wa_doc-ben_visa_vale = it_int-value.
WHEN '0027'.
wa_doc-coopercard = it_int-value.
WHEN '0028'.
wa_doc-cabal_vale = it_int-value.
WHEN '0029'.
wa_doc-bnb_club = it_int-value.
WHEN '0030'.
wa_doc-mercado_pago = it_int-value.
ENDCASE.

AT END OF row.
APPEND wa_doc TO it_doc.
CLEAR wa_doc.
ENDAT.
ENDLOOP.
PERFORM monta_alv_xls.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form SELECIONA_DADOS
*&---------------------------------------------------------------------*
FORM seleciona_dados .

SELECT mandt cnpj empresa bknumber divisao centro_custo nome_loja sitef


cod_cielo nlogico_cielo cod_rede nlogico_rede amex ticket sodexo
vr planvale policard alelo valecard sorocred biq_beneficios
vegascard senff greencard verocard ben_visa_vale coopercard
cabal_vale bnb_club mercado_pago
FROM zestabelecimento
INTO TABLE it_zestab
WHERE empresa IN s_empres
AND bknumber IN s_bknumb
AND divisao IN s_divisa
AND cnpj IN s_cnpj
AND nome_loja IN s_name.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form F_MONTA_FIELDCAT
*&---------------------------------------------------------------------*
FORM f_monta_fieldcat .

PERFORM f_fieldcat USING:


'01' 'EMPRESA' 'GW_ALV' TEXT-t01 ' ' ' ',
'02' 'BKNUMBER' 'GW_ALV' TEXT-t02 ' ' ' ',
'03' 'DIVISAO' 'GW_ALV' TEXT-t03 ' ' ' ',
'04' 'CENTRO_CUSTO' 'GW_ALV' TEXT-t04 ' ' ' ',
'05' 'NOME_LOJA' 'GW_ALV' TEXT-t06 ' ' 'X',
'06' 'CNPJ' 'GW_ALV' TEXT-t05 ' ' 'X',
'07' 'SITEF' 'GW_ALV' TEXT-t07 ' ' 'X',
'08' 'COD_CIELO' 'GW_ALV' TEXT-t08 ' ' 'X',
'09' 'NLOGICO_CIELO' 'GW_ALV' TEXT-t09 ' ' 'X',
'10' 'COD_REDE' 'GW_ALV' TEXT-t10 ' ' 'X',
'11' 'NLOGICO_REDE' 'GW_ALV' TEXT-t11 ' ' 'X',
'12' 'AMEX' 'GW_ALV' TEXT-t12 ' ' 'X',
'13' 'TICKET' 'GW_ALV' TEXT-t13 ' ' 'X',
'14' 'SODEXO' 'GW_ALV' TEXT-t14 ' ' 'X',
'15' 'VR' 'GW_ALV' TEXT-t15 ' ' 'X',
'16' 'PLANVALE' 'GW_ALV' TEXT-t16 ' ' 'X',
'17' 'POLICARD' 'GW_ALV' TEXT-t17 ' ' 'X',
'18' 'ALELO' 'GW_ALV' TEXT-t18 ' ' 'X',
'19' 'VALECARD' 'GW_ALV' TEXT-t19 ' ' 'X',
'20' 'SOROCRED' 'GW_ALV' TEXT-t20 ' ' 'X',
'21' 'BIQ_BENEFICIOS' 'GW_ALV' TEXT-t21 ' ' 'X',
'22' 'VEGASCARD' 'GW_ALV' TEXT-t22 ' ' 'X',
'23' 'SENFF' 'GW_ALV' TEXT-t23 ' ' 'X',
'24' 'GREENCARD' 'GW_ALV' TEXT-t24 ' ' 'X',
'25' 'Verocard' 'GW_ALV' TEXT-t25 ' ' 'X',
'26' 'BEN_VISA_VALE' 'GW_ALV' TEXT-t26 ' ' 'X',
'27' 'COOPERCARD' 'GW_ALV' TEXT-t27 ' ' 'X',
'28' 'CABAL_VALE' 'GW_ALV' TEXT-t28 ' ' 'X',
'29' 'BNB_CLUB' 'GW_ALV' TEXT-t29 ' ' 'X',
'30' 'MERCADO_PAGO' 'GW_ALV' TEXT-t30 ' ' 'X'.

ENDFORM. " F_MONTA_FIELDCAT

FORM f_fieldcat USING t_col_pos


t_fieldname
t_tabname
t_reptext_ddic
t_hotspot
t_edit.

gs_fcat-col_pos = t_col_pos.
gs_fcat-fieldname = t_fieldname.
gs_fcat-tabname = t_tabname.
gs_fcat-seltext_l = t_reptext_ddic.
gs_fcat-hotspot = t_hotspot.
gs_fcat-edit = t_edit.
gs_fcat-just = 'C'.
gs_fcat-key = 'X'.
gs_fcat-input = 'X'.

APPEND gs_fcat TO gw_fcat.


CLEAR gs_fcat.

ENDFORM. " F_FIELDCAT

*&---------------------------------------------------------------------*
*& Form MONTA_ALV
*&---------------------------------------------------------------------*
FORM monta_alv.
DATA: v_save TYPE c.

PERFORM f_monta_fieldcat.

wa_layout-expand_all = 'X'.
wa_layout-colwidth_optimize = 'X'.
wa_layout-box_fieldname = 'SEL'.

MOVE sy-repid TO v_repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
i_callback_program = v_repid
is_layout = wa_layout
it_fieldcat = gw_fcat
i_callback_pf_status_set = 'ZF_STATUS'
i_callback_user_command = 'ZF_COMMAND'
i_save = v_save
i_default = 'X'
TABLES
t_outtab = it_zestab
EXCEPTIONS
program_error = 1
OTHERS = 2.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form MONTA_ALV_EXCEL
*&---------------------------------------------------------------------*
FORM monta_alv_xls .
DATA: v_save TYPE c.

PERFORM f_monta_fieldcat.

wa_layout-expand_all = 'X'.
wa_layout-colwidth_optimize = 'X'.
wa_layout-box_fieldname = 'SEL'.

MOVE sy-repid TO v_repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
i_callback_program = v_repid
is_layout = wa_layout
it_fieldcat = gw_fcat
i_callback_pf_status_set = 'ZF_STATUS'
i_callback_user_command = 'ZF_COMMAND'
i_save = v_save
i_default = 'X'
TABLES
t_outtab = it_doc
EXCEPTIONS
program_error = 1
OTHERS = 2.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form ZF_COMMAND
*&---------------------------------------------------------------------*
FORM zf_command USING vl_ucomm LIKE sy-ucomm
st_selfield TYPE slis_selfield.

DATA: v_line TYPE i,


w_count TYPE i.

st_selfield-refresh = 'X'.

CASE vl_ucomm.
WHEN '&SAVE'.
IF p_file IS NOT INITIAL.
IF it_doc IS NOT INITIAL.
MODIFY zestabelecimento FROM TABLE it_doc.

IF sy-subrc EQ 0.
COMMIT WORK AND WAIT.
MESSAGE 'Os dados foram alterados com Sucesso ' TYPE 'S'.
" Caso não teve alteração - Mostra a mensagem
ELSE.
MESSAGE 'Dados não foram alterados!' TYPE 'W'.
ENDIF.
ENDIF.
ELSE.

IF it_zestab IS NOT INITIAL.


MODIFY zestabelecimento FROM TABLE it_zestab.
IF sy-subrc EQ 0.
COMMIT WORK AND WAIT.
MESSAGE 'Os dados foram alterados com Sucesso ' TYPE 'S'.
" Caso não teve alteração - Mostra a mensagem
ELSE.
MESSAGE 'Dados não foram alterados!' TYPE 'W'.
ENDIF.
ENDIF.
ENDIF.

WHEN '&ADD'.

LOOP AT it_zestab INTO st_zestab.


IF st_zestab-sel = 'X'.
sy-tabix = sy-tabix + 1.
INSERT INITIAL LINE INTO it_zestab INDEX sy-tabix.
st_selfield-refresh = 'X'.
ENDIF.
ENDLOOP.

WHEN '&DEL'.

IF p_file IS NOT INITIAL.

IF it_doc IS NOT INITIAL.


LOOP AT it_doc INTO st_doc.
IF st_doc-sel = 'X'.
DELETE it_doc WHERE sel = 'X'.
st_selfield-refresh = 'X'.
ENDIF.
ENDLOOP.
ENDIF.

CLEAR st_doc.

ELSE. "it_zestab
IF it_zestab IS NOT INITIAL.
LOOP AT it_zestab INTO st_zestab.

IF st_zestab-sel = 'X'.
DELETE FROM zestabelecimento WHERE cnpj EQ st_zestab-cnpj
AND empresa EQ st_zestab-empresa
AND bknumber EQ st_zestab-bknumber.

IF sy-subrc EQ 0.
COMMIT WORK AND WAIT.
MESSAGE 'Linha excluida com Sucesso ' TYPE 'S'.
ELSE.
MESSAGE 'Dados não foram alterados ' TYPE 'S'.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.

DELETE it_zestab WHERE sel = 'X'.


st_selfield-refresh = 'X'.
CLEAR st_zestab.
ENDIF.
ENDCASE.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form SET_PF_STATUS
*&---------------------------------------------------------------------*
* Setting custom PF-Status
*----------------------------------------------------------------------*
* -->RT_EXTAB Excluding table
*----------------------------------------------------------------------*
FORM zf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STATUS_PF'.
ENDFORM.
*&---------------------------------------------------------------*
*& Form MODIFICA_TELA
*&---------------------------------------------------------------*
FORM modifica_tela .

"Modifica tela
LOOP AT SCREEN.

IF rb_pesq = c_x.

* Mostra tela de Pesquisar Informações


*-----------------------------------
IF screen-group1 = 'T1'.
screen-invisible = 0.
screen-input = 1.
screen-active = 1.
MODIFY SCREEN.
CONTINUE.
ENDIF.

* Esconde Tela Carregar Informações e Inserir Manualmente.


*--------------------------------
IF screen-group1 = 'T2' OR
screen-group1 = 'T3'.
screen-invisible = 1.
screen-input = 0.
screen-active = 0.
MODIFY SCREEN.
CONTINUE.
ENDIF.

ELSEIF rb_excel EQ c_x.

* Mostra tela Carregar Informações


*--------------------------------
IF screen-group1 = 'T2'.
screen-invisible = 0.
screen-input = 1.
screen-active = 1.
MODIFY SCREEN.
CONTINUE.
ENDIF.

* Esconde tela Pesquisar Informações e Inserir Manualmente


*-------------------------------------
IF screen-group1 = 'T1' OR
screen-group1 = 'T3'.
screen-invisible = 1.
screen-input = 0.
screen-active = 0.
MODIFY SCREEN.
CONTINUE.
ENDIF.

ELSEIF rb_inser EQ c_x.

* Mostra tela Inserir Manualmente


*--------------------------------
IF screen-group1 = 'T3'.
screen-invisible = 0.
screen-input = 1.
screen-active = 1.

MODIFY SCREEN.
CONTINUE.
ENDIF.

* Esconde tela Pesquisar Informações e Carregar Informações


*-------------------------------------
IF screen-group1 = 'T1' OR
screen-group1 = 'T2'.
screen-invisible = 1.
screen-input = 0.
screen-active = 0.
MODIFY SCREEN.
CONTINUE.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " MODIFICA_TELA
*&---------------------------------------------------------------------*
*& Form PREENCHE_TABELA
*&---------------------------------------------------------------------*
FORM preenche_tela .

IF NOT p_cnpj IS INITIAL.


SELECT cnpj
FROM zestabelecimento
INTO TABLE @DATA(t_zestabelecimento)
WHERE cnpj EQ @p_cnpj.

IF sy-subrc NE 0.
SELECT *
FROM lfa1
INTO TABLE it_lfa1
WHERE stcd1 EQ p_cnpj.

SELECT *
FROM zsdt066
INTO TABLE it_zsdt066
FOR ALL ENTRIES IN it_lfa1
WHERE divisao EQ it_lfa1-werks.

LOOP AT it_lfa1 INTO st_lfa1.


p_nloja = st_lfa1-name2.
p_divisa = st_lfa1-werks.
ENDLOOP.

LOOP AT it_zsdt066 INTO st_zsdt066.


p_empres = st_zsdt066-empresa.
p_bknumb = st_zsdt066-bknumber.
ENDLOOP.
ELSE.

IMPORT lv_limpa_tela FROM MEMORY ID 'TELA'.


IF lv_limpa_tela IS INITIAL.
MESSAGE 'CNPJ cadastrado na Tabela ZESTABELECIMENTOS.' TYPE 'S'.
ELSE.
CLEAR: p_cnpj, p_empres, p_bknumb, p_divisa, p_ccusto,
p_nloja, p_sitef, p_cdciel, p_nlciel, p_cdrede,
p_nlrede, p_amex, p_ticket, p_sodexo, p_vr,
p_planvl, p_policd, p_alelo, p_valecd, p_sorocr,
p_bbenef, p_vegasc, p_senff, p_greenc, p_verocd,
p_bvisav, p_cooper, p_cabalv, p_bnbclu, p_mcpago.
ENDIF.
ENDIF.
ELSE.
MESSAGE 'Por favor preenche o campo CNPJ.' TYPE 'S'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GRAVA_TABELA
*&---------------------------------------------------------------------*

FORM grava_tabela .

t_estabelecimento-cnpj = p_cnpj.
t_estabelecimento-empresa = p_empres.
t_estabelecimento-bknumber = p_bknumb.
t_estabelecimento-divisao = p_divisa.
t_estabelecimento-centro_custo = p_ccusto.
t_estabelecimento-nome_loja = p_nloja.
t_estabelecimento-sitef = p_sitef.
t_estabelecimento-cod_cielo = p_cdciel.
t_estabelecimento-nlogico_cielo = p_nlciel.
t_estabelecimento-cod_rede = p_cdrede.
t_estabelecimento-nlogico_rede = p_nlrede.
t_estabelecimento-amex = p_amex.
t_estabelecimento-ticket = p_ticket.
t_estabelecimento-sodexo = p_sodexo.
t_estabelecimento-vr = p_vr.
t_estabelecimento-planvale = p_planvl.
t_estabelecimento-policard = p_policd.
t_estabelecimento-alelo = p_alelo.
t_estabelecimento-valecard = p_valecd.
t_estabelecimento-sorocred = p_sorocr.
t_estabelecimento-biq_beneficios = p_bbenef.
t_estabelecimento-vegascard = p_vegasc.
t_estabelecimento-senff = p_senff.
t_estabelecimento-greencard = p_greenc.
t_estabelecimento-verocard = p_verocd.
t_estabelecimento-ben_visa_vale = p_bvisav.
t_estabelecimento-coopercard = p_cooper.
t_estabelecimento-cabal_vale = p_cabalv.
t_estabelecimento-bnb_club = p_bnbclu.
t_estabelecimento-mercado_pago = p_mcpago.

APPEND t_estabelecimento.
MODIFY zestabelecimento FROM t_estabelecimento.

IF sy-subrc EQ 0.
COMMIT WORK AND WAIT.
lv_limpa_tela = 'X'.
EXPORT lv_limpa_tela TO MEMORY ID 'TELA'.
MESSAGE 'Os dados foram Salvos com Sucesso ' TYPE 'S'.
ELSE.
MESSAGE 'Dados não foram alterados!' TYPE 'W'.
ENDIF.

REFRESH: t_estabelecimento.

ENDFORM.

Você também pode gostar