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