FUNCTION {{p}}repair_fee IMPORTING iv_repair_type TYPE string iv_hours TYPE decfloat34 iv_parts_cost TYPE decfloat34 iv_member TYPE abap_bool EXPORTING ev_labour_fee TYPE decfloat34 ev_total_fee TYPE decfloat34 EXCEPTIONS invalid_hours. DATA lv_rate TYPE decfloat34. DATA lv_discount TYPE decfloat34. IF iv_hours < 0. RAISE invalid_hours. ENDIF. CASE iv_repair_type. WHEN 'BR'. lv_rate = 60. WHEN 'GE'. lv_rate = 45. WHEN 'WH'. lv_rate = 30. WHEN OTHERS. lv_rate = 40. ENDCASE. ev_labour_fee = round( val = iv_hours * lv_rate dec = 2 ). IF iv_member = abap_true. lv_discount = round( val = ev_labour_fee * 10 / 100 dec = 2 ). ev_labour_fee = ev_labour_fee - lv_discount. ENDIF. ev_total_fee = ev_labour_fee + iv_parts_cost. IF ev_total_fee < 25. ev_total_fee = 25. ENDIF. ENDFUNCTION.