public function sendCloseAccountsMessage(User $client, $systemAccounts, array $closeMessages)
 {
     $template = $this->parameters['template']['close_accounts'];
     $context = array('client' => $client, 'accounts' => $systemAccounts, 'close_messages' => $closeMessages);
     $ria = $client->getProfile()->getRia();
     $this->sendMessage($template, $context, $this->parameters['from_email']['close_accounts'], $ria->getEmail());
 }
 public function __construct(User $client, EntityManager $em, $validateAdditionalFields = true)
 {
     $this->client = $client;
     $this->em = $em;
     $this->validateAdditionalFields = $validateAdditionalFields;
     $riaCompanyInformation = $client->getProfile()->getRia()->getRiaCompanyInformation();
     $this->isAllowRetirementPlan = $riaCompanyInformation->getIsAllowRetirementPlan();
 }
 public function __construct(User $client, $group = AccountGroup::GROUP_EMPLOYER_RETIREMENT, $validateAdditionalFields = true)
 {
     $this->client = $client;
     $this->group = $group;
     $this->isAllowRetirementPlan = $client->getProfile()->getRia()->getRiaCompanyInformation()->getIsAllowRetirementPlan();
     $this->validateAdditionalFields = $validateAdditionalFields;
     $this->contributionTypes = array('contributions' => 'Contributions', 'distributions' => 'Distributions', 'neither' => 'Neither');
 }
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     foreach ($this->questions as $question) {
         if ($question->getIsWithdrawAgeInput()) {
             $builder->add('client_birth_date', 'date', array('widget' => 'text', 'pattern' => '{{ month }}-{{ day }}-{{ year }}', 'required' => true))->add('answer_' . $question->getId(), 'text', array('label' => $question->getTitle(), 'property_path' => false, 'required' => true, 'data' => $this->user->getProfile()->getWithdrawAge()));
         } else {
             $userAnswer = $this->em->getRepository('WealthbotClientBundle:ClientQuestionnaireAnswer')->createQueryBuilder('ua')->where('ua.client_id = :client_id AND ua.question_id = :question_id')->setParameters(array('client_id' => $this->user->getId(), 'question_id' => $question->getId()))->setMaxResults(1)->getQuery()->getOneOrNullResult();
             $userAnswer = $userAnswer ? $userAnswer->getAnswer() : $userAnswer;
             $builder->add('answer_' . $question->getId(), 'entity', array('class' => 'WealthbotRiaBundle:RiskAnswer', 'query_builder' => function (EntityRepository $er) use($question) {
                 return $er->createQueryBuilder('a')->where('a.risk_question_id = :question_id')->setParameter('question_id', $question->getId());
             }, 'empty_value' => $userAnswer ? false : 'Choose an Option', 'property' => 'title', 'property_path' => false, 'required' => true, 'label' => $question->getTitle(), 'preferred_choices' => $userAnswer ? array($userAnswer) : array()));
         }
     }
     if (!$this->isPreSave) {
         $this->addOnBindValidator($builder);
     }
 }
 public function sendAdvCopyEmailMessage(User $client)
 {
     $ria = $client->getProfile()->getRia();
     $companyInformation = $ria->getRiaCompanyInformation();
     $template = $this->parameters['template']['adv_copy'];
     $context = array('client' => $client->getUsername(), 'company' => $companyInformation->getName());
     $extension = pathinfo($companyInformation->getAdvCopy(), PATHINFO_EXTENSION);
     $attachments = array('ADV Copy.' . $extension => $companyInformation->getWebAdvCopy());
     $this->sendMessage($template, $context, $this->parameters['from_email']['adv_copy'], $client->getEmail(), $attachments);
 }
 /**
  * Get route for client user
  *
  * @param User $user
  * @return string
  */
 protected function getRouteForClient(User $user)
 {
     $redirectUrl = $this->getSessionRedirectUrl();
     if ($redirectUrl) {
         $this->removeSessionRedirectUrl();
         return $redirectUrl;
     }
     if (is_object($user->getProfile())) {
         $registrationStep = $user->getProfile()->getRegistrationStep();
         switch ($registrationStep) {
             case 0:
                 return $this->generateUrl('rx_client_profile_step_one');
                 break;
             case 1:
                 return $this->generateUrl('rx_client_profile_step_two');
                 break;
             case 2:
                 return $this->generateUrl('rx_client_profile_step_three');
                 break;
             case 3:
                 return $this->generateUrl('rx_client_portfolio');
                 break;
             case 4:
                 return $this->generateUrl('rx_client_portfolio');
                 break;
             case 5:
                 return $this->generateUrl('rx_client_transfer');
                 break;
             case 6:
                 return $this->generateUrl('rx_client_transfer');
                 break;
             case 7:
                 return $this->generateUrl('rx_client_dashboard');
                 break;
             default:
                 return $this->generateUrl('rx_user_homepage');
                 break;
         }
     }
     return $this->generateUrl('rx_client_profile_step_one');
 }
Exemple #7
0
 private function createQuestionnaireAnswers(ObjectManager $manager, User $clientUser)
 {
     $clientProfile = $clientUser->getProfile();
     $answers = array();
     for ($i = 1; $i <= 4; $i++) {
         $answers[] = array('question' => $this->getReference('ria-risk-question-' . $i), 'data' => $this->getReference('ria-risk-answer-' . $i . '-1'));
     }
     $riskToleranceManager = new RiskToleranceManager($clientUser, $manager, $answers);
     $riskToleranceManager->saveUserAnswers();
     $suggestedPortfolio = $riskToleranceManager->getSuggestedPortfolio();
     //$clientProfile->setSuggestedPortfolio($suggestedPortfolio);
     $clientPortfolioManager = $this->container->get('wealthbot_client.client_portfolio.manager');
     $clientPortfolioManager->proposePortfolio($clientUser, $suggestedPortfolio);
     $manager->persist($clientProfile);
 }
 private function createActivity(User $client, $message, $amount)
 {
     $activity = new Activity();
     $activity->setClientUserId($client->getId());
     $activity->setClientStatus($client->getProfile()->getClientStatus());
     $activity->setFirstName($client->getFirstName());
     $activity->setLastName($client->getLastName());
     $activity->setRiaUserId($client->getRia()->getId());
     $activity->setAmount($amount);
     $activity->setMessage($message);
     $activity->setCreatedAt(new \DateTime());
     return $activity;
 }
 protected function validateClientAssetClasses(EntityManager $em, User $client)
 {
     $ria = $client->getProfile()->getRia();
     $q = "\n        SELECT aof.account_id, aof.is_preferred, s.*\n            FROM client_accounts ca\n                LEFT JOIN account_outside_funds aof ON (ca.id = aof.account_id)\n                LEFT JOIN outside_funds fund ON (fund.id = aof.outside_fund_id)\n                LEFT JOIN outside_fund_associations ofa ON (ofa.outside_fund_id = fund.id)\n                LEFT JOIN ria_subclasses rs ON (rs.id = ofa.ria_subclass_id)\n                LEFT JOIN subclasses s ON (rs.subclass_id = s.id)\n            WHERE ca.client_id = :client_id AND ofa.ria_user_id = :ria_id AND aof.is_preferred = :is_preferred\n            GROUP BY s.asset_class_id\n        ";
     $stmt = $em->getConnection()->prepare($q);
     $stmt->bindValue('ria_id', $ria->getId());
     $stmt->bindValue('client_id', $client->getId());
     $stmt->bindValue('is_preferred', 0);
     $stmt->execute();
     $results = $stmt->fetchAll();
     $unPreferred = array();
     foreach ($results as $result) {
         $unPreferred[$result['account_id']][] = $result['asset_class_id'];
     }
     $stmt = $em->getConnection()->prepare($q);
     $stmt->bindValue('ria_id', $ria->getId());
     $stmt->bindValue('client_id', $client->getId());
     $stmt->bindValue('is_preferred', 1);
     $stmt->execute();
     $results = $stmt->fetchAll();
     $preferred = array();
     foreach ($results as $result) {
         $preferred[$result['account_id']][] = $result['asset_class_id'];
     }
     $badAsset = array();
     //echo "<pre>";
     foreach ($unPreferred as $account => $assetClasses) {
         //var_dump($account, $assetClasses);
         if (isset($preferred[$account])) {
             //var_dump($assetClasses, $preferred[$account]);
             //echo "----";
             // Search asset classes that's doesn't have preferred subclass
             $diff = array_diff($assetClasses, $preferred[$account]);
             // If exists than add to array with not valid asset classes
             if ($diff) {
                 $badAsset[$account] = $diff;
             }
             //var_dump($badAsset);
             //echo "<br/>";
         } else {
             // All asset classes doesn't have preferred subclass
             $badAsset[$account] = $assetClasses;
         }
         //var_dump($badAsset);
         //echo "<br/>------------------------------------------------------------<br/>";
     }
     $data['error'] = false;
     if (count($badAsset) > 0) {
         $data['error'] = true;
         $data['bad_asset_classes'] = $badAsset;
     }
     //die;
     return $data;
 }
 private function buildBeneficiaryByClient(User $client)
 {
     $spouse = $client->getSpouse();
     $profile = $client->getProfile();
     $beneficiary = new Beneficiary();
     $beneficiary->setFirstName($spouse->getFirstName());
     $beneficiary->setMiddleName($spouse->getMiddleName());
     $beneficiary->setLastName($spouse->getLastName());
     $beneficiary->setBirthDate($spouse->getBirthDate());
     $beneficiary->setStreet($profile->getStreet());
     $beneficiary->setState($profile->getState());
     $beneficiary->setCity($profile->getCity());
     $beneficiary->setZip($profile->getZip());
     $beneficiary->setRelationship('Spouse');
     $beneficiary->setShare(100);
     return $beneficiary;
 }
 /**
  * @SecureParam(name="riaClient", permissions="EDIT")
  * @ParamConverter("riaClient", class="WealthbotUserBundle:User", options={"id" = "client_id"})
  */
 public function householdSettingsContactAction(User $riaClient, Request $request)
 {
     $form = $this->createForm(new HouseholdContactSettingsFormType(), $riaClient->getProfile());
     if ($request->isMethod('POST')) {
         $form->bind($request);
         if ($form->isValid()) {
             $formData = $form->getData();
             /** @var EntityManager $em */
             $em = $this->get('doctrine.orm.entity_manager');
             $em->persist($formData);
             $em->flush();
         }
     }
     return $this->render('WealthbotRiaBundle:Dashboard:household_settings_contact.html.twig', array('form' => $form->createView()));
 }
 /**
  * Get age of the client
  *
  * @param \Wealthbot\UserBundle\Entity\User $user
  * @return int
  */
 protected function getClientAge(User $user)
 {
     $age = $user->getProfile()->getBirthDate()->diff(new \DateTime('now'))->y;
     return $age;
 }
Exemple #13
0
 public function sendClientAdvCopyEmailMessage(User $client)
 {
     $ria = $client->getProfile()->getRia();
     $companyInformation = $ria->getRiaCompanyInformation();
     $template = $this->parameters['template']['client_adv_copy'];
     $fromEmail = $this->parameters['from_email']['client_adv_copy'];
     $context = array('client' => $client, 'ria' => $ria, 'company' => $companyInformation, 'logo' => $this->getRiaLogo($ria->getId()));
     $adv = $companyInformation->getAdvDocument();
     $extension = pathinfo($adv->getFilename(), PATHINFO_EXTENSION);
     $attachments = array('ADV Copy.' . $extension => $adv->getAbsolutePath());
     $this->sendMessage($template, $fromEmail, $client->getEmail(), $context, $attachments);
 }