www/js/prod_edit.js

changeset 152
2e4249add363
parent 151
2c9cfe2f0860
child 153
15fe253ffa83
--- a/www/js/prod_edit.js	Mon Dec 24 23:10:52 2018 +0100
+++ b/www/js/prod_edit.js	Tue Dec 25 13:42:36 2018 +0100
@@ -77,10 +77,6 @@
         var     MMNaCl = 58.443;
         var     MMCaOH2 = 74.06268;
 
-	var	old_efficiency;
-	var	old_batch_size;
-	var	old_boil_time;
-
 	console.log("record:" + my_record + "  return:" + my_return + "  theme:" + theme);
         $("#jqxLoader").jqxLoader({
                 width: 250,
@@ -130,6 +126,7 @@
                 document.getElementById("bcolor").style.background= scolor;
                 document.getElementById("bcolor2").style.background= scolor;
                 pmalts = mashkg / dataRecord.eq_mash_max * 100;
+		console.log("mash kg: "+mashkg+" max: "+dataRecord.eq_mash_max+" perc: "+pmalts);
                 $("#perc_malts").jqxProgressBar('val', pmalts);
                 $("#perc_sugars").jqxProgressBar('val', psugar);
                 $("#perc_cara").jqxProgressBar('val', pcara);
@@ -142,7 +139,7 @@
 		var     vol, vol1, vol2, sug2;
 		var     mass1, mass2, efficiency;
 
-		for (j = 1; j < 15; j++) {      // Maybe needed if there is equipment, not here.
+		for (j = 1; j < 15; j++) {
 			vol = 0;
 			sug2 = 0;
 			efficiency = parseFloat(dataRecord.efficiency);
@@ -195,6 +192,10 @@
 		//CalcWaterBalance;
 	};
 
+	function calcABV() {
+		$("#est_abv").val(abvol(parseFloat($("#est_og").jqxNumberInput('decimal')), parseFloat($("#est_fg").jqxNumberInput('decimal'))));
+	};
+
 	function hopFlavourContribution(bt, vol, use, amount) {
 		var result;
 
@@ -255,6 +256,15 @@
 		$("#hop_aroma").jqxProgressBar('val', hop_aroma * 10);
 	};
 
+	function calcSVG() {
+		var rows = $('#yeastGrid').jqxGrid('getrows');
+		for (var i = 0; i < rows.length; i++) {
+			var row = rows[i];
+			if (row.y_use == "Primary")
+				svg = parseFloat(row.y_attenuation);
+		}
+	}
+
 	function calcSGendMash() {
 		est_mash_sg = 0;
 		var	mvol = 0;	// Mash volume
@@ -305,8 +315,95 @@
 		calcSGendMash();
 		calcMashEfficiency();
 
+		$('#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;
+			dataRecord.boil_size = new_boil;
+			$("#boil_size").val(Math.round(new_boil * 100) / 100);
+			dataRecord.batch_size = parseFloat(event.args.value);
+			calcFermentablesFromOG(parseFloat($("#est_og").jqxNumberInput('decimal')));     // Keep the OG
+			calcFermentables();
+			calcSVG();
+			calcABV();
+			// TODO: adjust the hops, miscs, yeast, water.
+			calcIBUs();
+		});
+		$('#boil_time').on('change', function (event) {
+			console.log("boil_time change:"+parseFloat(event.args.value)+" old:"+dataRecord.boil_time);
+			var old_evap = parseFloat(dataRecord.boil_size) - parseFloat(dataRecord.batch_size);
+			var new_evap = old_evap * (parseFloat(event.args.value) / dataRecord.boil_time);
+			var new_boil = parseFloat(dataRecord.batch_size) + new_evap;
+			dataRecord.boil_time = parseFloat(event.args.value);
+			dataRecord.boil_size = new_boil;
+			$("#boil_size").val(Math.round(new_boil * 100) / 100);
+			calcFermentables();
+			calcSVG();
+			calcABV();
+			// TODO: adjust the hops, miscs, yeast, water.
+			calcIBUs();
+		});
+		$('#efficiency').on('change', function (event) {
+			console.log("efficiency change:"+event.args.value);
+			calcFermentables();
+			calcSVG();
+			calcABV();
+			calcIBUs();
+		});
+		$('#est_og').on('change', function (event) {
+			console.log("est_og change:"+event.args.value);
+			calcFermentablesFromOG(event.args.value);       // Adjust fermentables amounts
+			calcFermentables();                             // Update the recipe details
+			calcSVG();
+			calcABV();                                      // and ABV
+			calcIBUs();                                     // and the IBU's.
+		});
+		$('#mash_ph').on('change', function (event) {
+			dataRecord.mash_ph = parseFloat(event.args.value);
+			$("#tgt_mash_ph").val(parseFloat(event.args.value));
+	//		calcWater();
+		});
 	};
 
+	$("#styleSelect").jqxDropDownList({
+		placeHolder: "Kies bierstijl:",
+		theme: theme,
+		source: styleslist,
+		displayMember: "name",
+		width: 150,
+		height: 27,
+		dropDownVerticalAlignment: 'top',
+		dropDownWidth: 500,
+		dropDownHeight: 380,
+		renderer: function (index, label, value) {
+			var datarecord = styleslist.records[index];
+			return datarecord.style_guide + " " + datarecord.style_letter+ " " + datarecord.name;
+		}
+	});
+	$("#styleSelect").on('select', function (event) {
+		if (event.args) {
+			var index = event.args.index;
+			var datarecord = styleslist.records[index];
+			$("#st_name").val(datarecord.name);
+			$("#st_category").val(datarecord.category);
+			$("#st_category_number").val(datarecord.category_number);
+			$("#st_letter").val(datarecord.style_letter);
+			$("#st_guide").val(datarecord.style_guide);
+			$("#st_type").val(datarecord.type);
+			$("#st_og_min").val(datarecord.og_min);
+			$("#st_og_max").val(datarecord.og_max);
+			$("#st_fg_min").val(datarecord.fg_min);
+			$("#st_fg_max").val(datarecord.fg_max);
+			$("#st_ibu_min").val(datarecord.ibu_min);
+			$("#st_ibu_max").val(datarecord.ibu_max);
+			$("#st_color_min").val(datarecord.color_min);
+			$("#st_color_max").val(datarecord.color_max);
+			$("#st_carb_min").val(datarecord.carb_min);
+			$("#st_carb_max").val(datarecord.carb_max);
+			$("#st_abv_min").val(datarecord.abv_min);
+			$("#st_abv_max").val(datarecord.abv_max);
+		}
+	});
+
 	// Equipemnt dropdown list
 	var equipmentUrl = "includes/db_inventory_equipments.php";
 	var equipmentSource = {
@@ -334,6 +431,7 @@
 			{ name: 'kettle_volume', type: 'float' },
 			{ name: 'kettle_height', type: 'float' },
 			{ name: 'mash_volume', type: 'float' },
+			{ name: 'mash_max', type: 'float' },
 			{ name: 'efficiency', type: 'float' }
 		],
 		url: equipmentUrl,
@@ -359,7 +457,11 @@
 			var datarecord = equipmentlist.records[index];
 			$("#eq_name").val(datarecord.name);
 			$("#eq_boil_size").val(datarecord.boil_size);
+			dataRecord.boil_size = datarecord.boil_size;
+			$("#boil_size").val(datarecord.boil_size);
 			$("#eq_batch_size").val(datarecord.batch_size);
+			dataRecord.batch_size = datarecord.batch_size;
+			$("#batch_size").val(datarecord.batch_size);
 			$("#eq_tun_volume").val(datarecord.tun_volume);
 			dataRecord.eq_tun_weight = datarecord.tun_weight;
 			dataRecord.eq_tun_specific_heat = datarecord.tun_specific_heat;
@@ -380,7 +482,18 @@
 			dataRecord.eq_kettle_height = datarecord.kettle_height / 100.0;
 			$("#eq_mash_volume").val(datarecord.mash_volume);
 			$("#eq_mash_max").val(datarecord.mash_max);
+			dataRecord.eq_mash_max = datarecord.mash_max;
+			$("#mash_max").val(datarecord.mash_max);
 			$("#eq_efficiency").val(datarecord.efficiency);
+			dataRecord.efficiency = datarecord.efficiency;
+			$("#efficiency").val(datarecord.efficiency);
+
+			calcFermentablesFromOG(parseFloat($("#est_og").jqxNumberInput('decimal')));     // Keep the OG
+			calcFermentables();
+			calcSVG();
+			calcABV();
+			// TODO: adjust the hops, miscs, yeast, water.
+			calcIBUs();
 		}
 	});
 
@@ -422,12 +535,12 @@
 	$("#est_ibu2").jqxTooltip({ content: 'De bitterheid in IBU. Dit wordt automatisch berekend.' });
 	$("#est_abv").jqxTooltip({ content: 'Alcohol volume %. Dit wordt automatisch berekend.' });
 	$("#est_carb").jqxTooltip({ content: 'Koolzuur volume. Dit wordt automatisch berekend.' });
-//	$("#st_name").jqxTooltip({ content: 'De bierstijl naam voor dit recept.'});
-//	$("#st_letter").jqxTooltip({ content: 'De bierstijl letter voor dit recept.'});
-//	$("#st_guide").jqxTooltip({ content: 'De bierstijl gids voor dit recept.'});
-//	$("#st_category").jqxTooltip({ content: 'De Amerikaanse bierstijl categorie.'});
-//	$("#st_category_number").jqxTooltip({ content: 'De Amerikaanse bierstijl categorie sub nummer.'});
-//	$("#st_type").jqxTooltip({ content: 'Het bierstijl type.'});
+	$("#st_name").jqxTooltip({ content: 'De bierstijl naam voor dit recept.'});
+	$("#st_letter").jqxTooltip({ content: 'De bierstijl letter voor dit recept.'});
+	$("#st_guide").jqxTooltip({ content: 'De bierstijl gids voor dit recept.'});
+	$("#st_category").jqxTooltip({ content: 'De Amerikaanse bierstijl categorie.'});
+	$("#st_category_number").jqxTooltip({ content: 'De Amerikaanse bierstijl categorie sub nummer.'});
+	$("#st_type").jqxTooltip({ content: 'Het bierstijl type.'});
 	$("#st_og_min").jqxTooltip({ content: 'Het minimum begin SG voor deze bierstijl.'});
 	$("#st_og_max").jqxTooltip({ content: 'Het maximum begin SG voor deze bierstijl.'});
 	$("#st_fg_min").jqxTooltip({ content: 'Het minimum eind SG voor deze bierstijl.'});
@@ -718,12 +831,9 @@
 			$("#st_carb_max").val(dataRecord.st_carb_max);
 			$("#type").val(dataRecord.type);
 			$("#batch_size").val(dataRecord.batch_size);
-			old_batch_size = dataRecord.batch_size;
 			$("#boil_size").val(dataRecord.boil_size);
 			$("#boil_time").val(dataRecord.boil_time);
-			old_boil_time = dataRecord.boil_time;
 			$("#efficiency").val(dataRecord.efficiency);
-			old_efficiency = dataRecord.efficiency;
 			$("#est_og").val(dataRecord.est_og);
 			$("#est_og2").val(dataRecord.est_og);
 			$("#est_fg").val(dataRecord.est_fg);
@@ -1690,7 +1800,7 @@
                                 });
                         },
                         ready: function() {
-//                                calcSVG();
+                                calcSVG();
                                 $('#jqxTabs').jqxTabs('next');
                         },
                         columns: [
@@ -1903,7 +2013,7 @@
 	$("#code").jqxInput({ theme: theme, width: 100, height: 23 });
 	$("#birth").jqxDateTimeInput({ theme: theme, width: 150, height: 23, formatString: 'yyyy-MM-dd' });
 	$("#stage").jqxInput({ theme: theme, width: 100, height: 23 });
-	$("#notes").jqxInput({ theme: theme, width: 960, height: 200 });
+	$("#notes").jqxInput({ theme: theme, width: 960, height: 100 });
 	$("#log_brew").jqxCheckBox({ theme: theme, width: 120, height: 23, disabled : true });
 	$("#log_fermentation").jqxCheckBox({ theme: theme, width: 120, height: 23, disabled : true });
 	$("#inventory_reduced").jqxCheckBox({ theme: theme, width: 120, height: 23 });
@@ -1936,7 +2046,7 @@
 	$("#eq_boil_time").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 0 });
 	$("#eq_top_up_kettle").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 });
 	$("#eq_hop_utilization").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 0 });
-	$("#eq_notes").jqxInput({ theme: theme, width: 800, height: 100 });
+	$("#eq_notes").jqxInput({ theme: theme, width: 960, height: 200 });
 	$("#eq_lauter_volume").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 });
 	$("#eq_lauter_deadspace").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 });
 	$("#eq_kettle_volume").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 });
@@ -1981,11 +2091,18 @@
 	// Packaging
 	// Tasting
 
+	$("#st_name").jqxInput({ theme: theme, width: 250, height: 23 });
+	$("#st_letter").jqxInput({ theme: theme, width: 100, height: 23 });
+	$("#st_guide").jqxInput({ theme: theme, width: 250, height: 23 });
+	$("#st_category").jqxInput({ theme: theme, width: 250, height: 23 });
+	$("#st_category_number").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 0, readOnly: true });
+	$("#st_type").jqxInput({ theme: theme, width: 90, height: 23 });
+	$("#type").jqxDropDownList({ theme: theme, source: srcType, width: 125, height: 23, dropDownHeight: 95 });
 	$("#batch_size").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, min: 4, decimalDigits: 1, spinButtons: true, spinButtonsStep: 0.1, symbol: 'L', symbolPosition: 'right' });
 	$("#boil_size").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 100, height: 23, decimalDigits: 2, readOnly: true, symbol: 'L', symbolPosition: 'right' });
 	$("#boil_time").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, min: 4, max: 360, decimalDigits: 0, spinButtons: true });
 	$("#efficiency").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, min: 40, max: 100, decimalDigits: 0, spinButtons: true, symbol: '%', symbolPosition: 'right'  });
-	$("#est_og").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 3 });
+	$("#est_og").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, min: 1.000, max: 1.200, decimalDigits: 3, spinButtons: true, spinButtonsStep: 0.001 });
 	$("#est_og2").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 100, height: 23, decimalDigits: 3, readOnly: true });
 	$("#st_og_min").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 3, readOnly: true });
 	$("#st_og_max").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 3, readOnly: true });
@@ -2185,6 +2302,13 @@
 	});
 
 	// Buttons below
+	$("#Print").jqxButton({ template: "info", width: '80px', theme: theme });
+	$("#Print").click(function () {
+		// Open print in a new tab.
+		var url="prod_print.php?record=" + my_record;
+		window.open(url);
+	});
+
 	$("#Delete").jqxButton({ template: "danger", width: '80px', theme: theme });
 	$("#Delete").click(function () {
 		// Open a popup to confirm this action.
@@ -2256,12 +2380,12 @@
 			eq_mash_volume: parseFloat($("#eq_mash_volume").jqxNumberInput('decimal')),
 			eq_mash_max: parseFloat($("#eq_mash_max").jqxNumberInput('decimal')),
 			eq_efficiency: parseFloat($("#eq_efficiency").jqxNumberInput('decimal')),
-	//		st_name: $('#st_name').val(),
-	//		st_letter: $('#st_letter').val(),
-	//		st_guide: $('#st_guide').val(),
-	//		st_type: $('#st_type').val(),
-	//		st_category: $('#st_category').val(),
-	//		st_category_number: parseFloat($("#st_category_number").jqxNumberInput('decimal')),
+			st_name: $('#st_name').val(),
+			st_letter: $('#st_letter').val(),
+			st_guide: $('#st_guide').val(),
+			st_type: $('#st_type').val(),
+			st_category: $('#st_category').val(),
+			st_category_number: parseFloat($("#st_category_number").jqxNumberInput('decimal')),
 			st_og_min: parseFloat($("#st_og_min").jqxNumberInput('decimal')),
 			st_og_max: parseFloat($("#st_og_max").jqxNumberInput('decimal')),
 			st_fg_min: parseFloat($("#st_fg_min").jqxNumberInput('decimal')),

mercurial