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); }
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); }
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(); }
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); }
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(); } }
/** * 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); } } }
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); }
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); } }
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); }
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; }
/** * 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; } }
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); }
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']); } } }
/** * 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); }
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); }