<?php
session_start();

// Evitar caché del PDF en el navegador
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');

// Establecer la zona horaria de Santiago de Chile
date_default_timezone_set('America/Santiago');

// Mostrar errores en pantalla (debug)
error_reporting(E_ALL);
ini_set('display_errors', 1);

if (!isset($_SESSION['user_id'])) {
    header('Location: login.php');
    exit;
}

require(__DIR__ . '/../lib/fpdf/fpdf.php');
require_once(__DIR__ . '/../config/db_auto.php');

$matricula_id = $_GET['matricula_id'] ?? 0;
if ($matricula_id == 0) {
    die("Error: No se proporcionó un ID de matrícula válido.");
}

// Consulta para obtener datos del alumno, apoderado y sector
$stmt = $pdo->prepare("
    SELECT 
        a.nombre, a.ap_paterno, a.ap_materno,
        s.domicilio,
        g.nombre AS grado_nombre,
        m.fecha_matricula,
        s.sector,
        f.nombre AS apoderado_nombre, 
        f.ap_paterno AS apoderado_ap_paterno, 
        f.ap_materno AS apoderado_ap_materno,
        f.domicilio AS apoderado_domicilio,
        f.telefono AS apoderado_telefono,
        COALESCE(af.parentesco_especifico, f.parentesco) AS parentesco
    FROM matriculas m
    JOIN alumnos a ON m.alumno_id = a.id
    JOIN grados g ON m.grado_id = g.id
    LEFT JOIN social_alumno s ON a.id = s.alumno_id
    LEFT JOIN alumno_familiar af ON a.id = af.alumno_id AND af.tipo_relacion = 'APODERADO TITULAR'
    LEFT JOIN familiares f ON af.familiar_id = f.id
    WHERE m.id = ?
");
$stmt->execute([$matricula_id]);
$data = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$data) {
    die("Error: No se encontró la matrícula con el ID proporcionado.");
}

// Determinar ruta según sector
$sector = strtoupper(trim($data['sector'] ?? ''));
$ruta_hospital = ($sector === 'HOSPITAL') ? ' X ' : '';
$ruta_laguna = ($sector === 'LAGUNA') ? 'X' : '';
$ruta_rangue = ($sector === 'RANGUE') ? 'X' : '';

class PDF extends FPDF
{
    function Header()
    {
        // Logo arriba a la izquierda
        $logoPath = __DIR__ . '/../assets/logo_crn.png';
        if (file_exists($logoPath)) {
            $this->Image($logoPath, 20, 10, 25);
        }

        // Título principal
        $this->SetY(40);
        $this->SetFont('Arial', 'B', 13);
        $this->Cell(0, 6, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', 'SOLICITUD DE POSTULACIÓN TRANSPORTE ESCOLAR MUNICIPAL 2026'), 0, 1, 'C');

        $this->SetFont('Arial', 'B', 12);
        $this->Cell(0, 6, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', 'ESCUELA CARMEN REVECO NÚÑEZ'), 0, 1, 'C');
        $this->Ln(5);
    }

    function Footer()
    {
        $this->SetY(-15);
        $this->SetFont('Arial', 'I', 8);
        $this->SetTextColor(128, 128, 128);
        $fecha = date('d/m/Y H:i');
        $this->Cell(0, 5, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', "Documento generado el: $fecha"), 0, 1, 'C');
        $this->SetTextColor(0, 0, 0);
    }
}

// Crear PDF con tamaño Oficio Chileno
$pdf = new PDF('P', 'mm', array(215.9, 330.2));
$pdf->SetMargins(20, 10, 10);
$pdf->SetAutoPageBreak(true, 15);
$pdf->AliasNbPages();
$pdf->AddPage();

$w = 185.9; // Ancho disponible

// Información del Servicio de Transporte
$pdf->SetFont('Arial', 'B', 11);
$pdf->Cell(5, 6, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', '1.-'), 0, 0, 'L');
$pdf->Cell(0, 6, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', ' Información del Servicio de Transporte:'), 0, 1, 'L');
$pdf->Ln(2);

// Tabla: Fecha de solicitud
$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(50, 7, 'Fecha de solicitud:', 1, 0, 'L');
$pdf->SetFont('Arial', '', 10);
$pdf->Cell(135.9, 7, date('d/m/Y'), 1, 1, 'L');

// Tabla: Ruta solicitada (con checkboxes automáticos según sector)
$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(50, 7, 'Ruta solicitada:', 1, 0, 'L');
$pdf->SetFont('Arial', '', 10);
$pdf->Cell(45.3, 7, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', "[$ruta_hospital] Hospital"), 1, 0, 'C');
$pdf->Cell(45.3, 7, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', "[$ruta_laguna] Laguna"), 1, 0, 'C');
$pdf->Cell(45.3, 7, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', "[$ruta_rangue] Rangue"), 1, 1, 'C');

$pdf->Ln(5);

// Datos del Estudiante
$pdf->SetFont('Arial', 'B', 11);
$pdf->Cell(5, 6, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', '2.-'), 0, 0, 'L');
$pdf->Cell(0, 6, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', ' Datos del estudiante:'), 0, 1, 'L');
$pdf->Ln(2);

$nombre_alumno = trim(($data['nombre'] ?? '') . ' ' . ($data['ap_paterno'] ?? '') . ' ' . ($data['ap_materno'] ?? ''));
$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(50, 7, 'Nombre completo:', 1, 0, 'L');
$pdf->SetFont('Arial', '', 10);
$pdf->Cell(135.9, 7, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', strtoupper($nombre_alumno)), 1, 1, 'L');

$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(50, 7, 'Curso:', 1, 0, 'L');
$pdf->SetFont('Arial', '', 10);
$pdf->Cell(135.9, 7, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $data['grado_nombre'] ?? ''), 1, 1, 'L');

$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(50, 7, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', 'Dirección:'), 1, 0, 'L');
$pdf->SetFont('Arial', '', 10);
$pdf->Cell(135.9, 7, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', strtoupper($data['domicilio'] ?? '')), 1, 1, 'L');

$pdf->Ln(5);

// Datos del Apoderado
$pdf->SetFont('Arial', 'B', 11);
$pdf->Cell(5, 6, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', '3.-'), 0, 0, 'L');
$pdf->Cell(0, 6, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', ' Datos apoderados:'), 0, 1, 'L');
$pdf->Ln(2);

$nombre_apoderado = trim(($data['apoderado_nombre'] ?? '') . ' ' . ($data['apoderado_ap_paterno'] ?? '') . ' ' . ($data['apoderado_ap_materno'] ?? ''));
$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(50, 7, 'Nombre completo:', 1, 0, 'L');
$pdf->SetFont('Arial', '', 10);
$pdf->Cell(135.9, 7, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', strtoupper($nombre_apoderado)), 1, 1, 'L');

$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(50, 7, 'Parentesco:', 1, 0, 'L');
$pdf->SetFont('Arial', '', 10);
$pdf->Cell(135.9, 7, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', strtoupper($data['parentesco'] ?? '')), 1, 1, 'L');

$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(50, 7, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', 'Dirección:'), 1, 0, 'L');
$pdf->SetFont('Arial', '', 10);
$pdf->Cell(135.9, 7, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', strtoupper($data['apoderado_domicilio'] ?? '')), 1, 1, 'L');

$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(50, 7, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', 'Teléfono de contacto:'), 1, 0, 'L');
$pdf->SetFont('Arial', '', 10);
$pdf->Cell(135.9, 7, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $data['apoderado_telefono'] ?? ''), 1, 1, 'L');

$pdf->Ln(5);

// Documentos Solicitados
$pdf->SetFont('Arial', 'B', 11);
$pdf->Cell(5, 6, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', '4.-'), 0, 0, 'L');
$pdf->Cell(0, 6, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', ' Documentos solicitados (ADJUNTAR):'), 0, 1, 'L');
$pdf->Ln(2);

$documentos = [
    'Cartola de RSH con Domicilio en Paine dentro 60%',
    'Documento que acredite adulto responsable este trabajando o estudiando.',
    'Carta informativa de reglamento de transporte escolar firmada por los padres postulantes.',
    'Comprobante de matrícula',
    'Acta de tribunal en caso de cuidado personal de alumno(a) de terceros con dirección diferente a la que figura en RSH.'
];

$pdf->SetFont('Arial', '', 9);
foreach ($documentos as $doc) {
    $pdf->Cell(8, 6, '[   ]', 1, 0, 'C');
    $pdf->Cell(177.9, 6, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $doc), 1, 1, 'L');
}

$pdf->Ln(10);

// Firmas
$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(92.95, 30, '', 1, 0, 'C'); // Espacio para firma
$pdf->Cell(92.95, 30, '', 1, 1, 'C'); // Espacio para firma

$pdf->Cell(92.95, 6, 'FIRMA SOLICITANTE', 0, 0, 'C');
$pdf->Cell(92.95, 6, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', 'FIRMA RECEPCIÓN'), 0, 1, 'C');

$pdf->Ln(5);

// Fecha al final
$pdf->SetFont('Arial', '', 10);
$mes_actual = date('F', strtotime($data['fecha_matricula'] ?? 'now'));
$meses_es = [
    'January' => 'enero',
    'February' => 'febrero',
    'March' => 'marzo',
    'April' => 'abril',
    'May' => 'mayo',
    'June' => 'junio',
    'July' => 'julio',
    'August' => 'agosto',
    'September' => 'septiembre',
    'October' => 'octubre',
    'November' => 'noviembre',
    'December' => 'diciembre'
];
$mes_es = $meses_es[$mes_actual] ?? strtolower($mes_actual);
$anio = date('Y', strtotime($data['fecha_matricula'] ?? 'now'));

$pdf->Cell(0, 6, iconv('UTF-8', 'ISO-8859-1//TRANSLIT', "Paine, $mes_es $anio."), 0, 1, 'R');

// Generar nombre de archivo
$primer_nombre = explode(' ', trim($data['nombre']))[0] ?? '';
$ap_paterno = trim($data['ap_paterno'] ?? '');
$nombre_archivo = 'SOLICITUD_TRANSPORTE_' . preg_replace('/[^A-Za-z0-9_\-]/', '_', strtoupper($primer_nombre . '_' . $ap_paterno)) . '.pdf';

$pdf->Output('I', $nombre_archivo);
