Unit/amount complete.
This commit is contained in:
parent
5b81de7484
commit
34eb2ba9bf
@ -26,11 +26,19 @@
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_GET['command']) && $_GET['command'] == "printProductList" || $_GET['command'] == "printRhasspyProductList")
|
||||
if(isset($_GET['command']))
|
||||
{
|
||||
if($_GET['command'] == "printProductList" || $_GET['command'] == "printRhasspyProductList")
|
||||
{
|
||||
displayProductList();
|
||||
exit(0);
|
||||
}
|
||||
else if($_GET['command'] == "printUnitList")
|
||||
{
|
||||
displayUnitList();
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@ -95,12 +103,16 @@
|
||||
{
|
||||
case "addToList":
|
||||
$productId = $_POST['productToAdd'];
|
||||
addToList($productId);
|
||||
$amount = $_POST['amountToAdd'];
|
||||
$unitId = $_POST['unitToAdd'];
|
||||
addToList($productId, $amount, $unitId);
|
||||
break;
|
||||
case "removeFromList":
|
||||
$productId = $_POST['productToRemove'];
|
||||
$listId = $_POST['listId'];
|
||||
removeFromList($productId, $listId);
|
||||
$amount = $_POST['productAmountToRemove'];
|
||||
$unit = $_POST['productUnitToRemove'];
|
||||
removeFromList($productId, $listId, $amount, $unit);
|
||||
break;
|
||||
case "displayShoppingList":
|
||||
displayShoppingList();
|
||||
@ -139,16 +151,29 @@
|
||||
mysqli_close(DBLink::getDbLink());
|
||||
|
||||
|
||||
function addToList($productId)
|
||||
function createList()
|
||||
{
|
||||
if($productId > 0)
|
||||
$SQL_command = "INSERT INTO `lists` (creationTime) VALUES (".round(microtime(true) * 1000).")";
|
||||
if (DBLink::getDbLink()->query($SQL_command))
|
||||
{
|
||||
$SQL_command;
|
||||
echo "List created.<br>";
|
||||
return true;
|
||||
}
|
||||
|
||||
if(oneListExists())
|
||||
$SQL_command = "INSERT IGNORE INTO listEntries (listId, productId) VALUES ((SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1), ".$productId.")";
|
||||
else
|
||||
$SQL_command = "INSERT IGNORE INTO listEntries (listId, productId) VALUES ((INSERT INTO `lists` (creationTime) VALUES (".round(microtime(true) * 1000).") RETURN @id, ".$productId."))";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
function addToList($productId, $amount, $unitId)
|
||||
{
|
||||
if($productId > 0 && $amount != 0 && isset($unitId) && strlen($unitId) > 0)
|
||||
{
|
||||
if(!oneListExists())
|
||||
createList();
|
||||
|
||||
if(!entryCombinationExists($productId, $unitId))
|
||||
{
|
||||
$SQL_command = "INSERT IGNORE INTO listEntries (listId, productId, amount, unit) VALUES ((SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1), ".$productId.", ".$amount.", ".$unitId.")";
|
||||
|
||||
if (DBLink::getDbLink()->query($SQL_command))
|
||||
echo "Product added to list.<br>";
|
||||
@ -156,17 +181,49 @@
|
||||
echo "Product could not be added to list.<br>";
|
||||
}
|
||||
else
|
||||
echo "Select a product.";
|
||||
{
|
||||
/*
|
||||
update command that adds the amount to the already existing amount
|
||||
if amount is negative -> subtract from existing amount. if resulting amount <= 0 ->
|
||||
*/
|
||||
|
||||
$SQL_command = "SELECT amount FROM listEntries WHERE listId=(SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1) AND productId=".$productId." AND unit=".$unitId;
|
||||
|
||||
$mysqli_result = DBLink::getDbLink()->query($SQL_command);
|
||||
if ($row = mysqli_fetch_object($mysqli_result))
|
||||
{
|
||||
if($row->amount + $amount > 0)
|
||||
{
|
||||
$SQL_command = "UPDATE listEntries set amount=".($row->amount + $amount)." WHERE listId=(SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1) AND productId=".$productId." AND unit=".$unitId;
|
||||
|
||||
if (DBLink::getDbLink()->query($SQL_command))
|
||||
echo "Product added to existing entry on list.<br>";
|
||||
else
|
||||
echo "Product could not be added to existing entry on list.<br>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$SQL_command = "DELETE FROM listEntries WHERE listId=(SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1) AND productId=".$productId." AND unit=".$unitId;
|
||||
if (DBLink::getDbLink()->query($SQL_command))
|
||||
echo "Product removed from list as too many pieces of this item have been removed.<br>";
|
||||
else
|
||||
echo "Product could not be removed from list (too many pieces of this itme have been removed).<br>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
echo "Specifiy product, amount and unit.";
|
||||
}
|
||||
|
||||
|
||||
function removeFromList($productId, $listId)
|
||||
function removeFromList($productId, $listId, $amount, $unitId)
|
||||
{
|
||||
if($productId > 0)
|
||||
if($productId > 0 && $amount != null && $unitId > 0)
|
||||
{
|
||||
if(oneListExists())
|
||||
{
|
||||
$SQL_command = "DELETE FROM listEntries WHERE listId=".$listId." AND productId=".$productId;
|
||||
$SQL_command = "DELETE FROM listEntries WHERE listId=".$listId." AND productId=".$productId." AND amount=".$amount." AND unit=".$unitId;
|
||||
|
||||
if (DBLink::getDbLink()->query($SQL_command))
|
||||
echo "Product removed from list.<br>";
|
||||
@ -179,6 +236,21 @@
|
||||
}
|
||||
|
||||
|
||||
function entryCombinationExists($productId, $unitId)
|
||||
{
|
||||
$SQL_command = "SELECT COUNT(listId) as entryAmount FROM listEntries WHERE listId=(SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1) AND productId=".$productId." AND unit=".$unitId;
|
||||
|
||||
$mysqli_result = DBLink::getDbLink()->query($SQL_command);
|
||||
if ($row = mysqli_fetch_object($mysqli_result))
|
||||
{
|
||||
if($row->entryAmount > 0)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
function oneListExists()
|
||||
{
|
||||
$SQL_command = "SELECT COUNT(id) as listAmount FROM lists";
|
||||
@ -207,7 +279,9 @@
|
||||
|
||||
function displayShoppingList($listId, $justCreatedProductId)
|
||||
{
|
||||
echo " <form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">
|
||||
echo " <h2>Shopping list</h2>
|
||||
|
||||
<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">
|
||||
<input type=\"hidden\" id=\"command\" name=\"command\" value=\"addToList\" />
|
||||
<select name=\"productToAdd\" id=\"productToAdd\">
|
||||
<option value=\"0\">Select product to add</option>
|
||||
@ -225,6 +299,27 @@
|
||||
echo "<option value=\"".$row->id."\">".$row->name."</option>";
|
||||
}
|
||||
|
||||
echo " </select>
|
||||
|
||||
<input type=\"number\" step=\"any\" id=\"amountToAdd\" name=\"amountToAdd\" value=\"1.0\" />
|
||||
|
||||
<select name=\"unitToAdd\" id=\"unitToAdd\">
|
||||
<option value=\"0\">Select unit to add</option>
|
||||
";
|
||||
|
||||
$SQL_command = "SELECT * FROM `units` ORDER BY name ASC";
|
||||
$mysqli_result = DBLink::getDbLink()->query($SQL_command);
|
||||
while ($row = mysqli_fetch_object($mysqli_result))
|
||||
{
|
||||
$currentId = (int)$row->id;
|
||||
$unitArray = explode(";", $row->name);
|
||||
|
||||
if($row->isDefault == 1 || (isset($justCreatedUnitId) && $justCreatedUnitId === $currentId))
|
||||
echo "<option value=\"".$row->id."\" selected>".$unitArray[0]."</option>";
|
||||
else
|
||||
echo "<option value=\"".$row->id."\">".$unitArray[0]."</option>";
|
||||
}
|
||||
|
||||
echo " </select>
|
||||
<input type=\"submit\" value=\"add\" />
|
||||
</form>";
|
||||
@ -260,47 +355,70 @@
|
||||
echo "<br />";
|
||||
}
|
||||
|
||||
$SQL_command = "SELECT * FROM listEntries INNER JOIN products ON listEntries.productId=products.id INNER JOIN storeTypes ON products.storeTypeId = storeTypes.id WHERE listEntries.listId=".$listId." ORDER BY storeTypes.name, products.name ASC";
|
||||
$SQL_command = "SELECT * FROM listEntries
|
||||
INNER JOIN products ON listEntries.productId=products.id
|
||||
INNER JOIN storeTypes ON products.storeTypeId = storeTypes.id
|
||||
INNER JOIN units ON units.id = listEntries.unit
|
||||
WHERE listEntries.listId=".$listId." ORDER BY storeTypes.name, products.name ASC";
|
||||
|
||||
$mysqli_result = DBLink::getDbLink()->query($SQL_command);
|
||||
|
||||
$lastShop="";
|
||||
|
||||
$found = false;
|
||||
while ($row = mysqli_fetch_array($mysqli_result))
|
||||
{
|
||||
if(isset($lastShop) && $lastShop != "" && $row[7] != $lastShop)
|
||||
if(!$found)
|
||||
$found = true;
|
||||
|
||||
if(isset($lastShop) && $lastShop != "" && $row[9] != $lastShop)
|
||||
echo "</table>";
|
||||
|
||||
if(!isset($lastShop) || $row[7] != $lastShop)
|
||||
if(!isset($lastShop) || $row[9] != $lastShop)
|
||||
{
|
||||
$lastShop = $row[7];
|
||||
$lastShop = $row[9];
|
||||
echo $lastShop."<br>================";
|
||||
echo "<table border=\"0\">";
|
||||
}
|
||||
|
||||
echo "<tr>
|
||||
<td style=\"vertical-align:top;\">".$row[3]."</td>
|
||||
echo "<tr>";
|
||||
|
||||
if($row[14] == 1)
|
||||
echo "<td style=\"vertical-align:top;\" colspan=\"3\">".$row[5]."</td>";
|
||||
else
|
||||
echo "
|
||||
<td style=\"vertical-align:top;\">".$row[2]."</td>
|
||||
<td style=\"vertical-align:top;\">".$row[12]."</td>
|
||||
<td style=\"vertical-align:top;\">".$row[5]."</td>";
|
||||
|
||||
echo "
|
||||
<td style=\"vertical-align:top;\">
|
||||
<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">
|
||||
<input type=\"hidden\" id=\"command\" name=\"command\" value=\"removeFromList\" />
|
||||
<input type=\"hidden\" id=\"listId\" name=\"listId\" value=\"".$listId."\" />
|
||||
<input type=\"hidden\" id=\"productToRemove\" name=\"productToRemove\" value=\"".$row[1]."\" />
|
||||
<input type=\"hidden\" id=\"productAmountToRemove\" name=\"productAmountToRemove\" value=\"".$row[2]."\" />
|
||||
<input type=\"hidden\" id=\"productUnitToRemove\" name=\"productUnitToRemove\" value=\"".$row[10]."\" />
|
||||
<input class=\"smallButton\" type=\"submit\" value=\"remove\" />
|
||||
</form>
|
||||
</td>
|
||||
</tr>";
|
||||
}
|
||||
|
||||
if($found)
|
||||
echo "</table>";
|
||||
else
|
||||
echo "<i>No entries in this list, yet.</i>";
|
||||
}
|
||||
else
|
||||
echo "No list exists, yet.";
|
||||
echo "<i>No list exists, yet.</i>";
|
||||
}
|
||||
|
||||
function showDataMaintenance()
|
||||
{
|
||||
echo "<hr />";
|
||||
|
||||
echo " <h2>Data maintenance</h3>
|
||||
echo " <h2>Data maintenance</h2>
|
||||
|
||||
<h3>Create new list</h3>
|
||||
|
||||
@ -389,6 +507,33 @@
|
||||
}
|
||||
|
||||
|
||||
function displayUnitList()
|
||||
{
|
||||
$SQL_Befehl = "SELECT name FROM units ORDER BY name ASC";
|
||||
|
||||
$mysqli_result = DBLink::getDbLink()->query($SQL_Befehl);
|
||||
|
||||
$lastShop="";
|
||||
|
||||
while ($row = mysqli_fetch_object($mysqli_result))
|
||||
{
|
||||
$unitArray = explode(";", $row->name);
|
||||
if(count($unitArray) == 1)
|
||||
echo $unitArray[0]."\n";
|
||||
else
|
||||
{
|
||||
$tbp = "";
|
||||
for($i=1; $i<count($unitArray); $i++)
|
||||
$tbp .= $unitArray[$i]."|";
|
||||
|
||||
$tbp = trim($tbp, "|");
|
||||
|
||||
echo "(".$tbp."):".$unitArray[0]."\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function createNewShoppingList()
|
||||
{
|
||||
$date = new DateTime();
|
||||
|
@ -1,12 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
SHOPPINGITEM=""
|
||||
AMOUNT=""
|
||||
UNIT=""
|
||||
SITEID=""
|
||||
PARAMS=""
|
||||
SESSIONID=""
|
||||
|
||||
while (( "$#" )); do
|
||||
case "$1" in
|
||||
--shoppingAmount)
|
||||
if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
|
||||
AMOUNT=$2
|
||||
shift 2
|
||||
else
|
||||
echo "Error: Argument for $1 is missing" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
--shoppingUnit)
|
||||
if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
|
||||
UNIT=$2
|
||||
shift 2
|
||||
else
|
||||
echo "Error: Argument for $1 is missing" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
--shoppingProduct)
|
||||
if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
|
||||
SHOPPINGITEM=$2
|
||||
@ -53,7 +73,21 @@ then
|
||||
echo "Was soll ich auf die Liste setzen?"
|
||||
exit 1
|
||||
else
|
||||
lengthAmount=${#AMOUNT}
|
||||
lengthUnit=${#UNIT}
|
||||
|
||||
if [ $lengthAmount -gt 0 ]
|
||||
then
|
||||
if [ $lengthUnit -gt 0 ]
|
||||
then
|
||||
java -jar /home/pi/hc_scripts/ShoppingList.jar --action addToList --shoppingAmount $AMOUNT --shoppingUnit $UNIT --shoppingProduct $SHOPPINGITEM
|
||||
else
|
||||
java -jar /home/pi/hc_scripts/ShoppingList.jar --action addToList --shoppingAmount $AMOUNT --shoppingProduct $SHOPPINGITEM
|
||||
fi
|
||||
else
|
||||
java -jar /home/pi/hc_scripts/ShoppingList.jar --action addToList --shoppingProduct $SHOPPINGITEM
|
||||
fi
|
||||
|
||||
if [ "$?" -eq "0" ]
|
||||
then
|
||||
exit 0
|
||||
|
@ -1,12 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
SHOPPINGITEM=""
|
||||
AMOUNT=""
|
||||
UNIT=""
|
||||
SITEID=""
|
||||
PARAMS=""
|
||||
SESSIONID=""
|
||||
|
||||
while (( "$#" )); do
|
||||
case "$1" in
|
||||
--shoppingAmount)
|
||||
if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
|
||||
AMOUNT=$2
|
||||
shift 2
|
||||
else
|
||||
echo "Error: Argument for $1 is missing" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
--shoppingUnit)
|
||||
if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
|
||||
UNIT=$2
|
||||
shift 2
|
||||
else
|
||||
echo "Error: Argument for $1 is missing" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
--shoppingProduct)
|
||||
if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
|
||||
SHOPPINGITEM=$2
|
||||
@ -53,7 +73,21 @@ then
|
||||
echo "Was soll ich von der Liste streichen?"
|
||||
exit 1
|
||||
else
|
||||
lengthAmount=${#AMOUNT}
|
||||
lengthUnit=${#UNIT}
|
||||
|
||||
if [ $lengthAmount -gt 0 ]
|
||||
then
|
||||
if [ $lengthUnit -gt 0 ]
|
||||
then
|
||||
java -jar /home/pi/hc_scripts/ShoppingList.jar --action removeFromList --shoppingAmount $AMOUNT --shoppingUnit $UNIT --shoppingProduct $SHOPPINGITEM
|
||||
else
|
||||
java -jar /home/pi/hc_scripts/ShoppingList.jar --action removeFromList --shoppingAmount $AMOUNT --shoppingProduct $SHOPPINGITEM
|
||||
fi
|
||||
else
|
||||
java -jar /home/pi/hc_scripts/ShoppingList.jar --action removeFromList --shoppingProduct $SHOPPINGITEM
|
||||
fi
|
||||
|
||||
if [ "$?" -eq "0" ]
|
||||
then
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user