feat: Aggiungi funzionalità di eliminazione per clienti e preventivi con gestione delle dipendenze

This commit is contained in:
2026-10-19 15:48:15 +02:00
parent d6a9978167
commit 31d5152d8c
20 changed files with 673 additions and 17 deletions
+21 -1
View File
@@ -23,6 +23,8 @@ window.GLTFLoader = GLTFLoader; // Used by APP Scripts.
// --- Integrazione backend preventivi ---
const CART_TOKEN_KEY = 'kreios_cart_token';
// Ordine dei sistemi come nel menu: il primo è quello di default
const SISTEMI = ['pvc', 'alluminio', 'legno', 'acciaio'];
// URL dell'app cliente (checkout): richiesto all'API invece di essere indovinato, perché la
// porta Vite dell'app cliente può cambiare (es. se 5199 è già occupata). Fallback locale se
@@ -136,13 +138,31 @@ $(() => {
const start = async () => {
const params = ParamsParser.getQueryParams();
// Senza sistema in query string si parte dal primo sistema (pvc)
if (!SISTEMI.includes(params.sistema))
params.sistema = SISTEMI[0];
let data_folder = `./assets/data/sistemi/${params.sistema}`;
let modello_folder = `./assets/data/modelli/${params.sistema}`;
const modelli = await (await fetch(`${data_folder}/modelli.json?rnd=` + Math.random())).json();
const modello = modelli.find(m => m.id === params.type);
let modello = modelli.find(m => m.id === params.type);
// Senza type (o type non valido) si mostra il primo infisso disponibile
if (!modello) {
modello = modelli.find(m => m.enabled !== false) || modelli[0];
params.type = modello.id;
}
// Allinea la query string ai valori effettivi, così le altre letture (es. carrello) restano coerenti
const url = new URL(window.location.href);
if (url.searchParams.get('sistema') !== params.sistema || url.searchParams.get('type') !== params.type) {
url.searchParams.set('sistema', params.sistema);
url.searchParams.set('type', params.type);
window.history.replaceState(null, '', url);
}
const data = await (await fetch(`${modello_folder}/${modello.cartella}/form.json?rnd=${Math.random()}`)).json();
const data_finiture = modello.moduli.includes('modello') ? (await (await fetch(`${modello_folder}/${modello.cartella}/modello.json?rnd=${Math.random()}`)).json()).filter(el => el.id != "") : [];