Step F first pass: 81/92 accepted; budget floor 60 calls; rejected slots moved for regeneration

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
Kral
2026-10-03 12:10:52 +02:00
parent d3250acfb8
commit 39769afce8
741 changed files with 40573 additions and 317 deletions

View File

@@ -0,0 +1,90 @@
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.
TYPES ty_rate TYPE p LENGTH 8 DECIMALS 2.
CLASS lcl_bowling DEFINITION.
PUBLIC SECTION.
METHODS calculate
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.
PRIVATE SECTION.
CONSTANTS:
c_lane_size TYPE i VALUE 6,
c_group_size TYPE i VALUE 12,
c_rate_weekday TYPE ty_rate VALUE '3.50',
c_rate_weekend TYPE ty_rate VALUE '5.00',
c_shoe_price TYPE ty_rate VALUE '2.00',
c_group_discount TYPE ty_rate VALUE '10.00'.
METHODS lanes_for
IMPORTING iv_players TYPE i
RETURNING VALUE(rv_lanes) TYPE i.
METHODS rate_for
IMPORTING iv_day TYPE i
RETURNING VALUE(rv_rate) TYPE ty_rate.
ENDCLASS.
CLASS lcl_bowling IMPLEMENTATION.
METHOD calculate.
DATA(lv_lanes) = lanes_for( iv_players ).
DATA(lv_rate) = rate_for( iv_day ).
DATA lv_sum TYPE p LENGTH 15 DECIMALS 2.
lv_sum = lv_lanes * iv_games * lv_rate.
IF iv_shoes = abap_true.
lv_sum = lv_sum + iv_players * c_shoe_price.
ENDIF.
ev_note = 'BOOKED'.
IF iv_players >= c_group_size.
lv_sum = lv_sum - c_group_discount.
ev_note = 'GROUP'.
ENDIF.
ev_fee = lv_sum.
ENDMETHOD.
METHOD lanes_for.
rv_lanes = iv_players DIV c_lane_size.
IF iv_players MOD c_lane_size > 0.
rv_lanes = rv_lanes + 1.
ENDIF.
ENDMETHOD.
METHOD rate_for.
IF iv_day > 5.
rv_rate = c_rate_weekend.
ELSE.
rv_rate = c_rate_weekday.
ENDIF.
ENDMETHOD.
ENDCLASS.
IF iv_players < 1 OR iv_games < 1.
RAISE invalid_input.
ENDIF.
DATA(lo_bowling) = NEW lcl_bowling( ).
lo_bowling->calculate(
EXPORTING
iv_players = iv_players
iv_games = iv_games
iv_day = iv_day
iv_shoes = iv_shoes
IMPORTING
ev_fee = ev_fee
ev_note = ev_note ).
ENDFUNCTION.