diff -r ef3f0274a1ea -r 0ad967f2d6ee www/js/prod_edit.js
--- a/www/js/prod_edit.js Mon Jun 10 20:04:12 2019 +0200
+++ b/www/js/prod_edit.js Wed Jun 12 16:41:38 2019 +0200
@@ -122,6 +122,32 @@
$("#ok_supplies").html("");
}
+ function calcPercentages() {
+
+ console.log("calcPercentages()");
+ var rowscount = $("#fermentableGrid").jqxGrid('getdatainformation').rowscount;
+ if (rowscount > 1) {
+ var tw = 0;
+ for (i = 0; i < rowscount; i++) {
+ var rowdata = $("#fermentableGrid").jqxGrid('getrowdata', i);
+ if (rowdata.f_added < 4)
+ tw += Math.round(rowdata.f_amount * 1000) / 1000;
+ };
+ tw = Math.round(tw * 1000) / 1000;
+
+ for (i = 0; i < rowscount; i++) {
+ var rowdata = $("#fermentableGrid").jqxGrid('getrowdata', i);
+ if (rowdata.f_added < 4) {
+ var percentage = Math.round(rowdata.f_amount / tw * 1000) / 10.0;
+ $("#fermentableGrid").jqxGrid('setcellvalue', i, "f_percentage", percentage);
+ } else {
+ $("#fermentableGrid").jqxGrid('setcellvalue', i, "f_percentage", 0);
+ }
+ };
+ } else {
+ $("#fermentableGrid").jqxGrid('setcellvalue', 0, "f_percentage", 100);
+ }
+ }
/*
* All calculations that depend on changes in the fermentables,
@@ -172,9 +198,9 @@
var row = rows[i];
if (row.f_adjust_to_total_100)
my_100 = true;
- if (row.f_type == 1) // Sugar
+ if (row.f_type == 1 && row.f_added < 4) // Sugar
psugar += row.f_percentage;
- if (row.f_graintype == 2) // Crystal
+ if (row.f_graintype == 2 && row.f_added < 4) // Crystal
pcara += row.f_percentage;
var d = row.f_amount * (row.f_yield / 100) * (1 - row.f_moisture / 100);
if (row.f_added == 0) { // Mash
@@ -188,20 +214,23 @@
}
if (row.f_added == 0 || row.f_added == 1) // Mash or Boil
sugarsf += d;
- if (row.f_added == 2 || row.f_added == 3) {
+ if (row.f_added == 2 || row.f_added == 3) { // Fermentation or lagering
var x = (row.f_yield / 100) * (1 - row.f_moisture / 100);
addedS += row.f_amount * x;
addedmass += row.f_amount;
vol += (x * sugardensity + (1 - x) * 1) * row.f_amount;
}
- colort += row.f_amount * ebc_to_srm(row.f_color);
- colorh += row.f_amount * row.f_color * get_kt(row.f_color);
- colorn += (row.f_percentage / 100) * row.f_color; // For 8.6 Pt wort.
+ if (row.f_added < 4) {
+ colort += row.f_amount * ebc_to_srm(row.f_color);
+ colorh += row.f_amount * row.f_color * get_kt(row.f_color);
+ colorn += (row.f_percentage / 100) * row.f_color; // For 8.6 Pt wort.
+ }
// Check supplies.
if ((((dataRecord.inventory_reduced <= 2) && (row.f_added <= 1)) || // Mash or boil
((dataRecord.inventory_reduced <= 3) && (row.f_added == 2)) || // Primary
((dataRecord.inventory_reduced <= 5) && (row.f_added == 3)) || // Secondary or Tertiary
- ((dataRecord.inventory_reduced <= 6) && (row.f_added == 4))) && row.f_inventory < row.f_amount) {
+ ((dataRecord.inventory_reduced <= 6) && (row.f_added == 4)) || // Bottle
+ ((dataRecord.inventory_reduced <= 6) && (row.f_added == 5))) && row.f_inventory < row.f_amount) {
ok_fermentables = 0;
}
if (row.f_added == 0 && (row.f_type == 0 || row.f_type == 4) && row.f_color < 50) { // Mash and Grain/Adjunct and Color < 50
@@ -393,20 +422,24 @@
for (var i = 0; i < rowscount; i++) {
var row = $("#fermentableGrid").jqxGrid('getrowdata', i);
- var d = row.f_percentage / 100 * (row.f_yield / 100) * (1 - row.f_moisture / 100);
- if (row.f_added == 0) // Mash
- d = efficiency / 100 * d;
- tot += d;
+ if (row.f_added < 4) {
+ var d = row.f_percentage / 100 * (row.f_yield / 100) * (1 - row.f_moisture / 100);
+ if (row.f_added == 0) // Mash
+ d = efficiency / 100 * d;
+ tot += d;
+ }
}
var totmass = 0;
if (tot)
- totmass = sug / tot;
+ totmass = Math.round((sug / tot) * 1000) / 1000;
if (totmass) {
for (i = 0; i < rowscount; i++) {
var row = $("#fermentableGrid").jqxGrid('getrowdata', i);
- var amount = row.f_percentage / 100 * totmass;
- $("#fermentableGrid").jqxGrid('setcellvalue', i, "f_amount", amount);
+ if (row.f_added < 4) {
+ var amount = Math.round(row.f_percentage * 10 * totmass) / 1000;
+ $("#fermentableGrid").jqxGrid('setcellvalue', i, "f_amount", amount);
+ }
}
}
};
@@ -3190,15 +3223,15 @@
{ name: 'f_avail', type: 'int' }
],
addrow: function (rowid, rowdata, position, commit) {
- console.log("fermentable addrow "+rowid);
+ //console.log("fermentable addrow "+rowid);
commit(true);
},
deleterow: function (rowid, commit) {
- console.log("fermentable deleterow "+rowid);
+ //console.log("fermentable deleterow "+rowid);
commit(true);
},
updaterow: function (rowid, rowdata, commit) {
- console.log("fermentable updaterow "+rowid);
+ //console.log("fermentable updaterow "+rowid);
commit(true);
}
};
@@ -3308,16 +3341,7 @@
}
}
} else {
- var tw = 0;
- for (i = 0; i < rowscount; i++) {
- var rowdata = $("#fermentableGrid").jqxGrid('getrowdata', i);
- tw += rowdata.f_amount;
- };
- for (i = 0; i < rowscount; i++) {
- var rowdata = $("#fermentableGrid").jqxGrid('getrowdata', i);
- var percentage = Math.round(rowdata.f_amount / tw * 1000) / 10.0;
- $("#fermentableGrid").jqxGrid('setcellvalue', i, "f_percentage", percentage);
- };
+ calcPercentages();
}
} else {
$("#fermentableGrid").jqxGrid('setcellvalue', 0, "f_percentage", 100);
@@ -3356,7 +3380,8 @@
if (((dataRecord.inventory_reduced <= 2) && (rowdata.f_added <= 1)) || // Mash or boil
((dataRecord.inventory_reduced <= 3) && (rowdata.f_added == 2)) || // Primary
((dataRecord.inventory_reduced <= 5) && (rowdata.f_added == 3)) || // Secondary or Tertiary
- ((dataRecord.inventory_reduced <= 6) && (rowdata.f_added == 4))) { // Bottle
+ ((dataRecord.inventory_reduced <= 6) && (rowdata.f_added == 4)) || // Bottle
+ ((dataRecord.inventory_reduced <= 6) && (rowdata.f_added == 5))) { // Kegs
if (value < rowdata.f_amount)
color = '#ff4040';
return ' 3) {
alert("Ingredieënt is al verwerkt.");
+ } else if (fermentableData.f_added >= 4) {
+ alert("Wijzig dit in de Verpakken tab");
} else {
- fermentableRow = row;
- fermentableData = $("#fermentableGrid").jqxGrid('getrowdata', fermentableRow);
$("#wf_name").val(fermentableData.f_name);
$("#wf_amount").val(fermentableData.f_amount);
$("#wf_percentage").val(fermentableData.f_percentage);
@@ -4460,7 +4487,7 @@
f_avail: fermentableData.f_avail
};
$("#fermentableGrid").jqxGrid('updaterow', rowID, row);
- // Recalc percentages
+ calcPercentages();
calcFermentables();
calcIBUs();
calcMash();
@@ -4518,25 +4545,7 @@
$("#fermentableGrid").jqxGrid('setcellvalue', fermentableRow, 'f_amount', event.args.value);
fermentableData.f_amount = event.args.value;
if (! to_100) {
- // Recalculate percentages
- console.log("adjust percentages");
- var rowscount = $("#fermentableGrid").jqxGrid('getdatainformation').rowscount;
- if (rowscount > 1) {
- var tw = 0;
- for (i = 0; i < rowscount; i++) {
- var rowdata = $("#fermentableGrid").jqxGrid('getrowdata', i);
- tw += rowdata.f_amount;
- };
- for (i = 0; i < rowscount; i++) {
- var rowdata = $("#fermentableGrid").jqxGrid('getrowdata', i);
- var percentage = Math.round(rowdata.f_amount / tw * 1000) / 10.0;
- $("#fermentableGrid").jqxGrid('setcellvalue', i, "f_percentage", percentage);
- // if (i == fermentableRow) // Will crash the script.
- // $("#wf_percentage").val(percentage);
- };
- } else {
- $("#fermentableGrid").jqxGrid('setcellvalue', 0, "f_percentage", 100);
- }
+ calcPercentages();
calcFermentables();
calcIBUs();
calcMash();
@@ -4558,13 +4567,15 @@
var tw = 0; // total weight
for (i = 0; i < rowscount; i++) {
var rowdata = $("#fermentableGrid").jqxGrid('getrowdata', i);
- tw += rowdata.f_amount;
+ if (rowdata.f_added < 4)
+ tw += Math.round(rowdata.f_amount * 1000) / 1000;
}
+ tw = Math.round(tw * 1000) / 1000;
if (to_100) {
// Adjust this row and the 100% row.
- var damount = tw * diff / 100;
+ var damount = Math.round(tw * diff *10) / 1000;
var rowdata = $("#fermentableGrid").jqxGrid('getrowdata', fermentableRow);
- var namount = rowdata.f_amount + damount;
+ var namount = Math.round((rowdata.f_amount + damount) * 1000) / 1000;
$("#fermentableGrid").jqxGrid('setcellvalue', fermentableRow, 'f_amount', namount);
$("#wf_amount").val(namount);
$("#fermentableGrid").jqxGrid('setcellvalue', fermentableRow, 'f_percentage', rowdata.f_percentage + diff);
@@ -4584,16 +4595,20 @@
var nw = tw * diff / 100;
for (i = 0; i < rowscount; i++) {
var rowdata = $("#fermentableGrid").jqxGrid('getrowdata', i);
- if (i == fermentableRow) {
- var namount = rowdata.f_amount + nw;
- $("#fermentableGrid").jqxGrid('setcellvalue', i, 'f_amount', namount);
- // $("#wf_amount").val(namount); // Will crash the script.
- $("#fermentableGrid").jqxGrid('setcellvalue', i, 'f_percentage', newvalue);
+ if (rowdata.f_added < 4) {
+ if (i == fermentableRow) {
+ var namount = Math.round((rowdata.f_amount + nw) * 1000) / 1000;
+ $("#fermentableGrid").jqxGrid('setcellvalue', i, 'f_amount', namount);
+ // $("#wf_amount").val(namount); // Will crash the script.
+ $("#fermentableGrid").jqxGrid('setcellvalue', i, 'f_percentage', newvalue);
+ } else {
+ var namount = Math.round((rowdata.f_amount - (nw / (rowscount - 1))) * 1000) / 1000;
+ var newperc = Math.round((namount / tw) * 1000) / 10.0;
+ $("#fermentableGrid").jqxGrid('setcellvalue', i, 'f_amount', namount);
+ $("#fermentableGrid").jqxGrid('setcellvalue', i, 'f_percentage', newperc);
+ }
} else {
- var namount = rowdata.f_amount - (nw / (rowscount - 1));
- var newperc = Math.round((namount / tw) * 1000) / 10.0;
- $("#fermentableGrid").jqxGrid('setcellvalue', i, 'f_amount', namount);
- $("#fermentableGrid").jqxGrid('setcellvalue', i, 'f_percentage', newperc);
+ $("#fermentableGrid").jqxGrid('setcellvalue', i, 'f_percentage', 0);
}
}
calcFermentables();