From 19885a0abad9639183eb5542805602bae0111888 Mon Sep 17 00:00:00 2001 From: Juan Felipe Zapata Moreno Date: Wed, 4 Mar 2026 17:15:51 -0600 Subject: [PATCH] =?UTF-8?q?feat:=20agregar=20soporte=20para=20especificar?= =?UTF-8?q?=20el=20almac=C3=A9n=20al=20marcar=20seriales=20como=20vendidos?= =?UTF-8?q?=20en=20el=20servicio=20de=20ventas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/App/InventorySerialController.php | 7 +++++-- app/Services/SaleService.php | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/App/InventorySerialController.php b/app/Http/Controllers/App/InventorySerialController.php index 18179d0..055954e 100644 --- a/app/Http/Controllers/App/InventorySerialController.php +++ b/app/Http/Controllers/App/InventorySerialController.php @@ -32,10 +32,13 @@ public function index(Inventory $inventario, Request $request) if ($request->has('warehouse_id')) { $query->where('warehouse_id', $request->warehouse_id); - } else { + } elseif ($request->boolean('main_warehouse')) { $mainWarehouse = Warehouse::where('is_main', true)->first(); if ($mainWarehouse) { - $query->where('warehouse_id', $mainWarehouse->id); + $query->where(function ($q) use ($mainWarehouse) { + $q->where('warehouse_id', $mainWarehouse->id) + ->orWhereNull('warehouse_id'); + }); } } diff --git a/app/Services/SaleService.php b/app/Services/SaleService.php index 86a836d..95ee174 100644 --- a/app/Services/SaleService.php +++ b/app/Services/SaleService.php @@ -134,7 +134,7 @@ public function createSale(array $data) ->first(); if ($serial) { - $serial->markAsSold($saleDetail->id); + $serial->markAsSold($saleDetail->id, $serialWarehouseId); } else { throw new \Exception("Serial {$serialNumber} no disponible en el almacén"); } @@ -152,7 +152,7 @@ public function createSale(array $data) } foreach ($serials as $serial) { - $serial->markAsSold($saleDetail->id); + $serial->markAsSold($saleDetail->id, $serialWarehouseId); } }