/** * Método para descargar */ public function descargar($key = '') { if (!($id = Security::getKey($key, 'descargar_reporte', 'int'))) { return Redirect::toAction('listar'); } $reporte = new Reporte(); if (!$reporte->find_first($id)) { Flash::info('El archivo de reporte no fue encontrado'); return Redirect::toAction('listar'); } $this->file = dirname(APP_PATH) . "/public/" . $reporte->ruta; if (!is_file($this->file)) { Flash::warning('No hemos podido localizar el archivo. Por favor contacta al administrador del sistema.'); return Redirect::toAction('listar'); } View::template(NULL); $this->reporte = $reporte; }
/** * Método para crear/modificar un objeto de base de datos * * @param string $medthod: create, update * @param array $data: Data para autocargar el modelo * @param array $optData: Data adicional para autocargar * * return object ActiveRecord */ public static function setReporte($method, $data, $optData = null) { $obj = new Reporte($data); //Se carga los datos con los de las tablas if ($optData) { //Se carga información adicional al objeto $obj->dump_result_self($optData); } //Verifico que no exista otro menu, y si se encuentra inactivo lo active $conditions = "usuario_id = {$obj->usuario_id} and nombre = '{$data['nombre']}' and DATE_FORMAT(fecha, '%Y-%m') = DATE_FORMAT('{$data['fecha']}', '%Y-%m')"; $old = new Reporte(); if ($old->find_first($conditions)) { if ($method == 'create') { $obj->id = $old->id; $method = 'update'; } } return $obj->{$method}() ? $obj : FALSE; }