Professional Documents
Culture Documents
*"----------------------------------------------------------------------
** Internal tables
*"----------------------------------------------------------------------
DATA: lt_parameter TYPE powl_namevalue_tty,
lt_bapiret2 TYPE bapiret2_t,
lt_bapiret2_t TYPE bapiret2_t,
lt_order_list TYPE zmvn_vc_tt_order_selection,
lt_bid_save TYPE zmvn_tt_bid_save,
lt_bid_chan TYPE zmvn_tt_bid_save,
lt_cur_data TYPE zmvn_vc_tt_result_list_powl.
*"----------------------------------------------------------------------
DATA: ls_result LIKE LINE OF me->mt_result,
ls_old_data LIKE LINE OF me->mt_result,
ls_parameter TYPE powl_namevalue_sty,
ls_selected TYPE rstabix,
ls_bapiret2 TYPE bapiret2,
ls_order_list TYPE zmvn_vc_s_order_selection,
ls_ret_msg TYPE powl_msg_sty,
ls_bid_save TYPE zmvn_bid_save.
DATA: lv_check TYPE boolean.
FIELD-SYMBOLS <fs_action> TYPE powl_actdescr_sty.
FIELD-SYMBOLS <fs_result_tab> TYPE ANY.
FIELD-SYMBOLS <fs_result_table> TYPE zmvn_vc_result_list_powl.
*E_DO_REFRESH = 'X'. "code added to refresh query on each action.
* IF va_refresh_flag EQ 'X'.
* e_do_refresh = 'X'.
* va_refresh_flag = ''.
* ENDIF.
* IF i_actionid = 'POWL_LEAD_SEL'.
* IF va_refresh_flag = 'X'.
* e_do_refresh = 'X'.
* va_refresh_flag = ' '.
* ELSE.
* e_do_refresh = ' '.
* ENDIF.
* ELSEIF va_refresh_flag = ' '.
* e_do_refresh = ' '.
* ENDIF.
*IF i_actionid = 'POWL_LEAD_SEL' AND E_ACTIONS_CHANGED = 'X'.
* e_do_refresh = 'X'.
* ENDIF.
CASE i_type.
WHEN zmvn_vc_if_constants=>gc_type_vend_assign_powl.
CASE i_actionid .
WHEN 'CLUBBING'.
e_portal_actions-fire_wdevent = abap_true.
ls_parameter-key = 'EVENT_ID'.
ls_parameter-value = 'CLUBBING'.
APPEND ls_parameter TO lt_parameter.
LOOP AT c_selected INTO ls_selected.
READ TABLE c_result_tab INTO ls_result INDEX ls_selected-tabix.
IF sy-subrc = 0 .
ls_parameter-key = 'VBELNPOSNR'.
CONCATENATE ls_result-vbeln ls_result-posnr zcdp_if_cof_constant
s=>gc_hyphen ls_result-appl_area INTO ls_parameter-value.
APPEND ls_parameter TO lt_parameter.
ENDIF.
ENDLOOP.
e_portal_actions-cs_event = 'CLUBBING'.
e_portal_actions-parameters = lt_parameter.
* va_refresh_flag = 'X'.
* e_do_refresh = 'X'. "code added to refresh query on each actio
n.
WHEN 'ASSIGN_VENDOR'.
e_portal_actions-fire_wdevent = abap_true.
ls_parameter-key = 'EVENT_ID'.
ls_parameter-value = 'ASSIGN_VENDOR'.
APPEND ls_parameter TO lt_parameter.
LOOP AT c_selected INTO ls_selected.
READ TABLE c_result_tab INTO ls_result INDEX ls_selected-tabix.
IF sy-subrc = 0 .
ls_parameter-key = 'VBELNPOSNR'.
CONCATENATE ls_result-vbeln ls_result-posnr zcdp_if_cof_constant
s=>gc_hyphen ls_result-appl_area INTO ls_parameter-value..
APPEND ls_parameter TO lt_parameter.
ENDIF.
ENDLOOP.
e_portal_actions-cs_event = 'ASSIGN_VENDOR'.
e_portal_actions-parameters = lt_parameter.
* va_refresh_flag = 'X'.
* e_do_refresh = 'X'. "code added to refresh query on each actio
n.
WHEN 'ASSIGN_LR'.
e_portal_actions-fire_wdevent = abap_true.
ls_parameter-key = 'EVENT_ID'.
ls_parameter-value = 'ASSIGN_LR'.
APPEND ls_parameter TO lt_parameter.
LOOP AT c_selected INTO ls_selected.
READ TABLE c_result_tab INTO ls_result INDEX ls_selected-tabix.
IF sy-subrc = 0 .
ls_parameter-key = 'VBELNPOSNR'.
CONCATENATE ls_result-vbeln ls_result-posnr zcdp_if_cof_constant
s=>gc_hyphen ls_result-appl_area INTO ls_parameter-value..
APPEND ls_parameter TO lt_parameter.
ls_parameter-key = 'VBELN'.
ls_parameter-value = ls_result-vbeln.
APPEND ls_parameter TO lt_parameter.
ls_parameter-key = 'POSNR'.
ls_parameter-value = ls_result-posnr.
APPEND ls_parameter TO lt_parameter.
ls_parameter-key = 'CLUB_ID'.
ls_parameter-value = ls_result-club_id.
APPEND ls_parameter TO lt_parameter.
ls_parameter-key = 'KUNWE'.
ls_parameter-value = ls_result-kunwe.
APPEND ls_parameter TO lt_parameter.
ENDIF.
ENDLOOP.
e_portal_actions-cs_event = 'ASSIGN_LR'.
e_portal_actions-parameters = lt_parameter.
* va_refresh_flag = 'X'.
* e_do_refresh = 'X'. "code added to refresh query on each actio
n.
*END VHANGE BY VISHAL
WHEN 'VENDOR_NAME' OR 'LR_NUMBER' OR 'DL1_NO' OR 'DL2_NO' OR 'TRUCK_NO
' OR 'PLANT_CLUB_ID' OR 'DELIVERY' OR 'RFID_DELIVERY_STAT' OR 'SAP_ORDER_ID' O
R 'VKBUR_DESC'.
e_portal_actions-fire_wdevent = abap_true.
ls_parameter-key = 'EVENT_ID'.
IF i_actionid EQ 'PLANT_CLUB_ID'.
ls_parameter-value = 'GET_CLUB_ID'.
ELSEIF i_actionid EQ 'RFID_DELIVERY_STAT'.
ls_parameter-value = 'GET_DELIVERY_STAT'.
ELSEIF i_actionid EQ 'SAP_ORDER_ID'.
ls_parameter-value = 'GET_SAP_ORDER_ID'.
ELSEIF i_actionid EQ 'VKBUR_DESC'.
ls_parameter-value = 'GET_DEPOT'.
ELSE.
ls_parameter-value = 'GET_TRANSPORTER'.
ENDIF.
APPEND ls_parameter TO lt_parameter.
READ TABLE c_result_tab INTO ls_result INDEX i_action_index.
IF sy-subrc = 0 .
ls_parameter-key = 'VBELN'.
MOVE ls_result-vbeln TO ls_parameter-value..
APPEND ls_parameter TO lt_parameter.
ls_parameter-key = 'POSNR'.
MOVE ls_result-posnr TO ls_parameter-value..
APPEND ls_parameter TO lt_parameter.
ls_parameter-key = 'CLUB_ID'.
MOVE ls_result-club_id TO ls_parameter-value..
APPEND ls_parameter TO lt_parameter.
ENDIF.
e_portal_actions-cs_event = 'VENDOR_NAME'.
e_portal_actions-parameters = lt_parameter.
* va_refresh_flag = 'X'.
* e_do_refresh = 'X'. "code added to refresh query on each actio
n.
WHEN 'VBELN'.
e_portal_actions-fire_wdevent = abap_true.
READ TABLE c_result_tab INTO ls_result INDEX i_action_index.
IF sy-subrc = 0 .
ls_parameter-key = 'EVENT_ID'.
ls_parameter-value = 'VBELN'.
APPEND ls_parameter TO lt_parameter.
ls_parameter-key = zcdp_if_cof_constants=>gc_vbeln.
ls_parameter-value = ls_result-vbeln.
APPEND ls_parameter TO lt_parameter.
e_portal_actions-parameters = lt_parameter.
ENDIF.
"Action to trigger RSN and Delivery
WHEN 'TRIG_DELIV'.
IF gv_rfid_flag EQ 'X'.
LOOP AT c_selected INTO ls_selected.
CLEAR: ls_result.
READ TABLE c_result_tab INTO ls_result INDEX ls_selected-tabix.
IF sy-subrc = 0.
IF ls_result-order_status EQ zmvn_vc_if_constant
s=>gc_order_stat_lr_created.
CLEAR: ls_order_list, lt_order_list, lt_order_list[], lt_bap
iret2[].
IF ls_result-delivery IS NOT INITIAL.
ls_bapiret2-type = zmvn_vc_if_constant
s=>gc_message_sucess.
ls_bapiret2-id = zmvn_vc_if_constants=>gc_message_id.
ls_bapiret2-number = '144'.
ls_bapiret2-message_v1 = ls_result-vbeln.
* ls_bapiret2-message_v2 = ls_result-posnr.
APPEND ls_bapiret2 TO lt_bapiret2_t.
ELSE.
ls_order_list-order_id = ls_result-vbeln.
ls_order_list-posnr = ls_result-posnr.
ls_order_list-club_id = ls_result-club_id.
APPEND ls_order_list TO lt_order_list.
CALL FUNCTION 'ZMVN_VC_FM_TRIGGER_RSN_DI'
TABLES
it_order_list = lt_order_list
et_bapiret2_t = lt_bapiret2.
APPEND LINES OF lt_bapiret2 TO lt_bapiret2_t.
ENDIF.
ELSE.
ls_bapiret2-type = zmvn_vc_if_constants=>gc_message_error.
ls_bapiret2-id = zmvn_vc_if_constants=>gc_message_id.
ls_bapiret2-number = '143'.
ls_bapiret2-message_v1 = ls_result-vbeln.
ls_bapiret2-message_v2 = ls_result-posnr.
APPEND ls_bapiret2 TO lt_bapiret2_t.
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT lt_bapiret2_t INTO ls_bapiret2.
ls_ret_msg-msgtype = ls_bapiret2-type.
ls_ret_msg-msgid = ls_bapiret2-id.
ls_ret_msg-msgnumber = ls_bapiret2-number.
ls_ret_msg-message = ls_bapiret2-message.
ls_ret_msg-message_v1 = ls_bapiret2-message_v1.
ls_ret_msg-message_v2 = ls_bapiret2-message_v2.
ls_ret_msg-message_v3 = ls_bapiret2-message_v3.
ls_ret_msg-message_v4 = ls_bapiret2-message_v4.
APPEND ls_ret_msg TO e_messages.
ENDLOOP.
****************************Change done By Barun*****************************
*************
ENDIF.
WHEN 'SAVE'.
lt_cur_data = c_result_tab.
SELECT * FROM zmvn_bid_save INTO TABLE lt_bid_save
FOR ALL ENTRIES IN lt_cur_data
WHERE sap_order_id = lt_cur_data-sap_order_id
AND posnr = lt_cur_data-posnr.
IF sy-subrc <> 0.
CLEAR lt_bid_save.
ENDIF.
LOOP AT c_result_tab INTO ls_result.
ls_selected-tabix = sy-tabix.
READ TABLE lt_bid_save TRANSPORTING ALL FIELDS INTO ls_bid_save WI
TH KEY sap_order_id = ls_result-sap_order_id posnr = ls_result-posnr.
IF sy-subrc <> 0.
CLEAR ls_bid_save.
ELSE.
IF ls_bid_save-bidding_status = 5 OR ls_bid_save-bidding_status
= 6.
* do not update
CONTINUE.
ENDIF.
IF ls_bid_save-bidding_status = 2 AND ls_result-bidding_status <
> ls_bid_save-bidding_status AND ls_result-bidding_remark IS INITIAL.
ls_ret_msg-msgtype = zmvn_vc_if_constants=>gc_message_error.
ls_ret_msg-msgid = zmvn_vc_if_constants=>gc_message_id.
ls_ret_msg-msgnumber = 157.
ls_ret_msg-message_v1 = ls_result-sap_order_id.
ls_ret_msg-message_v2 = ls_result-posnr.
APPEND ls_ret_msg TO e_messages.
""" order &1 iten &2 bidding status chage please add remark
lv_check = abap_true.
EXIT.
ELSEIF ls_bid_save-bidding_status = 2 AND ls_result-
bidding_status <> ls_bid_save-bidding_status AND ls_result-bidding_remark IS N
OT INITIAL.
IF ls_result-bidding_status = 3 OR ls_result-bidding_status =
4.
ELSE.
ls_ret_msg-msgtype = zmvn_vc_if_constants=>gc_message_error.
ls_ret_msg-msgid = zmvn_vc_if_constants=>gc_message_id.
ls_ret_msg-msgnumber = 158.
ls_ret_msg-message_v1 = ls_result-sap_order_id.
ls_ret_msg-message_v2 = ls_result-posnr.
APPEND ls_ret_msg TO e_messages.
""" order &1 iten &2 bidding status change not allowed
lv_check = abap_true.
EXIT.
ENDIF.
ENDIF.
IF ls_bid_save-bidding_status = 3 OR ls_result-bidding_status =
4.
IF ls_result-bidding_status = 3 OR ls_result-bidding_status =
4 OR ls_result-bidding_status = 2.
ELSE.
ls_ret_msg-msgtype = zmvn_vc_if_constants=>gc_message_error.
ls_ret_msg-msgid = zmvn_vc_if_constants=>gc_message_id.
ls_ret_msg-msgnumber = 158.
ls_ret_msg-message_v1 = ls_result-sap_order_id.
ls_ret_msg-message_v2 = ls_result-posnr.
APPEND ls_ret_msg TO e_messages.
""" order &1 iten &2 bidding status change not allowed
lv_check = abap_true.
EXIT..
ENDIF.
ENDIF.
ENDIF.
IF ls_result-bidding_flag IS INITIAL AND ls_result-bidding_remark
IS INITIAL AND ls_result-bidding_status = 1.
ls_ret_msg-msgtype = zmvn_vc_if_constants=>gc_message_error.
ls_ret_msg-msgid = zmvn_vc_if_constants=>gc_message_id.
ls_ret_msg-msgnumber = 159.
ls_ret_msg-message_v1 = ls_result-sap_order_id.
ls_ret_msg-message_v2 = ls_result-posnr.
" order &1 iten &2 bidding flog is empty please add remark
APPEND ls_ret_msg TO e_messages.
lv_check = abap_true.
EXIT.
ENDIF.
READ TABLE c_selected TRANSPORTING NO FIELDS WITH KEY tabix = ls_s
elected-tabix.
IF sy-subrc <> 0.
ls_bid_save-sap_order_id = ls_result-sap_order_id.
ls_bid_save-posnr = ls_result-posnr.
ls_bid_save-bidding_status = ls_result-bidding_status.
ls_bid_save-bidding_remark = ls_result-bidding_remark.
ls_bid_save-bidding_flag = ls_result-bidding_flag.
APPEND ls_bid_save TO lt_bid_chan.
ELSE.
IF ls_result-bidding_flag IS INITIAL AND ls_result-
bidding_remark IS INITIAL.
ls_ret_msg-msgtype = zmvn_vc_if_constants=>gc_message_error.
ls_ret_msg-msgid = zmvn_vc_if_constants=>gc_message_id.
ls_ret_msg-msgnumber = 159.
ls_ret_msg-message_v1 = ls_result-sap_order_id.
ls_ret_msg-message_v2 = ls_result-posnr.
" order &1 iten &2 bidding flog is empty please add remark
APPEND ls_ret_msg TO e_messages.
lv_check = abap_true.
EXIT.
ELSEIF ls_result-bidding_flag IS INITIAL AND ls_result-
bidding_remark IS NOT INITIAL.
ls_bid_save-sap_order_id = ls_result-sap_order_id.
ls_bid_save-posnr = ls_result-posnr.
ls_bid_save-bidding_status = 3.
ls_bid_save-bidding_remark = ls_result-bidding_remark.
ls_bid_save-bidding_flag = ls_result-bidding_flag.
APPEND ls_bid_save TO lt_bid_chan.
ENDIF.
ls_bid_save-sap_order_id = ls_result-sap_order_id.
ls_bid_save-posnr = ls_result-posnr.
ls_bid_save-bidding_status = 2.
ls_bid_save-bidding_remark = ls_result-bidding_remark.
ls_bid_save-bidding_flag = ls_result-bidding_flag.
APPEND ls_bid_save TO lt_bid_chan.
ENDIF.
ENDLOOP.
IF lv_check <> abap_true.
CALL FUNCTION 'ZMVN_VC_WD_FM_SAVE'
EXPORTING
i_insert = lt_bid_chan.
IF sy-subrc = 0.
FREE c_selected.
ls_ret_msg-msgtype = zmvn_vc_if_constants=>gc_message_sucess.
ls_ret_msg-msgid = zmvn_vc_if_constants=>gc_message_id.
ls_ret_msg-msgnumber = 160.
" order &1 iten &2 bidding flog is empty please add remark
APPEND ls_ret_msg TO e_messages.
ENDIF.
ENDIF.
WHEN 'SELECT'.
LOOP AT c_result_tab ASSIGNING <fs_result_tab>.
* ls_selected-tabix = sy-tabix.
* ASSIGN <fs_result_tab> TO <fs_result_table>.
* IF <fs_result_table>-bidding_status = 1.
** APPEND ls_selected TO c_selected.
** READ TABLE c_selected TRANSPORTING NO FIELDS WITH KEY tabi
x = ls_selected-tabix.
** IF sy-subrc <> 0.
ASSIGN <fs_result_tab> TO <fs_result_table>.
IF <fs_result_table>-bidding_status = 1.
ls_selected-tabix = sy-tabix.
Insert ls_selected into table c_selected.
<fs_result_table>-bidding_flag = abap_true.
CLEAR ls_selected-tabix.
ENDIF.
ENDLOOP.
e_selected_changed = abap_true.
e_changes_processed = abap_true.
WHEN 'DESELECT'.
FREE c_selected.
LOOP AT c_result_tab ASSIGNING <fs_result_tab>.
ASSIGN <fs_result_tab> TO <fs_result_table>.
IF <fs_result_table>-bidding_status = 1.
<fs_result_table>-bidding_flag = abap_false.
ENDIF.
CLEAR ls_selected-tabix.
ENDLOOP.
***************************************End of Change -
Barun**********************************************
ENDCASE.
ENDCASE.
ENDMETHOD.
ZMVN_VC_WD_FM_SAVE
FUNCTION zmvn_vc_wd_fm_save.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_INSERT) TYPE ZMVN_TT_BID_SAVE
*"----------------------------------------------------------------------
DATA: lt_bid_insert TYPE zmvn_tt_bid_save,
lt_bid_update TYPE zmvn_tt_bid_save,
lt_bid_save TYPE zmvn_tt_bid_save,
ls_bid_save TYPE zmvn_bid_save.
SELECT * FROM zmvn_bid_save INTO TABLE lt_bid_save
FOR ALL ENTRIES IN i_insert
WHERE sap_order_id = i_insert-sap_order_id
AND posnr = i_insert-posnr.
IF sy-subrc <> 0.
LOOP AT i_insert INTO ls_bid_save.
ls_bid_save-created_by = sy-uname.
ls_bid_save-created_on = sy-datum.
ls_bid_save-created_at = sy-uzeit.
APPEND ls_bid_save TO lt_bid_insert.
ENDLOOP.
ELSE.
LOOP AT i_insert INTO ls_bid_save.
READ TABLE lt_bid_save TRANSPORTING NO FIELDS WITH KEY sap_order_id = ls
_bid_save-sap_order_id posnr = ls_bid_save-posnr.
IF sy-subrc = 0.
ls_bid_save-changed_by = sy-uname.
ls_bid_save-changed_on = sy-datum.
ls_bid_save-changed_at = sy-uzeit.
APPEND ls_bid_save TO lt_bid_update.
ELSE.
ls_bid_save-created_by = sy-uname.
ls_bid_save-created_on = sy-datum.
ls_bid_save-created_at = sy-uzeit.
APPEND ls_bid_save TO lt_bid_insert.
ENDIF.
ENDLOOP.
ENDIF.
IF lt_bid_insert is NOT INITIAL.
MODIFY zmvn_bid_save FROM TABLE lt_bid_insert.
ENDIF.
IF lt_bid_update is NOT INITIAL.
MODIFY zmvn_bid_save FROM TABLE lt_bid_update.
ENDIF.
ENDFUNCTION.