/** * "Success" form handler * * @param RFPRequest $entity * @return bool */ protected function onSuccess(RFPRequest $entity) { $quote = new Quote(); $quote->setRequest($entity)->setOwner($this->user)->setAccount($entity->getAccount())->setAccountUser($entity->getAccountUser())->setOrganization($this->user->getOrganization()); foreach ($entity->getRequestProducts() as $requestProduct) { $quoteProduct = new QuoteProduct(); $quoteProduct->setProduct($requestProduct->getProduct())->setType(QuoteProduct::TYPE_REQUESTED)->setCommentAccount($requestProduct->getComment()); foreach ($requestProduct->getRequestProductItems() as $requestProductItem) { $quoteProductRequest = new QuoteProductRequest(); $quoteProductRequest->setQuantity($requestProductItem->getQuantity())->setPrice($requestProductItem->getPrice())->setProductUnit($requestProductItem->getProductUnit())->setRequestProductItem($requestProductItem); $quoteProduct->addQuoteProductRequest($quoteProductRequest); $quoteProductOffer = new QuoteProductOffer(); $quoteProductOffer->setQuantity($requestProductItem->getQuantity())->setProductUnit($requestProductItem->getProductUnit())->setPriceType(QuoteProductOffer::PRICE_TYPE_UNIT)->setAllowIncrements(true); $quoteProduct->addQuoteProductOffer($quoteProductOffer); } $quote->addQuoteProduct($quoteProduct); } try { $this->manager->persist($quote); $this->manager->flush(); $this->quote = $quote; } catch (DBALException $e) { $this->exception = $e; return false; } return true; }
/** * @param User $emailOwner * @param OrganizationInterface $organization * * @return InternalEmailOrigin */ protected function createUserInternalOrigin(User $emailOwner, OrganizationInterface $organization = null) { $organization = $organization ? $organization : $emailOwner->getOrganization(); $originName = InternalEmailOrigin::BAP . '_User_' . $emailOwner->getId(); $outboxFolder = new EmailFolder(); $outboxFolder->setType(FolderType::SENT)->setName(FolderType::SENT)->setFullName(FolderType::SENT); $origin = new InternalEmailOrigin(); $origin->setName($originName)->addFolder($outboxFolder)->setOwner($emailOwner)->setOrganization($organization); $emailOwner->addEmailOrigin($origin); $this->getEntityManager()->persist($origin); $this->getEntityManager()->persist($emailOwner); return $origin; }
public function testOrganization() { $entity = new User(); $organization = new Organization(); $this->assertNull($entity->getOrganization()); $entity->setOrganization($organization); $this->assertSame($organization, $entity->getOrganization()); }
/** * @param EntityManager $em * @param UnitOfWork $uow * @param User $user */ protected function createCalendarsForNewUser($em, $uow, $user) { $owningOrganization = $user->getOrganization(); $this->createCalendar($em, $uow, $user, $owningOrganization); foreach ($user->getOrganizations() as $organization) { if ($organization->getId() !== $owningOrganization->getId()) { $this->createCalendar($em, $uow, $user, $organization); } } }
/** * Get count new emails * * @param User $user * * @return mixed */ public function getCountNewEmails(User $user) { return $this->createQueryBuilder('e')->select('COUNT(DISTINCT e)')->leftJoin('e.emailUsers', 'eu')->where('eu.organization = :organizationId')->andWhere('eu.owner = :ownerId')->andWhere('eu.seen = :seen')->setParameter('organizationId', $user->getOrganization()->getId())->setParameter('ownerId', $user->getId())->setParameter('seen', false)->getQuery()->getSingleScalarResult(); }
/** * @param User $user * @return null|Calendar */ protected function getDefaultUserCalendar(User $user) { return $this->calendarRepository->findDefaultCalendar($user->getId(), $user->getOrganization()->getId()); }