Files
abap-llm/tasks_gen/eval/G0152/faulty/m2_trl_price.func.abap

46 lines
996 B
ABAP

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.