my_parent_controller(); $this->load_language_backoffice(); $this->lang->load('backoffice/events', 'fr'); //load model $this->load->model("event_registration_model"); $this->load->model("event_model"); $this->load->model('event_email_template_model'); $this->load->library("mailjet_libr"); } public function event_subscribers_list($event_id=0) { if($event_id) { $formattedResult = array(); $result = $this->event_registration_model->get_subscribers_by_event($event_id); if(!$result) { output_to_json($this, array( "mtype" => "error", "message" => 'No subscribers' )); } foreach($result as $row) { $total_seats_reserved = $this->event_registration_model->count_total_reserved_seats_by_subscriber($row->subscriber, $event_id); $row = array_merge((array)$row, ['total_seats_reserved' => $total_seats_reserved]); array_push($formattedResult, $row); } output_to_json($this, array( "mtype" => "success", "message" => $this->lang->line("subscribers_list"), "mdata" => $formattedResult )); } else { show_404(); } } /** * Cancel subscriber reservation */ public function cancel_event_registration($registration_id=0) { if($registration_id) { $eventRegistration = $this->input->post(); $event = $this->event_registration_model->can_cancel_reservation($eventRegistration['event_id']); if(!empty($event)) { $result = $this->event_registration_model->cancel_event_registration($registration_id); if($result) { // $this->event_registration_model->update_remaining_seat($eventRegistration); $emaildata = $this->get_cancelation_email($eventRegistration, $event); $val = $this->mailjet_libr->send($emaildata, 6); output_to_json($this, array( "mtype" => "success", "message" => $this->lang->line("subscriber_registration_canceled"), "mdata" => $val )); } else { output_to_json($this, array( "mtype" => "error", "message" => $this->lang->line("cancel_registration_failed"), "mdata" => '' )); } } else { output_to_json($this, array( "mtype" => "error", "message" => $this->lang->line("not_allowed_to_cancel_registration"), "mdata" => '' )); } } else { show_404(); } } private function get_cancelation_email($eventRegistration, $event) { $mj_mailer_data = array(); $event_email_tpl = $this->event_email_template_model->get_current_event_email_template($eventRegistration['event_id'], 2, 1); $event_email_tpl->email_tpl_detail = urldecode($event_email_tpl->email_tpl_detail); array_push($mj_mailer_data, array( "event" => (object)array_merge((array)$event, ['seats_reserved' => $eventRegistration['seats_reserved']]), "event_email_tpl" => $event_email_tpl, "subscribers" => [(object)$eventRegistration] )); return array("status" => true, "maildata" => $mj_mailer_data); } /** * This function used to update event payment table. to add registration id to it. * Do not use this function to any part of your codes. */ public function update_event_payment_add_registration_id() { $this->load->model("event_payment_model"); $registrations = $this->event_registration_model->get_subscribers(); foreach($registrations as $row) { $payment = $this->event_payment_model->update_payment($row->subscriber, $row->event_id, $row->date_time, $row->registration_id); print_r($payment); echo "

"; } } /** * This function is use to update event payment table. to add created_at column to it. * Do not use this function to any part of your codes. */ public function update_event_payment_add_created_at() { $this->load->model("event_payment_model"); $registrations = $this->event_registration_model->get_subscribers(); foreach($registrations as $row) { $payment = $this->event_payment_model->add_payment_created_at($row->subscriber, $row->event_id, $row->registration_id, $row->date_time); print_r($payment); echo "

"; } } }