Fixed floating precision problems and also got the SRM to EBC conversion right.

Sun, 19 Aug 2018 17:35:16 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 19 Aug 2018 17:35:16 +0200
changeset 32
8bb369f32ef9
parent 31
d7b40a7d8ac6
child 33
2ee6ad5d6f14

Fixed floating precision problems and also got the SRM to EBC conversion right.

www/import/from_brouwhulp.php file | annotate | diff | comparison | revisions
--- a/www/import/from_brouwhulp.php	Sun Aug 19 16:24:03 2018 +0200
+++ b/www/import/from_brouwhulp.php	Sun Aug 19 17:35:16 2018 +0200
@@ -35,12 +35,8 @@
 		if ($fermentable->YIELD)
 			$sql .= "', yield='" . $fermentable->YIELD;
 		if ($fermentable->COLOR) {
-			$srm = $fermentable->COLOR;
+			$srm = floatval($fermentable->COLOR);
 			$ebc = srm_to_ebc($srm);
-			if ($ebc < 0)
-				$ebc = 0;
-			$nsrm = ebc_to_srm($ebc);
-			echo 'SRM '.$srm.' EBC '.$ebc.' back '.$nsrm.PHP_EOL;
 			$sql .= "', color='" . $ebc;
 		}
 		($fermentable->ADD_AFTER_BOIL == "TRUE") ? $sql .= "', add_after_boil='1" : $sql .= "', add_after_boil='0";
@@ -62,9 +58,9 @@
 			$sql .= "', ibu_gal_per_lb='" . $fermentable->IBU_GAL_PER_LB;
 		($fermentable->ALWAYS_ON_STOCK == "TRUE") ? $sql .= "', always_on_stock='1" : $sql .= "', always_on_stock='0";
 		if ($fermentable->INVENTORY)
-			$sql .= "', inventory='" . $fermentable->INVENTORY;
+			$sql .= "', inventory='" . floatval($fermentable->INVENTORY);
 		if ($fermentable->COST)
-			$sql .= "', cost='" . $fermentable->COST;
+			$sql .= "', cost='" . floatval($fermentable->COST);
 		/*
 		 * These are not beerxml standard:
 		 */
@@ -118,9 +114,9 @@
 		$sql .= "', substitutes='" . mysqli_real_escape_string($db, $hop->SUBSTITUTES);
 		($hop->ALWAYS_ON_STOCK == 'TRUE') ? $sql .= "', always_on_stock='1" : $sql .= "', always_on_stock='0";
 		if ($hop->INVENTORY)
-			$sql .= "', inventory='" . $hop->INVENTORY / 1000.0;
+			$sql .= "', inventory='" . floatval($hop->INVENTORY) / 1000.0;
 		if ($hop->COST)
-			$sql .= "', cost='" . $hop->COST;
+			$sql .= "', cost='" . floatval($hop->COST);
 		if ($hop->TOTAL_OIL)
 			$sql .= "', total_oil='" . $hop->TOTAL_OIL;
 		$sql .= "';";
@@ -164,9 +160,9 @@
 		if ($yeast->MAX_REUSE)
 			$sql .= "', max_reuse='" . $yeast->MAX_REUSE;
 		if ($yeast->INVENTORY)
-			$sql .= "', inventory='" . $yeast->INVENTORY;
+			$sql .= "', inventory='" . floatval($yeast->INVENTORY) / 1000.0;
 		if ($yeast->COST)
-			$sql .= "', cost='" . $yeast->COST;
+			$sql .= "', cost='" . floatval($yeast->COST) * 1000.0;
 		if ($yeast->CULTURE_DATE) {
 			$date = substr($yeast->CULTURE_DATE, 6, 4) . '-' . substr($yeast->CULTURE_DATE, 3, 2) . '-' . substr($yeast->CULTURE_DATE, 0, 2);
 			$sql .= "', production_date='" . $date;
@@ -254,9 +250,9 @@
 		if ($misc->ALWAYS_ON_STOCK)
 			($misc->ALWAYS_ON_STOCK == 'TRUE') ? $sql .= "', always_on_stock='1" : $sql .= "', always_on_stock='0";
 		if ($misc->INVENTORY)
-			$sql .= "', inventory='" . $misc->INVENTORY;
+			$sql .= "', inventory='" . floatval($misc->INVENTORY) / 1000.0;
 		if ($misc->COST)
-			$sql .= "', cost='" . $misc->COST;
+			$sql .= "', cost='" . floatval($misc->COST);
 		$sql .= "';";
 		if (! $result = mysqli_query($db, $sql)) {
 			printf("Error: %s\n", mysqli_error($db));
@@ -435,8 +431,8 @@
 
 do_fermentables();
 do_hops();
-//do_yeasts();
-//do_miscs();
+do_yeasts();
+do_miscs();
 //do_waters();
 //do_equipments();
 do_styles();

mercurial