j'ai retiré des commentaires pas utiles
This commit is contained in:
851
index.html
851
index.html
@@ -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>
|
||||||
Reference in New Issue
Block a user