Files
abap-llm/tasks_gen/train/G1006/faulty/m4_auc_premium.func.abap

42 lines
989 B
ABAP

FUNCTION {{p}}auc_premium
IMPORTING
iv_lot_type TYPE string
iv_hammer TYPE decfloat34
iv_channel TYPE string
EXPORTING
ev_skip TYPE abap_bool
CHANGING
cv_fee TYPE decfloat34
EXCEPTIONS
invalid_hammer.
DATA lv_premium TYPE decfloat34.
ev_skip = abap_false.
IF iv_hammer < 0.
RAISE invalid_hammer.
ENDIF.
IF iv_lot_type = 'C'.
ev_skip = abap_true.
RETURN.
ENDIF.
IF iv_hammer <= 1000.
lv_premium = iv_hammer * 20 / 100.
ELSEIF iv_hammer <= 10000.
lv_premium = 1000 * 20 / 100 + ( iv_hammer - 1000 ) * 12 / 100.
ELSE.
lv_premium = 1000 * 20 / 100 + 9000 * 12 / 100 + ( iv_hammer - 10000 ) * 6 / 100.
ENDIF.
IF iv_channel = 'O'.
lv_premium = lv_premium / 90 / 100.
ENDIF.
lv_premium = round( val = lv_premium dec = 2 mode = cl_abap_math=>round_half_up ).
IF lv_premium < 5.
lv_premium = 5.
ELSEIF lv_premium > 5000.
lv_premium = 5000.
ENDIF.
cv_fee = lv_premium.
ENDFUNCTION.