X-Git-Url: https://git.llucax.com/mecon/ai.git/blobdiff_plain/5d846220fef75205596d50aef4567163db414749..14599c3512abed278fb33bd80e204cc4f1140500:/sistema/local_lib/Sistema.php?ds=sidebyside diff --git a/sistema/local_lib/Sistema.php b/sistema/local_lib/Sistema.php index 7725ca8..2d2f63a 100644 --- a/sistema/local_lib/Sistema.php +++ b/sistema/local_lib/Sistema.php @@ -27,11 +27,12 @@ // $Id$ // - - +require_once 'AIError.php'; // +X2C Class 416 :Sistema /** + * Sistema. + * * @access public */ class Sistema { @@ -62,10 +63,10 @@ class Sistema { /** * Enlace a la ayuda del sistema. * - * @var string $linkAyuda + * @var string $link_ayuda * @access public */ - var $linkAyuda = ''; + var $link_ayuda = ''; /** * Indica si esta habilitado. @@ -77,17 +78,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 @@ -98,35 +98,96 @@ class Sistema { * @return PEAR_Error * @access public */ - function cargar($db)// ~X2C + 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->link_ayuda = $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->link_ayuda, + '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 @@ -135,11 +196,12 @@ class Sistema { * @return Sistema * @access public */ - function __clone()// ~X2C + function __clone() // ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + return $this; } // -X2C } // -X2C Class :Sistema + ?> \ No newline at end of file