www/prod_reduce.php

Sat, 23 Feb 2019 19:55:42 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Sat, 23 Feb 2019 19:55:42 +0100
changeset 282
f765249d57d7
parent 273
19606adfea42
child 323
889cddd84450
permissions
-rw-r--r--

ABV calculation uses Daniels method. sg_to_plato and plato_to_sg functions use brewersfriend calculation. Added sg_to_brix and brix_to_sg functions. Make brewdate tab read only when the primary fermentation is ready. Brix aid input functions for primary end sg and final sg fields. Added tooltips on the fermentation tab. Changes in the layout of the fermentation tab.

<?php

require_once('config.php');

#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" );

if (isset($_POST['reduce']) && isset($_POST['uuid'])) {
	$sql1 = "SELECT * FROM products WHERE uuid = '" . $_POST['uuid'] . "';";
} else {
	exit;
}

//syslog(LOG_NOTICE, $sql1);

$result1 = mysqli_query($connect, $sql1) or die("SQL Error 1: " . mysqli_error($connect));
while ($row = mysqli_fetch_array($result1, MYSQLI_ASSOC)) {

	if ($row['stage'] < 6) {
		syslog(LOG_NOTICE, "code: " . $row['code'] . " cannot reduce inventory, not yet packaged.");
		exit;
	}
	if ($row['inventory_reduced']) {
		syslog(LOG_NOTICE, "code: " . $row['code'] . " cannot reduce inventory, already reduced.");
		exit;
	}

	syslog(LOG_NOTICE, "Start reducing inventory from ". $row['code'].' '.$row['name']);

	$fermentables = json_decode($row['json_fermentables'], true);
	for ($i = 0; $i < count($fermentables); $i++) {

		$sql2  = "UPDATE inventory_fermentables SET inventory = inventory - " . $fermentables[$i]['f_amount'];
		$sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_name']);
	        $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_origin']);
		$sql2 .= "' AND supplier='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_supplier']);
	        $sql2 .= "' AND inventory >= " . $fermentables[$i]['f_amount'];
		$sql2 .= " LIMIT 1;";
//		syslog(LOG_NOTICE, $sql2);
		$result2 = mysqli_query($connect, $sql2);
		$ar = mysqli_affected_rows($connect);
		if ($ar == 1) {
			syslog(LOG_NOTICE, "Reduced fermentable `".$fermentables[$i]['f_name']."' from `".$fermentables[$i]['f_supplier']."' with ".$fermentables[$i]['f_amount']." kg");
		} else if ($ar == 0) {
			$sql2  = "UPDATE inventory_fermentables SET inventory = 0";
			$sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_name']);
		        $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_origin']);
			$sql2 .= "' AND supplier='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_supplier']);
		        $sql2 .= "' AND inventory < " . $fermentables[$i]['f_amount'];
			$sql2 .= " LIMIT 1;";
//			syslog(LOG_NOTICE, $sql2);
			$result2 = mysqli_query($connect, $sql2);
			$ar = mysqli_affected_rows($connect);
			if ($ar == 1) {
				syslog(LOG_NOTICE, "Reduced fermentable `".$fermentables[$i]['f_name']."' from `".$fermentables[$i]['f_supplier']."' to 0 kg");
			} else if ($ar == 0) {
				syslog(LOG_NOTICE, "Reduced fermentable `".$fermentables[$i]['f_name']."' from `".$fermentables[$i]['f_supplier']."' failed");
			}
//			syslog(LOG_NOTICE, "affected rows: ".$ar);
		}
	}

	$hops = json_decode($row['json_hops'], true);
	for ($i = 0; $i < count($hops); $i++) {

		$sql2  = "UPDATE inventory_hops SET inventory = inventory - " . $hops[$i]['h_amount'];
		$sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $hops[$i]['h_name']);
	        $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $hops[$i]['h_origin']);
		$sql2 .= "' AND form=" . $hops[$i]['h_form'];
		$sql2 .= " AND inventory >= " . $hops[$i]['h_amount'] . " LIMIT 1;";
//		syslog(LOG_NOTICE, $sql2);
		$result2 = mysqli_query($connect, $sql2);
		$ar = mysqli_affected_rows($connect);
		if ($ar == 1) {
			syslog(LOG_NOTICE, "Reduced hop `".$hops[$i]['h_name']."' from `".$hops[$i]['h_origin']."' with ".$hops[$i]['h_amount']." kg");
		} else if ($ar == 0) {
			$sql2  = "UPDATE inventory_hops SET inventory = 0";
			$sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $hops[$i]['h_name']);
		        $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $hops[$i]['h_origin']);
			$sql2 .= "' AND form=" . $hops[$i]['h_form'];
			$sql2 .= " AND inventory < " . $hops[$i]['h_amount'] . " LIMIT 1;";
//			syslog(LOG_NOTICE, $sql2);
			$result2 = mysqli_query($connect, $sql2);
			$ar = mysqli_affected_rows($connect);
			if ($ar == 1) {
				syslog(LOG_NOTICE, "Reduced hop `".$hops[$i]['h_name']."' from `".$hops[$i]['h_origin']."' to 0 kg");
			} else if ($ar == 0) {
				syslog(LOG_NOTICE, "Reduced hop `".$hops[$i]['h_name']."' from `".$hops[$i]['h_origin']."' failed");
			}
		}
	}

	$miscs = json_decode($row['json_miscs'], true);
	for ($i = 0; $i < count($miscs); $i++) {

		$sql2  = "UPDATE inventory_miscs SET inventory = inventory - " . $miscs[$i]['m_amount'];
		$sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $miscs[$i]['m_name']);
	        $sql2 .= "' AND inventory >= " . $miscs[$i]['m_amount'] . " LIMIT 1;";
//		syslog(LOG_NOTICE, $sql2);
		$result2 = mysqli_query($connect, $sql2);
		$ar = mysqli_affected_rows($connect);
		if ($ar == 1) {
			syslog(LOG_NOTICE, "Reduced misc `".$miscs[$i]['m_name']."' with ".$miscs[$i]['m_amount']);
		} else if ($ar == 0) {
			$sql2  = "UPDATE inventory_miscs SET inventory = 0";
			$sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $miscs[$i]['m_name']);
		        $sql2 .= "' AND inventory < " . $miscs[$i]['m_amount'] . " LIMIT 1;";
//			syslog(LOG_NOTICE, $sql2);
			$result2 = mysqli_query($connect, $sql2);
			$ar = mysqli_affected_rows($connect);
			if ($ar == 1) {
				syslog(LOG_NOTICE, "Reduced misc `".$miscs[$i]['m_name']."' to 0");
			} else if ($ar == 0) {
				syslog(LOG_NOTICE, "Reduced misc `".$miscs[$i]['m_name']."' failed");
			}
		}
	}

	$yeasts = json_decode($row['json_yeasts'], true);
	for ($i = 0; $i < count($yeasts); $i++) {

		$sql2  = "UPDATE inventory_yeasts SET inventory = inventory - " . $yeasts[$i]['y_amount'];
		$sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_name']);
	        $sql2 .= "' AND laboratory='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_laboratory']);
		$sql2 .= "' AND product_id='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_product_id']);
	        $sql2 .= "' AND form=" . $yeasts[$i]['y_form'];
		$sql2 .= " AND inventory >= " . $yeasts[$i]['y_amount'] . " LIMIT 1;";
//		syslog(LOG_NOTICE, $sql2);
		$result2 = mysqli_query($connect, $sql2);
		$ar = mysqli_affected_rows($connect);
		if ($ar == 1) {
			syslog(LOG_NOTICE, "Reduced yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' with ".$yeasts[$i]['y_amount']);
		} else if ($ar == 0) {
			$sql2  = "UPDATE inventory_yeasts SET inventory = 0";
			$sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_name']);
		        $sql2 .= "' AND laboratory='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_laboratory']);
			$sql2 .= "' AND product_id='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_product_id']);
		        $sql2 .= "' AND form=" . $yeasts[$i]['y_form'];
			$sql2 .= " AND inventory < " . $yeasts[$i]['y_amount'] . " LIMIT 1;";
//			syslog(LOG_NOTICE, $sql2);
			$result2 = mysqli_query($connect, $sql2);
			$ar = mysqli_affected_rows($connect);
			if ($ar == 1) {
				syslog(LOG_NOTICE, "Reduced yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' to 0");
			} else if ($ar == 0) {
				syslog(LOG_NOTICE, "Reduced yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' failed");
			}
		}
	}

	if ($row['w1_name'] != '') {
		$sql2  = "UPDATE inventory_waters SET inventory = inventory - ".$row['w1_amount'];
		$sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $row['w1_name']);
		$sql2 .= "' AND unlimited_stock=0 AND inventory >= ".$row['w1_amount']." LIMIT 1;";
//		syslog(LOG_NOTICE, $sql2);
		$result2 = mysqli_query($connect, $sql2);
		$ar = mysqli_affected_rows($connect);
		if ($ar == 1) {
			syslog(LOG_NOTICE, "Reduced water `".$row['w1_name']."' with ".$row['w1_amount']." liter");
		} else if ($ar == 0) {
			$sql2  = "UPDATE inventory_waters SET inventory = 0";
			$sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $row['w1_name']);
			$sql2 .= "' AND unlimited_stock=0 AND inventory < ".$row['w1_amount']." LIMIT 1;";
//			syslog(LOG_NOTICE, $sql2);
			$result2 = mysqli_query($connect, $sql2);
			$ar = mysqli_affected_rows($connect);
			if ($ar == 1) {
				syslog(LOG_NOTICE, "Reduced water `".$row['w1_name']."' to 0 liters");
			} else {
				syslog(LOG_NOTICE, "Reduced water `".$row['w1_name']."' failed or tapwater");
			}
		}
	}
	if ($row['w2_name'] != '') {
		$sql2  = "UPDATE inventory_waters SET inventory = inventory - ".$row['w2_amount'];
		$sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $row['w2_name']);
		$sql2 .= "' AND unlimited_stock=0 AND inventory >= ".$row['w2_amount']." LIMIT 1;";
//		syslog(LOG_NOTICE, $sql2);
		$result2 = mysqli_query($connect, $sql2);
		$ar = mysqli_affected_rows($connect);
		if ($ar == 1) {
			syslog(LOG_NOTICE, "Reduced water `".$row['w2_name']."' with ".$row['w2_amount']." liter");
		} else if ($ar == 0) {
			$sql2  = "UPDATE inventory_waters SET inventory = 0";
			$sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $row['w2_name']);
			$sql2 .= "' AND unlimited_stock=0 AND inventory < ".$row['w2_amount']." LIMIT 1;";
//			syslog(LOG_NOTICE, $sql2);
			$result2 = mysqli_query($connect, $sql2);
			$ar = mysqli_affected_rows($connect);
			if ($ar == 1) {
				syslog(LOG_NOTICE, "Reduced water `".$row['w2_name']."' to 0 liters");
			} else {
				syslog(LOG_NOTICE, "Reduced water `".$row['w2_name']."' failed or tapwater");
			}
		}
	}
	
	syslog(LOG_NOTICE, "Finished reducing inventory from ". $row['code'].' '.$row['name']);
	mysqli_free_result($result1);

	$sql1 = "UPDATE products SET inventory_reduced=1 WHERE uuid = '" . $_POST['uuid'] . "';";
	//syslog(LOG_NOTICE, $sql1);
	$result1 = mysqli_query($connect, $sql1);
	$ar = mysqli_affected_rows($connect);
}

exit(0);

mercurial