Documentos de Académico
Documentos de Profesional
Documentos de Cultura
REPORT zpefi_030.
TABLES: t001,
skb1.
TYPE-POOLS: slis.
* Inserted by @005{
TYPES:BEGIN OF gty_stot,
saknr TYPE saknr,
dmbtr TYPE dmbtr,
END OF gty_stot.
* }
AT SELECTION-SCREEN OUTPUT.
IF p_elect EQ 'X'.
LOOP AT SCREEN.
IF screen-group1 EQ 'I1'.
screen-active = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF screen-group1 EQ 'I1'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ls_obj_abap = sy-repid.
ENDIF.
AT SELECTION-SCREEN ON p_bukrs.
*Se valida la sociedad
CALL FUNCTION 'FI_COMPANY_CODE_DATA'
EXPORTING
i_bukrs = p_bukrs
IMPORTING
e_t001 = t001
EXCEPTIONS
system_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
gwa_soci-bukrs = t001-bukrs.
START-OF-SELECTION.
PERFORM get_data.
PERFORM get_ctasval. "@002
PERFORM put_data.
PERFORM get_account9. "@001
PERFORM delete_account9. "@001
PERFORM delete_initial_row. "@003
PERFORM cluster_ctasval. "@002
* Inserted by @005{
IF p_sbtot EQ 'X'.
PERFORM delete_initial_subt.
ENDIF.
* }
IF p_elect EQ 'X'.
PERFORM descarga_electronico.
ENDIF.
PERFORM show_data.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM get_data .
ENDFORM. "get_data
*&---------------------------------------------------------------------*
*& Form GET_CTASVAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_ctasval .
CLEAR gtd_ctasval.
REFRESH gtd_ctasval.
*&---------------------------------------------------------------------*
*& Form PUT_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM put_data .
rtext = text-t01.
PERFORM format0308.
*&---------------------------------------------------------------------*
*& Form get_account9
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM get_account9.
CLEAR gr_saknr9.
REFRESH gr_saknr9.
CLEAR gwa_saknr.
gwa_saknr-sign = 'I'.
gwa_saknr-option = 'EQ'.
gwa_saknr-low = '0030999999'.
APPEND gwa_saknr TO gr_saknr9.
ENDFORM. "get_account9
*&---------------------------------------------------------------------*
*& Form delete_account9
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM delete_account9.
ENDFORM. "delete_account9
*&---------------------------------------------------------------------*
*& FORM DELETE_INITIAL_ROW
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM delete_initial_row.
DELETE gtd_libro0308
WHERE dmbtr EQ '0.00'.
ENDFORM. "delete_initial_row
*&---------------------------------------------------------------------*
*& FORM CLUSTER_CTASVAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM cluster_ctasval.
DATA: lv_saknr TYPE saknr,
lv_gjahr TYPE gjahr,
lv_buzei TYPE buzei.
CLEAR gwa_libros_a.
gwa_libros_a-bukrs = <fs_libro0308>-bukrs.
gwa_libros_a-saknr = <fs_libro0308>-saknr.
gwa_libros_a-txt50 = <fs_libro0308>-txt50.
gwa_libros_a-dmbtr = <fs_libro0308>-dmbtr.
gwa_libros_a-belnr = '0000000000'.
gwa_libros_a-stcd1 = '00000000'.
gwa_libros_a-stcdt = '00'.
gwa_libros_a-cdosu = '0'.
gwa_libros_a-txt50 = 'VARIOS'.
IF lv_saknr NE <fs_libro0308>-saknr.
lv_buzei = lv_buzei + 1.
lv_saknr = <fs_libro0308>-saknr.
lv_gjahr = <fs_libro0308>-gjahr.
ENDIF.
gwa_libros_a-gjahr = lv_gjahr.
gwa_libros_a-buzei = lv_buzei.
gwa_libros_a-waers = 'PEN'.
CONCATENATE p_gjahr '1231'
INTO gwa_libros_a-bldat.
* gwa_libros_a-KUNNR
* gwa_libros_a-NAME1
COLLECT gwa_libros_a INTO gtd_libro0308_a.
ENDLOOP.
"
DELETE gtd_libro0308
WHERE saknr IN gr_ctasval[].
"
APPEND LINES OF gtd_libro0308_a TO gtd_libro0308.
ENDIF.
ENDFORM. "cluster_ctasval
*&---------------------------------------------------------------------*
*& Form delete_initial_subt
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM delete_initial_subt.
CLEAR gr_subtot.
REFRESH gr_subtot.
DELETE gtd_subtot
WHERE dmbtr NE 0.
CLEAR gwa_rsubtot.
gwa_rsubtot-sign = 'I'.
gwa_rsubtot-option = 'EQ'.
gwa_rsubtot-low = gwa_subtot-saknr.
APPEND gwa_rsubtot TO gr_subtot.
ENDLOOP.
DELETE gtd_libro0308
WHERE saknr IN gr_subtot[].
ENDIF.
ENDFORM. "delete_initial_subt
*&---------------------------------------------------------------------*
*& Form show_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM show_data .
*&---------------------------------------------------------------------*
*& Form get_fcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->HI_FCAT text
*----------------------------------------------------------------------*
FORM get_fcat CHANGING hi_fcat TYPE slis_t_fieldcat_alv.
*&---------------------------------------------------------------------*
*& Form html_top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->UO_HEAD text
*----------------------------------------------------------------------*
FORM html_top_of_page USING uo_head TYPE REF TO cl_dd_document.
END-OF-DEFINITION.
*--- Begining
CALL METHOD uo_head->initialize_document.
*--- Background
CALL METHOD uo_head->set_document_background
EXPORTING
picture_id = 'ALV_BACKGROUND'.
*--- Body #01
CONCATENATE '<table border=0 width=100% align=center cellspacing=0'
' cellpadding=0>'
'<tr>'
'<td align=left width=60% colspan=1 style='
'"font-weight=bold;font-size=16" valing=middle>'
rtext
'</td>'
'<td align=left width=40% rowspan="6">'
INTO l_strng.
CALL METHOD uo_head->add_static_html
EXPORTING
string_with_html = l_strng.
*--- Body #02
CONCATENATE '</td>'
'</tr>'
INTO l_strng.
*--- Texts
set_html: l_strng text-h01 p_gjahr p_monat,
l_strng text-h02 gwa_soci-ruc '',
l_strng text-h03 gwa_soci-razsocial ''.
CALL METHOD uo_head->add_static_html
EXPORTING
string_with_html = l_strng.
*--- HTML
CALL METHOD uo_head->merge_document.
*&---------------------------------------------------------------------*
*& Form print_form
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM print_form.
*&---------------------------------------------------------------------*
*& Form pf_status_set
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_UI_EXTAB text
*----------------------------------------------------------------------*
FORM pf_status_set USING p_ui_extab TYPE slis_t_extab.
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
CASE u_fcode.
WHEN '&PRINT'.
PERFORM print_form.
WHEN '&IC1'.
DATA lwa_libro0308 TYPE zwlibro0308.
ENDCASE.
*&---------------------------------------------------------------------*
*& Form get_sociedad
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM get_sociedad CHANGING p_wa_soci TYPE gty_soci.
* RUC de la Sociedad
SELECT SINGLE paval INTO p_wa_soci-ruc
FROM t001z
WHERE bukrs = p_wa_soci-bukrs
AND party = 'TAXNR'.
IF sy-subrc = 0.
CONCATENATE ls_name1 ls_name2 ls_name3 ls_name4 INTO p_wa_soci-razsocial
SEPARATED BY space.
TRANSLATE p_wa_soci-razsocial TO UPPER CASE.
CONDENSE p_wa_soci-razsocial.
ENDIF.
ENDFORM. "get_sociedad
*&---------------------------------------------------------------------*
*& Form format0308
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_C_XVIEW text
*----------------------------------------------------------------------*
FORM format0308.
* Inserted by @004{
CALL METHOD lcl_libros->get_pas
EXPORTING
i_tbl01 = 'BSAS'
i_tbl02 = 'BSAD'
i_bukrs = p_bukrs
i_gjahr = p_gjahr
i_monat = p_monat
i_hkont = s_saknr[]
CHANGING
c_pits = ltd_pats.
* }
* Inserted by @004{
IF ltd_pats[] IS NOT INITIAL.
APPEND LINES OF ltd_pats TO ltd_pits.
CLEAR ltd_pats.
REFRESH ltd_pats.
ENDIF.
* }
* Inserted by @006{
PERFORM get_cod_deudor CHANGING ltd_pits.
* }
* Inserted by @006{
PERFORM get_cod_acreedor CHANGING ltd_pits.
* }
* Inserted by @005{
CLEAR gtd_subtot.
REFRESH gtd_subtot.
* }
CLEAR gtd_datos_adic.
REFRESH gtd_datos_adic.
*Moneda
lwa_libro0308-waers = 'PEN'.
*Sociedad
lwa_libro0308-bukrs = lwa_pits-bukrs.
*Numero de documento
lwa_libro0308-belnr = lwa_pits-belnr.
*Posici�n de documento
lwa_libro0308-buzei = lwa_pits-buzei. " ADD LVILCHEZ
*A�o
lwa_libro0308-gjahr = lwa_pits-gjahr.
*Cuenta contable
lwa_libro0308-saknr = lwa_pits-hkont.
*Codigo del cliente
lwa_libro0308-kunnr = lwa_pits-accnt.
IF sy-subrc = 0.
lwa_libro0308-txt50 = lwa_skb1-txt50.
ENDIF.
IF sy-subrc = 0.
* lwa_libro0308-stcdt = lwa_kna1-stcdt.
* lwa_libro0308-stcd1 = lwa_kna1-stcd1.
* lwa_libro0308-name1 = lwa_kna1-name1.
lwa_libro0308-stcdt = lwa_lfa1-stcdt.
lwa_libro0308-stcd1 = lwa_lfa1-stcd1.
lwa_libro0308-name1 = lwa_lfa1-name1.
*--INI
ELSE.
CLEAR lwa_kna1.
READ TABLE ltd_kna1 WITH KEY kunnr = lwa_libro0308-kunnr INTO lwa_kna1.
IF sy-subrc = 0.
* lwa_libro0308-stcdt = lwa_kna1-stcdt.
* lwa_libro0308-stcd1 = lwa_kna1-stcd1.
* lwa_libro0308-name1 = lwa_kna1-name1.
lwa_libro0308-stcdt = lwa_kna1-stcdt.
lwa_libro0308-stcd1 = lwa_kna1-stcd1.
lwa_libro0308-name1 = lwa_kna1-name1.
*---FIFI
*--INI @LV020816
ELSE.
lwa_libro0308-stcdt = '00'.
lwa_libro0308-stcd1 = '99999999'.
lwa_libro0308-name1 = 'VARIOS'.
*--INI @LV020816
ENDIF.
ENDIF.
* Inserted by @005 {
CLEAR gwa_subtot.
gwa_subtot-saknr = lwa_libro0308-saknr.
gwa_subtot-dmbtr = lwa_libro0308-dmbtr.
COLLECT gwa_subtot INTO gtd_subtot.
* }
ENDLOOP.
ENDFORM. "format0308
*&---------------------------------------------------------------------*
*& Form GET_TIPDOCSUNAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_tipdocsunat .
IF gtd_sapsunat02[] IS INITIAL.
SELECT * INTO TABLE gtd_sapsunat02
FROM ztsapsunat02.
ENDIF.
*&---------------------------------------------------------------------*
*& Form descarga_electronico
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM descarga_electronico.
* Obtenemos la sociedad
SELECT * FROM t001z INTO TABLE ti_t001z
WHERE bukrs = p_bukrs.
* 1.- Periodo
l_periodo = gs_reporte-bldat(8).
IF gs_reporte-dmbtr EQ 0.
CONTINUE.
ENDIF.
* ARMAR ARCHIVO
CLEAR: archivo_sunat-linea.
CONCATENATE l_periodo
l_codigop
l_correla
l_codiden
l_dociden
l_nombres
l_codtit
l_montocu
l_cantit
l_costit
l_protit
l_estadop
INTO archivo_sunat-linea SEPARATED BY '|'.
APPEND archivo_sunat.
ENDLOOP.
* NRO DE RUC
CLEAR: wa_t001z.
READ TABLE ti_t001z INTO wa_t001z WITH KEY party = 'TAXNR'.
* DESCARGAR ARCHIVO
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = nomb_archivo
TABLES
data_tab = archivo_sunat
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6.
ENDFORM. "descarga_electronico
*&---------------------------------------------------------------------*
*& Form GET_COD_DEUDOR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_LTD_PITS text
*----------------------------------------------------------------------*
FORM get_cod_deudor CHANGING lt_pits TYPE zttpits.
TYPES:BEGIN OF gty_coddeu,
bukrs TYPE bukrs,
gjahr TYPE gjahr,
belnr TYPE belnr_d,
dmbtr TYPE dmbtr,
sgtxt TYPE sgtxt,
kunnr TYPE kunnr,
END OF gty_coddeu.
*&---------------------------------------------------------------------*
*& Form GET_COD_ACREEDOR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_LTD_PATS text
*----------------------------------------------------------------------*
FORM get_cod_acreedor CHANGING lt_pits TYPE zttpits.
TYPES:BEGIN OF gty_codac,
bukrs TYPE bukrs,
gjahr TYPE gjahr,
belnr TYPE belnr_d,
dmbtr TYPE dmbtr,
sgtxt TYPE sgtxt,
lifnr TYPE lifnr,
END OF gty_codac.
"
SELECT bukrs gjahr belnr dmbtr sgtxt
lifnr
INTO TABLE lt_codac
FROM bsik
FOR ALL ENTRIES IN lt_pits
WHERE bukrs EQ lt_pits-bukrs
AND gjahr EQ lt_pits-gjahr
AND belnr EQ lt_pits-belnr
AND dmbtr EQ lt_pits-dmbtr
AND sgtxt EQ lt_pits-sgtxt.