{"id":1706,"date":"2026-09-11T00:29:10","date_gmt":"2026-09-10T22:29:10","guid":{"rendered":"https:\/\/boxalmetro.com\/web\/?page_id=1706"},"modified":"2026-09-12T22:39:23","modified_gmt":"2026-09-12T20:39:23","slug":"simulatore-prezzo-warehouse-5-storage-condivisi-non-self-spav-lucca","status":"publish","type":"page","link":"https:\/\/boxalmetro.com\/web\/simulatore-prezzo-warehouse-5-storage-condivisi-non-self-spav-lucca\/","title":{"rendered":"Simulatore Prezzo Magazzino Warehouse Lucca San Pietro a Vico 5"},"content":{"rendered":"<div>\r\nTorna ai <a href=\"https:\/\/boxalmetro.com\/web\/offerte-promo\/\">Simulatori di Prezzo Price Simulators Offerte e Promo<\/a> <br\/><br\/> o vai al\r\n<a href=\"https:\/\/boxalmetro.com\/web\/simulatore-prezzo-selfstorage-via-di-tiglio-43-lucca\/?sqm=2&months=6\"> Simulatore Prezzo SelfStorage Lucca Arancio 1<\/a> <br\/><br\/> o vai al\r\n\r\n<a href=\"https:\/\/boxalmetro.com\/web\/simulatore-prezzo-selfstorage-centro-storico-via-pelleria-18-lucca\/?sqm=2.5&months=6\"> Simulatore Prezzo SelfStorage Lucca Centro Storico 2 <\/a> <br\/><br\/> o vai al\r\n\r\n<a href=\"https:\/\/boxalmetro.com\/web\/simulatore-prezzo-selfbikeracks-centro-storico-via-pelleria-18-lucca\/?racks=1&months=6\"> Simulatore Prezzo Posti Bici Self Bike Racks Lucca Centro Storico 3 <\/a> <br\/><br\/> o vai al\r\n\r\n<a href=\"https:\/\/boxalmetro.com\/web\/simulatore-prezzo-hybridstorage-individuali-non-self-via-di-tiglio-39-lucca\/?mq=4&mesi=6\"> Simulatore Prezzo HybridStorage Lucca Arancio 4 <\/a> <br\/><br\/> o vai al\r\n\r\n<a href=\"https:\/\/boxalmetro.com\/web\/simulatore-prezzo-warehouse-5-storage-condivisi-non-self-spav-lucca?mesi=6&metri=4\"> Simulatore Prezzo Magazzino Warehouse Lucca San Pietro a Vico 5 <\/a> <br\/><br\/> o vai al\r\n\r\n<a href=\"https:\/\/boxalmetro.com\/web\/simulatore-prezzo-warestorage-condivisi-non-self-bagni-di-lucca\/?mq=8&mesi=6\">Simulatore Prezzo Magazzino Warehouse Bagni di Lucca 6 <\/a> <br\/><br\/> o vai alla\r\n\r\n<a href=\"https:\/\/boxalmetro.com\/web\/offerte-promo\/#documenti-attivazione\">Lista dei documenti necessari all'attivazione del servizio - Paperwork<\/a>\r\n<\/div>\r\n\r\n<div class=\"spav-simulator-container\">\r\n    <div class=\"spav-header\">\r\n        <h2>Simulatore Prezzi Ware 5 SPAV<\/h2>\r\n    <\/div>\r\n\r\n    <div class=\"spav-form\">\r\n        <div class=\"spav-input-group\">\r\n            <label for=\"spav-metri\">Metriquadri (mq):<\/label>\r\n            <select id=\"spav-metri\">\r\n                <option value=\"1\">1 mq<\/option>\r\n                <option value=\"2\">2 mq<\/option>\r\n                <option value=\"3\">3 mq<\/option>\r\n                <option value=\"4\">4 mq<\/option>\r\n                <option value=\"6\">6 mq<\/option>\r\n                <option value=\"8\">8 mq<\/option>\r\n                <option value=\"12\">12 mq<\/option>\r\n                <option value=\"16\">16 mq<\/option>\r\n            <\/select>\r\n        <\/div>\r\n\r\n        <div class=\"spav-input-group\">\r\n            <label for=\"spav-mesi\">Durata (Mesi):<\/label>\r\n            <select id=\"spav-mesi\">\r\n                <option value=\"1\">1 Mese<\/option>\r\n                <option value=\"2\">2 Mesi<\/option>\r\n                <option value=\"3\">3 Mesi<\/option>\r\n                <option value=\"4\">4 Mesi<\/option>\r\n                <option value=\"6\">6 Mesi<\/option>\r\n                <option value=\"12\">12 Mesi<\/option>\r\n            <\/select>\r\n        <\/div>\r\n\r\n        <div class=\"spav-input-group\">\r\n            <label for=\"spav-extra\">Extra Sconto (%):<\/label>\r\n            <input type=\"number\" id=\"spav-extra\" value=\"0\" min=\"0\" max=\"100\" step=\"0.01\">\r\n        <\/div>\r\n        \r\n        <div class=\"spav-actions\">\r\n            <button id=\"spav-share-btn\" type=\"button\">\ud83d\udd17 Copia Link<\/button>\r\n            <span id=\"spav-share-msg\">Link copiato!<\/span>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"spav-results\">\r\n        <div class=\"spav-result-card main-total\">\r\n            <h3>Prezzo Totale<\/h3>\r\n            <div class=\"spav-price\" id=\"res-totale\">\u20ac 50.00<\/div>\r\n            <div class=\"spav-subtext\">Senza Cauzione<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"spav-result-card highlight\">\r\n            <h3>Cauzione Inclusa<\/h3>\r\n            <div class=\"spav-price\" id=\"res-cauzione\">\u20ac 150.00<\/div>\r\n            <div class=\"spav-subtext\">Totale + 2 mensilit\u00e0 di deposito<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"spav-result-card\">\r\n            <h3>Costo al Mese<\/h3>\r\n            <div class=\"spav-price\" id=\"res-mese\">\u20ac 50.00<\/div>\r\n            <div class=\"spav-subtext\">Per lo spazio selezionato<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"spav-result-card\">\r\n            <h3>Costo al Metro<\/h3>\r\n            <div class=\"spav-price\" id=\"res-metro\">\u20ac 50.00<\/div>\r\n            <div class=\"spav-subtext\">Per mq, al mese<\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<style>\r\n    .spav-simulator-container {\r\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\r\n        max-width: 800px;\r\n        margin: 20px auto;\r\n        background: #f9f9f9;\r\n        border: 1px solid #ddd;\r\n        border-radius: 8px;\r\n        overflow: hidden;\r\n        box-shadow: 0 4px 6px rgba(0,0,0,0.05);\r\n    }\r\n    .spav-header {\r\n        background: #3173b6; \r\n        color: white;\r\n        padding: 15px 20px;\r\n        text-align: center;\r\n    }\r\n    .spav-header h2 {\r\n        margin: 0;\r\n        font-size: 1.4rem;\r\n        color: white;\r\n    }\r\n    .spav-form {\r\n        display: flex;\r\n        flex-wrap: wrap;\r\n        gap: 15px;\r\n        padding: 20px;\r\n        background: #fff;\r\n        border-bottom: 1px solid #eee;\r\n    }\r\n    .spav-input-group {\r\n        flex: 1;\r\n        min-width: 150px;\r\n        display: flex;\r\n        flex-direction: column;\r\n    }\r\n    .spav-input-group label {\r\n        font-weight: 600;\r\n        margin-bottom: 5px;\r\n        font-size: 0.9rem;\r\n        color: #333;\r\n    }\r\n    .spav-input-group select, \r\n    .spav-input-group input {\r\n        padding: 10px;\r\n        border: 1px solid #ccc;\r\n        border-radius: 4px;\r\n        font-size: 1rem;\r\n    }\r\n    .spav-actions {\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 15px;\r\n        margin-top: 5px;\r\n    }\r\n    #spav-share-btn {\r\n        background: #3173b6;\r\n        color: white;\r\n        border: none;\r\n        padding: 10px 20px;\r\n        border-radius: 4px;\r\n        cursor: pointer;\r\n        font-size: 1rem;\r\n        font-weight: 600;\r\n        transition: background 0.2s;\r\n    }\r\n    #spav-share-btn:hover {\r\n        background: #255a90;\r\n    }\r\n    #spav-share-msg {\r\n        display: none;\r\n        color: #00cc00;\r\n        font-size: 0.95rem;\r\n        font-weight: 600;\r\n    }\r\n    .spav-results {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\r\n        gap: 15px;\r\n        padding: 20px;\r\n    }\r\n    .spav-result-card {\r\n        background: #fff;\r\n        padding: 15px;\r\n        border-radius: 6px;\r\n        text-align: center;\r\n        border: 1px solid #e0e0e0;\r\n    }\r\n    .spav-result-card.main-total {\r\n        background: #e6f2ff;\r\n        border-color: #b3d7ff;\r\n    }\r\n    .spav-result-card.highlight {\r\n        background: #00ff00; \r\n        border-color: #00cc00;\r\n    }\r\n    .spav-result-card h3 {\r\n        margin: 0 0 10px 0;\r\n        font-size: 1rem;\r\n        color: #444;\r\n    }\r\n    .spav-result-card.highlight h3 {\r\n        color: #000;\r\n    }\r\n    .spav-price {\r\n        font-size: 1.5rem;\r\n        font-weight: bold;\r\n        color: #111;\r\n        margin-bottom: 5px;\r\n    }\r\n    .spav-subtext {\r\n        font-size: 0.8rem;\r\n        color: #666;\r\n    }\r\n    .spav-result-card.highlight .spav-subtext {\r\n        color: #333;\r\n    }\r\n<\/style>\r\n\r\n<script>\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        \/\/ Data from the provided image table\r\n        const baseRate = 50.00; \/\/ Price per mq per month\r\n\r\n        const scontoMesiMap = {\r\n            1: 0.00, 2: 0.05, 3: 0.08, 4: 0.10, 6: 0.20, 12: 0.25\r\n        };\r\n\r\n        const scontoMetriMap = {\r\n            1: 0.00, 2: 0.05, 3: 0.08, 4: 0.10, 6: 0.12, 8: 0.18, 12: 0.20, 16: 0.25\r\n        };\r\n\r\n        \/\/ DOM Elements\r\n        const selectMetri = document.getElementById('spav-metri');\r\n        const selectMesi = document.getElementById('spav-mesi');\r\n        const inputExtra = document.getElementById('spav-extra');\r\n        const shareBtn = document.getElementById('spav-share-btn');\r\n        const shareMsg = document.getElementById('spav-share-msg');\r\n\r\n        const resTotale = document.getElementById('res-totale');\r\n        const resCauzione = document.getElementById('res-cauzione');\r\n        const resMese = document.getElementById('res-mese');\r\n        const resMetro = document.getElementById('res-metro');\r\n\r\n        function formatCurrency(num) {\r\n            return '\u20ac ' + num.toFixed(2);\r\n        }\r\n\r\n        \/\/ Reads URL parameters and updates the form inputs on page load\r\n        function loadParametersFromURL() {\r\n            const params = new URLSearchParams(window.location.search);\r\n            \r\n            if (params.has('metri')) {\r\n                const urlMetri = params.get('metri');\r\n                if (selectMetri.querySelector(`option[value=\"${urlMetri}\"]`)) {\r\n                    selectMetri.value = urlMetri;\r\n                }\r\n            }\r\n            if (params.has('mesi')) {\r\n                const urlMesi = params.get('mesi');\r\n                if (selectMesi.querySelector(`option[value=\"${urlMesi}\"]`)) {\r\n                    selectMesi.value = urlMesi;\r\n                }\r\n            }\r\n            if (params.has('extra')) {\r\n                inputExtra.value = params.get('extra');\r\n            }\r\n        }\r\n\r\n        \/\/ Updates the URL query string silently\r\n        function updateURLParameters(m, q, extra) {\r\n            const url = new URL(window.location);\r\n            url.searchParams.set('metri', q);\r\n            url.searchParams.set('mesi', m);\r\n            \r\n            if (extra > 0) {\r\n                url.searchParams.set('extra', extra);\r\n            } else {\r\n                url.searchParams.delete('extra');\r\n            }\r\n            \r\n            \/\/ replaceState changes the URL without reloading or cluttering the browser's \"back\" history\r\n            window.history.replaceState({}, '', url);\r\n        }\r\n\r\n        function calculate() {\r\n            const m = parseInt(selectMesi.value);\r\n            const q = parseInt(selectMetri.value);\r\n            const extraSconto = parseFloat(inputExtra.value) || 0;\r\n\r\n            \/\/ Update URL dynamically\r\n            updateURLParameters(m, q, extraSconto);\r\n\r\n            \/\/ Get discounts\r\n            const s_m = scontoMesiMap[m] || 0;\r\n            const s_q = scontoMetriMap[q] || 0;\r\n            const e_s = extraSconto \/ 100;\r\n\r\n            \/\/ Discounts in the table are additive\r\n            const totalDiscountPercent = s_m + s_q + e_s;\r\n\r\n            \/\/ Base math\r\n            const basePrice = baseRate * q * m;\r\n            let finalPrice = basePrice * (1 - totalDiscountPercent);\r\n            \r\n            \/\/ Prevent negative prices if extra discount is too high\r\n            if (finalPrice < 0) finalPrice = 0;\r\n            \r\n            \/\/ Per month and per meter math\r\n            const monthlyCost = finalPrice \/ m;\r\n            const perMeterCost = monthlyCost \/ q;\r\n\r\n            \/\/ Deposit logic derived from table: Deposit is exactly 2 discounted monthly payments\r\n            const depositAmount = monthlyCost * 2;\r\n            const cauzioneInclusaPrice = finalPrice + depositAmount;\r\n\r\n            \/\/ Update DOM\r\n            resTotale.innerText = formatCurrency(finalPrice);\r\n            resCauzione.innerText = formatCurrency(cauzioneInclusaPrice);\r\n            resMese.innerText = formatCurrency(monthlyCost);\r\n            resMetro.innerText = formatCurrency(perMeterCost);\r\n        }\r\n\r\n        \/\/ Event Listeners for inputs\r\n        selectMetri.addEventListener('change', calculate);\r\n        selectMesi.addEventListener('change', calculate);\r\n        inputExtra.addEventListener('input', calculate);\r\n\r\n        \/\/ Event Listener for share button\r\n        shareBtn.addEventListener('click', function() {\r\n            navigator.clipboard.writeText(window.location.href).then(function() {\r\n                shareMsg.style.display = 'inline';\r\n                setTimeout(() => {\r\n                    shareMsg.style.display = 'none';\r\n                }, 2500);\r\n            }).catch(function(err) {\r\n                console.error('Failed to copy URL: ', err);\r\n                alert(\"Impossibile copiare il link automaticamente. Puoi copiare l'URL dalla barra degli indirizzi del browser.\");\r\n            });\r\n        });\r\n\r\n        \/\/ Load URL Data, then do Initial Calculation\r\n        loadParametersFromURL();\r\n        calculate();\r\n    });\r\n<\/script>\r\n","protected":false},"excerpt":{"rendered":"Torna ai Simulatori di Prezzo Price Simulators Offerte e Promo o vai al Simulatore Prezzo SelfStorage Lucca Arancio 1 o vai al Simulatore Prezzo SelfStorage Lucca Centro Storico 2 o vai al Simulatore Prezzo Posti Bici Self Bike Racks Lucca Centro Storico<p class=\"link-more\"><a class=\"myButt three\" href=\"https:\/\/boxalmetro.com\/web\/simulatore-prezzo-warehouse-5-storage-condivisi-non-self-spav-lucca\/\">Read More<\/a><\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_joinchat":[],"footnotes":""},"class_list":["post-1706","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/boxalmetro.com\/web\/wp-json\/wp\/v2\/pages\/1706","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/boxalmetro.com\/web\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/boxalmetro.com\/web\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/boxalmetro.com\/web\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/boxalmetro.com\/web\/wp-json\/wp\/v2\/comments?post=1706"}],"version-history":[{"count":14,"href":"https:\/\/boxalmetro.com\/web\/wp-json\/wp\/v2\/pages\/1706\/revisions"}],"predecessor-version":[{"id":1794,"href":"https:\/\/boxalmetro.com\/web\/wp-json\/wp\/v2\/pages\/1706\/revisions\/1794"}],"wp:attachment":[{"href":"https:\/\/boxalmetro.com\/web\/wp-json\/wp\/v2\/media?parent=1706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}