Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
74
tasks_gen/train/G1114/seed/bakery_bill_old.prog.abap
Normal file
74
tasks_gen/train/G1114/seed/bakery_bill_old.prog.abap
Normal 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.
|
||||
27
tasks_gen/train/G1114/seed/bakery_seed.clas.abap
Normal file
27
tasks_gen/train/G1114/seed/bakery_seed.clas.abap
Normal 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.
|
||||
13
tasks_gen/train/G1114/seed/deliv.tabl.asabap
Normal file
13
tasks_gen/train/G1114/seed/deliv.tabl.asabap
Normal 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;
|
||||
}
|
||||
14
tasks_gen/train/G1114/seed/shop.tabl.asabap
Normal file
14
tasks_gen/train/G1114/seed/shop.tabl.asabap
Normal 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);
|
||||
}
|
||||
Reference in New Issue
Block a user