65 lines
3.2 KiB
PHP
65 lines
3.2 KiB
PHP
<?php if (!defined('BASEPATH')) {
|
|
exit('No direct script access allowed');
|
|
}
|
|
|
|
class Members_notification_model extends CI_Model
|
|
{
|
|
const PENDING_STATUS = 1;
|
|
const COMPLETED_STATUS = 5;
|
|
const EXPIRED_STATUS = 2;
|
|
const CANCELLED_STATUS = 3;
|
|
|
|
public function __constructor()
|
|
{
|
|
parrent::__constructor();
|
|
}
|
|
|
|
public function getNotifications($params = [])
|
|
{
|
|
$condition = ' WHERE true ';
|
|
if (isset($params['from_to']) && !empty($params['from_to'])) {
|
|
// from_to format: 2020-02-03 - 2020-03-01
|
|
$fromToArray = explode(' - ', $params['from_to']);
|
|
$fromDate = $fromToArray[0];
|
|
$toDate = $fromToArray[1];
|
|
$condition .= " AND to_char(n.added, 'YYYY-MM-DD') >= '" . pg_escape_string($fromDate) . "' AND to_char(n.added, 'YYYY-MM-DD') <= '" . pg_escape_string($toDate) . "' ";
|
|
}
|
|
if (isset($params['status']) && $params['status'] !== '') {
|
|
$condition .= " AND n.status = " . pg_escape_string((int)$params['status']);
|
|
}
|
|
if (isset($params['notice_type']) && !empty($params['notice_type'])) {
|
|
$condition .= " AND n.notice_type = '" . pg_escape_string($params['notice_type']) . "'";
|
|
}
|
|
if (isset($params['account_email']) && !empty($params['account_email'])) {
|
|
$condition .= " AND m.email ILIKE '%" . pg_escape_string($params['account_email']) . "%' ";
|
|
}
|
|
if (isset($params['trigger_key']) && !empty($params['trigger_key'])) {
|
|
$condition .= " AND n.trigger_key ILIKE '%" . pg_escape_string($params['trigger_key']) . "%' ";
|
|
}
|
|
if (isset($params['email_msg']) && !empty($params['email_msg'])) {
|
|
$condition .= " AND n.msg ILIKE '%" . pg_escape_string($params['email_msg']) . "%' ";
|
|
}
|
|
if (isset($params['mode']) && !empty($params['mode'])) {
|
|
$condition .= " AND n.mmode ILIKE '%" . pg_escape_string($params['mode']) . "%' ";
|
|
}
|
|
return "SELECT m.id AS member_id , m.email,"
|
|
. "CASE WHEN m.alert_notification=1 THEN 'Yes' ELSE 'No' END AS NotificationAlert ,n.trigger_key,"
|
|
. "( CASE WHEN m.alert_email=1 THEN 'Yes' ELSE 'No' END) AS EmailAlert ,"
|
|
. " n.notice_type,n.msg,"
|
|
. " ( CASE WHEN n.status=1 THEN 'Pending' WHEN n.status=5 THEN 'Completed' WHEN n.status=2 THEN 'Expired' WHEN n.status=3 THEN 'Cancelled' ELSE 'No' END) AS msg_status, "
|
|
. " n.added,n.mmode ,"
|
|
. "'<button type=\"button\" onclick=\"pushNotification('||n.id||','||m.id||');\" class=\"btn btn-danger\" id=\"acc'||n.id||'\">Send</button> <button type=\"button\" onclick=\"pushCard('||n.id||','||m.id||');\" class=\"btn btn-info\" id=\"acc'||n.id||'\">Card</button> <div id=\"msgl'||n.id||'\"></div>' AS Send "
|
|
. " FROM members_notification n LEFT JOIN members m On m.id=n.member_id " . $condition . " ORDER BY n.added DESC";
|
|
}
|
|
|
|
protected function checkCondition($condition, $query)
|
|
{
|
|
if (strpos($query, 'WHERE') === false) {
|
|
$query .= " WHERE $condition";
|
|
} else {
|
|
$query .= " AND $condition";
|
|
}
|
|
return $query;
|
|
}
|
|
}
|