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,42 @@
CLASS {{p}}green_test DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
CLASS-DATA go_env TYPE REF TO if_cds_test_environment.
CLASS-METHODS class_setup.
CLASS-METHODS class_teardown.
METHODS setup.
METHODS junior_weekday_fee FOR TESTING.
METHODS junior_weekend_fee FOR TESTING.
ENDCLASS.
CLASS {{p}}green_test IMPLEMENTATION.
METHOD class_setup.
go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_GREEN_FEE' ).
ENDMETHOD.
METHOD class_teardown.
go_env->destroy( ).
ENDMETHOD.
METHOD setup.
DATA lt_mem TYPE STANDARD TABLE OF {{p}}member WITH EMPTY KEY.
DATA lt_tee TYPE STANDARD TABLE OF {{p}}tee WITH EMPTY KEY.
go_env->clear_doubles( ).
lt_mem = VALUE #( ( member_id = 'M1' member_kind = 'J' member_name = 'Junior' ) ).
lt_tee = VALUE #( ( tee_id = 'T01' member_id = 'M1' day_kind = 'W' player_count = 1 )
( tee_id = 'T02' member_id = 'M1' day_kind = 'E' player_count = 2 ) ).
go_env->insert_test_data( lt_mem ).
go_env->insert_test_data( lt_tee ).
ENDMETHOD.
METHOD junior_weekday_fee.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T01' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '8.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
METHOD junior_weekend_fee.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T02' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '24.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,29 @@
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Green fee per tee time'
define view entity {{P}}I_GREEN_FEE
as select from {{p}}tee as tee
inner join {{p}}member as mem on mem.member_id = tee.member_id
{
key tee.tee_id as tee_id,
tee.member_id as member_id,
mem.member_kind as member_kind,
tee.day_kind as day_kind,
tee.player_count as player_count,
case
when mem.member_kind = 'J' and tee.day_kind = 'W'
then cast( 8 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'J'
then cast( 12 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' and tee.day_kind = 'W'
then cast( 20 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' and tee.day_kind = 'E'
then cast( 30 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind = 'W'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind = 'E'
then cast( 55 as abap.dec(7,2) ) * tee.player_count
else cast( 60 as abap.dec(7,2) ) * tee.player_count
end as green_fee
}