From: Leandro Lucarella Date: Fri, 27 Jun 2003 21:11:46 +0000 (+0000) Subject: Se termina de implementar las local_lib. Solo falta obtener datos del X-Git-Tag: svn_import~73 X-Git-Url: https://git.llucax.com/mecon/ai.git/commitdiff_plain/f2ed326c69eef8b30b23256b53f40271ec66bc30?ds=inline Se termina de implementar las local_lib. Solo falta obtener datos del SAMURAI en Sistema. --- diff --git a/sistema/local_lib/GrupoSecciones.php b/sistema/local_lib/GrupoSecciones.php index a998521..30b2620 100644 --- a/sistema/local_lib/GrupoSecciones.php +++ b/sistema/local_lib/GrupoSecciones.php @@ -254,7 +254,7 @@ class GrupoSecciones { } return true; } - return PEAR::raiseError("No hay un grupo valido para borrar"); + return PEAR::raiseError("No hay un grupo válido para borrar"); } // -X2C @@ -274,7 +274,7 @@ class GrupoSecciones { } $this->_hijos = array(); $hijo = new GrupoSecciones; - $err = $hijo->cargar($result); + $err = $hijo->cargar($result); while (!PEAR::isError($err)) { $this->_hijos[] = $hijo->__clone(); $err = $hijo->cargar($result); diff --git a/sistema/local_lib/Servicio.php b/sistema/local_lib/Servicio.php index 3f5685a..d1caa55 100644 --- a/sistema/local_lib/Servicio.php +++ b/sistema/local_lib/Servicio.php @@ -27,8 +27,7 @@ // $Id$ // - - +require_once 'AIError.php'; // +X2C Class 413 :Servicio /** @@ -113,19 +112,29 @@ class Servicio { */ var $habilitado = true; - // ~X2C + /** + * Gets Hijos. + * + * @return array + * @access public + */ + function getHijos() + { + return $this->_hijos; + } + // ~X2C - // +X2C Operation 456 + // +X2C Operation 465 /** - * @param DB $db DB de donde borrar. + * @param int $servicio ID del servicio. * - * @return PEAR_Error + * @return void * @access public */ - function borrar($db)// ~X2C + function Servicio($servicio = 0)// ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + $this->servicio = $servicio; } // -X2C @@ -138,7 +147,38 @@ class Servicio { */ function cargar($db)// ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + $servicio = intval($this->servicio); + if (is_a($db, 'db_result')) { + $result = $db; + // Si no es un resultado, hago el query. + } else { + $result = $db->query( + "SELECT * + FROM servicio + WHERE servicio = $servicio" + ); + if (DB::isError($result)) { + return $result; + } + } + // Obtengo la fila. + $row = $result->fetchRow(DB_FETCHMODE_ASSOC); + if (!$row) { + return new AIError(AIERROR_NO_RESULTADOS, + "No hay más resultados en la DB [servicio=$servicio]"); + } + // Asigno valores al objeto. + extract($row); + $this->servicio = $servicio; + $this->padre = $servicio_padre; + $this->nombre = $nombre; + $this->descripcion = $descripcion; + $this->icono = $icono; # FIXME - new HTML_Icono (o no?) + $this->link = $link; + $this->linkAyuda = $link_ayuda; + $this->necesitaLogueo = $necesita_logueo; + $this->habilitado = $habilitado; + return true; } // -X2C @@ -151,33 +191,89 @@ class Servicio { */ function guardar($db)// ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + $servicio = intval($this->servicio); + $where = ''; + $datos = array( + 'servicio_padre' => intval($this->padre), + 'nombre' => $this->nombre, + 'descripcion' => $this->descripcion, + 'icono' => $this->icono, + 'link' => $this->link, + 'link_ayuda' => $this->linkAyuda, + 'necesita_logueo' => $this->necesitaLogueo ? 1 : 0, + 'habilitado' => $this->habilitado ? 1 : 0, + ); + if ($servicio) { + $accion = DB_AUTOQUERY_UPDATE; + $where = "servicio = $servicio"; + } else { + $accion = DB_AUTOQUERY_INSERT; + $servicio = $db->nextId('servicio'); + if (DB::isError($servicio)) { + return $servicio; + } + // Asigno el nuevo id de servicio. + $this->servicio = $servicio; + $datos['servicio'] = $servicio; + } + $res = $db->autoExecute('servicio', $datos, $accion, $where); + if (DB::isError($res)) { + return $res; + } + return true; } // -X2C - // +X2C Operation 463 + // +X2C Operation 456 /** - * @param DB $db DB de donde cargar los hijos. + * @param DB $db DB de donde borrar. * * @return PEAR_Error * @access public */ - function cargarHijos($db)// ~X2C + function borrar($db)// ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + $servicio = intval($this->servicio); + if ($servicio) { + $res = $db->query( + "DELETE FROM servicio WHERE servicio = $servicio"); + if (DB::isError($res)) { + return $res; + } + return true; + } + return PEAR::raiseError("No hay un servicio válido para borrar"); } // -X2C - // +X2C Operation 465 + // +X2C Operation 463 /** - * @param int $servicio ID del servicio. + * @param DB $db DB de donde cargar los hijos. * - * @return void + * @return PEAR_Error * @access public */ - function Servicio($servicio = 0)// ~X2C + function cargarHijos($db)// ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + $servicio = intval($this->servicio); + $result = $db->query("SELECT * FROM servicio WHERE servicio_padre = $servicio"); + if (DB::isError($result)) { + return $result; + } + $this->_hijos = array(); + $hijo = new Servicio; + $err = $hijo->cargar($result); + while (!PEAR::isError($err)) { + $this->_hijos[] = $hijo->__clone(); + $err = $hijo->cargar($result); + } + // Si no hay mas resultados, entonces terminó bien. + if (is_a($err, 'aierror') + and $err->getCode() == AIERROR_NO_RESULTADOS) { + return true; + } + // Si no, se devuelve el error. + return $err; } // -X2C @@ -188,9 +284,10 @@ class Servicio { */ function __clone()// ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + return $this; } // -X2C } // -X2C Class :Servicio -?> \ No newline at end of file + +?> diff --git a/sistema/local_lib/Sistema.php b/sistema/local_lib/Sistema.php index 7725ca8..746be87 100644 --- a/sistema/local_lib/Sistema.php +++ b/sistema/local_lib/Sistema.php @@ -27,8 +27,7 @@ // $Id$ // - - +require_once 'AIError.php'; // +X2C Class 416 :Sistema /** @@ -77,17 +76,16 @@ class Sistema { // ~X2C - - // +X2C Operation 459 + // +X2C Operation 466 /** - * @param DB $db DB donde guardar. + * @param int $sistema ID del sistema. * - * @return PEAR_Error + * @return void * @access public */ - function guardar($db)// ~X2C + function Sistema($sistema = 0)// ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + $this->sistema = $sistema; } // -X2C @@ -100,33 +98,94 @@ class Sistema { */ function cargar($db)// ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + $sistema = intval($this->sistema); + if (is_a($db, 'db_result')) { + $result = $db; + // Si no es un resultado, hago el query. + } else { + $result = $db->query( + "SELECT * + FROM sistema + WHERE sistema = $sistema" + ); + if (DB::isError($result)) { + return $result; + } + } + // Obtengo la fila. + $row = $result->fetchRow(DB_FETCHMODE_ASSOC); + if (!$row) { + return new AIError(AIERROR_NO_RESULTADOS, + "No hay más resultados en la DB [sistema=$sistema]"); + } + // Asigno valores al objeto. + extract($row); + $this->sistema = $sistema; + $this->icono = $icono; # FIXME - new HTML_Icono (o no?) + $this->link = $link; + $this->linkAyuda = $link_ayuda; + $this->habilitado = $habilitado; + return true; } // -X2C - // +X2C Operation 461 + // +X2C Operation 459 /** - * @param DB $db DB de donde borrar. + * @param DB $db DB donde guardar. * * @return PEAR_Error * @access public */ - function borrar($db)// ~X2C + function guardar($db)// ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + $sistema = intval($this->sistema); + $where = ''; + $datos = array( + 'icono' => $this->icono, + 'link' => $this->link, + 'link_ayuda' => $this->linkAyuda, + 'habilitado' => $this->habilitado ? 1 : 0, + ); + if ($sistema) { + $accion = DB_AUTOQUERY_UPDATE; + $where = "sistema = $sistema"; + } else { + $accion = DB_AUTOQUERY_INSERT; + $sistema = $db->nextId('sistema'); + if (DB::isError($sistema)) { + return $sistema; + } + // Asigno el nuevo id de sistema. + $this->sistema = $sistema; + $datos['sistema'] = $sistema; + } + $res = $db->autoExecute('sistema', $datos, $accion, $where); + if (DB::isError($res)) { + return $res; + } + return true; } // -X2C - // +X2C Operation 466 + // +X2C Operation 461 /** - * @param int $sistema ID del sistema. + * @param DB $db DB de donde borrar. * - * @return void + * @return PEAR_Error * @access public */ - function Sistema($sistema = 0)// ~X2C + function borrar($db)// ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + $sistema = intval($this->sistema); + if ($sistema) { + $res = $db->query( + "DELETE FROM sistema WHERE sistema = $sistema"); + if (DB::isError($res)) { + return $res; + } + return true; + } + return PEAR::raiseError("No hay un sistema válido para borrar"); } // -X2C @@ -137,9 +196,10 @@ class Sistema { */ function __clone()// ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + return $this; } // -X2C } // -X2C Class :Sistema -?> \ No newline at end of file + +?>