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;
 }
 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);
 }
Beispiel #3
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());
         }
     }
 }
 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);
 }
Beispiel #5
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);
 }
 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();
 }
Beispiel #8
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);
 }
Beispiel #9
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 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();
     }
 }
 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();
     }
 }
Beispiel #12
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);
         }
     }
 }
Beispiel #13
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);
 }
Beispiel #14
0
 function ajax__existe_metodo_dt($dt, toba_ajax_respuesta $respuesta)
 {
     $dt = toba_contexto_info::get_db()->quote($dt);
     $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);
     }
 }
Beispiel #15
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);
 }
Beispiel #16
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;
 }
Beispiel #17
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;
     }
 }
Beispiel #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);
 }
Beispiel #19
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);
 }
 /**
  * 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']);
         }
     }
 }
Beispiel #21
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);
 }
Beispiel #22
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);
 }