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.