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.
|
||||
Reference in New Issue
Block a user