fix: actualizar lógica de seguimiento de seriales en devoluciones y ventas
This commit is contained in:
parent
91f27c4e4a
commit
5f0d4ec28e
@ -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();
|
||||||
|
|
||||||
|
|||||||
@ -172,21 +172,21 @@ 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) {
|
||||||
$serial->update([
|
$serial->update([
|
||||||
'status' => 'vendido',
|
'status' => 'vendido',
|
||||||
'sale_detail_id' => $detail->sale_detail_id,
|
'sale_detail_id' => $detail->sale_detail_id,
|
||||||
'return_detail_id' => null,
|
'return_detail_id' => null,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
// 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user