/**
  * @param Partner $partner
  * @return bool
  */
 protected function isAccountHasPartner(Partner $partner)
 {
     $queryBuilder = $this->entityManager->getRepository('OroCRMPartnerBundle:Partner')->createQueryBuilder('partner')->select('COUNT(partner)')->where('partner.account = :account')->setParameter('account', $partner->getAccount())->setMaxResults(1);
     if ($partner->getId()) {
         $queryBuilder->andWhere('partner != :partner')->setParameter('partner', $partner);
     }
     return (bool) $queryBuilder->getQuery()->getSingleScalarResult();
 }
 /**
  * @param Partner $partner
  */
 public function soapInit($partner)
 {
     $this->id = $partner->getId();
     $this->startDate = $partner->getStartDate();
     $this->partnerCondition = $partner->getPartnerCondition();
     $this->status = $partner->getStatus() ? $partner->getStatus()->getName() : null;
     $this->owner = $partner->getOwner() ? $partner->getOwner()->getId() : null;
     $this->account = $partner->getAccount() ? $partner->getAccount()->getId() : null;
 }
 public function testRemoveGitHubAccount()
 {
     $account = $this->getMock('OroCRM\\Bundle\\PartnerBundle\\Entity\\GitHubAccount');
     $account->expects($this->once())->method('setPartner')->with($this->partner);
     $this->partner->addGitHubAccount($account);
     $this->partner->removeGitHubAccount(null);
     $actual = $this->partner->getGitHubAccounts();
     $this->assertCount(1, $actual);
     $this->partner->removeGitHubAccount($account);
     $this->assertCount(0, $actual);
 }
 /**
  * @param string  $key
  * @param Partner $entity
  */
 public function fillEntityData($key, $entity)
 {
     $userRepo = $this->templateManager->getEntityRepository('Oro\\Bundle\\UserBundle\\Entity\\User');
     $accountRepo = $this->templateManager->getEntityRepository('OroCRM\\Bundle\\AccountBundle\\Entity\\Account');
     $organizationRepo = $this->templateManager->getEntityRepository('Oro\\Bundle\\OrganizationBundle\\Entity\\Organization');
     switch ($key) {
         case 'Smith':
             $entity->setId(1)->setPartnerCondition('Aenean commodo ligula eget dolor')->setStartDate(new \DateTime())->setStatus(new PartnerStatus('active'))->setAccount($accountRepo->getEntity($key))->setOwner($userRepo->getEntity('John Doo'))->setOrganization($organizationRepo->getEntity('default'));
             return;
     }
     parent::fillEntityData($key, $entity);
 }
 public function load(ObjectManager $manager)
 {
     $adminUser = $manager->getRepository('OroUserBundle:User')->findOneByUsername('admin');
     $partner = new Partner();
     $partner->setAccount($this->getReference('orocrm_partner:test_account_2'));
     $partner->setOwner($adminUser);
     $manager->persist($partner);
     $manager->flush();
     $this->addReference('orocrm_partner:test_partner_1', $partner);
     $partner = new Partner();
     $partner->setAccount($this->getReference('orocrm_partner:test_account_3'));
     $partner->setOwner($adminUser);
     $manager->persist($partner);
     $manager->flush();
     $this->addReference('orocrm_partner:test_partner_2', $partner);
 }
 /**
  * {@inheritDoc}
  */
 public function load(ObjectManager $objectManager)
 {
     $accounts = $this->getAccountsWithoutPartners($objectManager, count(self::$fixtureConditions));
     if (!$accounts) {
         return;
     }
     $users = $objectManager->getRepository('OroUserBundle:User')->findAll();
     $statuses = $objectManager->getRepository('OroCRMPartnerBundle:PartnerStatus')->findAll();
     $usersCount = count($users);
     $statusesCount = count($statuses);
     $organization = $this->getReference('default_organization');
     foreach ($accounts as $index => $account) {
         $partner = new Partner();
         $partner->setAccount($account);
         $partner->setOwner($users[rand(0, $usersCount - 1)]);
         $partner->setStatus($statuses[rand(0, $statusesCount - 1)]);
         $partner->setPartnerCondition(self::$fixtureConditions[$index]);
         $partner->setOrganization($organization);
         $objectManager->persist($partner);
     }
     $objectManager->flush();
 }
 /**
  * @Route("/widget/partner-github-accounts/{id}",
  *      name="orocrm_partner_github_accounts_widget",
  *      requirements={"id"="\d+"}
  * )
  * @AclAncestor("orocrm_partner_view")
  * @Template("OroCRMPartnerBundle:GitHubAccount:gitHubAccounts.html.twig")
  */
 public function partnerGitHubAccountsAction(Partner $partner)
 {
     return array('gitHubAccounts' => $partner->getGitHubAccounts());
 }