@php $fieldLabels = [ 'course_id' => 'Curso', 'class_group_id' => 'Grupo', 'classroom_id' => 'Aula', 'academic_period_id' => 'Periodo académico', 'student_count' => 'Número de alumnos', 'topic' => 'Tema dictado', 'check_in_time' => 'Hora de entrada', 'check_out_time' => 'Hora de salida', 'class_date' => 'Fecha de clase', ]; @endphp
Volver a Registros de asistencia

Registro #{{ $record->id }}

{{ $record->teacher?->displayName() }} — {{ $record->teacher?->document_number }}

@switch($record->status) @case(\App\Enums\AttendanceStatus::Pending) Pendiente @break @case(\App\Enums\AttendanceStatus::Absent) Inasistencia @break @case(\App\Enums\AttendanceStatus::Regularized) Regularizado @break @default Asistió @endswitch @if ($record->identification_method?->value === 'fingerprint') HUELLA @elseif ($record->isExpiredRegularization()) ADMIN @elseif ($record->identification_method?->value === 'manual') MODO MANUAL @endif
@if (! $correcting)
Curso
{{ $record->course?->displayName() }}
Grupo
{{ $record->classGroup ? $record->classGroup->abbreviation.' — '.$record->classGroup->name : '—' }}
Ciclo
{{ $record->cycle?->name }}
Aula
{{ $record->classroom?->name }}
Periodo académico
{{ $record->academicPeriod?->name }}
Asignación de origen
{{ $record->assignment ? $record->assignment->course?->displayName().' — '.$record->assignment->timeRangeLabel() : 'Sin asignación (regularización admin)' }}
Fecha de clase
{{ $record->class_date->format('d/m/Y') }}
Horario declarado
@if ($record->check_in_time && $record->check_out_time) {{ \App\Models\Assignment::displayTime($record->check_in_time) }} – {{ \App\Models\Assignment::displayTime($record->check_out_time) }} @else — (todavía no ficha) @endif
Alumnos
{{ $record->student_count ?? '—' }}
Tema dictado
{{ $record->topic ?? '—' }}
Creado
{{ $record->created_at->timezone(config('app.timezone'))->format('d/m/Y h:i A') }}
Actualizado
{{ $record->updated_at->timezone(config('app.timezone'))->format('d/m/Y h:i A') }}
@if ($record->created_by)
Registrado por
{{ $record->creator?->displayName() }}
@endif @if ($record->admin_observation)
Observación (vencida)
{{ $record->admin_observation }}
@endif

Fotos de evidencia

@foreach (['identification' => 'Identificación', 'form' => 'Formulario', 'confirmation' => 'Confirmación'] as $key => $label) @php $evidence = $record->evidence->firstWhere('type', $key); @endphp
@if ($evidence) Foto de {{ $label }} @else
Sin foto
@endif
{{ $label }}
@endforeach
@if ($canEdit) {{ $record->status === \App\Enums\AttendanceStatus::Attended ? 'Corregir' : 'Completar y regularizar' }} @else

El docente todavía puede fichar esta clase en el kiosko — disponible para regularizar desde las {{ $record->assignment->registrationClosesAt(\App\Models\SystemConfiguration::current()->registration_window_minutes, $record->class_date->toDateString())->format('h:i A') }}.

@endif
@else

{{ $record->status === \App\Enums\AttendanceStatus::Attended ? 'Corregir registro' : 'Completar y regularizar clase' }}

@if ($record->status === \App\Enums\AttendanceStatus::Attended) Puedes editar cualquier campo de la clase. La observación del motivo del cambio es obligatoria. @else El docente no fichó esta clase. Completa los datos reales y el motivo — quedará marcada como regularizada. @endif

@endif

Historial de correcciones

@if ($record->corrections->isEmpty())

Este registro no tiene correcciones.

@else
@foreach ($record->corrections as $correction) @endforeach
Fecha Campo Antes Después Observación Corregido por
{{ $correction->created_at->timezone(config('app.timezone'))->format('d/m/Y h:i A') }} {{ $fieldLabels[$correction->field] ?? $correction->field }} {{ $correction->old_value }} {{ $correction->new_value }} {{ $correction->reason }} {{ $correction->correctedBy?->displayName() }}
@endif