/**
  * Check account outside fund and create new if does not exist
  *
  * @param ClientAccount $account
  * @param SecurityAssignment $securityAssignment
  * @param bool $isPreferred
  * @return mixed|void
  * @throws \Wealthbot\AdminBundle\Exception\DataAlreadyExistsException
  */
 protected function checkAccountAssociation(ClientAccount $account, SecurityAssignment $securityAssignment, $isPreferred)
 {
     if ($this->existAccountAssociation($account->getId(), $securityAssignment->getId())) {
         throw new DataAlreadyExistsException(sprintf("SecurityAssignment with id: %s already exist for client account with id: %s", $securityAssignment->getId(), $account->getId()));
     }
     $this->createAccountAssociation($account, $securityAssignment, $isPreferred);
 }
 /**
  * Check if account outside fund exist and create new if it does not exist
  *
  * @param ClientAccount $account
  * @param SecurityAssignment $securityAssignment
  * @param $isPreferred
  * @return mixed|null|AccountOutsideFund
  */
 protected function checkAccountAssociation(ClientAccount $account, SecurityAssignment $securityAssignment, $isPreferred)
 {
     $association = $this->existAccountAssociation($account->getId(), $securityAssignment->getId());
     if (!$association) {
         $association = $this->createAccountAssociation($account, $securityAssignment, $isPreferred);
     } else {
         $this->updateAccountAssociation($association, $isPreferred);
     }
     return $association;
 }
 protected function denyAccessForCurrentRetirementAccount(ClientAccount $account)
 {
     /** @var $em EntityManager */
     /** @var $repo ClientAccountRepository */
     $em = $this->get('doctrine.orm.entity_manager');
     $repo = $em->getRepository('WealthbotClientBundle:ClientAccount');
     $isCurrentRetirement = $repo->findRetirementAccountById($account->getId()) ? true : false;
     if ($isCurrentRetirement) {
         throw new AccessDeniedException('Current retirement accounts has not this step.');
     }
 }
 /**
  * Find new consolidator for accounts by old consolidator account object
  *
  * @param ClientAccount $oldConsolidator
  * @return null|ClientAccount
  */
 public function findNewConsolidatorForAccounts(ClientAccount $oldConsolidator)
 {
     $clientId = $oldConsolidator->getClientId() ? $oldConsolidator->getClientId() : $oldConsolidator->getClient()->getId();
     return $this->findNewConsolidatorByClientIdAndSystemTypeAndOwner($clientId, $oldConsolidator->getSystemType(), $oldConsolidator->getOwner(), $oldConsolidator->getId());
 }