FUNCTION {{p}}ad_price IMPORTING iv_lines TYPE i iv_insertions TYPE i iv_photo TYPE abap_bool EXPORTING ev_price TYPE decfloat34 EXCEPTIONS invalid_lines invalid_insertions. CONSTANTS lc_line_rate TYPE decfloat34 VALUE '12.45'. CONSTANTS lc_photo_fee TYPE decfloat34 VALUE '25.00'. CONSTANTS lc_min_price TYPE decfloat34 VALUE '20.00'. DATA lv_price TYPE decfloat34. DATA lv_discount TYPE decfloat34. IF iv_lines < 1. RAISE invalid_lines. ENDIF. IF iv_insertions < 1. RAISE invalid_insertions. ENDIF. lv_price = iv_lines * lc_line_rate. IF iv_photo = abap_true. lv_price = lv_price + lc_photo_fee. ENDIF. lv_discount = 0. IF iv_insertions >= 6. lv_discount = 20. ELSEIF iv_insertions >= 3. lv_discount = 10. ENDIF. lv_price = lv_price * ( 100 - lv_discount ) / 100. lv_price = round( val = lv_price dec = 3 ). IF lv_price < lc_min_price. lv_price = lc_min_price. ENDIF. ev_price = lv_price. ENDFUNCTION.