{"id":175,"date":"2026-01-18T23:11:32","date_gmt":"2026-01-18T22:11:32","guid":{"rendered":"https:\/\/www.comunedicaivano.it\/servizidigitali\/?page_id=175"},"modified":"2026-02-20T10:04:25","modified_gmt":"2026-02-20T09:04:25","slug":"lampade-votive","status":"publish","type":"page","link":"https:\/\/www.comunedicaivano.it\/servizidigitali\/lampade-votive\/","title":{"rendered":"Lampade votive"},"content":{"rendered":"\n<p>\nIl Comune di Caivano sta internalizzando la gestione e il pagamento del servizio di lampade votive.\nA partire dall\u2019anno <strong>2026<\/strong>, il contratto per il servizio sar\u00e0 stipulato\n<strong>direttamente con il Comune di Caivano<\/strong>.\n<\/p>\n\n<p>\nIl pagamento del servizio potr\u00e0 essere effettuato\n<strong>esclusivamente tramite il sistema pagoPA<\/strong>.\n<strong>Non sono previste altre modalit\u00e0 di pagamento<\/strong>.\n<\/p>\n\n<p>\nPer consentire l\u2019emissione del nuovo avviso di pagamento pagoPA, \u00e8 necessario compilare il modulo\nindicando i <strong>dati del vecchio contratto<\/strong>, reperibili sui precedenti avvisi di pagamento\nemessi dalla ditta incaricata.\n<\/p>\n\n<p>\nIn particolare, si chiede di indicare il <strong>numero del loculo<\/strong> e i\n<strong>dati dell\u2019intestatario del contratto<\/strong>.\nQualora non si conosca il numero del loculo, \u00e8 possibile inserire il valore <strong>0<\/strong>\ne inoltrare comunque la richiesta, compilando correttamente i dati dell\u2019intestatario.\n<\/p>\n\n<p>\nI <strong>giorni e gli orari<\/strong> in cui sar\u00e0 possibile ritirare l\u2019avviso di pagamento pagoPA\npresso gli uffici comunali saranno pubblicati su questa pagina.\nL\u2019avviso sar\u00e0 inoltre disponibile anche tramite <strong>App IO<\/strong>.\n<\/p>\n\n<p>\nIn via straordinaria, il <strong>termine ultimo per il pagamento del servizio per l\u2019anno 2026 \u00e8 stato prorogato a data da definirsi.\n<\/p>\n\n<p>\nSaranno attivate specifiche <strong>fasce orarie di supporto<\/strong>, durante le quali dipendenti\ncomunali assisteranno i cittadini nella compilazione della richiesta online,\nqualora non si riesca a procedere in autonomia.\n<\/p>\n\n<p>\nSuccessivamente all\u2019avvenuto pagamento, gli utenti saranno <strong>contattati dagli uffici comunali<\/strong>\nper la <strong>sottoscrizione del nuovo contratto<\/strong>.\nLa segnalazione dei dati per la sottoscrizione del contratto \u00e8 possibile esclusivamente\ntramite la pagina dei Servizi Digitali dedicata al servizio di lampade votive.\n<\/p>\n\n\n\n<section class=\"container my-5\" id=\"lv-form\">\n  <h2 class=\"mb-4\">Richiesta \u2013 Lampade Votive<\/h2>\n\n  <div class=\"alert alert-success\" id=\"lvOk\" style=\"display:none;\"><\/div>\n  <div class=\"alert alert-danger\" id=\"lvErr\" style=\"display:none;\"><\/div>\n\n  <form id=\"lvForm\" class=\"row g-3 needs-validation\" novalidate\n        method=\"post\"\n        action=\"\/servizidigitali\/wp-admin\/admin-post.php\">\n\n    <input type=\"hidden\" name=\"action\" value=\"caivano_lv_submit\">\n    <input type=\"hidden\" name=\"caivano_lv_nonce\" value=\"__LV_NONCE__\">\n\n    <!-- Honeypot -->\n    <div style=\"position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;\">\n      <label>Company <input type=\"text\" name=\"lv_company\" tabindex=\"-1\" autocomplete=\"off\"><\/label>\n    <\/div>\n\n    <!-- Timestamp anti-bot (ms) -->\n    <input type=\"hidden\" name=\"lv_ts\" id=\"lv_ts\" value=\"\">\n\n    <!-- Token one-time -->\n    <input type=\"hidden\" name=\"lv_token\" id=\"lv_token\" value=\"\">\n\n    <div class=\"col-12\">\n      <h5>Dati intestatario contratto<\/h5>\n    <\/div>\n\n    <div class=\"col-md-4\">\n      <label class=\"form-label\">Numero Contratto *<\/label>\n      <input type=\"text\" class=\"form-control\" name=\"numero_contratto\" required>\n      <div class=\"invalid-feedback\">Inserisci il numero contratto.<\/div>\n    <\/div>\n\n    <div class=\"col-md-4\">\n      <label class=\"form-label\">Nome *<\/label>\n      <input type=\"text\" class=\"form-control\" name=\"nome\" required>\n      <div class=\"invalid-feedback\">Inserisci il nome.<\/div>\n    <\/div>\n\n    <div class=\"col-md-4\">\n      <label class=\"form-label\">Cognome *<\/label>\n      <input type=\"text\" class=\"form-control\" name=\"cognome\" required>\n      <div class=\"invalid-feedback\">Inserisci il cognome.<\/div>\n    <\/div>\n\n    <div class=\"col-md-4\">\n      <label class=\"form-label\">Codice Fiscale *<\/label>\n      <input type=\"text\" class=\"form-control\" name=\"cf\" required maxlength=\"20\" autocomplete=\"off\" spellcheck=\"false\">\n      <div class=\"invalid-feedback\">Inserisci il codice fiscale.<\/div>\n    <\/div>\n\n    <div class=\"col-md-8\">\n      <label class=\"form-label\">Indirizzo di Residenza *<\/label>\n      <input type=\"text\" class=\"form-control\" name=\"indirizzo\" required>\n      <div class=\"invalid-feedback\">Inserisci l\u2019indirizzo.<\/div>\n    <\/div>\n\n    <div class=\"col-md-3\">\n      <label class=\"form-label\">CAP *<\/label>\n      <input type=\"text\" class=\"form-control\" name=\"cap\" required maxlength=\"10\" inputmode=\"numeric\" autocomplete=\"postal-code\">\n      <div class=\"invalid-feedback\">Inserisci il CAP.<\/div>\n    <\/div>\n\n    <div class=\"col-md-3\">\n      <label class=\"form-label\">Comune *<\/label>\n      <input type=\"text\" class=\"form-control\" name=\"comune\" required>\n      <div class=\"invalid-feedback\">Inserisci il Comune.<\/div>\n    <\/div>\n\n    <div class=\"col-md-2\">\n      <label class=\"form-label\">Provincia *<\/label>\n      <input type=\"text\" class=\"form-control\" name=\"provincia\" required maxlength=\"10\" style=\"text-transform:uppercase\">\n      <div class=\"invalid-feedback\">Inserisci la Provincia.<\/div>\n    <\/div>\n\n    <div class=\"col-md-4\">\n      <label class=\"form-label\">Telefono *<\/label>\n      <input type=\"text\" class=\"form-control\" name=\"telefono\" required inputmode=\"tel\" autocomplete=\"tel\">\n      <div class=\"invalid-feedback\">Inserisci il telefono.<\/div>\n    <\/div>\n\n    <div class=\"col-md-6\">\n      <label class=\"form-label\">Email *<\/label>\n      <input type=\"email\" class=\"form-control\" name=\"email\" required autocomplete=\"email\">\n      <div class=\"invalid-feedback\">Inserisci una email valida.<\/div>\n    <\/div>\n\n    <div class=\"col-12 mt-3\">\n      <h5>Dati lampade \/ sepoltura<\/h5>\n    <\/div>\n\n    <div class=\"col-md-3\">\n      <label class=\"form-label\">Numero di lampade *<\/label>\n      <input type=\"number\" class=\"form-control\" name=\"numero_lampade\" required min=\"1\">\n      <div class=\"invalid-feedback\">Indica almeno 1 lampada.<\/div>\n    <\/div>\n\n    <div class=\"col-md-3\">\n      <label class=\"form-label\">Numero Loculo *<\/label>\n      <input type=\"text\" class=\"form-control\" name=\"numero_loculo\" required>\n      <div class=\"invalid-feedback\">Inserisci il numero loculo.<\/div>\n    <\/div>\n\n    <div class=\"col-md-2\">\n      <label class=\"form-label\">Area<\/label>\n      <input type=\"text\" class=\"form-control\" name=\"area\">\n    <\/div>\n\n    <div class=\"col-md-2\">\n      <label class=\"form-label\">Settore<\/label>\n      <input type=\"text\" class=\"form-control\" name=\"settore\">\n    <\/div>\n\n    <div class=\"col-md-2\">\n      <label class=\"form-label\">Piano<\/label>\n      <input type=\"text\" class=\"form-control\" name=\"piano\">\n    <\/div>\n\n    <div class=\"col-12 mt-3\">\n      <h5>Verifica anti-bot<\/h5>\n      <div class=\"mb-2 text-muted\">Rispondi alla domanda:<\/div>\n      <div class=\"d-flex align-items-center gap-3 flex-wrap\">\n        <strong id=\"lv_captcha_q\">Caricamento&#8230;<\/strong>\n        <input type=\"number\" class=\"form-control\" style=\"max-width:160px;\" name=\"lv_captcha\" required placeholder=\"Risposta\">\n        <div class=\"invalid-feedback d-block\" style=\"display:none;\" id=\"lvCaptchaInvalid\">Inserisci la risposta al captcha.<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"col-12 mt-3\">\n      <div class=\"form-check\">\n        <input class=\"form-check-input\" type=\"checkbox\" value=\"1\" id=\"privacy\" name=\"privacy\" required>\n        <label class=\"form-check-label\" for=\"privacy\">\n          Dichiaro di aver preso visione dell\u2019Informativa Privacy *\n        <\/label>\n        <div class=\"invalid-feedback\">Devi accettare l\u2019informativa privacy.<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"col-12\">\n      <button class=\"btn btn-primary\" type=\"submit\" id=\"lvSubmitBtn\">Invia richiesta<\/button>\n    <\/div>\n\n    <div class=\"col-12\">\n      <div class=\"text-muted small\">\n        Dopo l\u2019invio riceverai una ricevuta PDF via email.\n      <\/div>\n    <\/div>\n  <\/form>\n<\/section>\n\n<!-- MODAL POPUP ERRORI -->\n<div class=\"modal fade\" id=\"lvErrModal\" tabindex=\"-1\" aria-hidden=\"true\">\n  <div class=\"modal-dialog modal-dialog-centered\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h5 class=\"modal-title\">Controlla i dati<\/h5>\n        <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Chiudi\"><\/button>\n      <\/div>\n      <div class=\"modal-body\">\n        <p class=\"mb-2\">Alcuni campi sono mancanti o non validi:<\/p>\n        <ul class=\"mb-0\" id=\"lvErrList\"><\/ul>\n      <\/div>\n      <div class=\"modal-footer\">\n        <button type=\"button\" class=\"btn btn-secondary\" data-bs-dismiss=\"modal\">OK<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  const form = document.getElementById('lvForm');\n  if (!form) return;\n\n  \/\/ Timestamp + token (one-time) lato client\n  const tsEl = document.getElementById('lv_ts');\n  if (tsEl) tsEl.value = String(Date.now());\n\n  const tokenEl = document.getElementById('lv_token');\n  if (tokenEl) {\n    try {\n      const rnd = (crypto && crypto.getRandomValues) ? crypto.getRandomValues(new Uint32Array(4)) : [Date.now(), Math.random()*1e9, Math.random()*1e9, Math.random()*1e9];\n      tokenEl.value = Array.from(rnd).map(x => x.toString(16)).join('');\n    } catch (e) {\n      tokenEl.value = String(Date.now()) + String(Math.random()).slice(2);\n    }\n  }\n\n  \/\/ Helper: label leggibile per ogni input\n  function getFieldLabel(el) {\n    const wrap = el.closest('.col-12, .col-md-2, .col-md-3, .col-md-4, .col-md-6, .col-md-8, .form-check') || el.parentElement;\n    const lab = wrap ? wrap.querySelector('label') : null;\n    if (lab && lab.textContent) return lab.textContent.replace('*','').trim();\n    return el.name || 'Campo';\n  }\n\n  function showErrorModal(items) {\n    const list = document.getElementById('lvErrList');\n    if (list) list.innerHTML = items.map(t => `<li>${t}<\/li>`).join('');\n    const modalEl = document.getElementById('lvErrModal');\n    if (modalEl && window.bootstrap && bootstrap.Modal) {\n      bootstrap.Modal.getOrCreateInstance(modalEl).show();\n    } else {\n      alert(\"Controlla i dati:\\n\\n- \" + items.join(\"\\n- \"));\n    }\n  }\n\n  \/\/ Normalizzazioni leggere\n  const cf = form.querySelector('input[name=\"cf\"]');\n  if (cf) {\n    cf.addEventListener('input', () => {\n      cf.value = cf.value.toUpperCase().replace(\/\\s+\/g,'');\n    });\n  }\n  const prov = form.querySelector('input[name=\"provincia\"]');\n  if (prov) {\n    prov.addEventListener('input', () => {\n      prov.value = prov.value.toUpperCase().replace(\/\\s+\/g,'');\n    });\n  }\n\n  form.addEventListener('submit', function (e) {\n    \/\/ reset error box\n    const errBox = document.getElementById('lvErr');\n    const okBox  = document.getElementById('lvOk');\n    if (errBox) { errBox.style.display = 'none'; errBox.textContent = ''; }\n    if (okBox)  { okBox.style.display = 'none';  okBox.textContent = ''; }\n\n    \/\/ Bootstrap validation\n    if (!form.checkValidity()) {\n      e.preventDefault();\n      e.stopPropagation();\n\n      \/\/ Costruisci lista campi non validi (solo required\/invalid)\n      const invalid = Array.from(form.querySelectorAll(':invalid'))\n        .filter(el => el.name && el.type !== 'hidden' && el.type !== 'submit');\n\n      \/\/ Captcha: mostra feedback inline (opzionale)\n      const captchaEl = form.querySelector('input[name=\"lv_captcha\"]');\n      const capMsg = document.getElementById('lvCaptchaInvalid');\n      if (captchaEl && capMsg) capMsg.style.display = captchaEl.validity.valid ? 'none' : 'block';\n\n      const items = invalid.map(el => {\n        const label = getFieldLabel(el);\n        if (el.validity.valueMissing) return `${label}: campo obbligatorio`;\n        if (el.validity.typeMismatch) return `${label}: formato non valido`;\n        if (el.validity.rangeUnderflow) return `${label}: valore troppo basso`;\n        if (el.validity.tooLong) return `${label}: testo troppo lungo`;\n        return `${label}: valore non valido`;\n      });\n\n      form.classList.add('was-validated');\n      showErrorModal(items.length ? items : ['Compila correttamente i campi obbligatori.']);\n      return;\n    }\n\n    \/\/ ok: continua submit\n    form.classList.add('was-validated');\n  }, false);\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Il Comune di Caivano sta internalizzando la gestione e il pagamento del servizio di lampade votive. A partire dall\u2019anno 2026, il contratto per il servizio &#8230; <\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-175","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.comunedicaivano.it\/servizidigitali\/wp-json\/wp\/v2\/pages\/175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.comunedicaivano.it\/servizidigitali\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.comunedicaivano.it\/servizidigitali\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.comunedicaivano.it\/servizidigitali\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.comunedicaivano.it\/servizidigitali\/wp-json\/wp\/v2\/comments?post=175"}],"version-history":[{"count":15,"href":"https:\/\/www.comunedicaivano.it\/servizidigitali\/wp-json\/wp\/v2\/pages\/175\/revisions"}],"predecessor-version":[{"id":350,"href":"https:\/\/www.comunedicaivano.it\/servizidigitali\/wp-json\/wp\/v2\/pages\/175\/revisions\/350"}],"wp:attachment":[{"href":"https:\/\/www.comunedicaivano.it\/servizidigitali\/wp-json\/wp\/v2\/media?parent=175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}