I have the following query , how to write these query in Symfony2
SELECT Inventory_Stock.id, Inventory_Stock.quantity, SUM(InventoryUsage.quantity)
,Inventory_Stock.quantity - SUM(InventoryUsage.quantity) AS Stock
FROM Inventory_Stock LEFT JOIN InventoryUsage ON Inventory_Stock.id = InventoryUsage.InventoryStock_id
WHERE Inventory_Stock.id = 26 OR
Inventory_Stock.id = 27
GROUP BY Inventory_Stock.id
ORDER BY Stock DESC
i need to implement the above query in a symfony way
private function getList($query = null)
{
$em = $this->getDoctrine()->getEntityManager();
if(!$query)
{
$query = $em->createQueryBuilder()
->select('i')
->from('ItxBundle:InventoryStock', 'i')
->innerJoin('i.Product','p')
->getQuery();
}
$adapter = $this->get('knp_paginator.adapter');
$adapter->setQuery($query);
$adapter->setDistinct(TRUE);
$paginator = new Paginator($adapter);
$paginator->setCurrentPageNumber($this->get('request')->query->get('page', 1));
$paginator->setItemCountPerPage($this->container->parameters['items_per_page']);
$paginator->setPageRange($this->container->parameters['page_range']);
return $paginator;
}
and in the view
{% if entity.quantity - entity.Usage < 0 %}
0
{% else %}
{{ entity.quantity - entity.Usage | number_format(0) }}
{% endif %}
I am using three tables here , relation given below
InventoryStock 1 - n InventoryUsage InventoryStock 1 - 1 Product
need to show the available stock (InventoryStock.Quanitity - sum(InventoryUsage.quanitity))
also need to implement sort based on Stock as well
Would be great if any one could help me out as this has been pulling my hair out for couple of days.