DiploMaster/api/diploma.php

78 lines
2.0 KiB
PHP

<?php
header('Content-Type: application/json');
require '../includes/config.php';
if (!is_logged_in()) {
http_response_code(401);
echo json_encode(['error' => 'No autenticado']);
exit;
}
try {
$profesorId = $_SESSION['profesor']['id'] ?? null;
$action = $_GET['action'] ?? null;
if ($action === 'resend') {
// Lógica para reenviar diploma
$codigo = $_GET['codigo'] ?? null;
if (!$codigo) {
throw new Exception('Código de diploma no proporcionado');
}
// Aquí iría la lógica para reenviar el diploma por email
echo json_encode(['success' => true, 'message' => 'Diploma reenviado']);
exit;
}
$query = "
SELECT
d.id,
d.codigo_unico,
d.fecha_emision,
a.nombre AS alumno_nombre,
a.email AS alumno_email,
c.nombre AS curso_nombre,
c.tipo AS curso_tipo,
c.id AS curso_id,
DATE_FORMAT(d.fecha_emision, '%d/%m/%Y') AS fecha_formateada
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
";
$params = [];
if ($profesorId) {
$query .= " WHERE c.profesor_id = ?";
$params[] = $profesorId;
}
$query .= " ORDER BY d.fecha_emision DESC";
$stmt = $pdo->prepare($query);
$stmt->execute($params);
$diplomas = $stmt->fetchAll();
// Asegurar que todos los diplomas tengan código único
foreach ($diplomas as &$diploma) {
if (empty($diploma['codigo_unico'])) {
$diploma['codigo_unico'] = 'DIPL-' . str_pad($diploma['id'], 6, '0', STR_PAD_LEFT);
}
}
echo json_encode([
'success' => true,
'data' => $diplomas,
'count' => count($diplomas)
]);
} catch (Exception $e) {
http_response_code(500);
echo json_encode([
'success' => false,
'error' => $e->getMessage()
]);
}
?>