221 lines
6.7 KiB
PHP
221 lines
6.7 KiB
PHP
<?php
|
|
defined('BASEPATH') or exit('No direct script access allowed');
|
|
|
|
class Hubtel_sms extends AdminController
|
|
{
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
|
|
$this->load->helper('hubtel_sms/hubtel_sms');
|
|
$this->load->model('hubtel_sms_model');
|
|
$this->load->library('hubtel_sms/hubtel_api');
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
if (!has_permission('hubtel_sms', '', 'view')) {
|
|
access_denied('Hubtel SMS');
|
|
}
|
|
|
|
if (!is_hubtel_sms_enabled()) {
|
|
set_alert('warning', _l('hubtel_sms_module_disabled'));
|
|
redirect(admin_url());
|
|
}
|
|
|
|
$data['title'] = _l('hubtel_sms');
|
|
|
|
// Get statistics
|
|
$data['total_messages'] = $this->hubtel_sms_model->get_total_messages();
|
|
$data['sent_messages'] = $this->hubtel_sms_model->get_total_messages('sent');
|
|
$data['failed_messages'] = $this->hubtel_sms_model->get_total_messages('failed');
|
|
$data['total_cost'] = $this->hubtel_sms_model->get_total_cost();
|
|
|
|
// Get messages and templates
|
|
$data['messages'] = $this->hubtel_sms_model->get_messages();
|
|
$data['templates'] = $this->hubtel_sms_model->get_templates();
|
|
|
|
// Load client groups for bulk SMS
|
|
$this->load->model('client_groups_model');
|
|
$data['client_groups'] = $this->client_groups_model->get_groups();
|
|
|
|
$this->load->view('hubtel_sms/manage', $data);
|
|
}
|
|
|
|
public function send_sms()
|
|
{
|
|
if (!has_permission('hubtel_sms', '', 'create')) {
|
|
access_denied('Send SMS');
|
|
}
|
|
|
|
if ($this->input->post()) {
|
|
$response = $this->hubtel_sms_model->send_sms(
|
|
$this->input->post('to'),
|
|
$this->input->post('message'),
|
|
$this->input->post('template_id')
|
|
);
|
|
|
|
if ($response['success']) {
|
|
set_alert('success', _l('sms_sent_successfully'));
|
|
} else {
|
|
set_alert('danger', $response['message']);
|
|
}
|
|
}
|
|
|
|
redirect(admin_url('hubtel_sms'));
|
|
}
|
|
|
|
public function send_bulk_sms()
|
|
{
|
|
if (!has_permission('hubtel_sms', '', 'create')) {
|
|
access_denied('Send Bulk SMS');
|
|
}
|
|
|
|
if ($this->input->post()) {
|
|
$client_groups = $this->input->post('client_groups');
|
|
$message = $this->input->post('message');
|
|
$template_id = $this->input->post('template_id');
|
|
|
|
$success = 0;
|
|
$failed = 0;
|
|
$total_recipients = 0;
|
|
|
|
if (!empty($client_groups)) {
|
|
$this->load->model('clients_model');
|
|
foreach ($client_groups as $group_id) {
|
|
$clients = $this->clients_model->get_clients_by_group($group_id);
|
|
foreach ($clients as $client) {
|
|
if (!empty($client['phonenumber'])) {
|
|
$total_recipients++;
|
|
$response = $this->hubtel_sms_model->send_sms(
|
|
$client['phonenumber'],
|
|
$message,
|
|
$template_id
|
|
);
|
|
if ($response['success']) {
|
|
$success++;
|
|
} else {
|
|
$failed++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
set_alert('info', sprintf(
|
|
_l('bulk_sms_sent_info'),
|
|
$total_recipients,
|
|
$success,
|
|
$failed
|
|
));
|
|
}
|
|
|
|
redirect(admin_url('hubtel_sms'));
|
|
}
|
|
|
|
public function view_message($id)
|
|
{
|
|
if (!has_permission('hubtel_sms', '', 'view')) {
|
|
access_denied('View Message');
|
|
}
|
|
|
|
$message = $this->hubtel_sms_model->get_messages($id);
|
|
$logs = $this->hubtel_sms_model->get_message_logs($message->message_id);
|
|
|
|
echo $this->load->view('hubtel_sms/message_details', [
|
|
'message' => $message,
|
|
'logs' => $logs
|
|
], true);
|
|
}
|
|
|
|
public function preview_template($id)
|
|
{
|
|
if (!has_permission('hubtel_sms', '', 'view')) {
|
|
access_denied('Preview Template');
|
|
}
|
|
|
|
$template = $this->hubtel_sms_model->get_template($id);
|
|
echo $this->load->view('hubtel_sms/template_preview', [
|
|
'template' => $template
|
|
], true);
|
|
}
|
|
|
|
public function get_template($id)
|
|
{
|
|
if (!has_permission('hubtel_sms', '', 'view')) {
|
|
access_denied('Get Template');
|
|
}
|
|
|
|
$template = $this->hubtel_sms_model->get_template($id);
|
|
|
|
if ($template) {
|
|
echo json_encode([
|
|
'success' => true,
|
|
'template' => $template
|
|
]);
|
|
} else {
|
|
echo json_encode([
|
|
'success' => false,
|
|
'message' => _l('template_not_found')
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function resend($id)
|
|
{
|
|
if (!has_permission('hubtel_sms', '', 'create')) {
|
|
access_denied('Resend SMS');
|
|
}
|
|
|
|
$message = $this->hubtel_sms_model->get_messages($id);
|
|
if ($message) {
|
|
$response = $this->hubtel_sms_model->send_sms(
|
|
$message->to,
|
|
$message->message
|
|
);
|
|
|
|
echo json_encode($response);
|
|
} else {
|
|
echo json_encode([
|
|
'success' => false,
|
|
'message' => _l('message_not_found')
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function get_recipients_preview()
|
|
{
|
|
if (!has_permission('hubtel_sms', '', 'view')) {
|
|
access_denied('Get Recipients Preview');
|
|
}
|
|
|
|
$groups = $this->input->get('groups');
|
|
$recipients = [];
|
|
|
|
if (!empty($groups)) {
|
|
$this->load->model('clients_model');
|
|
foreach ($groups as $group_id) {
|
|
$clients = $this->clients_model->get_clients_by_group($group_id);
|
|
$group_name = $this->client_groups_model->get_group($group_id)->name;
|
|
|
|
foreach ($clients as $client) {
|
|
if (!empty($client['phonenumber'])) {
|
|
$recipients[] = [
|
|
'company' => $client['company'],
|
|
'phonenumber' => $client['phonenumber'],
|
|
'group_name' => $group_name
|
|
];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
echo json_encode([
|
|
'success' => true,
|
|
'html' => $this->load->view('hubtel_sms/recipients_preview', [
|
|
'recipients' => $recipients
|
|
], true),
|
|
'count' => count($recipients)
|
|
]);
|
|
}
|
|
} |