Thu, 20 Jun 2019 13:55:12 +0200
Added packaging volume and add water or liquer to the beer after fermentation. Auto divide changing volumes between bottles and fusts. Upgrade the database in the crontask. Added these fields to the packaging tab screen.
<?php require($_SERVER['DOCUMENT_ROOT']."/config.php"); require($_SERVER['DOCUMENT_ROOT']."/version.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" ); $escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c"); $replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b"); $rescapers = array("'"); $rreplacements = array("\\'"); if (isset($_POST['insert']) || isset($_POST['update'])) { if (isset($_POST['insert'])) { $sql = "INSERT INTO `profile_fermentation` SET "; } if (isset($_POST['update'])) { $sql = "UPDATE `profile_fermentation` SET "; } if (isset($_POST['uuid']) && (strlen($_POST['uuid']) == 36)) { $sql .= "uuid='" . $_POST['uuid']; } else { $uuid = str_replace("\n", "", file_get_contents('/proc/sys/kernel/random/uuid')); $sql .= "uuid='" . $uuid; } $sql .= "', name='" . mysqli_real_escape_string($connect, $_POST['name']); $sql .= "', inittemp_lo='" . floatval($_POST['inittemp_lo']); $sql .= "', inittemp_hi='" . floatval($_POST['inittemp_hi']); ($_POST['fridgemode'] == 'true') ? $sql .= "', fridgemode='1" : $sql .= "', fridgemode='0"; $array = $_POST['steps']; // Don't believe given duration and number of steps, recalculate. $duration = 0; $totalsteps = 0; $steps = '['; foreach($array as $key => $item) { if ($totalsteps > 0) $steps.= ','; $totalsteps++; $duration += $item['steptime'] + $item['resttime']; $steps .= '{"name":"' . str_replace($rescapers,$rreplacements,$item['name']); $steps .= '","steptime":' . $item['steptime']; $steps .= ',"resttime":' . $item['resttime']; $steps .= ',"target_lo":' . $item['target_lo']; $steps .= ',"target_hi":' . $item['target_hi']; $steps .= ',"fridgemode":' . $item['fridgemode'] . '}'; } $steps .= ']'; $sql .= "', totalsteps='" . $totalsteps; $sql .= "', duration='" . $duration; syslog(LOG_NOTICE, $steps); $sql .= "', steps='" . str_replace($rescapers,$rreplacements,json_encode($array)); if (isset($_POST['insert'])) { $sql .= "';"; } if (isset($_POST['update'])) { $sql .= "' WHERE record='" . $_POST['record'] . "';"; } syslog(LOG_NOTICE, $sql); $result = mysqli_query($connect, $sql); if (! $result) { syslog(LOG_NOTICE, "db_profile_fermentation: ".$sql." result: ".mysqli_error($connect)); } else { if (isset($_POST['update'])) { syslog(LOG_NOTICE, "db_profile_fermentation: updated record ".$_POST['record']); } else { $lastid = mysqli_insert_id($connect); syslog(LOG_NOTICE, "db_profile_fermentation: inserted record ".$lastid); } } echo $result; } else if (isset($_POST['delete'])) { // DELETE COMMAND $sql = "DELETE FROM `profile_fermentation` WHERE record='".$_POST['record']."';"; $result = mysqli_query($connect, $sql); if (! $result) { syslog(LOG_NOTICE, "db_profile_fermentation: ".$sql." result: ".mysqli_error($connect)); } else { syslog(LOG_NOTICE, "db_profile_fermentation: deleted record ".$_POST['record']); } echo $result; } else { // SELECT COMMAND $query = "SELECT * FROM profile_fermentation ORDER BY name;"; $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); $profiles = '['; $comma = FALSE; while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { // Manual encode to JSON. if ($comma) { $profiles .= ','; } $comma = TRUE; $profiles .= '{"record":' . $row['record']; $profiles .= ',"uuid":"' . $row['uuid']; $profiles .= '","name":"' . str_replace($escapers, $replacements, $row['name']); $profiles .= '","inittemp_lo":' . $row['inittemp_lo']; $profiles .= ',"inittemp_hi":' . $row['inittemp_hi']; $profiles .= ',"fridgemode":' . $row['fridgemode']; $profiles .= ',"totalsteps":' . $row['totalsteps']; $profiles .= ',"duration":' . $row['duration']; $profiles .= ',"steps":' . $row['steps']; $profiles .= '}'; } $profiles .= ']'; // syslog(LOG_NOTICE, $profiles); header("Content-type: application/json"); echo $profiles; } ?>