@php use Carbon\Carbon; $anioActual = Carbon::now()->year; @endphp Registro Auxiliar de Evaluación {{-- ==================================================================== --}} {{-- PÁGINA 1: TRÍPTICO PROPORCIONAL (44% Asistencia | 20% Logros | 36% Portada) --}} {{-- ==================================================================== --}} {{-- 1. CONTROL DE ASISTENCIA --}} {{-- 2. INDICADORES DE LOGRO --}} {{-- 3. PORTADA CON INFORMACIÓN DEL CURSO (MAXIMIZADA Y ESPACIOSA) --}}
Control de Asistencia
@forelse($sesiones as $s) @empty @endforelse @php $contador = 1; @endphp @foreach($estudiantes as $e) @php $asistColeccion = collect($asistencias[$e->matricula_curso_id] ?? []); $faltas = $asistColeccion->filter(function($item) { $est = strtoupper(is_object($item) ? ($item->estado ?? '') : ($item['estado'] ?? '')); return in_array($est, ['F', 'A', 'FALTA', 'AUSENTE']); })->count(); $totalSesiones = count($sesiones); $porcentaje = $totalSesiones > 0 ? round(($faltas / $totalSesiones) * 100) : 0; @endphp @forelse($sesiones as $s) @php $idSesion = $s->id_sesion ?? $s->id ?? null; $asistenciaItem = $asistColeccion->first(function($item) use ($idSesion) { $itemSesionId = is_object($item) ? ($item->sesion_id ?? $item->id_sesion ?? null) : ($item['sesion_id'] ?? $item['id_sesion'] ?? null); return $itemSesionId == $idSesion; }); $rawEstado = strtoupper(is_object($asistenciaItem) ? ($asistenciaItem->estado ?? '') : ($asistenciaItem['estado'] ?? '')); $inicial = match($rawEstado) { 'P', 'PRESENTE' => '•', 'F', 'A', 'FALTA', 'AUSENTE' => 'F', 'J', 'JUSTIFICADO' => 'J', 'T', 'TARDANZA' => 'T', default => '-' }; $colorStyle = match($inicial) { 'F' => 'color: #dc2626; font-weight: bold;', 'J' => 'color: #d97706; font-weight: bold;', 'T' => 'color: #2563eb;', default => 'color: #333;' }; @endphp @empty @endforelse @php $contador++; @endphp @endforeach @for($i = $contador; $i <= 30; $i++) @forelse($sesiones as $s) @empty @endforelse @endfor
SESIONES PROGRAMADAS F %
{{ \Carbon\Carbon::parse($s->fecha)->format('d/m') }} -
{{ $contador }}{{ $inicial }}-{{ $faltas }} {{ $porcentaje }}%
{{ $i }}--0 0%
Indicadores de Logro
@forelse($logros as $i => $logro) @empty @endforelse
Descripción del Indicador
{{ $i + 1 }} {{ $logro->nombre }} @if(!empty($logro->descripcion))
{{ $logro->descripcion }} @endif
No hay indicadores registrados.
@if(!empty($logoPath) && file_exists($logoPath)) @endif

{{ $instituto->nombre ?? 'INSTITUTO DE EDUCACIÓN SUPERIOR' }}

Registro Auxiliar de Evaluación
{{-- Cuadro de Unidad Didáctica --}}
Unidad Didáctica:

{{ $curso->nombre }}

{{-- Tabla de Datos Amplia --}}
Programa de Estudio: {{ $curso->planesEstudio->first()->nombre ?? $curso->carrera?->nombre ?? '---' }}
Periodo Lectivo: {{ $periodo->nombre ?? '---' }}
Periodo Académico: Semestre {{ $curso->semestre->nombre ?? '---' }}
Módulo Formativo: {{ $curso->moduloformativo->nombre ?? '---' }}
Docente Responsable: {{ $curso->docentes->first()->nombre_completo ?? $nombreDocente ?? '---' }}
Créditos / Horas: {{ $curso->creditos ?? '-' }} Créditos  |  {{ $curso->horas_semestrales ?? '-' }} Horas
Código Modular: {{ $instituto->codigo_modular ?? '---' }}
{{-- ==================================================================== --}} {{-- PÁGINA 2: REGISTRO OFICIAL DE NOTAS --}} {{-- ==================================================================== --}}

Registro Consolidado de Calificaciones

Unidad Didáctica: {{ $curso->nombre }} | Programa: {{ $curso->planesEstudio->first()->nombre ?? $curso->carrera?->nombre ?? '---' }} | Periodo: {{ $periodo->nombre ?? '---' }}

Docente: {{ $curso->docentes->first()->nombre_completo ?? $nombreDocente ?? '---' }}
@foreach($lista_logros as $idx => $logroItem) @endforeach @forelse($lista_estudiantes as $est) @php $sum = 0; $count = 0; @endphp @foreach($lista_logros as $logroItem) @php $nota = $est['logros'][$logroItem] ?? '-'; $esNumerico = is_numeric($nota); if ($esNumerico) { $sum += $nota; $count++; } @endphp @endforeach @php $prom = $count > 0 ? round($sum / $count) : '-'; $recup = $est['recuperacion'] ?? null; $notaFinal = is_numeric($recup) ? max($prom, round($recup)) : $prom; @endphp @empty @endforelse
# Apellidos y NombresLogro {{ $idx + 1 }}Prom. Recup. Nota Final
{{ $loop->iteration }} {{ $est['nombre'] }} {{ $nota }} {{ $prom }} {{ is_numeric($recup) ? $recup : '-' }} {{ $notaFinal }}
No se encontraron estudiantes matriculados en esta sección.
{{-- FIRMAS --}}
Docente Responsable del Curso
{{ $curso->docentes->first()->nombre_completo ?? $nombreDocente ?? 'Docente' }}
V°B° Secretaría Académica / Coordinación
{{ $instituto->nombre ?? 'Instituto de Educación Superior' }}