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,13 @@
@EndUserText.label : 'Car wash visits'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table {{p}}carwash {
key client : abap.clnt not null;
key wash_id : abap.int4 not null;
wash_prog : abap.char(4);
wash_date : abap.dats;
price : abap.dec(15,2);
cust_type : abap.char(3);
}

View File

@@ -0,0 +1,79 @@
REPORT {{p}}carwash_rpt.
TABLES: {{p}}carwash, {{p}}washpgm.
PARAMETERS: p_from TYPE d OBLIGATORY,
p_to TYPE d OBLIGATORY.
SELECT-OPTIONS: s_prog FOR {{p}}carwash-wash_prog.
TYPES: BEGIN OF ty_out,
wash_prog TYPE {{p}}carwash-wash_prog,
prog_text TYPE {{p}}washpgm-prog_text,
washes TYPE i,
revenue TYPE {{p}}carwash-price,
vip_washes TYPE i,
vip_revenue TYPE {{p}}carwash-price,
END OF ty_out.
TYPES: BEGIN OF ty_data,
wash_prog TYPE {{p}}carwash-wash_prog,
price TYPE {{p}}carwash-price,
cust_type TYPE {{p}}carwash-cust_type,
END OF ty_data.
DATA: gt_out TYPE STANDARD TABLE OF ty_out WITH HEADER LINE,
gt_data TYPE STANDARD TABLE OF ty_data WITH HEADER LINE.
DATA: gv_text TYPE {{p}}washpgm-prog_text,
gv_alv TYPE REF TO cl_salv_table.
START-OF-SELECTION.
SELECT * FROM {{p}}carwash INTO CORRESPONDING FIELDS OF TABLE gt_data
WHERE wash_date >= p_from AND wash_date <= p_to.
LOOP AT gt_data.
IF gt_data-wash_prog IN s_prog.
READ TABLE gt_out WITH KEY wash_prog = gt_data-wash_prog.
IF sy-subrc = 0.
gt_out-washes = gt_out-washes + 1.
gt_out-revenue = gt_out-revenue + gt_data-price.
IF gt_data-cust_type = 'VIP'.
gt_out-vip_washes = gt_out-vip_washes + 1.
gt_out-vip_revenue = gt_out-vip_revenue + gt_data-price.
ENDIF.
MODIFY gt_out INDEX sy-tabix.
ELSE.
CLEAR gt_out.
gt_out-wash_prog = gt_data-wash_prog.
gt_out-washes = 1.
gt_out-revenue = gt_data-price.
IF gt_data-cust_type = 'VIP'.
gt_out-vip_washes = 1.
gt_out-vip_revenue = gt_data-price.
ELSE.
gt_out-vip_washes = 0.
gt_out-vip_revenue = 0.
ENDIF.
APPEND gt_out.
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT gt_out.
CLEAR gv_text.
SELECT SINGLE prog_text FROM {{p}}washpgm INTO gv_text
WHERE wash_prog = gt_out-wash_prog.
gt_out-prog_text = gv_text.
MODIFY gt_out.
ENDLOOP.
SORT gt_out BY revenue DESCENDING.
TRY.
cl_salv_table=>factory(
IMPORTING r_salv_table = gv_alv
CHANGING t_table = gt_out[] ).
gv_alv->display( ).
CATCH cx_salv_msg.
ENDTRY.

View File

@@ -0,0 +1,25 @@
CLASS {{p}}carwash_seed DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
ENDCLASS.
CLASS {{p}}carwash_seed IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
DELETE FROM {{p}}carwash.
DELETE FROM {{p}}washpgm.
INSERT {{p}}washpgm FROM TABLE @( VALUE #(
( wash_prog = 'BAS' prog_text = 'Basic wash' )
( wash_prog = 'DLX' prog_text = 'Deluxe wash' )
( wash_prog = 'PRM' prog_text = 'Premium wash' ) ) ).
INSERT {{p}}carwash FROM TABLE @( VALUE #(
( wash_id = 1 wash_prog = 'BAS' wash_date = '20260105' price = '10.00' cust_type = 'STD' )
( wash_id = 2 wash_prog = 'BAS' wash_date = '20260106' price = '10.00' cust_type = 'VIP' )
( wash_id = 3 wash_prog = 'DLX' wash_date = '20260107' price = '20.00' cust_type = 'STD' )
( wash_id = 4 wash_prog = 'DLX' wash_date = '20260108' price = '20.00' cust_type = 'VIP' )
( wash_id = 5 wash_prog = 'DLX' wash_date = '20260109' price = '20.00' cust_type = 'STD' )
( wash_id = 6 wash_prog = 'PRM' wash_date = '20260110' price = '50.00' cust_type = 'VIP' )
( wash_id = 7 wash_prog = 'PRM' wash_date = '20260215' price = '50.00' cust_type = 'STD' )
( wash_id = 8 wash_prog = 'BAS' wash_date = '20260220' price = '10.00' cust_type = 'STD' ) ) ).
out->write( sy-dbcnt ).
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,10 @@
@EndUserText.label : 'Wash programs'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table {{p}}washpgm {
key client : abap.clnt not null;
key wash_prog : abap.char(4) not null;
prog_text : abap.char(30);
}