Merge branch 'development' of
https://git.server47.de/jens/ShoppingList.git into development Conflicts: phpInterface/shoppingList.php
This commit is contained in:
		@@ -173,7 +173,7 @@ public class ShoppingList
 | 
			
		||||
        return resultList;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public boolean send()
 | 
			
		||||
	public boolean sendViaEmail()
 | 
			
		||||
	{
 | 
			
		||||
		StringBuilder shoppingListString = new StringBuilder();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -58,7 +58,10 @@ public class ShoppingListEntry
 | 
			
		||||
		PreparedStatement preparedStmt = null;
 | 
			
		||||
		Connection conn = null;
 | 
			
		||||
		try
 | 
			
		||||
		{
 | 
			
		||||
		{			
 | 
			
		||||
			if(amount <= 0 && unit != null && !unit.isDummy)
 | 
			
		||||
				return false;
 | 
			
		||||
			
 | 
			
		||||
			conn = DatabaseHandler.getInstance().getConnection();
 | 
			
		||||
			
 | 
			
		||||
			if(!combinationExists(this.getParentList(), this.getProduct(), this.getUnit()))
 | 
			
		||||
@@ -85,7 +88,7 @@ public class ShoppingListEntry
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				return updateAmount();
 | 
			
		||||
				return updateAmount(false);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		catch(Exception e)
 | 
			
		||||
@@ -112,7 +115,10 @@ public class ShoppingListEntry
 | 
			
		||||
		PreparedStatement preparedStmt = null;
 | 
			
		||||
		Connection conn = null;
 | 
			
		||||
		try
 | 
			
		||||
		{
 | 
			
		||||
		{			
 | 
			
		||||
			if(amount <= 0 && unit != null && !unit.isDummy)
 | 
			
		||||
				return false;
 | 
			
		||||
			
 | 
			
		||||
			conn = DatabaseHandler.getInstance().getConnection();
 | 
			
		||||
			
 | 
			
		||||
			if(this.getAmount() == 0 || this.getUnit().isDummy())
 | 
			
		||||
@@ -127,7 +133,7 @@ public class ShoppingListEntry
 | 
			
		||||
				
 | 
			
		||||
				long numAffectedRows = preparedStmt.executeUpdate();
 | 
			
		||||
			    Miscellaneous.logEvent("AMOUNT OF UPDATED ROWS: " + numAffectedRows, 5);
 | 
			
		||||
			    ResultSet rs = preparedStmt.getGeneratedKeys();
 | 
			
		||||
//			    ResultSet rs = preparedStmt.getGeneratedKeys();
 | 
			
		||||
	//		    if (numAffectedRows > 0)
 | 
			
		||||
	//		    {
 | 
			
		||||
					preparedStmt.close();
 | 
			
		||||
@@ -137,7 +143,9 @@ public class ShoppingListEntry
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				if(combinationExists(this.getParentList(), this.getProduct(), this.getUnit()))
 | 
			
		||||
					return updateAmount();
 | 
			
		||||
					return updateAmount(true);
 | 
			
		||||
				else
 | 
			
		||||
					return true;	// Combination to be deleted does not exist. So what?
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		catch(Exception e)
 | 
			
		||||
@@ -159,7 +167,7 @@ public class ShoppingListEntry
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	protected boolean updateAmount()
 | 
			
		||||
	protected boolean updateAmount(boolean delete)
 | 
			
		||||
	{
 | 
			
		||||
		String query = "SELECT * FROM listEntries WHERE listId=? AND productId=? AND unit=?";
 | 
			
		||||
		
 | 
			
		||||
@@ -179,13 +187,22 @@ public class ShoppingListEntry
 | 
			
		||||
	        if(res.next())
 | 
			
		||||
	        {
 | 
			
		||||
	        	float currentAmount = res.getFloat("amount");
 | 
			
		||||
	        	if(currentAmount + this.getAmount() > 0)
 | 
			
		||||
	        	
 | 
			
		||||
	        	boolean condition = true;
 | 
			
		||||
	        	if(delete)
 | 
			
		||||
	        		condition = currentAmount - this.getAmount() > 0;
 | 
			
		||||
	        		
 | 
			
		||||
	        	if(condition)
 | 
			
		||||
	        	{
 | 
			
		||||
	        		// Update the amount
 | 
			
		||||
	        		String updateQuery  = "UPDATE listEntries set amount=? WHERE listId=? AND productId=? AND unit=?";
 | 
			
		||||
					preparedStmt = conn.prepareStatement(updateQuery);
 | 
			
		||||
					
 | 
			
		||||
					preparedStmt.setFloat(1, currentAmount + this.getAmount());
 | 
			
		||||
					if(delete)
 | 
			
		||||
						preparedStmt.setFloat(1, currentAmount - this.getAmount());
 | 
			
		||||
					else
 | 
			
		||||
						preparedStmt.setFloat(1, currentAmount + this.getAmount());
 | 
			
		||||
 | 
			
		||||
					preparedStmt.setLong(2, this.getParentList().getId());
 | 
			
		||||
					preparedStmt.setLong(3, this.getProduct().getId());
 | 
			
		||||
					preparedStmt.setLong(4, this.getUnit().getId());
 | 
			
		||||
@@ -209,7 +226,7 @@ public class ShoppingListEntry
 | 
			
		||||
	        		String updateQuery  = "DELETE FROM listEntries WHERE listId=? AND productId=? AND unit=?";
 | 
			
		||||
					preparedStmt = conn.prepareStatement(updateQuery);
 | 
			
		||||
					
 | 
			
		||||
					preparedStmt.setLong(1, this.getProduct().getId());
 | 
			
		||||
					preparedStmt.setLong(1, this.getParentList().getId());
 | 
			
		||||
					preparedStmt.setLong(2, this.getProduct().getId());
 | 
			
		||||
					preparedStmt.setLong(3, this.getUnit().getId());
 | 
			
		||||
		
 | 
			
		||||
@@ -225,6 +242,8 @@ public class ShoppingListEntry
 | 
			
		||||
						preparedStmt.close();
 | 
			
		||||
						return true;
 | 
			
		||||
				    }
 | 
			
		||||
				    else
 | 
			
		||||
						preparedStmt.close();
 | 
			
		||||
	        	}
 | 
			
		||||
	        }
 | 
			
		||||
	        
 | 
			
		||||
@@ -254,8 +273,6 @@ public class ShoppingListEntry
 | 
			
		||||
			
 | 
			
		||||
	        ResultSet res = preparedStmt.executeQuery();
 | 
			
		||||
	        
 | 
			
		||||
	        boolean found = false;
 | 
			
		||||
	        
 | 
			
		||||
	        if(res.next())
 | 
			
		||||
	        	entryAmount = res.getLong("combinationAmount");
 | 
			
		||||
	        
 | 
			
		||||
@@ -272,4 +289,18 @@ public class ShoppingListEntry
 | 
			
		||||
		
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public String toString()
 | 
			
		||||
	{
 | 
			
		||||
		if(this.getUnit() != null)
 | 
			
		||||
		{
 | 
			
		||||
			if(!this.getUnit().isDummy())
 | 
			
		||||
				return String.valueOf(getAmount()) + " " + getUnit().getMainName() + " " + getProduct().getName();
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return getProduct().getName();
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -75,25 +75,28 @@ public class Start
 | 
			
		||||
				    	Unit u = Unit.getByName(unitName);
 | 
			
		||||
				    	Product p = Product.getByName(productName);
 | 
			
		||||
				    	
 | 
			
		||||
				    	if(list == null)
 | 
			
		||||
				    		exitWithError(Settings.languageBlock.get("couldNotCreateList"));
 | 
			
		||||
				    	
 | 
			
		||||
				    	if(p == null)
 | 
			
		||||
				    		exitWithError(Settings.languageBlock.get("productNotFound") + " " + productName);
 | 
			
		||||
				    	
 | 
			
		||||
			    		ShoppingListEntry entry = new ShoppingListEntry();
 | 
			
		||||
			    		entry.setParentList(list);
 | 
			
		||||
			    		entry.setProduct(p);
 | 
			
		||||
			    		entry.setAmount(amount);
 | 
			
		||||
			    		entry.setUnit(u);
 | 
			
		||||
 | 
			
		||||
			    		
 | 
			
		||||
			    		if(amount > 0 && (u == null || u.isDummy))
 | 
			
		||||
			    			entry.setUnit(Unit.getPieceUnit());
 | 
			
		||||
			    		
 | 
			
		||||
				    	if(list == null)
 | 
			
		||||
				    		exitWithError(Settings.languageBlock.get("couldNotCreateList"));
 | 
			
		||||
				    	
 | 
			
		||||
				    	if(p == null)
 | 
			
		||||
				    		exitWithError(Settings.languageBlock.get("productNotFound") + " " + entry.toString());
 | 
			
		||||
				    	
 | 
			
		||||
			    		if(entry.create())
 | 
			
		||||
			    		{
 | 
			
		||||
			    			DatabaseHandler.getInstance().disconnect();
 | 
			
		||||
			    			System.exit(0);
 | 
			
		||||
			    		}
 | 
			
		||||
			    		else
 | 
			
		||||
			    			exitWithError(Settings.languageBlock.get("couldNotAddProdToList") + " " + productName);
 | 
			
		||||
			    			exitWithError(Settings.languageBlock.get("couldNotAddProdToList") + " " + entry.toString());
 | 
			
		||||
				    }
 | 
			
		||||
				    else
 | 
			
		||||
				    	System.out.println(Settings.languageBlock.get("noProdSpecified"));
 | 
			
		||||
@@ -103,26 +106,31 @@ public class Start
 | 
			
		||||
				    {
 | 
			
		||||
				    	ShoppingList list = ShoppingList.getMostRecentList();
 | 
			
		||||
				    	Product p = Product.getByName(productName);
 | 
			
		||||
				    	Unit u = Unit.getByName(unitName);
 | 
			
		||||
				    	
 | 
			
		||||
			    		ShoppingListEntry entry = new ShoppingListEntry();
 | 
			
		||||
			    		entry.setParentList(list);
 | 
			
		||||
			    		entry.setProduct(p);
 | 
			
		||||
			    		entry.setAmount(amount);
 | 
			
		||||
			    		entry.setUnit(u);
 | 
			
		||||
			    		
 | 
			
		||||
			    		if(amount > 0 && (u == null || u.isDummy))
 | 
			
		||||
			    			entry.setUnit(Unit.getPieceUnit());
 | 
			
		||||
			    		
 | 
			
		||||
				    	if(list == null)
 | 
			
		||||
				    		exitWithError(Settings.languageBlock.get("couldNotCreateList"));
 | 
			
		||||
				    	
 | 
			
		||||
				    	if(p == null)
 | 
			
		||||
				    		exitWithError(Settings.languageBlock.get("productNotFound") + " " + productName);
 | 
			
		||||
				    	
 | 
			
		||||
			    		for(ShoppingListEntry entry : list.getEntries())
 | 
			
		||||
			    		{bestehende reduzieren
 | 
			
		||||
			    			if(entry.getProduct().equals(p))
 | 
			
		||||
			    			{
 | 
			
		||||
					    		if(entry.delete())
 | 
			
		||||
					    		{
 | 
			
		||||
					    			DatabaseHandler.getInstance().disconnect();
 | 
			
		||||
					    			System.exit(0);
 | 
			
		||||
					    		}
 | 
			
		||||
					    		else
 | 
			
		||||
					    			Miscellaneous.logEvent(Settings.languageBlock.get("couldNotRemoveProdFromList") + " " + productName, 2);
 | 
			
		||||
				    		}
 | 
			
		||||
				    		exitWithError(Settings.languageBlock.get("productNotFound") + " " + entry.toString());
 | 
			
		||||
			    		
 | 
			
		||||
			    		if(entry.delete())
 | 
			
		||||
			    		{
 | 
			
		||||
			    			DatabaseHandler.getInstance().disconnect();
 | 
			
		||||
			    			System.exit(0);
 | 
			
		||||
			    		}
 | 
			
		||||
			    		else
 | 
			
		||||
			    			exitWithError(Settings.languageBlock.get("couldNotRemoveProdFromList") + " " + entry.toString());
 | 
			
		||||
				    	
 | 
			
		||||
			    		// If it wasn't on the list - why care?
 | 
			
		||||
		    			DatabaseHandler.getInstance().disconnect();
 | 
			
		||||
		    			System.exit(0);
 | 
			
		||||
@@ -131,7 +139,7 @@ public class Start
 | 
			
		||||
				    	System.out.println(Settings.languageBlock.get("noProdSpecified"));
 | 
			
		||||
				    break;
 | 
			
		||||
			    case "sendList":
 | 
			
		||||
			    	if(ShoppingList.getMostRecentList().send())
 | 
			
		||||
			    	if(ShoppingList.getMostRecentList().sendViaEmail())
 | 
			
		||||
			    	{
 | 
			
		||||
//				    	System.out.println("Liste wurde verschickt.");
 | 
			
		||||
				    	DatabaseHandler.getInstance().disconnect();
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ static ArrayList<Unit> unitCache = null;
 | 
			
		||||
	String abbreviation;
 | 
			
		||||
	boolean isDefault;
 | 
			
		||||
	boolean isDummy;
 | 
			
		||||
	boolean isPiece;
 | 
			
		||||
	
 | 
			
		||||
	public long getId()
 | 
			
		||||
	{
 | 
			
		||||
@@ -29,6 +30,14 @@ static ArrayList<Unit> unitCache = null;
 | 
			
		||||
		this.id = id;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public String getMainName()
 | 
			
		||||
	{
 | 
			
		||||
		if(name.contains(";"))
 | 
			
		||||
			return name.split(";")[0];
 | 
			
		||||
		else
 | 
			
		||||
			return name;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public String getName()
 | 
			
		||||
	{
 | 
			
		||||
		return name;
 | 
			
		||||
@@ -65,6 +74,15 @@ static ArrayList<Unit> unitCache = null;
 | 
			
		||||
		this.isDummy = isDummy;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public boolean isPiece()
 | 
			
		||||
	{
 | 
			
		||||
		return isPiece;
 | 
			
		||||
	}
 | 
			
		||||
	public void setPiece(boolean isPiece)
 | 
			
		||||
	{
 | 
			
		||||
		this.isPiece = isPiece;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Unit> readAllUnits()
 | 
			
		||||
	{
 | 
			
		||||
		if(unitCache == null)
 | 
			
		||||
@@ -97,6 +115,7 @@ static ArrayList<Unit> unitCache = null;
 | 
			
		||||
		        	u.setAbbreviation(res.getString("abbreviation"));
 | 
			
		||||
		        	u.setDefault(res.getInt("isDefault") == 1);
 | 
			
		||||
		        	u.setDummy(res.getInt("isDummy") == 1);
 | 
			
		||||
		        	u.setPiece(res.getInt("isPiece") == 1);
 | 
			
		||||
		        	
 | 
			
		||||
		        	unitCache.add(u);
 | 
			
		||||
		        }
 | 
			
		||||
@@ -133,10 +152,13 @@ static ArrayList<Unit> unitCache = null;
 | 
			
		||||
		
 | 
			
		||||
		for(Unit u : readAllUnits())
 | 
			
		||||
		{
 | 
			
		||||
			if(u.getName().equalsIgnoreCase(unitName))
 | 
			
		||||
				return u;
 | 
			
		||||
			else if(u.getName().equalsIgnoreCase(unitName.replace("-", " ")))
 | 
			
		||||
				return u;
 | 
			
		||||
			for(String unitSynonym : u.getName().split(";"))
 | 
			
		||||
			{
 | 
			
		||||
				if(unitSynonym.equalsIgnoreCase(unitName))
 | 
			
		||||
					return u;
 | 
			
		||||
				else if(unitSynonym.equalsIgnoreCase(unitName.replace("-", " ")))
 | 
			
		||||
					return u;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return null;
 | 
			
		||||
@@ -145,7 +167,10 @@ static ArrayList<Unit> unitCache = null;
 | 
			
		||||
	@Override
 | 
			
		||||
	public String toString()
 | 
			
		||||
	{
 | 
			
		||||
		return getName();
 | 
			
		||||
		if(getName().contains(";"))
 | 
			
		||||
			return getName().split(";")[0];
 | 
			
		||||
		else
 | 
			
		||||
			return getName();
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static Unit getById(long id)
 | 
			
		||||
@@ -161,7 +186,7 @@ static ArrayList<Unit> unitCache = null;
 | 
			
		||||
	
 | 
			
		||||
	public boolean create()
 | 
			
		||||
	{
 | 
			
		||||
		String query = "INSERT INTO units (name, abbreviation, isDefault, isDummy) VALUES (?, ?, ?, ?)";
 | 
			
		||||
		String query = "INSERT INTO units (name, abbreviation, isDefault, isDummy, isPiece) VALUES (?, ?, ?, ?, ?)";
 | 
			
		||||
		Connection conn = DatabaseHandler.getInstance().getConnection();
 | 
			
		||||
		PreparedStatement preparedStmt = null;
 | 
			
		||||
		try
 | 
			
		||||
@@ -179,6 +204,11 @@ static ArrayList<Unit> unitCache = null;
 | 
			
		||||
				preparedStmt.setInt(4, 1);
 | 
			
		||||
			else
 | 
			
		||||
				preparedStmt.setInt(4, 0);
 | 
			
		||||
 | 
			
		||||
			if(this.isPiece)
 | 
			
		||||
				preparedStmt.setInt(5, 1);
 | 
			
		||||
			else
 | 
			
		||||
				preparedStmt.setInt(5, 0);
 | 
			
		||||
		    
 | 
			
		||||
		    preparedStmt.executeUpdate();
 | 
			
		||||
		    ResultSet rs = preparedStmt.getGeneratedKeys();
 | 
			
		||||
@@ -219,4 +249,26 @@ static ArrayList<Unit> unitCache = null;
 | 
			
		||||
	      
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static Unit getDefaultUnit()
 | 
			
		||||
	{
 | 
			
		||||
		for(Unit u : readAllUnits())
 | 
			
		||||
		{
 | 
			
		||||
			if(u.isDefault())
 | 
			
		||||
				return u;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return null;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static Unit getPieceUnit()
 | 
			
		||||
	{
 | 
			
		||||
		for(Unit u : readAllUnits())
 | 
			
		||||
		{
 | 
			
		||||
			if(u.isPiece())
 | 
			
		||||
				return u;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return null;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -67,6 +67,7 @@
 | 
			
		||||
			displayUnitList();
 | 
			
		||||
			exit(0);
 | 
			
		||||
		}
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	class Unit
 | 
			
		||||
@@ -870,6 +871,8 @@
 | 
			
		||||
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
=======
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
@@ -1011,7 +1014,11 @@
 | 
			
		||||
		switch($command)
 | 
			
		||||
		{
 | 
			
		||||
			case "addToList":
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
				$productId = $_POST['productId'];
 | 
			
		||||
=======
 | 
			
		||||
				$productId = $_POST['productToAdd'];
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
				$amount = $_POST['amountToAdd'];
 | 
			
		||||
				$unitId = $_POST['unitToAdd'];
 | 
			
		||||
				addToList($productId, $amount, $unitId);
 | 
			
		||||
@@ -1214,10 +1221,20 @@
 | 
			
		||||
	mysqli_close(DBLink::getDbLink());
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
	function addToList($productId, $amount, $unitId)
 | 
			
		||||
=======
 | 
			
		||||
	function createList()
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
	{
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
		if($productId > 0 && $amount != 0 && isset($unitId) && strlen($unitId) > 0)
 | 
			
		||||
=======
 | 
			
		||||
		$SQL_command = "INSERT INTO `lists` (creationTime) VALUES (".round(microtime(true) * 1000).")";
 | 
			
		||||
		if (DBLink::getDbLink()->query($SQL_command))
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
		{
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
			if(!ShoppingList::oneListExists())
 | 
			
		||||
				createList();
 | 
			
		||||
 | 
			
		||||
@@ -1261,6 +1278,74 @@
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
=======
 | 
			
		||||
			echo "List created.<br>";
 | 
			
		||||
			return true;
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
		}
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
		else
 | 
			
		||||
			echo "Specifiy product, amount and unit.";
 | 
			
		||||
=======
 | 
			
		||||
 | 
			
		||||
		return false;
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
	function removeFromList($productId, $listId, $amount, $unitId)
 | 
			
		||||
=======
 | 
			
		||||
	function addToList($productId, $amount, $unitId)
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
	{
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
=======
 | 
			
		||||
		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>";
 | 
			
		||||
				else
 | 
			
		||||
					echo "Product could not be added to list.<br>";
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				/*
 | 
			
		||||
					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.";
 | 
			
		||||
@@ -1269,6 +1354,7 @@
 | 
			
		||||
 | 
			
		||||
	function removeFromList($productId, $listId, $amount, $unitId)
 | 
			
		||||
	{
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
		if($productId > 0 && $amount != null && $unitId > 0)
 | 
			
		||||
		{
 | 
			
		||||
			if(ShoppingList::oneListExists())
 | 
			
		||||
@@ -1285,11 +1371,60 @@
 | 
			
		||||
			echo "Select a product.";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
=======
 | 
			
		||||
 | 
			
		||||
	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";
 | 
			
		||||
		$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;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
	function displayShoppingList($listId, $justCreatedProductId)
 | 
			
		||||
	{
 | 
			
		||||
		echo "	<h2>Shopping list</h2>
 | 
			
		||||
		
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
				<form id=\"addProductToListForm\" action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\" onSubmit=\"addToggleStates(this); return checkAddProductToList();\">
 | 
			
		||||
=======
 | 
			
		||||
				<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
					<input type=\"hidden\" id=\"command\" name=\"command\" value=\"addToList\" />
 | 
			
		||||
					<select name=\"productId\" id=\"productId\">
 | 
			
		||||
						<option value=\"0\">Select product to add</option>
 | 
			
		||||
@@ -1339,6 +1474,27 @@
 | 
			
		||||
							echo "<option value=\"".$row->id."\">".$unitArray[0]."</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>";
 | 
			
		||||
@@ -1396,7 +1552,11 @@
 | 
			
		||||
				if(!isset($lastShop) || $row[9] != $lastShop)
 | 
			
		||||
				{
 | 
			
		||||
					$lastShop = $row[9];
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
					echo "<h3>".$lastShop."</h3>";
 | 
			
		||||
=======
 | 
			
		||||
					echo $lastShop."<br>================";
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
					echo "<table border=\"0\">";
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
@@ -1410,8 +1570,11 @@
 | 
			
		||||
						<td style=\"vertical-align:top;\">".$row[12]."</td>
 | 
			
		||||
						<td style=\"vertical-align:top;\">".$row[5]."</td>";
 | 
			
		||||
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
				GLOBAL $iconDelete;
 | 
			
		||||
 | 
			
		||||
=======
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
				echo "
 | 
			
		||||
						<td style=\"vertical-align:top;\">
 | 
			
		||||
							<form id=\"removeItemFromListForm\" action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\" onSubmit=\"addToggleStates(this)\">
 | 
			
		||||
@@ -1420,7 +1583,11 @@
 | 
			
		||||
								<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]."\" />
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
								<input class=\"smallButton\" type=\"submit\" value=\"".$iconDelete."\" />
 | 
			
		||||
=======
 | 
			
		||||
								<input class=\"smallButton\" type=\"submit\" value=\"remove\" />
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
							</form>
 | 
			
		||||
						</td>
 | 
			
		||||
					</tr>";
 | 
			
		||||
@@ -1439,6 +1606,7 @@
 | 
			
		||||
	{
 | 
			
		||||
		echo "<hr />";
 | 
			
		||||
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
		$detailsName = "detailsMaintenance";
 | 
			
		||||
		$openString = "";		
 | 
			
		||||
		if(in_array($detailsName, explode(";", $_POST['openDetailsElements'])))
 | 
			
		||||
@@ -1461,6 +1629,9 @@
 | 
			
		||||
					<summary>
 | 
			
		||||
						<strong>Manage shopping lists</strong>
 | 
			
		||||
					</summary>
 | 
			
		||||
=======
 | 
			
		||||
		echo "	<h2>Data maintenance</h2>
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
 | 
			
		||||
				<h3>Create new list</h3>
 | 
			
		||||
 | 
			
		||||
@@ -1787,6 +1958,36 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	function displayUnitList()
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
=======
 | 
			
		||||
	{
 | 
			
		||||
		$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()
 | 
			
		||||
>>>>>>> branch 'development' of https://git.server47.de/jens/ShoppingList.git
 | 
			
		||||
	{
 | 
			
		||||
		/*$SQL_command = "SELECT name FROM units ORDER BY name ASC";
 | 
			
		||||
		
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
	java -jar /home/pi/hc_scripts/ShoppingList.jar --action addToList --shoppingProduct $SHOPPINGITEM
 | 
			
		||||
	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,11 +73,25 @@ then
 | 
			
		||||
	echo "Was soll ich von der Liste streichen?"
 | 
			
		||||
	exit 1
 | 
			
		||||
else
 | 
			
		||||
	java -jar /home/pi/hc_scripts/ShoppingList.jar --action removeFromList --shoppingProduct $SHOPPINGITEM
 | 
			
		||||
	if [ "$?" -eq "0" ]
 | 
			
		||||
	then
 | 
			
		||||
		exit 0
 | 
			
		||||
	else
 | 
			
		||||
		exit 1
 | 
			
		||||
	fi
 | 
			
		||||
	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
 | 
			
		||||
        else
 | 
			
		||||
                exit 1
 | 
			
		||||
        fi
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								slotPrograms/shoppingProduct
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								slotPrograms/shoppingProduct
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# Adjust the URL to match where your php interface is.
 | 
			
		||||
 | 
			
		||||
curl http://yourWebserver/rhasspy/shoppingList.php?command=printProductList
 | 
			
		||||
							
								
								
									
										5
									
								
								slotPrograms/shoppingUnit
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								slotPrograms/shoppingUnit
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# Adjust the URL to match where your php interface is.
 | 
			
		||||
 | 
			
		||||
curl http://yourWebserver/rhasspy/shoppingList.php?command=printUnitList
 | 
			
		||||
		Reference in New Issue
	
	Block a user