diff -r 9e43b216ccd3 -r d25a1b160dba www/js/prod_edit.js
--- a/www/js/prod_edit.js Sat Sep 14 10:41:35 2019 +0200
+++ b/www/js/prod_edit.js Fri Oct 18 13:12:46 2019 +0200
@@ -305,6 +305,9 @@
{ name: 'prop3_volume', type: 'float' },
{ name: 'prop4_type', type: 'int' },
{ name: 'prop4_volume', type: 'float' },
+ { name: 'divide_type', type: 'int' },
+ { name: 'divide_size', type: 'float' },
+ { name: 'divide_parts', type: 'int' },
{ name: 'fermentables', type: 'array' },
{ name: 'hops', type: 'array' },
{ name: 'miscs', type: 'array' },
@@ -530,6 +533,9 @@
$('#prop3_volume').val(dataRecord.prop3_volume);
$('#prop4_type').val(dataRecord.prop4_type);
$('#prop4_volume').val(dataRecord.prop4_volume);
+ $('#divide_type').val(SplitData[dataRecord.divide_type].nl);
+ // hidden divide_size
+ $('#divide_parts').val(dataRecord.divide_parts);
editFermentable(dataRecord);
editHop(dataRecord);
editMisc(dataRecord);
@@ -1397,7 +1403,7 @@
var amount = dataAdapter.formatNumber(value * 1000, 'f0') + ' ml';
if (rowdata.y_form == 0) // Liquid
amount = dataAdapter.formatNumber(value, 'f0') + ' pk';
- else if (rowdata.y_form == 1) // Dry
+ else if (rowdata.y_form == 1 || rowdata.y_form == 6) // Dry
amount = dataAdapter.formatNumber(value * 1000, 'f1') + ' gr';
return '' + amount + '';
}
@@ -1415,7 +1421,7 @@
amount = dataAdapter.formatNumber(value * 1000, 'f0') + ' ml';
if (rowdata.y_form == 0) // Liquid
amount = dataAdapter.formatNumber(value, 'f0') + ' pk';
- else if (rowdata.y_form == 1) // Dry
+ else if (rowdata.y_form == 1 || rowdata.y_form == 6) // Dry
amount = dataAdapter.formatNumber(value * 1000, 'f1') + ' gr';
return '' + amount + '';
} else {
@@ -1436,7 +1442,7 @@
$('#wy_pmpt_amount').html('Pak(ken):');
$('#wy_amount').val(yeastData.y_amount);
$('#wy_amount').jqxNumberInput({ decimalDigits: 0 });
- } else if (yeastData.y_form == 1) {
+ } else if (yeastData.y_form == 1 || yeastData.y_form == 6) {
$('#wy_pmpt_amount').html('Gewicht gram:');
$('#wy_amount').val(yeastData.y_amount * 1000);
$('#wy_amount').jqxNumberInput({ decimalDigits: 1 });
@@ -2089,7 +2095,7 @@
ncells = Round(egrams * grate, 1),
totcells = parseFloat(ncells) + start;
- console.log('svol:' + svol + ' start:' + start + ' irate:' + irate + ' egrams:' + egrams + ' grate:' + grate + ' ncells:' + ncells);
+ //console.log('svol:' + svol + ' start:' + start + ' irate:' + irate + ' egrams:' + egrams + ' grate:' + grate + ' ncells:' + ncells);
return {
svol: svol,
irate: irate,
@@ -2348,13 +2354,15 @@
// pitchrate = 1.25; // Wyeast labs. http://www.wyeastlab.com/hb_pitchrates.cfm
if (row.y_type == 0) // lager yeast
pitchrate *= 2;
+ if (row.y_type == 6) // Kveik
+ pitchrate = 0.25; // Who knows.
// if (row.y_form == 1) { // dry yeast
// } else { // possible starter needed
// }
}
}
- needed = pitchrate * volume * plato;
+ needed = Round(pitchrate * volume * plato, 1);
console.log('calcYeast() pitchrate:' + pitchrate + ' start:' + initcells + ' needed:' + needed + ' volume:' + volume);
$('#need_cells').val(needed);
use_cells = initcells;
@@ -2466,7 +2474,7 @@
return;
for (i = 0; i < rowscount; i++) {
row = $('#yeastGrid').jqxGrid('getrowdata', i);
- if (row.y_form == 1) { // Only adjust dry yeast
+ if (! dataRecord.starter_enable) { // Only adjust without a starter
amount = row.y_amount * factor;
$('#yeastGrid').jqxGrid('setcellvalue', i, 'y_amount', amount);
}
@@ -2714,7 +2722,8 @@
pH += deltapH;
pd = ProtonDeficit(pH);
}
- console.log('MashpH() n: ' + n + ' pH: ' + pH);
+ pH = Round(pH, 2);
+ //console.log('MashpH() n: ' + n + ' pH: ' + pH);
return pH;
}
@@ -2733,7 +2742,7 @@
function calcWater() {
- console.log('calcWater()');
+ //console.log('calcWater()');
var liters = 0,
calcium = 0,
magnesium = 0,
@@ -2852,7 +2861,7 @@
if (dataRecord.calc_acid) {
TpH = parseFloat(dataRecord.mash_ph);
protonDeficit = ProtonDeficit(TpH);
- console.log('calc_acid tgt: ' + TpH + ' protonDeficit: ' + protonDeficit);
+ //console.log('calc_acid tgt: ' + TpH + ' protonDeficit: ' + protonDeficit);
if (protonDeficit > 0) { // Add acid
$('#wa_base').val(0);
setWaterAgent(last_base, 0);
@@ -2864,10 +2873,10 @@
if (parseFloat($('#wa_acid_perc').jqxNumberInput('decimal')) == 0)
$('#wa_acid_perc').val(AcidPrc);
- Acid = Acid * AcidPrc / (parseFloat($('#wa_acid_perc').jqxNumberInput('decimal')) / 100); // ml
- console.log('Final ml: ' + Acid);
- $('#wa_acid').val(Round(Acid, 2));
- setWaterAgent(AcidTypeData[AT].nl, Round(Acid, 2));
+ Acid = Round(Acid * AcidPrc / (parseFloat($('#wa_acid_perc').jqxNumberInput('decimal')) / 100), 2); // ml
+ //console.log('Final ml: ' + Acid);
+ $('#wa_acid').val(Acid);
+ setWaterAgent(AcidTypeData[AT].nl, Acid);
bicarbonate = bicarbonate - protonDeficit * frac / liters;
total_alkalinity = bicarbonate * 50 / 61;
@@ -4368,6 +4377,9 @@
prop3_volume: parseFloat($('#prop3_volume').jqxNumberInput('decimal')),
prop4_type: $('#prop4_type').val(),
prop4_volume: parseFloat($('#prop4_volume').jqxNumberInput('decimal')),
+ divide_type: dataRecord.divide_type,
+ divide_size: dataRecord.divide_size,
+ divide_parts: dataRecord.divide_parts,
fermentables: $('#fermentableGrid').jqxGrid('getrows'),
hops: $('#hopGrid').jqxGrid('getrows'),
miscs: $('#miscGrid').jqxGrid('getrows'),
@@ -4388,7 +4400,8 @@
window.location.href = my_return;
else
window.location.href =
- 'prod_export.php?record=' + my_record + '&return=' + my_return + '&select=' + my_select + '&code=' + dataRecord.code + '&name=' + dataRecord.name;
+ 'prod_export.php?record=' + my_record + '&return=' + my_return + '&select=' + my_select + '&code=' + dataRecord.code + '&name=' + dataRecord.name +
+ '&stage=' + dataRecord.stage + '&split=' + dataRecord.divide_type;
},
error: function(jqXHR, textStatus, errorThrown) {
console.log('saveRecord() ' + textStatus);
@@ -4423,6 +4436,11 @@
calcStage();
}
});
+ $('#divide_parts').jqxTooltip({ content: 'Het aantal gesplitste brouw producten.' });
+ $('#divide_parts').jqxNumberInput(Show0dec);
+ $('#divide_type').jqxTooltip({ content: 'Het splitsing moment in het productie proces.' });
+ $('#divide_type').jqxInput({ theme: theme, width: 120, height: 23 });
+
$('#notes').jqxTooltip({ content: 'De uitgebreide opmerkingen over dit product.' });
$('#notes').jqxInput({ theme: theme, width: 960, height: 100 });
$('#type').jqxTooltip({ content: 'Het brouw type van dit recept.' });
@@ -5156,8 +5174,11 @@
$('#est_fg2').jqxNumberInput(Show3dec);
$('#est_abv2').jqxTooltip({ content: 'Alcohol volume %. Dit wordt automatisch berekend.' });
$('#est_abv2').jqxNumberInput(Smal1dec);
+ $('#yeast_cells').jqxTooltip({ content: 'Het aantal beschikbare gistcellen zonder eventuele starter.' });
$('#yeast_cells').jqxNumberInput(Show1dec);
+ $('#need_cells').jqxTooltip({ content: 'Het aantal nodige cellen is afhankelijk van het biertype.' });
$('#need_cells').jqxNumberInput(Show1dec);
+ $('#plato_cells').jqxTooltip({ content: 'De berekende hoeveelheid gistcellen in miljard per ml per graad Plato. Dit is de zogenaamde pitchrate.' });
$('#plato_cells').jqxNumberInput(Show2dec);
$('#popupYeast').jqxWindow({
width: 800,
@@ -5239,7 +5260,7 @@
yeastData.y_inventory = datarecord.inventory;
if (yeastData.y_form == 0) {
$('#wy_pmpt_amount').html('Pak(ken):');
- } else if (yeastData.y_form == 1) {
+ } else if (yeastData.y_form == 1 || yeastData.y_form == 6) {
$('#wy_pmpt_amount').html('Gewicht gram:');
} else {
$('#wy_pmpt_amount').html('Volume ml:');
@@ -5286,14 +5307,19 @@
autoDropDownHeight: true
});
$('#prop' + i + '_type').hide();
+ $('#prop' + i + '_volume').jqxTooltip({ content: 'Het volume van deze starter stap.' });
$('#prop' + i + '_volume').jqxNumberInput(Spin3dec);
$('#prop' + i + '_volume').hide();
+ $('#prop' + i + '_irate').jqxTooltip({ content: 'Voor de beste gistgroei, houd de injectie factor tussen de 25 en 100 miljoen cellen per ml.' });
$('#prop' + i + '_irate').jqxNumberInput(Show1dec);
$('#prop' + i + '_irate').hide();
+ $('#prop' + i + '_ncells').jqxTooltip({ content: 'Het aantal miljard nieuwe gistcellen in deze stap.' });
$('#prop' + i + '_ncells').jqxNumberInput(Show1dec);
$('#prop' + i + '_ncells').hide();
+ $('#prop' + i + '_tcells').jqxTooltip({ content: 'Het totaal aantal miljard gistcellen na deze stap.' });
$('#prop' + i + '_tcells').jqxNumberInput(Show1dec);
$('#prop' + i + '_tcells').hide();
+ $('#prop' + i + '_growf').jqxTooltip({ content: 'De groeifactor, minstens 1. Ongeroerde starters komen meestal niet boven de 3.' });
$('#prop' + i + '_growf').jqxNumberInput(Show2dec);
$('#prop' + i + '_growf').hide();
}
@@ -5307,7 +5333,9 @@
height: 23,
autoDropDownHeight: true
});
+ $('#starter_sg').jqxTooltip({ content: 'Het ideale starter SG moet tussen de 1.030 en 1.040 zijn. Optimaal is 1.037.' });
$('#starter_sg').jqxNumberInput(SGopts);
+ $('#starter_viability').jqxTooltip({ content: 'De gist conditie te berekenen vanaf de productie datum. Vloeibare gist verlist iedere maand ongeveer 20% active cellen.' });
$('#starter_viability').jqxNumberInput(Perc0);
$('#starter_try').jqxButton({ template: 'primary', width: '100px', height: 23, theme: theme });