Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
96
tasks_gen/train/G1074/seed/pallet_allocator.clas.abap
Normal file
96
tasks_gen/train/G1074/seed/pallet_allocator.clas.abap
Normal file
@@ -0,0 +1,96 @@
|
||||
CLASS {{p}}pallet_allocator DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_category TYPE c LENGTH 2.
|
||||
TYPES ty_weight TYPE i.
|
||||
TYPES ty_height TYPE i.
|
||||
TYPES:
|
||||
BEGIN OF ty_slot,
|
||||
aisle TYPE c LENGTH 2,
|
||||
rack TYPE i,
|
||||
temp_zone TYPE c LENGTH 2,
|
||||
is_valid TYPE abap_bool,
|
||||
END OF ty_slot.
|
||||
|
||||
METHODS constructor.
|
||||
METHODS allocate
|
||||
IMPORTING
|
||||
iv_category TYPE ty_category
|
||||
iv_weight_kg TYPE ty_weight
|
||||
iv_height_cm TYPE ty_height
|
||||
RETURNING
|
||||
VALUE(rs_slot) TYPE ty_slot.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}pallet_allocator IMPLEMENTATION.
|
||||
|
||||
METHOD constructor.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD allocate.
|
||||
DATA: lv_cat TYPE ty_category,
|
||||
lv_aisle TYPE c LENGTH 2,
|
||||
lv_zone TYPE c LENGTH 2,
|
||||
lv_rack TYPE i,
|
||||
lv_h TYPE i,
|
||||
lv_ok TYPE c LENGTH 1.
|
||||
|
||||
CLEAR rs_slot.
|
||||
lv_cat = iv_category.
|
||||
TRANSLATE lv_cat TO UPPER CASE.
|
||||
CONDENSE lv_cat NO-GAPS.
|
||||
|
||||
lv_ok = 'X'.
|
||||
|
||||
IF lv_cat = 'F'.
|
||||
lv_aisle = 'A1'.
|
||||
lv_zone = 'FZ'.
|
||||
ELSEIF lv_cat = 'C'.
|
||||
lv_aisle = 'B2'.
|
||||
lv_zone = 'CZ'.
|
||||
ELSEIF lv_cat = 'D'.
|
||||
lv_aisle = 'D4'.
|
||||
lv_zone = 'DZ'.
|
||||
ELSE.
|
||||
lv_ok = ' '.
|
||||
ENDIF.
|
||||
|
||||
IF iv_weight_kg < 20.
|
||||
lv_ok = ' '.
|
||||
ENDIF.
|
||||
|
||||
IF iv_weight_kg > 800.
|
||||
lv_ok = ' '.
|
||||
ENDIF.
|
||||
|
||||
IF iv_height_cm < 40.
|
||||
lv_ok = ' '.
|
||||
ENDIF.
|
||||
|
||||
IF lv_ok = 'X'.
|
||||
lv_rack = 1.
|
||||
lv_h = iv_height_cm.
|
||||
WHILE lv_h > 120.
|
||||
lv_rack = lv_rack + 1.
|
||||
lv_h = lv_h - 40.
|
||||
ENDWHILE.
|
||||
IF lv_rack > 4.
|
||||
lv_ok = ' '.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
IF lv_ok = 'X'.
|
||||
rs_slot-aisle = lv_aisle.
|
||||
rs_slot-rack = lv_rack.
|
||||
rs_slot-temp_zone = lv_zone.
|
||||
rs_slot-is_valid = abap_true.
|
||||
ELSE.
|
||||
CLEAR rs_slot.
|
||||
rs_slot-is_valid = abap_false.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user