diff -r fef03c7ae353 -r f765249d57d7 www/js/prod_edit.js --- a/www/js/prod_edit.js Thu Feb 21 16:36:02 2019 +0100 +++ b/www/js/prod_edit.js Sat Feb 23 19:55:42 2019 +0100 @@ -1628,6 +1628,8 @@ function calcFermentation() { if (dataRecord.brew_fermenter_sg < 1.020) return; + var obrix = sg_to_brix(dataRecord.brew_fermenter_sg); + console.log("calcFermentation() og:"+dataRecord.brew_fermenter_sg+" brix:"+obrix); if ((dataRecord.primary_end_sg > 0.990) && (dataRecord.primary_end_sg < dataRecord.brew_fermenter_sg)) { var primary_svg = 100 * (dataRecord.brew_fermenter_sg - dataRecord.primary_end_sg) / (dataRecord.brew_fermenter_sg - 1); //console.log("primary svg: "+primary_svg); @@ -1807,6 +1809,33 @@ $("#sparge_acid_type").jqxDropDownList({ disabled: true }); $("#sparge_acid_perc").jqxNumberInput({ spinButtons: false, readOnly: true, width: false }); } + if (dataRecord.stage > 3) { // Primary fermentation done + $("#brew_date_start").jqxDateTimeInput({ disabled: true }); + $("#brew_date_end").jqxDateTimeInput({ disabled: true }); + $("#brew_mash_ph").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_preboil_ph").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_aboil_ph").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_mash_sg").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_preboil_sg").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_aboil_sg").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_preboil_volume").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_aboil_volume").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_sparge_temperature").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_whirlpool9").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_cooling_to").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_sparge_volume").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_whirlpool7").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_cooling_method").jqxDropDownList({ disabled: true }); + $("#brew_whirlpool6").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_cooling_time").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_sparge_ph").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_whirlpool2").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_aeration_type").jqxDropDownList({ disabled: true }); + $("#brew_fermenter_tcloss").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_aeration_time").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_fermenter_extrawater").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $("#brew_aeration_speed").jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + } if (dataRecord.stage < 5) { // At least secondary $('#jqxTabs').jqxTabs('disableAt', 10); // Packaging tab } else { @@ -2168,7 +2197,45 @@ dataRecord.primary_end_sg = parseFloat(event.args.value); calcFermentation(); }); - + $("#primary_end_brix").on('change', function (event) { + // Brix reading from refractometer RI + if (dataRecord.brew_fermenter_sg >= 1.020) { + OBrix = sg_to_brix(dataRecord.brew_fermenter_sg); + FBrix = parseFloat(event.args.value) / my_brix_correction; + // http://seanterrill.com/2011/04/07/refractometer-fg-results/ + var FG = 1.0000 - 0.0044993 * OBrix + 0.0117741 * FBrix + + 0.000275806 * (OBrix * OBrix) - 0.00127169 * (FBrix * FBrix) - + 0.00000727999 * Math.pow(OBrix, 3) + 0.0000632929 * Math.pow(FBrix, 3); + // var FG = 1.0000 - 0.00085683 * OBrix + 0.0034941 * FBrix; + // Brouwhulp + // var FG = ((1.001843 - 0.002318474 * OBrix - 0.000007775 * (OBrix * OBrix) + // - 0.000000034 * Math.pow(OBrix, 3) + 0.00574 * (FBrix) + // + 0.00003344 * (FBrix * FBrix) + 0.000000086 * Math.pow(FBrix, 3)) + // + (1.313454) * 0.001); + console.log("OBrix:"+OBrix+" FBrix:"+FBrix+" FG:"+FG); + if (FG > 1.00001) { + $("#primary_end_sg").val(FG); + dataRecord.primary_end_sg = FG; + } + calcFermentation(); + } + }); + $("#final_brix").on('change', function (event) { + // Brix reading from refractometer RI + if (dataRecord.brew_fermenter_sg >= 1.020) { + OBrix = sg_to_brix(dataRecord.brew_fermenter_sg); + FBrix = parseFloat(event.args.value) / my_brix_correction; + var FG = 1.0000 - 0.0044993 * OBrix + 0.0117741 * FBrix + + 0.000275806 * (OBrix * OBrix) - 0.00127169 * (FBrix * FBrix) - + 0.00000727999 * Math.pow(OBrix, 3) + 0.0000632929 * Math.pow(FBrix, 3); + console.log("OBrix:"+OBrix+" FBrix:"+FBrix+" FG:"+FG); + if (FG > 1.00001) { + $("#fg").val(FG); + dataRecord.fg = FG; + } + calcFermentation(); + } + }); $("#BLog").jqxButton({ disabled: (dataRecord.log_brew) ? false:true }); $("#FLog").jqxButton({ disabled: (dataRecord.log_fermentation) ? false:true }); }; @@ -5105,11 +5172,19 @@ // Tab 10, Fermentation // Note, fermentation temps changes must do calcCarbonation() + $("#brew_fermenter_sg2").jqxTooltip({ content: 'Het behaalde SG in het gistvat, overgenomen van de brouwdag.' }); $("#brew_fermenter_sg2").jqxNumberInput( Show3dec ); + $("#primary_start_temp").jqxTooltip({ content: 'De begintemperatuur van de hoofdvergisting.' }); $("#primary_start_temp").jqxNumberInput( YeastT ); + $("#primary_max_temp").jqxTooltip({ content: 'De hoogst bereikte piek temperatuur tijdens de hoofgvergisting.' }); $("#primary_max_temp").jqxNumberInput( YeastT ); + $("#primary_end_temp").jqxTooltip({ content: 'De eind temperatuur van de hoofdvergisting.' }); $("#primary_end_temp").jqxNumberInput( YeastT ); + $("#primary_end_sg").jqxTooltip({ content: 'Het gemeten SG aan het eind van de hoofdvergisting.' }); $("#primary_end_sg").jqxNumberInput( SGopts ); + $("#primary_end_brix").jqxTooltip({ content: 'Hulpfinctie: de afgelezen °Brix RI waarde met een refractometer.' }); + $("#primary_end_brix").jqxNumberInput( Spin1dec ); + $("#primary_svg").jqxTooltip({ content: 'De schijnbare vergisting graad behaald na de hoofdgisting.' }); $("#primary_svg").jqxNumberInput( Show1dec ); $("#primary_end_date").jqxTooltip({ content: 'De eind datum van de hoofdvergisting en eventueel overhevelen.' }); $("#primary_end_date").jqxDateTimeInput( Dateopts ); @@ -5122,6 +5197,8 @@ $("#fg").jqxNumberInput( Spin3dec ); $("#est_fg3").jqxTooltip({ content: 'Het verwachte eind SG. Dit wordt automatisch berekend.' }); $("#est_fg3").jqxNumberInput( Show3dec ); + $("#final_brix").jqxTooltip({ content: 'Hulpfinctie: de afgelezen °Brix RI waarde met een refractometer.' }); + $("#final_brix").jqxNumberInput( Spin1dec ); $("#final_abv").jqxNumberInput( Show1dec ); $("#final_svg").jqxNumberInput( Show1dec ); $("#FLog").jqxButton({ template: "info", width: '150px', theme: theme });