File "ConsultaController.php"

Full Path: C:/wamp64/www/Asistencia_Capacitacion/Controladores/ConsultaController.php
File size: 2.6 KB
MIME-type: text/x-php
Charset: utf-8

<?php
// File: Controladores/ConsultaController.php

require_once 'Controladores/BaseController.php';
// Reutilizamos el modelo de Asistencia
require_once 'Modelos/AsistenciaModel.php'; 

class ConsultaController extends BaseController {
    
    private $asistenciaModel;
    private $empresaNombre; 

    public function __construct() {
        // Verificar sesión al inicio del controlador
        if (!isset($_SESSION['logged_in']) || $_SESSION['logged_in'] !== true) {
            $this->redirect(BASE_URL . '/index.php?url=login/index');
        }
        
        $this->asistenciaModel = new AsistenciaModel();
        
        // --- CORREGIDO: Lógica correcta para verificar la empresa en sesión ---
        if (!isset($_SESSION['empresa']) || empty(trim($_SESSION['empresa']))) {
            die("Error: El nombre de la empresa del usuario no se encontró en la sesión. Inicie sesión nuevamente.");
        }
        $this->empresaNombre = $_SESSION['empresa'];
        // ----------------------------------------
    }
    
    // Acción principal para mostrar la tabla de consulta (GET /index.php?url=consulta/index)
    public function index() {
        // 1. Obtener la variable de la URL (ver_todos)
        $verTodos = isset($_GET['ver_todos']) && $_GET['ver_todos'] == '1';

        // 2. Obtener parámetros de filtro desde GET
        $filtros = [
            'cedula'        => isset($_GET['cedula']) ? trim($_GET['cedula']) : '',
            'capacitacion'  => isset($_GET['capacitacion']) ? trim($_GET['capacitacion']) : '',
            'fecha_desde'   => isset($_GET['fecha_desde']) ? trim($_GET['fecha_desde']) : '',
            'fecha_hasta'   => isset($_GET['fecha_hasta']) ? trim($_GET['fecha_hasta']) : '',
        ];

        // 3. Delegar la obtención de datos al Modelo
        // --- CORREGIDO: Parámetros en el orden correcto ---
        //    getRegistrosAsistencia($nombreEmpresa, $verTodos, $filtros)
        $registros = $this->asistenciaModel->getRegistrosAsistencia($this->empresaNombre, $verTodos, $filtros);
        
        // 4. Obtener las capacitaciones de la empresa para el dropdown del filtro
        $capacitaciones = $this->asistenciaModel->getCapacitaciones($this->empresaNombre);

        // 5. Crear el array de datos para la Vista
        $data = [
            'registros'       => $registros,
            'verTodos'        => $verTodos,
            'fechaConsulta'   => date('d/m/Y H:i:s'),
            'filtros'         => $filtros,
            'capacitaciones'  => $capacitaciones,
        ];
        
        // 6. Cargar la vista de consulta
        $this->view('consulta/index', $data);
    }
}