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,74 @@
REPORT {{p}}bakery_bill_old.
DATA: gv_shop_id TYPE {{p}}shop-shop_id.
PARAMETERS p_from TYPE d OBLIGATORY.
PARAMETERS p_to TYPE d OBLIGATORY.
SELECT-OPTIONS s_shop FOR gv_shop_id.
TYPES: BEGIN OF ty_line,
shop_id TYPE {{p}}shop-shop_id,
shop_name TYPE {{p}}shop-shop_name,
loaves TYPE i,
rolls TYPE i,
total TYPE {{p}}shop-loaf_price,
END OF ty_line.
DATA: gt_shop TYPE STANDARD TABLE OF {{p}}shop WITH HEADER LINE,
gt_deliv TYPE STANDARD TABLE OF {{p}}deliv WITH HEADER LINE,
gt_out TYPE STANDARD TABLE OF ty_line WITH HEADER LINE.
START-OF-SELECTION.
PERFORM read_shops.
PERFORM read_deliveries.
PERFORM calc_totals.
PERFORM display.
FORM read_shops.
SELECT * FROM {{p}}shop INTO TABLE gt_shop
WHERE shop_id IN s_shop
AND is_active = 'X'.
SORT gt_shop BY shop_id.
ENDFORM.
FORM read_deliveries.
SELECT * FROM {{p}}deliv INTO TABLE gt_deliv
WHERE deliv_date >= p_from
AND deliv_date <= p_to.
SORT gt_deliv BY shop_id.
ENDFORM.
FORM calc_totals.
DATA: ls_out TYPE ty_line,
lv_fee TYPE {{p}}shop-loaf_price.
CLEAR gt_out.
LOOP AT gt_shop.
CLEAR ls_out.
ls_out-shop_id = gt_shop-shop_id.
ls_out-shop_name = gt_shop-shop_name.
LOOP AT gt_deliv WHERE shop_id = gt_shop-shop_id.
IF gt_deliv-loaves + gt_deliv-rolls > 0.
ls_out-loaves = ls_out-loaves + gt_deliv-loaves.
ls_out-rolls = ls_out-rolls + gt_deliv-rolls.
lv_fee = gt_deliv-loaves * gt_shop-loaf_price
+ gt_deliv-rolls * gt_shop-roll_price
+ gt_shop-deliv_fee.
ls_out-total = ls_out-total + lv_fee.
ENDIF.
ENDLOOP.
IF ls_out-loaves + ls_out-rolls > 0.
APPEND ls_out TO gt_out.
ENDIF.
ENDLOOP.
SORT gt_out BY total DESCENDING shop_id ASCENDING.
ENDFORM.
FORM display.
DATA lo_alv TYPE REF TO cl_salv_table.
TRY.
cl_salv_table=>factory( IMPORTING r_salv_table = lo_alv
CHANGING t_table = gt_out[] ).
lo_alv->display( ).
CATCH cx_salv_msg.
ENDTRY.
ENDFORM.

View File

@@ -0,0 +1,27 @@
CLASS {{p}}bakery_seed DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
ENDCLASS.
CLASS {{p}}bakery_seed IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
DELETE FROM {{p}}deliv.
DELETE FROM {{p}}shop.
INSERT {{p}}shop FROM TABLE @( VALUE #(
( shop_id = 'S1' shop_name = 'North Shop' loaf_price = '2.00' roll_price = '0.50' deliv_fee = '1.50' is_active = 'X' )
( shop_id = 'S2' shop_name = 'South Shop' loaf_price = '3.00' roll_price = '1.00' deliv_fee = '2.00' is_active = 'X' )
( shop_id = 'S3' shop_name = 'Closed Shop' loaf_price = '1.00' roll_price = '0.20' deliv_fee = '0.50' is_active = ' ' ) ) ).
INSERT {{p}}deliv FROM TABLE @( VALUE #(
( deliv_id = 1 shop_id = 'S1' deliv_date = '20260110' loaves = 10 rolls = 20 )
( deliv_id = 2 shop_id = 'S1' deliv_date = '20260112' loaves = 5 rolls = 0 )
( deliv_id = 3 shop_id = 'S2' deliv_date = '20260111' loaves = 4 rolls = 10 )
( deliv_id = 4 shop_id = 'S2' deliv_date = '20260215' loaves = 20 rolls = 0 )
( deliv_id = 5 shop_id = 'S3' deliv_date = '20260110' loaves = 6 rolls = 6 )
( deliv_id = 6 shop_id = 'S1' deliv_date = '20260120' loaves = 0 rolls = 0 )
( deliv_id = 7 shop_id = 'S2' deliv_date = '20251220' loaves = 2 rolls = 2 ) ) ).
out->write( sy-dbcnt ).
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,13 @@
@EndUserText.label : 'Delivery'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table {{p}}deliv {
key client : abap.clnt not null;
key deliv_id : abap.int4 not null;
shop_id : abap.char(4);
deliv_date : abap.dats;
loaves : abap.int4;
rolls : abap.int4;
}

View File

@@ -0,0 +1,14 @@
@EndUserText.label : 'Shop'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table {{p}}shop {
key client : abap.clnt not null;
key shop_id : abap.char(4) not null;
shop_name : abap.char(30);
loaf_price : abap.dec(15,2);
roll_price : abap.dec(15,2);
deliv_fee : abap.dec(15,2);
is_active : abap.char(1);
}