Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
62
tasks_gen/train/G1121/faulty/m2_mush_harvest.func.abap
Normal file
62
tasks_gen/train/G1121/faulty/m2_mush_harvest.func.abap
Normal file
@@ -0,0 +1,62 @@
|
||||
FUNCTION {{p}}mush_harvest
|
||||
IMPORTING
|
||||
iv_room_a TYPE string
|
||||
iv_room_b TYPE string
|
||||
EXPORTING
|
||||
ev_total_kg TYPE decfloat34
|
||||
ev_room_count TYPE i
|
||||
ev_top_grade TYPE char1
|
||||
EXCEPTIONS
|
||||
no_stock.
|
||||
|
||||
DATA lt_rows TYPE STANDARD TABLE OF {{P}}HARVEST.
|
||||
DATA lt_stock TYPE SORTED TABLE OF {{P}}HARVEST WITH UNIQUE KEY room_id grade.
|
||||
DATA lt_grade TYPE SORTED TABLE OF {{P}}HARVEST WITH UNIQUE KEY grade.
|
||||
DATA lv_room TYPE {{P}}HARVEST-room_id.
|
||||
DATA lv_best TYPE {{P}}HARVEST-weight_kg.
|
||||
|
||||
SELECT room_id, grade, batch_no, weight_kg
|
||||
FROM {{P}}HARVEST
|
||||
WHERE room_id <> ''
|
||||
AND grade IN ( 'A', 'B', 'C' )
|
||||
AND weight_kg > 0
|
||||
AND ( room_id = @iv_room_a OR room_id <> @iv_room_b )
|
||||
INTO TABLE @lt_rows.
|
||||
|
||||
IF lt_rows IS INITIAL.
|
||||
RAISE no_stock.
|
||||
ENDIF.
|
||||
|
||||
LOOP AT lt_rows ASSIGNING FIELD-SYMBOL(<ls_row>).
|
||||
ev_total_kg = ev_total_kg + <ls_row>-weight_kg.
|
||||
READ TABLE lt_stock ASSIGNING FIELD-SYMBOL(<ls_stock>)
|
||||
WITH TABLE KEY room_id = <ls_row>-room_id grade = <ls_row>-grade.
|
||||
IF sy-subrc = 0.
|
||||
<ls_stock>-weight_kg = <ls_stock>-weight_kg + <ls_row>-weight_kg.
|
||||
ELSE.
|
||||
INSERT <ls_row> INTO TABLE lt_stock.
|
||||
ENDIF.
|
||||
READ TABLE lt_grade ASSIGNING FIELD-SYMBOL(<ls_grade>)
|
||||
WITH TABLE KEY grade = <ls_row>-grade.
|
||||
IF sy-subrc = 0.
|
||||
<ls_grade>-weight_kg = <ls_grade>-weight_kg + <ls_row>-weight_kg.
|
||||
ELSE.
|
||||
INSERT <ls_row> INTO TABLE lt_grade.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
LOOP AT lt_stock INTO DATA(ls_stock).
|
||||
IF ls_stock-room_id <> lv_room.
|
||||
ev_room_count = ev_room_count + 1.
|
||||
lv_room = ls_stock-room_id.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
LOOP AT lt_grade INTO DATA(ls_grade).
|
||||
IF ls_grade-weight_kg > lv_best.
|
||||
lv_best = ls_grade-weight_kg.
|
||||
ev_top_grade = ls_grade-grade.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
ENDFUNCTION.
|
||||
Reference in New Issue
Block a user