@Override
	public void cancelProductSubstractionFromStock(Order order, Product product)
	{
		ProductRawMaterialProportional cancellationPRMP = null;
		for (ProductRawMaterialProportional prmp : product.getProductRawMaterialProportional())
		{
			boolean found = false;
			for (StockQuantity sq : stock.get(prmp.getRawMaterial()))
			{
				if (sq.getStockType() == StockType.Substraction && sq.getOrderId() == order.getId()
				        && sq.getAmount() == prmp.getQuantity().getAmount())
				{
					stock.get(prmp.getRawMaterial()).remove(sq);
					found = true;
					break;
				}
			}
			if (found == false)
			{
				cancellationPRMP = prmp;
				break;
			}
		}

		if (cancellationPRMP == null)
			return;

		for (ProductRawMaterialProportional prop : product.getProductRawMaterialProportional())
		{
			if (prop == cancellationPRMP)
			{
				break;
			}
			String rawId = prop.getRawMaterial();
			StockQuantity q = new StockQuantity(prop.getQuantity(), StockType.Substraction, order.getId());

			stock.get(rawId).add(q);
		}

	}