From 08871b8ddeec4ac9ab9cd80dbfc92875feae502a Mon Sep 17 00:00:00 2001 From: Juan Felipe Zapata Moreno Date: Thu, 15 Jan 2026 20:12:32 -0600 Subject: [PATCH] fix: importar excel --- app/Imports/ProductsImport.php | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/app/Imports/ProductsImport.php b/app/Imports/ProductsImport.php index ffdce08..e1db2e7 100644 --- a/app/Imports/ProductsImport.php +++ b/app/Imports/ProductsImport.php @@ -12,7 +12,7 @@ use Maatwebsite\Excel\Concerns\Importable; use Maatwebsite\Excel\Concerns\WithChunkReading; use Maatwebsite\Excel\Concerns\SkipsEmptyRows; -use Illuminate\Support\Facades\Log; +use Maatwebsite\Excel\Concerns\WithMapping; /** * Import de productos desde Excel @@ -26,7 +26,7 @@ * - precio_venta: Precio de venta (requerido, mayor que costo) * - impuesto: Porcentaje de impuesto (opcional, 0-100) */ -class ProductsImport implements ToModel, WithHeadingRow, WithValidation, WithChunkReading, SkipsEmptyRows +class ProductsImport implements ToModel, WithHeadingRow, WithValidation, WithChunkReading, SkipsEmptyRows, WithMapping { use Importable; @@ -34,6 +34,23 @@ class ProductsImport implements ToModel, WithHeadingRow, WithValidation, WithChu private $imported = 0; private $skipped = 0; + /** + * Mapea y transforma los datos de cada fila antes de la validación + */ + public function map($row): array + { + return [ + 'nombre' => $row['nombre'] ?? null, + 'sku' => isset($row['sku']) ? (string) $row['sku'] : null, + 'codigo_barras' => isset($row['codigo_barras']) ? (string) $row['codigo_barras'] : null, + 'categoria' => $row['categoria'] ?? null, + 'stock' => $row['stock'] ?? null, + 'costo' => $row['costo'] ?? null, + 'precio_venta' => $row['precio_venta'] ?? null, + 'impuesto' => $row['impuesto'] ?? null, + ]; + } + /** * Procesa cada fila del Excel */