www/prod_reduce.php

changeset 273
19606adfea42
child 323
889cddd84450
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/prod_reduce.php	Wed Feb 13 20:28:54 2019 +0100
@@ -0,0 +1,211 @@
+<?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