DiploMaster/ver_diploma.php

85 lines
2.3 KiB
PHP

<?php
require 'includes/config.php';
require 'fpdf/fpdf.php';
require 'fpdf/src/autoload.php'; // FPDI
use setasign\Fpdi\Fpdi;
function numeroEnLetras($numero) {
$formatter = new NumberFormatter("es", NumberFormatter::SPELLOUT);
return $formatter->format($numero);
}
$codigo = $_GET['codigo'] ?? null;
if (!$codigo) {
die("Código no proporcionado");
}
$stmt = $pdo->prepare("
SELECT
a.nombre AS alumno_nombre,
c.nombre AS curso_nombre,
c.tipo,
c.horas_trabajadas,
d.fecha_emision
FROM diplomas d
JOIN alumnos_cursos ac ON d.alumno_curso_id = ac.id
JOIN alumnos a ON ac.alumno_id = a.id
JOIN cursos c ON ac.curso_id = c.id
WHERE d.codigo_unico = ?
");
$stmt->execute([$codigo]);
$diploma = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$diploma) {
die("Diploma no encontrado");
}
// Crear PDF
$pdf = new Fpdi();
$pdf->AddPage();
$pdf->setSourceFile('fpdf/formatodiploma.pdf');
$template = $pdf->importPage(1);
$pdf->useTemplate($template);
// Configuración
$pdf->SetFont('Helvetica', '', 16);
$pdf->SetTextColor(33, 37, 41);
// Nombre del alumno (centrado)
$pdf->SetXY(0, 80);
$pdf->SetFont('Helvetica', 'B', 22);
$pdf->Cell(210, 10, utf8_decode($diploma['alumno_nombre']), 0, 1, 'C');
// Nombre del curso
$pdf->SetFont('Helvetica', '', 16);
$pdf->SetXY(0, 100);
$pdf->Cell(210, 10, utf8_decode('Por haber acreditado el curso "' . $diploma['curso_nombre'] . '"'), 0, 1, 'C');
// Horas trabajadas (si aplica)
if ($diploma['horas_trabajadas']) {
$pdf->SetXY(0, 110);
$pdf->Cell(210, 10, utf8_decode('con una duración de ' . $diploma['horas_trabajadas'] . ' horas.'), 0, 1, 'C');
}
// Fecha formateada
$fecha = new DateTime($diploma['fecha_emision']);
$dia = $fecha->format('j');
$mes = $fecha->format('F');
$anio = $fecha->format('Y');
$diaLetras = numeroEnLetras($dia);
$mesTraducido = strtr(strtolower($mes), [
'january' => 'enero', 'february' => 'febrero', 'march' => 'marzo',
'april' => 'abril', 'may' => 'mayo', 'june' => 'junio',
'july' => 'julio', 'august' => 'agosto', 'september' => 'septiembre',
'october' => 'octubre', 'november' => 'noviembre', 'december' => 'diciembre'
]);
$pdf->SetXY(0, 190);
$pdf->SetFont('Helvetica', '', 14);
$pdf->Cell(210, 10, utf8_decode("Xalapa, Ver. a los {$diaLetras} días de {$mesTraducido} de {$anio}"), 0, 1, 'C');
// Salida del PDF
$pdf->Output();