// +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
/**
class AI_Sistema extends AI_DBObject {
/**
* ID del sistema (ID en SAMURAI).
-FIXME - preguntar a gonzalo si le sirve.
*
* @var int $sistema
* @access public
/**
* Nombre del sistema (slo de lectura, extra?o de SAMURAI).
-FIXME - preguntar a gonzalo si le sirve.
*
* @var string $nombre
* @access public
*/
function AI_Sistema($sistema = 0) // ~X2C
{
- parent::AI_DBObject($sistema, dirname(__FILE__) . '/Sistema.ini');
+ parent::AI_DBObject($sistema, AI_SISTEMA_CONFFILE);
}
// -X2C
}
// -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
?>