Files
pos_heidiver/app/Filament/Resources/ProductVariantResource/Pages/CreateProductVariant.php
T
2026-01-06 15:35:59 -05:00

61 lines
2.1 KiB
PHP

<?php
namespace App\Filament\Resources\ProductVariantResource\Pages;
use App\Filament\Resources\ProductVariantResource;
use App\Models\ProductVariant;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
use Filament\Notifications\Notification;
use Illuminate\Support\Facades\Log;
class CreateProductVariant extends CreateRecord
{
protected static string $resource = ProductVariantResource::class;
protected function handleRecordCreation(array $data): ProductVariant
{
// Debug: Log de datos recibidos
Log::info('Datos recibidos en createProductVariant:', $data);
// Extraer datos de bodega
$bodegaId = $data['bodega_id'] ?? null;
$stockInicial = $data['stock_inicial'] ?? 0;
Log::info('Bodega ID extraído:', ['bodega_id' => $bodegaId]);
Log::info('Stock inicial extraído:', ['stock_inicial' => $stockInicial]);
// Remover campos que no pertenecen al modelo ProductVariant
unset($data['bodega_id'], $data['stock_inicial']);
// Asegurar que stock esté en 0 en el modelo principal
$data['stock'] = 0;
// Crear la variante
$variante = ProductVariant::create($data);
Log::info('Variante creada:', ['id' => $variante->id]);
// Asignar a la bodega si se especificó
if ($bodegaId) {
$variante->bodegas()->attach($bodegaId, ['stock' => $stockInicial]);
Log::info('Relación bodega creada:', [
'variante_id' => $variante->id,
'bodega_id' => $bodegaId,
'stock' => $stockInicial
]);
$bodegaNombre = \App\Models\Bodega::find($bodegaId)->nombre;
Notification::make()
->title('Variante creada exitosamente')
->body("La variante se asignó a la bodega '{$bodegaNombre}' con stock de {$stockInicial} unidades.")
->success()
->send();
}
return $variante;
}
}