www/js/prod_edit.js

changeset 246
8580a08cbaa7
parent 245
3649c3d31d15
child 252
b558f3dfcda3
equal deleted inserted replaced
245:3649c3d31d15 246:8580a08cbaa7
298 var s = 0; 298 var s = 0;
299 var gs = 0; // Grain absorbtion 299 var gs = 0; // Grain absorbtion
300 var rows = $('#mashGrid').jqxGrid('getrows'); 300 var rows = $('#mashGrid').jqxGrid('getrows');
301 for (var i = 0; i < rows.length; i++) { 301 for (var i = 0; i < rows.length; i++) {
302 var row = rows[i]; 302 var row = rows[i];
303 // console.log("step " + i + " " + row.step_name + " " + row.step_type);
304 if (row.step_type == 0) // Infusion 303 if (row.step_type == 0) // Infusion
305 mvol += parseFloat(row.step_infuse_amount); 304 mvol += parseFloat(row.step_infuse_amount);
306 } 305 }
307 if (mvol > 0) { 306 if (mvol > 0) {
308 // console.log("mash volume: " + mvol);
309 var rows = $('#fermentableGrid').jqxGrid('getrows'); 307 var rows = $('#fermentableGrid').jqxGrid('getrows');
310 for (var i = 0; i < rows.length; i++) { 308 for (var i = 0; i < rows.length; i++) {
311 var row = rows[i]; 309 var row = rows[i];
312 if (row.f_added == 0) { // Mash 310 if (row.f_added == 0) { // Mash
313 var d = row.f_amount * (row.f_yield / 100) * (1 - row.f_moisture / 100); 311 var d = row.f_amount * (row.f_yield / 100) * (1 - row.f_moisture / 100);
314 mvol += row.f_amount * row.f_moisture / 100; 312 mvol += row.f_amount * row.f_moisture / 100;
315 gs += my_grain_absorbtion * row.f_amount; 313 // TODO: where do I need this gs += my_grain_absorbtion * row.f_amount;
316 s += d; 314 s += d;
317 } 315 }
318 } 316 }
319 // console.log("mash volume: " + mvol + " gs: " + gs + " s: " + s);
320 var v = s / sugardensity + mvol; 317 var v = s / sugardensity + mvol;
321 s = 1000 * s / (v * 10); //deg. Plato 318 s = 1000 * s / (v * 10); //deg. Plato
322 est_mash_sg = plato_to_sg(s); 319 est_mash_sg = plato_to_sg(s);
323 } 320 }
324 console.log("calcSGendMash(): " + est_mash_sg); 321 console.log("calcSGendMash(): " + est_mash_sg);
333 if (c > 0.5) 330 if (c > 0.5)
334 $("#brew_mash_efficiency").val(100 * m / c); 331 $("#brew_mash_efficiency").val(100 * m / c);
335 else 332 else
336 $("#brew_mash_efficiency").val(0); 333 $("#brew_mash_efficiency").val(0);
337 }; 334 };
335
336 function calcEfficiencyBeforeBoil() {
337 var m = 0;
338 var rows = {};
339 if (!(rows = $('#fermentableGrid').jqxGrid('getrows'))) {
340 return; // grid not yet loaded.
341 }
342 for (var i = 0; i < rows.length; i++) {
343 var row = rows[i];
344 if (row.f_added == 0) { // Mash
345 m += row.f_amount * (row.f_yield / 100) * (1 - row.f_moisture / 100);
346 }
347 }
348 var tot = sg_to_plato(dataRecord.brew_preboil_sg) * (dataRecord.brew_preboil_volume / 1.04) * dataRecord.brew_preboil_sg * 10 / 1000;
349 if (m > 0)
350 var result = Math.round((tot / m * 100) * 10) / 10;
351 else
352 var result = 0;
353 if (result < 0)
354 result = 0;
355 //console.log("calcEfficiencyBeforeBoil(): "+result);
356 $("#brew_preboil_efficiency").val(result);
357 }
358
359 function calcEfficiencyAfterBoil() {
360 var m = 0; // Sugars added at mash
361 var b = 0; // Sugars added at boil
362 var rows = {};
363 if (!(rows = $('#fermentableGrid').jqxGrid('getrows'))) {
364 return; // grid not yet loaded.
365 }
366 for (var i = 0; i < rows.length; i++) {
367 var row = rows[i];
368 if (row.f_added == 0) { // Mash
369 m += row.f_amount * (row.f_yield / 100) * (1 - row.f_moisture / 100);
370 } else if (row.f_added == 1) { // Boil
371 b += row.f_amount * (row.f_yield / 100) * (1 - row.f_moisture / 100);
372 }
373 }
374 var tot = sg_to_plato(dataRecord.brew_aboil_sg) * (dataRecord.brew_aboil_volume / 1.04) * dataRecord.brew_aboil_sg * 10 / 1000;
375 tot -= b; // total sugars in wort minus added sugars.
376 if (m > 0)
377 var result = Math.round((tot / m * 100) * 10) / 10;
378 else
379 var result = 0;
380 if (result < 0)
381 result = 0;
382 //console.log("calcEfficiencyAfterBoil(): "+result);
383 dataRecord.brew_aboil_efficiency = result;
384 $("#brew_aboil_efficiency").val(result);
385
386 }
338 387
339 function GetBUGU() { 388 function GetBUGU() {
340 var gu = (dataRecord.est_og - 1) * 1000; 389 var gu = (dataRecord.est_og - 1) * 1000;
341 if (gu > 0) 390 if (gu > 0)
342 return dataRecord.est_ibu / gu; 391 return dataRecord.est_ibu / gu;
1187 function calcInit () { 1236 function calcInit () {
1188 console.log("calcInit()"); 1237 console.log("calcInit()");
1189 1238
1190 calcSGendMash(); 1239 calcSGendMash();
1191 calcMashEfficiency(); 1240 calcMashEfficiency();
1241 calcEfficiencyBeforeBoil();
1242 calcEfficiencyAfterBoil();
1192 1243
1193 $("#calc_acid").on('checked', function (event) { 1244 $("#calc_acid").on('checked', function (event) {
1194 dataRecord.calc_acid = true; 1245 dataRecord.calc_acid = true;
1195 calcWater(); 1246 calcWater();
1196 }); 1247 });
3897 $("#brew_mash_sg").on('valueChanged', function () { calcMashEfficiency(); }); 3948 $("#brew_mash_sg").on('valueChanged', function () { calcMashEfficiency(); });
3898 $("#est_mash_sg").jqxTooltip({ content: 'Het berekende verwachte SG na het maischen.' }); 3949 $("#est_mash_sg").jqxTooltip({ content: 'Het berekende verwachte SG na het maischen.' });
3899 $("#est_mash_sg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 3 }); 3950 $("#est_mash_sg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 3 });
3900 $("#brew_preboil_sg").jqxTooltip({ content: 'Het gemeten SG in de kookketel na het spoelen en voor het koken.' }); 3951 $("#brew_preboil_sg").jqxTooltip({ content: 'Het gemeten SG in de kookketel na het spoelen en voor het koken.' });
3901 $("#brew_preboil_sg").jqxNumberInput( SGopts ); 3952 $("#brew_preboil_sg").jqxNumberInput( SGopts );
3953 $("#brew_preboil_sg").on('valueChanged', function (event) { dataRecord.brew_preboil_sg = event.args.value; calcEfficiencyBeforeBoil() });
3902 $("#est_pre_sg").jqxTooltip({ content: 'Het berekende SG in de kookketel na het spoelen en voor het koken.' }); 3954 $("#est_pre_sg").jqxTooltip({ content: 'Het berekende SG in de kookketel na het spoelen en voor het koken.' });
3903 $("#est_pre_sg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 3 }); 3955 $("#est_pre_sg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 3 });
3904 $("#brew_aboil_sg").jqxTooltip({ content: 'Het gemeten SG in de kookketel na het koken.' }); 3956 $("#brew_aboil_sg").jqxTooltip({ content: 'Het gemeten SG in de kookketel na het koken.' });
3905 $("#brew_aboil_sg").jqxNumberInput( SGopts ); 3957 $("#brew_aboil_sg").jqxNumberInput( SGopts );
3958 $("#brew_aboil_sg").on('valueChanged', function (event) { dataRecord.brew_aboil_sg = event.args.value; calcEfficiencyAfterBoil() });
3906 $("#est_og3").jqxTooltip({ content: 'Het gewenste SG in de kookketel na het koken.' }); 3959 $("#est_og3").jqxTooltip({ content: 'Het gewenste SG in de kookketel na het koken.' });
3907 $("#est_og3").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 70, height: 23, decimalDigits: 3, readOnly: true }); 3960 $("#est_og3").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 70, height: 23, decimalDigits: 3, readOnly: true });
3908 $("#brew_mash_efficiency").jqxTooltip({ content: 'Het behaalde maisch rendement.' }); 3961 $("#brew_mash_efficiency").jqxTooltip({ content: 'Het behaalde maisch rendement.' });
3909 $("#brew_mash_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); 3962 $("#brew_mash_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 });
3910 $("#brew_preboil_volume").jqxTooltip({ content: 'Het volume van het wort voor het koken.' }); 3963 $("#brew_preboil_volume").jqxTooltip({ content: 'Het volume van het wort voor het koken.' });
3911 $("#brew_preboil_volume").jqxNumberInput( Spin1dec ); 3964 $("#brew_preboil_volume").jqxNumberInput( Spin1dec );
3965 $("#brew_preboil_volume").on('valueChanged', function (event) { dataRecord.brew_preboil_volume = event.args.value; calcEfficiencyBeforeBoil() });
3912 $("#est_pre_vol").jqxTooltip({ content: 'Het berekende volume van het wort voor het koken.' }); 3966 $("#est_pre_vol").jqxTooltip({ content: 'Het berekende volume van het wort voor het koken.' });
3913 $("#est_pre_vol").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); 3967 $("#est_pre_vol").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 });
3914 $("#brew_aboil_volume").jqxTooltip({ content: 'Het volume van het wort na het koken.' }); 3968 $("#brew_aboil_volume").jqxTooltip({ content: 'Het volume van het wort na het koken.' });
3915 $("#brew_aboil_volume").jqxNumberInput( Spin1dec ); 3969 $("#brew_aboil_volume").jqxNumberInput( Spin1dec );
3970 $("#brew_aboil_volume").on('valueChanged', function (event) { dataRecord.brew_aboil_volume = event.args.value; calcEfficiencyAfterBoil() });
3916 $("#est_a_vol").jqxTooltip({ content: 'Het gewenste volume na het koken.' }); 3971 $("#est_a_vol").jqxTooltip({ content: 'Het gewenste volume na het koken.' });
3917 $("#est_a_vol").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); 3972 $("#est_a_vol").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 });
3918 $("#brew_preboil_efficiency").jqxTooltip({ content: 'Het berekende rendement voor het koken.' }); 3973 $("#brew_preboil_efficiency").jqxTooltip({ content: 'Het berekende rendement voor het koken.' });
3919 $("#brew_preboil_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); 3974 $("#brew_preboil_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 });
3920 $("#brew_aboil_efficiency").jqxTooltip({ content: 'Het bereikte rendement na het koken.' }); 3975 $("#brew_aboil_efficiency").jqxTooltip({ content: 'Het bereikte rendement na het koken.' });

mercurial