fix: ajustar validación de seriales en solicitudes de devolución y restauración

This commit is contained in:
Juan Felipe Zapata Moreno 2026-01-30 16:32:07 -06:00
parent 95154f4b28
commit 38e5050692
3 changed files with 4 additions and 5 deletions

View File

@ -111,8 +111,8 @@ public function withValidator($validator)
); );
} }
// Validar seriales si fueron especificados // Validar seriales solo si se proporcionaron (array vacío = sin serials)
if (isset($item['serial_numbers'])) { if (!empty($item['serial_numbers'])) {
if (count($item['serial_numbers']) !== $item['quantity_returned']) { if (count($item['serial_numbers']) !== $item['quantity_returned']) {
$validator->errors()->add( $validator->errors()->add(
"items.{$index}.serial_numbers", "items.{$index}.serial_numbers",

View File

@ -87,7 +87,6 @@ public function restoreFromReturn(): void
$this->update([ $this->update([
'status' => 'disponible', 'status' => 'disponible',
'sale_detail_id' => null, 'sale_detail_id' => null,
'return_detail_id' => null,
]); ]);
} }

View File

@ -113,7 +113,7 @@ public function createReturn(array $data): Returns
if ($inventory->track_serials) { if ($inventory->track_serials) {
// Validación de cantidad de seriales // Validación de cantidad de seriales
if (isset($item['serial_numbers']) && is_array($item['serial_numbers'])) { if (!empty($item['serial_numbers'])) {
if (count($item['serial_numbers']) != $item['quantity_returned']) { if (count($item['serial_numbers']) != $item['quantity_returned']) {
throw new \Exception( throw new \Exception(
"La cantidad de seriales proporcionados no coincide con la cantidad a devolver " . "La cantidad de seriales proporcionados no coincide con la cantidad a devolver " .
@ -123,7 +123,7 @@ public function createReturn(array $data): Returns
} }
// Gestionar seriales // Gestionar seriales
if (isset($item['serial_numbers']) && is_array($item['serial_numbers'])) { if (!empty($item['serial_numbers'])) {
// Seriales específicos proporcionados // Seriales específicos proporcionados
foreach ($item['serial_numbers'] as $serialNumber) { foreach ($item['serial_numbers'] as $serialNumber) {
$serial = InventorySerial::where('serial_number', $serialNumber) $serial = InventorySerial::where('serial_number', $serialNumber)