From: Leandro Lucarella Date: Wed, 25 Jun 2003 22:12:01 +0000 (+0000) Subject: - Se actualiza doc. X-Git-Tag: svn_import~75 X-Git-Url: https://git.llucax.com/mecon/ai.git/commitdiff_plain/174ddcbe91844e4c754eb58b88f645a56952a475?ds=inline - Se actualiza doc. - Se hacen constructores. - Se implementa GrupoSecciones::borrar() y GrupoSecciones::cargarHijos() pero faltan pruebas. - Se hace que ::cargar() acepte DB o DB_Result. --- diff --git a/doc/uml.xmi b/doc/uml.xmi index bcc38d2..cd01dad 100644 --- a/doc/uml.xmi +++ b/doc/uml.xmi @@ -9,23 +9,27 @@ - + - - + + - + + + + + @@ -35,8 +39,11 @@ + + + - + @@ -47,7 +54,7 @@ - + - - + + - + + + + @@ -77,9 +87,9 @@ x2c:get" name="hijos" static="0" scope="202" /> - - - + + + @@ -94,7 +104,8 @@ x2c:get" name="hijos" static="0" scope="202" /> - + + @@ -110,6 +121,7 @@ x2c:get" name="hijos" static="0" scope="202" /> + @@ -117,6 +129,7 @@ x2c:get" name="hijos" static="0" scope="202" /> + @@ -127,6 +140,7 @@ x2c:get" name="hijos" static="0" scope="202" /> + diff --git a/sistema/local_lib/GrupoSecciones.php b/sistema/local_lib/GrupoSecciones.php index 1e8e63c..be05488 100644 --- a/sistema/local_lib/GrupoSecciones.php +++ b/sistema/local_lib/GrupoSecciones.php @@ -37,10 +37,10 @@ class GrupoSecciones { /** * ID del grupo de secciones. * - * @var int $groupo + * @var int $grupo * @access public */ - var $groupo = 0; + var $grupo = 0; /** * Nombre. @@ -109,50 +109,72 @@ class GrupoSecciones { // ~X2C + // +X2C Operation 464 + /** + * @param int $grupo ID del grupo. + * + * @return void + * @access public + */ + function GrupoSecciones($grupo = 0)// ~X2C + { + $this->grupo = $grupo; + } + // -X2C + // +X2C Operation 453 /** - * @param DB &$db Base de datos a utilizar. + * @param mixed &$db Base de datos o Resultado a utilizar. * * @return bool * @access public */ function cargar(&$db)// ~X2C { - $data = $db->getRow( - "SELECT * - FROM grupo_secciones - WHERE grupo = {$this->grupo}", - array(), - DB_FETCHMODE_ASSOC - ); - if (DB::isError($data)) { - return $data; - } elseif (!$data) { - return PEAR::raiseError("No existe el grupo {$this->grupo} en la DB"); + $grupo = intval($this->grupo); + if (is_a($db, 'db_result')) { + $dbh =& $db->dbh; + $result =& $db; + // Si no es un resultado, hago el query. } else { - extract($data); - $this->grupo = $grupo; - $this->nombre = $nombre; - $this->padre = $grupo_padre; - $this->antiguedad = $antiguedad; - $this->mostrarHijos = $mostrar_hijos; - $data = $db->getCol( - "SELECT seccion - FROM grupo_secciones_seccion - WHERE grupo = {$this->grupo}" + $dbh =& $db; + $result =& $dbh->query( + "SELECT * + FROM grupo_secciones + WHERE grupo = $grupo" ); - if (DB::isError($data)) { - return $data; - } else { - if ($data) { - $this->secciones = $data; - } else { - $this->secciones = array(); - } + if (DB::isError($result)) { + return $result; } - return true; } + // Obtengo la fila. + $row = $result->fetchRow(DB_FETCHMODE_ASSOC); + if (!$row) { + return PEAR::raiseError("No hay más resultados en la DB [grupo=$grupo]", CODIGO DE ERROR); + } + // Asigno valores al objeto. + extract($row); + $this->grupo = $grupo; + $this->nombre = $nombre; + $this->padre = $grupo_padre; + $this->antiguedad = $antiguedad; + $this->mostrarHijos = $mostrar_hijos; + // Obtengo secciones. + $secciones =& $dbh->getCol( + "SELECT seccion + FROM grupo_secciones_seccion + WHERE grupo = $grupo" + ); + if (DB::isError($secciones)) { + return $secciones; + } + if ($secciones) { + $this->secciones = $secciones; + } else { + $this->secciones = array(); + } + return true; } // -X2C @@ -179,25 +201,28 @@ class GrupoSecciones { $where = "grupo = $grupo"; } else { $accion = DB_AUTOQUERY_INSERT; - $grupo = $db->nextId('grupo_secciones'); + $grupo = $db->nextId('grupo_secciones'); + if (DB::isError($grupo)) { + return $grupo; + } + // Asigno el nuevo id de grupo. + $this->grupo = $grupo; $datos['grupo'] = $grupo; - echo "$group\n"; } - $res = $db->autoExecute('grupo_secciones', $datos, $accion, $where); + $res =& $db->autoExecute('grupo_secciones', $datos, $accion, $where); if (DB::isError($res)) { return $res; } - // Falta actualización de secciones. - $res = $db->query("DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo"); + $res =& $db->query("DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo"); if (DB::isError($res)) { return $res; } - $prepare = $db->prepare("INSERT INTO grupo_secciones_seccion + $prepare =& $db->prepare("INSERT INTO grupo_secciones_seccion (grupo, seccion) VALUES ($grupo, ?)"); if (DB::isError($prepare)) { return $prepare; } - $res = $db->executeMultiple($prepare, $this->secciones); + $res =& $db->executeMultiple($prepare, $this->secciones); if (DB::isError($res)) { return $res; } @@ -214,7 +239,21 @@ class GrupoSecciones { */ function borrar($db)// ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + $grupo = intval($this->grupo); + if ($grupo) { + $res =& $db->query( + "DELETE FROM grupo_secciones WHERE grupo = $grupo"); + if (DB::isError($res)) { + return $res; + } + $res =& $db->query( + "DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo"); + if (DB::isError($res)) { + return $res; + } + return true; + } + return PEAR::raiseError("No hay un grupo valido para borrar"); } // -X2C @@ -227,10 +266,25 @@ class GrupoSecciones { */ function cargarHijos(&$db)// ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + $grupo = intval($this->grupo); + $hijos = array(); + $result =& $db->query("SELECT * FROM grupo_secciones WHERE grupo_padre = $grupo"); + if (DB::isError($result)) { + return $result; + } + $hijo =& new GrupoSecciones; + $err =& $hijo->cargar($result); + while (!PEAR::isError($err)) { + $hijos[] =& $hijo; + $err = $hijo->cargar($result); + } + if (!$err->getCode() == CODIGO DE ERROR DE NO HAY MAS ELEMENTOS) { + return $err; + } + return true; } // -X2C } // -X2C Class :GrupoSecciones -?> \ No newline at end of file +?> diff --git a/sistema/local_lib/Servicio.php b/sistema/local_lib/Servicio.php index 8df6c9e..2174256 100644 --- a/sistema/local_lib/Servicio.php +++ b/sistema/local_lib/Servicio.php @@ -49,6 +49,14 @@ class Servicio { */ var $padre = 0; + /** + * Servicios hijos. + * + * @var array $hijos + * @access protected + */ + var $_hijos = array(); + /** * Nombre del servicio. * @@ -123,7 +131,7 @@ class Servicio { // +X2C Operation 457 /** - * @param DB &$db Base de datos a utilizar. + * @param mixed &$db Base de datos o Resultado a utilizar. * * @return bool * @access public @@ -160,5 +168,18 @@ class Servicio { } // -X2C + // +X2C Operation 465 + /** + * @param int $servicio ID del servicio. + * + * @return void + * @access public + */ + function Servicio($servicio = 0)// ~X2C + { + trigger_error('Not implemented!', E_USER_WARNING); + } + // -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 552d5f3..f8de809 100644 --- a/sistema/local_lib/Sistema.php +++ b/sistema/local_lib/Sistema.php @@ -93,7 +93,7 @@ class Sistema { // +X2C Operation 460 /** - * @param DB &$db Base de datos a utilizar. + * @param mixed &$db Base de datos o Resultado a utilizar. * * @return bool * @access public @@ -117,5 +117,18 @@ class Sistema { } // -X2C + // +X2C Operation 466 + /** + * @param int $sistema ID del sistema. + * + * @return void + * @access public + */ + function Sistema($sistema = 0)// ~X2C + { + trigger_error('Not implemented!', E_USER_WARNING); + } + // -X2C + } // -X2C Class :Sistema ?> \ No newline at end of file