diff --git a/phpInterface/shoppingList.php b/phpInterface/shoppingList.php index 40cf295..6803929 100644 --- a/phpInterface/shoppingList.php +++ b/phpInterface/shoppingList.php @@ -1,245 +1,457 @@ - - - Shopping list - - - "; - - $command = $_POST['command']; - - if(isset($command)) - { - switch($command) - { - case "addToList": - $productId = $_POST['productToAdd']; - addToList($productId); - break; - case "removeFromList": - $productId = $_POST['productToRemove']; - removeFromList($productId); - break; - case "displayShoppingList": - displayShoppingList(); - break; - case "createNewShoppingList": - createNewShoppingList(); - break; - } - } - - displayShoppingList(); - - echo ""; - - mysqli_close(DBLink::getDbLink()); - - - - function addToList($productId) - { - if($productId > 0) - { - $SQL_command; - - 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."))"; - - if (DBLink::getDbLink()->query($SQL_command)) - echo "Product added to list.
"; - else - echo "Product could not be added to list.
"; - } - else - echo "Select a product."; - } - - - function removeFromList($productId) - { - if($productId > 0) - { - if(oneListExists()) - { - $SQL_command = "DELETE FROM listEntries WHERE listId=(SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1) AND productId=".$productId; - - if (DBLink::getDbLink()->query($SQL_command)) - echo "Product removed from list.
"; - else - echo "Product could not be removed from list.
"; - } - } - else - echo "Select a product."; - } - - - function oneListExists() - { - $SQL_command = "SELECT COUNT(id) as listAmount FROM lists"; - $mysqli_result = DBLink::getDbLink()->query($SQL_command); - if ($row = mysqli_fetch_object($mysqli_result)) - { - if($row->listAmount > 0) - return true; - } - - return false; - } - - - function displayShoppingList() - { - echo "
- - -
"; - - - echo "
- - - -
"; - - if(oneListExists()) - { - $SQL_command = "SELECT * FROM lists ORDER BY creationTime DESC LIMIT 0,1"; - - $mysqli_result = DBLink::getDbLink()->query($SQL_command); - - if ($row = mysqli_fetch_object($mysqli_result)) - { - echo "List created on ".date("l, d.m.Y", ($row->creationTime)/1000)." at ".date("G:i:s", ($row->creationTime)/1000)."
"; - - if(isset($row->comment) && strlen($row->comment) > 0) - echo "".$row->comment."
"; - - echo "
"; - } - - $SQL_command = "SELECT * FROM listEntries INNER JOIN products ON listEntries.productId=products.id INNER JOIN storeTypes ON products.storeTypeId = storeTypes.id WHERE listEntries.listId=(SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1) ORDER BY storeTypes.name, products.name ASC"; - - $mysqli_result = DBLink::getDbLink()->query($SQL_command); - - $lastShop=""; - - while ($row = mysqli_fetch_array($mysqli_result)) - { - if(isset($lastShop) && $lastShop != "" && $row[7] != $lastShop) - echo ""; - - if(!isset($lastShop) || $row[7] != $lastShop) - { - $lastShop = $row[7]; - echo $lastShop."
================"; - echo ""; - } - - echo " - - - "; - } - echo "
".$row[3]." -
- - - -
-
"; - } - else - echo "No list exists, yet."; - } - - - function displayProductList() - { - $SQL_Befehl = "SELECT name, synonyms FROM products ORDER BY products.name ASC"; - - $mysqli_result = DBLink::getDbLink()->query($SQL_Befehl); - - $lastShop=""; - - while ($row = mysqli_fetch_array($mysqli_result)) - { - if(is_null($row[1])) - echo $row[0]."\n"; - else - echo "(".str_replace(";", "|", $row[1])."|".$row[0]."):".$row[0]."\n"; - } - } - - - function createNewShoppingList() - { - $date = new DateTime(); - - $SQL_command = "INSERT INTO lists (creationTime) VALUES (".($date->getTimestamp() * 1000).")"; - - if (DBLink::getDbLink()->query($SQL_command)) - echo "New list has been created.
"; - else - echo "Error creating new list.
"; - } - + + + + + Shopping list + + + + + + + + + 0) + $justCreatedProductId = $rc; + break; + case "oldList": + $listId = $_POST['oldListId']; + $subCommand = $_POST['bSubmit']; + if($subCommand == "remove") + { + removeShoppingList($listId); + $listId = null; + } + break; + case "trainRhasspy": + echo "Triggering training in Rhasspy has not been implemented, yet."; + break; + } + } + + displayShoppingList($listId, $justCreatedProductId); + + showDataMaintenance(); + + echo ""; + + mysqli_close(DBLink::getDbLink()); + + + function addToList($productId) + { + if($productId > 0) + { + $SQL_command; + + 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."))"; + + if (DBLink::getDbLink()->query($SQL_command)) + echo "Product added to list.
"; + else + echo "Product could not be added to list.
"; + } + else + echo "Select a product."; + } + + + function removeFromList($productId, $listId) + { + if($productId > 0) + { + if(oneListExists()) + { + $SQL_command = "DELETE FROM listEntries WHERE listId=".$listId." AND productId=".$productId; + + if (DBLink::getDbLink()->query($SQL_command)) + echo "Product removed from list.
"; + else + echo "Product could not be removed from list.
"; + } + } + else + echo "Select a product."; + } + + + function oneListExists() + { + $SQL_command = "SELECT COUNT(id) as listAmount FROM lists"; + $mysqli_result = DBLink::getDbLink()->query($SQL_command); + if ($row = mysqli_fetch_object($mysqli_result)) + { + if($row->listAmount > 0) + return true; + } + + return false; + } + + function twoListsExist() + { + $SQL_command = "SELECT COUNT(id) as listAmount FROM lists"; + $mysqli_result = DBLink::getDbLink()->query($SQL_command); + if ($row = mysqli_fetch_object($mysqli_result)) + { + if($row->listAmount > 1) + return true; + } + + return false; + } + + function displayShoppingList($listId, $justCreatedProductId) + { + echo "
+ + + +
"; + + if(oneListExists()) + { + $list_SQL_command; + + if(isset($listId)) + { + $list_SQL_command = "SELECT * FROM lists WHERE id=".$listId; + } + else + { + $list_SQL_command = "SELECT * FROM lists ORDER BY creationTime DESC LIMIT 0,1"; + + $SQL_command_listId = "SELECT id FROM lists ORDER BY creationTime DESC LIMIT 0,1"; + + $mysqli_result = DBLink::getDbLink()->query($SQL_command_listId); + if ($row = mysqli_fetch_object($mysqli_result)) + $listId = $row->id; + } + + $mysqli_result = DBLink::getDbLink()->query($list_SQL_command); + + if ($row = mysqli_fetch_object($mysqli_result)) + { + echo "List created on ".date("l, d.m.Y", ($row->creationTime)/1000)." at ".date("G:i:s", ($row->creationTime)/1000)."
"; + + if(isset($row->comment) && strlen($row->comment) > 0) + echo "".$row->comment."
"; + + echo "
"; + } + + $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"; + + $mysqli_result = DBLink::getDbLink()->query($SQL_command); + + $lastShop=""; + + while ($row = mysqli_fetch_array($mysqli_result)) + { + if(isset($lastShop) && $lastShop != "" && $row[7] != $lastShop) + echo ""; + + if(!isset($lastShop) || $row[7] != $lastShop) + { + $lastShop = $row[7]; + echo $lastShop."
================"; + echo ""; + } + + echo " + + + "; + } + echo "
".$row[3]." +
+ + + + +
+
"; + } + else + echo "No list exists, yet."; + } + + function showDataMaintenance() + { + echo "
"; + + echo "

Data maintenance

+ +

Create new list

+ +
+ + +
+ +

Create new product

+ +
+ + + + + + +
+ You can enter synonyms. Separate all terms with semikolons."; + + if(twoListsExist()) + { + $SQL_command = "SELECT * FROM lists ORDER BY creationTime DESC"; + + $mysqli_result = DBLink::getDbLink()->query($SQL_command); + + echo "

Show specific list

"; + + echo "
+ + + + + +
"; + } + + echo "

Train Rhasspy

+ +
+ + +
"; + } + + + function displayProductList() + { + $SQL_Befehl = "SELECT name, synonyms FROM products ORDER BY products.name ASC"; + + $mysqli_result = DBLink::getDbLink()->query($SQL_Befehl); + + $lastShop=""; + + while ($row = mysqli_fetch_array($mysqli_result)) + { + if(is_null($row[1])) + echo $row[0]."\n"; + else + echo "(".str_replace(";", "|", $row[1])."|".$row[0]."):".$row[0]."\n"; + } + } + + + function createNewShoppingList() + { + $date = new DateTime(); + + $SQL_command = "INSERT INTO lists (creationTime) VALUES (".($date->getTimestamp() * 1000).")"; + + if (DBLink::getDbLink()->query($SQL_command)) + echo "New list has been created.
"; + else + echo "Error creating new list.
"; + } + + function removeShoppingList($listId) + { + $date = new DateTime(); + + $SQL_command = "DELETE FROM lists WHERE id=".$listId; + + if (DBLink::getDbLink()->query($SQL_command)) + echo "List has been deleted.
"; + else + echo "Error deleting list.
"; + } + + + function createProduct($productNames, $storeTypeId) + { + $date = new DateTime(); + + $SQL_command; + + if(strpos($productNames, ";") !== false) + { + $terms = explode(";", $productNames); + $mainName = $terms[0]; + + $syns = ""; + for($i=1; $i 0) + $syns .= ";".$currentWord; + } + + $syns = ltrim($syns, ';'); + } + + if(strlen($syns) > 0) + $SQL_command = "INSERT INTO products (name, synonyms, storeTypeId) VALUES (\"".$mainName."\", \"".$syns."\",".$storeTypeId.")"; + else + $SQL_command = "INSERT INTO products (name, storeTypeId) VALUES (\"".$productNames."\", ".$storeTypeId.")"; + + + if (DBLink::getDbLink()->query($SQL_command)) + { + echo "New product has been created.
"; + return DBLink::getDbLink()->insert_id; + } + else + echo "Error creating new product.
"; + + return -1; + } + ?> \ No newline at end of file