// Prima tabella
/* function aggiungiRiga() {
  const table = document
    .getElementById("investimentiTable")
    .getElementsByTagName("tbody")[0];
  const newRow = table.insertRow();

  newRow.innerHTML = `
        <td class="col-3">
            <select class="form-select">
                <option value="captazione">Captazione, Nuova realizzazione, Manutenzione e miglioramento di sistemi di raccolta e stoccaggio delle acque da destinare ad uso agricolo e zootecnico</option>
                <option value="pozzi">Nuovi pozzi e/o miglioramento di pozzi esistenti</option>
                <option value="reflue">Recupero e trattamento delle acque reflue</option>
                <option value="desalinizzazione">Impianti di mini-desalinizzazione</option>
                <option value="attrezzature">Motopompe, elettropompe e altre attrezzature necessarie</option>
                <option value="altro">Altro</option>
            </select>
        </td>
        <td><input type="text" class="form-control" name="descrizione[]"></td>
        <td><input type="text" class="form-control" name="importoImponibile[]" step="0.01" oninput="calcolaTotale()"></td>
        <td><input type="text" class="form-control" name="importoIva[]" step="0.01" oninput="calcolaTotale()"></td>
        <td>80%</td>
        <td><input type="text" class="form-control" name="contributo[]" step="0.01" disabled></td>
        <td><button type="button" class="btn btn-danger w-100" onclick="rimuoviRiga(this)">-</button></td>
    `;
}

function rimuoviRiga(button) {
  const row = button.parentNode.parentNode;
  row.parentNode.removeChild(row);
  calcolaTotale();
}

function calcolaTotale() {
  let totImponibile = 0,
    totIva = 0,
    totContributo = 0;

  document.querySelectorAll('[name="importoImponibile[]"]').forEach((input) => {
    totImponibile += parseFloat(input.value) || 0;
  });

  document.querySelectorAll('[name="importoIva[]"]').forEach((input, index) => {
    const contributo =
      (parseFloat(
        document.querySelectorAll('[name="importoImponibile[]"]')[index].value
      ) || 0) * 0.8;
    const minIva = contributo * 1.25;
    const currentIva = parseFloat(input.value) || 0;

    if (currentIva < minIva) {
      input.setCustomValidity(
        `L'importo IVA inclusa deve essere almeno ${minIva.toFixed(
          2
        )} (1.25 × contributo)`
      );
      input.classList.add("is-invalid");
    } else {
      input.setCustomValidity("");
      input.classList.remove("is-invalid");
    }

    totIva += currentIva;
  });

  totContributo = totImponibile * 0.8;

  document.getElementById("totImponibile").innerText = totImponibile.toFixed(2);
  document.getElementById("totIva").innerText = totIva.toFixed(2);
  document.getElementById("totContributo").innerText = totContributo.toFixed(2);
}

// Seconda tabella

document.querySelectorAll('input[name="tipo-modifica"]').forEach((radio) => {
  radio.addEventListener("change", (e) => {
    const tabellaCondizionale = document.getElementById("tabellaCondizionale");
    if (e.target.value === "nessuna") {
      tabellaCondizionale.style.display = "none";
    } else {
      tabellaCondizionale.style.display = "table";
    }
  });
});

function aggiungiRigaCondizionale() {
  const table = document
    .getElementById("tabellaCondizionale")
    .getElementsByTagName("tbody")[0];
  const newRow = table.insertRow();

  newRow.innerHTML = `
        <td class="col-3">
            <select class="form-select">
                <option value="captazione">Captazione, Nuova realizzazione, Manutenzione e miglioramento di sistemi di raccolta e stoccaggio delle acque da destinare ad uso agricolo e zootecnico</option>
                <option value="pozzi">Nuovi pozzi e/o miglioramento di pozzi esistenti</option>
                <option value="reflue">Recupero e trattamento delle acque reflue</option>
                <option value="desalinizzazione">Impianti di mini-desalinizzazione</option>
                <option value="attrezzature">Motopompe, elettropompe e altre attrezzature necessarie</option>
                <option value="altro">Altro</option>
            </select>
        </td>
        <td><input type="text" class="form-control" name="descrizioneCondizionale[]"></td>
        <td><input type="text" class="form-control" name="importoImponibileCondizionale[]" step="0.01" oninput="calcolaTotaleCondizionale()"></td>
        <td><input type="text" class="form-control" name="importoIvaCondizionale[]" step="0.01" oninput="calcolaTotaleCondizionale()"></td>
        <td>80%</td>
        <td><input type="text" class="form-control" name="contributoCondizionale[]" step="0.01" disabled></td>
        <td><button type="button" class="btn btn-danger w-100" onclick="rimuoviRigaCondizionale(this)">-</button></td>
    `;
}

function rimuoviRigaCondizionale(button) {
  const row = button.parentNode.parentNode;
  row.parentNode.removeChild(row);
  calcolaTotaleCondizionale();
}

function calcolaTotaleCondizionale() {
  let totImponibile = 0,
    totIva = 0,
    totContributo = 0;

  document
    .querySelectorAll('[name="importoImponibileCondizionale[]"]')
    .forEach((input) => {
      totImponibile += parseFloat(input.value) || 0;
    });

  document
    .querySelectorAll('[name="importoIvaCondizionale[]"]')
    .forEach((input, index) => {
      const contributo =
        (parseFloat(
          document.querySelectorAll('[name="importoImponibileCondizionale[]"]')[
            index
          ].value
        ) || 0) * 0.8;
      const minIva = contributo * 1.25;
      const currentIva = parseFloat(input.value) || 0;

      if (currentIva < minIva) {
        input.setCustomValidity(
          `L'importo IVA inclusa deve essere almeno ${minIva.toFixed(
            2
          )} (1.25 × contributo)`
        );
        input.classList.add("is-invalid");
      } else {
        input.setCustomValidity("");
        input.classList.remove("is-invalid");
      }

      totIva += currentIva;
    });

  totContributo = totImponibile * 0.8;
  document.getElementById("totImponibileCondizionale").innerText =
    totImponibile.toFixed(2);
  document.getElementById("totIvaCondizionale").innerText = totIva.toFixed(2);
  document.getElementById("totContributoCondizionale").innerText =
    totContributo.toFixed(2);
}

// Generazione input in base alla selezione della sezione cantierabilità

document
  .querySelectorAll('input[name="acquisizione-pareri"]')
  .forEach((radio) => {
    radio.addEventListener("change", (e) => {
      const uploadTitoliAbitativi = document.getElementById(
        "upload-titoli-abitativi"
      );
      if (e.target.value === "necessita") {
        uploadTitoliAbitativi.style.display = "block";
      } else {
        uploadTitoliAbitativi.style.display = "none";
      }
    });
  });

document
  .querySelectorAll('input[name="acquisizione-pareri"]')
  .forEach((radio) => {
    radio.addEventListener("change", (e) => {
      const uploadRichiesteInoltrate = document.getElementById(
        "upload-richieste-inoltrate"
      );
      if (e.target.value === "necessita") {
        uploadRichiesteInoltrate.style.display = "block";
      } else {
        uploadRichiesteInoltrate.style.display = "none";
      }
    });
  }); */

// Apertura e chiusura informativa

function apriInformativa() {
  var html = "";

  html += ' <p class="m-0" id="htmlInformativa">';
  html += '  <div class="informativa_txt">';
  html += '   <div class="informativaTitolo_div mb-3">';
  html +=
    "    <strong>Come utilizzare il seguente form?</strong>";
  html += "   </div>";
  html +=
    "   <p>Al fine di utilizzare quest'applicazione nel migliore dei modi, ecco delle linee guida per la corretta compilazione e l'invio della richiesta.</p>";
  html +=
    "   <p>Tutti i campi sono obbligatori, per cui non sarà possibile inviare alcuna richiesta se non verranno inseriti i dati correttamente.</p>";
  html += "   <p><strong>Come compilo i dati all'interno della tabella?</strong></p>";
  html += "   <p>Per inserire correttamente i dati all'interno delle tabelle, seguire le seguenti istruzioni:</p>";
  html +=
    "   <p>  - Aggiungere una nuova riga attraverso l'apposito pulsante 'Aggiungi riga', dopodichè inserire i dati richiesti in modo da specificare tutte le informazioni necessarie. </p>";
  html +=
    "   <p>  - Una volta inseriti tutti i dati, bisognerà cliccare sul tasto presente nella colonna 'Azioni', individuabile mediante la doppia &#10003 per salvare i dati inseriti.";
  html +=
    "   <p>  - Qualora vi siano errori nei dati inseriti, è possibile rimuovere quest'ultimi eliminando la riga attraverso il tasto di colore rosso raffigurante un cestino presente nella colonna 'Azioni'</p>";
  html += "   <p> - Una volta inserite tutte le informazioni si può procedere con la compilazione degli altri campi. </p>";
  html += "   <p><strong>Che tipo di file posso caricare?</strong></p>";
  html +=
    "   <p>Sono ammessi solo file in formato .pdf, con una dimensione massima di 5 mb. per file, altri tipi di file non saranno accettati e non sarà possibile compilare correttamente la richiesta.</p>";
  html +=
    "   <p>Nel caso in cui non si abbiano dei file .pdf per i documenti necessari, è possibile ricercare su internet dei siti che convertano eventuali immagini in file formato .pdf.</p>";
  html += "   <p><strong>Cosa faccio dopo aver compilato tutti i campi?</strong></p>";
  html +=
    "   <p>Dopo aver compilato tutti i campi in maniera corretta, bisognerà cliccare sul tasto 'Crea file'</p>";
  html +=
    "   <p>Questo tasto creerà un documento .pdf da firmare ed un file .xls contenente i dati inseriti nelle tabelle della 'Sezione piano investimenti'</p>";
  html +=
    "   <p>  Verranno scaricati anche i file precedentemente caricati insieme ai file .pdf ed .xls sopracitati. </p>";
  html +=
    "   <p>  Sarà necessario stampare e firmare la richiesta.</p>";
  html +=
    "   <p>   Dopo aver firmato la richiesta, bisognerà mandare una mail al seguente indirizzo: '--------------' ed allegare il modulo firmato, il file .xls precedentemente creato ed i documenti caricati necessari per il processamento della richiesta.</p>";
  html +=
    '    <div style="text-align: center; float: right; margin-top: 10px; padding: 0px; width: 70%;">';
  html += "     <table>";
  html += "      <tr>";
  html += "      </tr>";
  html += "     </table>";
  html += "    </div>";
  html += "   </div>";
  html += "  </div>";
  html += " </p>";
  $("#modal_informativa .modal-body").html(html);
  $("#modal_informativa").modal("show"); // div, h, w
}

function chiudiInformativa() {
  $("#informativa").remove();
  $("#divSfondo").remove();
  $("#destinazioneuso").focus();
}





function valida_mail(email) {
  var email_reg =
    /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))?$/;
  return email_reg.test(email);
}

$(document).on("submit", "form", function (event) {
  var formIsValid = true;

  $("input, textarea, select").each(function () {
    var input = $(this);
    var inputName = input.attr("name");
    var inputType = input.attr("type");
    var value = input.val();

    if (input.prop("required") && !value) {
      $("span[data-input='" + inputName + "']").text(
        "Il campo è obbligatorio."
      );
      $("div[data-input='" + inputName + "']").addClass("has-error");
      formIsValid = false;
    } else {
      $("span[data-input='" + inputName + "']").text("");
      $("div[data-input='" + inputName + "']").removeClass("has-error");
    }
    if (inputType === "email") {
      var reg_email = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
      if (value && !reg_email.test(value)) {
        $("span[data-input='" + inputName + "']").text("Email non valida.");
        $("div[data-input='" + inputName + "']").addClass("has-error");
        formIsValid = false;
      }
    } else if (inputType === "file") {
      var file = input[0].files[0];
      if (file) {
        var allowedExtensions = /(\.pdf)$/i;
        var maxSize = 5 * 1024 * 1024; // 5MB
        if (!allowedExtensions.test(file.name)) {
          $("span[data-input='" + inputName + "']").text(
            "Formato file non valido. Carica solo .pdf."
          );
          $("div[data-input='" + inputName + "']").addClass("has-error");
          formIsValid = false;
        } else if (file.size > maxSize) {
          $("span[data-input='" + inputName + "']").text(
            "Il file deve essere inferiore a 5MB."
          );
          $("div[data-input='" + inputName + "']").addClass("has-error");
          formIsValid = false;
        }
      } else if (input.prop("required")) {
        $("span[data-input='" + inputName + "']").text(
          inputName + " è obbligatorio."
        );
        $("div[data-input='" + inputName + "']").addClass("has-error");
        formIsValid = false;
      }
    }
  });
  if (!formIsValid) {
    event.preventDefault();
  }
});




$(document).on("change", "input[name='qualifica']", function () {
  var selected = $("input[name='qualifica']:checked").val();
  if (!selected) {
    $("span[data-input='qualifica']").text("Selezione obbligatoria.");
    $("div[data-input='qualifica']").addClass("has-error");
  } else {
    $("span[data-input='qualifica']").text("");
    $("div[data-input='qualifica']").removeClass("has-error");
  }
});

$(document).on("submit", "form", function (event) {
  var selected = $("input[name='qualifica']:checked").val();
  if (!selected) {
    $("span[data-input='qualifica']").text("Selezione obbligatoria.");
    $("div[data-input='qualifica']").addClass("has-error");
    event.preventDefault(); // Blocca l'invio del form
  }
});




$(document).on("submit", "form", function (event) {
  var file = $("input[name='scansione-dati-bancari']")[0].files[0];
  var allowedExtensions = /(\.pdf)$/i;
  var maxSize = 5 * 1024 * 1024;

  if (!file) {
    $("span[data-input='upload-dati-bancari']").text(
      "Scansione dei dati bancari obbligatoria."
    );
    $("div[name='upload-dati-bancari']").addClass("has-error");
    event.preventDefault();
  } else if (!allowedExtensions.test(file.name)) {
    $("span[data-input='upload-dati-bancari']").text(
      "Formato non valido. Caricare solo file .pdf."
    );
    $("div[name='upload-dati-bancari']").addClass("has-error");
    event.preventDefault();
  } else if (file.size > maxSize) {
    $("span[data-input='upload-dati-bancari']").text(
      "Il file deve essere inferiore a 5MB."
    );
    $("div[name='upload-dati-bancari']").addClass("has-error");
    event.preventDefault();
  }
});

$(document).on("submit", "form", function (event) {
  var selectedOption = $("input[name='tipo-modifica']:checked").val();

  if (!selectedOption) {
    $("span[data-input='scelta-tabella-condizionale']").text(
      "Seleziona un'opzione obbligatoria."
    );
    $("div[name='scelta-tabella-condizionale']").addClass("has-error");
    event.preventDefault();
  } else {
    $("span[data-input='scelta-tabella-condizionale']").text("");
    $("div[name='scelta-tabella-condizionale']").removeClass("has-error");
  }
});

$(document).on("input", "#text-area", function () {
  var textArea = $(this).val();

  if (textArea.length == 0) {
    $("span[data-input='text-area']").text(
      "Relazione sulle motivazioni degli interventi obbligatoria."
    );
    $("div[data-input='text-area']").addClass("has-error");
  } else {
    $("span[data-input='text-area']").text("");
    $("div[data-input='text-area']").removeClass("has-error");
  }
});

$(document).on("change", "input[name='computo-metrico']", function () {
  var file = this.files[0];
  var allowedExtensions = /(\.pdf)$/i;
  var maxSize = 5 * 1024 * 1024;

  if (!file) {
    $("span[data-input='upload-computo-metrico']").text(
      "Scansione del computo metrico obbligatoria."
    );
    $("div[name='upload-computo-metrico']").addClass("has-error");
  } else if (!allowedExtensions.test(file.name)) {
    $("span[data-input='upload-computo-metrico']").text(
      "Formato non valido. Caricare solo file .pdf."
    );
    $("div[name='upload-computo-metrico']").addClass("has-error");
  } else if (file.size > maxSize) {
    $("span[data-input='upload-computo-metrico']").text(
      "Il file deve essere inferiore a 5MB."
    );
    $("div[name='upload-computo-metrico']").addClass("has-error");
  } else {
    $("span[data-input='upload-computo-metrico']").text("");
    $("div[name='upload-computo-metrico']").removeClass("has-error");
  }
});

$(document).on("change", "input[name='planimetria']", function () {
  var file = this.files[0];
  var allowedExtensions = /(\.pdf)$/i;
  var maxSize = 5 * 1024 * 1024;

  if (!file) {
    $("span[data-input='upload-planimetria']").text(
      "Scansione della planimetria obbligatoria."
    );
    $("div[name='upload-planimetria']").addClass("has-error");
  } else if (!allowedExtensions.test(file.name)) {
    $("span[data-input='upload-planimetria']").text(
      "Formato non valido. Caricare solo file .pdf."
    );
    $("div[name='upload-planimetria']").addClass("has-error");
  } else if (file.size > maxSize) {
    $("span[data-input='upload-planimetria']").text(
      "Il file deve essere inferiore a 5MB."
    );
    $("div[name='upload-planimetria']").addClass("has-error");
  } else {
    $("span[data-input='upload-planimetria']").text("");
    $("div[name='upload-planimetria']").removeClass("has-error");
  }
});

$(document).on("change", "input[name='preventivi']", function () {
  var file = this.files[0];
  var allowedExtensions = /(\.pdf)$/i;
  var maxSize = 5 * 1024 * 1024;

  if (!file) {
    $("span[data-input='upload-preventivi']").text(
      "Scansione dei preventivi obbligatoria."
    );
    $("div[name='upload-preventivi']").addClass("has-error");
  } else if (!allowedExtensions.test(file.name)) {
    $("span[data-input='upload-preventivi']").text(
      "Formato non valido. Caricare solo file .pdf."
    );
    $("div[name='upload-preventivi']").addClass("has-error");
  } else if (file.size > maxSize) {
    $("span[data-input='upload-preventivi']").text(
      "Il file deve essere inferiore a 5MB."
    );
    $("div[name='upload-preventivi']").addClass("has-error");
  } else {
    $("span[data-input='upload-preventivi']").text("");
    $("div[name='upload-preventivi']").removeClass("has-error");
  }
});

$(document).on("change", "input[name='titoli-abitativi']", function () {
  var file = this.files[0];
  var allowedExtensions = /(\.pdf)$/i;
  var maxSize = 5 * 1024 * 1024;

  if (!file) {
    $("span[data-input='upload-titoli-abitativi']").text(
      "Scansione dei tioli abitativi obbligatoria."
    );
    $("div[name='upload-titoli-abitativi']").addClass("has-error");
  } else if (!allowedExtensions.test(file.name)) {
    $("span[data-input='upload-titoli-abitativi']").text(
      "Formato non valido. Caricare solo file .pdf."
    );
    $("div[name='upload-titoli-abitativi']").addClass("has-error");
  } else if (file.size > maxSize) {
    $("span[data-input='upload-titoli-abitativi']").text(
      "Il file deve essere inferiore a 5MB."
    );
    $("div[name='upload-titoli-abitativi']").addClass("has-error");
  } else {
    $("span[data-input='upload-titoli-abitativi']").text("");
    $("div[name='upload-titoli-abitativi']").removeClass("has-error");
  }
});

$(document).on("change", "input[name='richieste-inoltrate']", function () {
  var file = this.files[0];
  var allowedExtensions = /(\.pdf)$/i;
  var maxSize = 5 * 1024 * 1024;

  if (!file) {
    $("span[data-input='upload-richieste-inoltrate']").text(
      "Scansione delle richieste inoltrate obbligatoria."
    );
    $("div[name='upload-richieste-inoltrate']").addClass("has-error");
  } else if (!allowedExtensions.test(file.name)) {
    $("span[data-input='upload-richieste-inoltrate']").text(
      "Formato non valido. Caricare solo file .pdf."
    );
    $("div[name='upload-richieste-inoltrate']").addClass("has-error");
  } else if (file.size > maxSize) {
    $("span[data-input='upload-richieste-inoltrate']").text(
      "Il file deve essere inferiore a 5MB."
    );
    $("div[name='upload-richieste-inoltrate']").addClass("has-error");
  } else {
    $("span[data-input='upload-richieste-inoltrate']").text("");
    $("div[name='upload-richieste-inoltrate']").removeClass("has-error");
  }
});

/*

$(document).ready(function () {
  $("#myForm").submit(function (event) {
    event.preventDefault();

    // Ottieni i dati dalle tabelle
    let investimentiData = [];
    $("#investimentiTable tbody tr").each(function () {
      let row = [
        $(this).find("td:eq(0)").text(),
        $(this).find("td:eq(1)").text(),
        $(this).find("td:eq(2)").text(),
        $(this).find("td:eq(3)").text(),
        $(this).find("td:eq(4)").text(),
        $(this).find("td:eq(5)").text(),
      ];
      investimentiData.push(row);
    });

    let condizionaleData = [];
    $("#tabellaCondizionale tbody tr").each(function () {
      let row = [
        $(this).find("td:eq(0)").text(),
        $(this).find("td:eq(1)").text(),
        $(this).find("td:eq(2)").text(),
        $(this).find("td:eq(3)").text(),
        $(this).find("td:eq(4)").text(),
        $(this).find("td:eq(5)").text(),
      ];
      condizionaleData.push(row);
    });

    const { jsPDF } = window.jspdf;
    const doc = new jsPDF();

    // Titolo
    doc.text("Interventi in conto capitale", 10, 10);

    // Tabella investimenti
    doc.autoTable({
      startY: 20,
      head: [["Categoria", "Descrizione", "Imponibile", "IVA", "Aliquota 80%", "Contributo"]],
      body: investimentiData,
    });

    // Spazio tra le tabelle
    let finalY = doc.lastAutoTable.finalY + 10;

    // Tabella condizionale (se ci sono dati)
    if (condizionaleData.length > 0) {
      doc.text("Piano Investimenti (Condizionale)", 10, finalY);
      doc.autoTable({
        startY: finalY + 10,
        head: [["Categoria", "Descrizione", "Imponibile", "IVA", "Aliquota 80%", "Contributo"]],
        body: condizionaleData,
      });
    }

    // Salva o visualizza il PDF
    doc.save("richiesta_contributo.pdf");
  });
});

*/


//$(document).on("click", ".crea-files", function (e) {
$(document).on("click", ".ccccccc", function (e) {
    e.preventDefault();

    /*==== Ottieni i dati dai campi del form ==== PASSATI 
      var nome = $("#nome").val();
      var cognome = $("#cognome").val();
      var dataNascita = $("#data-nascita").val();
      var luogoNascita = $("#luogo-nascita").val();
      var cuua = $("input[name='cuua']").val();
      var residenza = $("#residenza").val();
      var indirizzo = $("#indirizzo").val();
      var pec = $("#pec").val();
      var telefono = $("#telefono").val();
      var qualifica = $("input[name='qualifica']:checked").val();
      var denominazione = $("#denominazione").val();
      var sede = $("#sede").val();
      var pIva = $("#p-iva").val();
      var iban = $("#iban").val();
      var istitutoCredito = $("#istituto-credito").val();
      var comuneLocalizzazione = $("#comune-localizzazione").val();
      var provinciaLocalizzazione = $("#provincia-localizzazione").val();
      var foglio = $("#foglio").val();
      var particelle = $("#particella").val();
      var cciaRiferimento = $("#ccia-riferimento").val();
      var numeroRea = $("#numero-rea").val();
      var numeroInps = $("#numero-inps").val();
      var nomeTecnico = $("#nome-tecnico").val();
      var cognomeTecnico = $("#cognome-tecnico").val();
      var comuneStudio = $("#comune-studio-professionale").val();
      var provinciaStudio = $("#provincia-studio-professionale").val();
      var indirizzoStudio = $("#indirizzo-studio-professionale").val();
      var recapitoTecnico = $("#recapito-tecnico").val();
      var pecTecnico = $("#pec-tecnico").val();
      var mailTecnico = $("#mail-tecnico").val();
      var provinciaOrdineTecnico = $("#provincia-ordine-tecnico").val();
      var numeroIscrizioneOrdine = $("#numero-iscrizione-ordine-tecnico").val();
    /*==== Ottieni i dati dai campi del form ====*/ 


    var righe_investimenti = [];
    var righe_tabella = $("#investimenti tbody tr");
    var counter = 0;
    var header = [
        "Categoria Interventi",
        "Descrizione Interventi"  ,
        "Importo Previsto Imponibile",
        "Importo Previsto IVA Inclusa",
        "Aliquota Contributiva 80%" ,
        "Contributo Richiesto" 
    ];
    righe_tabella.each(function(){
      var id = $(this).attr("id");
      if(counter == 0){
          righe_investimenti.push(header);
      }
      if(id.substring(0, 21) == "categoria_interventi_"){
          var categoria                   = $(this).find("td:eq(0) select option:selected");
          var descrizione_interventi      = $(this).find("td:eq(1) textarea");
          var importo_previsto_imponibile = $(this).find("td:eq(2) input");
          var aliquota_contributo        = $(this).find("td:eq(3) input");
          var aliquota_contributiva       = $(this).find("td:eq(4) input");
          var contributo_richiesto        = $(this).find("td:eq(5) input");
          righe_investimenti.push([
              categoria.text(), descrizione_interventi.val(), importo_previsto_imponibile.val(), aliquota_contributo.val(), aliquota_contributiva.val(), contributo_richiesto.val()
          ]);
      }
      if(id == "totale_spdi"){
          var importo_previsto_imponibile_totale = $("#importo_previsto_totale").attr("valore");
          var aliquota_contributo_totale = $("#aliquota_contributo").attr("valore");
          var aliquota_contributiva_totale = $("#aliquota_contributiva").attr("valore");
          var contributo_richiesto_totale = $("#contributo_richiesto").attr("valore");
          righe_investimenti.push([
               "Totale", "", importo_previsto_imponibile_totale, aliquota_contributo_totale, aliquota_contributiva_totale, contributo_richiesto_totale,
          ]);
        }
      counter++;
    });

    // Raccogliere i dati dalla tabella condizionale
    let condizionaleData = [];
    $("#tabellaCondizionale tbody tr").each(function () {
      let row = [
        $(this).find("td:eq(0)").text(),
        $(this).find("td:eq(1)").text(),
        $(this).find("td:eq(2)").text(),
        $(this).find("td:eq(3)").text(),
        $(this).find("td:eq(4)").text(),
        $(this).find("td:eq(5)").text(),
      ];
      condizionaleData.push(row);
    });

    // Raccogliere la relazione sulle motivazioni
    let relazioneMotivazioni = $("#text-area").val();

    // Raccogliere il valore selezionato per il tipo di modifica
    let tipoModifica = $("input[name='tipo-modifica']:checked").val();

    const { jsPDF } = window.jspdf;
    const doc = new jsPDF();
    doc.setFont('PTSans', 'bold');

    // Titolo del PDF
    var titolo_prima_riga = "Interventi in conto capitale per fronteggiare la crisi idrica in agricoltura";
    var titolo_seconda_riga = "in attuazione dell’art.13 della legge regionale 4 luglio 2024, n. 23.";
    var titolo_terza_riga = "Avviso approvato con D.D.G. N. 6186 del 29/08/2024."
    doc.text(titolo_prima_riga, 104, 12, 'center', '');
    doc.text(titolo_seconda_riga, 104, 19, 'center');
    doc.text(titolo_terza_riga, 104, 26, 'center');
    doc.line(10, 31, 200, 31);

    // Aggiungi i dati del form nel PDF
    doc.setFontSize('15')
    doc.text("Sezione Anagrafica", 104, 40, 'center', '');
    var currentY = 46;
    var sumY = 9;
    var x = 13;
    doc.setFont('PTSans', 'normal');
    doc.setFontSize('14')
    doc.text("Nome: " + nome + " " + cognome, x, currentY);
    doc.text("Data di nascita: " + dataNascita, x, (currentY+=sumY)*1);
    doc.text("Luogo di nascita: " + luogoNascita, x, (currentY+=sumY)*1);
    doc.text("CUUA: " + cuua, x, (currentY+=sumY)*1);
    doc.text("Residenza: " + residenza, x, (currentY+=sumY)*1);
    doc.text("Indirizzo: " + indirizzo, x, (currentY+=sumY)*1);
    doc.text("PEC: " + pec, x, (currentY+=sumY)*1);
    doc.text("Telefono: " + telefono, x, (currentY+=sumY)*1);
    doc.text(
      "Qualifica: " +
        (qualifica === "titolare"
          ? "Titolare dell'impresa individuale"
          : "Rappresentante legale dell’impresa agricola"),
      x,
      (currentY+=sumY)*1
    );
    doc.text("Denominazione: " + denominazione, x, (currentY+=sumY)*1);
    doc.text("Sede Legale: " + sede, x, (currentY+=sumY)*1);
    doc.text("Partita IVA: " + pIva, x, (currentY+=sumY)*1);

    doc.setFont('PTSans', 'bold');
    doc.setFontSize('15')
    doc.text("Dati Bancari", 104, (currentY+=sumY)*1, 'center', '');

    doc.setFont('PTSans', 'normal');
    doc.setFontSize('14')
    doc.text("IBAN: " + iban, x, (currentY+=sumY)*1);
    doc.text("Istituto di Credito: " + istitutoCredito, x, (currentY+=sumY)*1);

    doc.setFont('PTSans', 'bold');
    doc.setFontSize('15')
    doc.text("Localizzazione Investimento", 104, (currentY+=sumY)*1, 'center', '');

    doc.setFont('PTSans', 'normal');
    doc.setFontSize('14')

    doc.text("Comune Localizzazione: " + comuneLocalizzazione, x, (currentY+=sumY)*1);
    doc.text("Provincia Localizzazione: " + provinciaLocalizzazione, x, (currentY+=sumY)*1);
    doc.text("Foglio: " + foglio, x, (currentY+=sumY)*1);
    doc.text("Particelle: " + particelle, x, (currentY+=sumY)*1);
    doc.text("CCIA Riferimento: " + cciaRiferimento, x, (currentY+=sumY)*1);
    doc.text("Numero REA: " + numeroRea, x, (currentY+=sumY)*1);
    doc.text("Numero INPS: " + numeroInps, x, (currentY+=sumY)*1);

    doc.addPage();
    var currentY = 20;
    var sumY = 8;
    var x = 13;
    doc.setFont('PTSans', 'bold');
    doc.setFontSize('15')
    doc.text("Tecnico Competente", 104, currentY, 'center', '');

    doc.setFont('PTSans', 'normal');
    doc.setFontSize('14')
    doc.text("Nome Tecnico: " + nomeTecnico, x, (currentY+=sumY)*1);
    doc.text("Cognome Tecnico: " + cognomeTecnico, x, (currentY+=sumY)*1);
    doc.text("Comune Studio Professionale: " + comuneStudio, x, (currentY+=sumY)*1);
    doc.text("Provincia Studio Professionale: " + provinciaStudio, x, (currentY+=sumY)*1);
    doc.text("Indirizzo Studio Professionale: " + indirizzoStudio, x,(currentY+=sumY)*1);
    doc.text("Recapito Tecnico: " + recapitoTecnico, x, (currentY+=sumY)*1);
    doc.text("PEC Tecnico: " + pecTecnico, x, (currentY+=sumY)*1);
    doc.text("Mail Tecnico: " + mailTecnico, x, (currentY+=sumY)*1);
    doc.text("Provincia Ordine Tecnico: " + provinciaOrdineTecnico, x, (currentY+=sumY)*1);
    doc.text(
      "Numero Iscrizione Ordine Tecnico: " + numeroIscrizioneOrdine,
      x,
      (currentY+=sumY)*1
    );
    doc.addPage();
    var currentY = 20;
    var sumY = 9;
    doc.setFontSize('15')
    doc.setFont('PTSans', 'bold');
    doc.text("Sezione Piano degli Investimenti", 104, currentY, 'center', '');
    doc.setFont('PTSans', 'normal');
    doc.setFontSize('14')

    // Scrivere i dati della tabella degli investimenti    
    doc.autoTable({
      startY: (currentY+=sumY)*1,
      body: righe_investimenti,
    });

    // Spazio tra le tabelle
    let finalY = doc.lastAutoTable.finalY + 10;
    var currentY = finalY;

    // Scrivere i dati della tabella condizionale, se presente
    currentY += 20;
    if (condizionaleData.length > 0) {
      doc.text("Sezione Piano degli Investimenti (Condizionale)", 10, currentY);
      currentY += 10;
      condizionaleData.forEach(function (item) {
        doc.text(`Categoria: ${item.categoria}`, 10, currentY);
        doc.text(`Descrizione: ${item.descrizione}`, 10, currentY + 10);
        doc.text(
          `Importo Imponibile: ${item.importoImponibile}`,
          10,
          currentY + 20
        );
        doc.text(`Importo IVA: ${item.importoIva}`, 10, currentY + 30);
        doc.text(`Aliquota 80%: ${item.aliquota80}`, 10, currentY + 40);
        doc.text(`Contributo Richiesto: ${item.contributo}`, 10, currentY + 50);
        currentY += 60;
      });
    }

    // Scrivere la relazione sulle motivazioni
    currentY = 20;
    doc.addPage();
    doc.text("Relazione sulle motivazioni degli interventi:", x, currentY);
    doc.text(relazioneMotivazioni, 10, (currentY+=sumY)*1);

    // Scrivere il tipo di modifica selezionato
    currentY += 40;
    doc.text("Tipo di modifica: " + tipoModifica, 10, currentY);

    // Salva il PDF
    doc.save(pIva+".pdf");
});