Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
32 lines
645 B
ABAP
32 lines
645 B
ABAP
FUNCTION {{p}}kart_fee
|
|
IMPORTING
|
|
iv_laps TYPE i
|
|
iv_driver_age TYPE i
|
|
iv_member TYPE abap_bool
|
|
EXPORTING
|
|
ev_discount TYPE abap_bool
|
|
CHANGING
|
|
cv_fee TYPE decfloat34
|
|
EXCEPTIONS
|
|
invalid_laps.
|
|
|
|
ev_discount = abap_false.
|
|
IF iv_laps < 1.
|
|
RAISE invalid_laps.
|
|
ENDIF.
|
|
IF iv_driver_age < 18.
|
|
cv_fee = 15.
|
|
ELSE.
|
|
cv_fee = CONV decfloat34( iv_laps ) * 1.5.
|
|
IF iv_member = abap_true.
|
|
cv_fee = cv_fee * 9 / 10.
|
|
ev_discount = abap_true.
|
|
ENDIF.
|
|
ENDIF.
|
|
IF cv_fee < 20.
|
|
cv_fee = 20.
|
|
ENDIF.
|
|
cv_fee = round( val = cv_fee dec = 2 mode = cl_abap_math=>round_half_up ).
|
|
|
|
ENDFUNCTION.
|