Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
AVIDOTAPP
/
controllers
:
ConsultaController.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php class ConsultaController { private $modelo; public function __construct() { require_once 'models/ConsultaModel.php'; $this->modelo = new ConsultaModel(); } // ───────────────────────────────────────────────────────────── // CONSULTA EPP (CONSUEPP) — BD principal // URL: index.php?controller=Consulta&action=index // ───────────────────────────────────────────────────────────── public function index() { $this->verificarSesion(); // Datos para los selects de filtro $areas = $this->modelo->getAreas(); $ccostos = $this->modelo->getCCostos(); // Variables de resultados (vacías por defecto) $resultados = []; $operario = null; $tipo_filtro = $_POST['tipo_filtro'] ?? null; $fecha_inicio = $_POST['fecha_inicio'] ?? date('Y-m-d', strtotime('-30 days')); $fecha_fin = $_POST['fecha_fin'] ?? date('Y-m-d'); if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['tipo_filtro'])) { $tipo_filtro = $_POST['tipo_filtro']; $fecha_inicio = $_POST['fecha_inicio']; $fecha_fin = $_POST['fecha_fin']; $valor = $this->getValorFiltro($tipo_filtro, $_POST); $resultados = $this->modelo->buscarEntregas($tipo_filtro, $valor, $fecha_inicio, $fecha_fin); if ($tipo_filtro === 'cedula' && !empty($valor)) { $operario = $this->modelo->getDatosOperario($valor); } } include 'views/fconsuldota/consulta_epp.php'; } // ───────────────────────────────────────────────────────────── // EXPORTAR EXCEL — BD principal (descarga directa) // URL: index.php?controller=Consulta&action=exportarExcel (POST) // ───────────────────────────────────────────────────────────── public function exportarExcel() { $this->verificarSesion(); $tipo_filtro = $_POST['tipo_filtro_export'] ?? 'cedula'; $fecha_inicio = $_POST['fecha_inicio_export'] ?? date('Y-m-d'); $fecha_fin = $_POST['fecha_fin_export'] ?? date('Y-m-d'); $valor = $this->getValorFiltroExport($tipo_filtro, $_POST); $rows = $this->modelo->exportarExcelPrincipal($tipo_filtro, $valor, $fecha_inicio, $fecha_fin); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="entregas_filtradas.xls"'); header('Cache-Control: max-age=0'); include 'views/fconsuldota/excel_principal.php'; exit(); } // ───────────────────────────────────────────────────────────── // HISTÓRICO (BD externa) // URL: index.php?controller=Consulta&action=historico // ───────────────────────────────────────────────────────────── public function historico() { $this->verificarSesion(); $resultados = []; $operario = null; $tipo_filtro = null; $fecha_inicio = $_POST['fecha_inicio'] ?? date('Y-m-d', strtotime('-30 days')); $fecha_fin = $_POST['fecha_fin'] ?? date('Y-m-d'); $error = null; if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['tipo_filtro'])) { $tipo_filtro = $_POST['tipo_filtro']; $fecha_inicio = $_POST['fecha_inicio']; $fecha_fin = $_POST['fecha_fin']; $valor = $tipo_filtro === 'EMPLEADO' ? ($_POST['EMPLEADO'] ?? '') : ($_POST['item'] ?? ''); try { $resultados = $this->modelo->buscarHistorico($tipo_filtro, $valor, $fecha_inicio, $fecha_fin); if ($tipo_filtro === 'EMPLEADO' && !empty($valor)) { $operario = ['cedula' => $valor]; } } catch (Exception $e) { $error = $e->getMessage(); } } include 'views/fconsuldota/historico.php'; } // ───────────────────────────────────────────────────────────── // EXPORTAR EXCEL HISTÓRICO // URL: index.php?controller=Consulta&action=exportarExcelHistorico (POST) // ───────────────────────────────────────────────────────────── public function exportarExcelHistorico() { $this->verificarSesion(); $tipo_filtro = $_POST['tipo_filtro_export'] ?? 'EMPLEADO'; $fecha_inicio = $_POST['fecha_inicio_export'] ?? date('Y-m-d'); $fecha_fin = $_POST['fecha_fin_export'] ?? date('Y-m-d'); $valor = $tipo_filtro === 'EMPLEADO' ? ($_POST['EMPLEADO_export'] ?? '') : ($_POST['item_export'] ?? ''); $rows = $this->modelo->exportarExcelHistorico($tipo_filtro, $valor, $fecha_inicio, $fecha_fin); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="historico_filtrado.xls"'); header('Cache-Control: max-age=0'); include 'views/fconsuldota/excel_historico.php'; exit(); } // ───────────────────────────────────────────────────────────── // PDF HISTÓRICO (vista imprimible por NOE) // URL: index.php?controller=Consulta&action=historicoPDF&noe=X // ───────────────────────────────────────────────────────────── public function historicoPDF() { $noe = trim($_GET['noe'] ?? ''); if (empty($noe)) { die('Error: No se proporcionó el número de entrega (NOE).'); } $datos_entrega = $this->modelo->getEntregaPorNOE($noe); if (!$datos_entrega) { die('Error: No se encontró la entrega con NOE: ' . htmlspecialchars($noe)); } $EMPLEADO = $datos_entrega['EMPLEADO']; $FECHA_ENTREGA = $datos_entrega['FECHA']; $DOTACION = $datos_entrega['DOTACION']; $ENTREGA = $datos_entrega['ENTREGA']; $FECHAD = date("d", strtotime($FECHA_ENTREGA)); $FECHAM = date("m", strtotime($FECHA_ENTREGA)); $FECHAY = date("Y", strtotime($FECHA_ENTREGA)); // Datos del empleado $fila = $this->modelo->getEmpleadoHistorico($EMPLEADO); if (!$fila) { $fila = ['', 'EMPLEADO', 'NO REGISTRADO', '', '', '']; } // Firma $firma_raw = $this->modelo->getFirmaPorNOE($noe); $imgSrc = ConsultaModel::procesarFirma($firma_raw); // Items entregados $items = $this->modelo->getItemsPorNOE($noe); include 'views/fconsuldota/historico_pdf.php'; } // ───────────────────────────────────────────────────────────── // HELPERS PRIVADOS // ───────────────────────────────────────────────────────────── private function getValorFiltro($tipo, $post) { switch ($tipo) { case 'cedula': return trim($post['cedula'] ?? ''); case 'item': return trim($post['item'] ?? ''); case 'area': return trim($post['area'] ?? ''); case 'ccosto': return trim($post['ccosto'] ?? ''); default: return ''; } } private function getValorFiltroExport($tipo, $post) { switch ($tipo) { case 'cedula': return trim($post['cedula_export'] ?? ''); case 'item': return trim($post['item_export'] ?? ''); case 'area': return trim($post['area_export'] ?? ''); case 'ccosto': return trim($post['ccosto_export'] ?? ''); default: return ''; } } private function verificarSesion() { if (!isset($_SESSION['DIGITA']) || empty($_SESSION['DIGITA'])) { header('Location: index.php'); exit(); } } } ?>