Files
abap-llm/tasks_gen/eval/G0189/seed/theme_fee.func.abap

54 lines
1.1 KiB
ABAP

FUNCTION {{p}}theme_fee
IMPORTING
iv_visitor_type TYPE string
iv_tickets TYPE i
iv_date TYPE d
EXPORTING
ev_unit_price TYPE decfloat34
ev_total_price TYPE decfloat34
ev_discount TYPE decfloat34
EXCEPTIONS
invalid_visitor_type
invalid_tickets.
DATA lv_base_price TYPE decfloat34.
DATA lv_gross TYPE decfloat34.
DATA lv_discount_pct TYPE decfloat34.
IF iv_tickets <= 0.
RAISE invalid_tickets.
ENDIF.
CASE iv_visitor_type.
WHEN 'ADULT'.
lv_base_price = '45.50'.
WHEN 'CHILD'.
lv_base_price = '25.25'.
WHEN 'SENIOR'.
lv_base_price = '30.75'.
WHEN 'FAMILY'.
lv_base_price = '40.00'.
WHEN OTHERS.
RAISE invalid_visitor_type.
ENDCASE.
" Peak season surcharge
IF iv_date IS NOT INITIAL.
lv_base_price = lv_base_price + 5.
ENDIF.
" Group discount
IF iv_tickets >= 10.
lv_discount_pct = 10.
ENDIF.
IF iv_tickets > 20.
lv_discount_pct = 15.
ENDIF.
lv_gross = lv_base_price * iv_tickets.
ev_discount = lv_gross * lv_discount_pct / 100.
ev_total_price = lv_gross - ev_discount.
ev_unit_price = lv_base_price.
ENDFUNCTION.