Importar Estudiantes

@if (session()->has('message')) @endif @if (session()->has('error')) @endif @if($importMode === 'preview')
1

Cargar Archivo

@if($file)
Archivo seleccionado: {{ $file->getClientOriginalName() }}
@endif @error('file')
{{ $message }}
@enderror
Cargando...
Analizando archivo...
@endif @if($preview && $importMode === 'preview')
2

Configuración de Importación

Si un estudiante ya existe, actualizará sus datos
Completará campos vacíos con 'n/a'
Total de filas

{{ number_format($totalRows) }}

@endif @if($processedData && $importMode === 'preview')
3

Vista Previa y Selección de Filas

{{ count($selectedRows) }} de {{ $totalRows }} filas seleccionadas
@foreach($preview['headers'] as $header) @endforeach @foreach($processedData as $index => $rowData) @foreach($preview['rows'][$index] ?? [] as $cell) @endforeach @endforeach
# Estado{{ $header }}
{{ $index + 1 }} @if(count($validationErrors[$index]) > 0) Error @elseif(isset($rowData['existing_student']) && $rowData['existing_student']) Existe @else Nuevo @endif {{ Str::limit($cell, 30) }}
@if(count($selectedRows) > 0)
{{ collect($selectedRows)->filter(function($index) use ($processedData) { return !($processedData[$index]['existing_student'] ?? false); })->count() }}
Estudiantes nuevos
{{ collect($selectedRows)->filter(function($index) use ($processedData) { return $processedData[$index]['existing_student'] ?? false; })->count() }}
Estudiantes existentes
{{ collect($selectedRows)->filter(function($index) use ($validationErrors) { return count($validationErrors[$index]) > 0; })->count() }}
Filas con errores
@endif
@endif @if($importMode === 'mapping' || ($preview && $importMode === 'preview'))
4

Mapeo de Columnas

Asigna las columnas de tu archivo a los campos del sistema

Datos del Estudiante
@error('columnMapping.nombres') {{ $message }} @enderror
@error('columnMapping.apellidos') {{ $message }} @enderror
@error('columnMapping.documento_identidad') {{ $message }} @enderror
Datos del Representante
Instrucciones de Mapeo
  • Los campos marcados con * son obligatorios
  • Selecciona la columna correspondiente para cada campo
  • Los campos no mapeados se llenarán con 'n/a' si está habilitado
  • Los estudiantes existentes se actualizarán si está habilitado
@endif
@if($importMode === 'preview' && $preview && count($selectedRows) > 0) @elseif($importMode === 'mapping') @endif
@if($importMode === 'importing')
5

Progreso de Importación

Procesando {{ count($selectedRows) }} filas seleccionadas

{{ $importProgress }}% Completado

{{ $importedRows }}

Estudiantes importados

{{ $failedRows }}

Importaciones fallidas

{{ count($selectedRows) }}

Filas seleccionadas

{{ $importedRows + $failedRows }}

Total procesado

{{ count($selectedRows) > 0 ? round((($importedRows + $failedRows) / count($selectedRows)) * 100) : 0 }}%
@if(count($errorsList) > 0)
Errores de Importación ({{ count($errorsList) }})
@foreach($errorsList as $error)
Fila {{ $error['row'] }}: {{ $error['error'] }}
@endforeach
@endif @if($importProgress >= 100)
¡Importación Completada!

Se han procesado todas las filas seleccionadas exitosamente.

@endif
@endif