Files
abap-llm/tasks_gen/eval/G0135/seed/pool_fee.clas.abap

69 lines
1.5 KiB
ABAP

CLASS {{p}}pool_fee DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_ticket TYPE c LENGTH 1.
TYPES ty_amount TYPE p LENGTH 8 DECIMALS 2.
METHODS calculate_fee
IMPORTING iv_ticket TYPE ty_ticket
iv_minutes TYPE i
iv_sauna TYPE abap_bool
RETURNING VALUE(rv_fee) TYPE ty_amount.
ENDCLASS.
CLASS {{p}}pool_fee IMPLEMENTATION.
METHOD calculate_fee.
DATA: lv_fee TYPE ty_amount,
lv_base TYPE ty_amount,
lv_min TYPE i,
lv_blocks TYPE i,
lv_i TYPE i,
lv_help TYPE ty_amount.
" Eintrittspreis berechnen
CLEAR lv_fee.
lv_min = iv_minutes.
IF lv_min < 0.
lv_min = 0.
ENDIF.
" Grundpreis je Ticketart
IF iv_ticket = 'A'.
lv_base = '6.50'.
ELSEIF iv_ticket = 'C'.
lv_base = '3.50'.
ELSEIF iv_ticket = 'S'.
lv_base = '4.50'.
ELSEIF iv_ticket = 'F'.
lv_base = '15.00'.
ELSE.
CLEAR lv_base.
ENDIF.
lv_fee = lv_base.
" Die ersten 60 Minuten sind frei
IF lv_min > 60.
CLEAR lv_blocks.
lv_i = 60.
WHILE lv_i < lv_min.
lv_i = lv_i + 30.
lv_blocks = lv_blocks + 1.
ENDWHILE.
lv_help = lv_blocks * 1.
lv_fee = lv_fee + lv_help.
ENDIF.
" Sauna
IF iv_sauna = 'X'.
IF iv_ticket = 'C'.
" Kinder zahlen keine Sauna
ELSEIF iv_ticket = 'F'.
lv_fee = lv_fee + 8.
ELSE.
lv_fee = lv_fee + 5.
ENDIF.
ENDIF.
rv_fee = lv_fee.
ENDMETHOD.
ENDCLASS.