public function getAvailableSecuritiesQuery(CeModel $model, $subclassId, $currentEntityId = null) { $securitiesIds = array(); if ($currentEntityId) { $entities = $model->getModelEntities(); foreach ($entities as $entity) { if ($currentEntityId != $entity->getId()) { $securitiesIds[] = $entity->getSecurityAssignmentId(); } } } $qb = $this->createQueryBuilder('s')->where('s.subclass_id = :subclassId')->andWhere('s.muni_substitution = 0'); if (!empty($securitiesIds)) { $qb->andWhere($qb->expr()->notIn('s.id', $securitiesIds)); } $qb->setParameter('subclassId', $subclassId)->orderBy('s.id', 'ASC'); return $qb; }
protected function updateSecurity(FormInterface $form, $subclassId, $currentEntityId = null) { $entities = $this->portfolioModel->getModelEntities(); $securitiesIds = array(); //TODO discuss with Andrey about this code if ($currentEntityId) { foreach ($entities as $entity) { if (!$currentEntityId || $currentEntityId != $entity->getId()) { $securitiesIds[] = $entity->getSecurityAssignmentId(); } } } $form->add($this->factory->createNamed('security', 'entity', null, array('class' => 'WealthbotAdminBundle:SecurityAssignment', 'property' => 'security.name', 'empty_value' => 'Choose Security', 'query_builder' => function (EntityRepository $er) use($subclassId, $securitiesIds) { $qb = $er->createQueryBuilder('s'); $qb->where('s.subclass_id = :subclassId AND s.ria_user_id IS NULL'); $qb->andWhere('s.muni_substitution = 0'); if (!empty($securitiesIds)) { $qb->andWhere($qb->expr()->notIn('s.id', $securitiesIds)); } $qb->setParameter('subclassId', $subclassId)->orderBy('s.id', 'ASC'); return $qb; }, 'attr' => is_null($subclassId) ? array('disabled' => 'disabled') : array()))); }