Académique Documents
Professionnel Documents
Culture Documents
*====================================================================*
*** Tabelas
*====================================================================*
TABLES: " ZTBFI008_EQPATRI,
ztbfi008_eqptr_b,
faglflexa,
faglflext,
ska1.
*====================================================================*
*** Classes
*====================================================================*
*CLASS lcl_event_receiver DEFINITION DEFERRED.
*====================================================================*
*** Definio de constantes
*====================================================================*
CONSTANTS: c_ledger_principal(02) VALUE '0L',
cntl_true TYPE i VALUE 1,
cntl_false TYPE i VALUE 0,
c_relid(02) VALUE 'BB',
c_todas VALUE '*',
c_waers TYPE waers VALUE 'BRL' ,
c_credito TYPE newbs VALUE '50',
c_debito TYPE newbs VALUE '40',
c_blart TYPE blart VALUE 'SA',
c_ccequivalencia TYPE racct VALUE '3410100100'.
*====================================================================*
*** Definio de tipos globais
*====================================================================*
TYPES: BEGIN OF ty_f05a_tmp,
uname TYPE uname_f05a,
tempn TYPE tempn,
END OF ty_f05a_tmp,
*
BEGIN OF ty_bseg,
bukrs TYPE bukrs,
gjahr TYPE gjahr,
belnr TYPE belnr_d,
zuonr TYPE dzuonr,
buzei TYPE buzei,
altkt TYPE bilkt_ska1,
bschl TYPE bschl,
wrbtr TYPE wrbtr,
xreversal TYPE xreversal,
END OF ty_bseg,
*
BEGIN OF ty_bkpf,
bukrs TYPE bukrs,
gjahr TYPE gjahr,
monat TYPE monat,
belnr TYPE belnr_d,
xreversal TYPE xreversal,
END OF ty_bkpf,
*
BEGIN OF ty_lancamentos,
icon_light(04),
bukrs TYPE bukrs,
rbukrs TYPE bukrs,
poper TYPE poper,
bupla TYPE j_1bbranch,
rbetr TYPE vwcur12,
partic TYPE zde_bruno, "zde_bkk_pkond,
vllanc TYPE p LENGTH 16 DECIMALS 2,
racct TYPE saknr,
saknr TYPE saknr,
prctr TYPE prctr,
** Incio - Incluso do campo C.Custo na tabela ZTBFI008_EQTR_B - JPMJ - 17/04/2014
kostl TYPE kostl,
** Fim - Incluso do campo C.Custo na tabela ZTBFI008_EQTR_B - JPMJ - 17/04/2014
linha TYPE i,
total TYPE i,
END OF ty_lancamentos,
*
BEGIN OF ty_result_filial,
rbukrs TYPE bukrs,
poper TYPE poper,
hsl TYPE vwcur12,
END OF ty_result_filial,
*
BEGIN OF ty_faglflexa,
rclnt TYPE mandt,
ryear TYPE gjahr,
docnr TYPE belnr_d,
rldnr TYPE fagl_rldnr,
rbukrs TYPE bukrs,
docln TYPE docln6,
racct TYPE racct,
hsl TYPE vwcur12,
poper TYPE poper,
END OF ty_faglflexa.
*====================================================================*
*** Definio de tabelas internas
*====================================================================*
DATA: t_xapqi TYPE TABLE OF apqi,
t_ztbfi008 TYPE TABLE OF ztbfi008_eqptr_b,
t_ztbfi008_2 TYPE TABLE OF ztbfi008_eqptr_b,
t_result_filial TYPE TABLE OF ty_result_filial,
t_lancamentos TYPE TABLE OF ty_lancamentos,
t_bkpf TYPE TABLE OF ty_bkpf,
t_bseg TYPE TABLE OF ty_bseg,
t_popup_date TYPE TABLE OF sval,
t_faglflexa TYPE TABLE OF ty_faglflexa,
t_return TYPE TABLE OF bapiret2.
DATA: BEGIN OF t_log OCCURS 0,
message(80),
error(4),
lines TYPE i,
END OF t_log .
*====================================================================*
*** Definio de work area
*====================================================================*
DATA: wa_ztbfi008 TYPE ztbfi008_eqptr_b,
wa_ztbfi008_2 TYPE ztbfi008_eqptr_b,
wa_apqi TYPE apqi,
wa_return TYPE bapiret2,
wa_popup_date TYPE sval,
wa_bkpf TYPE ty_bkpf,
wa_bseg TYPE ty_bseg,
wa_lancamentos TYPE ty_lancamentos,
wa_result_filial TYPE ty_result_filial.
*====================================================================*
*** Definio de variveis
*====================================================================*
DATA: v_data LIKE sy-datum,
v_data_char(8),
v_xblnr TYPE xblnr,
v_bktxt TYPE bktxt,
v_sgtxt TYPE sgtxt,
v_tabix LIKE sy-tabix,
v_indx LIKE sy-tabix,
v_valor(15),
v_vlant(15),
v_vbund LIKE bseg-vbund,
v_bupla LIKE bseg-bupla,
v_zuonr LIKE bseg-zuonr,
v_tamanho TYPE i,
v_selected_rows TYPE i,
v_linha TYPE sy-tabix,
v_confirquesti(50), " Popup confirma lanamentos
v_confirmation, " Popup confirma lanamentos
v_titlebar(60) VALUE 'Confirmar memorizao documentos de equivalencia
patrimonial',
ok_code LIKE sy-ucomm.
*----------------------------------------------------------------------*
* Include BDC Standard para batch input FB01L - New Ledjer
*----------------------------------------------------------------------*
*INCLUDE zbdcrecx1.
*--------------------------------------------------------------------
* ALV STANDARD Data
*--------------------------------------------------------------------
DATA: alv_ep_grid TYPE REF TO cl_gui_alv_grid,
* alv_event_receiver TYPE REF TO lcl_event_receiver,
alv_custom_container TYPE REF TO cl_gui_custom_container,
alv_gs_layout TYPE lvc_s_layo,
alv_index_rows TYPE lvc_t_row,
alv_i_row TYPE lvc_s_row,
alv_i_col TYPE lvc_s_col,
alv_estr_refresh TYPE lvc_s_stbl,
alv_catalogo TYPE lvc_t_fcat,
alv_h_picture TYPE REF TO cl_gui_picture,
alv_pic_container TYPE REF TO cl_gui_custom_container.
DATA: graphic_url(255),
graphic_size TYPE i,
graphic_refresh(1),
g_result LIKE cntl_true.
*====================================================================*
*** Definio dos Parmetros TELA DE SELEO
*====================================================================*
* Parmetros de Seleo
SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP.
PARAMETER: p_ledger TYPE fagl_trgt_ldgrp.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(30) text2 FOR FIELD p_bukrs.
PARAMETER: p_bukrs TYPE bukrs OBLIGATORY. " Controladora, se * processa todas.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(30) text3 FOR FIELD p_poper.
PARAMETERS: p_poper TYPE poper. " Perodo Mes
PARAMETERS: p_gjahr TYPE gjahr. " Perodo Ano
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP.
PARAMETERS: p_test AS CHECKBOX DEFAULT 'X'. " Desabilita boto para memorizar.
authority
SELECTION-SCREEN END OF BLOCK b01.
*====================================================================*
*** Evento: INITIALIZATION.
*====================================================================*
INITIALIZATION.
WRITE: icon_plant TO text2,
text-008 TO text2+5.
WRITE: icon_date TO text3,
text-004 TO text3+5.
*====================================================================*
*** Evento: START-OF-SELECTION *
*====================================================================*
START-OF-SELECTION.
PERFORM f_selecao_dados_1.
PERFORM f_set_inputfile_1. " Apura lucro/prej controladas.
PERFORM f_show_proposta_1. " Exibir proposta de lanamento
*&---------------------------------------------------------------------*
*& Form F_SELECAO_DADOS
*&---------------------------------------------------------------------*
* Descrio: Seleo de dados
*----------------------------------------------------------------------*
FORM f_selecao_dados_1.
DATA : r_ktopl TYPE RANGE OF ska1-ktopl, " Como se fosse um tabela Interna
rl_ktopl LIKE LINE OF r_ktopl. " Como se fosse uma estrutura
DATA : r_saknr TYPE RANGE OF ska1-saknr, " Como se fosse um tabela Interna
rl_saknr LIKE LINE OF r_saknr. " Como se fosse uma estrutura
LOOP AT t_ska1.
rl_saknr-sign = 'I'. " Inclui os valores do intervalo
rl_saknr-option = 'EQ'. " Tipo como 'NE' 'BT' e por aih vai
rl_saknr-low = t_ska1-saknr. " Informao que esta sendo incluida
APPEND rl_saknr TO r_saknr. " Alimenta a tabela pela estrutura
CLEAR rl_saknr-low. " Limpa o campo "LOW" da estrutura
ENDLOOP.
IF sy-subrc <> 0.
MESSAGE i010(zfi) WITH text-004.
REFRESH t_ztbfi008_2[].
STOP.
ENDIF.
ENDIF.
SELECT rclnt ryear docnr rldnr rbukrs docln racct hsl poper
FROM faglflexa CLIENT SPECIFIED
INTO TABLE t_faglflexa
FOR ALL ENTRIES IN t_ztbfi008_2 " t_ztbfi008_b
WHERE rclnt = sy-mandt
AND rldnr = p_ledger " Ledger selecionado pelo usuario.
AND rbukrs = t_ztbfi008_2-bukrs " Coligada
AND racct IN r_saknr " todas as contas
AND ryear = p_gjahr
AND poper = p_poper.
IF t_faglflexa[] IS INITIAL.
MESSAGE e001(00) WITH text-010.
ENDIF.
*
DATA : vl_bstat TYPE bstat_d.
CHECK NOT t_ztbfi008_2 IS INITIAL.
IF p_ledger = '0L'.
SELECT bukrs gjahr belnr zuonr buzei altkt bschl wrbtr
INTO TABLE t_bseg
FROM bseg
FOR ALL ENTRIES IN t_bkpf
WHERE bukrs = t_bkpf-bukrs
AND belnr = t_bkpf-belnr
AND gjahr = t_bkpf-gjahr.
ELSE.
SELECT bukrs gjahr belnr zuonr buzei altkt bschl wrbtr
INTO TABLE t_bseg
FROM bseg_add
FOR ALL ENTRIES IN t_bkpf
WHERE bukrs = t_bkpf-bukrs
AND belnr = t_bkpf-belnr
AND gjahr = t_bkpf-gjahr.
ENDIF.
*&---------------------------------------------------------------------*
*& Form f_set_inputfile.
*&---------------------------------------------------------------------*
* Descrio: Prepara arquivo carregado para montagem do bdc
*----------------------------------------------------------------------*
FORM f_set_inputfile_1.
REFRESH t_result_filial[].
CLEAR t_result_filial.
LOOP AT t_faglflexa ASSIGNING <fs_faglflex>.
IF <fs_faglflex>-racct(1) GE '3' AND <fs_faglflex>-racct(1) LE '4'.
* IF <fs_faglflex>-racct NE c_ccequivalencia. " excluir saldo 3400010002.
MOVE: <fs_faglflex>-rbukrs TO wa_result_filial-rbukrs,
<fs_faglflex>-poper TO wa_result_filial-poper,
<fs_faglflex>-hsl TO wa_result_filial-hsl.
COLLECT wa_result_filial INTO t_result_filial.
* ENDIF.
ENDIF.
ENDLOOP.
IF t_result_filial[] IS INITIAL.
MESSAGE e001(00) WITH text-010.
ENDIF.
ENDFORM. " F_SET_INPUTFILE
*&---------------------------------------------------------------------*
*& Form F_SHOW_PROPOSTA
*&---------------------------------------------------------------------*
* text Tela ALV com os lanamentos de equivalencia
*----------------------------------------------------------------------*
FORM f_show_proposta_1 .
* PERFORM monta_layout_1.
PERFORM f_fieldcat_1.
PERFORM f_select_data_1.
PERFORM f_load_data_into_grid_1.
*
ENDFORM. " F_SHOW_PROPOSTA
*&---------------------------------------------------------------------*
*& Form fieldcat
*&---------------------------------------------------------------------*
FORM f_fieldcat_1 .
REFRESH s_fieldcat.
s_fieldcat-fieldname = 'ICON_LIGHT'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = '| |'.
s_fieldcat-key = 'X'.
APPEND s_fieldcat.
CLEAR s_fieldcat.
s_fieldcat-fieldname = 'BUKRS'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Controladora'.
s_fieldcat-outputlen = 13.
APPEND s_fieldcat.
CLEAR s_fieldcat.
s_fieldcat-fieldname = 'RBUKRS'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Coligada'.
s_fieldcat-outputlen = 12.
APPEND s_fieldcat.
CLEAR s_fieldcat.
s_fieldcat-fieldname = 'POPER'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Periodo'.
s_fieldcat-outputlen = 13.
APPEND s_fieldcat.
CLEAR s_fieldcat.
s_fieldcat-fieldname = 'BUPLA'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Local'.
s_fieldcat-outputlen = 15.
APPEND s_fieldcat.
CLEAR s_fieldcat.
s_fieldcat-fieldname = 'RBETR'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Lucro/Prejuizo'.
s_fieldcat-outputlen = 16.
APPEND s_fieldcat.
CLEAR s_fieldcat.
s_fieldcat-fieldname = 'PARTIC'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Participao'.
s_fieldcat-outputlen = 13.
APPEND s_fieldcat.
CLEAR s_fieldcat.
s_fieldcat-fieldname = 'VLLANC'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Valor a contabilizar'.
s_fieldcat-outputlen = 20.
APPEND s_fieldcat.
CLEAR s_fieldcat.
s_fieldcat-fieldname = 'RACCT'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Debitando'.
s_fieldcat-outputlen = 13.
APPEND s_fieldcat.
CLEAR s_fieldcat.
s_fieldcat-fieldname = 'SAKNR'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Creditando'.
s_fieldcat-outputlen = 13.
APPEND s_fieldcat.
CLEAR s_fieldcat.
s_fieldcat-fieldname = 'PRCTR'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Centro de lucro'.
s_fieldcat-outputlen = 15.
APPEND s_fieldcat.
CLEAR l_wrbtr.
ENDIF.
ENDIF.
ENDLOOP.
IF sy-subrc = 0.
l_wrbtr = l_wrbtr * 100.
l_hsl = l_hsl + l_wrbtr.
ELSE.
* No localizou lanamento de equivalencia no periodo .
MOVE icon_green_light TO wa_lancamentos-icon_light.
ENDIF.
*&---------------------------------------------------------------------*
*& Form f_load_data_into_grid
*&---------------------------------------------------------------------*
FORM f_load_data_into_grid_1.
s_layout-zebra = 'X'.
s_layout-box_tabname = 'T_LANCAMENTOS'.
s_layout-box_tabname = 'T_LANCAMENTOS'.
s_layout-window_titlebar = v_titulo .
* Title
wa_header-typ = 'H'.
wa_header-info = 'LANAMENTO DE EQUIVALNCIA SALARIAL'.
APPEND wa_header TO t_header.
CLEAR wa_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Lanamento de equivalencia patrimonial ref. perodo: '.
CONCATENATE p_poper '/' p_gjahr INTO wa_header-info SEPARATED BY space.
APPEND wa_header TO t_header.
CLEAR: wa_header.
* vi_linno = sy-linno.
* SKIP TO LINE 1.
* WRITE: AT 70 'Pgina:', sy-pagno.
*
* SKIP TO LINE vi_linno.
ENDFORM. "zs_top_of_page