Esempio n. 1
0
 public function createQuestionAction(Request $request)
 {
     if (!$request->isXmlHttpRequest()) {
         throw $this->createNotFoundException();
     }
     /** @var \Doctrine\ORM\EntityManager $em */
     $em = $this->get('doctrine.orm.entity_manager');
     $user = $this->getUser();
     $question = new RiskQuestion();
     // Add one empty answer row
     $answer = new RiskAnswer();
     $question->addAnswer($answer);
     $form = $this->createForm(new RiskQuestionFormType(), $question);
     if ($request->isMethod('post')) {
         $form->bind($request);
         if ($form->isValid()) {
             $question = $form->getData();
             $question->setOwner($user);
             $em->persist($question);
             foreach ($question->getAnswers() as $answer) {
                 $answer->setQuestion($question);
                 $em->persist($answer);
             }
             $em->flush();
             return $this->getJsonResponse(array('status' => 'success', 'new_row' => $this->renderView('WealthbotRiaBundle:Risks:_question_row.html.twig', array('question' => $question))));
         } else {
             return $this->getJsonResponse(array('status' => 'error', 'form' => $this->renderView('WealthbotRiaBundle:Risks:_question_form.html.twig', array('form' => $form->createView()))));
         }
     }
     return $this->getJsonResponse(array('status' => 'success', 'content' => $this->renderView('WealthbotRiaBundle:Risks:_question_form.html.twig', array('form' => $form->createView()))));
 }
Esempio n. 2
0
 public function setUp()
 {
     $questions = array();
     for ($i = 0; $i < 4; $i++) {
         $question = new RiskQuestion();
         $question->setTitle('Question ' . ($i + 1));
         for ($j = 0; $j < 4; $j++) {
             $answer = new RiskAnswer();
             $answer->setTitle('Answer ' . ($i + 1) . ' - ' . ($j + 1));
             $answer->setQuestion($question);
             $answer->setPoint($j);
             $question->addAnswer($answer);
         }
         $questions[] = $question;
     }
     $userAnswers = array();
     foreach ($questions as $key => $question) {
         $userAnswer = new ClientQuestionnaireAnswer();
         $userAnswer->setQuestion($question);
         $questionAnswers = $question->getAnswers();
         $userAnswer->setAnswer($questionAnswers[$key]);
         $userAnswers[] = $userAnswer;
     }
     $portfolio = new CeModel();
     for ($i = 0; $i < 4; $i++) {
         $modelMock = $this->getMock('Wealthbot\\AdminBundle\\Entity\\CeModel', array('getId'));
         $modelMock->expects($this->any())->method('getId')->will($this->returnValue($i + 1));
         $modelMock->setName('Model ' . ($i + 1));
         $modelMock->setRiskRating($i + 1);
         $portfolio->addChildren($modelMock);
     }
     $riaCompanyInformation = new RiaCompanyInformation();
     $riaCompanyInformation->setPortfolioModel($portfolio);
     $ria = new User();
     $ria->setRoles(array('ROLE_RIA'));
     $ria->setRiaCompanyInformation($riaCompanyInformation);
     $userProfile = new Profile();
     $userProfile->setRia($ria);
     $user = new User();
     $user->setRoles(array('ROLE_CLIENT'));
     $user->setProfile($userProfile);
     $this->riskTolerance = new RiskTolerance($user, $userAnswers);
 }
Esempio n. 3
0
 public function load(ObjectManager $manager)
 {
     /** @var User $adminUser */
     $adminUser = $this->getReference('user-admin');
     $riskQuestion1 = new RiskQuestion();
     $riskQuestion1->setOwner($adminUser);
     $riskQuestion1->setTitle("The global stock market is often volatile. If your entire investment portfolio lost 10% of its value in a month during a market decline, what would you do?");
     $riskQuestion1->setDescription("Lorem ipsum");
     $riskQuestion1->setSequence(2);
     $manager->persist($riskQuestion1);
     $riskQuestion2 = new RiskQuestion();
     $riskQuestion2->setOwner($adminUser);
     $riskQuestion2->setTitle("Which set of hypothetical portfolio returns in a year is most acceptable to you?");
     $riskQuestion2->setDescription("Lorem ipsum");
     $riskQuestion2->setSequence(3);
     $manager->persist($riskQuestion2);
     $riskQuestion3 = new RiskQuestion();
     $riskQuestion3->setOwner($adminUser);
     $riskQuestion3->setTitle("Choose the statement that best reflects your thoughts about reaching your financial goal:");
     $riskQuestion3->setDescription("Lorem ipsum");
     $riskQuestion3->setSequence(4);
     $manager->persist($riskQuestion3);
     $riskQuestion4 = new RiskQuestion();
     $riskQuestion4->setOwner($adminUser);
     $riskQuestion4->setTitle("Will you need up to ¼ of your portfolio within the next 10 years for a large expense (house, college, etc.)?");
     $riskQuestion4->setDescription("Lorem ipsum");
     $riskQuestion4->setSequence(5);
     $manager->persist($riskQuestion4);
     $manager->flush();
     $this->addReference('risk-question-1', $riskQuestion1);
     $this->addReference('risk-question-2', $riskQuestion2);
     $this->addReference('risk-question-3', $riskQuestion3);
     $this->addReference('risk-question-4', $riskQuestion4);
 }
Esempio n. 4
0
 private function saveRiskQuestions(ObjectManager $manager, User $owner)
 {
     foreach ($this->riskProfiling as $qIndex => $questionItem) {
         $adminQuestion = $this->getReference('risk-question-' . $questionItem['question_index']);
         $question = new RiskQuestion();
         $question->setTitle($adminQuestion->getTitle());
         $question->setDescription($adminQuestion->getDescription());
         $question->setIsWithdrawAgeInput($adminQuestion->getIsWithdrawAgeInput());
         $question->setOwner($owner);
         $question->setSequence($questionItem['sequence']);
         foreach ($questionItem['answers'] as $aIndex => $answerItem) {
             $adminAnswer = $this->getReference('risk-answer-' . $questionItem['question_index'] . '-' . $answerItem['answer_index']);
             $answer = new RiskAnswer();
             $answer->setQuestion($question);
             $answer->setTitle($adminAnswer->getTitle());
             $answer->setPoint($answerItem['point']);
             $question->addAnswer($answer);
             $this->addReference('cec-answer-' . $qIndex . '-' . $aIndex, $answer);
         }
         $manager->persist($question);
         $this->addReference('cec-question-' . $qIndex, $question);
     }
 }
Esempio n. 5
0
 /**
  * Return RiskAnswer object for withdraw age input question
  *
  * @param RiskQuestion $question
  * @param $ageDiff
  * @return null|RiskAnswer
  */
 private function getAnswerForWithdrawAgeQuestion(RiskQuestion $question, $ageDiff)
 {
     $answers = $this->em->getRepository('WealthbotRiaBundle:RiskAnswer')->findBy(array('risk_question_id' => $question->getId()), array('title' => 'DESC'));
     $result = null;
     /** @var RiskAnswer $answer */
     foreach ($answers as $answer) {
         $string = $answer->getTitle();
         $symbol = substr($string, 0, 1);
         $number = (int) substr($string, 1);
         if ($symbol == '>') {
             if ($ageDiff >= $number) {
                 return $answer;
             }
         } else {
             if ($ageDiff <= $number) {
                 $result = $answer;
             }
         }
     }
     return $result;
 }