private function createCategories(User $riaUser) { $categories = array(); foreach ($this->categories as $category) { $asset = new AssetClass(); $asset->setName($category['name']); $asset->setType($category['type']); foreach ($category['subclasses'] as $item) { $subclass = new Subclass(); $subclass->setOwner($riaUser); $subclass->setAssetClass($asset); $subclass->setName($item['name']); $subclass->setExpectedPerformance($item['expected_performance']); $subclass->setAccountType($this->getReference('subclass-account-type-' . $item['account_type_index'])); $subclass->setPriority($item['priority']); $subclass->setToleranceBand($item['tolerance_band']); $asset->addSubclasse($subclass); } $categories[] = $asset; } return $categories; }
/** * 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(); }