Update InventarioPrenda.php

This commit is contained in:
Lizandro Guarnizo
2026-01-18 12:59:57 -05:00
parent a81f6a5668
commit 7f97757038
+44
View File
@@ -28,5 +28,49 @@ class InventarioPrenda extends Model
// Estado automático inicial
$inventario->estado = 'en_bodega';
});
// Al crear inventario de prenda, alimentar (incrementar o crear) el stock de Producto
static::created(function ($inventario) {
if (! $inventario->cantidad_terminada || $inventario->cantidad_terminada <= 0) {
return;
}
$op = $inventario->ordenProduccion;
if (! $op) {
return;
}
// Intentar emparejar producto por nombre de prenda_modelo o referencia
$nombre = $op->prenda_modelo ?? $op->referencia ?? null;
if (! $nombre) {
return;
}
$producto = \App\Models\Producto::where('nombre', $nombre)->first();
// Si existe y no tiene variantes, incrementar stock
if ($producto) {
if (! $producto->variants()->exists()) {
// Si el producto usa bodegas, sumar al stock directo (simplificado)
$producto->increment('stock', $inventario->cantidad_terminada);
} else {
// Tiene variantes: no hacemos cambios automáticos aquí (se requiere asignación manual)
// Podríamos implementar reglas adicionales si se definieran las variantes en la OP
}
return;
}
// Si no existe el producto, crearlo automáticamente con stock inicial
\App\Models\Producto::create([
'nombre' => $nombre,
'descripcion' => 'Creado automáticamente desde InventarioPrenda (OP #' . $op->id . ')',
'stock' => $inventario->cantidad_terminada,
'estado' => true,
'precio_compra' => 0,
'precio_venta' => 0,
'unidad_medida' => 'unidad',
]);
});
}
}