mirror of
https://github.com/ToxicCrack/PrintABrick.git
synced 2025-05-29 10:10:25 -07:00
Improve Rebrickable repositories
This commit is contained in:
parent
23acea2a18
commit
2dcde6c742
@ -14,24 +14,14 @@ class Inventory_PartRepository extends BaseRepository
|
||||
{
|
||||
$queryBuilder = $this->createQueryBuilder('inventory_part');
|
||||
|
||||
$version = $this->getEntityManager()->getRepository(Inventory::class)->createQueryBuilder('inventory')
|
||||
->select('MAX(inventory.version)')
|
||||
->groupBy('inventory.set')
|
||||
->where('inventory.set = :setNumber')
|
||||
->setParameter('setNumber',$number)
|
||||
->getQuery()->getResult();
|
||||
$inventory = $this->getEntityManager()->getRepository(Inventory::class)->findNewestInventoryBySetNumber($number);
|
||||
|
||||
$queryBuilder
|
||||
->join(Inventory::class, 'inventory', JOIN::WITH, 'inventory_part.inventory = inventory.id')
|
||||
->where('inventory.set = :number')
|
||||
->setParameter('number', $number)
|
||||
->join(Inventory::class, 'inventory', JOIN::WITH, 'inventory_part.inventory = :inventory')
|
||||
->setParameter('inventory', $inventory->getId())
|
||||
->andWhere('inventory_part.spare = FALSE')
|
||||
->andWhere('inventory.version = :version')
|
||||
->setParameter('version',$version)
|
||||
->distinct(true);
|
||||
|
||||
|
||||
|
||||
return $queryBuilder->getQuery()->getResult();
|
||||
}
|
||||
|
||||
@ -39,22 +29,12 @@ class Inventory_PartRepository extends BaseRepository
|
||||
{
|
||||
$queryBuilder = $this->createQueryBuilder('inventory_part');
|
||||
|
||||
$version = $this->getEntityManager()->getRepository(Inventory::class)->createQueryBuilder('inventory')
|
||||
->select('MAX(inventory.version)')
|
||||
->groupBy('inventory.set')
|
||||
->where('inventory.set = :setNumber')
|
||||
->setParameter('setNumber',$number)
|
||||
->getQuery()->getResult();
|
||||
|
||||
$inventory = $this->getEntityManager()->getRepository(Inventory::class)->findNewestInventoryBySetNumber($number);
|
||||
|
||||
$queryBuilder
|
||||
->join(Inventory::class, 'inventory', JOIN::WITH, 'inventory_part.inventory = inventory.id')
|
||||
->where('inventory.set = :number')
|
||||
->setParameter('number', $number)
|
||||
->join(Inventory::class, 'inventory', JOIN::WITH, 'inventory_part.inventory = :inventory')
|
||||
->setParameter('inventory', $inventory->getId())
|
||||
->andWhere('inventory_part.spare = TRUE')
|
||||
->andWhere('inventory.version = 1')
|
||||
->andWhere('inventory.version = :version')
|
||||
->setParameter('version',$version)
|
||||
->distinct(true);
|
||||
|
||||
return $queryBuilder->getQuery()->getResult();
|
||||
|
@ -10,4 +10,18 @@ use Doctrine\ORM\Query\Expr\Join;
|
||||
|
||||
class Inventory_SetRepository extends BaseRepository
|
||||
{
|
||||
public function findAllBySetNumber($number) {
|
||||
|
||||
$inventory = $this->getEntityManager()->getRepository(Inventory::class)->findNewestInventoryBySetNumber($number);
|
||||
|
||||
if($inventory) {
|
||||
$queryBuilder = $this->createQueryBuilder('inventory_set')
|
||||
->where('inventory_set.inventory = :inventory')
|
||||
->setParameter('inventory',$inventory->getId());
|
||||
|
||||
return $queryBuilder->getQuery()->getResult();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ use AppBundle\Entity\Rebrickable\Inventory;
|
||||
use AppBundle\Entity\Rebrickable\Inventory_Part;
|
||||
use AppBundle\Entity\Rebrickable\Inventory_Set;
|
||||
use AppBundle\Entity\Rebrickable\Part;
|
||||
use AppBundle\Entity\Rebrickable\Set;
|
||||
use AppBundle\Repository\BaseRepository;
|
||||
use Doctrine\ORM\Query\Expr\Join;
|
||||
|
||||
@ -14,9 +15,7 @@ class SetRepository extends BaseRepository
|
||||
{
|
||||
public function findAllByPartNumber($number)
|
||||
{
|
||||
$queryBuilder = $this->createQueryBuilder('s');
|
||||
|
||||
$queryBuilder
|
||||
$queryBuilder = $this->createQueryBuilder('s')
|
||||
->join(Inventory::class, 'inventory', JOIN::WITH, 'inventory.set = s.number')
|
||||
->join(Inventory_Part::class, 'inventory_part', JOIN::WITH, 'inventory.id = inventory_part.inventory')
|
||||
->join(Part::class, 'part', Join::WITH, 'inventory_part.part = part.number')
|
||||
@ -29,9 +28,7 @@ class SetRepository extends BaseRepository
|
||||
|
||||
public function findAllByModel(Model $model)
|
||||
{
|
||||
$queryBuilder = $this->createQueryBuilder('s');
|
||||
|
||||
$queryBuilder
|
||||
$queryBuilder = $this->createQueryBuilder('s')
|
||||
->join(Inventory::class, 'inventory', JOIN::WITH, 'inventory.set = s.number')
|
||||
->join(Inventory_Part::class, 'inventory_part', JOIN::WITH, 'inventory.id = inventory_part.inventory')
|
||||
->join(Part::class, 'part', Join::WITH, 'inventory_part.part = part.number')
|
||||
|
Loading…
x
Reference in New Issue
Block a user