You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

136 lines
5.0 KiB

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Event_subscriber_guest_model extends CI_Model {
public function __construct() {
parent::__construct();
}
public function register($user_id, $event_schedule_id, $guest_info)
{
foreach ($guest_info as $info) {
$this->db->insert('event_subscriber_guest', array(
'inviter_id' => $user_id,
'event_schedule_id' => $event_schedule_id,
'first_name' => $info['first_name'],
'last_name' => $info['last_name']
)
);
}
}
public function cancel_current_event_registration($user_id, $event_schedule_id)
{
$query = $this->db->select('*')
->from('event_subscriber_guest')
->where('event_schedule_id', $event_schedule_id)
->where('inviter_id', $user_id)
->where('status', 1)
->get()
->result();
return $query;
}
public function cancel_current_waitlist_registration($user_id, $event_schedule_id)
{
$query = $this->db->select('*')
->from('event_subscriber_guest')
->where('event_schedule_id', $event_schedule_id)
->where('inviter_id', $user_id)
->where('status', 1)
->get()
->result();
return $query;
}
public function deregister_guest($event_id, $user_id, $user_agent, $event_schedule_id, $seats_cancelled)
{
$subscriber_details = $this->db->select('registration_id, number_of_guest')
->from('event_registration')
->where('event_schedule_id', $event_schedule_id)
->where('subscriber', $user_id)
->where('status', 1)
->get()
->row();
// Cancel Guest
// $this->db->where('inviter_id', $user_id);
// $this->db->where('event_schedule_id', $event_schedule_id);
// $this->db->where('status', 1);
// $this->db->where_in('email_address', $cancelled_guest);
// $this->db->update('event_subscriber_guest', array('status'=>0));
// Enter cancel record
$this->db->insert('event_deregistration',
array(
'registration_id' => $subscriber_details->registration_id,
'event_schedule_id' => $event_schedule_id,
'subscriber' => $user_id,
'seats_reserve' => $subscriber_details->number_of_guest + 1,
'number_of_place' => $seats_cancelled,
'user_agent' => $user_agent
)
);
// Reduce number of guest
$guest = 'number_of_guest-'.$seats_cancelled;
$this->db->set('number_of_guest', $guest, FALSE);
$this->db->where('event_schedule_id', $event_schedule_id);
$this->db->where('subscriber', $user_id);
$this->db->where('status', 1);
$this->db->update('event_registration');
// Free seats taken up by canceled guest
$reserved_seats = 'remaining_seat+'.$seats_cancelled;
$this->db->set('remaining_seat', $reserved_seats, FALSE);
$this->db->where('event_schedule_id', $event_schedule_id);
$this->db->update('event_schedule');
}
public function deregister_waitlist_guest($event_schedule_id, $user_id, $user_agent, $cancelled_guest, $seats_cancelled)
{
$subscriber_details = $this->db->select('wait_list_id, number_of_places')
->from('event_wait_list')
->where('event_schedule_id', $event_schedule_id)
->where('wait_list_subscriber', $user_id)
->where('status', 1)
->get()
->row();
// Cancel Guest
$this->db->where('inviter_id', $user_id);
$this->db->where('event_schedule_id', $event_schedule_id);
$this->db->where('status', 1);
$this->db->where_in('email_address', $cancelled_guest);
$this->db->update('event_subscriber_guest', array('status'=>0));
// Enter cancel record
$this->db->insert('event_wait_list_deregistration',
array(
'wait_list_id' => $subscriber_details->wait_list_id,
'event_schedule_id' => $event_schedule_id,
'wait_list_subscriber' => $user_id,
'seats_reserve' => $subscriber_details->number_of_places,
'number_of_place' => $seats_cancelled,
'user_agent' => $user_agent
)
);
// Reduce number of guest
$guest = 'number_of_places-'.$seats_cancelled;
$this->db->set('number_of_places', $guest, FALSE);
$this->db->where('event_schedule_id', $event_schedule_id);
$this->db->where('wait_list_subscriber', $user_id);
$this->db->where('status', 1);
$this->db->update('event_wait_list');
// Free seats taken up by canceled guest
$reserved_seats = 'quota_waiting_list_seat+'.$seats_cancelled;
$this->db->set('quota_waiting_list_seat', $reserved_seats, FALSE);
$this->db->where('event_schedule_id', $event_schedule_id);
$this->db->update('event_schedule');
}
}