Stage 2 summary at 50 accepted trajectories

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Kral
2026-10-05 18:02:52 +02:00
parent 332fb4601d
commit 5bcd1bf9cd
1230 changed files with 77563 additions and 33 deletions

View File

@@ -0,0 +1,64 @@
CLASS {{p}}studio_summary DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
BEGIN OF ty_attendance,
studio TYPE c LENGTH 4,
class_id TYPE c LENGTH 8,
class_type TYPE c LENGTH 10,
member_id TYPE c LENGTH 8,
fee TYPE p LENGTH 8 DECIMALS 2,
END OF ty_attendance,
tt_attendance TYPE STANDARD TABLE OF ty_attendance WITH EMPTY KEY,
BEGIN OF ty_summary,
class_type TYPE c LENGTH 10,
class_count TYPE i,
member_count TYPE i,
total_fee TYPE p LENGTH 8 DECIMALS 2,
END OF ty_summary,
tt_summary TYPE STANDARD TABLE OF ty_summary WITH EMPTY KEY.
METHODS summarize
IMPORTING it_attendance TYPE tt_attendance
RETURNING VALUE(rt_summary) TYPE tt_summary.
ENDCLASS.
CLASS {{p}}studio_summary IMPLEMENTATION.
METHOD summarize.
DATA lt_seen TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY studio class_id member_id.
DATA lt_class TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY studio class_id class_type.
DATA lt_member TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY class_type member_id.
DATA lt_groups TYPE HASHED TABLE OF ty_summary WITH UNIQUE KEY class_type.
LOOP AT it_attendance ASSIGNING FIELD-SYMBOL(<ls_attendance>).
IF <ls_attendance>-class_type IS INITIAL AND <ls_attendance>-fee <= 0.
CONTINUE.
ENDIF.
INSERT <ls_attendance> INTO TABLE lt_seen.
IF sy-subrc <> 0.
CONTINUE.
ENDIF.
ASSIGN lt_groups[ class_type = <ls_attendance>-class_type ]
TO FIELD-SYMBOL(<ls_group>).
IF sy-subrc <> 0.
INSERT VALUE ty_summary( class_type = <ls_attendance>-class_type )
INTO TABLE lt_groups ASSIGNING <ls_group>.
ENDIF.
<ls_group>-total_fee = <ls_group>-total_fee + <ls_attendance>-fee.
INSERT <ls_attendance> INTO TABLE lt_class.
IF sy-subrc = 0.
<ls_group>-class_count = <ls_group>-class_count + 1.
ENDIF.
INSERT <ls_attendance> INTO TABLE lt_member.
IF sy-subrc = 0.
<ls_group>-member_count = <ls_group>-member_count + 1.
ENDIF.
ENDLOOP.
rt_summary = lt_groups.
SORT rt_summary BY class_type.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,64 @@
CLASS {{p}}studio_summary DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
BEGIN OF ty_attendance,
studio TYPE c LENGTH 4,
class_id TYPE c LENGTH 8,
class_type TYPE c LENGTH 10,
member_id TYPE c LENGTH 8,
fee TYPE p LENGTH 8 DECIMALS 2,
END OF ty_attendance,
tt_attendance TYPE STANDARD TABLE OF ty_attendance WITH EMPTY KEY,
BEGIN OF ty_summary,
class_type TYPE c LENGTH 10,
class_count TYPE i,
member_count TYPE i,
total_fee TYPE p LENGTH 8 DECIMALS 2,
END OF ty_summary,
tt_summary TYPE STANDARD TABLE OF ty_summary WITH EMPTY KEY.
METHODS summarize
IMPORTING it_attendance TYPE tt_attendance
RETURNING VALUE(rt_summary) TYPE tt_summary.
ENDCLASS.
CLASS {{p}}studio_summary IMPLEMENTATION.
METHOD summarize.
DATA lt_seen TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY studio class_id member_id.
DATA lt_class TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY studio class_id class_type.
DATA lt_member TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY class_type member_id.
DATA lt_groups TYPE HASHED TABLE OF ty_summary WITH UNIQUE KEY class_type.
LOOP AT it_attendance ASSIGNING FIELD-SYMBOL(<ls_attendance>).
IF <ls_attendance>-class_type IS INITIAL OR <ls_attendance>-fee > 0.
CONTINUE.
ENDIF.
INSERT <ls_attendance> INTO TABLE lt_seen.
IF sy-subrc <> 0.
CONTINUE.
ENDIF.
ASSIGN lt_groups[ class_type = <ls_attendance>-class_type ]
TO FIELD-SYMBOL(<ls_group>).
IF sy-subrc <> 0.
INSERT VALUE ty_summary( class_type = <ls_attendance>-class_type )
INTO TABLE lt_groups ASSIGNING <ls_group>.
ENDIF.
<ls_group>-total_fee = <ls_group>-total_fee + <ls_attendance>-fee.
INSERT <ls_attendance> INTO TABLE lt_class.
IF sy-subrc = 0.
<ls_group>-class_count = <ls_group>-class_count + 1.
ENDIF.
INSERT <ls_attendance> INTO TABLE lt_member.
IF sy-subrc = 0.
<ls_group>-member_count = <ls_group>-member_count + 1.
ENDIF.
ENDLOOP.
rt_summary = lt_groups.
SORT rt_summary BY class_type.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,64 @@
CLASS {{p}}studio_summary DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
BEGIN OF ty_attendance,
studio TYPE c LENGTH 4,
class_id TYPE c LENGTH 8,
class_type TYPE c LENGTH 10,
member_id TYPE c LENGTH 8,
fee TYPE p LENGTH 8 DECIMALS 2,
END OF ty_attendance,
tt_attendance TYPE STANDARD TABLE OF ty_attendance WITH EMPTY KEY,
BEGIN OF ty_summary,
class_type TYPE c LENGTH 10,
class_count TYPE i,
member_count TYPE i,
total_fee TYPE p LENGTH 8 DECIMALS 2,
END OF ty_summary,
tt_summary TYPE STANDARD TABLE OF ty_summary WITH EMPTY KEY.
METHODS summarize
IMPORTING it_attendance TYPE tt_attendance
RETURNING VALUE(rt_summary) TYPE tt_summary.
ENDCLASS.
CLASS {{p}}studio_summary IMPLEMENTATION.
METHOD summarize.
DATA lt_seen TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY studio class_id member_id.
DATA lt_class TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY studio class_id class_type.
DATA lt_member TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY class_type member_id.
DATA lt_groups TYPE HASHED TABLE OF ty_summary WITH UNIQUE KEY class_type.
LOOP AT it_attendance ASSIGNING FIELD-SYMBOL(<ls_attendance>).
IF <ls_attendance>-class_type IS INITIAL OR <ls_attendance>-fee <= 0.
CONTINUE.
ENDIF.
INSERT <ls_attendance> INTO TABLE lt_seen.
IF sy-subrc <> 0.
CONTINUE.
ENDIF.
ASSIGN lt_groups[ class_type = <ls_attendance>-class_type ]
TO FIELD-SYMBOL(<ls_group>).
IF sy-subrc <> 0.
INSERT VALUE ty_summary( class_type = <ls_attendance>-class_type )
INTO TABLE lt_groups ASSIGNING <ls_group>.
ENDIF.
<ls_group>-total_fee = <ls_group>-total_fee - <ls_attendance>-fee.
INSERT <ls_attendance> INTO TABLE lt_class.
IF sy-subrc = 0.
<ls_group>-class_count = <ls_group>-class_count + 1.
ENDIF.
INSERT <ls_attendance> INTO TABLE lt_member.
IF sy-subrc = 0.
<ls_group>-member_count = <ls_group>-member_count + 1.
ENDIF.
ENDLOOP.
rt_summary = lt_groups.
SORT rt_summary BY class_type.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,64 @@
CLASS {{p}}studio_summary DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
BEGIN OF ty_attendance,
studio TYPE c LENGTH 4,
class_id TYPE c LENGTH 8,
class_type TYPE c LENGTH 10,
member_id TYPE c LENGTH 8,
fee TYPE p LENGTH 8 DECIMALS 2,
END OF ty_attendance,
tt_attendance TYPE STANDARD TABLE OF ty_attendance WITH EMPTY KEY,
BEGIN OF ty_summary,
class_type TYPE c LENGTH 10,
class_count TYPE i,
member_count TYPE i,
total_fee TYPE p LENGTH 8 DECIMALS 2,
END OF ty_summary,
tt_summary TYPE STANDARD TABLE OF ty_summary WITH EMPTY KEY.
METHODS summarize
IMPORTING it_attendance TYPE tt_attendance
RETURNING VALUE(rt_summary) TYPE tt_summary.
ENDCLASS.
CLASS {{p}}studio_summary IMPLEMENTATION.
METHOD summarize.
DATA lt_seen TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY studio class_id member_id.
DATA lt_class TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY studio class_id class_type.
DATA lt_member TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY class_type member_id.
DATA lt_groups TYPE HASHED TABLE OF ty_summary WITH UNIQUE KEY class_type.
LOOP AT it_attendance ASSIGNING FIELD-SYMBOL(<ls_attendance>).
IF <ls_attendance>-class_type IS INITIAL OR <ls_attendance>-fee <= 0.
CONTINUE.
ENDIF.
INSERT <ls_attendance> INTO TABLE lt_seen.
IF sy-subrc <> 0.
CONTINUE.
ENDIF.
ASSIGN lt_groups[ class_type = <ls_attendance>-class_type ]
TO FIELD-SYMBOL(<ls_group>).
IF sy-subrc <> 0.
INSERT VALUE ty_summary( class_type = <ls_attendance>-class_type )
INTO TABLE lt_groups ASSIGNING <ls_group>.
ENDIF.
<ls_group>-total_fee = <ls_group>-total_fee + <ls_attendance>-fee.
INSERT <ls_attendance> INTO TABLE lt_class.
IF sy-subrc = 0.
<ls_group>-class_count = <ls_group>-class_count - 1.
ENDIF.
INSERT <ls_attendance> INTO TABLE lt_member.
IF sy-subrc = 0.
<ls_group>-member_count = <ls_group>-member_count + 1.
ENDIF.
ENDLOOP.
rt_summary = lt_groups.
SORT rt_summary BY class_type.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,64 @@
CLASS {{p}}studio_summary DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
BEGIN OF ty_attendance,
studio TYPE c LENGTH 4,
class_id TYPE c LENGTH 8,
class_type TYPE c LENGTH 10,
member_id TYPE c LENGTH 8,
fee TYPE p LENGTH 8 DECIMALS 2,
END OF ty_attendance,
tt_attendance TYPE STANDARD TABLE OF ty_attendance WITH EMPTY KEY,
BEGIN OF ty_summary,
class_type TYPE c LENGTH 10,
class_count TYPE i,
member_count TYPE i,
total_fee TYPE p LENGTH 8 DECIMALS 2,
END OF ty_summary,
tt_summary TYPE STANDARD TABLE OF ty_summary WITH EMPTY KEY.
METHODS summarize
IMPORTING it_attendance TYPE tt_attendance
RETURNING VALUE(rt_summary) TYPE tt_summary.
ENDCLASS.
CLASS {{p}}studio_summary IMPLEMENTATION.
METHOD summarize.
DATA lt_seen TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY studio class_id member_id.
DATA lt_class TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY studio class_id class_type.
DATA lt_member TYPE HASHED TABLE OF ty_attendance
WITH UNIQUE KEY class_type member_id.
DATA lt_groups TYPE HASHED TABLE OF ty_summary WITH UNIQUE KEY class_type.
LOOP AT it_attendance ASSIGNING FIELD-SYMBOL(<ls_attendance>).
IF <ls_attendance>-class_type IS INITIAL OR <ls_attendance>-fee <= 0.
CONTINUE.
ENDIF.
INSERT <ls_attendance> INTO TABLE lt_seen.
IF sy-subrc <> 0.
CONTINUE.
ENDIF.
ASSIGN lt_groups[ class_type = <ls_attendance>-class_type ]
TO FIELD-SYMBOL(<ls_group>).
IF sy-subrc <> 0.
INSERT VALUE ty_summary( class_type = <ls_attendance>-class_type )
INTO TABLE lt_groups ASSIGNING <ls_group>.
ENDIF.
<ls_group>-total_fee = <ls_group>-total_fee + <ls_attendance>-fee.
INSERT <ls_attendance> INTO TABLE lt_class.
IF sy-subrc = 0.
<ls_group>-class_count = <ls_group>-class_count + 1.
ENDIF.
INSERT <ls_attendance> INTO TABLE lt_member.
IF sy-subrc = 0.
<ls_group>-member_count = <ls_group>-member_count - 1.
ENDIF.
ENDLOOP.
rt_summary = lt_groups.
SORT rt_summary BY class_type.
ENDMETHOD.
ENDCLASS.