Professional Documents
Culture Documents
CLEAR: lwa_budat.
lwa_budat-sign = 'I'.
lwa_budat-option = 'BT'.
CONCATENATE p_gjahr s_monat-low '01' INTO lwa_budat-low.
CLEAR: ls_fecini.
IF s_monat-high IS INITIAL.
ls_fecini = lwa_budat-low.
ELSE.
CONCATENATE p_gjahr s_monat-high '01' INTO ls_fecini.
ENDIF.
*&---------------------------------------------------------------------*
*& Form obtener_movimientos
*&---------------------------------------------------------------------*
FORM obtener_movimientos .
DATA: lt_bkpf_tmp TYPE STANDARD TABLE OF gty_bkpf, "+@PE002
lt_bseg_tmp TYPE STANDARD TABLE OF gty_detalle. "+@PE002
IF p_clus EQ 'X'.
REFRESH: gtd_detalle_aux.
gtd_detalle = gtd_detalle_aux.
* +Crystalis 130911
ELSEIF p_ngl EQ 'X'.
REFRESH gth_bkpf.
SELECT belnr gjahr budat bktxt
xblnr "+@PE003
INTO TABLE gth_bkpf
FROM bkpf
WHERE bukrs EQ p_bukrs
AND belnr IN s_belnr
AND gjahr EQ p_gjahr
AND budat IN gr_budat
AND monat IN s_monat
AND bstat EQ space.
*{@PE002
* SELECT docnr ryear buzei hsl drcrk racct budat docln
* INTO TABLE gtd_detalle_flag
* FROM faglflexa
* WHERE rbukrs EQ p_bukrs
* AND docnr IN s_belnr
* AND ryear EQ p_gjahr
* AND poper IN s_monat
* AND budat IN gr_budat
* AND racct IN s_cuent
* AND rldnr EQ p_rldnr
* AND bstat EQ space.
*
* CHECK gtd_detalle_flag IS NOT INITIAL.
*
* SORT gtd_detalle_flag BY docnr ryear buzei.
*
* SELECT belnr gjahr buzei sgtxt hkont shkzg dmbtr
* INTO TABLE gth_detalle
* FROM bseg
* FOR ALL ENTRIES IN gtd_detalle_flag
* WHERE bukrs EQ p_bukrs
* AND belnr EQ gtd_detalle_flag-docnr
* AND gjahr EQ gtd_detalle_flag-ryear
* AND buzei EQ gtd_detalle_flag-buzei.
** End Crystalis 130911
lt_bkpf_tmp[] = gth_bkpf[].
SELECT belnr gjahr buzei sgtxt hkont shkzg dmbtr INTO TABLE gth_detalle
FROM bseg FOR ALL ENTRIES IN lt_bkpf_tmp
WHERE bukrs = p_bukrs
AND belnr = lt_bkpf_tmp-belnr
AND gjahr = p_gjahr.
lt_bseg_tmp[] = gth_detalle[].
SELECT docnr ryear buzei hsl ksl drcrk racct budat docln
INTO TABLE gtd_detalle_flag
FROM faglflexa
FOR ALL ENTRIES IN lt_bseg_tmp
WHERE ryear = p_gjahr
AND docnr = lt_bseg_tmp-belnr
AND rldnr = p_rldnr
AND rbukrs = p_bukrs
AND poper IN s_monat
AND budat IN gr_budat
AND racct IN s_cuent
AND rldnr = p_rldnr
AND bstat = space
AND buzei = lt_bseg_tmp-buzei.
*}@PE002
ENDIF.
*{@PE003
CHECK gth_bkpf IS NOT INITIAL.
*&---------------------------------------------------------------------*
*& Form GENERAR_REPORTE
*&---------------------------------------------------------------------*
FORM generar_reporte .
gwa_reporte-belnr = <fs_detalle>-belnr.
gwa_reporte-buzei = <fs_detalle>-buzei. "OGUTIERREZ 20/03
READ TABLE gth_bkpf ASSIGNING <fs_bkpf> WITH TABLE KEY belnr = <fs_detalle>-
belnr
gjahr = <fs_detalle>-
gjahr.
IF sy-subrc EQ 0.
gwa_reporte-budat = <fs_bkpf>-budat.
IF <fs_detalle>-shkzg EQ 'S'.
gwa_reporte-debe = <fs_detalle>-dmbtr.
ELSE.
gwa_reporte-haber = <fs_detalle>-dmbtr.
ENDIF.
IF p_alter EQ 'X'.
READ TABLE gth_skb1 ASSIGNING <fs_skb1>
WITH TABLE KEY saknr = <fs_detalle>-hkont.
IF sy-subrc EQ 0.
gwa_reporte-hkont = <fs_skb1>-altkt.
ELSE.
gwa_reporte-hkont = <fs_detalle>-hkont.
ENDIF.
gwa_reporte-gjahr = <fs_detalle>-gjahr.
APPEND gwa_reporte TO gtd_reporte.
ENDLOOP.
"Saldos Iniciales
SELECT ryear objnr00 objnr01 objnr02 objnr03 objnr04 objnr05
objnr06 objnr07 objnr08 drcrk rpmax rbukrs racct hslvt
hsl01 hsl02 hsl03 hsl04 hsl05 hsl06 hsl07 hsl08 hsl09
hsl10 hsl11 hsl12
INTO TABLE ltd_faglflext
FROM faglflext
WHERE rbukrs EQ p_bukrs
AND rldnr EQ p_rldnr
AND ryear EQ p_gjahr
AND rrcty EQ '0'
AND racct IN s_cuent.
IF sy-subrc EQ 0.
li_cant = s_monat-low - 1.
DO li_cant TIMES.
CONCATENATE '<fs_faglflext>-HSL' ln_cont INTO ls_importe.
ASSIGN (ls_importe) TO <fs_importe>.
ADD 1 TO ln_cont.
lwa_salini-monto = lwa_salini-monto + <fs_importe>.
ENDDO.
COLLECT lwa_salini INTO ltd_salini.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form OBTENER_DATOS_ADICIONALES
*&---------------------------------------------------------------------*
FORM obtener_datos_adicionales .
IF s_monat-high IS INITIAL.
WRITE s_monat-low TO gs_fecha.
ELSE.
CONCATENATE s_monat-low 'AL' s_monat-high
INTO gs_fecha SEPARATED BY space.
ENDIF.
REFRESH: gtd_detalle_aux.
gtd_detalle_aux = gtd_detalle.
SORT gtd_detalle_aux BY hkont.
DELETE ADJACENT DUPLICATES FROM gtd_detalle_aux COMPARING hkont.
IF p_alter NE 'X'.
ltd_skb1 = gth_skb1.
SORT ltd_skb1 BY altkt.
DELETE ADJACENT DUPLICATES FROM ltd_skb1 COMPARING altkt.
*&---------------------------------------------------------------------*
*& Form MOSTRAR_PANTALLA
*&---------------------------------------------------------------------*
FORM mostrar_pantalla.
gs_van_debe = w_montoide.
gs_van_haber = w_montoiha.
WRITE: /1 '|',
AT 2 gwa_reporte-belnr,
AT 20 '|',
AT 21 gwa_reporte-budat,
AT 31 '|',
AT 32 gwa_reporte-glosa,
AT 82 '|',
AT 83 gwa_reporte-hkont,
AT 94 '|',
AT 95 gwa_reporte-txt50,
AT 146 '|',
AT 153 gwa_reporte-debe,
AT 169 '|',
AT 174 gwa_reporte-haber,
AT 190 '|'.
HIDE: gwa_reporte-gjahr.
ENDLOOP.
WRITE: gs_van_debe TO gs_montod CURRENCY 'PEN'.
WRITE: gs_van_haber TO gs_montoh CURRENCY 'PEN'.
WRITE: /1 sy-uline(190),
/79 'TOTAL FINAL',
146 '|',
148 gs_montod,
169 '|',
170 gs_montoh,
190 '|'.
WRITE: /146 sy-uline(45).
*&---------------------------------------------------------------------*
*& Form alv_initialization
*&---------------------------------------------------------------------*
FORM alv_initialization .
IF sy-subrc NE 0.
CLEAR gwa_variantx.
ENDIF.
*&---------------------------------------------------------------------*
*& Form eventtab_build
*&---------------------------------------------------------------------*
FORM eventtab_build USING pi_events TYPE slis_t_event.
DEFINE define_alv_event.
read table pi_events
with key name = &1
into ls_event.
if sy-subrc = 0.
move &1 to ls_event-form.
modify pi_events from ls_event index sy-tabix.
endif.
END-OF-DEFINITION.
define_alv_event:
slis_ev_top_of_page.
ENDFORM. " eventtab_build
*---------------------------------------------------------------------*
* Form CAMBIA_NUMERO_PAGINA
*---------------------------------------------------------------------*
FORM cambia_numero_pagina.
DO gs_nropag TIMES.
READ LINE 5 OF PAGE sy-index.
REPLACE '**' WITH gs_nropag INTO sy-lisel.
MODIFY LINE 5 OF PAGE sy-index.
ENDDO.
ENDFORM. " CAMBIA_NUMERO PAGINA
*&---------------------------------------------------------------------*
*& Form LAYOUT_BUILD
*&---------------------------------------------------------------------*
FORM layout_build .
gwa_layout-zebra = 'X'.
ENDFORM. " LAYOUT_BUILD
*&---------------------------------------------------------------------*
*& Form F_FORMATO_PAGE
*&---------------------------------------------------------------------*
FORM f_formato_page CHANGING gt_top_of_page
TYPE slis_t_listheader.
DATA: gs_line TYPE slis_listheader.
DATA: ls_fecim TYPE c LENGTH 10.
CLEAR gs_line.
gs_line-typ = 'A'.
CONCATENATE 'FORMATO 5.1: "LIBRO DIARIO"' '' INTO gs_line-info SEPARATED BY
space.
APPEND gs_line TO gt_top_of_page.
CLEAR gs_line.
gs_line-typ = 'A'.
CONCATENATE 'PERIODO :'gs_fecha INTO gs_line-info SEPARATED BY space.
APPEND gs_line TO gt_top_of_page.
CLEAR gs_line.
gs_line-typ = 'A'.
CONCATENATE 'EJERCICIO :' p_gjahr INTO gs_line-info SEPARATED BY space.
APPEND gs_line TO gt_top_of_page.
CLEAR gs_line.
gs_line-typ = 'A'.
CONCATENATE 'FECHA DE IMPRESI�N :' ls_fecim INTO gs_line-info SEPARATED BY
space.
APPEND gs_line TO gt_top_of_page.
CLEAR gs_line.
gs_line-typ = 'A'.
CONCATENATE 'RUC :' gs_ruc INTO gs_line-info SEPARATED BY space.
"OGUTIERREZ 20/03
APPEND gs_line TO gt_top_of_page.
CLEAR gs_line.
gs_line-typ = 'A'.
CONCATENATE 'RAZON SOCIAL :'gs_butxt INTO gs_line-info SEPARATED BY space.
APPEND gs_line TO gt_top_of_page.
ENDFORM. "F_FORMATO_PAGE
*&---------------------------------------------------------------------*
*& Form F_FORMATEAR_EVENTOS_ALV
*&---------------------------------------------------------------------*
FORM f_formatear_eventos_alv USING p_events
TYPE slis_t_event.
DATA: l_events TYPE slis_alv_event.
CLEAR l_events.
l_events-name = 'TOP_OF_PAGE'.
l_events-form = 'TOP_OF_PAGE'.
APPEND l_events TO p_events.
ENDFORM. "F_FORMATEAR_EVENTOS_ALV
*&---------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&---------------------------------------------------------------------*
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_list_top_of_page.
ENDFORM. "TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form CREAR_CfATALOGO
*&---------------------------------------------------------------------*
FORM crear_catalogo .
* Documento
ADD 1 TO li_pos.
CLEAR lwa_fieldcat.
PERFORM fill_cat USING li_pos 'GTD_REPORTE' 'BELNR' text-a01
text-a01 text-a01 'L' 10 ' ' ' ' 'CHAR' 'X' ' '
CHANGING lwa_fieldcat.
APPEND lwa_fieldcat TO gtd_fieldcat.
* Fecha Operacion
ADD 1 TO li_pos.
CLEAR lwa_fieldcat.
PERFORM fill_cat USING li_pos 'GTD_REPORTE' 'BUDAT' text-a02
text-a02 text-a02 'L' 10 ' ' ' ' 'DATS' ' ' ' '
CHANGING lwa_fieldcat.
APPEND lwa_fieldcat TO gtd_fieldcat.
* Glosa
ADD 1 TO li_pos.
CLEAR lwa_fieldcat.
PERFORM fill_cat USING li_pos 'GTD_REPORTE' 'GLOSA' text-a03
text-a03 text-a03 'L' 35 ' ' ' ' 'CHAR' ' ' ' '
CHANGING lwa_fieldcat.
APPEND lwa_fieldcat TO gtd_fieldcat.
* Cuenta
ADD 1 TO li_pos.
CLEAR lwa_fieldcat.
PERFORM fill_cat USING li_pos 'GTD_REPORTE' 'HKONT' text-a04
text-a04 text-a04 'L' 10 ' ' ' ' 'CHAR' ' ' ' '
CHANGING lwa_fieldcat.
APPEND lwa_fieldcat TO gtd_fieldcat.
* Descripcion Cuenta
ADD 1 TO li_pos.
CLEAR lwa_fieldcat.
PERFORM fill_cat USING li_pos 'GTD_REPORTE' 'TXT50' text-a06
text-a05 text-a05 'L' 30 ' ' ' ' 'CHAR' ' ' ' '
CHANGING lwa_fieldcat.
APPEND lwa_fieldcat TO gtd_fieldcat.
* Debe
ADD 1 TO li_pos.
CLEAR lwa_fieldcat.
PERFORM fill_cat USING li_pos 'GTD_REPORTE' 'DEBE' text-a07
text-a07 text-a07 'R' 30 ' ' ' ' 'CURR' ' ' ' '
CHANGING lwa_fieldcat.
APPEND lwa_fieldcat TO gtd_fieldcat.
* Haber
ADD 1 TO li_pos.
CLEAR lwa_fieldcat.
PERFORM fill_cat USING li_pos 'GTD_REPORTE' 'HABER' text-a08
text-a08 text-a08 'R' 30 ' ' ' ' 'CURR' ' ' ' '
CHANGING lwa_fieldcat.
APPEND lwa_fieldcat TO gtd_fieldcat.
ENDFORM. "crear_catalogo
*&---------------------------------------------------------------------*
*& Form fill_cat
*&---------------------------------------------------------------------*
FORM fill_cat USING pi_col_pos TYPE slis_fieldcat_alv-col_pos
pi_tabname TYPE slis_fieldcat_alv-tabname
pi_fieldname TYPE slis_fieldcat_alv-fieldname
pi_seltext_l TYPE slis_fieldcat_alv-seltext_l
pi_seltext_m TYPE slis_fieldcat_alv-seltext_m
pi_seltext_s TYPE slis_fieldcat_alv-seltext_s
pi_just TYPE slis_fieldcat_alv-just
pi_outputlen TYPE slis_fieldcat_alv-outputlen
pi_no_out TYPE slis_fieldcat_alv-no_out
pi_dosum TYPE lvc_dosum
pi_datatype TYPE slis_fieldcat_alv-datatype
pi_hotspot TYPE lvc_s_fcat-hotspot
pi_edit TYPE slis_fieldcat_alv-edit
CHANGING po_fieldcat TYPE slis_fieldcat_alv.
CLEAR po_fieldcat.
po_fieldcat-col_pos = pi_col_pos.
po_fieldcat-tabname = pi_tabname.
po_fieldcat-fieldname = pi_fieldname.
po_fieldcat-seltext_l = pi_seltext_l.
po_fieldcat-seltext_m = pi_seltext_m.
po_fieldcat-seltext_s = pi_seltext_s.
po_fieldcat-outputlen = pi_outputlen.
po_fieldcat-just = pi_just.
po_fieldcat-no_out = pi_no_out.
po_fieldcat-do_sum = pi_dosum.
po_fieldcat-datatype = pi_datatype.
po_fieldcat-hotspot = pi_hotspot.
po_fieldcat-edit = pi_edit.
ENDFORM. "fill_cat
*&---------------------------------------------------------------------*
*& Form call_alv
*&---------------------------------------------------------------------*
FORM call_alv .
IF sy-subrc <> 0.
MESSAGE e301.
ENDIF.
*&---------------------------------------------------------------------*
*& Form set_status
*&---------------------------------------------------------------------*
FORM set_status USING pi_extab TYPE slis_t_extab.
* DATA fcode_attrib_tab LIKE smp_dyntxt OCCURS 0 WITH HEADER LINE.
TOP-OF-PAGE.
gs_nropag = sy-pagno.
CONCATENATE p_datum+6(2) p_datum+4(2) p_datum+0(4) INTO gs_fecim SEPARATED BY
'/'.
CONDENSE gs_fecim.
WRITE: /1 sy-uline(190).
WRITE: /1 '|',
AT 2 ' CODIGO UNICO',
AT 20 '|',
AT 21 ' FECHA',
AT 31 '|',
AT 32 ' GLOSA O',
AT 82 '|',
AT 83 ' CUENTA CONTABLE ASOCIADA A LA OPERACION',
AT 146 '|',
AT 147 ' MOVIMIENTO',
AT 190 '|'.
WRITE: /1 '|',
AT 2 ' DE LA OPERACION',
AT 20 '|',
AT 21 ' DE LA',
AT 31 '|',
AT 32 ' DESCRIPCION DE',
AT 82 '|',
AT 82 sy-uline(108),
AT 190 '|'.
WRITE: /1 '|',
AT 20 '|',
AT 21 'OPERACION',
AT 31 '|',
AT 32 ' LA OPERACION',
AT 82 '|',
AT 94 '|',
AT 146 '|',
AT 169 '|',
AT 190 '|'.
WRITE: /1 '|',
AT 20 '|',
AT 31 '|',
AT 82 '|',
AT 83 ' CODIGO',
AT 94 '|',
AT 95 ' DENOMINACION',
AT 146 '|',
AT 147 ' DEBE',
AT 169 '|',
AT 170 ' HABER',
AT 190 '|'.
WRITE: /1 '|',
AT 20 '|',
AT 31 '|',
AT 82 '|',
AT 94 '|',
AT 146 '|',
AT 169 '|',
AT 190 '|'.
WRITE: /1 sy-uline(190).
ENDIF.
IF sy-pagno EQ 1.
ENDIF.
END-OF-PAGE.
RESERVE 3 LINES.
WRITE: gs_van_debe TO gs_montod CURRENCY 'PEN'.
WRITE: gs_van_haber TO gs_montoh CURRENCY 'PEN'.
WRITE: /1 sy-uline(190).
WRITE: /79 'VAN',
146 '|',
148 gs_montod,
169 '|',
170 gs_montoh,
190 '|'.
WRITE: /146 sy-uline(45).
AT LINE-SELECTION.
SET PARAMETER ID 'BLN' FIELD sy-lisel+1(10).
SET PARAMETER ID 'BUK' FIELD p_bukrs.
SET PARAMETER ID 'GJR' FIELD p_gjahr.
*&---------------------------------------------------------------------*
*& Form PRINT
*&---------------------------------------------------------------------*
FORM print .
w_contrl-no_dialog = 'X'.
w_contrl-device = 'PRINTER'.
w_contrl-preview = ' '.
w_output-tdcover = ' '.
w_output-tddest = p_print1.
w_output-tdcopies = 1.
w_output-tdimmed = 'X'.
ls_periodo = gs_fecha.
*---------------------------------------------------------------------*
* FORM user_command
*---------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
ENDIF.
IF r_ucomm EQ 'ZFUN'
PERFORM actualiza_documento.
ELSEIF r_ucomm EQ 'ZFU2'.
PERFORM subrutina.
ENDIF.
ENDFORM. "user_command
*&---------------------------------------------------------------------*
*& Form tabla_EXCEL
*&---------------------------------------------------------------------*
FORM tabla_excel .
CLEAR lwa_tab_excel.
lwa_tab_excel-belnr = 'PERIODO:'.
CLEAR lwa_tab_excel.
lwa_tab_excel-belnr = 'EJERCICIO:'.
lwa_tab_excel-budat = p_gjahr.
APPEND lwa_tab_excel TO gtd_tab_excel.
CLEAR lwa_tab_excel.
lwa_tab_excel-belnr = 'RUC:'.
lwa_tab_excel-budat = gs_ruc.
APPEND lwa_tab_excel TO gtd_tab_excel.
CLEAR lwa_tab_excel.
lwa_tab_excel-belnr = 'RAZON SOCIAL:'.
lwa_tab_excel-budat = gs_butxt.
APPEND lwa_tab_excel TO gtd_tab_excel.
CLEAR lwa_tab_excel.
APPEND lwa_tab_excel TO gtd_tab_excel.
CLEAR lwa_tab_excel.
lwa_tab_excel-belnr = 'CODIGO UNICO'.
lwa_tab_excel-budat = 'FECHA'.
lwa_tab_excel-glosa = 'GLOSA O'.
lwa_tab_excel-txt50 = 'CUENTA CONTABLE ASOCIADA A LA OPERACION'.
lwa_tab_excel-debe = 'MOVIMIENTO'.
APPEND lwa_tab_excel TO gtd_tab_excel.
CLEAR lwa_tab_excel.
lwa_tab_excel-belnr = 'DE LA'.
lwa_tab_excel-budat = 'DE LA'.
lwa_tab_excel-glosa = 'DESCRIPCION DE'.
APPEND lwa_tab_excel TO gtd_tab_excel.
CLEAR lwa_tab_excel.
lwa_tab_excel-belnr = 'OPERACION'.
lwa_tab_excel-budat = 'OPERACION'.
lwa_tab_excel-glosa = 'LA OPERACION'.
lwa_tab_excel-hkont = 'CODIGO'.
lwa_tab_excel-txt50 = 'DENOMINACION'.
lwa_tab_excel-debe = 'DEBE'.
lwa_tab_excel-haber = 'HABER'.
APPEND lwa_tab_excel TO gtd_tab_excel.
ENDFORM. "tabla_EXCEL
*&---------------------------------------------------------------------*
*& Form OBTENER_DATOS_ADICIONALES_NGL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM obtener_datos_adicionales_ngl .
DATA: ls_ktopl TYPE ktopl,
ls_ktop2 TYPE ktop2,
ltd_skb1 TYPE STANDARD TABLE OF gty_skb1.
IF s_monat-high IS INITIAL.
WRITE s_monat-low TO gs_fecha.
ELSE.
CONCATENATE s_monat-low 'AL' s_monat-high
INTO gs_fecha SEPARATED BY space.
ENDIF.
SELECT SINGLE paval
INTO gs_ruc
FROM t001z
WHERE bukrs = p_bukrs AND
party = 'ZRUC'.
REFRESH: gtd_detalle_flag_aux.
gtd_detalle_flag_aux = gtd_detalle_flag.
SORT gtd_detalle_flag_aux BY racct.
DELETE ADJACENT DUPLICATES FROM gtd_detalle_flag_aux COMPARING racct.
DELETE gtd_detalle_flag_aux WHERE racct IS INITIAL.
IF p_alter NE 'X'.
ltd_skb1 = gth_skb1.
SORT ltd_skb1 BY altkt.
DELETE ADJACENT DUPLICATES FROM ltd_skb1 COMPARING altkt.
"OGUTIERREZ
*LOOP AT gtd_detalle_flag assigning <fs_detalle>.
* gv_suma = gv_suma + <fs_detalle>-hsl.
* AT END OF buzei.
* ltd_detalle_flag2-docnr = <fs_detalle>-docnr.
* ltd_detalle_flag2-ryear = <fs_detalle>-ryear.
* ltd_detalle_flag2-buzei = <fs_detalle>-buzei.
* ltd_detalle_flag2-drcrk = <fs_detalle>-drcrk.
* ltd_detalle_flag2-racct = <fs_detalle>-racct.
* ltd_detalle_flag2-budat = <fs_detalle>-budat.
* ltd_detalle_flag2-hkont = <fs_detalle>-hkont.
* ltd_detalle_flag2-hsl = gv_suma.
* APPEND ltd_detalle_flag2 TO gtd_detalle_flag2.
* clear gv_suma.
* ENDAT.
*ENDLOOP.
"OGUTIERREZ
gwa_reporte2-belnr = <fs_detalle>-docnr.
gwa_reporte2-budat = <fs_detalle>-budat.
gwa_reporte2-buzei = <fs_detalle>-buzei. "OGUTIERREZ 20/03
gwa_reporte2-docln = <fs_detalle>-docln.
*{@PE003
READ TABLE gth_bkpf ASSIGNING <fs_bkpf> WITH TABLE KEY belnr = <fs_detalle>-
docnr
gjahr = <fs_detalle>-
ryear.
IF sy-subrc EQ 0.
gwa_reporte2-xblnr = <fs_bkpf>-xblnr.
ENDIF.
*}@PE003
READ TABLE gth_detalle ASSIGNING <fs_bseg> WITH TABLE KEY belnr = <fs_detalle>-
docnr
gjahr = <fs_detalle>-ryear
buzei = <fs_detalle>-buzei.
IF sy-subrc EQ 0.
gwa_reporte2-glosa = <fs_bseg>-sgtxt.
ENDIF.
IF gwa_reporte2-glosa IS INITIAL.
READ TABLE gth_bkpf ASSIGNING <fs_bkpf> WITH TABLE KEY belnr = <fs_detalle>-
docnr
gjahr = <fs_detalle>-
ryear.
IF sy-subrc EQ 0.
gwa_reporte2-glosa = <fs_bkpf>-bktxt.
ENDIF.
ENDIF.
IF <fs_detalle>-drcrk EQ 'S'.
gwa_reporte2-debe = <fs_detalle>-hsl.
ELSE.
gwa_reporte2-haber = ABS( <fs_detalle>-hsl ).
ENDIF.
IF p_alter EQ 'X'.
READ TABLE gth_skb1 ASSIGNING <fs_skb1>
WITH TABLE KEY saknr = <fs_detalle>-racct.
IF sy-subrc EQ 0.
gwa_reporte2-hkont = <fs_skb1>-altkt.
ELSE.
gwa_reporte2-hkont = <fs_detalle>-racct.
ENDIF.
gwa_reporte2-gjahr = <fs_detalle>-ryear.
APPEND gwa_reporte2 TO gtd_reporte2.
ENDLOOP.
"""""""""""
* CLEAR: gwa_reporte.
* REFRESH: gtd_reporte2_sort.
* SORT gtd_reporte2 BY belnr gjahr buzei.
* gtd_reporte2_sort[] = gtd_reporte2[].
* DELETE ADJACENT DUPLICATES FROM gtd_reporte2 COMPARING belnr gjahr buzei.
"Saldos Iniciales
SELECT ryear objnr00 objnr01 objnr02 objnr03 objnr04 objnr05
objnr06 objnr07 objnr08 drcrk rpmax rbukrs racct hslvt
hsl01 hsl02 hsl03 hsl04 hsl05 hsl06 hsl07 hsl08 hsl09
hsl10 hsl11 hsl12
INTO TABLE ltd_faglflext
FROM faglflext
WHERE rbukrs EQ p_bukrs
AND rldnr EQ p_rldnr
AND ryear EQ p_gjahr
AND rrcty EQ '0'
AND racct IN s_cuent.
IF sy-subrc EQ 0.
li_cant = s_monat-low - 1.
DO li_cant TIMES.
CONCATENATE '<fs_faglflext>-HSL' ln_cont INTO ls_importe.
ASSIGN (ls_importe) TO <fs_importe>.
ADD 1 TO ln_cont.
lwa_salini-monto = lwa_salini-monto + <fs_importe>.
ENDDO.
COLLECT lwa_salini INTO ltd_salini.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " GENERAR_REPORTE_NGL
*&---------------------------------------------------------------------*
*& Form OBTENER_ASIENTOS_AC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_01 text
* -->P_LTD_FAGLFLEXT text
*----------------------------------------------------------------------*
FORM obtener_asientos_ac TABLES pt_faglflext TYPE gtyt_faglflext
USING pi_peri.
IF pi_peri EQ '01'.
CONCATENATE p_gjahr '01' '01' INTO ls_fecha.
ELSE.
CONCATENATE '31' '12' p_gjahr INTO ls_fecha.
ENDIF.
IF pi_peri EQ 01.
LOOP AT pt_faglflext ASSIGNING <fs_fagl>.
CLEAR lwa_reporteac.
lwa_reporteac-belnr = '0000000010'.
lwa_reporteac-budat = ls_fecha.
lwa_reporteac-glosa = 'ASIENTO DE APERTURA'.
lwa_reporteac-hkont = <fs_fagl>-racct.
IF <fs_fagl>-drcrk EQ 'S'.
lwa_reporteac-debe = <fs_fagl>-hslvt.
ELSE.
lwa_reporteac-haber = <fs_fagl>-hslvt.
ENDIF.
ELSE. " si es 12
LOOP AT pt_faglflext ASSIGNING <fs_fagl>.
CLEAR lwa_reporteac.
lwa_reporteac-belnr = 'Z999999999'.
lwa_reporteac-budat = ls_fecha.
lwa_reporteac-glosa = 'ASIENTO DE CIERRE'.
lwa_reporteac-hkont = <fs_fagl>-racct.
IF <fs_fagl>-drcrk EQ 'H'.
<fs_fagl>-hslvt = ABS( <fs_fagl>-hslvt ).
* <fs_fagl>-hslvt = <fs_fagl>-hslvt * -1.
lwa_reporteac-debe = <fs_fagl>-hslvt.
ELSE.
lwa_reporteac-haber = <fs_fagl>-hslvt.
ENDIF.
ln_cont = '01'.
DO 12 TIMES.
CONCATENATE '<fs_fagl>-HSL' ln_cont INTO ls_importe.
ASSIGN (ls_importe) TO <fs_importe>.
ADD 1 TO ln_cont.
IF <fs_fagl>-drcrk EQ 'H'.
<fs_importe> = ABS( <fs_importe> ).
* <fs_importe> = <fs_importe> * -1.
lwa_reporteac-debe = lwa_reporteac-debe + <fs_importe>.
ELSE.
<fs_importe> = ABS( <fs_importe> ).
* <fs_importe> = <fs_importe> * -1.
lwa_reporteac-haber = lwa_reporteac-haber + <fs_importe>.
ENDIF.
ENDDO.
*&---------------------------------------------------------------------*
*& Form buscar_archivo2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM buscar_archivo2 .
CLEAR: lv_strlen.
lv_strlen = STRLEN( p_file3 ).
lv_strlen = lv_strlen - 4.
IF p_file3+lv_strlen(4) = '.TXT' OR p_file3+lv_strlen(4) = '.txt'.
CLEAR: p_file3.
MESSAGE 'Elija un directorio del servidor, no un archivo.' TYPE 'I' DISPLAY
LIKE'E'.
ENDIF.
*&---------------------------------------------------------------------*
*& Form generar_archivotxt_libdiario
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM generar_archivotxt_libdiario.
DATA: lv_mensa(80),
lv_mes TYPE string,
lv_ta TYPE i,
lv_file TYPE string,
lv_nomarchivo TYPE string,
lv_debe TYPE char30,
lv_haber TYPE char30,
lv_cebe(24),
lv_fecha TYPE char8,
lv_fecha2 TYPE char10,
lv_docpos TYPE char19,
lv_cont(4), ""+@PP01 26.05.201
lv_contrib TYPE char10, ""+@PP01 26.05.2014
lv_num_reg_vent TYPE string, ""+@PP01 26.05.2014
lv_num_reg_comp TYPE string, ""+@PP01 26.05.2014
lv_num_reg_cons TYPE string. ""+@PP01 26.05.2014
""INI+@PP01 26.05.2014
TYPES: BEGIN OF ty_bset,
belnr TYPE bset-belnr,
gjahr TYPE bset-gjahr,
buzei TYPE bset-buzei,
kschl TYPE bset-kschl,
END OF ty_bset.
REFRESH t_txt .
CLEAR:
lv_mes,lv_ta,lv_nomarchivo,lv_file,lv_debe,lv_haber,lv_cebe,lv_fecha,lv_fecha2.
CLEAR: lv_belnr, lv_buzei.
""INI+@PP01 26.05.2014
SELECT belnr gjahr buzei kschl
INTO TABLE gt_bset
FROM bset
FOR ALL ENTRIES IN gtd_reporte
WHERE bukrs EQ p_bukrs
AND belnr EQ gtd_reporte-belnr
AND gjahr EQ gtd_reporte-gjahr.
* AND buzei EQ gtd_reporte-buzei.
""FIN+@PP01 26.05.2014
CLEAR: lv_docpos.
lv_debe = gwa_reporte-debe .
lv_haber = gwa_reporte-haber .
CONDENSE: lv_debe,lv_haber .
IF p_alter EQ 'X'.
MOVE gwa_reporte-hkont+2(8) TO lv_cebe .
ELSE.
MOVE gwa_reporte-hkont+2(8) TO lv_cebe . " @PE001
ENDIF.
""INI+@PP01 26.05.2014
CONCATENATE 'M' lv_cont INTO lv_contrib.
""INI+@PP01 26.05.2014
CONCATENATE lv_fecha lv_docpos lv_contrib '01' gwa_reporte-hkont "gwa_reporte-
belnr
lv_fecha2
gwa_reporte-txt50
lv_debe
lv_haber
lv_num_reg_vent
lv_num_reg_comp
lv_num_reg_cons
'1'
""FIN+@PP01 26.05.2014
ENDLOOP .
ENDFORM . "Generar_archivotxt_libdiario
*&---------------------------------------------------------------------*
*& Form descargar_pc
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM descargar_pc .
DATA: lv_mensa(80),
lv_mes TYPE string,
lv_ta TYPE i,
lv_file TYPE string,
lv_nomarchivo TYPE string.
IF lv_ta = 1 .
CONCATENATE '0' s_monat-low INTO lv_mes .
ELSE.
lv_mes = s_monat-low .
ENDIF .
CONDENSE lv_nomarchivo .
CONCATENATE p_file2 '\' lv_nomarchivo INTO lv_file .
CONDENSE lv_file .
*&---------------------------------------------------------------------*
*& Form descargar_servidor
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM descargar_servidor .
DATA: lv_mensa(200),
lv_mes TYPE string,
lv_ta TYPE i,
lv_file TYPE string,
lv_nomarchivo TYPE string,
lv_grab(1).
IF lv_ta = 1 .
CONCATENATE '0' s_monat-low INTO lv_mes .
ELSE.
lv_mes = s_monat-low .
ENDIF .
CONDENSE lv_nomarchivo .
CONCATENATE p_file3 '\' lv_nomarchivo INTO lv_file .
CONDENSE lv_file .
OPEN DATASET lv_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT."BINARY MODE."
ENCODING DEFAULT NON-UNICODE.
IF NOT sy-subrc IS INITIAL.
IF sy-subrc = 8.
CONCATENATE 'El sistema operativo no pudo abrir el archivo' lv_file INTO
lv_mensa SEPARATED BY ' '.
MESSAGE lv_mensa TYPE 'E'.
ELSE.
CONCATENATE 'Error al generar archivo de salida' lv_file INTO lv_mensa
SEPARATED BY ' '.
MESSAGE lv_mensa TYPE 'E'.
EXIT.
ENDIF.
ELSE.
LOOP AT t_txt.
TRANSFER t_txt TO lv_file.
IF NOT sy-subrc IS INITIAL.
CONCATENATE 'Error al grabar registro' lv_file INTO lv_mensa SEPARATED BY '
'.
MESSAGE lv_mensa TYPE 'E'.
ELSE.
lv_grab = 'X'.
ENDIF.
ENDLOOP.
CLOSE DATASET lv_file.
ENDIF.
IF lv_grab = 'X'.
CONCATENATE 'Archivo generado en' p_file2 INTO lv_mensa SEPARATED BY ' '.
MESSAGE lv_mensa TYPE 'S'.
ENDIF.
*{@PE003
*&---------------------------------------------------------------------*
*& Form GENERAR_ANEXO2_LIBDIARIO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM generar_anexo2_libdiario .
DATA: lv_mensa(80),
lv_mes TYPE string,
lv_ta TYPE i,
lv_file TYPE string,
lv_nomarchivo TYPE string,
lv_debe TYPE char30,
lv_haber TYPE char30,
lv_cebe(24),
lv_fecha TYPE char8,
lv_fecha2 TYPE char10,
lv_docpos TYPE char19.
REFRESH t_txt .
CLEAR:
lv_mes,lv_ta,lv_nomarchivo,lv_file,lv_debe,lv_haber,lv_cebe,lv_fecha,lv_fecha2.
CLEAR: lv_belnr, lv_buzei.
CLEAR: lv_docpos.
CLEAR: lv_ane_cam1, lv_ane_cam2, lv_ane_cam3, lv_ane_cam4.
lv_debe = gwa_reporte-debe .
lv_haber = gwa_reporte-haber .
CONDENSE: lv_debe,lv_haber .
IF p_alter EQ 'X'.
MOVE gwa_reporte-hkont+2(8) TO lv_cebe .
ELSE.
MOVE gwa_reporte-hkont+2(8) TO lv_cebe . " @PE001
ENDIF.
ENDLOOP .
DATA: lv_mensa(80),
lv_mes TYPE string,
lv_ta TYPE i,
lv_file TYPE string,
lv_nomarchivo TYPE string.
lv_nomarchivo = 'Libro_Diario_Anexo_2.txt'.
CONDENSE lv_nomarchivo .
CONCATENATE p_file4 '\' lv_nomarchivo INTO lv_file .
CONDENSE lv_file .
----------------------------------------------------------------------------------
Extracted by Mass Download version 1.4.1 - E.G.Mellodew. 1998-2018. Sap Release 701