www/prod_reduce.php

Tue, 26 Feb 2019 16:18:16 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Tue, 26 Feb 2019 16:18:16 +0100
changeset 296
69fadd1aded2
parent 273
19606adfea42
child 323
889cddd84450
permissions
-rw-r--r--

Updated design document. Add content header application/json to all scripts that produce json output. Chart prints show the beer code and name in the header. Charts don't display the menu anymore.

<?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