Escolar Documentos
Profissional Documentos
Cultura Documentos
*** 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.
***-----------------------------------------------------------------------
*** 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.
**-----------------------------------------------------------------------
** 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.
**-----------------------------------------------------------------------
** 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.
*---------------------------------------------------------------------*
* 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.
*----------------------------------------------------------------------*
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.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form F_SEL_ARQUIVO
*&---------------------------------------------------------------------*
FORM f_sel_arquivo .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CARREGA_DADOS
*&---------------------------------------------------------------------*
FORM carrega_dados .
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 .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form F_MONTA_FIELDCAT
*&---------------------------------------------------------------------*
FORM f_monta_fieldcat .
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'.
*&---------------------------------------------------------------------*
*& 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'.
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'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form ZF_COMMAND
*&---------------------------------------------------------------------*
FORM zf_command USING vl_ucomm LIKE sy-ucomm
st_selfield TYPE slis_selfield.
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.
WHEN '&ADD'.
WHEN '&DEL'.
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.
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.
MODIFY SCREEN.
CONTINUE.
ENDIF.
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.
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.