# Carga Masiva de Clientes

## Descripción

Esta funcionalidad permite cargar múltiples clientes de forma masiva mediante un archivo Excel (.xlsx, .xls, .csv).

## Ubicación en el Menú

Para acceder a esta funcionalidad:

1. Ve al menú principal
2. Haz clic en **"Configuración"**
3. Selecciona **"Cargar Clientes"**

## Cómo Usar

### 1. Preparar el Archivo Excel

El archivo Excel debe contener las siguientes columnas (ejemplo):

| RazSocCli | NumCifCli | DirCli | CodPosCli | TelCli | EmaCli | EstCli |
|-----------|-----------|---------|-----------|--------|--------|--------|
| Cliente 1 | 12345678A | Calle 1 | 28001 | 912345678 | cliente1@email.com | 1 |
| Cliente 2 | 87654321B | Calle 2 | 28002 | 913456789 | cliente2@email.com | 1 |

**Columnas requeridas:**
- `RazSocCli`: Razón Social del Cliente
- `NumCifCli`: CIF/NIF del Cliente
- `DirCli`: Dirección
- `CodPosCli`: Código Postal
- `TelCli`: Teléfono
- `EmaCli`: Email
- `EstCli`: Estado (1 = Activo, 0 = Inactivo)

### 2. Cargar el Archivo

Hay dos formas de cargar el archivo:

#### Opción A: Arrastrar y Soltar (Drag & Drop)
1. Abre la página de Carga Masiva de Clientes
2. Arrastra el archivo Excel desde tu explorador de archivos
3. Suelta el archivo en la zona de carga

#### Opción B: Seleccionar Archivo
1. Abre la página de Carga Masiva de Clientes
2. Haz clic en la zona de carga
3. Selecciona el archivo desde el explorador de archivos

### 3. Vista Previa

Una vez cargado el archivo:
- Se mostrará una vista previa de todos los datos
- Podrás ver el número total de registros
- Podrás verificar que los datos son correctos

### 4. Procesar

1. Revisa la vista previa de los datos
2. Haz clic en el botón **"Procesar Clientes"**
3. El sistema procesará los datos y creará/actualizará los clientes

## Limitaciones

- **Tamaño máximo de archivo:** 10 MB
- **Formatos aceptados:** .xlsx, .xls, .csv
- **Registros recomendados por carga:** Hasta 1,000 registros por archivo

## Notas Técnicas

### Backend

- **Controlador:** `App\Http\Controllers\ConfiguracionController`
- **Trait:** `App\Traits\ConfiguracionTraits`
- **Ruta:** `/configuracion/carga-masiva-clientes`
- **API de Procesamiento:** `POST /configuracion/procesar-carga-masiva-clientes`

### Frontend

- **Componente:** `resources/js/Pages/Eneon/CargasMasivas/Clientes/Index.tsx`
- **Estilos:** `resources/js/Pages/Eneon/CargasMasivas/Clientes/CargaMasiva.module.css`
- **Librería de Excel:** `xlsx` (SheetJS)

## Desarrollo Futuro

La lógica de procesamiento en el método `procesarCargaMasivaClientesTrait` está pendiente de implementación. 

### TODO:
1. Implementar validación de estructura del Excel
2. Implementar procesamiento de cada fila
3. Implementar manejo de errores por fila
4. Implementar log de procesamiento
5. Implementar notificaciones de éxito/error
6. Implementar generación de reporte de carga

## Estructura del Código

```
app/
├── Http/
│   └── Controllers/
│       └── ConfiguracionController.php
└── Traits/
    └── ConfiguracionTraits.php

resources/
└── js/
    └── Pages/
        └── Eneon/
            └── CargasMasivas/
                └── Clientes/
                    ├── Index.tsx
                    └── CargaMasiva.module.css

routes/
└── web.php (Rutas agregadas)
```

## Menú

El menú fue actualizado en:
- `resources/js/Layouts/Eneon/LayoutMenuData.tsx`

Se agregó:
- Opción principal: **Configuración** (ícono: settings)
- Sub-opción: **Cargar Clientes**

