Sales Order Allocation
Sales Order Allocation
*&---------------------------------------------------------------------*
*& -------------EVENT CLASSES-------------------
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
CLASS cl_local DEFINITION.
PUBLIC SECTION.
METHODS: get_handler FOR EVENT added_function OF cl_salv_events_table
IMPORTING e_salv_function.
ENDCLASS.
CASE e_salv_function.
WHEN ’CR_DELVERY’.
SET PARAMETER ID ’VL’ FIELD wa_final-vbeln.
CALL TRANSACTION ’VL01’.
MESSAGE : s005(zmessage_cl).
WHEN ’ALLO_STOCK’.
MESSAGE : s000(zmessage_cl).
WHEN ’SAVE’.
MESSAGE: s004(zmessage_cl).
WHEN ’BACK’.
LEAVE PROGRAM.
ENDCASE.
ENDMETHOD.
ENDCLASS.
*&---------------------------------------------------------------------*
*& -------------START OF SELECTION-------------------
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
START-OF-SELECTION.
SELECT vbak~vbeln , vbak~auart, vbak~vkorg, vbak~vdatu , vbap~posnr,
vbap~matnr, vbap~werks, vbap~kwmeng, vbap~lfmng, vbap~kbmeng,
vbap~lprio, vbkd~konda, mard~labst, mard~insme, mard~speme,
mslb~charg , mslb~lblab
FROM vbak
INNER JOIN vbap
ON vbak~vbeln = vbap~vbeln
INNER JOIN vbkd
ON vbkd~vbeln = vbap~vbeln
AND vbkd~posnr = vbap~posnr
INNER JOIN mard
ON mard~matnr = vbap~matnr
INNER JOIN mslb
ON mslb~matnr = mard~matnr
AND mslb~werks = mard~werks
WHERE vbak~vkorg IN @s_vkorg
AND vbak~vbeln = @p_vbeln
AND vbap~lprio = @p_lprio
AND vbak~auart IN @s_auart
INTO TABLE @DATA(it_sales_data).
IF it_sales_data IS NOT INITIAL.
SORT it_sales_data BY vbeln posnr matnr.
ENDIF.
*&---------------------------------------------------------------------*
*& -------------DATA PROCESSING -------------------
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
LOOP AT it_sales_data INTO DATA(wa_sales) .
IF wa_sales-labst > wa_sales-kwmeng.
it_final = VALUE #( BASE it_final ( zalloc_quty = wa_sales-kwmeng
zstatus = ’ALLOCATED’ ) ) .
*&---------------------------------------------------------------------*
*& -------------DISPLAYING THE DATA-------------------
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
TRY.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = DATA(obj)
CHANGING
t_table = it_final.
CATCH cx_salv_msg.
ENDTRY.
CALL METHOD obj->if_salv_gui_om_table_info~set_screen_status
EXPORTING
report = sy-repid
pfstatus = ’FUNL_BUTTONS’
.
CALL METHOD obj->if_salv_gui_om_table_info~get_event
RECEIVING
value = DATA(lo_event).
SET HANDLER obj1->get_handler FOR lo_event. " SETTING EVENT HANDLER ...
obj->display( ) .