www/upl_fermentables.php

Mon, 11 May 2020 17:32:08 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 11 May 2020 17:32:08 +0200
changeset 671
4b54d6f79d25
parent 311
f6fafccd8a6d
child 785
aa79acfdf8a9
permissions
-rw-r--r--

Version 0.3.33 Added websockets framework. Added fermenter status messages to the websockets broadcast.

<?php
require_once('config.php');
require("version.php");
require("includes/formulas.php");


$target_dir = "tmp/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

// Check if file already exists
if (file_exists($target_file)) {
	echo "Fout 1: bestand bestaat al. ";
	$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000 && $uploadOk) {
	echo "Fout 2: het bestand is te groot. ";
	$uploadOk = 0;
}
// Allow certain file formats
if ($imageFileType != "xml" && $uploadOk) {
	echo "Fout 3: alleen XML bestanden toegestaan. ";
	$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
	exit;
}

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
	echo "Verwerken bestand ". basename( $_FILES["fileToUpload"]["name"]). "<br />";
} else {
	echo "Fout 4: er ging iets fout met de upload.";
	exit;
}


$db = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME);
if (! $db) {
	echo "Fout 5: ".mysqli_connect_errno()." ".mysqli_connect_error();
	exit;
}
mysqli_set_charset($db, "utf8" );
date_default_timezone_set('Europe/Amsterdam');


$imported = 0;
$myfermentables= simplexml_load_file($target_file);


foreach ($myfermentables->FERMENTABLE as $fermentable) {

	$sql  = "INSERT INTO inventory_fermentables SET name='" . mysqli_real_escape_string($db, $fermentable->NAME);
	if ($fermentable->TYPE == 'Grain')
		$sql .= "', type='0";
	else if ($fermentable->TYPE == 'Sugar')
		$sql .= "', type='1";
	else if ($fermentable->TYPE == 'Extract')
		$sql .= "', type='2";
	else if ($fermentable->TYPE == 'Dry extract')
		$sql .= "', type='3";
	else if ($fermentable->TYPE == 'Adjunct')
		$sql .= "', type='4";
	else
		echo "Unknown TYPE " . $fermentable->TYPE . "<br />";
	if ($fermentable->YIELD)
		$sql .= "', yield='" . floatval($fermentable->YIELD);
	if ($fermentable->COLOR) {
		$sql .= "', color='" . srm_to_ebc(floatval($fermentable->COLOR));
	}
	($fermentable->ADD_AFTER_BOIL == "TRUE") ? $sql .= "', add_after_boil='1" : $sql .= "', add_after_boil='0";
	if ($fermentable->ADDED == 'Mash')
		$sql .= "', added='0";
	else if ($fermentable->ADDED == 'Boil')
		$sql .= "', added='1";
	else if ($fermentable->ADDED == 'Fermentation')
		$sql .= "', added='2";
	else if ($fermentable->ADDED == 'Lagering')
		$sql .= "', added='3";
	else if ($fermentable->ADDED == 'Bottle')
		$sql .= "', added='4";
	else
		echo "Unknown ADDED " . $fermentable->ADDED . "<br />";

	$sql .= "', origin='" . mysqli_real_escape_string($db, $fermentable->ORIGIN);
	$sql .= "', supplier='" . mysqli_real_escape_string($db, $fermentable->SUPPLIER);
	$sql .= "', notes='" . mysqli_real_escape_string($db, $fermentable->NOTES);
	if ($fermentable->COARSE_FINE_DIFF)
		$sql .= "', coarse_fine_diff='" . floatval($fermentable->COARSE_FINE_DIFF);
	if ($fermentable->MOISTURE)
		$sql .= "', moisture='" . floatval($fermentable->MOISTURE);
	if ($fermentable->DIASTATIC_POWER)
		$sql .= "', diastatic_power='" . floatval($fermentable->DIASTATIC_POWER);
	if ($fermentable->PROTEIN)
		$sql .= "', protein='" . floatval($fermentable->PROTEIN);
	if ($fermentable->DISSOLVED_PROTEIN)
		$sql .= "', dissolved_protein='" . floatval($fermentable->DISSOLVED_PROTEIN);
	if ($fermentable->MAX_IN_BATCH)
		$sql .= "', max_in_batch='" . floatval($fermentable->MAX_IN_BATCH);
	($fermentable->RECOMMEND_MASH == "TRUE") ? $sql .= "', recommend_mash='1" : $sql .= "', recommend_mash='0";
	($fermentable->ALWAYS_ON_STOCK == "TRUE") ? $sql .= "', always_on_stock='1" : $sql .= "', always_on_stock='0";
	if ($fermentable->INVENTORY)
		$sql .= "', inventory='" . floatval($fermentable->INVENTORY);
	if ($fermentable->COST)
		$sql .= "', cost='" . floatval($fermentable->COST);

	/*
	 * These are not beerxml standard:
	 */
	if ($fermentable->DI_pH)
		$sql .= "', di_ph='" . floatval($fermentable->DI_pH);
	if ($fermentable->{'ACID_TO_pH_5.7'})
		$sql .= "', acid_to_ph_57='" . floatval($fermentable->{'ACID_TO_pH_5.7'});
	if ($fermentable->GRAINTYPE == 'Base')
		$sql .= "', graintype='0";
	else if ($fermentable->GRAINTYPE == 'Roast')
		$sql .= "', graintype='1";
	else if ($fermentable->GRAINTYPE == 'Crystal')
		$sql .= "', graintype='2";
	else if ($fermentable->GRAINTYPE == 'Kilned')
		$sql .= "', graintype='3";
	else if ($fermentable->GRAINTYPE == 'Sour malt')
		$sql .= "', graintype='4";
	else if ($fermentable->GRAINTYPE == 'Special')
		$sql .= "', graintype='5";
	else if ($fermentable->GRAINTYPE == 'No malt')
		$sql .= "', graintype='6";
	else
		echo "Unknown GRAINTYPE " . $fermentable->GRAINTYPE . "<br />";
	$sql .= "';";
	if (! $result = mysqli_query($db, $sql)) {
		echo "Fout 8: " . mysqli_error($db) . "<br />";
	} else {
		echo "+ " . $fermentable->NAME . "<br />";
		$imported++;
	}
}

if ($imported == 0) {
	echo "Fout 7: geen vergistbare ingredienten in dit bestand.<br />";
} else {
	echo $imported . " ingredienten toegevoegd.<br />";
}



// Don't clutter the upload directory.
unlink($target_file);

?>

mercurial