/** * * Returns suggested portfolio * * @return null|\Wealthbot\AdminBundle\Entity\CeModel */ public function getSuggestedPortfolio() { $modelManager = new CeModelManager($this->em, '\\Wealthbot\\AdminBundle\\Entity\\CeModel'); $ria = $this->riskTolerance->getRia(); $parentModel = $ria->getRiaCompanyInformation()->getPortfolioModel(); return $this->riskTolerance->getSuggestedPortfolio($modelManager->getChildModels($parentModel)); }
public function testDeleteModel() { $models = $this->manager->getChildModelsByParentId(31); $model = $models[0]; $this->manager->deleteModel($model); $updatedModels = $this->manager->getChildModelsByParentId(31); $this->assertCount(0, $updatedModels); }
protected function success() { $modelManager = new CeModelManager($this->em, '\\Wealthbot\\AdminBundle\\Entity\\CeModel'); /** @var CeModel $parentModel */ $parentModel = $this->form->getData(); $parentModel->setIsAssumptionLocked(true); $this->em->persist($parentModel); /** @var CeModel $model */ foreach ($modelManager->getChildModels($parentModel) as $model) { if ($model->getIsAssumptionLocked() || $model->getIsDeleted()) { continue; } $model->setAssumption($parentModel->getAssumption()); $this->em->persist($model); } $this->em->flush(); }
private function createModel(ObjectManager $manager, User $riaUser) { $categories = $this->createCategories($riaUser); $modelManager = new CeModelManager($manager, '\\Wealthbot\\AdminBundle\\Entity\\CeModel'); $model = $modelManager->createCustomModel($riaUser); $model->setCommissionMin($this->strategy['commission_min']); $model->setCommissionMax($this->strategy['commission_max']); $model->setForecast($this->strategy['forecast_min']); $model->setGenerousMarketReturn($this->strategy['generous_market_return']); $model->setLowMarketReturn($this->strategy['low_market_return']); $model->setIsAssumptionLocked($this->strategy['is_assumption_locked']); $securityAssignments = array(); $isExistSecurityAssignment = function ($arr, $securityIndex) { return isset($arr[$securityIndex]); }; foreach ($this->strategy['models'] as $modelItem) { $child = $modelManager->createChild($model); $child->setName($modelItem['name']); $child->setRiskRating($modelItem['risk_rating']); $child->setIsAssumptionLocked($modelItem['is_assumption_locked']); $model->addChildren($child); foreach ($modelItem['entities'] as $entityItem) { /** @var AssetClass $assetClass */ $assetClass = $categories[$entityItem['asset_class_index']]; $assetClass->setModel($model); $subclass = $assetClass->getSubclasses()->get($entityItem['subclass_index']); /** @var Security $security */ $security = $this->getReference('security-' . $entityItem['security']); if ($isExistSecurityAssignment($securityAssignments, $entityItem['security'])) { $securityAssignment = $securityAssignments[$entityItem['security']]; } else { $securityAssignment = new SecurityAssignment(); $securityAssignment->setSecurity($security); $securityAssignment->setSubclass($subclass); $securityAssignment->setModel($model); $securityAssignments[$entityItem['security']] = $securityAssignment; $this->addReference('model-security-assignment-asset-index-' . $entityItem['asset_class_index'] . '-subclass-index-' . $entityItem['subclass_index'] . '-security-' . $entityItem['security'], $securityAssignment); } $entity = new CeModelEntity(); $entity->setModel($child); $entity->setAssetClass($assetClass); $entity->setSubclass($subclass); $entity->setSecurityAssignment($securityAssignment); $entity->setPercent($entityItem['percent']); if ($entityItem['muni_substitution_security']) { /** @var Security $muniSubstitutionSecurity */ $muniSubstitutionSecurity = $this->getReference('security-' . $entityItem['muni_substitution_security']); if ($isExistSecurityAssignment($securityAssignments, $entityItem['muni_substitution_security'])) { /** @var securityAssignment $muniSubstitutionAssignment */ $muniSubstitutionAssignment = $securityAssignments[$entityItem['muni_substitution_security']]; $muniSubstitutionAssignment->setMuniSubstitution(true); } else { $muniSubstitutionAssignment = new SecurityAssignment(); $muniSubstitutionAssignment->setSecurity($muniSubstitutionSecurity); $muniSubstitutionAssignment->setSubclass($subclass); $muniSubstitutionAssignment->setModel($model); $securityAssignments[$entityItem['muni_substitution_security']] = $muniSubstitutionAssignment; } $entity->setMuniSubstitution($muniSubstitutionAssignment); } if ($entityItem['tax_loss_harvesting_security']) { /** @var Security $taxLossHarvestingSecurity */ $taxLossHarvestingSecurity = $this->getReference('security-' . $entityItem['tax_loss_harvesting_security']); if ($isExistSecurityAssignment($securityAssignments, $entityItem['tax_loss_harvesting_security'])) { /** @var securityAssignment $taxLossHarvestingAssignment */ $taxLossHarvestingAssignment = $securityAssignments[$entityItem['tax_loss_harvesting_security']]; $taxLossHarvestingAssignment->setMuniSubstitution(true); } else { $taxLossHarvestingAssignment = new SecurityAssignment(); $taxLossHarvestingAssignment->setSecurity($taxLossHarvestingSecurity); $taxLossHarvestingAssignment->setSubclass($subclass); $taxLossHarvestingAssignment->setModel($model); $securityAssignments[$entityItem['tax_loss_harvesting_security']] = $taxLossHarvestingAssignment; } $entity->setTaxLossHarvesting($taxLossHarvestingAssignment); } $child->addModelEntity($entity); } $this->addReference('cec-ria-model-' . $modelItem['index'], $child); } return $model; }
private function createRiaPortfolioModel(ObjectManager $manager, User $riaUser) { /** @var CeModel $strategy */ $strategy = $this->getReference('strategy-1'); $modelManager = new CeModelManager($manager, '\\Wealthbot\\AdminBundle\\Entity\\CeModel'); $riaModel = $modelManager->copyForOwner($strategy, $riaUser); $manager->persist($riaModel); return $riaModel; }