document.addEventListener("DOMContentLoaded", function () { // Récupérer les données du formulaire depuis l'URL const urlParams = new URLSearchParams(window.location.search); const formData = JSON.parse(decodeURIComponent(urlParams.get("data"))); // Afficher les informations du destinataire const recipientInfo = document.getElementById("recipientInfo"); recipientInfo.innerHTML = `

${formData.recipient_name}

${formData.recipient_address}

${formData.recipient_postal_code} ${formData.recipient_town}

${formData.recipient_country}

${ formData.recipient_vat_number ? `

TVA: ${formData.recipient_vat_number}

` : "" } `; // Afficher les détails de la facture const invoiceDetails = document.getElementById("invoiceDetails"); // Créer le contenu de base des détails let detailsHTML = `

Numéro de facture

${formData.invoice_number}

Date

${new Date().toLocaleDateString()}

Langue

${formData.language}

Montant Total

${formData.amount} ${formData.currency}

`; // Ajouter le tableau des lignes de facturation si présentes if (formData.items && formData.items.length > 0) { detailsHTML += `

Lignes de facturation

`; // Ajouter chaque ligne formData.items.forEach((item) => { detailsHTML += ` `; }); detailsHTML += `
Description Montant (${formData.currency})
${item.description} ${item.amount}
Total ${formData.amount}
`; } invoiceDetails.innerHTML = detailsHTML; // Mettre à jour les informations de paiement en fonction de la devise const paymentInfoDiv = document.querySelector( ".mt-8.border-t.pt-8 .space-y-2" ); if (paymentInfoDiv) { if (formData.currency === "CHF") { paymentInfoDiv.innerHTML = `

Banque: Wise Payments Limited, London, United Kingdom

IBAN: GB51 TRWI 2308 0140 8766 98

BIC/SWIFT: TRWIGB2LXXX

Titulaire: Robin Szymczak

`; } else { paymentInfoDiv.innerHTML = `

Banque: Wise, Bruxelles, Belgique

IBAN: BE22905094540247

BIC/SWIFT: TRWIBEB1XXX

Titulaire: Robin Szymczak

`; } } // Gérer le bouton "Retour" document.getElementById("backToForm").addEventListener("click", function () { // Sauvegarder les données du formulaire dans localStorage localStorage.setItem("invoiceData", JSON.stringify(formData)); // Rediriger vers la page du générateur window.location.href = "/generator"; }); // Gérer la validation de la facture document .getElementById("validateInvoice") .addEventListener("click", async function () { try { console.log("Envoi des données à l'API:", formData); const response = await fetch("/api/invoices", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(formData), }); console.log("Réponse reçue:", response.status); if (response.ok) { const result = await response.json(); console.log("Facture créée avec succès:", result); alert("Facture créée avec succès !"); // Effacer les données du formulaire du localStorage après validation réussie localStorage.removeItem("invoiceData"); // Supprimer également de l'historique des factures récentes removeFromRecentInvoices(formData.recipient_name); window.location.href = "/dashboard"; } else { const error = await response.json(); console.error("Erreur API:", error); alert( "Erreur lors de la création de la facture : " + (error.error || "Erreur inconnue") ); } } catch (error) { console.error("Erreur lors de la requête:", error); alert("Erreur lors de la création de la facture : " + error.message); } }); // Fonction pour supprimer une facture de l'historique récent function removeFromRecentInvoices(recipientName) { if (!recipientName) return; try { let recentInvoices = JSON.parse( localStorage.getItem("recentInvoices") || "[]" ); // Filtrer pour supprimer la facture avec le même destinataire recentInvoices = recentInvoices.filter( (invoice) => invoice.recipient_name !== recipientName ); localStorage.setItem("recentInvoices", JSON.stringify(recentInvoices)); } catch (error) { console.error("Erreur lors de la suppression de l'historique:", error); } } });