/**
  * @param int $member_id
  * @param int $summit_id
  * @return ISummitAttendee
  */
 public function getByMemberAndSummit($member_id, $summit_id)
 {
     $cache_key = sprintf('%s_%s', $member_id, $summit_id);
     $attendee = SummitAttendee::get()->filter(array('MemberID' => $member_id, 'SummitID' => $summit_id))->first();
     if (is_null($attendee) && isset($this->cache[$cache_key])) {
         $attendee = $this->cache[$cache_key];
     }
     return $attendee;
 }
 /**
  * @param string $search_term
  * @param int $page
  * @param int $page_size
  * @param int $summit_id
  * @return array
  */
 public function findAttendeesBySummit($search_term, $page, $page_size, $summit_id)
 {
     $where_clause = "SummitAttendee.SummitID = {$summit_id} ";
     if (!empty($search_term)) {
         $where_clause .= "AND (Member.FirstName LIKE '{$search_term}%'\n                                OR Member.Surname LIKE '{$search_term}%'\n                                OR CONCAT(Member.FirstName,' ',Member.Surname) LIKE '{$search_term}%'\n                                OR SummitAttendeeTicket.ExternalOrderId = '{$search_term}'\n                                OR Member.Email LIKE '{$search_term}%' ) ";
     }
     $list = SummitAttendee::get()->leftJoin("Member", "Member.ID = SummitAttendee.MemberID")->leftJoin("SummitAttendeeTicket", "SummitAttendeeTicket.OwnerID = SummitAttendee.ID")->where($where_clause)->distinct(true);
     $count = count($list);
     $offset = ($page - 1) * $page_size;
     $data = $list->limit($page_size, $offset);
     return array($data, $count);
 }
Ejemplo n.º 3
0
    $event->EntityID = $item->ID;
    $event->Type = 'INSERT';
    $event->OwnerID = $attendee->MemberID;
    $event->SummitID = $summit_id;
    $event->Metadata = $metadata;
    $event->write();
});
PublisherSubscriberManager::getInstance()->subscribe('manymanylist_removed_item', function ($list, $item) {
    if (!$item instanceof ISummitEvent) {
        return;
    }
    $summit_id = $item->getField("SummitID");
    if (is_null($summit_id) || $summit_id == 0) {
        $summit_id = Summit::ActiveSummitID();
    }
    $metadata = '';
    $join_table = $list->getJoinTable();
    if ($join_table !== 'SummitAttendee_Schedule') {
        return;
    }
    $attendee_id = $list->getForeignID();
    $attendee = SummitAttendee::get()->byID($attendee_id);
    $event = new SummitEntityEvent();
    $event->EntityClassName = 'MySchedule';
    $event->EntityID = $item->ID;
    $event->Type = 'DELETE';
    $event->OwnerID = $attendee->MemberID;
    $event->SummitID = $summit_id;
    $event->Metadata = $metadata;
    $event->write();
});
Ejemplo n.º 4
0
 protected function validate()
 {
     $valid = parent::validate();
     if (!$valid->valid()) {
         return $valid;
     }
     if (intval($this->MemberID) == 0) {
         return $valid->error('Member is required!');
     }
     if (intval($this->SummitID) == 0) {
         return $valid->error('Summit is required!');
     }
     $old_ones = intval(SummitAttendee::get()->filter(array('MemberID' => $this->MemberID, 'SummitID' => $this->SummitID))->where(" ID <> {$this->ID} ")->count());
     if ($old_ones > 0) {
         return $valid->error(sprintf('There is already an attendee for member %s on summit %s!', $this->MemberID, $this->SummitID));
     }
     return $valid;
 }
 public function editAttendee(SS_HTTPRequest $request)
 {
     $summit_id = intval($request->param('SummitID'));
     $summit = Summit::get()->byID($summit_id);
     $attendee_id = intval($request->param('AttendeeID'));
     $attendee = SummitAttendee::get()->byID($attendee_id);
     Requirements::css('summit/css/simple-sidebar.css');
     Requirements::css('themes/openstack/bower_assets/chosen/chosen.min.css');
     Requirements::css('themes/openstack/bower_assets/sweetalert/dist/sweetalert.css');
     Requirements::javascript('themes/openstack/bower_assets/sweetalert/dist/sweetalert.min.js');
     Requirements::javascript('themes/openstack/bower_assets/jquery-validate/dist/jquery.validate.min.js');
     Requirements::javascript('themes/openstack/bower_assets/jquery-validate/dist/additional-methods.min.js');
     Requirements::javascript('themes/openstack/bower_assets/chosen/chosen.jquery.min.js');
     Requirements::javascript('themes/openstack/bower_assets/bootstrap3-typeahead/bootstrap3-typeahead.min.js');
     Requirements::javascript('summit/javascript/simple-sidebar.js');
     Requirements::javascript('//tinymce.cachefly.net/4.3/tinymce.min.js');
     Requirements::javascript('summit/javascript/summitapp-editattendee.js');
     return $this->getViewer('EditAttendee')->process($this->customise(array('Summit' => $summit, 'Attendee' => $attendee)));
 }
 /**
  * @param int $member_id
  * @param int $summit_id
  * @return ISummitAttendee
  */
 public function getByMemberAndSummit($member_id, $summit_id)
 {
     return SummitAttendee::get()->filter(array('MemberID' => $member_id, 'SummitID' => $summit_id))->first();
 }