/** * @param Event $event * @param User $user * * @return Ticket */ public function createTicket($event, $user) { // @todo це ще треба передивитись і поправити $em = $this->container->get('doctrine.orm.default_entity_manager'); // Вытягиваем скидку из конфига $paymentsConfig = $this->container->getParameter('stfalcon_event.config'); $discount = (double) $paymentsConfig['discount']; $ticket = new Ticket(); $ticket->setEvent($event); $ticket->setUser($user); $ticket->setAmountWithoutDiscount($event->getCost()); $paidPayments = $em->getRepository('StfalconEventBundle:Payment')->findPaidPaymentsForUser($user); // если пользователь имеет оплаченные события, // то он получает скидку (если для события разрешена такая скидка) if (count($paidPayments) > 0 && $event->getUseDiscounts()) { $cost = $event->getCost() - $event->getCost() * $discount; $hasDiscount = true; } else { $cost = $event->getCost(); $hasDiscount = false; } $ticket->setAmount($cost); $ticket->setHasDiscount($hasDiscount); $em->persist($ticket); $em->flush(); return $ticket; }
/** * @param Event $event * @param User $user * * @return Ticket */ private function createTicket($event, $user) { // @todo це в сервісі мало б бути $em = $this->getDoctrine()->getManager(); // Вытягиваем скидку из конфига $paymentsConfig = $this->container->getParameter('stfalcon_payment.config'); $discount = (double) $paymentsConfig['discount']; $ticket = new Ticket(); $ticket->setEvent($event); $ticket->setUser($user); $ticket->setAmountWithoutDiscount($event->getCost()); $paidPayments = $em->getRepository('StfalconPaymentBundle:Payment')->findPaidPaymentsForUser($user); // Если пользователь имеет оплаченные события, то он получает скидку if (count($paidPayments) > 0) { $cost = $event->getCost() - $event->getCost() * $discount; $hasDiscount = true; } else { $cost = $event->getCost(); $hasDiscount = false; } $ticket->setAmount($cost); $ticket->setHasDiscount($hasDiscount); $em->persist($ticket); $em->flush(); return $ticket; }