Rafael Lopez

fix nav teclado2

......@@ -2,26 +2,14 @@ export const ssr = false;
import { error } from '@sveltejs/kit';
import { API_HOST } from '$lib/api.js';
const API_BASE = API_HOST + '/api/acteco';
// Jerarquía acteco: códigos con punto "1" → "1.1" → "1.1.1"
// Todos tienen nivel "actividad" en la API, derivamos la profundidad del código
function getDepth(codigo) {
return String(codigo).split('.').length;
}
function getParentCode(codigo) {
const parts = String(codigo).split('.');
if (parts.length <= 1) return null;
return parts.slice(0, -1).join('.');
}
export async function load({ params }) {
export async function load({ params, fetch }) {
const { codigo } = params;
const res = await fetch(`${API_BASE}/${codigo}`);
const res = await fetch(`/api/acteco-data?codigo=${codigo}&tipo=clasificador`);
if (!res.ok) throw error(404, 'Sector económico no encontrado');
const acteco = await res.json();
......@@ -29,7 +17,7 @@ export async function load({ params }) {
let hijos = [];
try {
const clasRes = await fetch(`${API_BASE}/clasificador`);
const clasRes = await fetch('/api/acteco-clasificador');
if (clasRes.ok) {
const clasificador = await clasRes.json();
const depth = getDepth(codigo);
......
export const ssr = false;
import { error } from '@sveltejs/kit';
import { API_HOST } from '$lib/api.js';
const API_BASE = API_HOST + '/api/finfun';
// Jerarquía finfun: Finalidad → Grupo Función → Función
// Códigos con punto: "1" (finalidad), "1.1" (grpfuncion), "1.1.1" (función)
......@@ -26,7 +28,7 @@ export async function load({ params }) {
const { codigo } = params;
// Cargar datos del finfun desde la API
const res = await fetch(`${API_BASE}/${codigo}`);
const res = await fetch(`/api/finfun-data?codigo=${codigo}&tipo=clasificador`);
if (!res.ok) throw error(404, 'Finalidad/Función no encontrada');
const finfun = await res.json();
......@@ -37,7 +39,7 @@ export async function load({ params }) {
let hijos = [];
try {
const clasRes = await fetch(`${API_BASE}/clasificador`);
const clasRes = await fetch(`/api/finfun-clasificador`);
if (clasRes.ok) {
const clasificador = await clasRes.json();
......
......@@ -2,18 +2,13 @@ export const ssr = false;
import { error } from '@sveltejs/kit';
import { API_HOST } from '$lib/api.js';
const API_BASE = API_HOST + '/api/objeto';
export async function load({ params }) {
export async function load({ params, fetch }) {
const { codigo } = params;
// Cargar clasificador desde la API
const res = await fetch(`${API_BASE}/${codigo}`);
const res = await fetch(`/api/objeto-data?codigo=${codigo}&tipo=clasificador`);
if (!res.ok) throw error(404, 'Objeto no encontrado');
const objeto = await res.json();
// Derivar padres e hijos del código
const nivel = objeto.nivel;
let padresCodes = [];
......@@ -32,19 +27,17 @@ export async function load({ params }) {
padresCodes = [codigo.charAt(0) + '0000'];
}
// Cargar padres e hijos en paralelo desde la API
const [padresResults, hijosResult] = await Promise.all([
Promise.all(padresCodes.map(async (c) => {
try {
const r = await fetch(`${API_BASE}/${c}`);
const r = await fetch(`/api/objeto-data?codigo=${c}&tipo=clasificador`);
if (r.ok) return await r.json();
} catch {}
return null;
})),
(async () => {
// Hijos: buscar en el clasificador
try {
const r = await fetch(`${API_BASE}/clasificador`);
const r = await fetch('/api/objeto-clasificador');
if (!r.ok) return [];
const all = await r.json();
......@@ -63,10 +56,5 @@ export async function load({ params }) {
const padres = padresResults.filter(Boolean).sort((a, b) => a.objeto.localeCompare(b.objeto));
const hijos = hijosResult.sort((a, b) => a.objeto.localeCompare(b.objeto));
return {
objeto,
padres,
hijos,
nEntidades: 0
};
return { objeto, padres, hijos, nEntidades: 0 };
}
......
......@@ -2,13 +2,10 @@ export const ssr = false;
import { error } from '@sveltejs/kit';
import { API_HOST } from '$lib/api.js';
const API_BASE = API_HOST + '/api/organismo';
export async function load({ params }) {
export async function load({ params, fetch }) {
const { codigo } = params;
const res = await fetch(`${API_BASE}/${codigo}`);
const res = await fetch(`/api/organismo-data?codigo=${codigo}&tipo=clasificador`);
if (!res.ok) throw error(404, 'Organismo no encontrado');
const organismo = await res.json();
......@@ -16,7 +13,7 @@ export async function load({ params }) {
let hijos = [];
try {
const clasRes = await fetch(`${API_BASE}/clasificador`);
const clasRes = await fetch('/api/organismo-clasificador');
if (clasRes.ok) {
const clasificador = await clasRes.json();
const current = clasificador.find(c => String(c.organismo) === codigo);
......
......@@ -2,13 +2,10 @@ export const ssr = false;
import { error } from '@sveltejs/kit';
import { API_HOST } from '$lib/api.js';
const API_BASE = API_HOST + '/api/rubro';
export async function load({ params }) {
export async function load({ params, fetch }) {
const { codigo } = params;
const res = await fetch(`${API_BASE}/${codigo}`);
const res = await fetch(`/api/rubro-data?codigo=${codigo}&tipo=clasificador`);
if (!res.ok) throw error(404, 'Rubro no encontrado');
const rubro = await res.json();
......@@ -17,7 +14,7 @@ export async function load({ params }) {
let hijos = [];
try {
const clasRes = await fetch(`${API_BASE}/clasificador`);
const clasRes = await fetch('/api/rubro-clasificador');
if (clasRes.ok) {
const clasificador = await clasRes.json();
const s = String(codigo).padStart(5, '0');
......
......@@ -102,7 +102,7 @@
// Resetear al cambiar de ubicación
let prevCodigo = codigoSeleccionado;
$effect(() => {
if (data.gestionInicial !== gestionSeleccionada || codigoSeleccionado !== prevCodigo) {
if (codigoSeleccionado !== prevCodigo) {
prevCodigo = codigoSeleccionado;
gestionSeleccionada = data.gestionInicial;
distribucionesData = data.distribucionesData;
......