Exemplo n.º 1
0
 public function addAction()
 {
     $forrest = new Service\BreadcrumbService();
     if (!$forrest->exists('user')) {
         $forrest->set('user', 'admin/user');
     }
     $breadcrumb = $forrest->get('user');
     $form = new Form\User();
     $form->get('submit')->setValue('Add');
     $form->get('Country_id')->setValueOptions($this->getCountryOptions());
     $request = $this->getRequest();
     if ($request->isPost()) {
         $user = new Entity\User();
         #$form->setInputFilter($user->getInputFilter());
         $inputFilter = $this->getServiceLocator()->get('Admin\\InputFilter\\User');
         $form->setInputFilter($inputFilter->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $user->populate($form->getData());
             if ($user->getEmail() == '') {
                 $user->setEmail(null);
             }
             if ($user->getCountryId() == 0) {
                 $user->setCountry(null);
                 $user->setCountryId(null);
             }
             $user->setActive(true);
             $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
             $em->persist($user);
             $em->flush();
             return $this->redirect()->toRoute($breadcrumb->route, $breadcrumb->params, $breadcrumb->options);
         } else {
             $logger = $this->getServiceLocator()->get('Logger');
             $logger->warn($form->getMessages());
         }
     }
     return new ViewModel(array('form' => $form));
 }
Exemplo n.º 2
0
 public function sendEticketsAction()
 {
     $request = $this->getRequest();
     $long_real = (bool) $request->getParam('real', false);
     $short_real = (bool) $request->getParam('r', false);
     $isReal = $long_real | $short_real;
     #$long_count = (int) $request->getParam('count',false);
     #$short_count = (int) $request->getParam('c',false);
     #$ticket_count = $long_count + $short_count;
     $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
     # correct package ticket_status
     $qb = $em->getRepository("ErsBase\\Entity\\Package")->createQueryBuilder('p');
     $qb->where('p.ticket_status IS NULL');
     $qb->orWhere("p.ticket_status = 'not_send'");
     $noStatusPackages = $qb->getQuery()->getResult();
     echo count($noStatusPackages) . " packages need to be corrected." . PHP_EOL;
     foreach ($noStatusPackages as $package) {
         $productId = array('1' => 0);
         foreach ($package->getItems() as $item) {
             if ($item->getStatus() == 'cancelled') {
                 continue;
             }
             if ($item->getStatus() == 'transferred') {
                 continue;
             }
             if (!isset($productId[$item->getProductId()])) {
                 $productId[$item->getProductId()] = 1;
             } else {
                 $productId[$item->getProductId()]++;
             }
         }
         if ($productId[1] > 1) {
             $order = $package->getOrder();
             echo "Found more than one week ticket in package " . $package->getCode()->getValue() . " (order: " . $order->getCode()->getValue() . ")." . PHP_EOL;
         }
         # if the package status is paid and
         # there is only one week ticket in this package
         # or this package doesn't contain no week ticket
         if ($package->getStatus() == 'paid') {
             if ($productId[1] == 1 || $productId[1] == 0) {
                 $package->setTicketStatus('can_send');
             } else {
                 $package->setTicketStatus('block_send');
             }
             # if the package is not paid
         } else {
             $package->setTicketStatus('not_send');
         }
         $em->persist($package);
     }
     $em->flush();
     $packages = $em->getRepository("ErsBase\\Entity\\Package")->findBy(array('ticket_status' => 'can_send'), array(), 100);
     echo "Can send out e-tickets for " . count($packages) . " packages." . PHP_EOL;
     if (!$isReal) {
         echo "Use -r parameter to really send out all etickets." . PHP_EOL;
         exit;
     }
     echo PHP_EOL;
     for ($i = 10; $i > 0; $i--) {
         echo "Really sending out e-tickets in... " . $i . " seconds (ctrl+c to abort)   \r";
         sleep(1);
     }
     echo PHP_EOL;
     foreach ($packages as $package) {
         # prepare email (participant, buyer)
         $emailService = new Service\EmailService();
         $emailService->setFrom('*****@*****.**');
         $order = $package->getOrder();
         $participant = $package->getParticipant();
         $buyer = $order->getBuyer();
         if ($participant->getEmail() == '') {
             $emailService->addTo($buyer);
         } elseif ($participant->getEmail() == $buyer->getEmail()) {
             $emailService->addTo($buyer);
         } else {
             $emailService->addTo($participant);
             $emailService->addCc($buyer);
         }
         /*$user = new Entity\User();
           $user->setEmail('*****@*****.**');
           $emailService->addTo($user);*/
         $bcc = new Entity\User();
         $bcc->setEmail('*****@*****.**');
         $emailService->addBcc($bcc);
         $subject = "[EJC 2015] e-Ticket for " . $participant->getFirstname() . " " . $participant->getSurname() . " (order " . $order->getCode()->getValue() . ")";
         $emailService->setSubject($subject);
         $viewModel = new ViewModel(array('package' => $package));
         $viewModel->setTemplate('email/eticket-participant.phtml');
         $viewRenderer = $this->getServiceLocator()->get('ViewRenderer');
         $html = $viewRenderer->render($viewModel);
         $emailService->setHtmlMessage($html);
         # generate e-ticket pdf
         $eticketService = $this->getServiceLocator()->get('ErsBase\\Service\\ETicketService');
         $eticketService->setLanguage('en');
         $eticketService->setPackage($package);
         $eticketFile = $eticketService->generatePdf();
         echo ob_get_clean();
         echo "generated e-ticket " . $eticketFile . "." . PHP_EOL;
         $emailService->addAttachment($eticketFile);
         #$terms1 = getcwd().'/public/Terms-and-Conditions-ERS-EN-v4.pdf';
         #$terms2 = getcwd().'/public/Terms-and-Conditions-ORGA-EN-v2.pdf';
         #$emailService->addAttachment($terms1);
         #$emailService->addAttachment($terms2);
         # send out email
         $emailService->send();
         $package->setTicketStatus('send_out');
         $em->persist($package);
         $em->flush();
     }
 }
Exemplo n.º 3
0
 public function sendPaymentReminderAction()
 {
     $logger = $this->getServiceLocator()->get('Logger');
     $id = (int) $this->params()->fromRoute('id', 0);
     if (!$id) {
         $logger->info('there is no id');
         return $this->redirect()->toRoute('admin/order', array());
     }
     $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
     $order = $em->getRepository("ErsBase\\Entity\\Order")->findOneBy(array('id' => $id));
     $forrest = new Service\BreadcrumbService();
     if (!$forrest->exists('order')) {
         $forrest->set('order', 'admin/order');
     }
     $request = $this->getRequest();
     if ($request->isPost()) {
         $ret = $request->getPost('del', 'No');
         if ($ret == 'Yes') {
             $id = (int) $request->getPost('id');
             $order = $em->getRepository("ErsBase\\Entity\\Order")->findOneBy(array('id' => $id));
             # prepare email (participant, buyer)
             $emailService = new Service\EmailService();
             $emailService->setFrom('*****@*****.**');
             $buyer = $order->getBuyer();
             $emailService->addTo($buyer);
             $bcc = new Entity\User();
             $bcc->setEmail('*****@*****.**');
             $emailService->addBcc($bcc);
             $subject = "[EJC 2015] Payment reminder for your order: " . $order->getCode()->getValue();
             $emailService->setSubject($subject);
             $viewModel = new ViewModel(array('order' => $order));
             $viewModel->setTemplate('email/payment-reminder.phtml');
             $viewRender = $this->getServiceLocator()->get('ViewRenderer');
             $html = $viewRender->render($viewModel);
             $emailService->setHtmlMessage($html);
             $emailService->send();
             $breadcrumb = $forrest->get('order');
             return $this->redirect()->toRoute($breadcrumb->route, $breadcrumb->params, $breadcrumb->options);
         }
     }
     return new ViewModel(array('order' => $order, 'breadcrumb' => $forrest->get('order')));
 }
Exemplo n.º 4
0
 public function mailEncodingAction()
 {
     $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
     #$logger = $this->getServiceLocator()->get('Logger');
     $order = $em->getRepository("ErsBase\\Entity\\Order")->findOneBy(array('id' => '17'));
     $viewModel = new ViewModel(array('order' => $order));
     #$viewModel->setTemplate('email/purchase-info.phtml');
     $viewModel->setTemplate('email/order-confirmation.phtml');
     $viewRender = $this->getServiceLocator()->get('ViewRenderer');
     $html = $viewRender->render($viewModel);
     #$logger->info('html: '.$html);
     $emailService = new Service\EmailFactory();
     $emailService->setFrom('*****@*****.**');
     $buyer = new Entity\User();
     $buyer->setEmail('*****@*****.**');
     $emailService->addTo($buyer);
     $emailService->setSubject('order confirmation');
     $emailService->setHtmlMessage($html);
     #$emailService->setTextMessage('Encoding Test: 42,- €');
     $emailService->send();
     return true;
 }
Exemplo n.º 5
0
 public function sendEticketAction()
 {
     $forrest = new Service\BreadcrumbService();
     if (!$forrest->exists('package')) {
         $forrest->set('package', 'admin/order');
     }
     $logger = $this->getServiceLocator()->get('Logger');
     $id = (int) $this->params()->fromRoute('id', 0);
     if (!$id) {
         $breadcrumb = $forrest->get('package');
         return $this->redirect()->toRoute($breadcrumb->route, $breadcrumb->params, $breadcrumb->options);
     }
     $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
     $package = $em->getRepository("ErsBase\\Entity\\Package")->findOneBy(array('id' => $id));
     $request = $this->getRequest();
     if ($request->isPost()) {
         $ret = $request->getPost('del', 'No');
         if ($ret == 'Yes') {
             $id = (int) $request->getPost('id');
             $package = $em->getRepository("ErsBase\\Entity\\Package")->findOneBy(array('id' => $id));
             if ($package->getStatus() != 'paid') {
                 return $this->redirect()->toRoute('admin/package', array('action' => 'send-eticket'));
             }
             # prepare email (participant, buyer)
             $emailService = new ersService\EmailService();
             $emailService->setFrom('*****@*****.**');
             $order = $package->getOrder();
             $participant = $package->getParticipant();
             $buyer = $order->getBuyer();
             if ($participant->getEmail() == '') {
                 $emailService->addTo($buyer);
             } elseif ($participant->getEmail() == $buyer->getEmail()) {
                 $emailService->addTo($buyer);
             } else {
                 $emailService->addTo($participant);
                 $emailService->addCc($buyer);
             }
             $bcc = new Entity\User();
             $bcc->setEmail('*****@*****.**');
             $emailService->addBcc($bcc);
             $subject = "[EJC 2015] e-Ticket for " . $participant->getFirstname() . " " . $participant->getSurname() . " (order " . $order->getCode()->getValue() . ")";
             $emailService->setSubject($subject);
             $viewModel = new ViewModel(array('package' => $package));
             $viewModel->setTemplate('email/eticket-participant.phtml');
             $viewRender = $this->getServiceLocator()->get('ViewRenderer');
             $html = $viewRender->render($viewModel);
             $emailService->setHtmlMessage($html);
             # generate e-ticket pdf
             $eticketService = $this->getServiceLocator()->get('ErsBase\\Service\\ETicketService');
             $eticketService->setLanguage('en');
             $eticketService->setPackage($package);
             $eticketFile = $eticketService->generatePdf();
             # send out email
             $emailService->addAttachment($eticketFile);
             #$terms1 = getcwd().'/public/Terms-and-Conditions-ERS-EN-v4.pdf';
             #$terms2 = getcwd().'/public/Terms-and-Conditions-ORGA-EN-v2.pdf';
             #$emailService->addAttachment($terms1);
             #$emailService->addAttachment($terms2);
             $emailService->send();
             $package->setTicketStatus('send_out');
             $em->persist($package);
             $em->flush();
             /*$eticketService = $this->getServiceLocator()->get('ErsBase\Service\ETicketService');
               $eticketService->setPackage($package);
               $filePath = $eticketService->generatePdf();
               $logger->info('filename: '.$filePath);*/
             $breadcrumb = $forrest->get('order');
             return $this->redirect()->toRoute($breadcrumb->route, $breadcrumb->params, $breadcrumb->options);
         }
     }
     return new ViewModel(array('package' => $package, 'breadcrumb' => $forrest->get('package')));
 }
Exemplo n.º 6
0
 public function sendConfirmationEmail($order_id)
 {
     $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
     #$session_order = new Container('order');
     $order = $em->getRepository("ErsBase\\Entity\\Order")->findOneBy(array('id' => $order_id));
     $buyer = $order->getBuyer();
     $this->setFrom('*****@*****.**');
     $this->addTo($buyer);
     $bcc = new Entity\User();
     $bcc->setEmail($this->getFrom());
     $this->addBcc($bcc);
     $subject = "Your registration for EJC 2015 (order " . $order->getCode()->getValue() . ")";
     $this->setSubject($subject);
     $viewModel = new ViewModel(array('order' => $order));
     $viewModel->setTemplate('email/order-confirmation.phtml');
     $viewRender = $this->getServiceLocator()->get('ViewRenderer');
     $html = $viewRender->render($viewModel);
     $this->setHtmlMessage($html);
     $terms1 = getcwd() . '/public/Terms-and-Conditions-ERS-EN-v4.pdf';
     $terms2 = getcwd() . '/public/Terms-and-Conditions-ORGA-EN-v2.pdf';
     $this->addAttachment($terms1);
     $this->addAttachment($terms2);
     $this->send();
     #$orderStatus = new Entity\OrderStatus();
     #$orderStatus->setOrder($order);
     #$orderStatus->setValue('confirmation sent');
     #$em->persist($orderStatus);
     # TODO: Create log entry that email was sent.
     $em->flush();
     return true;
 }