Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
Formaciones
/
Controladores
:
FormacionControlador.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php // Controladores/FormacionControlador.php require_once 'Modelos/FormacionModelo.php'; class FormacionControlador { private $modelo; public function __construct($db) { $this->modelo = new FormacionModelo($db); if (!esta_autenticado()) { header("Location: index.php?r=auth/login"); exit; } } public function index() { $busqueda = $_GET['busqueda'] ?? ''; $por_pagina = 10; $pagina_actual = isset($_GET['p']) ? (int)$_GET['p'] : 1; $inicio = ($pagina_actual - 1) * $por_pagina; $total_registros = $this->modelo->contarTodas($busqueda); $total_paginas = ceil($total_registros / $por_pagina); $Formaciones = $this->modelo->listarPaginadas($busqueda, $por_pagina, $inicio); $areas = $this->modelo->obtenerAreas(); require_once 'Vistas/admin/formacion.php'; } public function guardar() { if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Capturar y sanitizar datos $area = trim($_POST['area'] ?? ''); $tipo_formacion = trim($_POST['tipo_formacion'] ?? ''); $f_ini = trim($_POST['fecha_Inicial'] ?? ''); $f_fin = trim($_POST['fecha_Final'] ?? ''); $responsable = trim($_POST['Responsable'] ?? ''); $cedula = trim($_POST['Cedula'] ?? ''); $cargo = trim($_POST['Cargo'] ?? ''); $temas = trim($_POST['Temas'] ?? ''); // Quien está logueado actualmente $quien_registra = usuario_actual()['nombre']; // DEBUG: Registrar valores recibidos error_log("=== DATOS RECIBIDOS EN CONTROLADOR ==="); error_log("Area: " . $area); error_log("Tipo Formación: " . $tipo_formacion); error_log("Cedula: " . $cedula); error_log("Responsable: " . $responsable); error_log("Cargo: " . $cargo); error_log("Fecha Inicial: " . $f_ini); error_log("Fecha Final: " . $f_fin); error_log("Temas: " . $temas); error_log("Quien Registra: " . $quien_registra); // Manejo del archivo $file_data = null; if (isset($_FILES['evidencia']) && $_FILES['evidencia']['error'] === UPLOAD_ERR_OK) { $file_data = file_get_contents($_FILES['evidencia']['tmp_name']); error_log("Archivo PDF cargado: " . strlen($file_data) . " bytes"); } else { error_log("No se cargó archivo o hubo error: " . ($_FILES['evidencia']['error'] ?? 'no existe')); } // VALIDACIÓN if (empty($area)) { $_SESSION['error'] = "El campo Área es obligatorio."; error_log("ERROR: Área vacía"); } elseif (empty($tipo_formacion)) { $_SESSION['error'] = "El campo Tipo de Formación es obligatorio."; error_log("ERROR: Tipo de formación vacío"); } elseif (empty($cedula)) { $_SESSION['error'] = "El campo Cédula es obligatorio."; error_log("ERROR: Cédula vacía"); } elseif (empty($f_ini) || empty($f_fin)) { $_SESSION['error'] = "Las fechas son obligatorias."; error_log("ERROR: Fechas vacías"); } else { // Llamar al modelo con TODOS los parámetros en el orden correcto $exito = $this->modelo->guardar( $area, // 1 $tipo_formacion, // 2 $cedula, // 3 $responsable, // 4 $cargo, // 5 $f_ini, // 6 $f_fin, // 7 $temas, // 8 $file_data, // 9 $quien_registra // 10 ); if ($exito) { $_SESSION['exito'] = "Registro guardado exitosamente."; error_log("SUCCESS: Registro guardado"); } else { $_SESSION['error'] = "Error técnico al guardar en la base de datos."; error_log("ERROR: Fallo al ejecutar guardar()"); } } } header("Location: index.php?r=admin/Formacion"); exit; } public function verPdf() { $id = intval($_GET['id'] ?? 0); $res = $this->modelo->obtenerPorId($id); if ($res && $res['evidencia_datos']) { header("Content-type: application/pdf"); echo $res['evidencia_datos']; exit; } echo "PDF no encontrado."; } public function descargar() { $id = intval($_GET['id'] ?? 0); $res = $this->modelo->obtenerPorId($id); if ($res && $res['evidencia_datos']) { header("Content-type: application/pdf"); header("Content-Disposition: attachment; filename=\"evidencia_{$id}.pdf\""); echo $res['evidencia_datos']; exit; } } public function borrar() { $id = intval($_GET['id'] ?? 0); $this->modelo->borrar($id); header("Location: index.php?r=admin/Formacion"); exit; } }