Files
abap-llm/tasks_gen/eval/G0143/seed/bowl_fee_old.func.abap

68 lines
1.2 KiB
ABAP

FUNCTION {{p}}bowl_fee_old
IMPORTING
iv_lanes TYPE i
iv_minutes TYPE i
iv_players TYPE i
iv_day TYPE string
iv_start TYPE t
iv_member TYPE abap_bool
EXPORTING
ev_fee TYPE decfloat34
EXCEPTIONS
invalid_input.
DATA: lv_a TYPE decfloat34,
lv_b TYPE decfloat34,
lv_c TYPE decfloat34,
lv_slots TYPE i,
lv_day TYPE string,
lv_shoe TYPE decfloat34 VALUE '2.5'.
IF iv_lanes < 1.
RAISE invalid_input.
ELSE.
IF iv_minutes < 1.
RAISE invalid_input.
ELSE.
IF iv_players < 0.
RAISE invalid_input.
ENDIF.
ENDIF.
ENDIF.
lv_slots = iv_minutes / 30.
IF lv_slots * 30 < iv_minutes.
lv_slots = lv_slots + 1.
ENDIF.
lv_a = iv_lanes * lv_slots * 6.
IF iv_start >= '180000'.
IF iv_start < '220000'.
lv_a = lv_a * 12 / 10.
ENDIF.
ENDIF.
lv_day = iv_day.
IF lv_day = 'SAT'.
lv_a = lv_a * 115 / 100.
ELSE.
IF lv_day = 'SUN'.
lv_a = lv_a * 115 / 100.
ENDIF.
ENDIF.
lv_b = iv_players * lv_shoe.
lv_c = lv_a + lv_b.
IF iv_member = 'X'.
IF lv_c >= 20.
lv_c = lv_c * 9 / 10.
ENDIF.
ENDIF.
ev_fee = round( val = lv_c dec = 2 mode = cl_abap_math=>round_half_up ).
ENDFUNCTION.