/** * Devuelve las instituciones para el autocomplete de la busqueda de instituciones */ public function buscarInstituciones() { //si accedio a traves de la url muestra pagina 404 if (!$this->getAjaxHelper()->isAjaxContext()) { throw new Exception("", 404); } try { $this->getJsonHelper()->initJsonAjaxResponse(); $iRecordsTotal = 0; $sOrderBy = $sOrder = $iIniLimit = $iRecordCount = null; $filtro = array("i.nombre" => $this->getRequest()->get('str')); $vInstituciones = ComunidadController::getInstance()->obtenerInstituciones($filtro, $iRecordsTotal, $sOrderBy, $sOrder, $iIniLimit, $iRecordCount); $vResult = array(); if (count($vInstituciones) > 0) { foreach ($vInstituciones as $oInstitucion) { $obj = new stdClass(); $obj->id = $oInstitucion->getId(); $obj->nombre = $oInstitucion->getNombre(); $vResult[] = $obj; } } //agrega una url para que el js redireccione $this->getJsonHelper()->setSuccess(true)->setValor("instituciones", $vResult); } catch (Exception $e) { print_r($e); } //setea headers y body en el response con los valores codificados $this->getJsonHelper()->sendJsonAjaxResponse(); }
public final function obtenerInstituciones($filtro, &$iRecordsTotal, $sOrderBy = null, $sOrder = null, $iIniLimit = null, $iRecordCount = null) { try { $db = $this->conn; //$filtro = $this->escapeStringArray($filtro); $sSQL = "SELECT SQL_CALC_FOUND_ROWS\n i.id as iId, \n i.nombre as sNombre,\n\t\t\t\t\t\t i.`ciudades_id` as iCiudad,\n\t\t\t\t\t\t i.`moderado` as iModerado,\n\t\t\t\t\t\t i.`descripcion` as sDescripcion,\n\t\t\t\t\t\t i.`tipoInstitucion_id` as iTipoInstitucion,\n\t\t\t\t\t\t it.`nombre` as sNombreTipoInstitucion,\n\t\t\t\t\t\t i.`direccion` as sDireccion,\n\t\t\t\t\t\t i.`email` as sEmail,\n\t\t\t\t\t\t i.`telefono` as sTelefono,\n\t\t\t\t\t\t i.`sitioWeb` as sSitioWeb,\n\t\t\t\t\t\t i.`horariosAtencion` as sHorariosAtencion,\n\t\t\t\t\t\t i.`autoridades` as sAutoridades,\n\t\t\t\t\t\t i.`cargo` as sCargo,\n\t\t\t\t\t\t i.`personeriaJuridica` as sPersoneriaJuridica,\n\t\t\t\t\t\t i.`sedes` as sSedes,\n\t\t\t\t\t\t i.`actividadesMes` as sActividadesMes,\n\t\t\t\t\t\t i.`usuario_id` as iUsuarioId,\n\t\t\t\t\t\t i.`latitud` as sLatitud,\n\t\t\t\t\t\t i.`longitud` as sLongitud,\n\t\t\t\t\t\t prov.`id` as provinciaId, \n\t\t\t\t\t\t pais.id as paisId\n FROM\n \tinstituciones i \n JOIN \n \tusuarios u ON u.id = i.usuario_id \n JOIN\n \tinstituciones_tipos it ON it.id = i.tipoInstitucion_id\n \t\t\t\t\tLEFT JOIN `ciudades` c on c.`id` = i.`ciudades_id`\n \t\t\t\t\tLEFT JOIN `provincias` prov on prov.`id` = c.`provincia_id`\n \t\t\t\t\tLEFT JOIN `paises` pais on pais.`id` = prov.`paises_id` "; $WHERE = array(); if (isset($filtro['i.nombre']) && $filtro['i.nombre'] != "") { $WHERE[] = $this->crearFiltroTexto('i.nombre', $filtro['i.nombre']); } if (isset($filtro['i.id']) && $filtro['i.id'] != "") { $WHERE[] = $this->crearFiltroSimple('i.id', $filtro['i.id'], MYSQL_TYPE_INT); } if (isset($filtro['i.tipoInstitucion_id']) && $filtro['i.tipoInstitucion_id'] != "") { $WHERE[] = $this->crearFiltroSimple('i.tipoInstitucion_id', $filtro['i.tipoInstitucion_id'], MYSQL_TYPE_INT); } if (isset($filtro['pais.id']) && $filtro['pais.id'] != "") { $WHERE[] = $this->crearFiltroSimple('pais.id', $filtro['pais.id'], MYSQL_TYPE_INT); } if (isset($filtro['prov.id']) && $filtro['prov.id'] != "") { $WHERE[] = $this->crearFiltroSimple('prov.id', $filtro['prov.id'], MYSQL_TYPE_INT); } if (isset($filtro['i.ciudades_id']) && $filtro['i.ciudades_id'] != "") { $WHERE[] = $this->crearFiltroSimple('i.ciudades_id', $filtro['i.ciudades_id'], MYSQL_TYPE_INT); } if (isset($filtro['i.usuario_id']) && $filtro['i.usuario_id'] != "") { $WHERE[] = $this->crearFiltroSimple('i.usuario_id', $filtro['i.usuario_id'], MYSQL_TYPE_INT); } if (isset($filtro['i.tipoInstitucion_id']) && $filtro['i.tipoInstitucion_id'] != "") { $WHERE[] = $this->crearFiltroSimple('i.tipoInstitucion_id', $filtro['i.tipoInstitucion_id'], MYSQL_TYPE_INT); } $sSQL = $this->agregarFiltrosConsulta($sSQL, $WHERE); /*if(!empty($filtro)){ $sSQL .=" AND ".$this->crearCondicionSimple($filtro); }*/ if (isset($sOrderBy) && isset($sOrder)) { $sSQL .= " order by {$sOrderBy} {$sOrder} "; } if ($iIniLimit !== null && $iRecordCount !== null) { $sSQL .= " limit " . $db->escape($iIniLimit, false, MYSQL_TYPE_INT) . "," . $db->escape($iRecordCount, false, MYSQL_TYPE_INT); } $db->query($sSQL); $iRecordsTotal = (int) $db->getDBValue("select FOUND_ROWS() as list_count"); $aInstituciones = array(); while ($oObj = $db->oNextRecord()) { $oInstitucion = new stdClass(); $oInstitucion->iId = $oObj->iId; $oInstitucion->sNombre = $oObj->sNombre; $oInstitucion->iModerado = $oObj->iModerado; $oInstitucion->sDescripcion = $oObj->sDescripcion; $oInstitucion->iTipoInstitucion = $oObj->iTipoInstitucion; $oInstitucion->sNombreTipoInstitucion = $oObj->sNombreTipoInstitucion; $oInstitucion->sDireccion = $oObj->sDireccion; $oInstitucion->sEmail = $oObj->sEmail; $oInstitucion->sTelefono = $oObj->sTelefono; $oInstitucion->sSitioWeb = $oObj->sSitioWeb; $oInstitucion->sHorariosAtencion = $oObj->sHorariosAtencion; $oInstitucion->sAutoridades = $oObj->sAutoridades; $oInstitucion->sCargo = $oObj->sCargo; $oInstitucion->sPersoneriaJuridica = $oObj->sPersoneriaJuridica; $oInstitucion->sSedes = $oObj->sSedes; $oInstitucion->sActividadesMes = $oObj->sActividadesMes; $oInstitucion->iCiudadId = $oObj->iCiudad; $oInstitucion->sLatitud = $oObj->sLatitud; $oInstitucion->sLongitud = $oObj->sLongitud; $oInstitucion->oCiudad = ComunidadController::getInstance()->getCiudadById($oObj->iCiudad); $oInstitucion->oUsuario = SysController::getInstance()->getUsuarioById($oObj->iUsuarioId); $aInstituciones[] = Factory::getInstitucionInstance($oInstitucion); } return $aInstituciones; } catch (Exception $e) { return null; throw new Exception($e->getMessage(), 0); } }
public function procesarSeguimiento() { //si accedio a traves de la url muestra pagina 404 if (!$this->getAjaxHelper()->isAjaxContext()) { throw new Exception("", 404); } try { //se fija si existe callback de jQuery y lo guarda, tmb inicializa el array que se va a codificar $this->getJsonHelper()->initJsonAjaxResponse(); $perfil = SessionAutentificacion::getInstance()->obtenerIdentificacion(); $iTipoSeguimiento = $this->getRequest()->getPost('tipoSeguimiento'); $iPersona = $this->getRequest()->getPost('personaId'); $filtro = array("s.discapacitados_id" => $iPersona); $iRecordsTotal = 0; $sOrderBy = null; $sOrder = null; $iIniLimit = null; $iRecordCount = null; $listaSeguimientos = SeguimientosController::getInstance()->listarSeguimientos($filtro, $iRecordsTotal, $sOrderBy, $sOrder, $iIniLimit, $iRecordCount); if (count($listaSeguimientos) > 1) { $this->getJsonHelper()->setSuccess(false)->setMessage("La persona a la que quiere hacer un seguimiento ya posee 2. No se puede agregar mas de 2 seguimientos a una persona."); $this->getJsonHelper()->sendJsonAjaxResponse(); return; } else { if (count($listaSeguimientos) > 0) { if ($listaSeguimientos[0]->getTipoSeguimientoId() == $iTipoSeguimiento) { $this->getJsonHelper()->setSuccess(false)->setMessage("No puede agregar 2 seguimientos del mismo tipo a una persona"); $this->getJsonHelper()->sendJsonAjaxResponse(); return; } } } $sFrecuencias = $this->getRequest()->getPost('frecuencias'); $sDiaHorario = $this->getRequest()->getPost('diaHorario'); $iTipoPractica = $this->getRequest()->getPost('tipoPractica'); $oTipoSeg = Factory::getTipoSeguimientoInstance(new stdClass()); $sTipoSeguimiento = $oTipoSeg->getTipoById($iTipoSeguimiento); $obj = new stdClass(); $oTipoPractica = Factory::getTipoPracticasSeguimientoInstance(new stdClass()); $oTipoPractica->setId($iTipoPractica); $iRecordsTotal = 0; $sOrderBy = null; $sOrder = null; $iIniLimit = null; $iRecordCount = null; $filtro = array("p.id" => $iPersona); $oDiscapacitado = ComunidadController::getInstance()->obtenerDiscapacitado($filtro, $iRecordsTotal, $sOrderBy, $sOrder, $iIniLimit, $iRecordCount); $obj->oPractica = $oTipoPractica; $obj->sFrecuenciaEncuentros = $sFrecuencias; $obj->sDiaHorario = $sDiaHorario; $obj->oDiscapacitado = $oDiscapacitado; $obj->oUsuario = $perfil->getUsuario(); if ($sTipoSeguimiento == "SCC") { $oSeguimiento = Factory::getSeguimientoSCCInstance($obj); } elseif ($sTipoSeguimiento == "PERSONALIZADO") { $oSeguimiento = Factory::getSeguimientoPersonalizadoInstance($obj); } $res = SeguimientosController::getInstance()->guardarSeguimiento($oSeguimiento); if ($res) { $this->getJsonHelper()->setSuccess(true); } else { $this->getJsonHelper()->setSuccess(false); } } catch (Exception $e) { $this->getJsonHelper()->setSuccess(false); } //setea headers y body en el response con los valores codificados $this->getJsonHelper()->sendJsonAjaxResponse(); }