diff --git a/app/Http/Controllers/PdfController.php b/app/Http/Controllers/PdfController.php index 8dead71..d53e0a2 100644 --- a/app/Http/Controllers/PdfController.php +++ b/app/Http/Controllers/PdfController.php @@ -466,16 +466,31 @@ class PdfController extends Controller // return response()->json([ // 'serial_numbers' => $serialNumbers // ], 200); - $itemId = $grRecords->first()->item_id; + // $itemId = $grRecords->first()->item_id; - $itemCode = $itemId ? optional(Item::find($itemId))->code : null; + // $itemCode = $itemId ? optional(Item::find($itemId))->code : null; - $serialNumbers = $grRecords->pluck('serial_number')->toArray(); + // $serialNumbers = $grRecords->pluck('serial_number')->toArray(); - return response()->json([ - 'item_code' => $itemCode, - 'serial_numbers' => $serialNumbers - ], 200); + // return response()->json([ + // 'item_code' => $itemCode, + // 'serial_numbers' => $serialNumbers + // ], 200); + $itemIds = $grRecords->pluck('item_id')->unique()->filter(); + + // Fetch item_codes in one query + $items = Item::whereIn('id', $itemIds)->pluck('code', 'id'); + // ['id' => 'item_code'] + + // Group serial numbers by item_id + $result = $grRecords->groupBy('item_id')->map(function ($group, $itemId) use ($items) { + return [ + 'item_code' => $items[$itemId] ?? null, + 'serial_numbers' => $group->pluck('serial_number')->toArray() + ]; + })->values(); // remove keys + + return response()->json($result, 200); }