www/js/rec_edit.js

changeset 263
ed22ac46404b
parent 262
36cf32fcd210
child 264
24139883b9fa
--- a/www/js/rec_edit.js	Sun Feb 10 22:08:01 2019 +0100
+++ b/www/js/rec_edit.js	Mon Feb 11 15:26:29 2019 +0100
@@ -334,6 +334,101 @@
 		$("#hop_aroma").jqxProgressBar('val', hop_aroma * 10);
 	};
 
+	function adjustHops(factor) {
+
+		console.log("adjustHops("+factor+")");
+
+		var rowscount = $("#hopGrid").jqxGrid('getdatainformation').rowscount;
+		if (rowscount == 0)
+			return;
+
+		for (var i = 0; i < rowscount; i++) {
+			var row = $("#hopGrid").jqxGrid('getrowdata', i);
+			var amount = row.h_amount * factor;
+			$("#hopGrid").jqxGrid('setcellvalue', i, "h_amount", amount);
+		}
+	};
+
+	function adjustMiscs(factor) {
+
+		console.log("adjustMiscs("+factor+")");
+
+		var rowscount = $("#miscGrid").jqxGrid('getdatainformation').rowscount;
+		if (rowscount == 0)
+			return;
+
+		for (var i = 0; i < rowscount; i++) {
+			var row = $("#miscGrid").jqxGrid('getrowdata', i);
+			var amount = row.m_amount * factor;
+			$("#miscGrid").jqxGrid('setcellvalue', i, "m_amount", amount);
+			switch (row.m_name) {
+				case 'CaCl2':           $("#wa_cacl2").val(row.m_amount * 1000);
+							break;
+				case 'CaSO4':           $("#wa_caso4").val(row.m_amount * 1000);
+							break;
+				case 'MgSO4':           $("#wa_mgso4").val(row.m_amount * 1000);
+							break;
+				case 'NaCl':            $("#wa_nacl").val(row.m_amount * 1000);
+							break;
+				case 'Melkzuur':
+				case 'Zoutzuur':
+				case 'Fosforzuur':
+				case 'Zwavelzuur':      $("#wa_acid").val(row.m_amount * 1000);
+							break;
+				case 'NaHCO3':
+				case 'Na2CO3':
+				case 'CaCO3':
+				case 'Ca(OH)2':         $("#wa_base").val(row.m_amount * 1000);
+							break;
+			}
+		}
+	};
+
+	function adjustYeasts(factor) {
+
+		console.log("adjustYeasts("+factor+")");
+
+		var rowscount = $("#yeastGrid").jqxGrid('getdatainformation').rowscount;
+		if (rowscount == 0)
+			return;
+
+		for (var i = 0; i < rowscount; i++) {
+			var row = $("#yeastGrid").jqxGrid('getrowdata', i);
+			if (row.y_form == 1) { // Only adjust dry yeast
+				var amount = row.y_amount * factor;
+				$("#yeastGrid").jqxGrid('setcellvalue', i, "y_amount", amount);
+			}
+		}
+	};
+
+	function adjustWaters(factor) {
+
+		console.log("adjustWaters("+factor+")");
+
+		var rowscount = $("#mashGrid").jqxGrid('getdatainformation').rowscount;
+		if (rowscount == 0)
+			return;
+
+		mash_infuse = 0;
+		for (var i = 0; i < rowscount; i++) {
+			var row = $("#mashGrid").jqxGrid('getrowdata', i);
+			if (row.step_type == 0) { // Infusion
+				var amount = Math.round(row.step_infuse_amount * factor * 10) / 10;
+				$("#mashGrid").jqxGrid('setcellvalue', i, "step_infuse_amount", amount);
+				mash_infuse += amount;
+			}
+		}
+		if (dataRecord.w2_amount == 0) {
+			dataRecord.w1_amount = mash_infuse;
+			$("#w1_amount").val(mash_infuse);
+		} else {
+			dataRecord.w1_amount = (dataRecord.w1_amount / (dataRecord.w1_amount + dataRecord.w2_amount)) * mash_infuse;
+			dataRecord.w2_amount = (dataRecord.w2_amount / (dataRecord.w1_amount + dataRecord.w2_amount)) * mash_infuse;
+			$("#w1_amount").val(dataRecord.w1_amount);
+			$("#w2_amount").val(dataRecord.w2_amount);
+		}
+	};
+
 /*	function GetBUGUMin() {
 
 		var Result = 0;
@@ -1194,13 +1289,21 @@
 		$('#batch_size').on('change', function (event) {
 			console.log("batch_size change:"+event.args.value+" old:"+dataRecord.batch_size);
 			var new_boil = parseFloat(event.args.value) + dataRecord.boil_size - dataRecord.batch_size;
+			var factor = parseFloat(event.args.value) / dataRecord.batch_size;
 			dataRecord.boil_size = new_boil;
 			$("#boil_size").val(Math.round(new_boil * 100) / 100);
+			dataRecord.sparge_volume *= factor;
+			$("#sparge_volume").val(dataRecord.sparge_volume);
 			dataRecord.batch_size = parseFloat(event.args.value);
 			calcFermentablesFromOG(parseFloat($("#est_og").jqxNumberInput('decimal')));     // Keep the OG
+			adjustWaters(factor);
 			calcFermentables();
-			// TODO: adjust the hops, miscs, yeast, water.
+			adjustHops(factor);
+			adjustMiscs(factor);
+			adjustYeasts(factor);
 			calcIBUs();
+			calcWater();
+			calcSparge();
 		});
 		$('#boil_time').on('change', function (event) {
 			console.log("boil_time change:"+parseFloat(event.args.value)+" old:"+dataRecord.boil_time);

mercurial