Files
abap-llm/tasks_gen/train/G1098/faulty/m4_drv_fee.func.abap
2026-10-05 18:02:52 +02:00

57 lines
1018 B
ABAP

FUNCTION {{p}}drv_fee
IMPORTING
iv_lesson_type TYPE string
iv_vehicle TYPE string
iv_minutes TYPE i
EXPORTING
ev_block TYPE abap_bool
CHANGING
cv_fee TYPE decfloat34
EXCEPTIONS
invalid_minutes.
DATA lv_rate TYPE decfloat34.
DATA lv_surcharge TYPE decfloat34.
ev_block = abap_false.
cv_fee = 0.
IF iv_minutes < 1.
RAISE invalid_minutes.
ENDIF.
CASE iv_vehicle.
WHEN 'CAR'.
lv_rate = '1.20'.
WHEN 'TRUCK'.
lv_rate = '2.50'.
WHEN 'MOTORCYCLE'.
lv_rate = '0.90'.
WHEN OTHERS.
RETURN.
ENDCASE.
cv_fee = lv_rate * iv_minutes.
CASE iv_lesson_type.
WHEN 'NIGHT'.
lv_surcharge = '0.25'.
WHEN 'MOTORWAY'.
lv_surcharge = '0.40'.
WHEN OTHERS.
lv_surcharge = 0.
ENDCASE.
cv_fee = cv_fee * ( 1 + lv_surcharge ).
cv_fee = round( val = cv_fee dec = 2 ).
IF cv_fee < 15.
cv_fee = 15.
ENDIF.
IF iv_minutes <= 120.
ev_block = abap_true.
ENDIF.
ENDFUNCTION.