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())));
 }