FUNCTION {{p}}trl_price IMPORTING iv_source_lang TYPE string iv_target_lang TYPE string iv_words TYPE i iv_express TYPE abap_bool EXPORTING ev_price TYPE decfloat34 EXCEPTIONS invalid_words. IF iv_words < 0. RAISE invalid_words. ENDIF. IF iv_words = 0. ev_price = 0. RETURN. ENDIF. DATA lv_rate TYPE decfloat34. IF ( iv_source_lang = 'EN' AND iv_target_lang = 'DE' ) OR ( iv_source_lang = 'DE' AND iv_target_lang = 'EN' ). lv_rate = '0.12'. ELSEIF ( iv_source_lang = 'EN' AND iv_target_lang = 'FR' ) OR ( iv_source_lang = 'FR' AND iv_target_lang = 'EN' ). lv_rate = '0.15'. ELSE. lv_rate = '0.20'. ENDIF. DATA lv_amount TYPE decfloat34. lv_amount = iv_words * lv_rate. IF iv_express = abap_true. lv_amount = lv_amount * '1.25'. ENDIF. ev_price = round( val = lv_amount dec = 2 mode = cl_abap_math=>round_half_up ). IF ev_price < 25. ev_price = 25. ENDIF. ENDFUNCTION.