{"id":59,"date":"2025-12-26T13:43:02","date_gmt":"2025-12-26T12:43:02","guid":{"rendered":"https:\/\/simulios.fr\/?page_id=59"},"modified":"2026-01-02T12:57:52","modified_gmt":"2026-01-02T11:57:52","slug":"calculateur-multi-lignes","status":"publish","type":"page","link":"https:\/\/simulios.fr\/?page_id=59","title":{"rendered":"Calculateur multi-lignes"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"59\" class=\"elementor elementor-59\">\n\t\t\t\t<div class=\"elementor-element elementor-element-71d5309 e-flex e-con-boxed e-con e-parent\" data-id=\"71d5309\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6118863 elementor-widget elementor-widget-html\" data-id=\"6118863\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"budget-calculator\" style=\"max-width:800px;margin:auto;padding:20px;font-family:sans-serif;\">\n  <h2 style=\"text-align:center;\">Calculateur de Budget Complet<\/h2>\n\n  <table id=\"budget-table\" style=\"width:100%;border-collapse:collapse;margin-bottom:15px;\">\n    <thead>\n      <tr style=\"background:#f0f0f0;\">\n        <th style=\"padding:10px;border:1px solid #ddd;\">Cat\u00e9gorie<\/th>\n        <th style=\"padding:10px;border:1px solid #ddd;\">Description<\/th>\n        <th style=\"padding:10px;border:1px solid #ddd;\">Montant (\u20ac)<\/th>\n        <th style=\"padding:10px;border:1px solid #ddd;\">Action<\/th>\n      <\/tr>\n    <\/thead>\n    <tbody>\n      <tr>\n        <td>\n          <select>\n            <option value=\"depense\">D\u00e9pense<\/option>\n            <option value=\"revenu\">Revenu<\/option>\n          <\/select>\n        <\/td>\n        <td><input type=\"text\" placeholder=\"Ex : Loyer\" style=\"width:100%;\"><\/td>\n        <td><input type=\"number\" placeholder=\"0\" style=\"width:100%;\"><\/td>\n        <td><button class=\"delete-row\">Supprimer<\/button><\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n\n  <button id=\"add-row\" style=\"margin-right:10px;padding:10px 15px;\">Ajouter une ligne<\/button>\n  <button id=\"calculate-budget\" style=\"padding:10px 15px;\">Calculer<\/button>\n\n  <div id=\"budget-result\" style=\"margin-top:20px;font-size:18px;\">\n    <p>Total D\u00e9penses : <span id=\"total-expense\">0\u20ac<\/span><\/p>\n    <p>Total Revenus : <span id=\"total-income\">0\u20ac<\/span><\/p>\n    <p>Solde : <span id=\"balance\">0\u20ac<\/span><\/p>\n  <\/div>\n\n  <button id=\"copy-result\" style=\"margin-top:10px;padding:10px 15px;\">Copier le r\u00e9sultat<\/button>\n<\/div>\n\n<script>\n  const table = document.getElementById('budget-table').getElementsByTagName('tbody')[0];\n  const addRowBtn = document.getElementById('add-row');\n  const calcBtn = document.getElementById('calculate-budget');\n  const copyBtn = document.getElementById('copy-result');\n  const totalExpenseEl = document.getElementById('total-expense');\n  const totalIncomeEl = document.getElementById('total-income');\n  const balanceEl = document.getElementById('balance');\n\n  \/\/ Ajouter une ligne\n  addRowBtn.onclick = () => {\n    const row = table.insertRow();\n    const cell1 = row.insertCell(0);\n    const cell2 = row.insertCell(1);\n    const cell3 = row.insertCell(2);\n    const cell4 = row.insertCell(3);\n\n    cell1.innerHTML = '<select><option value=\"depense\">D\u00e9pense<\/option><option value=\"revenu\">Revenu<\/option><\/select>';\n    cell2.innerHTML = '<input type=\"text\" placeholder=\"Ex : D\u00e9pense\" style=\"width:100%;\">';\n    cell3.innerHTML = '<input type=\"number\" placeholder=\"0\" style=\"width:100%;\">';\n    cell4.innerHTML = '<button class=\"delete-row\">Supprimer<\/button>';\n  };\n\n  \/\/ Supprimer ligne\n  table.addEventListener('click', function(e) {\n    if(e.target && e.target.classList.contains('delete-row')) {\n      const row = e.target.closest('tr');\n      row.remove();\n    }\n  });\n\n  \/\/ Calcul\n  calcBtn.onclick = () => {\n    let totalExpense = 0;\n    let totalIncome = 0;\n    const rows = table.getElementsByTagName('tr');\n    for (let i = 0; i < rows.length; i++) {\n      const cells = rows[i].getElementsByTagName('td');\n      if(cells.length > 0) {\n        const type = cells[0].getElementsByTagName('select')[0].value;\n        const amount = parseFloat(cells[2].getElementsByTagName('input')[0].value) || 0;\n        if(type === 'depense') totalExpense += amount;\n        else totalIncome += amount;\n      }\n    }\n    totalExpenseEl.innerText = totalExpense.toFixed(2) + '\u20ac';\n    totalIncomeEl.innerText = totalIncome.toFixed(2) + '\u20ac';\n    balanceEl.innerText = (totalIncome - totalExpense).toFixed(2) + '\u20ac';\n  };\n\n  \/\/ Copier le r\u00e9sultat\n  copyBtn.onclick = () => {\n    const text = `D\u00e9penses: ${totalExpenseEl.innerText}\\nRevenus: ${totalIncomeEl.innerText}\\nSolde: ${balanceEl.innerText}`;\n    navigator.clipboard.writeText(text).then(() => {\n      alert('R\u00e9sultat copi\u00e9 !');\n    });\n  };\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Calculateur de Budget Complet Cat\u00e9gorie Description Montant (\u20ac) Action D\u00e9penseRevenu Supprimer Ajouter une ligne Calculer Total D\u00e9penses : 0\u20ac Total Revenus : 0\u20ac Solde : 0\u20ac Copier le r\u00e9sultat<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-59","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/simulios.fr\/index.php?rest_route=\/wp\/v2\/pages\/59","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simulios.fr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/simulios.fr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/simulios.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/simulios.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=59"}],"version-history":[{"count":4,"href":"https:\/\/simulios.fr\/index.php?rest_route=\/wp\/v2\/pages\/59\/revisions"}],"predecessor-version":[{"id":120,"href":"https:\/\/simulios.fr\/index.php?rest_route=\/wp\/v2\/pages\/59\/revisions\/120"}],"wp:attachment":[{"href":"https:\/\/simulios.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=59"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}