Files
FloatBackOfffice/application/models/Members_notification_model.php
dev-chiefworks f76abffdcd first commit
2022-05-31 16:21:53 -04:00

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;
}
}