Fix for missing coor info on fermentables during recipes import. Log when srm or ebc values are negatie during conversions. Load setup record in global.inc.php and make some variables available for PHP and JS.

Sat, 17 Nov 2018 19:44:39 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Sat, 17 Nov 2018 19:44:39 +0100
changeset 100
08c92cb740b9
parent 99
f433193f7bb6
child 101
5b6bb99bc52a

Fix for missing coor info on fermentables during recipes import. Log when srm or ebc values are negatie during conversions. Load setup record in global.inc.php and make some variables available for PHP and JS.

www/import/from_brouwhulp.php file | annotate | diff | comparison | revisions
www/includes/formulas.php file | annotate | diff | comparison | revisions
www/includes/global.inc.php file | annotate | diff | comparison | revisions
www/js/global.js file | annotate | diff | comparison | revisions
--- a/www/import/from_brouwhulp.php	Sat Nov 17 15:58:13 2018 +0100
+++ b/www/import/from_brouwhulp.php	Sat Nov 17 19:44:39 2018 +0100
@@ -574,10 +574,13 @@
 				$fermentables .= ',"f_yield":' . $fyield;
 				if ($fermentable->COLOR) {
 					$srm = floatval($fermentable->COLOR);
-					$colorw += ($famount * $srm / $batch_size) * 8.34436;	/* Kleurwerking */
 					$ebc = srm_to_ebc($srm);
-					$fermentables .= ',"f_color":' . $ebc;
+				} else {
+					$srm = 0;
+					$ebc = 0;
 				}
+				$colorw += ($famount * $srm / $batch_size) * 8.34436;	/* Kleurwerking */
+				$fermentables .= ',"f_color":' . $ebc;
 				if ($fermentable->COARSE_FINE_DIFF)
 					$fermentables .= ',"f_coarse_fine_diff":' . floatval($fermentable->COARSE_FINE_DIFF);
 				else
--- a/www/includes/formulas.php	Sat Nov 17 15:58:13 2018 +0100
+++ b/www/includes/formulas.php	Sat Nov 17 19:44:39 2018 +0100
@@ -21,20 +21,21 @@
 
 function ebc_to_srm($ebc)
 {
-	// Srm = -1.32303E-12*Ebc4-0.00000000291515*Ebc3+0.00000818515*Ebc2+0.372038*Ebc+0.596351
-	return  -1.32303E-12 * pow($ebc, 4) - 0.00000000291515 * pow($ebc, 3) + 0.00000818515 * pow($ebc, 2) + 0.372038 * $ebc + 0.596351;
-	//  return $ebc * 0.508;
+	$srm = -1.32303E-12 * pow($ebc, 4) - 0.00000000291515 * pow($ebc, 3) + 0.00000818515 * pow($ebc, 2) + 0.372038 * $ebc + 0.596351;
+	if (($ebc < 0) || ($srm < 0))
+		syslog(LOG_NOTICE, "ebc_to_srm(".$ebc.") = ".$srm);
+	return $srm;
 }
 
 
 
 function srm_to_ebc($srm)
 {
-	// EBC = 0.000000000176506*Srm4+ 0.000000154529*Srm3-0.000159428*Srm2+2.68837*Srm-1.6004
-	//
 	// Formule van Adrie Otten. brouwhulp.
-	$ebc = 0.000000000176506 * pow($srm, 4) + 0.000000154529 * pow($srm, 3) - 0.000159428 * pow($srm, 2) + 2.68837 * $srm - 1.6004;
-	return round($ebc);
+	$ebc = round( 0.000000000176506 * pow($srm, 4) + 0.000000154529 * pow($srm, 3) - 0.000159428 * pow($srm, 2) + 2.68837 * $srm - 1.6004 );
+	if (($ebc < 0) || ($srm < 0))
+		syslog(LOG_NOTICE, "srm_to_ebc(".$srm.") = ".$ebc);
+	return $ebc;
 }
 
 
--- a/www/includes/global.inc.php	Sat Nov 17 15:58:13 2018 +0100
+++ b/www/includes/global.inc.php	Sat Nov 17 19:44:39 2018 +0100
@@ -39,11 +39,45 @@
 else
 	$my_return = '';
 
+$escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c");
+$replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b");
+
+/* Load setup record */
+#Connect to the database
+$connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME);
+if (! $connect) {
+        die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
+}
+mysqli_set_charset($connect, "utf8" );
+$my_default_water = $my_brewery_name = $my_ibu_method = $my_color_method = '';
+$my_factor_mashhop = $my_factor_fwh = $my_factor_pellet = $my_factor_plug = 0;
+$my_brix_correction = $my_grain_absorbtion = 1.0;
+
+$result = mysqli_query($connect, "SELECT * FROM profile_setup WHERE record='1'") or die("SQL Error 1: " . mysqli_error($connect));
+if ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
+	/* search water name */
+	$wresult = mysqli_query($connect, "SELECT name FROM inventory_waters WHERE record='".$row['default_water']."';");
+	if ($wrow = mysqli_fetch_array($wresult, MYSQLI_ASSOC))
+		$my_default_water = str_replace($escapers, $replacements, $wrow['name']);
+	$my_brewery_name = str_replace($escapers, $replacements, $row['brewery_name']);
+	$my_factor_mashhop = floatval($row['factor_mashhop']);
+	$my_factor_fwh= floatval($row['factor_fwh']);
+	$my_factor_pellet= floatval($row['factor_pellet']);
+	$my_factor_plug= floatval($row['factor_plug']);
+	$my_ibu_method = str_replace($escapers, $replacements, $row['ibu_method']);
+	$my_color_method = str_replace($escapers, $replacements, $row['color_method']);
+	$my_brix_correction = floatval($row['brix_correction']);
+	$my_grain_absorbtion = floatval($row['grain_absorbtion']);
+}
+//mysqli_free_result($result);
+
+
 function page_header($title, $loadjs) {
 	global $my_style;
 	global $my_version;
 	global $my_record;
 	global $my_return;
+	global $my_brewery_name;
 ?>
 <!DOCTYPE html>
 <html lang=nl-NL>
@@ -58,6 +92,7 @@
 	var theme = "<?php echo $my_style; ?>";
 	var my_record = "<?php echo $my_record; ?>";
 	var my_return = "<?php echo $my_return; ?>";
+	var my_brewery_name = "<?php echo $my_brewery_name; ?>";
   </script>
   <script src="js/jquery-1.11.1.min.js"></script>
   <script src="jqwidgets/jqxcore.js"></script>
--- a/www/js/global.js	Sat Nov 17 15:58:13 2018 +0100
+++ b/www/js/global.js	Sat Nov 17 19:44:39 2018 +0100
@@ -84,15 +84,20 @@
 
 
 function ebc_to_srm(ebc) {
-	return  -1.32303E-12 * Math.pow(ebc, 4) - 0.00000000291515 * Math.pow(ebc, 3) + 0.00000818515 * Math.pow(ebc, 2) + 0.372038 * ebc + 0.596351;
+	var srm = -1.32303E-12 * Math.pow(ebc, 4) - 0.00000000291515 * Math.pow(ebc, 3) + 0.00000818515 * Math.pow(ebc, 2) + 0.372038 * ebc + 0.596351;
+	if ((ebc < 0) || (srm < 0))
+		console.log("ebc_to_srm("+ebc+") = "+srm);
+	return srm
 }
 
 
 
 function srm_to_ebc(srm)
 {
-	var ebc = 0.000000000176506 * Math.pow(srm, 4) + 0.000000154529 * Math.pow(srm, 3) - 0.000159428 * Math.pow(srm, 2) + 2.68837 * srm - 1.6004;
-	return Math.round(ebc);
+	var ebc = Math.round(0.000000000176506 * Math.pow(srm, 4) + 0.000000154529 * Math.pow(srm, 3) - 0.000159428 * Math.pow(srm, 2) + 2.68837 * srm - 1.6004);
+	if ((ebc < 0) || (srm < 0))
+		console.log("srm_to_ebc("+srm+") = "+ebc);
+	return ebc;
 }
 
 

mercurial