application = $application; } /** * @return Deliverer */ private function getDeliverer() { return $this->application['notification.deliverer']; } /** * @param Order $order * @param User $recipient * @param array $baseIds */ public function notifyCreation(Order $order, User $recipient, array $baseIds = array()) { $mail = MailInfoNewOrder::create($this->application, Receiver::fromUser($recipient)); $mail->setUser($order->getUser()); if (($locale = $recipient->getLocale()) != null) { $mail->setLocale($locale); } $this->getDeliverer()->deliver($mail); } /** * @param OrderDelivery $delivery * @param array $baseIds */ public function notifyDelivery(OrderDelivery $delivery, array $baseIds = array()) { $order = $delivery->getOrder(); $recipient = Receiver::fromUser($order->getUser()); $sender = Emitter::fromUser($delivery->getAdmin()); $basket = $order->getBasket(); $token = $this->application['manipulator.token']->createBasketAccessToken($basket, $order->getUser()); $url = $this->application->url('lightbox_compare', [ 'basket' => $basket->getId(), 'LOG' => $token->getValue(), ]); $mail = MailInfoOrderDelivered::create($this->application, $recipient, $sender, null, $url, $delivery->getExpireOn()); $mail->setBasket($basket); $mail->setDeliverer($delivery->getAdmin()); if (($locale = $order->getUser()->getLocale()) != null) { $mail->setLocale($locale); } elseif (($locale1 = $delivery->getAdmin()->getLocale()) != null) { $mail->setLocale($locale1); } $this->getDeliverer()->deliver($mail); } /** * @param OrderDelivery $delivery * @param array $baseIds */ public function notifyDenial(OrderDelivery $delivery, array $baseIds = array()) { $sender = Emitter::fromUser($delivery->getAdmin()); $recipient = Receiver::fromUser($delivery->getOrder()->getUser()); // DO not send email PHRAS-1545 // $mail = MailInfoOrderCancelled::create($this->application, $recipient, $sender); // // $mail->setQuantity($delivery->getQuantity()); // $mail->setDeliverer($delivery->getAdmin()); // // if (($locale = $delivery->getOrder()->getUser()->getLocale()) != null) { // $mail->setLocale($locale); // } elseif (($locale1 = $delivery->getAdmin()->getLocale()) != null) { // $mail->setLocale($locale1); // } // // $this->getDeliverer()->deliver($mail); } }