j'ai retiré des commentaires pas utiles

This commit is contained in:
2026-03-05 18:27:49 +01:00
parent eac927d70c
commit b56713cfb4

View File

@@ -1,474 +1,493 @@
<!DOCTYPE html> <!doctype html>
<html> <html>
<head>
<head> <meta charset="utf-8" />
<meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="stylesheet" href="assets/style.css" />
<link rel="stylesheet" href="assets/style.css" /> <title>Calculateur d'épices</title>
<title>Calculateur d'épices</title> </head>
</head>
<body>
<body> <div id="titre">
<!-- div contenant le titre --> <h1 id="grandTitre">Calcul des épices</h1>
<div id="titre"> </div>
<h1 id="grandTitre">Calcul des épices</h1> <br />
</div> <script>
<br /> let poids_planche = 4.4;
<script> const bassines = [
let poids_planche = 4.4; { Nom: "Niagara", tare: 6.5 },
const bassines = [ { Nom: "Manu Chao", tare: 2.7 },
{ Nom: "Niagara", tare: 6.5 }, { Nom: "Kamini", tare: 2.7 },
{ Nom: "Manu Chao", tare: 2.7 }, { Nom: "Tina", tare: 2.7 },
{ Nom: "Kamini", tare: 2.7 }, { Nom: "Garou", tare: 6.0 },
{ Nom: "Tina", tare: 2.7 }, { Nom: "Johnny", tare: 2.7 },
{ Nom: "Garou", tare: 6.0 }, { Nom: "Vanessa", tare: 1.7 },
{ Nom: "Johnny", tare: 2.7 }, { Nom: "Joséphine", tare: 4.9 },
{ Nom: "Vanessa", tare: 1.7 }, { Nom: "Céline", tare: 6.0 },
{ Nom: "Joséphine", tare: 4.9 }, { Nom: "Dalida", tare: 2.5 },
{ Nom: "Céline", tare: 6.0 }, { Nom: "Florent", tare: 2.7 },
{ Nom: "Dalida", tare: 2.5 }, { Nom: "Petite bassine ronde verte (JM)", tare: 1.7 },
{ Nom: "Florent", tare: 2.7 }, { Nom: "Grande bassine verte", tare: 2.7 },
{ Nom: "Petite bassine ronde verte (JM)", tare: 1.7 }, { Nom: "Caisse grise", tare: 2.45 },
{ Nom: "Grande bassine verte", tare: 2.7 }, { Nom: "Caisse verte", tare: 2.6 },
{ Nom: "Caisse grise", tare: 2.45 }, ];
{ Nom: "Caisse verte", tare: 2.6 },
]; const col = [
"Bassine",
const col = [ "Couenne ?",
"Bassine", "Poids brut",
"Couenne ?", "Tare bassine",
"Poids brut", "Net",
"Tare bassine", "Sel (Kg)",
"Net", "Poivre (g)",
"Sel (Kg)", "Poivre concassé (g)",
"Poivre (g)", "Muscade (g)",
"Poivre concassé (g)", "Ail (g)",
"Muscade (g)", ];
"Ail (g)",
]; const getElementValue = (id) =>
parseFloat(document.getElementById(id).value) || 0;
const getElementValue = (id) => const getElementText = (id) => {
parseFloat(document.getElementById(id).value) || 0; const el = document.getElementById(id);
const getElementText = (id) => { if (!el) {
const el = document.getElementById(id); console.warn("Element introuvable :", id);
if (!el) { return 0;
console.warn("Element introuvable :", id); }
return 0; return parseFloat(el.innerHTML) || 0;
} };
return parseFloat(el.innerHTML) || 0;
}; function calculEpices(ligne) {
const poidsBrut = getElementValue("Poids_bassine_" + ligne);
function calculEpices(ligne) { if (poidsBrut) {
const poidsBrut = getElementValue("Poids_bassine_" + ligne); const tare = getElementText("tare_" + ligne);
if (poidsBrut) { const net = (poidsBrut - tare - poids_planche).toFixed(3);
const tare = getElementText("tare_" + ligne); document.getElementById("Net" + ligne).innerHTML = net;
const net = (poidsBrut - tare - poids_planche).toFixed(3); const propSel = getElementValue("Prop_sel");
document.getElementById("Net" + ligne).innerHTML = net; const propPoivre = getElementValue("Prop_poivre");
const propSel = getElementValue("Prop_sel"); const propMuscade = getElementValue("Prop_muscade");
const propPoivre = getElementValue("Prop_poivre"); const propAil = getElementValue("Prop_ail");
const propMuscade = getElementValue("Prop_muscade"); let qteSel;
const propAil = getElementValue("Prop_ail"); if (!document.getElementById("isCouenne" + ligne).checked) {
let qteSel; qteSel = net * propSel;
if (!document.getElementById("isCouenne" + ligne).checked) { } else {
qteSel = net * propSel qteSel = net * (propSel / 2);
} else { }
qteSel = net * (propSel / 2) document.getElementById("Sel (Kg)" + ligne).innerHTML =
}; qteSel.toFixed(3);
document.getElementById("Sel (Kg)" + ligne).innerHTML = ( document.getElementById("Poivre (g)" + ligne).innerHTML = (
qteSel net *
).toFixed(3); propPoivre *
document.getElementById("Poivre (g)" + ligne).innerHTML = ( 0.6
(net * propPoivre) * 0.6 ).toFixed(3);
).toFixed(3); document.getElementById(
document.getElementById("Poivre concassé (g)" + ligne).innerHTML = ( "Poivre concassé (g)" + ligne,
(net * propPoivre) * 0.4 ).innerHTML = (net * propPoivre * 0.4).toFixed(3);
).toFixed(3); document.getElementById("Muscade (g)" + ligne).innerHTML = (
document.getElementById("Muscade (g)" + ligne).innerHTML = ( net * propMuscade
net * propMuscade ).toFixed(3);
).toFixed(3); document.getElementById("Ail (g)" + ligne).innerHTML = (
document.getElementById("Ail (g)" + ligne).innerHTML = ( net * propAil
net * propAil ).toFixed(3);
).toFixed(3); } else {
} else { [
["Net", "Sel (Kg)", "Poivre (g)", "Poivre concassé (g)", "Muscade (g)", "Ail (g)"].forEach( "Net",
(colonne) => { "Sel (Kg)",
document.getElementById(colonne + ligne).innerHTML = ""; "Poivre (g)",
} "Poivre concassé (g)",
); "Muscade (g)",
} "Ail (g)",
calculerTotaux(); // Recalcul des totaux après chaque changement ].forEach((colonne) => {
} document.getElementById(colonne + ligne).innerHTML = "";
});
const recalculerToutesLignes = () => { }
for (let i = 1; i <= bassines.length; i++) { calculerTotaux(); // Recalcul des totaux après chaque changement
calculEpices(i); }
}
}; const recalculerToutesLignes = () => {
for (let i = 1; i <= bassines.length; i++) {
function calculerTotaux() { calculEpices(i);
let totalNet = 0, }
totalSel = 0, };
totalPoivre = 0,
totalPoivreConcasse = 0, function calculerTotaux() {
totalMuscade = 0, let totalNet = 0,
totalAil = 0; totalSel = 0,
totalPoivre = 0,
for (let i = 1; i <= bassines.length; i++) { totalPoivreConcasse = 0,
totalNet += getElementText("Net" + i); totalMuscade = 0,
totalSel += getElementText("Sel (Kg)" + i); totalAil = 0;
totalPoivre += getElementText("Poivre (g)" + i);
totalPoivreConcasse += getElementText("Poivre concassé (g)" + i); for (let i = 1; i <= bassines.length; i++) {
totalMuscade += getElementText("Muscade (g)" + i); totalNet += getElementText("Net" + i);
totalAil += getElementText("Ail (g)" + i); totalSel += getElementText("Sel (Kg)" + i);
} totalPoivre += getElementText("Poivre (g)" + i);
totalPoivreConcasse += getElementText(
document.getElementById("Total_Net").innerHTML = totalNet.toFixed(3); "Poivre concassé (g)" + i,
document.getElementById("Total_Sel").innerHTML = totalSel.toFixed(3); );
document.getElementById("Total_Poivre").innerHTML = totalMuscade += getElementText("Muscade (g)" + i);
totalPoivre.toFixed(3); totalAil += getElementText("Ail (g)" + i);
document.getElementById("Total_Poivre_Concasse").innerHTML = }
totalPoivreConcasse.toFixed(3);
document.getElementById("Total_Muscade").innerHTML = document.getElementById("Total_Net").innerHTML =
totalMuscade.toFixed(3); totalNet.toFixed(3);
document.getElementById("Total_Ail").innerHTML = totalAil.toFixed(3); document.getElementById("Total_Sel").innerHTML =
totalSel.toFixed(3);
// Calcul du total assaisonné et rendement document.getElementById("Total_Poivre").innerHTML =
calculerTotalAssaisonne(); totalPoivre.toFixed(3);
} document.getElementById("Total_Poivre_Concasse").innerHTML =
totalPoivreConcasse.toFixed(3);
function calculerTotalAssaisonne() { document.getElementById("Total_Muscade").innerHTML =
const totalNet = getElementText("Total_Net"); totalMuscade.toFixed(3);
const totalSel = getElementText("Total_Sel"); document.getElementById("Total_Ail").innerHTML =
const totalPoivre = getElementText("Total_Poivre"); totalAil.toFixed(3);
const totalPoivreConcasse = getElementText("Total_Poivre_Concasse");
const totalMuscade = getElementText("Total_Muscade"); // Calcul du total assaisonné et rendement
const totalAil = getElementText("Total_Ail"); calculerTotalAssaisonne();
}
const totalAssaisonne =
totalNet + totalSel + totalPoivre / 1000 + totalPoivreConcasse / 1000 + totalMuscade / 1000 + totalAil / 1000; function calculerTotalAssaisonne() {
document.getElementById("Total_Assaisonne").innerHTML = const totalNet = getElementText("Total_Net");
totalAssaisonne.toFixed(3); const totalSel = getElementText("Total_Sel");
const totalPoivre = getElementText("Total_Poivre");
const totalAchete = getElementValue("Total_Achete"); const totalPoivreConcasse = getElementText(
if (totalAchete > 0) { "Total_Poivre_Concasse",
const totalNet = document.getElementById("Total_Net").innerHTML; );
const rendement = (totalNet / totalAchete) * 100; const totalMuscade = getElementText("Total_Muscade");
document.getElementById("Rendement").innerHTML = const totalAil = getElementText("Total_Ail");
rendement.toFixed(3) + " %";
} else { const totalAssaisonne =
document.getElementById("Rendement").innerHTML = "0 %"; totalNet +
} totalSel +
} totalPoivre / 1000 +
totalPoivreConcasse / 1000 +
const body = document.body; totalMuscade / 1000 +
const formulaire = document.createElement("form"); totalAil / 1000;
formulaire.setAttribute("class", "form-grid"); document.getElementById("Total_Assaisonne").innerHTML =
totalAssaisonne.toFixed(3);
/*test*/
// ---- Début Intégration LocalStorage ---- const totalAchete = getElementValue("Total_Achete");
const STORAGE_KEY = 'calculateurEpices'; if (totalAchete > 0) {
const MAX_AGE = 48 * 60 * 60 * 1000; // 72h const totalNet =
document.getElementById("Total_Net").innerHTML;
function sauvegarderFormulaire() { const rendement = (totalNet / totalAchete) * 100;
const data = { timestamp: Date.now(), values: {} }; document.getElementById("Rendement").innerHTML =
document.querySelectorAll('input').forEach(input => { rendement.toFixed(3) + " %";
data.values[input.id] = input.type === 'checkbox' ? input.checked : input.value; } else {
}); document.getElementById("Rendement").innerHTML = "0 %";
localStorage.setItem(STORAGE_KEY, JSON.stringify(data)); }
} }
function restaurerFormulaire() { const body = document.body;
const saved = JSON.parse(localStorage.getItem(STORAGE_KEY)); const formulaire = document.createElement("form");
if (saved && Date.now() - saved.timestamp < MAX_AGE) { formulaire.setAttribute("class", "form-grid");
for (const [id, value] of Object.entries(saved.values)) {
const input = document.getElementById(id); // ---- Début Intégration LocalStorage ----
if (input) { const STORAGE_KEY = "calculateurEpices";
if (input.type === 'checkbox') input.checked = value; const MAX_AGE = 48 * 60 * 60 * 1000; // 72h
else input.value = value;
} function sauvegarderFormulaire() {
} const data = { timestamp: Date.now(), values: {} };
} else { document.querySelectorAll("input").forEach((input) => {
localStorage.removeItem(STORAGE_KEY); data.values[input.id] =
} input.type === "checkbox" ? input.checked : input.value;
} });
localStorage.setItem(STORAGE_KEY, JSON.stringify(data));
window.addEventListener('DOMContentLoaded', () => { }
restaurerFormulaire();
recalculerToutesLignes(); function restaurerFormulaire() {
}); const saved = JSON.parse(localStorage.getItem(STORAGE_KEY));
if (saved && Date.now() - saved.timestamp < MAX_AGE) {
document.body.addEventListener('input', sauvegarderFormulaire); for (const [id, value] of Object.entries(saved.values)) {
document.body.addEventListener('change', sauvegarderFormulaire); const input = document.getElementById(id);
// Table des proportions et du poids de la planche if (input) {
const proportionTable = document.createElement("table"); if (input.type === "checkbox")
proportionTable.setAttribute("id", "TableauProportions"); input.checked = value;
const proportionBody = document.createElement("tbody"); else input.value = value;
}
// Ajout du poids de la planche }
const poidsPlancheRow = document.createElement("tr"); } else {
const poidsPlancheLabelCell = document.createElement("td"); localStorage.removeItem(STORAGE_KEY);
const poidsPlancheInputCell = document.createElement("td"); }
}
const poidsPlancheLabel = document.createElement("label");
poidsPlancheLabel.setAttribute("for", "Poids_planche"); window.addEventListener("DOMContentLoaded", () => {
poidsPlancheLabel.innerHTML = "Poids de la planche (Kg)"; restaurerFormulaire();
recalculerToutesLignes();
const poidsPlancheInput = document.createElement("input"); });
poidsPlancheInput.setAttribute("id", "Poids_planche");
poidsPlancheInput.value = 4.4; document.body.addEventListener("input", sauvegarderFormulaire);
poidsPlancheInput.onchange = () => { document.body.addEventListener("change", sauvegarderFormulaire);
poids_planche = getElementValue("Poids_planche"); // Table des proportions et du poids de la planche
recalculerToutesLignes(); const proportionTable = document.createElement("table");
}; proportionTable.setAttribute("id", "TableauProportions");
const proportionBody = document.createElement("tbody");
poidsPlancheLabelCell.appendChild(poidsPlancheLabel);
poidsPlancheInputCell.appendChild(poidsPlancheInput); // Ajout du poids de la planche
poidsPlancheRow.appendChild(poidsPlancheLabelCell); const poidsPlancheRow = document.createElement("tr");
poidsPlancheRow.appendChild(poidsPlancheInputCell); const poidsPlancheLabelCell = document.createElement("td");
proportionBody.appendChild(poidsPlancheRow); const poidsPlancheInputCell = document.createElement("td");
// Ajout des proportions dans le tableau const poidsPlancheLabel = document.createElement("label");
const proportions = [ poidsPlancheLabel.setAttribute("for", "Poids_planche");
{ poidsPlancheLabel.innerHTML = "Poids de la planche (Kg)";
label: "Proportion de sel (Kg)",
id: "Prop_sel", const poidsPlancheInput = document.createElement("input");
defaultValue: 0.028, poidsPlancheInput.setAttribute("id", "Poids_planche");
}, poidsPlancheInput.value = 4.4;
{ poidsPlancheInput.onchange = () => {
label: "Proportion de poivre (g)", poids_planche = getElementValue("Poids_planche");
id: "Prop_poivre", recalculerToutesLignes();
defaultValue: 2, };
},
{ poidsPlancheLabelCell.appendChild(poidsPlancheLabel);
label: "Proportion de muscade (g)", poidsPlancheInputCell.appendChild(poidsPlancheInput);
id: "Prop_muscade", poidsPlancheRow.appendChild(poidsPlancheLabelCell);
defaultValue: 1, poidsPlancheRow.appendChild(poidsPlancheInputCell);
}, proportionBody.appendChild(poidsPlancheRow);
{
label: "Proportion d'ail (g)", // Ajout des proportions dans le tableau
id: "Prop_ail", const proportions = [
defaultValue: 2 {
}, label: "Proportion de sel (Kg)",
]; id: "Prop_sel",
defaultValue: 0.028,
proportions.forEach((prop) => { },
const row = document.createElement("tr"); {
label: "Proportion de poivre (g)",
const labelCell = document.createElement("td"); id: "Prop_poivre",
const inputCell = document.createElement("td"); defaultValue: 2,
},
const label = document.createElement("label"); {
label.setAttribute("for", prop.id); label: "Proportion de muscade (g)",
label.innerHTML = prop.label; id: "Prop_muscade",
defaultValue: 1,
const input = document.createElement("input"); },
input.setAttribute("id", prop.id); {
input.value = prop.defaultValue; label: "Proportion d'ail (g)",
input.onchange = recalculerToutesLignes; id: "Prop_ail",
defaultValue: 2,
labelCell.appendChild(label); },
inputCell.appendChild(input); ];
row.appendChild(labelCell); proportions.forEach((prop) => {
row.appendChild(inputCell); const row = document.createElement("tr");
proportionBody.appendChild(row); const labelCell = document.createElement("td");
}); const inputCell = document.createElement("td");
const boutonDiv = document.createElement("div"); const label = document.createElement("label");
boutonDiv.setAttribute("id", "button-wrapper") label.setAttribute("for", prop.id);
boutonDiv.style.display = "inline-block"; label.innerHTML = prop.label;
boutonDiv.style.verticalAlign = "top";
boutonDiv.style.marginLeft = "20px"; // espace entre le tableau et le bouton const input = document.createElement("input");
input.setAttribute("id", prop.id);
const boutonAction = document.createElement("button"); input.value = prop.defaultValue;
boutonAction.setAttribute("class", "no-print button-17"); input.onchange = recalculerToutesLignes;
boutonAction.textContent = "Imprimer la page";
boutonAction.type = "button"; labelCell.appendChild(label);
boutonAction.onclick = () => { inputCell.appendChild(input);
window.print()
alert("Page imprimée !"); row.appendChild(labelCell);
}; row.appendChild(inputCell);
boutonDiv.appendChild(boutonAction); proportionBody.appendChild(row);
});
// wrapper pour le tableau des proportions
const tabPropDiv = document.createElement("div"); const boutonDiv = document.createElement("div");
tabPropDiv.id = "tabProp"; boutonDiv.setAttribute("id", "button-wrapper");
boutonDiv.style.display = "inline-block";
proportionTable.appendChild(proportionBody); boutonDiv.style.verticalAlign = "top";
tabPropDiv.appendChild(proportionTable); boutonDiv.style.marginLeft = "20px"; // espace entre le tableau et le bouton
formulaire.appendChild(boutonDiv); const boutonAction = document.createElement("button");
formulaire.appendChild(tabPropDiv); boutonAction.setAttribute("class", "no-print button-17");
boutonAction.textContent = "Imprimer la page";
// Création du tableau des bassines avec les titres boutonAction.type = "button";
const tbl = document.createElement("table"); boutonAction.onclick = () => {
tbl.setAttribute("id", "TableauBassines"); window.print();
const tblBody = document.createElement("tbody"); alert("Page imprimée !");
};
// Ajout des titres
const headerRow = document.createElement("tr"); boutonDiv.appendChild(boutonAction);
headerRow.setAttribute("id", "Titres_tableau");
col.forEach((titre) => { // wrapper pour le tableau des proportions
const cell = document.createElement("td"); const tabPropDiv = document.createElement("div");
const cellText = document.createTextNode(titre); tabPropDiv.id = "tabProp";
cell.appendChild(cellText);
headerRow.appendChild(cell); proportionTable.appendChild(proportionBody);
}); tabPropDiv.appendChild(proportionTable);
tblBody.appendChild(headerRow);
formulaire.appendChild(boutonDiv);
// Ajout des lignes pour chaque bassine formulaire.appendChild(tabPropDiv);
bassines.forEach((bassine, index) => {
const row = document.createElement("tr"); // Création du tableau des bassines avec les titres
row.id = "Bassine_" + (index + 1); const tbl = document.createElement("table");
tbl.setAttribute("id", "TableauBassines");
col.forEach((colonne, colIndex) => { const tblBody = document.createElement("tbody");
const cell = document.createElement("td");
cell.setAttribute("class", "tdBassine"); // Ajout des titres
if (colIndex === 0) { const headerRow = document.createElement("tr");
cell.textContent = bassine.Nom; headerRow.setAttribute("id", "Titres_tableau");
cell.setAttribute("class", "NomBassine"); col.forEach((titre) => {
} else if (colIndex === 1) { const cell = document.createElement("td");
const checkbox = document.createElement("input"); const cellText = document.createTextNode(titre);
checkbox.type = "checkbox"; cell.appendChild(cellText);
checkbox.id = "isCouenne" + (index + 1); headerRow.appendChild(cell);
checkbox.onchange = () => calculEpices(index + 1); });
cell.appendChild(checkbox); tblBody.appendChild(headerRow);
} else if (colIndex === 2) {
const input = document.createElement("input"); // Ajout des lignes pour chaque bassine
input.id = "Poids_bassine_" + (index + 1); bassines.forEach((bassine, index) => {
input.onchange = () => calculEpices(index + 1); const row = document.createElement("tr");
cell.appendChild(input); row.id = "Bassine_" + (index + 1);
} else if (colIndex === 3) {
cell.id = "tare_" + (index + 1); col.forEach((colonne, colIndex) => {
cell.textContent = bassine.tare.toFixed(3); const cell = document.createElement("td");
} else { cell.setAttribute("class", "tdBassine");
cell.id = colonne + (index + 1); if (colIndex === 0) {
} cell.textContent = bassine.Nom;
row.appendChild(cell); cell.setAttribute("class", "NomBassine");
}); } else if (colIndex === 1) {
const checkbox = document.createElement("input");
tblBody.appendChild(row); checkbox.type = "checkbox";
}); checkbox.id = "isCouenne" + (index + 1);
checkbox.onchange = () => calculEpices(index + 1);
tbl.appendChild(tblBody); cell.appendChild(checkbox);
} else if (colIndex === 2) {
// wrapper pour le tableau des bassines const input = document.createElement("input");
const tabBassDiv = document.createElement("div"); input.id = "Poids_bassine_" + (index + 1);
tabBassDiv.id = "tabBass"; input.onchange = () => calculEpices(index + 1);
tabBassDiv.appendChild(document.createElement("br")); cell.appendChild(input);
tabBassDiv.appendChild(tbl); } else if (colIndex === 3) {
formulaire.appendChild(tabBassDiv); cell.id = "tare_" + (index + 1);
cell.textContent = bassine.tare.toFixed(3);
// } else {
// Tableau des totaux cell.id = colonne + (index + 1);
const totalTable = document.createElement("table"); }
totalTable.setAttribute("id", "TableauTotaux"); row.appendChild(cell);
const totalBody = document.createElement("tbody"); });
// Première ligne : titres tblBody.appendChild(row);
const totalHeaderRow = document.createElement("tr"); });
[
"Total Viande Net", tbl.appendChild(tblBody);
"Total Sel (Kg)",
"Total Poivre (g)", // wrapper pour le tableau des bassines
"Total Poivre Concassé (g)", const tabBassDiv = document.createElement("div");
"Total Muscade (g)", tabBassDiv.id = "tabBass";
"Total Ail (g)", tabBassDiv.appendChild(document.createElement("br"));
].forEach((titre) => { tabBassDiv.appendChild(tbl);
const cell = document.createElement("td"); formulaire.appendChild(tabBassDiv);
cell.setAttribute("class", "cellule_totaux");
const cellText = document.createTextNode(titre); //
cell.appendChild(cellText); // Tableau des totaux
totalHeaderRow.appendChild(cell); const totalTable = document.createElement("table");
}); totalTable.setAttribute("id", "TableauTotaux");
totalBody.appendChild(totalHeaderRow); const totalBody = document.createElement("tbody");
// Deuxième ligne : totaux // Première ligne : titres
const totalRow = document.createElement("tr"); const totalHeaderRow = document.createElement("tr");
const totalIds = [ [
"Total_Net", "Total Viande Net",
"Total_Sel", "Total Sel (Kg)",
"Total_Poivre", "Total Poivre (g)",
"Total_Poivre_Concasse", "Total Poivre Concassé (g)",
"Total_Muscade", "Total Muscade (g)",
"Total_Ail", "Total Ail (g)",
]; ].forEach((titre) => {
totalIds.forEach((id) => { const cell = document.createElement("td");
const cell = document.createElement("td"); cell.setAttribute("class", "cellule_totaux");
cell.setAttribute("class", "cellule_totaux"); const cellText = document.createTextNode(titre);
cell.id = id; cell.appendChild(cellText);
cell.innerHTML = "0.000"; // Valeurs initiales à 0 totalHeaderRow.appendChild(cell);
totalRow.appendChild(cell); });
}); totalBody.appendChild(totalHeaderRow);
totalBody.appendChild(totalRow);
// Deuxième ligne : totaux
totalTable.appendChild(totalBody); const totalRow = document.createElement("tr");
const totalIds = [
// wrapper pour le tableau des totaux "Total_Net",
const tabTotDiv = document.createElement("div"); "Total_Sel",
tabTotDiv.id = "tabTot"; "Total_Poivre",
tabTotDiv.appendChild(document.createElement("br")); "Total_Poivre_Concasse",
tabTotDiv.appendChild(totalTable); "Total_Muscade",
formulaire.appendChild(tabTotDiv); "Total_Ail",
// ];
// Tableau supplémentaire à droite totalIds.forEach((id) => {
const rendementTable = document.createElement("table"); const cell = document.createElement("td");
rendementTable.setAttribute("id", "TableauRendement"); cell.setAttribute("class", "cellule_totaux");
const rendementBody = document.createElement("tbody"); cell.id = id;
cell.innerHTML = "0.000"; // Valeurs initiales à 0
// Première ligne : titres totalRow.appendChild(cell);
const rendementHeaderRow = document.createElement("tr"); });
["Total acheté", "Total assaisonné", "Rendement"].forEach(titre => { totalBody.appendChild(totalRow);
const cell = document.createElement("td");
cell.setAttribute("class", "tdRendement"); totalTable.appendChild(totalBody);
const cellText = document.createTextNode(titre);
cell.appendChild(cellText); // wrapper pour le tableau des totaux
rendementHeaderRow.appendChild(cell); const tabTotDiv = document.createElement("div");
}); tabTotDiv.id = "tabTot";
rendementBody.appendChild(rendementHeaderRow); tabTotDiv.appendChild(document.createElement("br"));
tabTotDiv.appendChild(totalTable);
// Deuxième ligne : contenu formulaire.appendChild(tabTotDiv);
const rendementRow = document.createElement("tr"); //
// Tableau supplémentaire à droite
// Total acheté (input) const rendementTable = document.createElement("table");
const totalAcheteCell = document.createElement("td"); rendementTable.setAttribute("id", "TableauRendement");
totalAcheteCell.setAttribute("class", "tdRendement"); const rendementBody = document.createElement("tbody");
const totalAcheteInput = document.createElement("input");
totalAcheteInput.setAttribute("id", "Total_Achete"); // Première ligne : titres
totalAcheteInput.setAttribute("type", "number"); const rendementHeaderRow = document.createElement("tr");
totalAcheteInput.onchange = calculerTotalAssaisonne; ["Total acheté", "Total assaisonné", "Rendement"].forEach(
totalAcheteCell.appendChild(totalAcheteInput); (titre) => {
rendementRow.appendChild(totalAcheteCell); const cell = document.createElement("td");
cell.setAttribute("class", "tdRendement");
// Total assaisonné const cellText = document.createTextNode(titre);
const totalAssaisonneCell = document.createElement("td"); cell.appendChild(cellText);
totalAssaisonneCell.setAttribute("class", "tdRendement"); rendementHeaderRow.appendChild(cell);
totalAssaisonneCell.setAttribute("id", "Total_Assaisonne"); },
totalAssaisonneCell.innerHTML = "0.000"; // Initialement 0 );
rendementRow.appendChild(totalAssaisonneCell); rendementBody.appendChild(rendementHeaderRow);
// Rendement // Deuxième ligne : contenu
const rendementCell = document.createElement("td"); const rendementRow = document.createElement("tr");
rendementCell.setAttribute("class", "tdRendement");
rendementCell.setAttribute("id", "Rendement"); // Total acheté (input)
rendementCell.innerHTML = "0 %"; // Initialement 0 const totalAcheteCell = document.createElement("td");
rendementRow.appendChild(rendementCell); totalAcheteCell.setAttribute("class", "tdRendement");
const totalAcheteInput = document.createElement("input");
rendementBody.appendChild(rendementRow); totalAcheteInput.setAttribute("id", "Total_Achete");
rendementTable.appendChild(rendementBody); totalAcheteInput.setAttribute("type", "number");
totalAcheteInput.onchange = calculerTotalAssaisonne;
// wrapper pour le tableau rendement totalAcheteCell.appendChild(totalAcheteInput);
const tabRendDiv = document.createElement("div"); rendementRow.appendChild(totalAcheteCell);
tabRendDiv.id = "tabRend";
tabRendDiv.appendChild(document.createElement("br")); // Total assaisonné
tabRendDiv.appendChild(rendementTable); const totalAssaisonneCell = document.createElement("td");
totalAssaisonneCell.setAttribute("class", "tdRendement");
// Ajout du tableau rendement au formulaire totalAssaisonneCell.setAttribute("id", "Total_Assaisonne");
formulaire.appendChild(tabRendDiv); totalAssaisonneCell.innerHTML = "0.000"; // Initialement 0
body.appendChild(formulaire); rendementRow.appendChild(totalAssaisonneCell);
</script>
</body> // Rendement
const rendementCell = document.createElement("td");
</html> rendementCell.setAttribute("class", "tdRendement");
rendementCell.setAttribute("id", "Rendement");
rendementCell.innerHTML = "0 %"; // Initialement 0
rendementRow.appendChild(rendementCell);
rendementBody.appendChild(rendementRow);
rendementTable.appendChild(rendementBody);
// wrapper pour le tableau rendement
const tabRendDiv = document.createElement("div");
tabRendDiv.id = "tabRend";
tabRendDiv.appendChild(document.createElement("br"));
tabRendDiv.appendChild(rendementTable);
// Ajout du tableau rendement au formulaire
formulaire.appendChild(tabRendDiv);
body.appendChild(formulaire);
</script>
</body>
</html>