/**
  * A basic test example.
  *
  * @return void
  */
 public function testBuildTicketName()
 {
     $ticket = new Ticket();
     $project = new Project();
     $project->name = 'test';
     $ticket->id = 1;
     $ticket->project = $project;
     $this->assertEquals('test-1', $ticket->getTicketName());
 }
Example #2
0
 public function eventTicketFormSucceeded(Nette\Application\UI\Form $form, $values)
 {
     // Udalost
     $event = $this->event->get($values['event_id']);
     // Drive zamluvene vstupenky
     $duplicite = $this->ticket->where('event_id = ? AND email = ?', [$values['event_id'], $values['email']]);
     // Vycerpan limit
     if (count($duplicite) >= $event['max_ticket_per_email']) {
         $this->flashMessage('Limit na počet vstupenek pro Váš email byl již vyčerpán, použijte jiný email.', 'warning');
         $this->redirect('this');
     }
     // Ulozeni do databaze
     try {
         $ticket = $this->ticket->insert($values);
     } catch (\Exception $e) {
         $ticket = false;
     }
     // Notifikace na email a odeslání vstupenky
     if ($ticket) {
         $this->mailNotify('SOS - nova vstupenka', 'Uzivatel s emailem ' . $values['email'] . ' si zazadal o vstupenku na akci ' . $event->name . '.', $values);
         $this->sendTicket($ticket);
         $this->flashMessage('Byla Vám zaslána vstupenka.', 'success');
     } else {
         $this->flashMessage('Je nám líto, ale došlo k chybě. Pro vstupenku se obraťte se pořadatelku akce.', 'danger');
     }
     $this->redirect('this');
 }
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     Model::unguard();
     Project::truncate();
     Ticket::truncate();
     $this->call(ProjectTableSeeder::class);
     $this->call(TicketTableSeeder::class);
     Model::reguard();
 }
 /**
  * @param $ticketId
  * @param $projectId
  */
 private function saveNewTicket($ticketId, $projectId)
 {
     $ticket = new Ticket();
     $ticket->id = $ticketId;
     $ticket->project_id = $projectId;
     $ticket->save();
 }
Example #5
0
 /**
  * @covers \App\Model\Ticket::setTicketName
  * @covers \App\Model\Ticket::getProjectIdByName
  */
 public function testSetTicketNameException()
 {
     $ticket = new Ticket();
     $this->setExpectedException('Psy\\Exception\\RuntimeException', 'No project found for name: PROJECT');
     $ticket->setTicketName('PROJECT-NOTEXISTING');
 }
Example #6
0
 /**
  * Saves new tickets.
  *
  * @param array $tickets
  */
 private function saveNewTickets(array $tickets)
 {
     foreach ($tickets as $ticket) {
         try {
             $newTicket = new Ticket();
             $newTicket->setTicketName($ticket['key']);
             $newTicket->save();
         } catch (RuntimeException $e) {
         }
     }
 }
Example #7
0
 public function actionDelete($id)
 {
     $this->ticket->get($id)->delete();
     $this->flashMessage('Vstupenka odstraněna.', 'success');
     $this->redirect('default');
 }
 public function destroy($slug)
 {
     $ticket = Ticket::whereSlug($slug)->firstOrFail();
     $ticket->delete();
     return redirect('/tickets')->with('status', 'The ticket ' . $slug . ' has been deleted!');
 }
    public function newsletterFormSucceeded(UI\Form $form, $values)
    {
        if (!$values['event_id']) {
            $values['event_id'] = null;
        }
        $this->saveFormValues($values);
        $contacts = array();
        if (!$values['event_id'] && $values['notTest']) {
            foreach ($this->registration as $registration) {
                $contacts[] = $registration->email;
            }
            foreach ($this->ticket as $ticket) {
                $contacts[] = $ticket->email;
            }
            $contacts = array_unique($contacts);
        } elseif ($values['notTest']) {
            foreach ($this->registration->where('event_id = ?', $values['event_id']) as $registration) {
                $contacts[] = $registration->email;
            }
            foreach ($this->ticket->where('event_id = ?', $values['event_id']) as $ticket) {
                $contacts[] = $ticket->email;
            }
            $contacts = array_unique($contacts);
        } else {
            $contacts = [0 => self::EMAIL_OPERATOR];
        }
        $mail = new Nette\Mail\Message();
        $mail->setFrom('Hudební S.O.S. <*****@*****.**>')->setSubject($values['subject'])->setHtmlBody('
				<html><head><title>' . $values['subject'] . '</title></head>
				<body>
				<div style="background-color: rgb(197, 230, 235);color: rgb(0, 117, 117);letter-spacing: 0.3px; margin: auto auto; padding:1em 1em">
				' . $values['text'] . '
				<br /><br />
				</div>
				<hr style="border:0;border-top: 1px solid #DDD;" />
				<center>
				<small>
				<font style="color:silver;font-family:\'Helvetica Neue\', sans-sherif">Pro odhlášení odpovězte na tento email slovy "Prosím odhlásit".</font>
				</small>
				</center>
				</body></html>');
        /** @var Nette\Http\FileUpload $attach */
        foreach ($values['files'] as $attach) {
            $mail->addAttachment($attach->getSanitizedName(), $attach->getContents());
        }
        $counter = 0;
        foreach ($contacts as $contact) {
            $counter++;
            $mail->addBcc($contact);
        }
        $mailer = new Nette\Mail\SendmailMailer();
        try {
            $mailer->send($mail);
            if (!$values['notTest']) {
                $this->flashMessage("Byl odeslán testovací email.", 'success');
            } else {
                $this->flashMessage("Bylo odesláno {$counter} emailů.", 'success');
            }
        } catch (\Exception $e) {
            $this->flashMessage('Při odesílání došlo k chybě. :: ' . $e->getMessage());
        }
        $this->redirect('this');
    }