<XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
</XMI.header>
<XMI.content>
- <docsettings viewid="412" documentation="" uniqueid="463" />
+ <docsettings viewid="412" documentation="" uniqueid="467" />
<umlobjects>
<UML:Class stereotype="" package="" xmi.id="413" abstract="0" documentation="" name="Servicio" static="0" scope="200" >
- <UML:Operation stereotype="" package="" xmi.id="456" type="bool" abstract="0" documentation="" name="borrar" static="0" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="DB de donde borrar." name="db" static="0" scope="200" />
+ <UML:Operation stereotype="" package="" xmi.id="465" type="void" abstract="0" documentation="" name="Servicio" static="0" scope="200" >
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="0" type="int" abstract="0" documentation="ID del servicio." name="servicio" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="457" type="bool" abstract="0" documentation="" name="cargar" static="0" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&DB" abstract="0" documentation="Base de datos a utilizar." name="db" static="0" scope="200" />
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&mixed" abstract="0" documentation="Base de datos o Resultado a utilizar." name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="458" type="bool" abstract="0" documentation="" name="guardar" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&DB" abstract="0" documentation="DB donde guardar." name="db" static="0" scope="200" />
</UML:Operation>
+ <UML:Operation stereotype="" package="" xmi.id="456" type="bool" abstract="0" documentation="" name="borrar" static="0" scope="200" >
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="DB de donde borrar." name="db" static="0" scope="200" />
+ </UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="463" type="bool" abstract="0" documentation="" name="cargarHijos" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&DB" abstract="0" documentation="DB de donde cargar los hijos." name="db" static="0" scope="200" />
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="428" value="0" type="int" abstract="0" documentation="ID del servicio." name="servicio" static="0" scope="200" />
<UML:Attribute stereotype="" package="" xmi.id="452" value="0" type="int" abstract="0" documentation="" name="padre" static="0" scope="200" />
+ <UML:Attribute stereotype="" package="" xmi.id="467" value="array()" type="array" abstract="0" documentation="Servicios hijos." name="hijos" static="0" scope="202" />
<UML:Attribute stereotype="" package="" xmi.id="429" value="''" type="string" abstract="0" documentation="Nombre del servicio." name="nombre" static="0" scope="200" />
<UML:Attribute stereotype="" package="" xmi.id="433" value="''" type="string" abstract="0" documentation="Descripción del servicio." name="descripcion" static="0" scope="200" />
<UML:Attribute stereotype="" package="" xmi.id="430" value="null" type="HTML_Imagen" abstract="0" documentation="Ícono del servicio." name="icono" static="0" scope="200" />
<UML:Attribute stereotype="" package="" xmi.id="444" value="true" type="bool" abstract="0" documentation="Indica si esta habilitado." name="habilitado" static="0" scope="200" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="414" abstract="0" documentation="Grupo de secciones." name="GrupoSecciones" static="0" scope="200" >
+ <UML:Operation stereotype="" package="" xmi.id="464" type="void" abstract="0" documentation="" name="GrupoSecciones" static="0" scope="200" >
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="0" type="int" abstract="0" documentation="ID del grupo." name="grupo" static="0" scope="200" />
+ </UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="453" type="bool" abstract="0" documentation="" name="cargar" static="0" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&DB" abstract="0" documentation="Base de datos a utilizar." name="db" static="0" scope="200" />
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&mixed" abstract="0" documentation="Base de datos o Resultado a utilizar." name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="454" type="bool" abstract="0" documentation="" name="guardar" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&DB" abstract="0" documentation="DB donde guardar." name="db" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="462" type="bool" abstract="0" documentation="" name="cargarHijos" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&DB" abstract="0" documentation="DB de donde cargar los hijos." name="db" static="0" scope="200" />
</UML:Operation>
- <UML:Attribute stereotype="" package="" xmi.id="420" value="0" type="int" abstract="0" documentation="ID del grupo de secciones." name="groupo" static="0" scope="200" />
+ <UML:Attribute stereotype="" package="" xmi.id="420" value="0" type="int" abstract="0" documentation="ID del grupo de secciones." name="grupo" static="0" scope="200" />
<UML:Attribute stereotype="" package="" xmi.id="425" value="''" type="string" abstract="0" documentation="Nombre." name="nombre" static="0" scope="200" />
<UML:Attribute stereotype="" package="" xmi.id="450" value="0" type="int" abstract="0" documentation="" name="padre" static="0" scope="200" />
<UML:Attribute stereotype="" package="" xmi.id="422" value="array()" type="array" abstract="0" documentation="Grupos de secciones que tiene este grupo.
<UML:Attribute stereotype="" package="" xmi.id="443" value="true" type="bool" abstract="0" documentation="Indica si esta habilitado." name="habilitado" static="0" scope="200" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="416" abstract="0" documentation="" name="Sistema" static="0" scope="200" >
- <UML:Operation stereotype="" package="" xmi.id="459" type="bool" abstract="0" documentation="" name="guardar" static="0" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&DB" abstract="0" documentation="DB donde guardar." name="db" static="0" scope="200" />
+ <UML:Operation stereotype="" package="" xmi.id="466" type="void" abstract="0" documentation="" name="Sistema" static="0" scope="200" >
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="0" type="int" abstract="0" documentation="ID del sistema." name="sistema" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="460" type="bool" abstract="0" documentation="" name="cargar" static="0" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&DB" abstract="0" documentation="Base de datos a utilizar." name="db" static="0" scope="200" />
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&mixed" abstract="0" documentation="Base de datos o Resultado a utilizar." name="db" static="0" scope="200" />
+ </UML:Operation>
+ <UML:Operation stereotype="" package="" xmi.id="459" type="bool" abstract="0" documentation="" name="guardar" static="0" scope="200" >
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&DB" abstract="0" documentation="DB donde guardar." name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="461" type="bool" abstract="0" documentation="" name="borrar" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="DB de donde borrar." name="db" static="0" scope="200" />
<diagrams>
<diagram snapgrid="1" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="1" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="412" documentation="" type="402" showops="1" showpackage="0" name="Clases" localid="30000" showstereotype="0" showscope="1" font="Helvetica,8,-1,5,50,0,0,0,0,0" linecolor="#ff0000" >
<widgets>
- <UML:ConceptWidget usesdiagramfillcolour="0" width="167" showattsigs="601" usesdiagramusefillcolour="0" x="200" linecolour="#ff0000" y="30" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="196" usefillcolor="1" showattributes="1" xmi.id="413" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
- <UML:ConceptWidget usesdiagramfillcolour="0" width="163" showattsigs="601" usesdiagramusefillcolour="0" x="20" linecolour="#ff0000" y="30" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="182" usefillcolor="1" showattributes="1" xmi.id="414" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
- <UML:ConceptWidget usesdiagramfillcolour="0" width="159" showattsigs="601" usesdiagramusefillcolour="0" x="390" linecolour="#ff0000" y="30" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="126" usefillcolor="1" showattributes="1" xmi.id="416" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="0" width="182" showattsigs="601" usesdiagramusefillcolour="0" x="320" linecolour="#ff0000" y="30" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="224" usefillcolor="1" showattributes="1" xmi.id="413" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="0" width="211" showattsigs="601" usesdiagramusefillcolour="0" x="20" linecolour="#ff0000" y="30" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="196" usefillcolor="1" showattributes="1" xmi.id="414" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="0" width="184" showattsigs="601" usesdiagramusefillcolour="0" x="20" linecolour="#ff0000" y="250" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="140" usefillcolor="1" showattributes="1" xmi.id="416" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
</widgets>
<messages/>
<associations/>
<listitem open="0" type="815" id="455" label="borrar" />
<listitem open="0" type="815" id="453" label="cargar" />
<listitem open="0" type="815" id="462" label="cargarHijos" />
- <listitem open="0" type="814" id="420" label="groupo" />
+ <listitem open="0" type="814" id="420" label="grupo" />
+ <listitem open="0" type="815" id="464" label="GrupoSecciones" />
<listitem open="0" type="815" id="454" label="guardar" />
<listitem open="0" type="814" id="443" label="habilitado" />
<listitem open="0" type="814" id="422" label="hijos" />
<listitem open="0" type="814" id="433" label="descripcion" />
<listitem open="0" type="815" id="458" label="guardar" />
<listitem open="0" type="814" id="444" label="habilitado" />
+ <listitem open="0" type="814" id="467" label="hijos" />
<listitem open="0" type="814" id="430" label="icono" />
<listitem open="0" type="814" id="431" label="link" />
<listitem open="0" type="814" id="432" label="linkAyuda" />
<listitem open="0" type="814" id="429" label="nombre" />
<listitem open="0" type="814" id="452" label="padre" />
<listitem open="0" type="814" id="428" label="servicio" />
+ <listitem open="0" type="815" id="465" label="Servicio" />
</listitem>
<listitem open="0" type="813" id="416" label="Sistema" >
<listitem open="0" type="815" id="461" label="borrar" />
<listitem open="0" type="814" id="439" label="link" />
<listitem open="0" type="814" id="440" label="linkAyuda" />
<listitem open="0" type="814" id="437" label="sistema" />
+ <listitem open="0" type="815" id="466" label="Sistema" />
</listitem>
</listitem>
<listitem open="1" type="802" id="-1" label="Use Case View" />
/**
* ID del grupo de secciones.
*
- * @var int $groupo
+ * @var int $grupo
* @access public
*/
- var $groupo = 0;
+ var $grupo = 0;
/**
* Nombre.
// ~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
$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;
}
*/
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
*/
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
+?>