public function getPeriodoActual($idArea) { $connection = parent::initDB(); $query = "SELECT idPeriodo, nombre, area, inicio, fin, observaciones " . "FROM periodo " . "WHERE inicio < curdate() AND curdate() < fin AND area = {$idArea} "; $result = mysql_query($query); if (mysql_num_rows($result) == 0) { throw new Exception('No hay periodos activos para esa área'); } $row = mysql_fetch_array($result); $periodo = new Periodo(); $periodo->setIdPeriodo($row['idPeriodo']); $periodo->setNombre($row['nombre']); $periodo->setArea($this->areaDAO->getArea($row['area'])); $periodo->setInicioISO($row['inicio']); $periodo->setFinISO($row['fin']); $periodo->setObservaciones($row['observaciones']); parent::closeDB($connection); return $periodo; }
/** * Realiza las validaciones necesarias y agrega un nuevo período al sistema. * Informa errores mediante excepciones. */ private function agregarPeriodo() { if (isset($_REQUEST['nombre']) && isset($_REQUEST['area']) && isset($_REQUEST['fechaInicio']) && isset($_REQUEST['fechaFin']) && isset($_REQUEST['observaciones'])) { // Acciones ejecutadas $periodo = new Periodo(); $periodo->setNombre($_REQUEST['nombre']); $periodo->setArea($this->gestorAreas->getArea($_REQUEST['area'])); $periodo->setInicio($_REQUEST['fechaInicio']); $periodo->setFin($_REQUEST['fechaFin']); $periodo->setObservaciones($_REQUEST['observaciones']); // Impresion imprimirTabulados(5); echo '<div class="tablaTituloBotones">'; try { $this->gestorPeriodos->insertarPeriodo($periodo); imprimirTabulados(6); echo '<h3>El período ha sido agregado exitosamente</h3>'; } catch (Exception $excepcion) { imprimirTabulados(5); echo '<h2>Se produjo un error al procesar la solicitud:</h2><br />'; imprimirTabulados(5); echo '<h3>' . $excepcion->getMessage() . '</h3>'; } imprimirTabulados(5); echo '</div>'; $this->imprimirListaPeriodos(); } else { throw new Exception('No se especificó un parámetro'); } }