Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
45 lines
876 B
ABAP
45 lines
876 B
ABAP
FUNCTION {{p}}groom_fee
|
|
IMPORTING
|
|
iv_size TYPE string
|
|
iv_long_hair TYPE abap_bool
|
|
iv_weekend TYPE abap_bool
|
|
iv_channel TYPE string
|
|
EXPORTING
|
|
ev_skip TYPE abap_bool
|
|
CHANGING
|
|
cv_fee TYPE decfloat34
|
|
EXCEPTIONS
|
|
invalid_size.
|
|
|
|
DATA lv_base TYPE decfloat34.
|
|
|
|
ev_skip = abap_false.
|
|
|
|
CASE iv_size.
|
|
WHEN 'S'.
|
|
lv_base = '26.50'.
|
|
WHEN 'M'.
|
|
lv_base = '42.50'.
|
|
WHEN 'L'.
|
|
lv_base = '64.50'.
|
|
WHEN OTHERS.
|
|
RAISE invalid_size.
|
|
ENDCASE.
|
|
|
|
IF iv_channel = 'PARTNER'.
|
|
ev_skip = abap_true.
|
|
RETURN.
|
|
ENDIF.
|
|
|
|
cv_fee = lv_base.
|
|
IF iv_long_hair = abap_true.
|
|
cv_fee = cv_fee - round( val = lv_base * 15 / 100
|
|
dec = 2
|
|
mode = cl_abap_math=>round_half_up ).
|
|
ENDIF.
|
|
IF iv_weekend = abap_true.
|
|
cv_fee = cv_fee + 10.
|
|
ENDIF.
|
|
|
|
ENDFUNCTION.
|