/**
* 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
+?>