You are on page 1of 30

*&---------------------------------------------------------------------*

*& Report ZTRR0003A


*&
*&---------------------------------------------------------------------*
*& Objetivo
: Compensacin de TUUA Manual
*& Autor
: Daniel Tuesta U.
*& Fecha Creacin
: 03.11.2014
*& Transaccin
: ZTR003A
*&---------------------------------------------------------------------*
*& LOG DE MODIFICACIONES
*&---------------------------------------------------------------------*
*& ID AUTHOR
DATE
DESCRIPTION
*& --- -------------- -------- -------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZTRR0003A1.
TABLES: BSID, BSAD, VBAK, VBFA, VBPA.
*
*
* DECLARACION DE TYPES
*
*
TYPES: BEGIN OF TY_VBAK,
KUNNR TYPE VBAK-KUNNR,
AUDAT TYPE VBAK-AUDAT,
BSTNK TYPE VBAK-BSTNK,
END OF TY_VBAK.
TYPES: BEGIN OF TY_OUTPUT ,
BSTNK TYPE VBAK-BSTNK,
AUART TYPE VBAK-AUART,
AUDAT TYPE VBAK-AUDAT,
VBELN TYPE VBAK-VBELN,
VBEL1 TYPE VBRK-VBELN,
BELNR TYPE BKPF-BELNR,
XBLNR TYPE BKPF-XBLNR,
XBLN1(20) TYPE C,
WAERS TYPE BKPF-WAERS,
NETWR TYPE VBRP-NETWR,
ZMENG TYPE VBAP-ZMENG,
TIGV TYPE VBRP-NETWR,
TTOTA TYPE VBRP-NETWR,
END OF TY_OUTPUT .
TYPES: BEGIN OF TY_HEADER,
KUNNR TYPE VBAK-KUNNR,
END OF TY_HEADER.
TYPES: BEGIN OF TY_COMPENSA,
BELNR
TYPE BKPF-BELNR,
ZUONR
TYPE BSID-ZUONR,
HKONT
TYPE BSID-HKONT,
BUDAT
TYPE BKPF-BUDAT,
WAERS
TYPE BKPF-WAERS,
DMBTR
TYPE BSID-DMBTR,
LIQU(8)
TYPE C,
ESTAD(15) TYPE C,
FELIQU
TYPE BKPF-BUDAT,

END OF TY_COMPENSA.
*
* DECLARACION
*
DATA: T_VBAK
TAB_TREE
T_TREE
T_HEADER

*
DE TABLAS INTERNAS
*
TYPE STANDARD TABLE
TYPE STANDARD TABLE
TYPE STANDARD TABLE
TYPE STANDARD TABLE

*
OF
OF
OF
OF

TY_VBAK
TY_VBAK
TY_VBAK
TY_HEADER

WITH
WITH
WITH
WITH

HEADER
HEADER
HEADER
HEADER

LINE,
LINE,
LINE,
LINE.

DATA: TI_VBAK TYPE STANDARD TABLE OF VBAK WITH HEADER LINE.


DATA: TI_OUTPUT TYPE STANDARD TABLE OF TY_OUTPUT WITH HEADER LINE.
DATA: W_COMPENSA TYPE TY_COMPENSA,
G_BLOQUEO_WERKS,
CHK_PARCIAL.
" Check Pago Parcial - JM
DATA: T_LINEITEMS TYPE BAPI3007_2 OCCURS 0 WITH HEADER LINE.
*
*
* DECLARACION DE FIELD-SYMBOLS
*
*
FIELD-SYMBOLS: <HEADER> LIKE LINE OF T_HEADER,
<VBAK> LIKE LINE OF T_VBAK.
DATA: BDCDATA
BDMSGCALL
PT_EXCLUDE
nes a excluir del
W_AUGBL
de compensacion
W_ZUONR
W_BUDAT
W_BSTNK
W_FELIQU

LIKE BDCDATA
LIKE BDCMSGCOLL
TYPE UI_FUNCTIONS,
toolBar
LIKE BSAD-AUGBL,
LIKE
LIKE
LIKE
LIKE

OCCURS 0 WITH HEADER LINE,


OCCURS 0 WITH HEADER LINE,

BSAD-ZUONR,
BSAD-BUDAT,
VBAK-BSTNK,
BKPF-BUDAT.

**&---------------------------------------------------------------------*
**&
PARAMETROS
**&---------------------------------------------------------------------*
**
SELECTION-SCREEN BEGIN OF BLOCK B00 WITH FRAME TITLE TEXT-000.
PARAMETERS: P_BUKRS LIKE T001-BUKRS NO-DISPLAY ,
P_VKORG LIKE VBAK-VKORG DEFAULT '3300',
P_VTWEG LIKE VBAK-VTWEG DEFAULT 'IR',
P_SPART LIKE VBAK-SPART DEFAULT 'SV'.
SELECTION-SCREEN END OF BLOCK B00.
SELECTION-SCREEN BEGIN OF BLOCK B01 WITH FRAME TITLE TEXT-001.
PARAMETERS:
P_WERKS LIKE VBAP-WERKS,
P_KUNNR LIKE BSID-KUNNR, "DEFAULT '12900134',
P_HKONT LIKE BSID-HKONT OBLIGATORY.
SELECT-OPTIONS:
S_AUART
FOR VBAK-AUART.
SELECT-OPTIONS:
S_AUDAT
FOR VBAK-AUDAT.

" boto
" doc

SELECTION-SCREEN SKIP 1.
PARAMETER:
P_GJAHR LIKE BSID-GJAHR DEFAULT SY-DATUM+0(4),
P_DAYANT(2) TYPE N DEFAULT '07'.
SELECTION-SCREEN END OF BLOCK B01.
*SELECTION-SCREEN BEGIN OF BLOCK B00 WITH FRAME TITLE TEXT-002.
*PARAMETERS: R_COMP RADIOBUTTON GROUP GRUP USER-COMMAND R DEFAULT 'X',
*
R_REPO RADIOBUTTON GROUP GRUP.
*SELECTION-SCREEN END OF BLOCK B00.
PARAMETERS: P_MODEB

TYPE BMODE_BTCI DEFAULT 'E'

MODIF ID COM.

"BI

**&---------------------------------------------------------------------*
**&
DYNPRO
**&---------------------------------------------------------------------*
CLASS LCL_EVENT_RECEIVER DEFINITION DEFERRED.
**
DATA: OK_CODE
LIKE SY-UCOMM,
"Variables para el ALV
GS_LAYOUT
TYPE LVC_S_LAYO,
GT_FIELDCAT
TYPE LVC_T_FCAT,
CUSTOM_CONTAINER1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
CUSTOM_CONTAINER2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
CUSTOM_CONTAINER_COMP TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
EVENT_RECEIVER
TYPE REF TO LCL_EVENT_RECEIVER,
GRID1
TYPE REF TO CL_GUI_ALV_GRID,
GRID2
TYPE REF TO CL_GUI_ALV_GRID,
GRID_COMP
TYPE REF TO CL_GUI_ALV_GRID.
*
*
* DECLARACION DE VARIABLES
*
*
DATA: G_ALV_TREE TYPE REF TO CL_GUI_ALV_TREE,
L_HIERARCHY_HEADER TYPE TREEV_HHDR,
GS_FIELDCAT TYPE LVC_S_FCAT,
GT_FIELDCAT_TREE TYPE LVC_T_FCAT,
GT_FIELDCAT_COMP TYPE LVC_T_FCAT,
G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
* 0.Define a reference variable for the toolbar.
G_TOOLBAR
TYPE REF TO CL_GUI_TOOLBAR.

*----------------------------------------------------------------------*
*
CLASS LCL_TREE_EVENT_RECEIVER DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS LCL_TREE_EVENT_RECEIVER DEFINITION.
*

PUBLIC SECTION.
Define an event handler method for each event you want to react to.
METHODS: HANDLE_NODE_DOUBLE_CLICK
FOR EVENT NODE_DOUBLE_CLICK
OF CL_GUI_ALV_TREE
IMPORTING NODE_KEY SENDER.
METHODS: ON_FUNCTION_SELECTED
FOR EVENT FUNCTION_SELECTED OF CL_GUI_TOOLBAR

IMPORTING FCODE.
METHODS: HANDLE_USER_COMMAND
FOR EVENT AFTER_USER_COMMAND
OF CL_GUI_ALV_TREE
IMPORTING UCOMM SENDER.
*
*
*
*
*
*
*
*

METHODS: GET_TOOLBAR_OBJECT
FOR EVENT GET_TOOLBAR_OBJECT
OF CL_GUI_ALV_TREE
IMPORTING ER_TOOLBAR.

*
*
*
*

METHODS: HANDLE_USER_COMMAND
FOR EVENT AFTER_USER_COMMAND
OF CL_GUI_ALV_TREE
IMPORTING I_FCODE. "UCOMM.
METHODS: HANDLE_USER_COMMAND
FOR EVENT AFTER_USER_COMMAND
OF CL_GUI_ALV_TREE
IMPORTING UCOMM.

ENDCLASS.

"LCL_TREE_EVENT_RECEIVER DEFINITION

*----------------------------------------------------------------------*
*
CLASS LCL_TREE_EVENT_RECEIVER IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS LCL_TREE_EVENT_RECEIVER IMPLEMENTATION.
**Implement your event handler methods.
METHOD HANDLE_NODE_DOUBLE_CLICK.
DATA: LV_NODEKEY
TYPE LVC_NKEY.
DATA: LT_SELECTED_NODES TYPE LVC_T_NKEY,
L_SELECTED_NODE TYPE LVC_NKEY.
*
DATA: LWA_READ LIKE T_VBAK.
LV_NODEKEY = NODE_KEY - 1.

READ TABLE T_VBAK INDEX LV_NODEKEY INTO LWA_READ.


W_BSTNK = LWA_READ-BSTNK.
MOVE W_BSTNK TO W_COMPENSA-LIQU.
PERFORM INIT_CONTAINER USING LWA_READ-BSTNK.

*
*
*

CALL METHOD G_ALV_TREE->SET_USER_COMMAND


IMPORTING
I_FCODE = SY-UCOMM.

PERFORM LEER_LIQUIDACION.
ENDMETHOD.

"HANDLE_NODE_DOUBLE_CLICK

METHOD ON_FUNCTION_SELECTED.
DATA: LT_SELECTED_NODES TYPE LVC_T_NKEY,
L_SELECTED_NODE TYPE LVC_NKEY,
L_RC
TYPE C.

*
*
*
**
*

Datos para BAPI


DATA:

*
*
*
*

P_COMPANYCODE
P_CUSTOMER
P_DATE_FROM
P_DATE_TO

*DATA: LV_NODEKEY

TYPE
TYPE
TYPE
TYPE

BAPI3007_1-COMP_CODE,
BAPI3007_1-CUSTOMER,
BAPI3007-FROM_DATE,
BAPI3007-TO_DATE.

TYPE LVC_NKEY.

* 5. Query the function codes of the toolbar in your implementation.


CASE FCODE.
WHEN 'VER'.
PERFORM LEER_LIQUIDACION.
*** Determine which line is selected
*
CALL METHOD G_ALV_TREE->GET_SELECTED_NODES
*
CHANGING
*
CT_SELECTED_NODES = LT_SELECTED_NODES.
*
CALL METHOD CL_GUI_CFW=>FLUSH.
*
*
READ TABLE LT_SELECTED_NODES INTO L_SELECTED_NODE INDEX 1.
*
*
DATA: LWA_READ LIKE T_VBAK.
*
L_SELECTED_NODE = L_SELECTED_NODE - 1.
*
*
READ TABLE T_VBAK INDEX L_SELECTED_NODE INTO LWA_READ.
*
W_BSTNK = LWA_READ-BSTNK.
*
W_FELIQU = LWA_READ-AUDAT.
*
MOVE W_BSTNK TO W_COMPENSA-LIQU.
*
MOVE W_FELIQU TO W_COMPENSA-FELIQU.
*
*
IF SY-SUBRC EQ 0.
*
PERFORM INIT_CONTAINER USING LWA_READ-BSTNK.
**
JM
**
listar compensaciones de la liquidacin
*
PERFORM INIT_CONTAINER_COMP.
*
ENDIF.
ENDCASE.
ENDMETHOD.

"ON_FUNCTION_SELECTED

METHOD HANDLE_USER_COMMAND.
DATA: LT_ROWS TYPE LVC_T_ROW.
DATA: LF_ANSWR TYPE C.
*
*
*
*
*
*
*
*
*
*
*
**
**
**
**
*

CASE UCOMM.
WHEN ''. "'COMPENSAR'.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
DEFAULTOPTION = 'N'
TEXTLINE1
= ' Desea Compensar los documentos marcados ?'
TITEL
= 'Playas de Estacionamiento'
CANCEL_DISPLAY = 'X'
IMPORTING
ANSWER
= LF_ANSWR.
IF LF_ANSWR EQ 'J'.
PERFORM C03_COMPENSAR.
quitando los documentos provisionados
DELETE TI_LIQCOB WHERE CHECK EQ 'X'.
actualizando la grilla
CALL METHOD GRID1->REFRESH_TABLE_DISPLAY.

*
*
*
**
*
**
*

ENDIF.
WHEN 'Marcar'.
PERFORM MARCAR_CHBOX USING 'X'.
WHEN 'Desmarcar'.
PERFORM MARCAR_CHBOX USING ' '.
ENDCASE.
ENDMETHOD.

ENDCLASS.

"handle_user_command
"LCL_TREE_EVENT_RECEIVER IMPLEMENTATION

* LOCAL CLASSES: Definition


***********************************************************************
CLASS LCL_EVENT_RECEIVER DEFINITION.
PUBLIC SECTION.
METHODS: HANDLE_TOOLBAR
FOR EVENT TOOLBAR
OF CL_GUI_ALV_GRID
IMPORTING E_OBJECT
E_INTERACTIVE.
METHODS: HANDLE_USER_COMMAND
FOR EVENT USER_COMMAND
OF CL_GUI_ALV_GRID
IMPORTING E_UCOMM.
METHODS: HANDLE_DOUBLE_CLICK
FOR EVENT DOUBLE_CLICK
OF CL_GUI_ALV_GRID
IMPORTING E_ROW E_COLUMN.
PRIVATE SECTION.
ENDCLASS.
"lcl_event_receiver DEFINITION
* LOCAL CLASSES: Implementation
***************************************************************
CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.
METHOD HANDLE_TOOLBAR.
DATA: LS_TOOLBAR TYPE STB_BUTTON.
CLEAR LS_TOOLBAR.
MOVE 3 TO LS_TOOLBAR-BUTN_TYPE.
APPEND LS_TOOLBAR TO E_OBJECT->MT_TOOLBAR.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

IF ( R_COMP EQ 'X' ).
CLEAR LS_TOOLBAR.
MOVE 'COMPENSAR' TO LS_TOOLBAR-FUNCTION.
MOVE ICON_EXECUTE_OBJECT TO LS_TOOLBAR-ICON.
MOVE 'Compensar' TO LS_TOOLBAR-QUICKINFO.
MOVE 'Compensar' TO LS_TOOLBAR-TEXT.
MOVE ' ' TO LS_TOOLBAR-DISABLED.
APPEND LS_TOOLBAR TO E_OBJECT->MT_TOOLBAR.
CLEAR LS_TOOLBAR.
MOVE 'Marcar'
MOVE ICON_SELECT_ALL
MOVE 'Marcar'
APPEND LS_TOOLBAR

TO
TO
TO
TO

LS_TOOLBAR-FUNCTION.
LS_TOOLBAR-ICON.
LS_TOOLBAR-QUICKINFO.
E_OBJECT->MT_TOOLBAR.

*
*
*
*
*
*

CLEAR LS_TOOLBAR.
MOVE 'Desmarcar'
MOVE ICON_DESELECT_ALL
MOVE 'Desmarcar'
APPEND LS_TOOLBAR
ENDIF.
ENDMETHOD.

TO
TO
TO
TO

LS_TOOLBAR-FUNCTION.
LS_TOOLBAR-ICON.
LS_TOOLBAR-QUICKINFO.
E_OBJECT->MT_TOOLBAR.
"handle_toolbar

METHOD HANDLE_USER_COMMAND.
DATA: LT_ROWS TYPE LVC_T_ROW.
DATA: LF_ANSWR TYPE C.
CASE E_UCOMM.
WHEN 'COMPENSAR'.
*
*
*
*
*
*
*
*
*
*
*
*

*
*

CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'


EXPORTING
DEFAULTOPTION = 'N'
TEXTLINE1
= ' Desea Compensar los documentos marcados ?'
TITEL
= 'Playas de Estacionamiento'
CANCEL_DISPLAY = 'X'
IMPORTING
ANSWER
= LF_ANSWR.
IF LF_ANSWR EQ 'J'.
PERFORM C03_COMPENSAR.
quitando los documentos provisionados
DELETE TI_LIQCOB WHERE CHECK EQ 'X'.
actualizando la grilla
CALL METHOD GRID1->REFRESH_TABLE_DISPLAY.
ENDIF.
WHEN 'Marcar'.
PERFORM MARCAR_CHBOX USING 'X'.
WHEN 'Desmarcar'.
PERFORM MARCAR_CHBOX USING ' '.
ENDCASE.
ENDMETHOD.

"handle_user_command

METHOD HANDLE_DOUBLE_CLICK.
DATA: LWA_READ LIKE TI_OUTPUT.
READ TABLE TI_OUTPUT INDEX E_ROW-INDEX INTO LWA_READ.
SET PARAMETER ID 'BUK' FIELD P_BUKRS.
SET PARAMETER ID 'BLN' FIELD LWA_READ-BELNR.
SET PARAMETER ID 'GJR' FIELD P_GJAHR.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDMETHOD.

"handle_double_click

ENDCLASS.
*

"lcl_event_receiver IMPLEMENTATION
*

* SELECTION-SCREEN
*
*
*SELECTION-SCREEN BEGIN OF SCREEN 1001.
*SELECTION-SCREEN END OF SCREEN 1001.

**&--------------------------------------------------------------------&*
**
AT SELECTION-SCREEN.
**&--------------------------------------------------------------------&*
* deshabilitando la edicion del campo
AT SELECTION-SCREEN OUTPUT.
IF G_BLOQUEO_WERKS EQ 'X'.
LOOP AT SCREEN.
CASE SCREEN-NAME.
WHEN 'P_WERKS'.
SCREEN-INPUT = '0'. MODIFY SCREEN.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
ENDIF.
*
*
*
*
*
INITIALIZATION.
* obtiene sociedad a traves de la org de ventas
* obteniendo la sociedad de la org de ventas
SELECT SINGLE BUKRS INTO P_BUKRS
FROM TVKO
WHERE VKORG EQ P_VKORG.
PERFORM OBTIENE_CLASE_DOC.
SELECT SINGLE PARVA
INTO P_WERKS
FROM USR05
WHERE BNAME = SY-UNAME
AND PARID = 'WEK'.
* IF NOT P_WERKS IS INITIAL.
*
APPEND _WERKS.
* ENDIF.
*

si el usuario es de provincia (AP02 - AP13)


IF P_WERKS BETWEEN 'AP02' AND 'AP13'.
G_BLOQUEO_WERKS = 'X'.
ELSE.
CLEAR G_BLOQUEO_WERKS.
ENDIF.

*
*
* START-OF-SELECTION
*
*
START-OF-SELECTION.
PERFORM OBTENER_DATOS.
IF G_ALV_TREE IS INITIAL.
PERFORM INIT_TREE.

CALL METHOD CL_GUI_CFW=>FLUSH


EXCEPTIONS
CNTL_SYSTEM_ERROR = 1
CNTL_ERROR
= 2.
ENDIF.
CALL SCREEN 300.
*
*
*
FORM init_tree
*
*
FORM INIT_TREE.

DATA: L_TREE_CONTAINER_NAME(30) TYPE C.


L_TREE_CONTAINER_NAME = 'TREE_CONTROL'.
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING
CONTAINER_NAME
=
EXCEPTIONS
CNTL_ERROR
=
CNTL_SYSTEM_ERROR
=
CREATE_ERROR
=
LIFETIME_ERROR
=
LIFETIME_DYNPRO_DYNPRO_LINK =
CREATE OBJECT G_ALV_TREE
EXPORTING
PARENT
*
APPL_EVENTS
*
NODE_SELECTION_MODE
ITEM_SELECTION
NO_HTML_HEADER
NO_TOOLBAR
EXCEPTIONS
CNTL_ERROR
CNTL_SYSTEM_ERROR
CREATE_ERROR
LIFETIME_ERROR
ILLEGAL_NODE_SELECTION_MODE
FAILED
ILLEGAL_COLUMN_NAME

L_TREE_CONTAINER_NAME
1
2
3
4
5.

= G_CUSTOM_CONTAINER
= 'X'
= CL_GUI_COLUMN_TREE=>NODE_SEL_MODE_SINGLE
= ''
= 'X'
= ''
=
=
=
=
=
=
=

1
2
3
4
5
6
7.

PERFORM FILL_CATALOG_TREE.
PERFORM BUILD_HIERARCHY_HEADER CHANGING L_HIERARCHY_HEADER.
CALL METHOD G_ALV_TREE->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_HIERARCHY_HEADER = L_HIERARCHY_HEADER
CHANGING
IT_OUTTAB
= T_TREE[]
IT_FIELDCATALOG
= GT_FIELDCAT_TREE.
PERFORM CREATE_HIERARCHY.
PERFORM CHANGE_TOOLBAR.
PERFORM FM_REGISTER_EVENT.

ENDFORM.

"INIT_TREE

*&---------------------------------------------------------------------*
*&
Form INIT_CONTAINER
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM INIT_CONTAINER USING W_BSTNK TYPE VBAK-BSTNK.
DATA: L_CONTAINER_NAME(30) TYPE C.
L_CONTAINER_NAME = 'CC_CONTENEDOR'.
REFRESH: GT_FIELDCAT_TREE.
CLEAR: GT_FIELDCAT_TREE.
PERFORM FILL_CATALOG_CONTAINER.
PERFORM OBTENER_DATOS_DETALLE USING W_BSTNK.

IF CUSTOM_CONTAINER1 IS INITIAL.
Creando el ALV
CREATE OBJECT CUSTOM_CONTAINER1
EXPORTING
CONTAINER_NAME
EXCEPTIONS
CNTL_ERROR
CNTL_SYSTEM_ERROR
CREATE_ERROR
LIFETIME_ERROR
LIFETIME_DYNPRO_DYNPRO_LINK

= L_CONTAINER_NAME
=
=
=
=
=

1
2
3
4
5.

IF SY-SUBRC NE 0.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
TITEL = SY-REPID
TXT2 = SY-SUBRC
TXT1 = 'ERROR'(510).
ENDIF.
*

Si todo esta OK
CREATE OBJECT GRID1
EXPORTING
I_PARENT = CUSTOM_CONTAINER1.
I_APPL_EVENTS = 'X'.
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IT_TOOLBAR_EXCLUDING = PT_EXCLUDE
IS_LAYOUT
= GS_LAYOUT
I_SAVE
= 'A'
CHANGING
IT_OUTTAB
= TI_OUTPUT[]
"reporte (consulta)
IT_FIELDCATALOG
= GT_FIELDCAT_TREE. "GT_FIELDCAT.

creando los eventos para la grilla


CREATE OBJECT EVENT_RECEIVER.
SET HANDLER EVENT_RECEIVER->HANDLE_USER_COMMAND FOR GRID1.
SET HANDLER EVENT_RECEIVER->HANDLE_TOOLBAR
FOR GRID1.

SET HANDLER EVENT_RECEIVER->HANDLE_DOUBLE_CLICK FOR GRID1.


CALL METHOD GRID1->SET_TOOLBAR_INTERACTIVE.
CALL METHOD CL_GUI_CONTROL=>SET_FOCUS
EXPORTING
CONTROL = GRID1.
*

ELSE.
actualizando la grilla
CALL METHOD GRID1->REFRESH_TABLE_DISPLAY.
ENDIF.

ENDFORM.

"INIT_CONTAINER

*&---------------------------------------------------------------------*
*&
Form INIT_CONTAINER_COMP
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM INIT_CONTAINER_COMP.
DATA: L_CONTAINER_NAME(30) TYPE C.
L_CONTAINER_NAME = 'CC_COMPENSACION'.
REFRESH: GT_FIELDCAT_COMP.
CLEAR: GT_FIELDCAT_COMP.
PERFORM FILL_CATALOG_CONTAINER_COMP.
PERFORM OBTENER_DATOS_COMP.
*

IF CUSTOM_CONTAINER_COMP IS INITIAL.
Creando el ALV
CREATE OBJECT CUSTOM_CONTAINER_COMP
EXPORTING
CONTAINER_NAME
= L_CONTAINER_NAME
EXCEPTIONS
CNTL_ERROR
= 1
CNTL_SYSTEM_ERROR
= 2
CREATE_ERROR
= 3
LIFETIME_ERROR
= 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5.
IF SY-SUBRC NE 0.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
TITEL = SY-REPID
TXT2 = SY-SUBRC
TXT1 = 'ERROR'(510).
ENDIF.

Si todo esta OK
CREATE OBJECT GRID_COMP
EXPORTING
I_PARENT = CUSTOM_CONTAINER_COMP.
I_APPL_EVENTS = 'X'.
CALL METHOD GRID_COMP->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING

IT_TOOLBAR_EXCLUDING
IS_LAYOUT
I_SAVE
CHANGING
IT_OUTTAB
IT_FIELDCATALOG
*
*
*
*

= PT_EXCLUDE
= GS_LAYOUT
= 'A'
= T_LINEITEMS[]
"reporte (consulta)
= GT_FIELDCAT_COMP. "GT_FIELDCAT.

creando los eventos para la grilla


CREATE OBJECT EVENT_RECEIVER.
SET HANDLER EVENT_RECEIVER->HANDLE_USER_COMMAND FOR GRID1.
SET HANDLER EVENT_RECEIVER->HANDLE_TOOLBAR
FOR GRID1.
SET HANDLER EVENT_RECEIVER->HANDLE_DOUBLE_CLICK FOR GRID1.
CALL METHOD GRID_COMP->SET_TOOLBAR_INTERACTIVE.
CALL METHOD CL_GUI_CONTROL=>SET_FOCUS
EXPORTING
CONTROL = GRID_COMP.

ELSE.
actualizando la grilla
CALL METHOD GRID_COMP->REFRESH_TABLE_DISPLAY.
ENDIF.

ENDFORM.

"INIT_CONTAINER_COMP

*
*
* FORM FILL_CATALOG_TREE
*
*
FORM FILL_CATALOG_TREE.

DATA: GS_FIELDCAT_ADD TYPE LVC_S_FCAT.


CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-DATATYPE
GS_FIELDCAT-TABNAME
GS_FIELDCAT-OUTPUTLEN
APPEND GS_FIELDCAT TO

= 1.
= 'Fecha'.
= 'Fecha'.
= 'AUDAT'.
= 'DATS'.
= 'T_VBAK'.
= '20'.
GT_FIELDCAT_TREE.

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME =
APPEND GS_FIELDCAT TO

= 2.
= 'Liquidacion'.
= 'Liquidacion'.
= 'BSTNK'.
= '20'.
'T_VBAK'.
GT_FIELDCAT_TREE.

ENDFORM.

"FILL_CATALOG_TREE

*
*
*
FORM build_hierarchy_header
*
*
FORM BUILD_HIERARCHY_HEADER CHANGING
P_HIERARCHY_HEADER TYPE TREEV_HHDR.

CLEAR P_HIERARCHY_HEADER.
P_HIERARCHY_HEADER-HEADING = 'Cliente TUUA Manual'(300).
P_HIERARCHY_HEADER-WIDTH = 28.
P_HIERARCHY_HEADER-WIDTH_PIX = ' '.
ENDFORM.

"BUILD_HIERARCHY_HEADER

*
*
*
FORM create_hierarchy
*
*
FORM CREATE_HIERARCHY.

DATA: L_ROOT_KEY TYPE LVC_NKEY,


L_NEXT_KEY TYPE LVC_NKEY,
L_LAST_KEY TYPE LVC_NKEY,
HEADER TYPE STRING,
W_MENGE_TEXT(13) TYPE C.
CLEAR L_ROOT_KEY.
LOOP AT T_HEADER ASSIGNING <HEADER>.
CLEAR L_ROOT_KEY.
CLEAR L_NEXT_KEY.
PERFORM ADD_NODE USING <HEADER>-KUNNR L_ROOT_KEY
CHANGING L_NEXT_KEY.
LOOP AT T_VBAK ASSIGNING <VBAK>
WHERE KUNNR EQ <HEADER>-KUNNR.
MOVE-CORRESPONDING <VBAK> TO TAB_TREE.
PERFORM ADD_LEAF USING TAB_TREE L_NEXT_KEY
CHANGING L_LAST_KEY.
ENDLOOP.
ENDLOOP.
CALL METHOD G_ALV_TREE->FRONTEND_UPDATE.
ENDFORM.

"CREATE_HIERARCHY

*
*
*
FORM ADD_NODE
*
*
FORM ADD_NODE USING L_NAME L_ROOT_KEY
CHANGING L_NEXT_KEY.
DATA: L_NODE_TEXT TYPE LVC_VALUE,
LS_TREE TYPE TY_VBAK.
L_NODE_TEXT = L_NAME.
CALL METHOD G_ALV_TREE->ADD_NODE
EXPORTING
I_RELAT_NODE_KEY = L_ROOT_KEY
I_RELATIONSHIP = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD
I_NODE_TEXT
= L_NODE_TEXT
IS_OUTTAB_LINE = LS_TREE
IMPORTING
E_NEW_NODE_KEY = L_NEXT_KEY.
ENDFORM.

"ADD_NODE

*
*
*
FORM ADD_LEAF
*
*
FORM ADD_LEAF USING L_TREE TYPE TY_VBAK
L_NEXT_KEY
CHANGING L_LAST_KEY.

CALL METHOD G_ALV_TREE->ADD_NODE


EXPORTING
I_RELAT_NODE_KEY = L_NEXT_KEY
I_RELATIONSHIP = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD
IS_OUTTAB_LINE = TAB_TREE
IMPORTING
E_NEW_NODE_KEY = L_LAST_KEY.
ENDFORM.
"ADD_LEAF
*
*
*
FORM OBTENER_DATOS
*
*
FORM OBTENER_DATOS.
DATA: TI_VBAK_CAB LIKE STANDARD TABLE OF VBAK WITH HEADER LINE,
TI_VBAP LIKE STANDARD TABLE OF VBAP WITH HEADER LINE,
TI_VBFA LIKE STANDARD TABLE OF VBFA WITH HEADER LINE,
TI_VBRK LIKE STANDARD TABLE OF VBRK WITH HEADER LINE,
TI_VBKD LIKE STANDARD TABLE OF VBKD WITH HEADER LINE.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE TI_VBAK_CAB
FROM VBAK
WHERE
AUART IN S_AUART AND
VKORG EQ P_VKORG AND
VTWEG EQ P_VTWEG AND
KUNNR EQ P_KUNNR AND
SPART EQ P_SPART." AND
SORT TI_VBAK_CAB BY VBELN.
IF NOT TI_VBAK_CAB[] IS INITIAL.
SELECT * INTO CORRESPONDING FIELDS OF TABLE TI_VBKD
FROM VBKD FOR ALL ENTRIES IN TI_VBAK_CAB[]
WHERE
VBELN EQ TI_VBAK_CAB-VBELN.
SORT TI_VBKD BY VBELN.
SELECT * INTO CORRESPONDING FIELDS OF TABLE TI_VBAP
FROM VBAP FOR ALL ENTRIES IN TI_VBAK_CAB[]
WHERE
VBELN EQ TI_VBAK_CAB-VBELN AND
WERKS EQ P_WERKS.
SORT TI_VBAP BY VBELN.
ENDIF.
DATA W_CHAR(10) TYPE C.
LOOP AT TI_VBAP.

CLEAR: W_CHAR.
READ TABLE TI_VBAK_CAB WITH KEY VBELN = TI_VBAP-VBELN BINARY SEARCH.
IF SY-SUBRC EQ 0.
T_VBAK-KUNNR = TI_VBAK_CAB-KUNNR.
T_VBAK-BSTNK = TI_VBAK_CAB-BSTNK.
ENDIF.
READ TABLE TI_VBKD WITH KEY VBELN = TI_VBAP-VBELN BINARY SEARCH.
IF SY-SUBRC EQ 0.
CLEAR: W_CHAR.
CONCATENATE TI_VBAK_CAB-IHREZ+6(4) '' TI_VBAK_CAB-IHREZ+3(2) '' TI_VBAK_C
AB-IHREZ(2) INTO W_CHAR.
T_VBAK-AUDAT = W_CHAR. "TI_VBAK_CAB-IHREZ.
ENDIF.
APPEND T_VBAK.
ENDLOOP.
DELETE T_VBAK WHERE AUDAT EQ ''.
DELETE T_VBAK WHERE AUDAT NOT IN S_AUDAT.
DELETE ADJACENT DUPLICATES FROM T_VBAK.
SORT T_VBAK BY BSTNK.
IF SY-SUBRC EQ 0.
LOOP AT T_VBAK ASSIGNING <VBAK>.
MOVE <VBAK>-KUNNR TO T_HEADER-KUNNR.
APPEND T_HEADER.
ENDLOOP.
SORT T_HEADER.
DELETE ADJACENT DUPLICATES FROM T_HEADER.
ENDIF.
SORT T_VBAK BY BSTNK DESCENDING.
ENDFORM.

"OBTENER_DATOS

*&---------------------------------------------------------------------*
*&
Form FM_REGISTER_EVENT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM FM_REGISTER_EVENT .
*Define local variables
DATA: LT_EVENTS
TYPE CNTL_SIMPLE_EVENTS,
L_EVENT
TYPE CNTL_SIMPLE_EVENT,
L_EVENT_RECEIVER TYPE REF TO LCL_TREE_EVENT_RECEIVER.
*Get register events
CALL METHOD G_ALV_TREE->GET_REGISTERED_EVENTS
IMPORTING
EVENTS = LT_EVENTS.
*Frontend registration: add additional event ids
L_EVENT-EVENTID = CL_GUI_COLUMN_TREE=>EVENTID_NODE_DOUBLE_CLICK.
APPEND L_EVENT TO LT_EVENTS.
* CLEAR: L_EVENT.

* L_EVENT-EVENTID = CL_GUI_COLUMN_TREE=>EVENTID_SELECTION_CHANGED.
* APPEND L_EVENT TO LT_EVENTS.
*Frontend registration:provide new event table to alv tree
CALL METHOD G_ALV_TREE->SET_REGISTERED_EVENTS
EXPORTING
EVENTS
= LT_EVENTS
EXCEPTIONS
CNTL_ERROR
= 1
CNTL_SYSTEM_ERROR
= 2
ILLEGAL_EVENT_COMBINATION = 3.
CREATE OBJECT L_EVENT_RECEIVER.
SET HANDLER L_EVENT_RECEIVER->HANDLE_NODE_DOUBLE_CLICK FOR G_ALV_TREE.
SET HANDLER L_EVENT_RECEIVER->ON_FUNCTION_SELECTED FOR G_TOOLBAR.
* SET HANDLER L_EVENT_RECEIVER->HANDLE_USER_COMMAND FOR G_ALV_TREE.
ENDFORM.
" FM_REGISTER_EVENT
*&---------------------------------------------------------------------*
*&
Form OBTENER_DATOS_DETALLE
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM OBTENER_DATOS_DETALLE USING W_BSTNK TYPE VBAK-BSTNK.
DATA: TI_VBAK_CAB LIKE STANDARD TABLE OF VBAK WITH HEADER LINE,
TI_VBAP LIKE STANDARD TABLE OF VBAP WITH HEADER LINE,
TI_VBFA LIKE STANDARD TABLE OF VBFA WITH HEADER LINE,
TI_VBRK LIKE STANDARD TABLE OF VBRK WITH HEADER LINE,
TI_BKPF LIKE STANDARD TABLE OF BKPF WITH HEADER LINE.
REFRESH: TI_OUTPUT.
CLEAR: TI_OUTPUT.
SELECT * INTO CORRESPONDING FIELDS OF TABLE TI_VBAK_CAB
FROM VBAK AS A
INNER JOIN VBAP AS B
ON ( A~VBELN EQ B~VBELN )
WHERE
A~AUART IN S_AUART AND
A~VKORG EQ P_VKORG AND
A~VTWEG EQ P_VTWEG AND
A~SPART EQ P_SPART AND
A~KUNNR EQ P_KUNNR AND
A~BSTNK EQ W_BSTNK AND
B~WERKS EQ P_WERKS.
SORT TI_VBAK_CAB BY VBELN.
IF NOT TI_VBAK_CAB[] IS INITIAL.
** trae datos de posicion del pedido
SELECT * INTO CORRESPONDING FIELDS OF TABLE TI_VBAP
FROM VBAP FOR ALL ENTRIES IN TI_VBAK_CAB[]
WHERE
VBELN EQ TI_VBAK_CAB-VBELN AND
WERKS EQ P_WERKS.
SORT TI_VBAP BY VBELN.

** busca la factura sd, desde el flujo de documentos


SELECT * INTO CORRESPONDING FIELDS OF TABLE TI_VBFA
FROM VBFA FOR ALL ENTRIES IN TI_VBAK_CAB[]
WHERE VBELV EQ TI_VBAK_CAB-VBELN.
SORT TI_VBFA BY VBELV.
** busca la factura sd, asociado al pedido
IF NOT TI_VBFA[] IS INITIAL.
SELECT * INTO CORRESPONDING FIELDS OF TABLE TI_VBRK
FROM VBRK FOR ALL ENTRIES IN TI_VBFA[]
WHERE VBELN EQ TI_VBFA-VBELN.
SORT TI_VBRK BY VBELN.
ENDIF.
ENDIF.
FIELD-SYMBOLS:
FIELD-SYMBOLS:
FIELD-SYMBOLS:
FIELD-SYMBOLS:

<FS_VBFA>
<FS_VBAP>
<FS_VBRK>
<FS_BKPF>

LIKE
LIKE
LIKE
LIKE

LINE
LINE
LINE
LINE

OF
OF
OF
OF

TI_VBFA.
TI_VBAP.
TI_VBRK.
TI_BKPF.

LOOP AT TI_VBAP ASSIGNING <FS_VBAP>.


TI_OUTPUT-VBELN = <FS_VBAP>-VBELN.
TI_OUTPUT-NETWR = <FS_VBAP>-NETWR.
TI_OUTPUT-ZMENG = <FS_VBAP>-ZMENG.
TI_OUTPUT-TIGV = ( <FS_VBAP>-NETWR * '18' ) / 100.
TI_OUTPUT-TTOTA = TI_OUTPUT-NETWR + TI_OUTPUT-TIGV.
UNASSIGN <FS_VBFA>.
READ TABLE TI_VBFA ASSIGNING <FS_VBFA>
WITH KEY VBELV = <FS_VBAP>-VBELN BINARY SEARCH.
IF <FS_VBFA> IS ASSIGNED.
UNASSIGN <FS_VBRK>.
READ TABLE TI_VBRK ASSIGNING <FS_VBRK>
WITH KEY VBELN = <FS_VBFA>-VBELN BINARY SEARCH.
IF <FS_VBRK> IS ASSIGNED.
TI_OUTPUT-AUART = <FS_VBRK>-FKART.
TI_OUTPUT-AUDAT = <FS_VBRK>-FKDAT.
TI_OUTPUT-VBEL1 = <FS_VBRK>-VBELN.
TI_OUTPUT-XBLNR = <FS_VBRK>-XBLNR.
*

DATA W_SERIEP LIKE ZSDTB_SERIEXCENT-SERIE_PLAY.

*
*
*
*
*
*
*
*
*
*
*

SELECT SINGLE SERIE_PLAY INTO W_SERIEP


FROM ZSDTB_SERIEXCENT
WHERE
BUKRS EQ P_BUKRS AND
VKORG EQ P_VKORG AND
VTWEG EQ P_VTWEG AND
SPART EQ P_SPART AND
CENTRO EQ P_WERKS AND
TIPO_SERIE EQ 'PLAY' AND
MATNR
EQ <FS_VBAP>-MATNR.

*
*

CONCATENATE <FS_VBRK>-XBLNR(2)'-' W_SERIEP '-' <FS_VBRK>-XBLNR+8(8)


INTO TI_OUTPUT-XBLN1.
ENDIF.
REFRESH: TI_BKPF.
CLEAR: TI_BKPF.
CALL FUNCTION 'FI_DOCUMENT_READ'
EXPORTING
I_AWTYP
= 'VBRK'
I_AWREF
= TI_OUTPUT-VBEL1
I_BUKRS
= P_BUKRS
I_GJAHR
= P_GJAHR
TABLES
T_BKPF
= TI_BKPF
EXCEPTIONS
WRONG_INPUT = 1
NOT_FOUND = 2
OTHERS
= 3.
IF SY-SUBRC = 0.
UNASSIGN <FS_BKPF>.
LOOP AT TI_BKPF ASSIGNING <FS_BKPF>.
IF <FS_BKPF> IS ASSIGNED.
TI_OUTPUT-BELNR = <FS_BKPF>-BELNR.
TI_OUTPUT-WAERS = <FS_BKPF>-WAERS.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
APPEND TI_OUTPUT.
ENDLOOP.
PERFORM DETALLE_COMPENSA.

ENDFORM.

"OBTENER_DATOS

*&---------------------------------------------------------------------*
*&
Form detalle_compensa
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM DETALLE_COMPENSA.
DELETE ADJACENT DUPLICATES FROM TI_OUTPUT.
LOOP AT TI_OUTPUT.
CLEAR: W_COMPENSA.
W_COMPENSA-ESTAD = 'PENDIENTE'.
MOVE W_FELIQU TO W_COMPENSA-FELIQU.
MOVE W_BSTNK TO W_COMPENSA-LIQU.
MOVE 'PEN' TO W_COMPENSA-WAERS.
SELECT AUGBL ZUONR AUGDT
INTO (W_COMPENSA-BELNR,
W_COMPENSA-LIQU,
W_COMPENSA-BUDAT)
FROM BSAD
WHERE BUKRS EQ P_BUKRS AND
KUNNR EQ P_KUNNR AND

GJAHR EQ P_GJAHR AND


BELNR EQ TI_OUTPUT-BELNR AND
ZUONR EQ W_BSTNK.
SELECT DMBTR HKONT ZUONR
INTO (W_COMPENSA-DMBTR,
W_COMPENSA-HKONT,
W_COMPENSA-ZUONR)
FROM BSIS
WHERE
BELNR EQ W_COMPENSA-BELNR AND
BUKRS EQ P_BUKRS AND
GJAHR EQ P_GJAHR AND
HKONT LIKE '001041%'.
W_COMPENSA-ESTAD = 'COMPENSADO'.
ENDSELECT.
SELECT DMBTR HKONT ZUONR
INTO (W_COMPENSA-DMBTR,
W_COMPENSA-HKONT,
W_COMPENSA-ZUONR)
FROM BSAS
WHERE
BELNR EQ W_COMPENSA-BELNR AND
BUKRS EQ P_BUKRS AND
GJAHR EQ P_GJAHR AND
HKONT LIKE '001041%'.
W_COMPENSA-ESTAD = 'CONCILIADO'.
ENDSELECT.
ENDSELECT.
ENDLOOP.
ENDFORM.

"detalle_compensa

*&---------------------------------------------------------------------*
*&
Form OBTIENE_CLASE_DOC
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM OBTIENE_CLASE_DOC .
CLEAR: S_AUART.
S_AUART-SIGN = 'I'.
S_AUART-OPTION = 'EQ'.
S_AUART-LOW
= 'ZTA1'. "Pedido PlayasA Fact.
APPEND S_AUART.
*
*
*
*
*
*
*
*

S_AUART-LOW
= 'ZPA2'."Pedido PlayasA Bol.
APPEND S_AUART.
S_AUART-LOW
= 'ZPM1'."Pedido PlayasM Fact.
APPEND S_AUART.
S_AUART-LOW
= 'ZPM2'."Pedido PlayasM Bol.
APPEND S_AUART.

ENDFORM.

" obtiene_tipo_doc

*&---------------------------------------------------------------------*
*&
Form contabilizar
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
FORM CONTABILIZAR .
DATA: W_DMBTR(13) TYPE C,
W_SGTXT(25) TYPE C,
W_XBLNR
TYPE BKPF-XBLNR,
W_BUDAT(10) TYPE C,
W_RUC(11) TYPE C,
W_BKTXT LIKE BKPF-BKTXT.

" numero LC
" fecha de contabilizacion
" RUC

* OBTENIENDO FORMATO DE FECHA PARA LA CONTABILIZACION


CONCATENATE W_COMPENSA-BUDAT+6(2) W_COMPENSA-BUDAT+4(2) W_COMPENSA-BUDAT+0(4)
INTO W_BUDAT SEPARATED BY '.'.
CONCATENATE P_WERKS '-' 'Playa No Abonados' INTO W_BKTXT.
W_DMBTR = W_COMPENSA-DMBTR.

PERFORM LLENAR_BDCDATA USING:


'SAPMF05A'
'0122'
'X'
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
ilizacin
' '
' '
' '
nco
*
*PERFORM LLENAR_BDCDATA USING:
*
'SAPMF05L'
'0300'
'X'
*
' '
' '
' '
*
' '
' '
' '
*
' '
' '
' '
*
' '
' '
' '
*
' '
' '
' '
*
' '
' '
' '
PERFORM LLENAR_BDCDATA USING:
'SAPMF05A'
'0300'
'X'
' '
' '
' '
' '
' '
' '

' '
'BDC_CURSOR'
'BDC_OKCODE'
'BKPF-BLDAT'
'BKPF-BLART'
'BKPF-BUKRS'
'BKPF-BUDAT'
'BKPF-MONAT'
'BKPF-WAERS'
'BKPF-XBLNR'
'BKPF-BKTXT'
'FS006-DOCID'
'RF05A-NEWBS'

' ',
'RF05A-NEWKO',
'/00',
W_BUDAT,
'D5',
P_BUKRS,
W_BUDAT,
W_BUDAT+3(2),
W_COMPENSA-WAERS,
W_COMPENSA-LIQU,
W_BKTXT,
'*',
'40',
" clave de contab

'RF05A-NEWKO' P_HKONT. " cuenta mayor ba

' '
'BDC_CURSOR'
'BDC_OKCODE'
'BSEG-WRBTR'
'BSEG-MWSKZ'
'BSEG-VALUT'
'BSEG-ZUONR'
' '
'BDC_CURSOR'
'BDC_OKCODE'

' ',
'RF05A-NEWBS',
'=SL',
W_DMBTR,
'**',
W_BUDAT,
W_COMPENSA-ZUONR.
' ',
'RF05A-NEWBS',
'=SL',

'
'
'

'
'
'

'
'
'

'
'
'

'
'
'

'
'
'

PERFORM LLENAR_BDCDATA USING:


'SAPLKACB'
'0002'
'X'
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
0003BLOCK1'.

'BSEG-WRBTR'
'BSEG-VALUT'
'BSEG-ZUONR'

PERFORM LLENAR_BDCDATA USING:


'SAPMF05A'
'0710'
'X'
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
laya
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '

W_DMBTR,
W_BUDAT,
W_COMPENSA-ZUONR.

' '
'BDC_CURSOR'
'BDC_OKCODE'
'COBL-GSBER'
'BDC_SUBSCR'

' '
'BDC_CURSOR'
'BDC_OKCODE'
'RF05A-AGBUK'
'RF05A-AGKON'

' ',
'COBL-GSBER',
'=ENTER',
' ',
'SAPLKACB

' ',
'RF05A-XPOS1(09)',
'/00',
P_BUKRS,
P_KUNNR,
" cliente P

'RF05A-AGKOA' 'D',
'RF05A-XNOPS' 'X',
'RF05A-XPOS1(01)' ' ',
'RF05A-XPOS1(09)' 'X'.

PERFORM LLENAR_BDCDATA USING:


'SAPMF05A'
'0731'
'X'
' '
' '
' '
' '
' '
' '
' '
' '
' '

' '
' ',
'BDC_CURSOR' 'RF05A-SEL01(01)',
'BDC_OKCODE' '/00',
'RF05A-SEL01(01)' W_COMPENSA-LIQU.

PERFORM LLENAR_BDCDATA USING:


'SAPMF05A'
'0731'
'X'
' '
' '
' '
' '
' '
' '

' '
'BDC_CURSOR'
'BDC_OKCODE'

' ',
'RF05A-SEL01(01)',
'=PA'.

* JM
IF CHK_PARCIAL EQ 'X'.
*

*
*
*

seleccionando pago parcial


PERFORM LLENAR_BDCDATA USING:
'SAPDF05X'
'3100'
'X'
' '
' '
' '
' '
' '
' '
6102PAGE',
' '
' '
' '

' '
'BDC_OKCODE'
'BDC_SUBSCR'

' ',
'=PART',
'SAPDF05X

'BDC_CURSOR'

'RF05A-ABPOS'.

===========================================================================
lgica para identificar la posicin del documento a aplicar el pago parcial
===========================================================================

* ordenando descendentemente por el importe (el importe mayor estar en la prime


ra posicin)
PERFORM LLENAR_BDCDATA USING:
'SAPDF05X'
'3100'
'X'
' '
' ',
' '
' '
' '
'BDC_OKCODE' '=OSD',
' '
' '
' '
'BDC_SUBSCR' 'SAPDF05X
6102PAGE',
' '
' '
' '
'BDC_CURSOR' 'DF05B-PSBET(01)'.

marcando todas las posiciones (para


PERFORM LLENAR_BDCDATA USING:
'SAPDF05X'
'3100'
'X'
' '
' '
' '
' '
' '
' '
6102PAGE',
' '
' '
' '

desactivarlas)
' '
'BDC_OKCODE'
'BDC_SUBSCR'

' ',
'=OMX',
'SAPDF05X

'BDC_CURSOR'

'DF05B-PSBET(01)'.

desactivando todas las posiciones


PERFORM LLENAR_BDCDATA USING:
'SAPDF05X'
'3100'
'X'
' '
' '
' '
' '
' '
' '
6102PAGE',
' '
' '
' '

' '
'BDC_OKCODE'
'BDC_SUBSCR'

' ',
'=Z-',
'SAPDF05X

'BDC_CURSOR'

'RF05A-ABPOS'.

activando la primera posicin


PERFORM LLENAR_BDCDATA USING:
'SAPDF05X'
'3100'
'X'
' '
' '
' '
' '
' '
' '
6102PAGE',
' '
' '
' '

' '
'BDC_OKCODE'
'BDC_SUBSCR'

' ',
'=PI',
'SAPDF05X

'BDC_CURSOR'

'DF05B-PSBET(01)'.

asignando el importe parcial


PERFORM LLENAR_BDCDATA USING:
'SAPDF05X'
'3100'
'X'
' '
' '
' '
' '
' '
' '
6104PAGE',
' '
' '
' '
' '
' '
' '

' '
'BDC_OKCODE'
'BDC_SUBSCR'

' ',
'/00',
'SAPDF05X

simulando
PERFORM LLENAR_BDCDATA USING:
'SAPDF05X'
'3100'
'X'
' '
' '
' '
' '
' '
' '
6104PAGE',
' '
' '
' '

' '
'BDC_OKCODE'
'BDC_SUBSCR'

' ',
'=BS',
'SAPDF05X

'BDC_CURSOR'

'DF05B-PSZAH(01)'.

' '
'BDC_CURSOR'
'BDC_OKCODE'

' ',
'RF05A-NEWBS',
'=BU'.

ELSE.
Pago total
PERFORM LLENAR_BDCDATA USING:
'SAPDF05X'
'3100'
'X'
' '
' '
' '
' '
' '
' '
6102PAGE',
' '
' '
' '

' '
'BDC_OKCODE'
'BDC_SUBSCR'

' ',
'=OMX',
'SAPDF05X

'BDC_CURSOR'

'DF05B-PSSKT(01)'.

PERFORM LLENAR_BDCDATA USING:


'SAPDF05X'
'3100'
'X'
' '
' '
' '
' '
' '
' '

' '
'BDC_OKCODE'
'BDC_SUBSCR'

' ',
'=Z+',
'SAPDF05X

grabando
PERFORM LLENAR_BDCDATA USING:
'SAPMF05A'
'0700'
'X'
' '
' '
' '
' '
' '
' '

'BDC_CURSOR' 'DF05B-PSZAH(01)',
'DF05B-PSZAH(01)' W_DMBTR.

'

'

6102PAGE',
' '

'

'

'DF05B-PSSKT(01)'.

' '
'BDC_OKCODE'
'BDC_SUBSCR'

' ',
'=BU',
'SAPDF05X

'BDC_CURSOR'

'DF05B-PSSKT(01)'.

PERFORM LLENAR_BDCDATA USING:


'SAPDF05X'
'3100'
'X'
' '
' '
' '
' '
' '
' '
6102PAGE',
' '
' '
' '

'BDC_CURSOR'

ENDIF.
CALL TRANSACTION 'F-51' USING BDCDATA
MODE P_MODEB
MESSAGES INTO BDMSGCALL.
PERFORM DETALLE_COMPENSA.
ENDFORM.

"contabilizar

***&---------------------------------------------------------------------*
***&
Form 03_compensar
***&---------------------------------------------------------------------*
***
text
***----------------------------------------------------------------------*
FORM C03_COMPENSAR.
DATA: W_BUDAT LIKE BSID-BUDAT.
CLEAR: BDCDATA, W_BUDAT.
REFRESH BDCDATA.
PERFORM CONTABILIZAR.
* refrescando la lista de compensaciones
PERFORM INIT_CONTAINER_COMP.
ENDFORM.
"C03_compensar
**
***&---------------------------------------------------------------------*
***&
Form llenar_bdcdata
***&---------------------------------------------------------------------*
***----------------------------------------------------------------------*
FORM LLENAR_BDCDATA USING PROGRAM DYNPRO DYNBEGIN FNAM FVAL.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = DYNBEGIN.
BDCDATA-FNAM
= FNAM.
BDCDATA-FVAL
= FVAL.
APPEND BDCDATA.
ENDFORM.
"llenar_bdcdata
*&---------------------------------------------------------------------*
*&
Module STATUS_0300 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_0300 OUTPUT.
SET PF-STATUS 'MAIN100'.

SET TITLEBAR 'TITUL'.


CASE OK_CODE.
WHEN 'EXIT'.
ENDCASE.
ENDMODULE.
" STATUS_0300 OUTPUT
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0300 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0300 INPUT.
CASE OK_CODE.
WHEN 'EXIT'.
*
PERFORM exit_program.
LEAVE TO SCREEN 0.
LEAVE PROGRAM.
WHEN 'SAVE'.
DATA: LT_ROWS TYPE LVC_T_ROW.
DATA: LF_ANSWR TYPE C.
IF NOT W_COMPENSA-BELNR IS INITIAL.
MESSAGE 'La LC ya se encuentra compensado' TYPE 'E'.
EXIT.
ENDIF.
DATA W_TOTAL LIKE BSID-DMBTR.
IF W_COMPENSA-DMBTR = SPACE.
MESSAGE 'Importe no cuadra con Liquidacin' TYPE 'E'.
EXIT.
ENDIF.
IF W_COMPENSA-ZUONR = SPACE.
MESSAGE 'Ingresar nro de operacin' TYPE 'E'.
EXIT.
ENDIF.
IF W_COMPENSA-BUDAT = SPACE.
MESSAGE 'Ingresar Fecha valor' TYPE 'E'.
EXIT.
ENDIF.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
DEFAULTOPTION = 'N'
TEXTLINE1
= ' Desea Compensar los documentos ?'
TITEL
= 'TUUA Manual'
CANCEL_DISPLAY = 'X'
IMPORTING
ANSWER
= LF_ANSWR.
IF LF_ANSWR EQ 'J'.
PERFORM C03_COMPENSAR.
CALL METHOD GRID1->REFRESH_TABLE_DISPLAY.
ENDIF.
ENDCASE.

CLEAR OK_CODE.
ENDMODULE.
" USER_COMMAND_0300 INPUT
*&---------------------------------------------------------------------*
*&
Form FILL_CATALOG_CONTAINER
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM FILL_CATALOG_CONTAINER .
DATA: GS_FIELDCAT_ADD TYPE LVC_S_FCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
* GS_FIELDCAT-DATATYPE
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME
APPEND GS_FIELDCAT TO
CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
* GS_FIELDCAT-DATATYPE
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME
APPEND GS_FIELDCAT TO

=
=
=
=

1.
'Clase'.
'Clase'.
'AUART'.
= 'DATS'.
= '6'.
= 'TI_OUTPUT'.
GT_FIELDCAT_TREE.
=
=
=
=

2.
'Pedido'.
'Pedido'.
'VBELN'.
= 'DATS'.
= '10'.
= 'TI_OUTPUT'.
GT_FIELDCAT_TREE.

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-DATATYPE
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME
APPEND GS_FIELDCAT TO

= 3.
= 'Fecha'.
= 'Fecha'.
= 'AUDAT'.
= 'DATS'.
= '10'.
= 'TI_OUTPUT'.
GT_FIELDCAT_TREE.

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME =
APPEND GS_FIELDCAT TO

= 4.
= 'Factura'.
= 'Factura'.
= 'VBEL1'.
= '10'.
'TI_OUTPUT'.
GT_FIELDCAT_TREE.

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN

=
=
=
=
=

5.
'Asiento'.
'Asiento'.
'BELNR'.
'10'.

GS_FIELDCAT-TABNAME = 'TI_OUTPUT'.
APPEND GS_FIELDCAT TO GT_FIELDCAT_TREE.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME =
APPEND GS_FIELDCAT TO

= 6.
= 'Nro Sunat'.
= 'Nro Sunat'.
= 'XBLN1'.
= '16'.
'TI_OUTPUT'.
GT_FIELDCAT_TREE.

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME =
APPEND GS_FIELDCAT TO

= 7.
= 'Moneda'.
= 'Moneda'.
= 'WAERS'.
= '5'.
'TI_OUTPUT'.
GT_FIELDCAT_TREE.

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME =
APPEND GS_FIELDCAT TO

= 8.
= 'Importe'.
= 'Importe'.
= 'NETWR'.
= '6'.
'TI_OUTPUT'.
GT_FIELDCAT_TREE.

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME =
APPEND GS_FIELDCAT TO

= 9.
= 'Cant.'.
= 'Cant.'.
= 'ZMENG'.
= '6'.
'TI_OUTPUT'.
GT_FIELDCAT_TREE.

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME =
APPEND GS_FIELDCAT TO

= 10.
= 'IGV'.
= 'IGV'.
= 'TIGV'.
= '6'.
'TI_OUTPUT'.
GT_FIELDCAT_TREE.

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME
GS_FIELDCAT-DO_SUM
APPEND GS_FIELDCAT TO

= 11.
= 'Total'.
= 'Total'.
= 'TTOTA'.
= '10'.
= 'TI_OUTPUT'.
= 'X'.
GT_FIELDCAT_TREE.

ENDFORM.

" FILL_CATALOG_CONTAINER

*&---------------------------------------------------------------------*
*&
Form FILL_CATALOG_CONTAINER_COMP
*&---------------------------------------------------------------------*
FORM FILL_CATALOG_CONTAINER_COMP .
CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME
GS_FIELDCAT-NO_OUT
APPEND GS_FIELDCAT TO
CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
* GS_FIELDCAT-DATATYPE
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME
APPEND GS_FIELDCAT TO

= 1.
= 'Nro.Liq.'.
= 'Nro.Liq.'.
= 'ALLOC_NMBR'.
= '10'.
= 'T_LINEITEMS'.
= 'X'.
GT_FIELDCAT_COMP.
=
=
=
=

2.
'Asiento'.
'Asiento'.
'DOC_NO'.
= 'DATS'.
= '12'.
= 'T_LINEITEMS'.
GT_FIELDCAT_COMP.

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-DATATYPE
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME
APPEND GS_FIELDCAT TO

= 3.
= 'Fec. Cont.'.
= 'Fec. Cont.'.
= 'PSTNG_DATE'.
= 'DATS'.
= '10'.
= 'T_LINEITEMS'.
GT_FIELDCAT_COMP.

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME
APPEND GS_FIELDCAT TO

= 4.
= 'Mon'.
= 'Mon'.
= 'CURRENCY'.
= '5'.
= 'T_LINEITEMS'.
GT_FIELDCAT_COMP.

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME
GS_FIELDCAT-DO_SUM
APPEND GS_FIELDCAT TO

= 5.
= 'Importe Doc'.
= 'Importe Doc'.
= 'AMT_DOCCUR'.
= '13'.
= 'T_LINEITEMS'.
= 'X'.
GT_FIELDCAT_COMP.

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN

=
=
=
=
=

6.
'Importe ML'.
'Importe ML'.
'LC_AMOUNT'.
'13'.

GS_FIELDCAT-TABNAME = 'T_LINEITEMS'.
GS_FIELDCAT-DO_SUM
= 'X'.
APPEND GS_FIELDCAT TO GT_FIELDCAT_COMP.
*
*
*
*
*
*
*
*

CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS
GS_FIELDCAT-REPTEXT
GS_FIELDCAT-SCRTEXT_S
GS_FIELDCAT-FIELDNAME
GS_FIELDCAT-OUTPUTLEN
GS_FIELDCAT-TABNAME
APPEND GS_FIELDCAT TO

ENDFORM.

= 7.
= 'Voucher'.
= 'Voucher'.
= 'LC_AMOUNT'.
= '10'.
= 'T_LINEITEMS'.
GT_FIELDCAT_COMP.
" FILL_CATALOG_CONTAINER

*&---------------------------------------------------------------------*
*&
Module detalle_compensa INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE DETALLE_COMPENSA INPUT.
* PERFORM INIT_CONTAINER USING W_BSTNK.
ENDMODULE.
" detalle_compensa INPUT
*&---------------------------------------------------------------------*
*&
Form CHANGE_TOOLBAR
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM CHANGE_TOOLBAR.
*
*
*
*
*

1.Get toolbar instance of your ALV Tree.


When you instantiate an instance of CL_GUI_ALV_TREE the constructor
of the base class (CL_ALV_TREE_BASE) creates a toolbar.
Fetch its reference with the following method if you want to
modify it:
CALL METHOD G_ALV_TREE->GET_TOOLBAR_OBJECT
IMPORTING
ER_TOOLBAR = G_TOOLBAR.
CHECK NOT G_TOOLBAR IS INITIAL. "could happen if you do not use the
"standard toolbar

* 2.Modify toolbar with methods of CL_GUI_TOOLBAR:


* add seperator to toolbar
CALL METHOD G_TOOLBAR->ADD_BUTTON
EXPORTING
FCODE
= ''
ICON
= ''
BUTN_TYPE = CNTB_BTYPE_SEP.
* add Standard Button to toolbar (for Delete Subtree)
CALL METHOD G_TOOLBAR->ADD_BUTTON
EXPORTING
FCODE
= 'VER'
ICON
= '@15@'
BUTN_TYPE = CNTB_BTYPE_BUTTON
TEXT
= 'Ver Detalle'
QUICKINFO = TEXT-901. "Delete subtree
ENDFORM.
"CHANGE_TOOLBAR

*&---------------------------------------------------------------------*
*&
Form OBTENER_DATOS_COMP
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_W_BSTNK text
*----------------------------------------------------------------------*
FORM OBTENER_DATOS_COMP.
DATA: P_DATE_FROM LIKE SY-DATUM.
P_DATE_FROM = SY-DATUM - P_DAYANT.
CALL FUNCTION 'BAPI_AR_ACC_GETSTATEMENT'
EXPORTING
COMPANYCODE = P_BUKRS
CUSTOMER
= P_KUNNR
DATE_FROM = P_DATE_FROM
DATE_TO
= SY-DATUM
TABLES
LINEITEMS = T_LINEITEMS.
DELETE T_LINEITEMS
WHERE ( REF_DOC_NO NE W_COMPENSA-LIQU ) OR ( DOC_TYPE NE 'D5' ).
ENDFORM.

" OBTENER_DATOS_COMP

*&---------------------------------------------------------------------*
*&
Form LEER_LIQUIDACION
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM LEER_LIQUIDACION.
DATA: LT_SELECTED_NODES TYPE LVC_T_NKEY,
L_SELECTED_NODE TYPE LVC_NKEY,
L_RC
TYPE C.
CALL METHOD G_ALV_TREE->GET_SELECTED_NODES
CHANGING
CT_SELECTED_NODES = LT_SELECTED_NODES.
CALL METHOD CL_GUI_CFW=>FLUSH.
READ TABLE LT_SELECTED_NODES INTO L_SELECTED_NODE INDEX 1.
DATA: LWA_READ LIKE T_VBAK.
L_SELECTED_NODE = L_SELECTED_NODE - 1.
READ TABLE T_VBAK INDEX L_SELECTED_NODE INTO LWA_READ.
W_BSTNK = LWA_READ-BSTNK.
W_FELIQU = LWA_READ-AUDAT.
MOVE W_BSTNK TO W_COMPENSA-LIQU.
MOVE W_FELIQU TO W_COMPENSA-FELIQU.
IF SY-SUBRC EQ 0.
PERFORM INIT_CONTAINER USING LWA_READ-BSTNK.
* JM
* listar compensaciones de la liquidacin
PERFORM INIT_CONTAINER_COMP.
ENDIF.

ENDFORM.

"LEER_LIQUIDACION

You might also like