Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
51 lines
938 B
ABAP
51 lines
938 B
ABAP
FUNCTION {{p}}bowl_fee_old
|
|
IMPORTING
|
|
iv_players TYPE i
|
|
iv_games TYPE i
|
|
iv_day TYPE i
|
|
iv_shoes TYPE abap_bool
|
|
EXPORTING
|
|
ev_fee TYPE decfloat34
|
|
ev_note TYPE string
|
|
EXCEPTIONS
|
|
invalid_input.
|
|
|
|
DATA: lv_lanes TYPE i,
|
|
lv_rate TYPE p LENGTH 8 DECIMALS 2,
|
|
lv_sum TYPE p LENGTH 15 DECIMALS 2.
|
|
|
|
IF iv_players < 1.
|
|
RAISE invalid_input.
|
|
ENDIF.
|
|
IF iv_games < 1.
|
|
RAISE invalid_input.
|
|
ENDIF.
|
|
|
|
COMPUTE lv_lanes = iv_players DIV 6.
|
|
IF iv_players MOD 6 > 0.
|
|
ADD 1 TO lv_lanes.
|
|
ENDIF.
|
|
|
|
IF iv_day > 5.
|
|
MOVE '5.00' TO lv_rate.
|
|
ELSE.
|
|
MOVE '3.50' TO lv_rate.
|
|
ENDIF.
|
|
|
|
COMPUTE lv_sum = lv_lanes * iv_games * lv_rate.
|
|
|
|
IF iv_shoes = 'X'.
|
|
COMPUTE lv_sum = lv_sum + iv_players * '2.00'.
|
|
ENDIF.
|
|
|
|
ev_note = 'BOOKED'.
|
|
|
|
IF iv_players >= 12.
|
|
COMPUTE lv_sum = lv_sum - '10.00'.
|
|
ev_note = 'GROUP'.
|
|
ENDIF.
|
|
|
|
ev_fee = lv_sum.
|
|
|
|
ENDFUNCTION.
|