+ // +X2C Operation 536
+ /**
+ * @param mixed $db Base de datos o resultado de donde cargar el sistema.
+ *
+ * @return PEAR_Error
+ * @access public
+ */
+ function cargar($db) // ~X2C
+ {
+ $id_field = $this->conf['id'];
+ $id = intval($this->$id_field);
+ if (is_a($db, 'db_result')) {
+ $result = $db;
+ $db = $result->dbh;
+ // Si no es un resultado, hago el query.
+ } else {
+ // FIXME - ver como manejar JOINs - Ver de hacer el JOIN tambien en cargar.
+ $result = $db->query(
+ "SELECT AI.*, SA.nombre_sistema as nombre, SA.desc_sistema as descripcion
+ FROM {$this->conf['base']}.{$this->conf['tabla']} as AI, samurai.sistema as SA
+ WHERE AI.$id_field = $id AND AI.$id_field = SA.id_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 [id=$id]");
+ }
+ // Asigno valores al objeto.
+ foreach ($row as $key => $val) {
+ $this->$key = $val;
+ }
+ return true;
+ }
+ // -X2C
+