diff --git a/app/Http/Controllers/App/InventorySerialController.php b/app/Http/Controllers/App/InventorySerialController.php index b61a161..46bf35e 100644 --- a/app/Http/Controllers/App/InventorySerialController.php +++ b/app/Http/Controllers/App/InventorySerialController.php @@ -76,6 +76,10 @@ public function store(Inventory $inventario, Request $request) 'notes' => $request->notes, ]); + if(!$inventario->track_serials) { + $inventario->update(['track_serials' => true]); + } + // Sincronizar stock $inventario->syncStock(); diff --git a/app/Services/ReturnService.php b/app/Services/ReturnService.php index 56a5fb0..c1a332d 100644 --- a/app/Services/ReturnService.php +++ b/app/Services/ReturnService.php @@ -172,21 +172,21 @@ public function cancelReturn(Returns $return): Returns return DB::transaction(function () use ($return) { // Restaurar seriales a estado vendido foreach ($return->details as $detail) { - if(!$detail->inventory->track_serials) { - $serials = InventorySerial::where('return_detail_id', $detail->id)->get(); + if ($detail->inventory->track_serials) { + $serials = InventorySerial::where('return_detail_id', $detail->id)->get(); - foreach ($serials as $serial) { - $serial->update([ - 'status' => 'vendido', - 'sale_detail_id' => $detail->sale_detail_id, - 'return_detail_id' => null, - ]); - } - // Sincronizar stock - $detail->inventory->syncStock(); + foreach ($serials as $serial) { + $serial->update([ + 'status' => 'vendido', + 'sale_detail_id' => $detail->sale_detail_id, + 'return_detail_id' => null, + ]); + } + // Sincronizar stock + $detail->inventory->syncStock(); } else { - // Restaurar stock numérico - $detail->inventory->increment('stock', $detail->quantity_returned); + // Revertir stock numérico (la devolución lo había incrementado) + $detail->inventory->decrement('stock', $detail->quantity_returned); } } diff --git a/app/Services/SaleService.php b/app/Services/SaleService.php index 66402e8..934f29a 100644 --- a/app/Services/SaleService.php +++ b/app/Services/SaleService.php @@ -49,7 +49,6 @@ public function createSale(array $data) 'quantity' => $item['quantity'], 'unit_price' => $item['unit_price'], 'subtotal' => $item['subtotal'], - 'serial_numbers' => $item['serial_numbers'] ?? null, // Si vienen del frontend ]); // Obtener el inventario