feat: Aggiungi funzionalità di eliminazione per clienti e preventivi con gestione delle dipendenze
This commit is contained in:
@@ -17,7 +17,7 @@ const Configurator = {
|
||||
|
||||
res = Configurator.generateConfigData(res);
|
||||
|
||||
$(".prezzo").html(`€ ${res.prezzo.toFixed(2)}<span>IVA Inclusa</span>`);
|
||||
$(".prezzo").html(`€ ${res.prezzo.toFixed(2)}<span>IVA esclusa</span>`);
|
||||
window.configurazione = res;
|
||||
|
||||
if($(e.target).data('model')){
|
||||
|
||||
@@ -108,7 +108,8 @@ const PriceCalculator = {
|
||||
|
||||
|
||||
prezzo_finale = (prezzo_finale * (1 + percentuale_finiture+percentuale_vetro+data.percentuale_accessori)) + prezzo_accessori;
|
||||
prezzo_finale += prezzo_finale * 22 / 100; // IVA 22%
|
||||
// IVA disabilitata: i prezzi sono IVA esclusa
|
||||
// prezzo_finale += prezzo_finale * 22 / 100;
|
||||
|
||||
return {
|
||||
prezzo: prezzo_finale,
|
||||
|
||||
+21
-1
@@ -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 != "") : [];
|
||||
|
||||
Reference in New Issue
Block a user