DiploMaster/certificado.php

162 lines
4.6 KiB
PHP

<?php
ob_start();
require 'includes/config.php';
require 'fpdf/fpdf.php';
require 'fpdf/src/autoload.php';
use setasign\Fpdi\Fpdi;
function t($txt) {
return iconv('UTF-8', 'windows-1252//TRANSLIT', $txt);
}
$codigo = $_GET['codigo'] ?? null;
if (!$codigo) {
ob_end_clean();
die("Código no proporcionado");
}
$stmt = $pdo->prepare("
SELECT
a.nombre AS alumno_nombre,
c.nombre AS curso_nombre,
c.tipo,
c.horas_trabajadas,
c.competencias,
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) {
ob_end_clean();
die("Diploma no encontrado");
}
$alumno = $diploma['alumno_nombre'];
$curso = $diploma['curso_nombre'];
$tipo = $diploma['tipo'];
$horas = $diploma['horas_trabajadas'];
$competencias = $diploma['competencias'] ?? '';
$fecha = new DateTime($diploma['fecha_emision']);
$dia = str_pad($fecha->format('d'), 2, '0', STR_PAD_LEFT);
$mes = $fecha->format('m');
$anio = $fecha->format('Y');
$pdf = new Fpdi();
$pdf->AddPage();
$pdf->setSourceFile(__DIR__ . '/fpdf/formatodiploma.pdf');
$template = $pdf->importPage(1);
$pdf->useTemplate($template);
$pdf->SetTextColor(33, 37, 41);
// Tratamiento
if ($tipo === 'tratamiento') {
$pdf->SetFont('Helvetica', '', 16);
$pdf->SetXY(0, 80);
$pdf->Cell(210, 10, t("Otorga el presente reconocimiento"), 0, 1, 'C');
$pdf->SetFont('Helvetica', '', 14);
$pdf->SetXY(0, 92);
$pdf->Cell(210, 10, t("a:"), 0, 1, 'C');
$pdf->SetFont('Helvetica', 'I', 22);
$pdf->SetXY(0, 102);
$pdf->Cell(210, 10, t($alumno), 0, 1, 'C');
$y = 120;
$pdf->SetFont('Helvetica', '', 12);
$textoBase = "Por haber acreditado en el curso “{$curso}";
if ($horas) $textoBase .= " ({$horas} horas de trabajo)";
$pdf->SetXY(20, $y);
$pdf->MultiCell(170, 7, t($textoBase . ",\nla evaluación de las competencias:"), 0, 'L');
$y = $pdf->GetY() + 2;
$pdf->SetFont('Helvetica', '', 11);
$lineas = explode("\n", $competencias);
foreach ($lineas as $linea) {
$pdf->SetXY(25, $y);
$pdf->MultiCell(160, 6, t("" . trim($linea)), 0, 'L');
$y = $pdf->GetY();
}
// Inyección
} elseif ($tipo === 'inyeccion') {
$pdf->SetFont('Helvetica', '', 16);
$pdf->SetXY(0, 82);
$pdf->Cell(210, 10, t("Otorga la presente"), 0, 1, 'C');
$pdf->SetFont('Helvetica', 'B', 18);
$pdf->SetXY(0, 95);
$pdf->Cell(210, 10, t("CONSTANCIA"), 0, 1, 'C');
$pdf->SetFont('Helvetica', 'I', 14);
$pdf->SetXY(0, 106);
$pdf->Cell(210, 10, t("a:"), 0, 1, 'C');
$pdf->SetFont('Helvetica', '', 22);
$pdf->SetXY(0, 116);
$pdf->Cell(210, 10, t($alumno), 0, 1, 'C');
$pdf->SetFont('Helvetica', '', 13);
$pdf->SetXY(20, 135);
$pdf->MultiCell(170, 8, t("Por su participación en la Inyección Educativa"), 0, 'C');
$pdf->SetFont('Helvetica', 'B', 14);
$pdf->MultiCell(170, 8, t("{$curso}”,"), 0, 'C');
if ($horas) {
$pdf->SetFont('Helvetica', '', 12);
$pdf->MultiCell(170, 8, t("con duración de {$horas} horas."), 0, 'C');
}
// Píldoras
} elseif ($tipo === 'pildora') {
$pdf->SetFont('Helvetica', '', 16);
$pdf->SetXY(0, 82);
$pdf->Cell(210, 10, t("Otorga la presente"), 0, 1, 'C');
$pdf->SetFont('Helvetica', 'B', 18);
$pdf->SetXY(0, 95);
$pdf->Cell(210, 10, t("CONSTANCIA"), 0, 1, 'C');
$pdf->SetFont('Helvetica', 'I', 14);
$pdf->SetXY(0, 106);
$pdf->Cell(210, 10, t("a:"), 0, 1, 'C');
$pdf->SetFont('Helvetica', '', 22);
$pdf->SetXY(0, 116);
$pdf->Cell(210, 10, t($alumno), 0, 1, 'C');
$pdf->SetFont('Helvetica', '', 13);
$pdf->SetXY(20, 135);
$pdf->MultiCell(170, 8, t("Por su asistencia a la píldora educativa"), 0, 'C');
$pdf->SetFont('Helvetica', 'B', 14);
$pdf->MultiCell(170, 8, t("{$curso}"), 0, 'C');
if ($horas) {
$pdf->SetFont('Helvetica', '', 12);
$pdf->MultiCell(170, 8, t("con duración de {$horas} horas."), 0, 'C');
}
}
$pdf->SetFont('Helvetica', 'B', 12);
$pdf->SetXY(0, 245);
$pdf->Cell(210, 10, t("Dr. Juan Manuel Gutiérrez Méndez"), 0, 1, 'C');
$pdf->SetFont('Helvetica', '', 11);
$pdf->Cell(210, 6, t("Director de Proyectos"), 0, 1, 'C');
$pdf->SetFont('Helvetica', 'I', 10);
$pdf->SetXY(0, 268);
$pdf->Cell(210, 6, t("Se expide en la ciudad de Xalapa, Ver., a los {$dia} días de {$mes} de {$anio}"), 0, 1, 'C');
ob_end_clean();
$pdf->Output();