@php use Carbon\Carbon; $anioActual = Carbon::now()->year; @endphp Registro de Evaluación y Notas {{-- ==================================================================== --}} {{-- 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
FECHAS
Registrar en el casillero la asistencia de los estudiantes (P, F, J, T).
@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 <= 40; $i++) @forelse($sesiones as $s) @empty @endforelse @endfor
N° 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 @php $totalLogrosImpresos = count($logros); @endphp @for($i = $totalLogrosImpresos + 1; $i <= 12; $i++) @endfor
N° Descripción del Indicador
{{ $i + 1 }} {{ $logro->nombre }} @if(!empty($logro->descripcion))
{{ $logro->descripcion }} @endif
No hay indicadores registrados.
{{ $i }}  
@if(!empty($logoPath) && file_exists($logoPath)) @endif

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

Registro de
Evaluación y Notas
{{ $periodo->nombre ?? $anioActual }}
{{-- Cuadro de Unidad Didáctica --}}
Unidad Didáctica:

{{ $curso->nombre }}

{{-- Tabla de Datos Amplia --}}
Programa de estudio: {{ $curso->planesEstudio->first()->nombre ?? $curso->carrera?->nombre ?? '---' }}
Módulo formativo N.°: {{ $curso->moduloformativo->numero ?? $curso->moduloformativo->codigo ?? '---' }}
Denominación: {{ $curso->moduloformativo->nombre ?? '---' }}
Período académico: {{ $periodo->nombre ?? $anioActual }}
Créditos: {{ $curso->creditos ?? '-' }}
Horas semanal: {{ $curso->horas_semanales ?? $curso->horas_semestrales ?? '-' }}
Docente: {{ $curso->docentes->first()->nombre_completo ?? $nombreDocente ?? '---' }}
Sección / aula: {{ $seccion->nombre ?? $curso->seccion->nombre ?? '---' }}
{{-- ==================================================================== --}} {{-- PÁGINA 2: REGISTRO OFICIAL DE NOTAS --}} {{-- ==================================================================== --}}

Registro de Evaluación y Notas

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

Período: {{ $periodo->nombre ?? $anioActual }}
Docente: {{ $curso->docentes->first()->nombre_completo ?? $nombreDocente ?? '---' }}
@foreach($lista_logros as $idx => $logroItem) @endforeach @if(count($lista_logros) === 0) @endif @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
N.° Apellidos y nombres
(tal como está en nómina)
Indicadores del logro Promedio Evaluación de recuperación Nota Final
{{ $idx + 1 }}-
{{ $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' }}