protected function updateTaxLossHarvesting(FormInterface $form, $subclassId, $withoutIds = array())
 {
     if ($this->user->hasRole('ROLE_RIA') && $this->user->getRiaCompanyInformation()->getIsTaxLossHarvesting() && (!$this->user->getRiaCompanyInformation()->getIsUseQualifiedModels() || $this->user->getRiaCompanyInformation()->getIsUseQualifiedModels() && !$this->isQualifiedModel)) {
         /** @var $securityAssignmentRepo SecurityAssignmentRepository */
         $securityAssignmentRepo = $this->em->getRepository('WealthbotAdminBundle:SecurityAssignment');
         $securityQueryBuilder = $securityAssignmentRepo->getSecuritiesQBBySubclassIdAndWithoutSecuritiesIds($subclassId, $withoutIds);
         $form->add($this->factory->createNamed('tax_loss_harvesting', 'entity', null, array('class' => 'WealthbotAdminBundle:SecurityAssignment', 'property' => 'security.name', 'empty_value' => 'Choose TLH Substitution', 'query_builder' => $securityQueryBuilder, 'attr' => empty($withoutIds) ? array('disabled' => 'disabled') : array(), 'required' => false)));
     }
 }
 /**
  * Create default Admin Spec for RIA
  *
  * @param User $ria
  * @return BillingSpec
  */
 public function initDefaultAdminSpec(User $ria)
 {
     $billingSpec = new BillingSpec();
     $billingSpec->setType(BillingSpec::TYPE_TIER);
     $billingSpec->setName('Admin spec for ' . $ria->getRiaCompanyInformation()->getName());
     $billingSpec->addAppointedUser($ria);
     $billingSpec->setMinimalFee(0.0);
     return $billingSpec;
 }
 public function sendAdminsRiaActivatedEmail(User $ria)
 {
     $template = $this->parameters['template']['admin_ria_activated'];
     $context = array('ria_name' => $ria->getRiaCompanyInformation()->getName());
     $repository = $this->em->getRepository('WealthbotUserBundle:User');
     $admins = $repository->getAllAdmins();
     $toEmails = array();
     /** @var User $admin */
     foreach ($admins as $admin) {
         $toEmails[] = $admin->getEmail();
     }
     $this->sendMessage($template, $this->parameters['from_email']['admin_ria_activated'], $toEmails, $context);
 }
 /**
  * Save Client Subclasses
  * This method is needed for save a snapshot of RIA subclasses.
  *
  * @param User $client
  * @param User $ria
  * @throws EntityNotFoundException
  */
 public function saveClientSubclasses(User $client, User $ria)
 {
     $em = $this->getEntityManager();
     $selectedModel = $ria->getRiaCompanyInformation()->getPortfolioModel();
     //$riaSubClasses = $this->findDefaultsByModelId($selectedModel);
     $riaSubClasses = $this->findRiaSubclasses($ria->getId());
     if (!$riaSubClasses) {
         $riaSubClasses = $this->findDefaultsByModelId($selectedModel);
     }
     // When subclasses for RIA are defined in system ?
     if (!$riaSubClasses) {
         throw new EntityNotFoundException("Ria doesn't have subclasses, logic error please check!");
     }
     foreach ($riaSubClasses as $riaSubClass) {
         $clientSubClass = new Subclass();
         $clientSubClass->setAssetClass($riaSubClass->getAssetClass());
         $clientSubClass->setAccountType($riaSubClass->getAccountType());
         $clientSubClass->setOwner($client);
         $clientSubClass->setSource($riaSubClass);
         $clientSubClass->setName($riaSubClass->getName());
         $clientSubClass->setExpectedPerformance($riaSubClass->getExpectedPerformance());
         /** @var Subclass $riaSubClass */
         foreach ($riaSubClass->getSecurityAssignments() as $securityAssignment) {
             $newSecurityAssignment = new SecurityAssignment();
             $newSecurityAssignment->setIsPreferred($securityAssignment->getIsPreferred());
             $newSecurityAssignment->setModel($clientSubClass->getAssetClass()->getModel());
             $newSecurityAssignment->setMuniSubstitution($securityAssignment->getMuniSubstitution());
             //$newSecurityAssignment->setRia($ria); Deprecated
             $newSecurityAssignment->setSecurity($securityAssignment->getSecurity());
             $newSecurityAssignment->setSecurityTransaction($securityAssignment->getSecurityTransaction());
             $newSecurityAssignment->setSubclass($clientSubClass);
             $em->persist($newSecurityAssignment);
         }
         $em->persist($clientSubClass);
     }
     $em->flush();
 }
 public function sendRiaActivatedEmailMessage($toEmail, User $ria)
 {
     $template = $this->parameters['template']['ria_activated'];
     $context = array('company_information' => $ria->getRiaCompanyInformation());
     $this->sendMessage($template, $context, $this->parameters['from_email']['ria_activated'], $toEmail);
 }
 protected function buildModelForm(FormBuilderInterface $builder, User $ria)
 {
     $builder->add('client', new ChooseClientPortfolioFormType($this->clientPortfolio), array('mapped' => false, 'data' => $this->clientPortfolio->getClient()));
     if ($ria->getRiaCompanyInformation()->isCollaborativeProcessing()) {
         $builder->add('groups', 'entity', array('multiple' => false, 'property' => 'name', 'property_path' => 'user.groups', 'label' => 'Groups:', 'class' => 'Wealthbot\\UserBundle\\Entity\\Group', 'query_builder' => function (EntityRepository $er) use($ria) {
             return $er->createQueryBuilder('g')->andWhere('g.owner = :owner')->orWhere('g.owner is null')->setParameter('owner', $ria);
         }));
     }
 }