From: Leandro Lucarella Date: Thu, 26 Jun 2003 23:30:07 +0000 (+0000) Subject: - Se termina de implementar GrupoSecciones (aparentemente). X-Git-Tag: svn_import~74 X-Git-Url: https://git.llucax.com/mecon/ai.git/commitdiff_plain/5d846220fef75205596d50aef4567163db414749?ds=inline - Se termina de implementar GrupoSecciones (aparentemente). - Se eliminan las referencias para mayor compatibilidad con PHP5. - Se agrega una clase de Error. - Se actualiza UML y testeos. --- diff --git a/doc/uml.xmi b/doc/uml.xmi index cd01dad..5105f8e 100644 --- a/doc/uml.xmi +++ b/doc/uml.xmi @@ -9,24 +9,25 @@ - + - - + + - - + + - - + + - - + + + @@ -38,109 +39,139 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + diff --git a/sistema/local_lib/AIError.php b/sistema/local_lib/AIError.php new file mode 100644 index 0000000..76ab374 --- /dev/null +++ b/sistema/local_lib/AIError.php @@ -0,0 +1,65 @@ + | +// +--------------------------------------------------------------------+ +// +// $Id$ +// + +// +X2C includes +require_once 'PEAR.php'; +// ~X2C + +/** + * Error que indica que no hay más resultados en una base de datos. + * + * Es un error esperado y poco grave que sucede cada vez que se itera + * sobre un resultado de una base de datos. + */ +define('AIERROR_NO_RESULTADOS', 1); + +// +X2C Class 469 :AIError +/** + * @access public + */ +class AIError extends PEAR_Error { + // ~X2C + + // +X2C Operation 470 + /** + * @param int $codigo Cdigo de error. + * @param string $mensaje Mensaje para mostrar + * + * @return void + * @access public + */ + function AIError($codigo, $mensaje = '')// ~X2C + { + $this->PEAR_Error($mensaje, $codigo); + } + // -X2C + +} // -X2C Class :AIError + +?> \ No newline at end of file diff --git a/sistema/local_lib/GrupoSecciones.php b/sistema/local_lib/GrupoSecciones.php index be05488..a998521 100644 --- a/sistema/local_lib/GrupoSecciones.php +++ b/sistema/local_lib/GrupoSecciones.php @@ -27,7 +27,9 @@ // $Id$ // -// +X2C Class 414 :GrupoSecciones +require_once 'AIError.php'; + +// +X2C Class 486 :GrupoSecciones /** * Grupo de secciones. * @@ -109,7 +111,7 @@ class GrupoSecciones { // ~X2C - // +X2C Operation 464 + // +X2C Operation 495 /** * @param int $grupo ID del grupo. * @@ -122,24 +124,22 @@ class GrupoSecciones { } // -X2C - - // +X2C Operation 453 + // +X2C Operation 496 /** - * @param mixed &$db Base de datos o Resultado a utilizar. + * @param mixed $db Base de datos o Resultado a utilizar. * - * @return bool + * @return PEAR_Error * @access public */ - function cargar(&$db)// ~X2C + function cargar($db)// ~X2C { $grupo = intval($this->grupo); if (is_a($db, 'db_result')) { - $dbh =& $db->dbh; - $result =& $db; + $result = $db; + $db = $result->dbh; // Si no es un resultado, hago el query. } else { - $dbh =& $db; - $result =& $dbh->query( + $result = $db->query( "SELECT * FROM grupo_secciones WHERE grupo = $grupo" @@ -151,7 +151,8 @@ class GrupoSecciones { // 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); + return new AIError(AIERROR_NO_RESULTADOS, + "No hay más resultados en la DB [grupo=$grupo]"); } // Asigno valores al objeto. extract($row); @@ -161,7 +162,7 @@ class GrupoSecciones { $this->antiguedad = $antiguedad; $this->mostrarHijos = $mostrar_hijos; // Obtengo secciones. - $secciones =& $dbh->getCol( + $secciones = $db->getCol( "SELECT seccion FROM grupo_secciones_seccion WHERE grupo = $grupo" @@ -178,14 +179,14 @@ class GrupoSecciones { } // -X2C - // +X2C Operation 454 + // +X2C Operation 497 /** - * @param DB &$db DB donde guardar. + * @param DB $db DB donde guardar. * - * @return bool + * @return PEAR_Error * @access public */ - function guardar(&$db)// ~X2C + function guardar($db)// ~X2C { $grupo = intval($this->grupo); $where = ''; @@ -209,20 +210,20 @@ class GrupoSecciones { $this->grupo = $grupo; $datos['grupo'] = $grupo; } - $res =& $db->autoExecute('grupo_secciones', $datos, $accion, $where); + $res = $db->autoExecute('grupo_secciones', $datos, $accion, $where); if (DB::isError($res)) { return $res; } - $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; } @@ -230,23 +231,23 @@ class GrupoSecciones { } // -X2C - // +X2C Operation 455 + // +X2C Operation 498 /** - * @param int $db DB de donde borrar. + * @param DB $db DB de donde borrar. * - * @return bool + * @return PEAR_Error * @access public */ function borrar($db)// ~X2C { $grupo = intval($this->grupo); if ($grupo) { - $res =& $db->query( + $res = $db->query( "DELETE FROM grupo_secciones WHERE grupo = $grupo"); if (DB::isError($res)) { return $res; } - $res =& $db->query( + $res = $db->query( "DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo"); if (DB::isError($res)) { return $res; @@ -257,31 +258,45 @@ class GrupoSecciones { } // -X2C - // +X2C Operation 462 + // +X2C Operation 499 /** - * @param DB &$db DB de donde cargar los hijos. + * @param DB $db DB de donde cargar los hijos. * - * @return bool + * @return PEAR_Error * @access public */ - function cargarHijos(&$db)// ~X2C + function cargarHijos($db)// ~X2C { - $grupo = intval($this->grupo); - $hijos = array(); - $result =& $db->query("SELECT * FROM grupo_secciones WHERE grupo_padre = $grupo"); + $grupo = intval($this->grupo); + $result = $db->query("SELECT * FROM grupo_secciones WHERE grupo_padre = $grupo"); if (DB::isError($result)) { return $result; } - $hijo =& new GrupoSecciones; - $err =& $hijo->cargar($result); + $this->_hijos = array(); + $hijo = new GrupoSecciones; + $err = $hijo->cargar($result); while (!PEAR::isError($err)) { - $hijos[] =& $hijo; + $this->_hijos[] = $hijo->__clone(); $err = $hijo->cargar($result); } - if (!$err->getCode() == CODIGO DE ERROR DE NO HAY MAS ELEMENTOS) { - return $err; + // Si no hay mas resultados, entonces terminó bien. + if (is_a($err, 'aierror') + and $err->getCode() == AIERROR_NO_RESULTADOS) { + return true; } - return true; + // Si no, se devuelve el error. + return $err; + } + // -X2C + + // +X2C Operation 500 + /** + * @return GrupoSecciones + * @access public + */ + function __clone()// ~X2C + { + return $this; } // -X2C diff --git a/sistema/local_lib/Servicio.php b/sistema/local_lib/Servicio.php index 2174256..3f5685a 100644 --- a/sistema/local_lib/Servicio.php +++ b/sistema/local_lib/Servicio.php @@ -118,9 +118,9 @@ class Servicio { // +X2C Operation 456 /** - * @param int $db DB de donde borrar. + * @param DB $db DB de donde borrar. * - * @return bool + * @return PEAR_Error * @access public */ function borrar($db)// ~X2C @@ -131,12 +131,12 @@ class Servicio { // +X2C Operation 457 /** - * @param mixed &$db Base de datos o Resultado a utilizar. + * @param mixed $db Base de datos o Resultado a utilizar. * - * @return bool + * @return PEAR_Error * @access public */ - function cargar(&$db)// ~X2C + function cargar($db)// ~X2C { trigger_error('Not implemented!', E_USER_WARNING); } @@ -144,12 +144,12 @@ class Servicio { // +X2C Operation 458 /** - * @param DB &$db DB donde guardar. + * @param DB $db DB donde guardar. * - * @return bool + * @return PEAR_Error * @access public */ - function guardar(&$db)// ~X2C + function guardar($db)// ~X2C { trigger_error('Not implemented!', E_USER_WARNING); } @@ -157,12 +157,12 @@ class Servicio { // +X2C Operation 463 /** - * @param DB &$db DB de donde cargar los hijos. + * @param DB $db DB de donde cargar los hijos. * - * @return bool + * @return PEAR_Error * @access public */ - function cargarHijos(&$db)// ~X2C + function cargarHijos($db)// ~X2C { trigger_error('Not implemented!', E_USER_WARNING); } @@ -181,5 +181,16 @@ class Servicio { } // -X2C + // +X2C Operation 501 + /** + * @return Servicio + * @access public + */ + function __clone()// ~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 f8de809..7725ca8 100644 --- a/sistema/local_lib/Sistema.php +++ b/sistema/local_lib/Sistema.php @@ -80,12 +80,12 @@ class Sistema { // +X2C Operation 459 /** - * @param DB &$db DB donde guardar. + * @param DB $db DB donde guardar. * - * @return bool + * @return PEAR_Error * @access public */ - function guardar(&$db)// ~X2C + function guardar($db)// ~X2C { trigger_error('Not implemented!', E_USER_WARNING); } @@ -93,12 +93,12 @@ class Sistema { // +X2C Operation 460 /** - * @param mixed &$db Base de datos o Resultado a utilizar. + * @param mixed $db Base de datos o Resultado a utilizar. * - * @return bool + * @return PEAR_Error * @access public */ - function cargar(&$db)// ~X2C + function cargar($db)// ~X2C { trigger_error('Not implemented!', E_USER_WARNING); } @@ -106,9 +106,9 @@ class Sistema { // +X2C Operation 461 /** - * @param int $db DB de donde borrar. + * @param DB $db DB de donde borrar. * - * @return bool + * @return PEAR_Error * @access public */ function borrar($db)// ~X2C @@ -130,5 +130,16 @@ class Sistema { } // -X2C + // +X2C Operation 502 + /** + * @return Sistema + * @access public + */ + function __clone()// ~X2C + { + trigger_error('Not implemented!', E_USER_WARNING); + } + // -X2C + } // -X2C Class :Sistema ?> \ No newline at end of file diff --git a/test/grupo_secciones.php b/test/grupo_secciones.php index b788713..d842a6d 100644 --- a/test/grupo_secciones.php +++ b/test/grupo_secciones.php @@ -3,33 +3,84 @@ require_once 'DB.php'; require_once '../sistema/local_lib/GrupoSecciones.php'; -$db =& DB::connect('mysql://intranet:intranet@bal747f/intranet'); +$db = DB::connect('mysql://intranet:intranet@bal747f/intranet'); if (DB::isError($db)) { var_dump($db); exit; } -$grupo =& new GrupoSecciones; -$grupo->grupo = 3; -$err =& $grupo->cargar($db); +// Carga. +echo "Cargas:\n"; +$grupo = new GrupoSecciones(1); +$err = $grupo->cargar($db); if (PEAR::isError($err)) { var_dump($err); } else { var_dump($grupo); } -echo "\n\n\nAlta:\n"; +// Obtengo hijos. +echo "\n\n\nObtengo Hijos:\n"; +$err = $grupo->cargarHijos($db); +if (PEAR::isError($err)) { + var_dump($err); +} else { + var_dump($grupo->getHijos()); +} // Alta. -$grupo->grupo = 0; +echo "\n\n\nAlta:\n"; +$grupo->grupo = 0; +$grupo->padre = 1; $grupo->secciones = array(1, 4, 6, 8); $err = $grupo->guardar($db); +if (PEAR::isError($err)) { + var_dump($err); +} +$err = $grupo->cargarHijos($db); +echo "Carga hijos: "; var_dump($err); +var_dump($grupo); + +// Nuevo ID. +$id_nuevo = $grupo->grupo; + +// Modificación. +echo "\n\n\nModificación:\n"; +$grupo->secciones = array(2, 3, 5, 11); +$grupo->nombre = 'Me cambiaron'; +$err = $grupo->guardar($db); if (PEAR::isError($err)) { var_dump($err); } else { + var_dump($grupo); +} + +// Verifica. +echo "\n\n\nVerifica:\n"; +$grupo->grupo = 1; +$err = $grupo->cargar($db); +if (PEAR::isError($err)) { + var_dump($err); +} else { + var_dump($grupo); +} + +// Borra. +echo "\n\n\nBorra grupo $id_nuevo:\n"; +$grupo->grupo = $id_nuevo; +$err = $grupo->borrar($db); +var_dump($err); + +// Verifica obteniendo hijos. +echo "\n\n\nVerifica Hijos:\n"; +$grupo->grupo = 1; +$err = $grupo->cargarHijos($db); +if (PEAR::isError($err)) { var_dump($err); +} else { + var_dump($grupo->getHijos()); } ?>