Académique Documents
Professionnel Documents
Culture Documents
****************************************************************
* Tabelas
****************************************************************
TABLES : bsik, bsid, bsak, bseg, lfa1, skat, ztr02.
****************************************************************
* Ranges
****************************************************************
RANGES : r_bancos FOR bseg-hkont,
r_impostos FOR bseg-hkont,
r_despesa FOR bseg-hkont.
****************************************************************
* Estruturas
****************************************************************
TYPES:
"Estrutura de Sada
BEGIN OF y_saida,
tipo(18) TYPE c,
grupo TYPE ztr02-fdgrv,
docto TYPE bseg-belnr,
docto_comp TYPE bseg-augbl,
vl_bruto TYPE bseg-wrbtr,
fornecedor TYPE lfa1-lifnr,
nome_forn TYPE lfa1-name1,
cnpj TYPE char18,
dt_pagto TYPE bseg-zfbdt,
conta TYPE bseg-hkont,
desc_conta TYPE skat-txt50,
numero_nf TYPE bkpf-xblnr,
data_nf TYPE j_1bdocdat,
loja TYPE j_1bbranc_,
uf TYPE regio,
regiao TYPE char2,
END OF y_saida,
BEGIN OF y_nf,
xblnr TYPE xblnr,
nfnum TYPE j_1bnfnumb,
nfenum TYPE j_1bnfnum9,
series TYPE j_1bseries,
parid TYPE j_1bparid,
END OF y_nf,
BEGIN OF y_doc,
docdat TYPE j_1bdocdat,
nfnum TYPE j_1bnfnumb,
series TYPE j_1bseries,
branch TYPE j_1bbranc_,
parid TYPE j_1bparid,
nfenum TYPE j_1bnfnum9,
END OF y_doc,
BEGIN OF y_branch,
branch TYPE j_1bbranc_,
adrnr TYPE adrnr,
END OF y_branch,
BEGIN OF y_adrc,
addrnumber TYPE ad_addrnum,
region TYPE regio,
END OF y_adrc,
BEGIN OF y_bsik,
lifnr TYPE bsik-lifnr,
dmbtr TYPE bsik-dmbtr,
shkzg TYPE bsik-shkzg,
belnr TYPE bsik-belnr,
gjahr TYPE bsik-gjahr,
buzei TYPE bsik-buzei,
augdt TYPE bsik-augdt,
augbl TYPE bsik-augbl,
budat TYPE bsik-budat,
blart TYPE bsik-blart,
zfbdt TYPE bsik-zfbdt,
hkont TYPE bsik-hkont,
zlsch TYPE bsik-zlsch,
zlspr TYPE bsik-zlspr,
zuonr TYPE bsik-zuonr,
END OF y_bsik,
BEGIN OF y_bsak,
lifnr TYPE bsak-lifnr,
dmbtr TYPE bsak-dmbtr,
shkzg TYPE bsak-shkzg,
belnr TYPE bsak-belnr,
gjahr TYPE bsak-gjahr,
buzei TYPE bsak-buzei,
augdt TYPE bsak-augdt,
augbl TYPE bsak-augbl,
budat TYPE bsak-budat,
blart TYPE bsak-blart,
zfbdt TYPE bsak-zfbdt,
hkont TYPE bsak-hkont,
zlsch TYPE bsak-zlsch,
zlspr TYPE bsak-zlspr,
zuonr TYPE bsak-zuonr,
wskto TYPE bsak-wskto,
END OF y_bsak,
BEGIN OF y_bsas,
dmbtr LIKE bsas-dmbtr,
shkzg LIKE bsas-shkzg,
belnr LIKE bsas-belnr,
gjahr LIKE bsas-gjahr,
zuonr LIKE bsas-zuonr,
buzei LIKE bsas-buzei,
augdt LIKE bsas-augdt,
augbl LIKE bsas-augbl,
budat LIKE bsas-budat,
blart LIKE bsas-blart,
zfbdt LIKE bsas-zfbdt,
hkont LIKE bsas-hkont,
valut LIKE bsas-valut,
END OF y_bsas,
BEGIN OF y_bsis,
dmbtr LIKE bsis-dmbtr,
shkzg LIKE bsis-shkzg,
belnr LIKE bsis-belnr,
gjahr LIKE bsis-gjahr,
zuonr LIKE bsis-zuonr,
buzei LIKE bsis-buzei,
augdt LIKE bsis-augdt,
augbl LIKE bsis-augbl,
budat LIKE bsis-budat,
blart LIKE bsis-blart,
zfbdt LIKE bsis-zfbdt,
hkont LIKE bsis-hkont,
valut LIKE bsis-valut,
END OF y_bsis,
BEGIN OF y_bkpf,
bukrs TYPE bkpf-bukrs,
belnr TYPE bkpf-belnr,
gjahr TYPE bkpf-gjahr,
xblnr TYPE bkpf-xblnr,
END OF y_bkpf,
BEGIN OF y_bseg,
bukrs TYPE bseg-bukrs,
belnr TYPE bseg-belnr,
gjahr TYPE bsis-gjahr,
buzei TYPE bseg-buzei,
lifnr TYPE bseg-lifnr,
kunnr TYPE bseg-kunnr,
zlsch TYPE bseg-zlsch,
zlspr TYPE bseg-zlspr,
qbshb TYPE bseg-qbshb,
fdlev TYPE bseg-fdlev,
zuonr TYPE bseg-zuonr,
END OF y_bseg,
BEGIN OF y_lfa1,
lifnr TYPE lfa1-lifnr,
name1 TYPE lfa1-name1,
stcd1 TYPE lfa1-stcd1,
END OF y_lfa1,
BEGIN OF y_skat,
saknr TYPE skat-saknr,
txt50 TYPE skat-txt50,
END OF y_skat,
BEGIN OF y_ska1,
saknr TYPE ska1-saknr,
bilkt TYPE ska1-bilkt,
ktoks TYPE ska1-ktoks,
END OF y_ska1,
BEGIN OF y_lfb1,
bukrs TYPE lfb1-bukrs,
lifnr TYPE lfb1-lifnr,
fdgrv TYPE lfb1-fdgrv,
END OF y_lfb1,
BEGIN OF y_data,
dia TYPE sy-datum,
END OF y_data,
BEGIN OF y_arq,
reg(400) TYPE c,
END OF y_arq.
****************************************************************
* Tabelas Internas
****************************************************************
DATA: t_fieldcat TYPE lvc_t_fcat,
t_sort TYPE lvc_t_sort,
t_saida TYPE TABLE OF y_saida,
t_bseg TYPE TABLE OF y_bseg,
t_bkpf TYPE TABLE OF y_bkpf,
t_lfa1 TYPE TABLE OF y_lfa1,
t_skat TYPE TABLE OF y_skat,
t_ska1 TYPE TABLE OF y_ska1,
t_lfb1 TYPE TABLE OF y_lfb1,
t_bsik TYPE TABLE OF y_bsik,
t_bsak TYPE TABLE OF y_bsak,
t_bsas TYPE TABLE OF y_bsas,
t_bsis TYPE TABLE OF y_bsis,
t_data TYPE TABLE OF y_data,
t_nf TYPE TABLE OF y_nf,
t_nfe TYPE TABLE OF y_nf,
t_doc TYPE TABLE OF y_doc,
t_branch TYPE TABLE OF y_branch,
t_adrc TYPE TABLE OF y_adrc,
ti_arq TYPE y_arq OCCURS 0 WITH HEADER LINE,
ti_arq_pgt TYPE y_arq OCCURS 0 WITH HEADER LINE,
lv_arq_apgt TYPE rlgrap-filename,
lv_arq_pgt TYPE rlgrap-filename,
gc_arq_sai TYPE rlgrap-filename,
gc_arq_sai_pgt TYPE rlgrap-filename,
t_relatorio TYPE TABLE OF y_relatorio.
****************************************************************
* Work Areas
****************************************************************
DATA: wa_layout TYPE lvc_s_layo,
wa_sort TYPE lvc_s_sort,
wa_fieldcat TYPE lvc_s_fcat,
wa_saida TYPE y_saida,
wa_bseg TYPE y_bseg,
wa_bkpf TYPE y_bkpf,
wa_lfa1 TYPE y_lfa1,
wa_skat TYPE y_skat,
wa_ska1 TYPE y_ska1,
wa_lfb1 TYPE y_lfb1,
wa_bsik TYPE y_bsik,
wa_bsak TYPE y_bsak,
wa_bsis TYPE y_bsis,
wa_bsas TYPE y_bsas,
wa_data TYPE y_data,
wa_nf TYPE y_nf,
wa_doc TYPE y_doc,
wa_branch TYPE y_branch,
wa_adrc TYPE y_adrc,
wa_arq TYPE y_arq,
wa_relatorio TYPE y_relatorio.
****************************************************************
* Variveis Globais
****************************************************************
DATA: vg_packsize TYPE i VALUE 800000,
vg_grupo TYPE lfb1-fdgrv,
vg_desc_forn TYPE lfa1-name1,
vg_valut TYPE bseg-valut,
vg_valor TYPE bseg-dmbtr,
vg_conta TYPE bseg-hkont,
vg_atrib TYPE bseg-zuonr,
vg_soma1 TYPE ztr02-buzei,
vg_soma2 TYPE ztr02-buzei,
vg_dmbtr(16) TYPE c,
vg_qbshb(16) TYPE c,
vg_tppagto(10) TYPE c,
vg_fdlev TYPE bseg-fdlev,
vg_contador TYPE i,
vg_datum TYPE sy-datum,
vg_uzeit TYPE sy-uzeit,
vg_dt_aux TYPE sy-datum,
vg_flag,
vl_pos TYPE sy-fdpos,
vl_len TYPE i,
vg_tabix TYPE sytabix,
w_cont_win(2) TYPE n,
w_cont_win_pgt(2) TYPE n,
w_abre_arq TYPE c,
w_abre_arq_pgt TYPE c.
****************************************************************
* Constantes
****************************************************************
CONSTANTS: c_x TYPE c VALUE 'X'.
****************************************************************
* Objetos
****************************************************************
DATA: vg_variant TYPE disvariant ,
og_grid TYPE REF TO cl_gui_alv_grid ,
og_splitter TYPE REF TO cl_gui_splitter_container ,
og_container_1 TYPE REF TO cl_gui_container ,
og_container_2 TYPE REF TO cl_gui_container ,
og_document TYPE REF TO cl_dd_document ,
og_doctable TYPE REF TO cl_dd_table_element ,
og_column TYPE REF TO cl_dd_area .
****************************************************************
* Parametros de Entrada
****************************************************************
* Parmetros de Seleo
SELECTION-SCREEN: BEGIN OF BLOCK b01 WITH FRAME TITLE text-001.
* Empresa
PARAMETERS : p_bukrs LIKE bseg-bukrs OBLIGATORY DEFAULT 'LAME'.
* Data
SELECT-OPTIONS : p_data FOR bsik-zfbdt OBLIGATORY NO-EXTENSION.
AT SELECTION-SCREEN OUTPUT.
"Se for clicado na opo SERVIDOR
IF pa_ser1 = 'X'.
"Bloqueia os campos LOCAL
LOOP AT SCREEN.
IF screen-group1 = 'TP2'.
screen-input = 0.
MODIFY SCREEN.
CLEAR pa_dir.
ENDIF.
ENDLOOP.
"Se for clicado na opo LOCAL
ELSEIF pa_loc1 = 'X'.
"Bloqueia os campos LOCAL
LOOP AT SCREEN.
IF screen-group1 = 'TP1'.
screen-input = 0.
MODIFY SCREEN.
CLEAR pa_dir.
ENDIF.
ENDLOOP.
ENDIF.
AT SELECTION-SCREEN.
"Verifica se alguma opo de relatrio foi selecionada
IF p_col1 IS INITIAL AND p_col2 IS INITIAL.
MESSAGE e777(z1) WITH 'Selecione pelo menos uma opo de relatorio'.
ENDIF.
****************************************************************
* INITIALIZATION
****************************************************************
INITIALIZATION.
pa_typ1 = 'ASC'.
pa_arq2 = 'Lancamentos_NF.txt'.
****************************************************************
* START-OF-SELECTION
****************************************************************
START-OF-SELECTION.
"Seleo de dados
PERFORM seleciona_dados.
****************************************************************
* END-OF-SELECTION
****************************************************************
END-OF-SELECTION.
****************************************************************
* FORMS
****************************************************************
*&---------------------------------------------------------------------*
*& Form PESQUISA_DIR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_PA_DIR text
*----------------------------------------------------------------------*
FORM pesquisa_dir CHANGING lc_arq.
*=---------------------------------------------------------------------
CALL METHOD cl_gui_cfw=>flush.
*=---------------------------------------------------------------------
IF sy-subrc <> 0.
* Erro ao acessar o Diretrio de Sada.
MESSAGE s001(zl) WITH 'Erro ao acessar o Diretrio de Sada'.
STOP.
ELSE.
lc_arq = vg_path_local.
ENDIF.
wa_ska1-saknr(4) = '0081'.
r_bancos-low = wa_ska1-saknr.
APPEND r_bancos.
ENDIF.
IF wa_ska1-ktoks = 'IMPO'.
r_impostos-low = wa_ska1-saknr.
APPEND r_impostos.
ENDIF.
ENDLOOP.
* ----------------------------------------------------------------------
* Valores Compromissados AP - Parte 1: Documentos em Aberto
* Documentos com data base no perodo informado.
* ----------------------------------------------------------------------
PERFORM doctos_ap_em_aberto.
* ----------------------------------------------------------------------
* Valores Compromissados AP - Parte 2: Documentos Vencidos e Pagos no
* perodo informado
* ----------------------------------------------------------------------
PERFORM doctos_ap_vencidos_pagos.
ENDIF.
* ----------------------------------------------------------------------
* Valores Pagos AP, AR e Depsitos Bancrios - COMPENSADOS
* ----------------------------------------------------------------------
PERFORM doctos_ap_ar_compensados.
* ----------------------------------------------------------------------
* Valores Pagos AP, AR e Depsitos Bancrios - NAO COMPENSADOS
* ----------------------------------------------------------------------
PERFORM doctos_ap_ar_ncompensados.
ENDIF.
IF pa_dir IS INITIAL.
STOP.
ENDIF.
ENDIF.
vg_datum = sy-datum.
vg_uzeit = sy-uzeit.
IF p_data-high IS INITIAL.
p_data-high = p_data-low.
ENDIF.
vg_dt_aux = p_data-low.
DO.
IF vg_dt_aux > p_data-high.
EXIT.
ENDIF.
wa_data-dia = vg_dt_aux.
APPEND wa_data TO t_data.
vg_dt_aux = vg_dt_aux + 1.
ENDDO.
r_despesa-sign = 'I'.
r_despesa-option = 'CP'.
r_despesa-low = '005*'. APPEND r_despesa.
r_despesa-low = '0062*'. APPEND r_despesa.
r_despesa-low = '007*'. APPEND r_despesa.
CLEAR vg_valut.
SELECT lifnr dmbtr shkzg belnr gjahr buzei augdt augbl budat
blart zfbdt hkont zlsch zlspr zuonr
FROM bsik PACKAGE SIZE vg_packsize
INTO TABLE t_bsik
FOR ALL ENTRIES IN t_data
WHERE bukrs EQ p_bukrs
AND zfbdt EQ t_data-dia
AND NOT zlspr > ' '.
"Busca as informaes da NF
LOOP AT t_bkpf INTO wa_bkpf.
vg_tabix = sy-tabix.
IF sy-subrc = 0.
"Limpa as variveis
CLEAR: vl_pos, vl_len.
"Monta o campo NF
wa_nf-nfenum = wa_bkpf-xblnr(vl_pos).
CLEAR wa_nf-nfnum.
ELSE.
"Monta o campo NF
wa_nf-nfnum = wa_bkpf-xblnr(vl_pos).
CLEAR wa_nf-nfenum.
ENDIF.
ENDIF.
wa_nf-parid = wa_bseg-lifnr.
ENDIF.
ENDIF.
CLEAR wa_nf.
ELSE.
"Limpa as variveis
CLEAR: vl_pos, vl_len.
IF vl_len < 8.
"Monta o campo NF
wa_nf-nfnum = wa_bkpf-xblnr.
CLEAR wa_nf-nfenum.
wa_nf-parid = wa_bseg-lifnr.
ENDIF.
ELSE.
"Monta o campo NF
wa_nf-nfenum = wa_bkpf-xblnr.
CLEAR wa_nf-nfnum.
wa_nf-parid = wa_bseg-lifnr.
ENDIF.
ENDIF.
CLEAR wa_nf.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
"Busca a UF e regio
SELECT addrnumber region
FROM adrc
INTO TABLE t_adrc
FOR ALL ENTRIES IN t_branch
WHERE addrnumber EQ t_branch-adrnr.
ENDIF.
ENDIF.
ENDIF.
CLEAR wa_saida.
ENDIF.
ENDLOOP.
ENDSELECT.
SELECT lifnr dmbtr shkzg belnr gjahr buzei augdt augbl budat
blart zfbdt hkont zlsch zlspr zuonr wskto
FROM bsak PACKAGE SIZE vg_packsize
INTO TABLE t_bsak
FOR ALL ENTRIES IN t_data
WHERE bukrs EQ p_bukrs
AND zfbdt EQ t_data-dia.
"Busca as informaes da NF
LOOP AT t_bkpf INTO wa_bkpf.
vg_tabix = sy-tabix.
IF sy-subrc = 0.
"Limpa as variveis
CLEAR: vl_pos, vl_len.
"Monta o campo NF
wa_nf-nfenum = wa_bkpf-xblnr(vl_pos).
CLEAR wa_nf-nfnum.
ELSE.
"Monta o campo NF
wa_nf-nfnum = wa_bkpf-xblnr(vl_pos).
CLEAR wa_nf-nfenum.
ENDIF.
ENDIF.
wa_nf-parid = wa_bseg-lifnr.
ENDIF.
ENDIF.
CLEAR wa_nf.
ELSE.
"Limpa as variveis
CLEAR: vl_len.
IF vl_len < 8.
"Monta o campo NF
wa_nf-nfnum = wa_bkpf-xblnr.
CLEAR wa_nf-nfenum.
wa_nf-parid = wa_bseg-lifnr.
ENDIF.
ELSE.
"Monta o campo NF
wa_nf-nfenum = wa_bkpf-xblnr.
CLEAR wa_nf-nfnum.
wa_nf-parid = wa_bseg-lifnr.
ENDIF.
ENDIF.
CLEAR wa_nf.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
"Busca a UF e regio
SELECT addrnumber region
FROM adrc
INTO TABLE t_adrc
FOR ALL ENTRIES IN t_branch
WHERE addrnumber EQ t_branch-adrnr.
ENDIF.
ENDIF.
ENDIF.
CLEAR wa_saida.
IF vg_atrib IS INITIAL.
vg_atrib = wa_bsak-zuonr.
ENDIF.
IF sy-subrc EQ 0.
ENDIF.
ENDIF.
ENDLOOP.
ENDSELECT.
ENDFORM. " DOCTOS_AP_VENCIDOS_PAGOS
*&---------------------------------------------------------------------*
*& Form DOCTOS_AP_AR_COMPENSADOS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM doctos_ap_ar_compensados .
SELECT bukrs belnr gjahr buzei lifnr kunnr zlsch zlspr qbshb
fdlev zuonr
FROM bseg
INTO TABLE t_bseg
FOR ALL ENTRIES IN t_bsas
WHERE bukrs EQ p_bukrs
AND belnr EQ t_bsas-belnr
AND gjahr EQ t_bsas-gjahr
AND buzei BETWEEN 001 AND 999.
"Busca as informaes da NF
LOOP AT t_bkpf INTO wa_bkpf.
vg_tabix = sy-tabix.
IF sy-subrc = 0.
"Limpa as variveis
CLEAR: vl_pos, vl_len.
"Monta o campo NF
wa_nf-nfenum = wa_bkpf-xblnr(vl_pos).
CLEAR wa_nf-nfnum.
ELSE.
"Monta o campo NF
wa_nf-nfnum = wa_bkpf-xblnr(vl_pos).
CLEAR wa_nf-nfenum.
ENDIF.
ENDIF.
wa_nf-parid = wa_bseg-lifnr.
ENDIF.
ENDIF.
CLEAR wa_nf.
ELSE.
"Limpa as variveis
CLEAR: vl_pos, vl_len.
IF vl_len < 8.
"Monta o campo NF
wa_nf-nfnum = wa_bkpf-xblnr.
CLEAR wa_nf-nfenum.
wa_nf-parid = wa_bseg-lifnr.
ENDIF.
ELSE.
"Monta o campo NF
wa_nf-nfenum = wa_bkpf-xblnr.
CLEAR wa_nf-nfnum.
wa_nf-parid = wa_bseg-lifnr.
ENDIF.
ENDIF.
CLEAR wa_nf.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
"Busca a UF e regio
SELECT addrnumber region
FROM adrc
INTO TABLE t_adrc
FOR ALL ENTRIES IN t_branch
WHERE addrnumber EQ t_branch-adrnr.
ENDIF.
ENDIF.
ENDIF.
CLEAR wa_saida.
************************************************************************
* Atualizao dos depsitos bancrios
************************************************************************
IF wa_bsas-blart = 'OC'.
CLEAR vg_desc_forn.
PERFORM atualiza_pagos USING wa_bsas-dmbtr 'DEPOSITO'
wa_bsas-shkzg 'S'
' ' wa_bsas-belnr
wa_bsas-gjahr wa_bsas-buzei
wa_bsas-augdt wa_bsas-augbl
wa_bsas-budat wa_bsas-blart
wa_bsas-zfbdt wa_bsas-hkont
' ' ' '
'DF' p_bukrs
wa_bsas-valut wa_bsas-zuonr.
ENDIF.
************************************************************************
* Investiga a contrapartida
************************************************************************
vg_contador = 0.
IF wa_bseg-buzei = wa_bsas-buzei.
CONTINUE.
ENDIF.
IF wa_bsas-zuonr IS INITIAL.
wa_bsas-zuonr = wa_bseg-zuonr.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDSELECT.
SELECT bukrs belnr gjahr buzei lifnr kunnr zlsch zlspr qbshb
fdlev zuonr
FROM bseg
INTO TABLE t_bseg
FOR ALL ENTRIES IN t_bsis
WHERE bukrs EQ p_bukrs
AND belnr EQ t_bsis-belnr
AND gjahr EQ t_bsis-gjahr
AND buzei BETWEEN 001 AND 999.
ENDIF.
"Busca as informaes da NF
LOOP AT t_bkpf INTO wa_bkpf.
vg_tabix = sy-tabix.
IF sy-subrc = 0.
"Limpa as variveis
CLEAR: vl_pos, vl_len.
"Monta o campo NF
wa_nf-nfenum = wa_bkpf-xblnr(vl_pos).
CLEAR wa_nf-nfnum.
ELSE.
"Monta o campo NF
wa_nf-nfnum = wa_bkpf-xblnr(vl_pos).
CLEAR wa_nf-nfenum.
ENDIF.
ENDIF.
wa_nf-parid = wa_bseg-lifnr.
ENDIF.
ENDIF.
CLEAR wa_nf.
ELSE.
"Limpa as variveis
CLEAR: vl_pos, vl_len.
IF vl_len < 8.
"Monta o campo NF
wa_nf-nfnum = wa_bkpf-xblnr.
CLEAR wa_nf-nfenum.
"Pega o nmero de referncia
wa_nf-xblnr = wa_bkpf-xblnr.
wa_nf-parid = wa_bseg-lifnr.
ENDIF.
ELSE.
"Monta o campo NF
wa_nf-nfenum = wa_bkpf-xblnr.
CLEAR wa_nf-nfnum.
wa_nf-parid = wa_bseg-lifnr.
ENDIF.
ENDIF.
CLEAR wa_nf.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
"Busca a UF e regio
SELECT addrnumber region
FROM adrc
INTO TABLE t_adrc
FOR ALL ENTRIES IN t_branch
WHERE addrnumber EQ t_branch-adrnr.
ENDIF.
ENDIF.
ENDIF.
CLEAR wa_saida.
************************************************************************
* Investiga a contrapartida
************************************************************************
vg_contador = 0.
IF wa_bseg-buzei = wa_bsis-buzei.
CONTINUE.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDSELECT.
IF p_natureza EQ p_nat_pos.
WRITE p_valor TO vg_dmbtr.
CONDENSE vg_dmbtr NO-GAPS.
wa_relatorio-compr = wa_relatorio-compr + p_valor.
ELSE.
WRITE p_valor TO vg_dmbtr.
CONCATENATE '-' vg_dmbtr INTO vg_dmbtr.
CONDENSE vg_dmbtr NO-GAPS.
wa_relatorio-compr = wa_relatorio-compr - p_valor.
ENDIF.
*
vg_tabix = sy-tabix.
MODIFY t_relatorio FROM wa_relatorio INDEX vg_tabix.
"TRANSPORTING compr.
vg_soma1 = wa_relatorio-soma1.
vg_soma2 = wa_relatorio-soma2.
IF vg_soma1 GT 0.
READ TABLE t_relatorio INTO wa_relatorio WITH KEY buzei = vg_soma1.
vg_tabix = sy-tabix.
IF p_natureza EQ p_nat_pos.
wa_relatorio-compr = wa_relatorio-compr + p_valor.
ELSE.
wa_relatorio-compr = wa_relatorio-compr - p_valor.
ENDIF.
vg_tabix = sy-tabix.
IF vg_soma2 GT 0.
READ TABLE t_relatorio INTO wa_relatorio WITH KEY buzei = vg_soma2.
vg_tabix = sy-tabix.
IF p_natureza EQ p_nat_pos.
wa_relatorio-compr = wa_relatorio-compr + p_valor.
ELSE.
wa_relatorio-compr = wa_relatorio-compr - p_valor.
ENDIF.
vg_tabix = sy-tabix.
MODIFY t_relatorio FROM wa_relatorio INDEX vg_tabix.
ENDIF.
"Busca o nmero da NF
READ TABLE t_bkpf INTO wa_bkpf WITH KEY bukrs = p_bukrs
belnr = p_belnr
gjahr = p_gjahr
BINARY SEARCH.
IF sy-subrc = 0.
wa_saida-numero_nf = wa_bkpf-xblnr.
IF sy-subrc = 0.
IF sy-subrc = 0.
wa_saida-data_nf = wa_doc-docdat.
wa_saida-loja = wa_doc-branch.
IF sy-subrc = 0.
"Monta a UF e Regio
READ TABLE t_adrc INTO wa_adrc WITH KEY addrnumber = wa_branch-adrnr
BINARY SEARCH.
IF sy-subrc = 0.
wa_saida-uf = wa_adrc-region.
CASE wa_adrc-region.
WHEN 'DF'.
wa_saida-regiao = 'CO'.
WHEN 'GO'.
wa_saida-regiao = 'CO'.
WHEN 'MS'.
wa_saida-regiao = 'CO'.
WHEN 'MT'.
wa_saida-regiao = 'CO'.
WHEN 'AC'.
wa_saida-regiao = 'N'.
WHEN 'AM'.
wa_saida-regiao = 'N'.
WHEN 'AP'.
wa_saida-regiao = 'N'.
WHEN 'PA'.
wa_saida-regiao = 'N'.
WHEN 'RO'.
wa_saida-regiao = 'N'.
WHEN 'RR'.
wa_saida-regiao = 'N'.
WHEN 'TO'.
wa_saida-regiao = 'N'.
WHEN 'AL'.
wa_saida-regiao = 'NE'.
WHEN 'BA'.
wa_saida-regiao = 'NE'.
WHEN 'CE'.
wa_saida-regiao = 'NE'.
WHEN 'MA'.
wa_saida-regiao = 'NE'.
WHEN 'PB'.
wa_saida-regiao = 'NE'.
WHEN 'PE'.
wa_saida-regiao = 'NE'.
WHEN 'PI'.
wa_saida-regiao = 'NE'.
WHEN 'RN'.
wa_saida-regiao = 'NE'.
WHEN 'SE'.
wa_saida-regiao = 'NE'.
WHEN 'PR'.
wa_saida-regiao = 'S'.
WHEN 'RS'.
wa_saida-regiao = 'S'.
WHEN 'SC'.
wa_saida-regiao = 'S'.
WHEN 'ES'.
wa_saida-regiao = 'SE'.
WHEN 'MG'.
wa_saida-regiao = 'SE'.
WHEN 'RJ'.
wa_saida-regiao = 'SE'.
WHEN 'SP'.
wa_saida-regiao = 'SE'.
ENDCASE.
ENDIF.
ENDIF.
ELSE.
IF sy-subrc = 0.
wa_saida-data_nf = wa_doc-docdat.
wa_saida-loja = wa_doc-branch.
IF sy-subrc = 0.
"Monta a UF e Regio
READ TABLE t_adrc INTO wa_adrc WITH KEY addrnumber = wa_branch-adrnr
BINARY SEARCH.
IF sy-subrc = 0.
wa_saida-uf = wa_adrc-region.
CASE wa_adrc-region.
WHEN 'DF'.
wa_saida-regiao = 'CO'.
WHEN 'GO'.
wa_saida-regiao = 'CO'.
WHEN 'MS'.
wa_saida-regiao = 'CO'.
WHEN 'MT'.
wa_saida-regiao = 'CO'.
WHEN 'AC'.
wa_saida-regiao = 'N'.
WHEN 'AM'.
wa_saida-regiao = 'N'.
WHEN 'AP'.
wa_saida-regiao = 'N'.
WHEN 'PA'.
wa_saida-regiao = 'N'.
WHEN 'RO'.
wa_saida-regiao = 'N'.
WHEN 'RR'.
wa_saida-regiao = 'N'.
WHEN 'TO'.
wa_saida-regiao = 'N'.
WHEN 'AL'.
wa_saida-regiao = 'NE'.
WHEN 'BA'.
wa_saida-regiao = 'NE'.
WHEN 'CE'.
wa_saida-regiao = 'NE'.
WHEN 'MA'.
wa_saida-regiao = 'NE'.
WHEN 'PB'.
wa_saida-regiao = 'NE'.
WHEN 'PE'.
wa_saida-regiao = 'NE'.
WHEN 'PI'.
wa_saida-regiao = 'NE'.
WHEN 'RN'.
wa_saida-regiao = 'NE'.
WHEN 'SE'.
wa_saida-regiao = 'NE'.
WHEN 'PR'.
wa_saida-regiao = 'S'.
WHEN 'RS'.
wa_saida-regiao = 'S'.
WHEN 'SC'.
wa_saida-regiao = 'S'.
WHEN 'ES'.
wa_saida-regiao = 'SE'.
WHEN 'MG'.
wa_saida-regiao = 'SE'.
WHEN 'RJ'.
wa_saida-regiao = 'SE'.
WHEN 'SP'.
wa_saida-regiao = 'SE'.
ENDCASE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF sy-subrc = 0.
IF sy-subrc = 0.
wa_saida-data_nf = wa_doc-docdat.
wa_saida-loja = wa_doc-branch.
IF sy-subrc = 0.
"Monta a UF e Regio
READ TABLE t_adrc INTO wa_adrc WITH KEY addrnumber = wa_branch-adrnr
BINARY SEARCH.
IF sy-subrc = 0.
wa_saida-uf = wa_adrc-region.
CASE wa_adrc-region.
WHEN 'DF'.
wa_saida-regiao = 'CO'.
WHEN 'GO'.
wa_saida-regiao = 'CO'.
WHEN 'MS'.
wa_saida-regiao = 'CO'.
WHEN 'MT'.
wa_saida-regiao = 'CO'.
WHEN 'AC'.
wa_saida-regiao = 'N'.
WHEN 'AM'.
wa_saida-regiao = 'N'.
WHEN 'AP'.
wa_saida-regiao = 'N'.
WHEN 'PA'.
wa_saida-regiao = 'N'.
WHEN 'RO'.
wa_saida-regiao = 'N'.
WHEN 'RR'.
wa_saida-regiao = 'N'.
WHEN 'TO'.
wa_saida-regiao = 'N'.
WHEN 'AL'.
wa_saida-regiao = 'NE'.
WHEN 'BA'.
wa_saida-regiao = 'NE'.
WHEN 'CE'.
wa_saida-regiao = 'NE'.
WHEN 'MA'.
wa_saida-regiao = 'NE'.
WHEN 'PB'.
wa_saida-regiao = 'NE'.
WHEN 'PE'.
wa_saida-regiao = 'NE'.
WHEN 'PI'.
wa_saida-regiao = 'NE'.
WHEN 'RN'.
wa_saida-regiao = 'NE'.
WHEN 'SE'.
wa_saida-regiao = 'NE'.
WHEN 'PR'.
wa_saida-regiao = 'S'.
WHEN 'RS'.
wa_saida-regiao = 'S'.
WHEN 'SC'.
wa_saida-regiao = 'S'.
WHEN 'ES'.
wa_saida-regiao = 'SE'.
WHEN 'MG'.
wa_saida-regiao = 'SE'.
WHEN 'RJ'.
wa_saida-regiao = 'SE'.
WHEN 'SP'.
wa_saida-regiao = 'SE'.
ENDCASE.
ENDIF.
ENDIF.
ELSE.
IF sy-subrc = 0.
wa_saida-data_nf = wa_doc-docdat.
wa_saida-loja = wa_doc-branch.
IF sy-subrc = 0.
"Monta a UF e Regio
READ TABLE t_adrc INTO wa_adrc WITH KEY addrnumber = wa_branch-adrnr
BINARY SEARCH.
IF sy-subrc = 0.
wa_saida-uf = wa_adrc-region.
CASE wa_adrc-region.
WHEN 'DF'.
wa_saida-regiao = 'CO'.
WHEN 'GO'.
wa_saida-regiao = 'CO'.
WHEN 'MS'.
wa_saida-regiao = 'CO'.
WHEN 'MT'.
wa_saida-regiao = 'CO'.
WHEN 'AC'.
wa_saida-regiao = 'N'.
WHEN 'AM'.
wa_saida-regiao = 'N'.
WHEN 'AP'.
wa_saida-regiao = 'N'.
WHEN 'PA'.
wa_saida-regiao = 'N'.
WHEN 'RO'.
wa_saida-regiao = 'N'.
WHEN 'RR'.
wa_saida-regiao = 'N'.
WHEN 'TO'.
wa_saida-regiao = 'N'.
WHEN 'AL'.
wa_saida-regiao = 'NE'.
WHEN 'BA'.
wa_saida-regiao = 'NE'.
WHEN 'CE'.
wa_saida-regiao = 'NE'.
WHEN 'MA'.
wa_saida-regiao = 'NE'.
WHEN 'PB'.
wa_saida-regiao = 'NE'.
WHEN 'PE'.
wa_saida-regiao = 'NE'.
WHEN 'PI'.
wa_saida-regiao = 'NE'.
WHEN 'RN'.
wa_saida-regiao = 'NE'.
WHEN 'SE'.
wa_saida-regiao = 'NE'.
WHEN 'PR'.
wa_saida-regiao = 'S'.
WHEN 'RS'.
wa_saida-regiao = 'S'.
WHEN 'SC'.
wa_saida-regiao = 'S'.
WHEN 'ES'.
wa_saida-regiao = 'SE'.
WHEN 'MG'.
wa_saida-regiao = 'SE'.
WHEN 'RJ'.
wa_saida-regiao = 'SE'.
WHEN 'SP'.
wa_saida-regiao = 'SE'.
ENDCASE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
*
ENDFORM. " ATUALIZA_TOTAIS
*&---------------------------------------------------------------------*
*& Form ATUALIZA_PAGOS
*&---------------------------------------------------------------------*
* Atualiza os valores totais nos trs nveis
*----------------------------------------------------------------------*
* -->P_Valor Valor do Lanamento *
* -->P_Grupo Grupo de Previso da Tesouraria *
* -->P_Natureza Natureza do lanamento (H - Crdito, S - Dbito)*
* -->P_Nat_Pos Natureza de lanamento que levar sinal positivo*
*----------------------------------------------------------------------*
FORM atualiza_pagos USING p_valor TYPE bseg-dmbtr
p_grupo TYPE lfb1-fdgrv
p_natureza TYPE bseg-shkzg
p_nat_pos TYPE bseg-shkzg
p_lifnr TYPE bseg-lifnr
p_belnr TYPE bseg-belnr
p_gjahr TYPE bseg-gjahr
p_buzei TYPE bseg-buzei
p_augdt TYPE bseg-augdt
p_augbl TYPE bseg-augbl
p_budat TYPE bsik-budat
p_blart TYPE bsik-blart
p_zfbdt TYPE bseg-zfbdt
p_hkont TYPE bseg-hkont
p_zlsch TYPE bseg-zlsch
p_zlspr TYPE bseg-zlspr
p_tipo
p_bukrs TYPE bseg-bukrs
p_valut TYPE bseg-valut
p_atrib TYPE bseg-zuonr.
IF p_natureza EQ p_nat_pos.
WRITE p_valor TO vg_dmbtr.
CONDENSE vg_dmbtr NO-GAPS.
wa_relatorio-pagos = wa_relatorio-pagos + p_valor.
ELSE.
WRITE p_valor TO vg_dmbtr.
CONCATENATE '-' vg_dmbtr INTO vg_dmbtr.
CONDENSE vg_dmbtr NO-GAPS.
wa_relatorio-pagos = wa_relatorio-pagos - p_valor.
ENDIF.
vg_tabix = sy-tabix.
MODIFY t_relatorio FROM wa_relatorio INDEX vg_tabix.
"TRANSPORTING pagos.
vg_soma1 = wa_relatorio-soma1.
vg_soma2 = wa_relatorio-soma2.
IF vg_soma1 GT 0.
vg_tabix = sy-tabix.
MODIFY t_relatorio FROM wa_relatorio INDEX vg_tabix.
ENDIF.
IF vg_soma2 GT 0.
vg_tabix = sy-tabix.
MODIFY t_relatorio FROM wa_relatorio INDEX vg_tabix.
ENDIF.
"Busca o nmero da NF
READ TABLE t_bkpf INTO wa_bkpf WITH KEY bukrs = p_bukrs
belnr = p_belnr
gjahr = p_gjahr
BINARY SEARCH.
IF sy-subrc = 0.
wa_saida-numero_nf = wa_bkpf-xblnr.
IF sy-subrc = 0.
IF sy-subrc = 0.
wa_saida-data_nf = wa_doc-docdat.
wa_saida-loja = wa_doc-branch.
IF sy-subrc = 0.
"Monta a UF e Regio
READ TABLE t_adrc INTO wa_adrc WITH KEY addrnumber = wa_branch-adrnr
BINARY SEARCH.
IF sy-subrc = 0.
wa_saida-uf = wa_adrc-region.
CASE wa_adrc-region.
WHEN 'DF'.
wa_saida-regiao = 'CO'.
WHEN 'GO'.
wa_saida-regiao = 'CO'.
WHEN 'MS'.
wa_saida-regiao = 'CO'.
WHEN 'MT'.
wa_saida-regiao = 'CO'.
WHEN 'AC'.
wa_saida-regiao = 'N'.
WHEN 'AM'.
wa_saida-regiao = 'N'.
WHEN 'AP'.
wa_saida-regiao = 'N'.
WHEN 'PA'.
wa_saida-regiao = 'N'.
WHEN 'RO'.
wa_saida-regiao = 'N'.
WHEN 'RR'.
wa_saida-regiao = 'N'.
WHEN 'TO'.
wa_saida-regiao = 'N'.
WHEN 'AL'.
wa_saida-regiao = 'NE'.
WHEN 'BA'.
wa_saida-regiao = 'NE'.
WHEN 'CE'.
wa_saida-regiao = 'NE'.
WHEN 'MA'.
wa_saida-regiao = 'NE'.
WHEN 'PB'.
wa_saida-regiao = 'NE'.
WHEN 'PE'.
wa_saida-regiao = 'NE'.
WHEN 'PI'.
wa_saida-regiao = 'NE'.
WHEN 'RN'.
wa_saida-regiao = 'NE'.
WHEN 'SE'.
wa_saida-regiao = 'NE'.
WHEN 'PR'.
wa_saida-regiao = 'S'.
WHEN 'RS'.
wa_saida-regiao = 'S'.
WHEN 'SC'.
wa_saida-regiao = 'S'.
WHEN 'ES'.
wa_saida-regiao = 'SE'.
WHEN 'MG'.
wa_saida-regiao = 'SE'.
WHEN 'RJ'.
wa_saida-regiao = 'SE'.
WHEN 'SP'.
wa_saida-regiao = 'SE'.
ENDCASE.
ENDIF.
ENDIF.
ELSE.
IF sy-subrc = 0.
wa_saida-data_nf = wa_doc-docdat.
wa_saida-loja = wa_doc-branch.
IF sy-subrc = 0.
"Monta a UF e Regio
READ TABLE t_adrc INTO wa_adrc WITH KEY addrnumber = wa_branch-adrnr
BINARY SEARCH.
IF sy-subrc = 0.
wa_saida-uf = wa_adrc-region.
CASE wa_adrc-region.
WHEN 'DF'.
wa_saida-regiao = 'CO'.
WHEN 'GO'.
wa_saida-regiao = 'CO'.
WHEN 'MS'.
wa_saida-regiao = 'CO'.
WHEN 'MT'.
wa_saida-regiao = 'CO'.
WHEN 'AC'.
wa_saida-regiao = 'N'.
WHEN 'AM'.
wa_saida-regiao = 'N'.
WHEN 'AP'.
wa_saida-regiao = 'N'.
WHEN 'PA'.
wa_saida-regiao = 'N'.
WHEN 'RO'.
wa_saida-regiao = 'N'.
WHEN 'RR'.
wa_saida-regiao = 'N'.
WHEN 'TO'.
wa_saida-regiao = 'N'.
WHEN 'AL'.
wa_saida-regiao = 'NE'.
WHEN 'BA'.
wa_saida-regiao = 'NE'.
WHEN 'CE'.
wa_saida-regiao = 'NE'.
WHEN 'MA'.
wa_saida-regiao = 'NE'.
WHEN 'PB'.
wa_saida-regiao = 'NE'.
WHEN 'PE'.
wa_saida-regiao = 'NE'.
WHEN 'PI'.
wa_saida-regiao = 'NE'.
WHEN 'RN'.
wa_saida-regiao = 'NE'.
WHEN 'SE'.
wa_saida-regiao = 'NE'.
WHEN 'PR'.
wa_saida-regiao = 'S'.
WHEN 'RS'.
wa_saida-regiao = 'S'.
WHEN 'SC'.
wa_saida-regiao = 'S'.
WHEN 'ES'.
wa_saida-regiao = 'SE'.
WHEN 'MG'.
wa_saida-regiao = 'SE'.
WHEN 'RJ'.
wa_saida-regiao = 'SE'.
WHEN 'SP'.
wa_saida-regiao = 'SE'.
ENDCASE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
READ TABLE t_nfe INTO wa_nf WITH KEY xblnr = wa_bkpf-xblnr
parid = wa_bseg-lifnr
BINARY SEARCH.
IF sy-subrc = 0.
IF sy-subrc = 0.
wa_saida-data_nf = wa_doc-docdat.
wa_saida-loja = wa_doc-branch.
IF sy-subrc = 0.
"Monta a UF e Regio
READ TABLE t_adrc INTO wa_adrc WITH KEY addrnumber = wa_branch-adrnr
BINARY SEARCH.
IF sy-subrc = 0.
wa_saida-uf = wa_adrc-region.
CASE wa_adrc-region.
WHEN 'DF'.
wa_saida-regiao = 'CO'.
WHEN 'GO'.
wa_saida-regiao = 'CO'.
WHEN 'MS'.
wa_saida-regiao = 'CO'.
WHEN 'MT'.
wa_saida-regiao = 'CO'.
WHEN 'AC'.
wa_saida-regiao = 'N'.
WHEN 'AM'.
wa_saida-regiao = 'N'.
WHEN 'AP'.
wa_saida-regiao = 'N'.
WHEN 'PA'.
wa_saida-regiao = 'N'.
WHEN 'RO'.
wa_saida-regiao = 'N'.
WHEN 'RR'.
wa_saida-regiao = 'N'.
WHEN 'TO'.
wa_saida-regiao = 'N'.
WHEN 'AL'.
wa_saida-regiao = 'NE'.
WHEN 'BA'.
wa_saida-regiao = 'NE'.
WHEN 'CE'.
wa_saida-regiao = 'NE'.
WHEN 'MA'.
wa_saida-regiao = 'NE'.
WHEN 'PB'.
wa_saida-regiao = 'NE'.
WHEN 'PE'.
wa_saida-regiao = 'NE'.
WHEN 'PI'.
wa_saida-regiao = 'NE'.
WHEN 'RN'.
wa_saida-regiao = 'NE'.
WHEN 'SE'.
wa_saida-regiao = 'NE'.
WHEN 'PR'.
wa_saida-regiao = 'S'.
WHEN 'RS'.
wa_saida-regiao = 'S'.
WHEN 'SC'.
wa_saida-regiao = 'S'.
WHEN 'ES'.
wa_saida-regiao = 'SE'.
WHEN 'MG'.
wa_saida-regiao = 'SE'.
WHEN 'RJ'.
wa_saida-regiao = 'SE'.
WHEN 'SP'.
wa_saida-regiao = 'SE'.
ENDCASE.
ENDIF.
ENDIF.
ELSE.
IF sy-subrc = 0.
wa_saida-data_nf = wa_doc-docdat.
wa_saida-loja = wa_doc-branch.
IF sy-subrc = 0.
"Monta a UF e Regio
READ TABLE t_adrc INTO wa_adrc WITH KEY addrnumber = wa_branch-adrnr
BINARY SEARCH.
IF sy-subrc = 0.
wa_saida-uf = wa_adrc-region.
CASE wa_adrc-region.
WHEN 'DF'.
wa_saida-regiao = 'CO'.
WHEN 'GO'.
wa_saida-regiao = 'CO'.
WHEN 'MS'.
wa_saida-regiao = 'CO'.
WHEN 'MT'.
wa_saida-regiao = 'CO'.
WHEN 'AC'.
wa_saida-regiao = 'N'.
WHEN 'AM'.
wa_saida-regiao = 'N'.
WHEN 'AP'.
wa_saida-regiao = 'N'.
WHEN 'PA'.
wa_saida-regiao = 'N'.
WHEN 'RO'.
wa_saida-regiao = 'N'.
WHEN 'RR'.
wa_saida-regiao = 'N'.
WHEN 'TO'.
wa_saida-regiao = 'N'.
WHEN 'AL'.
wa_saida-regiao = 'NE'.
WHEN 'BA'.
wa_saida-regiao = 'NE'.
WHEN 'CE'.
wa_saida-regiao = 'NE'.
WHEN 'MA'.
wa_saida-regiao = 'NE'.
WHEN 'PB'.
wa_saida-regiao = 'NE'.
WHEN 'PE'.
wa_saida-regiao = 'NE'.
WHEN 'PI'.
wa_saida-regiao = 'NE'.
WHEN 'RN'.
wa_saida-regiao = 'NE'.
WHEN 'SE'.
wa_saida-regiao = 'NE'.
WHEN 'PR'.
wa_saida-regiao = 'S'.
WHEN 'RS'.
wa_saida-regiao = 'S'.
WHEN 'SC'.
wa_saida-regiao = 'S'.
WHEN 'ES'.
wa_saida-regiao = 'SE'.
WHEN 'MG'.
wa_saida-regiao = 'SE'.
WHEN 'RJ'.
wa_saida-regiao = 'SE'.
WHEN 'SP'.
wa_saida-regiao = 'SE'.
ENDCASE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
"Busca o nmero da NF
READ TABLE t_bseg INTO wa_bseg WITH KEY bukrs = p_bukrs
belnr = p_belnr
gjahr = p_gjahr
BINARY SEARCH.
IF sy-subrc = 0.
wa_saida-fornecedor = wa_bseg-lifnr.
ENDIF.
CLEAR vl_data.
DATA:
BEGIN OF lt_bsak OCCURS 0,
belnr TYPE bsak-belnr,
lifnr TYPE bsak-lifnr,
gjahr TYPE bsak-gjahr,
budat TYPE bsak-budat,
bschl TYPE bsak-bschl,
END OF lt_bsak.
SELECT belnr lifnr gjahr budat bschl FROM bsak INTO TABLE lt_bsak
WHERE lifnr = pv_lifnr
AND bukrs = p_bukrs
AND augdt = pv_augdt
AND augbl = pv_augbl.
* AND belnr <> pv_augbl.
PERFORM get_doc_principal
USING lt_bsak-belnr lt_bsak-budat lt_bsak-lifnr
CHANGING pv_belnr pv_gjahr.
IF sy-subrc <> 0.
pv_belnr = lt_bsak-belnr.
pv_gjahr = lt_bsak-gjahr.
EXIT.
ENDIF.
ENDLOOP.
SELECT hkont zuonr kostl koart FROM bseg INTO TABLE lt_bseg
WHERE bukrs EQ p_bukrs AND
belnr EQ pv_belnr AND
gjahr EQ pv_gjahr AND
buzei BETWEEN 001 AND 999.
CHECK sy-subrc = 0.
ENDIF.
ENDIF.
DATA:
lv_arq_cons LIKE rlgrap-filename,
lv_path LIKE rlgrap-filename,
lv_ext LIKE rlgrap-filename,
lv_pos TYPE i.
gc_arq_sai = pa_arq2.
sy-fdpos = strlen( gc_arq_sai ).
DO sy-fdpos TIMES.
lv_pos = sy-fdpos - sy-index.
CHECK gc_arq_sai+lv_pos(1) = '.'.
CONCATENATE pa_dir gc_arq_sai(lv_pos) INTO lv_path.
lv_ext = gc_arq_sai+lv_pos.
w_cont_win = w_cont_win + 1.
CONCATENATE lv_path '_apg_prv_' w_cont_win '_'
vg_datum '_' vg_uzeit lv_ext INTO lv_arq_apgt.
EXIT.
ENDDO.
w_abre_arq = 'X'.
gc_arq_sai = pa_arq1.
sy-fdpos = strlen( gc_arq_sai ).
DO sy-fdpos TIMES.
lv_pos = sy-fdpos - sy-index.
CHECK gc_arq_sai+lv_pos(1) = '.'.
lv_path = gc_arq_sai(lv_pos).
lv_ext = gc_arq_sai+lv_pos.
CONCATENATE lv_path '_apg_prv_' vg_datum '_' vg_uzeit lv_ext
INTO lv_arq_apgt.
EXIT.
ENDDO.
ENDIF.
INTO ti_arq-reg.
APPEND ti_arq.
ENDIF.
ELSE.
MESSAGE e777(z1)
WITH 'No existem dados para exportao.'.
ENDIF.
ENDFORM. "grava_arq_saida
*&---------------------------------------------------------------------*
*& Form GRAVA_ARQ_SAIDA_PGT
*&---------------------------------------------------------------------*
FORM grava_arq_saida_pgt .
DATA:
lv_path LIKE rlgrap-filename,
lv_ext LIKE rlgrap-filename,
lv_pos TYPE i.
gc_arq_sai_pgt = pa_arq2.
sy-fdpos = strlen( gc_arq_sai_pgt ).
DO sy-fdpos TIMES.
lv_pos = sy-fdpos - sy-index.
CHECK gc_arq_sai_pgt+lv_pos(1) = '.'.
CONCATENATE pa_dir gc_arq_sai_pgt(lv_pos) INTO lv_path.
lv_ext = gc_arq_sai_pgt+lv_pos.
w_cont_win_pgt = w_cont_win_pgt + 1.
CONCATENATE lv_path '_pgt_' w_cont_win_pgt '_'
vg_datum '_' vg_uzeit lv_ext INTO lv_arq_pgt.
EXIT.
ENDDO.
w_abre_arq_pgt = 'X'.
gc_arq_sai_pgt = pa_arq1.
sy-fdpos = strlen( gc_arq_sai_pgt ).
DO sy-fdpos TIMES.
lv_pos = sy-fdpos - sy-index.
CHECK gc_arq_sai_pgt+lv_pos(1) = '.'.
lv_path = gc_arq_sai_pgt(lv_pos).
lv_ext = gc_arq_sai_pgt+lv_pos.
CONCATENATE lv_path '_pgt_' vg_datum '_' vg_uzeit lv_ext
INTO lv_arq_pgt.
EXIT.
ENDDO.
LOOP AT ti_arq_pgt.
TRANSFER ti_arq_pgt TO lv_arq_pgt.
ENDLOOP.
ENDIF.
ELSE.
MESSAGE e777(z1)
WITH 'No existem dados para exportao.'.
ENDIF.
"Monta a fieldcat
PERFORM preencher_fieldcat
USING:
"Tipo
'TIPO' 'T_SAIDA' text-019 space space space space space '20',
"Grupo
'GRUPO' 'T_SAIDA' text-016 space space space space space '20',
"Nr. Documento
'DOCTO' 'T_SAIDA' text-018 space space space space space '20',
"Nr. Documento Compensado
'DOCTO_COMP' 'T_SAIDA' text-020 space space space space space '20',
"Valor Bruto
'VL_BRUTO' 'T_SAIDA' text-012 space 'X' space space space '20',
"Fornecedor
'FORNECEDOR' 'T_SAIDA' text-017 space space space space space '20',
"Nome do Fornecedor
'NOME_FORN' 'T_SAIDA' text-010 space space space space space '20',
"CNPJ
'CNPJ' 'T_SAIDA' text-032 space space space space space '20',
"Data de Pagamento
'DT_PAGTO' 'T_SAIDA' text-011 space space space space space '20',
"Conta Contbil
'CONTA' 'T_SAIDA' text-014 space space space space space '20',
"Descrio da Conta Contbil
'DESC_CONTA' 'T_SAIDA' text-015 space space space space space '20',
"Nmero da NF
'NUMERO_NF' 'T_SAIDA' text-013 space space space space space '20',
"Data da Emisso
'DATA_NF' 'T_SAIDA' text-033 space space space space space '20',
"Loja
'LOJA' 'T_SAIDA' text-034 space space space space space '10',
"UF
'UF' 'T_SAIDA' text-035 space space space space space '4',
"Regio
'REGIAO' 'T_SAIDA' text-036 space space space space space space.
vl_pos = vl_pos + 1.
wa_fieldcat-fieldname = p_fieldname .
wa_fieldcat-tabname = p_tabname .
wa_fieldcat-scrtext_l = p_text .
wa_fieldcat-hotspot = p_hot .
wa_fieldcat-col_pos = vl_pos .
wa_fieldcat-do_sum = p_sum .
wa_fieldcat-edit = p_edit .
wa_fieldcat-checkbox = p_check .
wa_fieldcat-round = p_round .
wa_fieldcat-outputlen = p_outputlen .
"Se o arquivo for maior que 60000, no ser exibido no ALV Grid
IF vg_flag IS NOT INITIAL.
ENDIF.
wa_sort-spos = 1 .
wa_sort-fieldname = 'TIPO'.
wa_sort-up = 'X' .
wa_sort-subtot = 'X' .
wa_sort-spos = 2 .
wa_sort-fieldname = 'GRUPO'.
wa_sort-up = 'X' .
wa_sort-subtot = 'X' .
vg_variant-report = sy-repid.
"Cria o Grid
CREATE OBJECT og_grid
EXPORTING
i_parent = og_container_2.
ENDIF.
PERFORM gera_alv.