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