function get_lista_items()
 {
     $proyecto = toba_contexto_info::get_db()->quote($this->proyecto);
     $sql = "SELECT\n\t\t\t\t\tproyecto, \n\t\t\t\t\titem, \n\t\t\t\t\tcarpeta,\n\t\t\t\t\tpadre \n\t\t\t\tFROM \n\t\t\t\t\tapex_item\n\t\t\t\tWHERE \n\t\t\t\t\tproyecto = {$proyecto}\n\t\t\t\tORDER BY carpeta, orden, nombre;";
     $items = toba_contexto_info::get_db()->consultar($sql);
     return $items;
 }
Exemplo n.º 2
0
 static function referenciar_memoria()
 {
     self::$memoria =& toba::manejador_sesiones()->segmento_editor();
     //Acceso a la informacion del modelo
     toba_contexto_info::set_proyecto(toba_editor::get_proyecto_cargado());
     toba_contexto_info::set_db(toba_editor::get_base_activa());
     if (!self::modo_prueba()) {
         return;
     }
     //Cambia el perfil activo
     $perfil_activo = toba::memoria()->get_parametro('perfil_activo');
     if (isset($perfil_activo)) {
         if ($perfil_activo == apex_ef_no_seteado) {
             toba::manejador_sesiones()->set_perfiles_funcionales_activos(toba::manejador_sesiones()->get_perfiles_funcionales());
         } else {
             toba::manejador_sesiones()->set_perfiles_funcionales_activos(array($perfil_activo));
         }
     }
     //Cambia el usuario de conexion
     $tipo_conexion = toba::memoria()->get_parametro('usuario_conexion');
     if (isset($tipo_conexion)) {
         self::$memoria['conexion_limitada'] = $tipo_conexion == 'limitado';
     }
     self::$fuentes = toba_info_editores::get_fuentes_datos(toba_editor::get_proyecto_cargado());
     $modelo = self::get_modelo_proyecto();
     foreach (self::$fuentes as $fuente) {
         try {
             if (self::$memoria['conexion_limitada'] && $fuente['permisos_por_tabla']) {
                 //El proyecto usa permisos por tablas para las operaciones, en modo previsualizacion se setea el rol especifico
                 $id_base = self::$memoria['instancia'] . ' ' . self::get_proyecto_cargado() . ' ' . $fuente['fuente_datos'];
                 $parametros = toba_dba::get_parametros_base($id_base);
                 $usuario = $modelo->get_usuario_prueba_db($fuente['fuente_datos']);
                 $parametros['usuario'] = $usuario;
                 $parametros['clave'] = $usuario;
                 toba_dba::set_parametros_base($id_base, $parametros);
             }
             //Pone la base por defecto en modo debug, para leer la cantidad y tiempo de las querys
             $base = toba_admin_fuentes::instancia()->get_fuente($fuente['fuente_datos'], toba_editor::get_proyecto_cargado())->get_db();
             if ($base) {
                 $base->set_modo_debug(true, false);
             }
         } catch (toba_error $e) {
             //Si no se tiene acceso a la base no se hace nada
         }
     }
     //Cambia el skin
     if (toba::memoria()->get_parametro('skin') != '') {
         $skin = explode(apex_qs_separador, toba::memoria()->get_parametro('skin'));
         $sql = "SELECT es_css3 FROM apex_estilo WHERE estilo = " . quote($skin[0]) . " AND proyecto =" . quote($skin[1]);
         $datos = toba::instancia()->get_db()->consultar_fila($sql);
         toba::proyecto()->set_parametro('estilo', $skin[0]);
         toba::proyecto()->set_parametro('estilo_proyecto', $skin[1]);
         toba::proyecto()->set_parametro('es_css3', $datos['es_css3']);
     }
     //Cambia tipo de navegación
     if (toba::memoria()->get_parametro('navegacion_ajax') != '') {
         $ajax = toba::memoria()->get_parametro('navegacion_ajax') ? true : false;
         toba::proyecto()->set_parametro('navegacion_ajax', $ajax);
     }
 }
Exemplo n.º 3
0
 static function get_lista_tipo_dato($mapeo_obligatorio = false)
 {
     $where = '';
     if ($mapeo_obligatorio) {
         $where = 'WHERE dt_tipo_dato IS NOT NULL';
     }
     $sql = "SELECT \n\t\t\t\t\ttipo_dato,\n  \t\t\t\t\tdescripcion_corta,\n  \t\t\t\t\tdescripcion,\n  \t\t\t\t\tdt_tipo_dato,\n  \t\t\t\t\telemento_formulario,\n\t\t\t\t\tcuadro_estilo,\n  \t\t\t\t\tcuadro_formato,\n  \t\t\t\t\tfiltro_operador\n\t\t\t\tFROM apex_molde_operacion_tipo_dato\n\t\t\t\t\t{$where}\n\t\t\t\tORDER BY descripcion_corta\n\t\t";
     return toba_contexto_info::get_db()->consultar($sql);
 }
Exemplo n.º 4
0
 function get_datos_listado()
 {
     $clausulas = array();
     if (isset($this->s__filtro)) {
         $clausulas = $this->dep('filtro')->get_sql_clausulas();
     }
     $clausulas[] = 'proyecto = ' . toba::db()->quote(toba_contexto_info::get_proyecto());
     return toba_info_editores::get_mensajes_filtrados($clausulas);
 }
Exemplo n.º 5
0
 protected function restaurar_estado($sentencias)
 {
     foreach ($sentencias as $sql) {
         $rs = toba_contexto_info::get_db()->ejecutar($sql);
         if (!$rs) {
             $this->Fail("Error restaurando estado:\n{$sql}\n" . toba_contexto_info::get_db()->ErrorMsg());
         }
     }
 }
Exemplo n.º 6
0
 function set_subclase($nombre, $archivo, $pm)
 {
     $db = toba_contexto_info::get_db();
     $nombre = $db->quote($nombre);
     $archivo = $db->quote($archivo);
     $pm = $db->quote($pm);
     $sql = "\n\t\t\tUPDATE apex_objeto_db_registros\n\t\t\tSET \n\t\t\t\tap = 0,\n\t\t\t\tap_clase = {$nombre},\n\t\t\t\tap_archivo = {$archivo},\n\t\t\t\tpunto_montaje = {$pm}\n\t\t\tWHERE\n\t\t\t\t\tobjeto_proyecto = '{$this->datos['proyecto']}'\n\t\t\t\tAND\tobjeto = '{$this->datos['objeto']}'\n\t\t";
     toba::logger()->debug($sql);
     $db->ejecutar($sql);
 }
Exemplo n.º 7
0
 function set_subclase($nombre, $archivo, $pm)
 {
     $db = toba_contexto_info::get_db();
     $nombre = $db->quote($nombre);
     $archivo = $db->quote($archivo);
     $pm = $db->quote($pm);
     $id = $db->quote($this->_id['proyecto']);
     $sql = "\n\t\t\tUPDATE apex_proyecto\n\t\t\tSET\n\t\t\t\tusuario_subclase = {$nombre},\n\t\t\t\tusuario_subclase_archivo = {$archivo},\n\t\t\t\tpm_usuario = {$pm}\n\t\t\tWHERE\n\t\t\t\t\tproyecto = {$id};";
     toba::logger()->debug($sql);
     $db->ejecutar($sql);
 }
 function set_subclase($nombre, $archivo, $pm)
 {
     $db = toba_contexto_info::get_db();
     $proyecto = quote($this->_id['proyecto']);
     $nombre = quote($nombre);
     $archivo = quote($archivo);
     $pm = quote($pm);
     $sql = "UPDATE  apex_proyecto\n\t\t\t\t\tSET  contexto_ejecucion_subclase = {$nombre},\n\t\t\t\t\tcontexto_ejecucion_subclase_archivo = {$archivo},\n\t\t\t\t\tpm_contexto = {$pm}\n\t\t\t\t\tWHERE\tproyecto = {$proyecto};";
     toba::logger()->debug($sql);
     $db->ejecutar($sql);
 }
Exemplo n.º 9
0
 function set_subclase($nombre, $archivo, $pm)
 {
     $db = toba_contexto_info::get_db();
     $nombre = $db->quote($nombre);
     $archivo = $db->quote($archivo);
     $pm = $db->quote($pm);
     $proyecto = $db->quote($this->_id['proyecto']);
     $zona = $db->quote($this->_id['id']);
     $sql = "\n\t\t\tUPDATE apex_item_zona\n\t\t\tSET\n\t\t\t\tarchivo = {$archivo},\n\t\t\t\tpunto_montaje = {$pm}\n\t\t\tWHERE\n\t\t\t\t\tproyecto = {$proyecto}\n\t\t\tAND zona = {$zona};";
     toba::logger()->debug($sql);
     $db->ejecutar($sql);
 }
Exemplo n.º 10
0
 function sincronizar()
 {
     if ($this->acceso_original !== $this->acceso_actual) {
         if ($this->acceso_actual) {
             $sql = "INSERT INTO \n\t\t\t\t\t\t\tapex_usuario_grupo_acc_item (proyecto, usuario_grupo_acc, item) \n\t\t\t\t\t\tVALUES \n\t\t\t\t\t\t\t('{$this->proyecto}','{$this->grupo_acceso}','{$this->id}');";
         } elseif ($this->acceso_actual === false) {
             $sql = "DELETE FROM \n\t\t\t\t\t\t\tapex_usuario_grupo_acc_item \n\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\titem = '{$this->id}'\n\t\t\t\t\t\tAND usuario_grupo_acc = '{$this->grupo_acceso}'\n\t\t\t\t\t\tAND proyecto = '{$this->proyecto}';";
         }
         toba_contexto_info::get_db()->ejecutar($sql);
     }
     return $this->acceso_actual;
 }
 function ini()
 {
     //Averiguo cual es el punto de montaje /php
     $db = toba_contexto_info::get_db();
     $datos = $this->datos->tabla('base')->get_clave_valor(0);
     $sql = 'SELECT pm_contexto FROM apex_proyecto WHERE proyecto = ' . $db->quote($datos['proyecto']);
     $rs = $db->consultar_fila($sql);
     $this->datos->tabla('base')->set_fila_columna_valor(0, 'punto_montaje', $rs['pm_contexto']);
     $this->datos->tabla('base')->set_fila_columna_valor(0, 'clase', $this->clase);
     $this->datos->tabla('base')->set_fila_columna_valor(0, 'clase_proyecto', $this->clase_proyecto);
     $this->carpeta_archivo = $this->asistente->get_carpeta_archivos();
 }
Exemplo n.º 12
0
 function __construct(toba_modelo_instancia $instancia, $identificador)
 {
     $this->instancia = $instancia;
     $this->identificador = $identificador;
     $this->dir = $instancia->get_path_proyecto($identificador);
     if (!is_dir($this->dir)) {
         throw new toba_error("PROYECTO: El proyecto '{$this->identificador}' es invalido. (la carpeta '{$this->dir}' no existe)");
     }
     $this->db = $this->instancia->get_db();
     toba_contexto_info::set_db($this->get_db());
     toba_contexto_info::set_proyecto($this->identificador);
     toba_logger::instancia()->debug('PROYECTO "' . $this->identificador . '"');
 }
Exemplo n.º 13
0
 function __construct($molde = null, $dr_molde = null)
 {
     if (isset($molde)) {
         $this->id_molde_proyecto = $molde['molde']['proyecto'];
         $this->id_molde = $molde['molde']['molde'];
         //Cargo el molde
         foreach (array_keys($molde) as $parte) {
             $this->{$parte} = $molde[$parte];
         }
     }
     if (isset($dr_molde)) {
         $this->dr_molde = $dr_molde;
     }
     if (!isset($this->id_molde_proyecto)) {
         $this->id_molde_proyecto = toba_contexto_info::get_proyecto();
     }
     $this->valores_predefinidos = toba_info_editores::get_opciones_predefinidas_molde();
 }
Exemplo n.º 14
0
 static function get_casos($categoria = 'nopar')
 {
     //Agrega el proyecto al include path
     if (isset(self::$proyecto)) {
         $proyecto = self::$proyecto;
     } else {
         $proyecto = toba_contexto_info::get_proyecto();
     }
     $path = toba::instancia()->get_path_proyecto($proyecto) . "/php";
     agregar_dir_include_path($path);
     $casos = $casos_sel = array();
     $path = self::get_path();
     if (file_exists($path . '/test_toba.php')) {
         require_once $path . '/test_toba.php';
     }
     if ($handle = @opendir($path)) {
         $casos = self::get_archivos($handle, $path);
         closedir($handle);
     }
     $path_sel = self::get_path('selenium');
     if ($handle = @opendir($path_sel)) {
         $casos_sel = self::get_archivos($handle, $path_sel);
         closedir($handle);
     }
     if (!empty($casos) || !empty($casos_sel)) {
         $casos = array_merge($casos, $casos_sel);
     }
     usort($casos, array("toba_test_lista_casos", "comparar"));
     if ($categoria == 'todas' || $categoria == 'nopar') {
         return $casos;
     } else {
         $casos_selecc = array();
         foreach ($casos as $caso) {
             if ($caso['categoria'] == $categoria) {
                 $casos_selecc[] = $caso;
             }
         }
         return $casos_selecc;
     }
 }
Exemplo n.º 15
0
 function cargar_todo($opciones = array())
 {
     $this->carpeta_inicial = toba_info_editores::get_item_raiz($this->proyecto);
     $grupo = '';
     $proyecto = toba_contexto_info::get_db()->quote($this->proyecto);
     $sql = "\tSELECT \ti.item as item,\n\t\t\t\t\t\t\ti.proyecto as proyecto,\n\t\t\t\t\t\t\ti.imagen_recurso_origen,\n\t\t\t\t\t\t\ti.imagen,\n\t\t\t\t\t\t\tnombre,\n\t\t\t\t\t\t\tcarpeta,\n\t\t\t\t\t\t\tpadre,\n\t\t\t\t\t\t\tdescripcion,\n\t\t\t\t\t\t\tia.usuario_grupo_acc as acceso\n\t\t\t\t\tFROM apex_item i\n\t\t\t\t\t\tLEFT OUTER JOIN apex_usuario_grupo_acc_item ia\n\t\t\t\t\t\t\tON i.item = ia.item AND i.proyecto = ia.proyecto\n\t\t\t\t\tWHERE \t\n\t\t\t\t\t\t\ti.proyecto = {$proyecto}\n\t\t\t\t\t\tAND\ti.menu = 1\n\t\t\t\t\t\tAND\t(publico IS NULL OR publico = 0)\n\t\t\t\t\t\tOR i.item =" . quote($this->carpeta_inicial) . "\n\t\t\t\t\tORDER BY i.carpeta, i.orden, i.nombre";
     toba::logger()->debug($sql);
     $rs = toba_contexto_info::get_db()->consultar($sql);
     $this->items = array();
     if (!empty($rs)) {
         foreach ($rs as $fila) {
             if ($fila['carpeta']) {
                 $obj = new toba_carpeta_menu($fila['nombre'], null, $fila['item'], $fila['padre']);
             } else {
                 $obj = new toba_item_menu($fila['nombre'], null, $fila['item'], $fila['padre']);
             }
             $this->items[$fila['item']] = $obj;
         }
         $this->carpeta_inicial = toba_info_editores::get_item_raiz($this->proyecto);
         $this->mensaje = "";
         $this->ordenar();
     }
 }
Exemplo n.º 16
0
 function cargar($opciones, $id_item_inicial = null, $incluidos_forzados = array())
 {
     $grupo = toba_contexto_info::get_db()->quote($this->grupo_acceso);
     $proyecto = toba_contexto_info::get_db()->quote($this->proyecto);
     $sql = "\tSELECT \ti.item as item,\n\t\t\t\t\t\t\ti.proyecto as proyecto,\n\t\t\t\t\t\t\ti.imagen_recurso_origen,\n\t\t\t\t\t\t\ti.imagen,\n\t\t\t\t\t\t\tnombre,\n\t\t\t\t\t\t\tcarpeta,\n\t\t\t\t\t\t\tpadre,\n\t\t\t\t\t\t\tdescripcion,\n\t\t\t\t\t\t\tia.usuario_grupo_acc as acceso\n\t\t\t\t\tFROM apex_item i\n\t\t\t\t\t\tLEFT OUTER JOIN apex_usuario_grupo_acc_item ia\n\t\t\t\t\t\t\tON i.item = ia.item AND i.proyecto = ia.proyecto\n\t\t\t\t\t\t\tAND ia.usuario_grupo_acc = {$grupo}\n\t\t\t\t\tWHERE \t\n\t\t\t\t\t\t\ti.proyecto = {$proyecto}\n\t\t\t\t\t\tAND\t(publico IS NULL OR publico = 0)\t\t\t\t\n\t\t\t\t\tORDER BY i.carpeta, i.orden, i.nombre";
     $rs = toba_contexto_info::get_db()->consultar($sql);
     $this->items = array();
     if (!empty($rs)) {
         foreach ($rs as $fila) {
             if ($fila['carpeta']) {
                 $obj = new toba_carpeta_perfil($fila, $this->grupo_acceso);
             } else {
                 $obj = new toba_item_perfil($fila, $this->grupo_acceso);
             }
             $this->items[$fila['item']] = $obj;
         }
         $this->carpeta_inicial = toba_info_editores::get_item_raiz($this->proyecto);
         $this->mensaje = "";
         $this->ordenar();
         /* Deberia mostrar nodos abiertos para aquellas 
         			carpetas en las que se aplica una restriccion*/
         //$this->filtrar();
     }
 }
Exemplo n.º 17
0
 protected function borrar_permisos_actuales($grupo)
 {
     //Borro los permisos existentes de todo el arbol
     $sql = "DELETE FROM apex_usuario_grupo_acc_item WHERE usuario_grupo_acc = '{$grupo}' AND\n\t\t\t\t\t\t\tproyecto = '{$this->proyecto}';\n";
     toba_contexto_info::get_db()->ejecutar($sql);
 }
Exemplo n.º 18
0
 static function get_pms($proyecto = null)
 {
     if (!isset($proyecto)) {
         $proyecto = toba_contexto_info::get_proyecto();
     }
     $proyecto = toba_contexto_info::get_db()->quote($proyecto);
     $sql = "SELECT * FROM apex_puntos_montaje WHERE proyecto={$proyecto}";
     return toba_contexto_info::get_db()->consultar($sql);
 }
Exemplo n.º 19
0
 /**
  *	Retorna los proyectos incluidos en la instancia que tienen cierto estilo
  */
 function get_proyectos_con_estilo($estilo)
 {
     $estilo = toba_contexto_info::get_db()->quote($estilo);
     $sql = "SELECT proyecto FROM apex_proyecto WHERE estilo= {$estilo}";
     return toba_contexto_info::get_db()->consultar($sql);
 }
Exemplo n.º 20
0
 function asignar_componente($id_componente)
 {
     $id = toba_contexto_info::get_db()->quote($this->id);
     $proyecto = toba_contexto_info::get_db()->quote($this->proyecto);
     $componente = toba_contexto_info::get_db()->quote($id_componente['componente']);
     $sql = "SELECT COALESCE(MAX(orden),0) as maximo\n\t\t\t\t\tFROM apex_item_objeto \n\t\t\t\t\tWHERE item={$id} AND proyecto= {$proyecto}";
     $res = toba_contexto_info::get_db()->consultar($sql);
     $orden = toba_contexto_info::get_db()->quote($res[0]['maximo']);
     $sql = "INSERT INTO apex_item_objeto\n\t\t\t\t\t(proyecto, item, objeto, orden) VALUES (\n\t\t\t\t\t\t{$proyecto},\n\t\t\t\t\t\t{$id},\n\t\t\t\t\t\t{$componente},\n\t\t\t\t\t\t{$orden}\n\t\t\t\t\t)";
     toba_contexto_info::get_db()->ejecutar($sql);
 }
Exemplo n.º 21
0
 static function set_proyecto($proyecto)
 {
     self::$proyecto = $proyecto;
 }
Exemplo n.º 22
0
 function set_subclase($nombre, $archivo, $pm)
 {
     $db = toba_contexto_info::get_db();
     $nombre = $db->quote($nombre);
     $archivo = $db->quote($archivo);
     $pm = $db->quote($pm);
     $id = $db->quote($this->id);
     $sql = "\n\t\t\tUPDATE apex_objeto\n\t\t\tSET \n\t\t\t\tsubclase = {$nombre},\n\t\t\t\tsubclase_archivo = {$archivo},\n\t\t\t\tpunto_montaje = {$pm}\n\t\t\tWHERE\n\t\t\t\t\tproyecto = '{$this->proyecto}'\n\t\t\t\tAND\tobjeto = {$id}\n\t\t";
     toba::logger()->debug($sql);
     $db->ejecutar($sql);
 }
Exemplo n.º 23
0
 /**
  * Consulta antes los objetos porque tiene que formar la 'explicacion' 
  * de porque se filtran estos registros. Con un subselect esto no sería posible
  */
 protected function formar_filtro_dao($busca)
 {
     $daos_efs = array();
     $daos_efs['clase'] = "el NOMBRE de la CLASE";
     $daos_efs['dao'] = "el NOMBRE del METODO";
     $daos_efs['include'] = "el INCLUDE de la CLASE";
     $daos_efs['agrupador_dao'] = "el NOMBRE del METODO AGRUPADOR";
     $daos_efs['agrupador_clase'] = "el NOMBRE de la CLASE AGRUPADORA";
     $daos_efs['agrupador_include'] = "el INCLUDE de la CLASE AGRUPADORA";
     $sql_efs = "";
     foreach (array_keys($daos_efs) as $clave) {
         $cond = toba_contexto_info::get_db()->quote("%{$clave}:%{$busca}%;");
         $sql_efs .= "ef.inicializacion ILIKE {$cond} OR ";
     }
     $busca_sano = toba_contexto_info::get_db()->quote("%{$busca}%");
     $proyecto = toba_contexto_info::get_db()->quote($this->proyecto);
     $sql = "\n\t\t\tSELECT \n\t\t\t\to.objeto,\n\t\t\t\tef.inicializacion,\n\t\t\t\tef.identificador,\n\t\t\t\tc.dao_metodo,\n\t\t\t\tc.dao_nucleo\n\t\t\tFROM apex_objeto o\n\t\t\t\tLEFT OUTER JOIN apex_objeto_cuadro c ON \n\t\t\t\t\t(c.objeto_cuadro = o.objeto \n\t\t\t\t\tAND c.objeto_cuadro_proyecto = o.proyecto)\n\t\t\t\tLEFT OUTER JOIN apex_objeto_ei_formulario_ef ef ON\n\t\t\t\t\t(ef.objeto_ei_formulario = o.objeto\n\t\t\t\t\tAND ef.objeto_ei_formulario_proyecto = o.proyecto)\n\t\t\tWHERE\n\t\t\t\to.proyecto = {$proyecto}\n\t\t\t\tAND (\n\t\t\t\t\t{$sql_efs}\n\t\t\t\t\tc.dao_nucleo ILIKE {$busca_sano}  OR c.dao_metodo ILIKE {$busca_sano}\n\t\t\t\t\t)\n\t\t";
     $rs = toba_contexto_info::get_db()->consultar($sql);
     if (!empty($rs)) {
         $sql = "AND\t\to.objeto IN (";
         foreach ($rs as $obj) {
             $this->explicaciones[$obj['objeto']][] = $this->formar_explicacion_dao($busca, $obj, $daos_efs);
             $sql .= $obj['objeto'] . ", ";
         }
         $sql = substr($sql, 0, -2);
         $sql .= ")";
         return $sql;
     }
 }
Exemplo n.º 24
0
 /**
  * Recorre el arbol de dependencias hasta llegar a objetos que no estan contenidos en otros
  */
 protected function buscar_raices_de_objeto($id_objeto)
 {
     $id_sano = toba_contexto_info::get_db()->quote($id_objeto);
     $proyecto = toba_contexto_info::get_db()->quote($this->proyecto);
     $sql_obj = "SELECT objeto_consumidor FROM apex_objeto_dependencias WHERE\n\t\t\t\t\tobjeto_proveedor = {$id_sano} AND proyecto = {$proyecto}";
     $rs = toba_contexto_info::get_db()->consultar($sql_obj);
     if (empty($rs)) {
         if (!in_array($id_objeto, $this->raices_de_objeto)) {
             $this->raices_de_objeto[] = $id_objeto;
         }
     } else {
         foreach ($rs as $padre) {
             $this->buscar_raices_de_objeto($padre['objeto_consumidor']);
         }
     }
 }
Exemplo n.º 25
0
 static function get_restricciones_proyecto($proyecto)
 {
     $proyecto = toba_contexto_info::get_db()->quote($proyecto);
     $sql = "SELECT \tproyecto,\n\t\t\t\t\t\trestriccion_funcional,\n\t\t\t\t\t\tdescripcion,\n\t\t\t\t\t\t((SELECT COUNT(*) FROM apex_restriccion_funcional_ef\t\tWHERE restriccion_funcional = rf.restriccion_funcional) +\n\t\t\t\t\t\t(SELECT COUNT(*) FROM apex_restriccion_funcional_pantalla\tWHERE restriccion_funcional = rf.restriccion_funcional) +\n\t\t\t\t\t\t(SELECT COUNT(*) FROM apex_restriccion_funcional_evt\t\tWHERE restriccion_funcional = rf.restriccion_funcional) +\n\t\t\t\t\t\t(SELECT COUNT(*) FROM apex_restriccion_funcional_ei\t\t \tWHERE restriccion_funcional = rf.restriccion_funcional) +\n\t\t\t\t\t\t(SELECT COUNT(*) FROM apex_restriccion_funcional_filtro_cols WHERE restriccion_funcional = rf.restriccion_funcional) +\n\t\t\t\t\t\t(SELECT COUNT(*) FROM apex_restriccion_funcional_cols\t \tWHERE restriccion_funcional = rf.restriccion_funcional)) as cant_resticciones\n\t\t\t\t\t\t\n\t\t\t\tFROM \tapex_restriccion_funcional as rf\n\t\t\t\tWHERE \tproyecto = {$proyecto}\n\t\t\t\tORDER BY descripcion\n\t\t";
     return toba_contexto_info::get_db()->consultar($sql);
 }
Exemplo n.º 26
0
 function evt__arbol_relaciones__cargar_nodo($id)
 {
     $this->dependencia('arbol_relaciones')->set_frame_destino(apex_frame_centro);
     $proyecto = toba_contexto_info::get_proyecto();
     $catalogo = new toba_catalogo_objetos($proyecto);
     $opciones['id'] = $id;
     $obj = $catalogo->get_objetos($opciones, true);
     return $obj;
 }
Exemplo n.º 27
0
 function get_columnas_dt($tabla)
 {
     $resultado = array();
     try {
         //Obtengo el id del datos_tabla para la tabla X
         $componente = toba_admin_fuentes::instancia()->get_fuente($this->_fuente)->get_id_datos_tabla($tabla);
         $db = toba_contexto_info::get_db();
         //Obtengo la base del contexto para usar la instancia de toba
         toba_datos_tabla_def::set_db($db);
         //Busco la definicion de columnas del datos_tabla en cuestion
         $proyecto = toba_contexto_info::get_proyecto();
         $dt_info = toba_datos_tabla_def::get_vista_extendida($proyecto, $componente);
         $rs = $db->consultar($dt_info['_info_columnas']['sql']);
         //Convierto el arreglo devuelto a un formato indexado por nombre de columna
         for ($a = 0; $a < count($rs); $a++) {
             $resultado[$rs[$a]['columna']] =& $rs[$a];
         }
     } catch (toba_error $e) {
         toba::logger()->error(" Búsqueda DT '{$tabla}': " . $e->getMessage());
     }
     return $resultado;
 }
Exemplo n.º 28
0
 function ajax__existe_metodo_dt($dt, toba_ajax_respuesta $respuesta)
 {
     $subclase = toba_info_editores::get_subclase_componente($dt);
     if (isset($subclase) && !empty($subclase)) {
         $archivo = toba::instancia()->get_path_proyecto(toba_contexto_info::get_proyecto()) . '/php/' . $subclase['subclase_archivo'];
         $php = new toba_archivo_php($archivo);
         if ($php->existe() && $php->contiene_metodo('get_descripciones')) {
             $sql = $this->get_sql_carga_tabla($dt);
             $respuesta->set($sql);
         } else {
             $respuesta->set(false);
         }
     } else {
         $respuesta->set(false);
     }
 }
Exemplo n.º 29
0
 /**
  * Elimina opcionalmente un conjunto de componentes pertencientes a la operación
  *
  * @param boolean $borrar_item Debe borrar el item una vez borradas sus dependencias
  * @param array $opciones Arreglo 'id_componente' => array('eliminar'=>true/false, 'eliminar_archivo'=>true/false)
  * @param boolean $con_transaccion Debe enmarcar la eliminación en una transaccion
  */
 function eliminar($borrar_item, $opciones, $con_transaccion = true)
 {
     $item = toba::zona()->get_info();
     $db = toba_contexto_info::get_db();
     $arbol_componentes = array_slice($this->arbol, 1);
     //--- Se eliminan metadatos
     if ($con_transaccion) {
         $db->abrir_transaccion();
     }
     foreach ($arbol_componentes as $comp) {
         $opcion = $opciones[$comp['componente']];
         if ($opcion['eliminar']) {
             //--- Elimina metadatos
             $id_dr = toba_info_editores::get_dr_de_clase($comp['tipo']);
             $componente = array('proyecto' => $id_dr[0], 'componente' => $id_dr[1]);
             $dr = toba_constructor::get_runtime($componente, 'toba_datos_relacion', false);
             $dr->inicializar();
             $dr->persistidor()->desactivar_transaccion();
             $dr->resetear();
             $dr->cargar(array('proyecto' => $this->id_proyecto, 'objeto' => $comp['componente']));
             $dr->eliminar_todo();
         }
     }
     //--Borro el item
     if ($borrar_item) {
         $id_dr = toba_info_editores::get_dr_de_clase('toba_item');
         $componente = array('proyecto' => $id_dr[0], 'componente' => $id_dr[1]);
         $dr = toba_constructor::get_runtime($componente, 'toba_datos_relacion', false);
         $dr->inicializar();
         $dr->persistidor()->desactivar_transaccion();
         $dr->resetear();
         $dr->cargar(array('proyecto' => $this->id_proyecto, 'item' => $this->id_item));
         $dr->eliminar_todo();
     }
     if ($con_transaccion) {
         $db->cerrar_transaccion();
     }
     //--- Se eliminan subclases
     foreach ($arbol_componentes as $comp) {
         $opcion = $opciones[$comp['componente']];
         if ($opcion['eliminar'] && $opcion['eliminar_archivo']) {
             $archivo = $this->get_path_archivo($comp);
             unlink($archivo);
         }
     }
 }
Exemplo n.º 30
0
 function parsear_editores(toba_modelo_instancia $instancia)
 {
     toba_contexto_info::set_db($instancia->get_db());
     //--- Se busca el CI asociado a cada clase
     $sql = "SELECT\n\t\t\t\t\tc.clase,\n\t\t\t\t \to.proyecto,\n\t\t\t\t\to.objeto\n\t\t\t\tFROM\n\t\t\t\t\tapex_clase c,\n\t\t\t\t\tapex_item_objeto io,\n\t\t\t\t\tapex_objeto o\n\t\t\t\tWHERE\n\t\t\t\t\tc.clase IN ('" . implode("','", toba_info_editores::get_lista_tipo_componentes()) . "')\tAND\n\t\t\t\t\tc.proyecto = 'toba' AND\n\t\t\t\t\tc.editor_item = io.item AND\t\t\t\t-- Se busca el item editor\n\t\t\t\t\tc.editor_proyecto = io.proyecto AND\n\t\t\t\t\tio.objeto = o.objeto AND\t\t\t\t-- Se busca el CI del item\n\t\t\t\t\tio.proyecto = o.proyecto AND\n\t\t\t\t\to.clase = 'toba_ci'";
     $rs = $instancia->get_db()->consultar($sql);
     $clase_php = new toba_clase_datos("toba_datos_editores");
     foreach ($rs as $datos) {
         //--- Se buscan las pantallas asociadas a un CI especifico
         $this->manejador_interface->mensaje("Procesando " . $datos['clase'] . "...");
         $proyecto = $instancia->get_db()->quote($datos['proyecto']);
         $objeto = $instancia->get_db()->quote($datos['objeto']);
         $sql = "\n\t\t\t\tSELECT\n\t\t\t\t\tpant.identificador,\n\t\t\t\t\tpant.etiqueta,\n\t\t\t\t\tpant.imagen,\n\t\t\t\t\tpant.imagen_recurso_origen\n\t\t\t\tFROM\n\t\t\t\t\tapex_objeto_ci_pantalla pant\n\t\t\t\tWHERE\n\t\t\t\t\t\tpant.objeto_ci_proyecto = {$proyecto}\n\t\t\t\t\tAND pant.objeto_ci = {$objeto}\n\t\t\t\tORDER BY pant.orden\n\t\t\t";
         $pantallas = $instancia->get_db()->consultar($sql);
         $clase_php->agregar_metodo_datos('get_pantallas_' . $datos['clase'], $pantallas);
     }
     $dir = toba_dir() . "/php/modelo/info";
     $clase_php->guardar($dir . '/toba_datos_editores.php');
 }