Files
abap-llm/tasks_gen/eval/G0156/faulty/m0_repair_fee.func.abap

45 lines
923 B
ABAP

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.