X-Git-Url: https://git.llucax.com/mecon/ai.git/blobdiff_plain/df9d0deaca85d998cd966a75db730202e0f7c993..eab2a84aa3532833851acd59d54b85496554ca82:/lib/AI/Sistema.php diff --git a/lib/AI/Sistema.php b/lib/AI/Sistema.php index 05f2559..54260af 100644 --- a/lib/AI/Sistema.php +++ b/lib/AI/Sistema.php @@ -30,10 +30,13 @@ // +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 /** @@ -45,7 +48,6 @@ require_once 'SAMURAI/Sistema.php'; class AI_Sistema extends AI_DBObject { /** * ID del sistema (ID en SAMURAI). -FIXME - preguntar a gonzalo si le sirve. * * @var int $sistema * @access public @@ -54,7 +56,6 @@ FIXME - preguntar a gonzalo si le sirve. /** * Nombre del sistema (slo de lectura, extra?o de SAMURAI). -FIXME - preguntar a gonzalo si le sirve. * * @var string $nombre * @access public @@ -112,7 +113,7 @@ FIXME - preguntar a gonzalo si le sirve. */ function AI_Sistema($sistema = 0) // ~X2C { - parent::AI_DBObject($sistema, dirname(__FILE__) . '/Sistema.ini'); + parent::AI_DBObject($sistema, AI_SISTEMA_CONFFILE); } // -X2C @@ -139,6 +140,82 @@ FIXME - preguntar a gonzalo si le sirve. } // -X2C + // +X2C Operation 528 + /** + * Obtiene un array con los identificadores de los sistemas cargados. + * + * @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 getSistemasArray($db, $where = '') // ~X2C + { + static $conf; + if (!$conf) { + $conf = parse_ini_file(AI_SISTEMA_CONFFILE, true); + } + extract($conf); + $query = " + SELECT $id + FROM $base.$tabla"; + if ($where) { + $query .= "WHERE $where"; + } + return $db->getCol($query); + } + // -X2C + + // +X2C Operation 531 + /** + * @param DB $db Base de datos de donde obtener los sistemas. + * @param string $where Clausula WHERE para filtrar la bsqueda. + * + * @return array + * @access public + * @static + */ + function getSistemas($db, $where = '') // ~X2C + { + static $conf; + if (!$conf) { + $conf = parse_ini_file(AI_SISTEMA_CONFFILE, true); + } + $id_field = $conf['id']; + $tabla = $conf['base'].'.'.$conf['tabla']; + // FIXME - ver como manejar JOINs - Ver de hacer el JOIN tambien en cargar. + $query = " + SELECT AI.*, SA.nombre_sistema as nombre, SA.desc_sistema as descripcion + FROM $tabla as AI, samurai.sistema as SA + WHERE SA.id_sistema = AI.sistema and SA.estado = 1"; + if ($where) { + $query .= " WHERE $where"; + } + $query .= ' ORDER BY nombre ASC'; + $result = $db->query($query); + if (DB::isError($result)) { + return $result; + } + $sistemas = array(); + $sistema = new AI_Sistema; + $err = $sistema->cargar($result); + while (!PEAR::isError($err)) { + $sistemas[] = $sistema->__clone(); + $err = $sistema->cargar($result); + } + // Si no hay mas resultados (terminó bien) devuelve el array de + // sistemas. + if (AI_Error::isError($err) + and $err->getCode() == AI_ERROR_NO_RESULTADOS) { + return $sistemas; + } + // Si no, se devuelve el error. + return $err; + } + // -X2C + } // -X2C Class :AI_Sistema ?>