X-Git-Url: https://git.llucax.com/mecon/ai.git/blobdiff_plain/61fdd4f7e9019fdd5c4e3b5d9c43ab5d3506a11c..b4fb39ec82b3c1e0f904ab0fe39d61f5ec62e10a:/lib/AI/Sistema.php?ds=inline diff --git a/lib/AI/Sistema.php b/lib/AI/Sistema.php index db06701..e149668 100644 --- a/lib/AI/Sistema.php +++ b/lib/AI/Sistema.php @@ -27,7 +27,18 @@ // $Id$ // +// +X2C includes +require_once 'AI/DBObject.php'; +// ~X2C + require_once 'AI/Error.php'; +// TODO - preguntar a gmeray si le sirve, yo no lo uso... +require_once 'SAMURAI/Sistema.php'; + +/** + * Archivo de configuración. + */ +define('AI_SISTEMA_CONFFILE', dirname(__FILE__).'/Sistema.ini'); // +X2C Class 416 :AI_Sistema /** @@ -36,22 +47,40 @@ require_once 'AI/Error.php'; * @package AI * @access public */ -class AI_Sistema { +class AI_Sistema extends AI_DBObject { /** * ID del sistema (ID en SAMURAI). +FIXME - preguntar a gonzalo si le sirve. * * @var int $sistema * @access public */ var $sistema = 0; + /** + * Nombre del sistema (slo de lectura, extra?o de SAMURAI). +FIXME - preguntar a gonzalo si le sirve. + * + * @var string $nombre + * @access public + */ + var $nombre = ''; + + /** + * Descripcin del sistema (slo de lectura, extra?o de SAMURAI). + * + * @var string $descripcion + * @access public + */ + var $descripcion = ''; + /** * ?ono del sistema. * - * @var HTML_Imagen $icono + * @var string $icono * @access public */ - var $icono = null; + var $icono = ''; /** * Enlace a donde se encuentra el sistema. @@ -88,47 +117,7 @@ class AI_Sistema { */ function AI_Sistema($sistema = 0) // ~X2C { - $this->sistema = $sistema; - } - // -X2C - - // +X2C Operation 460 - /** - * @param mixed $db Base de datos o Resultado a utilizar. - * - * @return PEAR_Error - * @access public - */ - function cargar($db) // ~X2C - { - $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 AI_Error(AI_ERROR_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; + parent::AI_DBObject($sistema, AI_SISTEMA_CONFFILE); } // -X2C @@ -142,70 +131,47 @@ class AI_Sistema { */ function guardar($db, $nuevo = false) // ~X2C { - $sistema = intval($this->sistema); - $where = ''; - $datos = array( + $datos = array( 'icono' => $this->icono, 'link' => $this->link, 'link_ayuda' => $this->link_ayuda, 'habilitado' => $this->habilitado ? 1 : 0, ); - if ($sistema and !$nuevo) { - $accion = DB_AUTOQUERY_UPDATE; - $where = "sistema = $sistema"; - } else { - $accion = DB_AUTOQUERY_INSERT; - // Si no tiene ID, le asigno uno nuevo. - if (!$sistema) { - $sistema = $db->nextId('sistema'); - if (DB::isError($sistema)) { - return $sistema; - } - $this->sistema = $sistema; - } - $datos['sistema'] = $sistema; + $err = parent::guardar($db, $datos, $nuevo); + if (PEAR::isError($err)) { + return $err; } - $res = $db->autoExecute('sistema', $datos, $accion, $where); - if (DB::isError($res)) { - return $res; - } - return true; } // -X2C - // +X2C Operation 461 + // +X2C Operation 528 /** - * @param DB $db DB de donde borrar. + * Obtiene un array con los identificadores de los sistemas cargados. * - * @return PEAR_Error + * @param DB $db Base de datos de la cual obtener los sistemas. + * @param string $where Clausula WHERE para filtrar resultados. + * + * @return array * @access public + * @static */ - function borrar($db) // ~X2C + function getSistemasArray($db, $where = '') // ~X2C { - $sistema = intval($this->sistema); - if ($sistema) { - $res = $db->query( - "DELETE FROM sistema WHERE sistema = $sistema"); - if (DB::isError($res)) { - return $res; - } - return true; + static $conf; + if (!$conf) { + $conf = parse_ini_file(AI_SISTEMA_CONFFILE, true); } - return PEAR::raiseError("No hay un sistema válido para borrar"); - } - // -X2C - - // +X2C Operation 502 - /** - * @return Sistema - * @access public - */ - function __clone() // ~X2C - { - return $this; + extract($conf); + $query = " + SELECT $id + FROM $base.$tabla"; + if ($where) { + $query .= "WHERE $where"; + } + return $db->getCol($query); } // -X2C } // -X2C Class :AI_Sistema -?> +?> \ No newline at end of file