Thu, 28 Feb 2019 22:50:58 +0100
Added product export screen with choices to export to beerxml, duplicate product or copy to recipe. Products in wait state can now be deleted.
<?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);