FUNCTION {{p}}tattoo_fee IMPORTING iv_style TYPE string iv_sessions TYPE i EXPORTING ev_deposit TYPE abap_bool CHANGING cv_fee TYPE decfloat34 EXCEPTIONS invalid_sessions. CONSTANTS lc_first_line TYPE decfloat34 VALUE '133.33'. CONSTANTS lc_first_shade TYPE decfloat34 VALUE '97.77'. CONSTANTS lc_min_line TYPE decfloat34 VALUE '150.00'. CONSTANTS lc_max_line TYPE decfloat34 VALUE '800.00'. CONSTANTS lc_min_shade TYPE decfloat34 VALUE '110.00'. CONSTANTS lc_max_shade TYPE decfloat34 VALUE '600.00'. CONSTANTS lc_long_project TYPE i VALUE 6. DATA lv_first TYPE decfloat34. DATA lv_minimum TYPE decfloat34. DATA lv_maximum TYPE decfloat34. DATA lv_further TYPE decfloat34. ev_deposit = abap_false. IF iv_sessions < 1. RAISE invalid_sessions. ENDIF. CASE iv_style. WHEN 'LINE'. lv_first = lc_first_line. lv_minimum = lc_min_line. lv_maximum = lc_max_line. WHEN 'SHADE'. lv_first = lc_first_shade. lv_minimum = lc_min_shade. lv_maximum = lc_max_shade. WHEN OTHERS. lv_first = 0. lv_minimum = 0. lv_maximum = 0. ENDCASE. lv_further = round( val = lv_first / 2 dec = 2 mode = cl_abap_math=>round_half_up ). cv_fee = lv_first + ( iv_sessions - 1 ) * lv_further. IF cv_fee < lv_minimum. cv_fee = lv_minimum. ELSEIF cv_fee > lv_maximum. cv_fee = lv_maximum. ENDIF. IF iv_sessions > lc_long_project. ev_deposit = abap_true. ENDIF. ENDFUNCTION.