/** * @covers EventTicket::getAvailableForDateTime() */ public function testGetAvailableForDatetimeWithQuantity() { $ticket = new EventTicket(); $ticket->StartType = 'Date'; $ticket->StartDate = date('Y-m-d', time() - 3600 * 24); $ticket->EndType = 'Date'; $ticket->EndDate = date('Y-m-d', time() + 3600 * 24); $ticket->write(); $time = new RegisterableDateTime(); $time->write(); $ticket->Available = 50; $avail = $ticket->getAvailableForDateTime($time); $this->assertEquals(50, $avail['available']); // Create a registration that consumes some of the tickets. $rego = new EventRegistration(); $rego->Status = 'Valid'; $rego->TimeID = $time->ID; $rego->write(); $rego->Tickets()->add($ticket, array('Quantity' => 49)); $avail = $ticket->getAvailableForDateTime($time); $this->assertEquals(1, $avail['available']); // Then check we can exclude it. $avail = $ticket->getAvailableForDateTime($time, $rego->ID); $this->assertEquals(50, $avail['available']); // Then bump up the quantity so there are no more available. $rego->Tickets()->remove($ticket); $rego->Tickets()->add($ticket, array('Quantity' => 50)); $avail = $ticket->getAvailableForDateTime($time); $this->assertFalse($avail['available']); }
/** * Creates an email instance from a registration object. * * @param EventRegistration $registration * @return EventRegistrationDetailsEmail */ public static function factory(EventRegistration $registration) { $email = new self(); $siteconfig = SiteConfig::current_site_config(); $email->setTo($registration->Email); $email->setSubject(sprintf('Registration Details For %s (%s)', $registration->Time()->EventTitle(), $siteconfig->Title)); $email->populateTemplate(array('Registration' => $registration, 'SiteConfig' => $siteconfig)); if ($generator = $registration->Time()->Event()->TicketGenerator) { $generator = new $generator(); $path = $generator->generateTicketFileFor($registration); $name = $generator->getTicketFilenameFor($registration); $mime = $generator->getTicketMimeTypeFor($registration); if ($path) { $email->attachFile($path, $name, $mime); } } singleton(get_class())->extend('updateEmail', $email, $registration); return $email; }
/** * @covers RegisterableDateTime::getRemainingCapacity() */ public function testGetRemainingCapacity() { $event = $this->objFromFixture('RegisterableEvent', 'event'); $datetime = $this->objFromFixture('RegisterableDateTime', 'datetime'); $ticket = $this->objFromFixture('EventTicket', 'ticket'); $datetime->Capacity = 0; $datetime->write(); $this->assertEquals(true, $datetime->getRemainingCapacity()); $datetime->Capacity = 50; $datetime->write(); $this->assertEquals(50, $datetime->getRemainingCapacity()); $rego = new EventRegistration(); $rego->TimeID = $datetime->ID; $rego->write(); $rego->Tickets()->add($ticket, array('Quantity' => 49)); $this->assertEquals(1, $datetime->getRemainingCapacity()); $this->assertEquals(50, $datetime->getRemainingCapacity($rego->ID)); $rego->Tickets()->remove($ticket); $rego->Tickets()->add($ticket, array('Quantity' => 50)); $this->assertFalse(!!$datetime->getRemainingCapacity()); $this->assertEquals(50, $datetime->getRemainingCapacity($rego->ID)); }
// on the waitinglist register_error(elgg_echo("event_manager:action:register:email:account_exists:waiting")); forward($forward_url); case EVENT_MANAGER_RELATION_ATTENDING_PENDING: default: // pending confirmation resend mail event_manager_send_registration_validation_email($event, $object); register_error(elgg_echo("event_manager:action:register:email:account_exists:pending")); forward($forward_url); } } } } if (!$object) { // create new registration $object = new EventRegistration(); $object->title = 'EventRegistrationNotLoggedinUser'; $object->description = 'EventRegistrationNotLoggedinUser'; $object->owner_guid = $event->getGUID(); $object->container_guid = $event->getGUID(); $object->save(); } elgg_set_ignore_access($old_ia); } // save all answers foreach ($answers as $question_guid => $answer) { if (!empty($question_guid) && ($question = get_entity($question_guid))) { if ($question instanceof EventRegistrationQuestion) { $question->updateAnswerFromUser($event, $answer, $object->getGUID()); } } else {
/** * Allows a user to view the details of their registration. * * @param SS_HTTPRequest $request * @return EventRegistrationDetailsController */ public function registration($request) { $id = $request->param('ID'); if (!ctype_digit($id)) { $this->httpError(404); } $rego = EventRegistration::get()->byID($id); if (!$rego || $rego->Time()->EventID != $this->ID) { $this->httpError(404); } $request->shift(); $request->shiftAllParams(); return new EventRegistrationDetailsController($this, $rego); }