fix: actualizar lógica de seguimiento de seriales en devoluciones y ventas

This commit is contained in:
Juan Felipe Zapata Moreno 2026-01-27 16:33:35 -06:00
parent 91f27c4e4a
commit 5f0d4ec28e
3 changed files with 17 additions and 14 deletions

View File

@ -76,6 +76,10 @@ public function store(Inventory $inventario, Request $request)
'notes' => $request->notes, 'notes' => $request->notes,
]); ]);
if(!$inventario->track_serials) {
$inventario->update(['track_serials' => true]);
}
// Sincronizar stock // Sincronizar stock
$inventario->syncStock(); $inventario->syncStock();

View File

@ -172,7 +172,7 @@ public function cancelReturn(Returns $return): Returns
return DB::transaction(function () use ($return) { return DB::transaction(function () use ($return) {
// Restaurar seriales a estado vendido // Restaurar seriales a estado vendido
foreach ($return->details as $detail) { foreach ($return->details as $detail) {
if(!$detail->inventory->track_serials) { if ($detail->inventory->track_serials) {
$serials = InventorySerial::where('return_detail_id', $detail->id)->get(); $serials = InventorySerial::where('return_detail_id', $detail->id)->get();
foreach ($serials as $serial) { foreach ($serials as $serial) {
@ -185,8 +185,8 @@ public function cancelReturn(Returns $return): Returns
// Sincronizar stock // Sincronizar stock
$detail->inventory->syncStock(); $detail->inventory->syncStock();
} else { } else {
// Restaurar stock numérico // Revertir stock numérico (la devolución lo había incrementado)
$detail->inventory->increment('stock', $detail->quantity_returned); $detail->inventory->decrement('stock', $detail->quantity_returned);
} }
} }

View File

@ -49,7 +49,6 @@ public function createSale(array $data)
'quantity' => $item['quantity'], 'quantity' => $item['quantity'],
'unit_price' => $item['unit_price'], 'unit_price' => $item['unit_price'],
'subtotal' => $item['subtotal'], 'subtotal' => $item['subtotal'],
'serial_numbers' => $item['serial_numbers'] ?? null, // Si vienen del frontend
]); ]);
// Obtener el inventario // Obtener el inventario