FIX_Claims Date Filter implemented

This commit is contained in:
sanjeev.p 2025-12-19 15:23:23 +05:30
parent 6268a1e829
commit d0bef9119b
6 changed files with 168 additions and 18 deletions

View File

@ -263,17 +263,24 @@ class AppContentManagementController extends AdminController
$id = $this->request->getGet('faq_id');
if (!empty($id)) {
// $row = $this->faqModel->where('is_active', 1)->find($id);
$row = $this->faqModel->find($id);
if($returnType === 'web'){
$row = $this->faqModel->find($id);
}else{
$row = $this->faqModel->where('is_active', 1)->find($id);
}
$data['faq_list'] = $row ? [$row] : [];
} else {
// $data['faq_list'] = $this->faqModel->where('is_active', 1)->orderBy('id', 'desc')->findAll();
$data['faq_list'] = $this->faqModel->orderBy('id', 'desc')->findAll();
if($returnType === 'web'){
$data['faq_list'] = $this->faqModel->orderBy('id', 'desc')->findAll();
}else{
$data['faq_list'] = $this->faqModel->where('is_active', 1)->orderBy('id', 'desc')->findAll();
}
}
if ($returnType === 'web') {
$data['tab_name'] = "FAQ's";
$data['page_name'] = "FAQ's";
$data['tab_name'] = "FAQ";
$data['page_name'] = "FAQ";
// print_r($data);die;
return $this->loadLayout('faq_list', $data);
}

View File

@ -3164,7 +3164,7 @@ class EmployeeRestController extends AdminController
{
try {
$feContentData = $this->feContentModel->findAll();
$feContentData = $this->feContentModel->where('is_active',1)->findAll();
if (count($feContentData) > 0) {
return $this->respond(['status' => 'success', 'code' => 200, 'data' => $feContentData], 200);

View File

@ -371,6 +371,11 @@ class TicketController extends BaseController
$data['insurer_list'] = $this->insurerModel->where('is_active', 1)->findAll();
$data['tpa_list'] = $this->TPAModel->where('is_active', 1)->findAll();
$data['ticket_data'] = $this->ticketSearch(1);
$data['date_type'] = [
'ticket_created_date' => 'Created Date',
'ticket_updated_date' => 'Updated Date',
];
return $this->loadLayout('ticket_search', $data);
} else {
@ -401,6 +406,7 @@ class TicketController extends BaseController
}
else{
$data['ticket_data'] = $this->ticketSearch();
// print_r($data['ticket_data']);die;
$html = view('ticket_list', $data);
return $this->respond(['status' => true, 'html' => $html], 200);
}
@ -411,6 +417,7 @@ class TicketController extends BaseController
public function ticketSearch($action = null)
{
$db = db_connect();
$rawWhere = [];
// log_message('error', 'Ticket Search Action: ' . $action);
$subquery = $db->table('ticket_master tm')
->select([
@ -464,6 +471,7 @@ class TicketController extends BaseController
'tm.insured_name',
'c.short_name',
'DATE_FORMAT(tm.created_at, "%d-%m-%Y") AS ticket_created_date',
'DATE_FORMAT(tm.updated_at, "%d-%m-%Y") AS ticket_updated_date',
'COALESCE(tat_category.tat, "0-6 Days") AS tat',
'tm.claim_status_id',
@ -557,14 +565,24 @@ class TicketController extends BaseController
} else {
$search_data = $this->request->getPost();
// print_r($search_data); die()
$where = [];
$where = [];
foreach ($search_data as $search_objects => $key) {
if ($key != null && $key != '' && $key != 0 && $search_objects != 'is_dashboard') {
$where[$search_objects] = $key;
if($search_objects == "date_type" && $search_data[$search_objects] === 'ticket_created_date'){
$startDate = date('Y-m-d 00:00:00', strtotime($search_data['start_date']));
$endDate = date('Y-m-d 23:59:59', strtotime($search_data['end_date']));
$rawWhere[] = "tm.created_at BETWEEN '$startDate' AND '$endDate'";
}
elseif($search_objects == "date_type" && $search_data[$search_objects] === 'ticket_updated_date'){
$startDate = date('Y-m-d 00:00:00', strtotime($search_data['start_date']));
$endDate = date('Y-m-d 23:59:59', strtotime($search_data['end_date']));
$rawWhere[] = "tm.updated_at BETWEEN '$startDate' AND '$endDate'";
}elseif($search_objects != "date_type" && $search_objects != "start_date" && $search_objects != "end_date"){
$where[$search_objects] = $key;
}
}
}
// print_rr($where);
}
$query = $db->table('ticket_master tm')
->select([
@ -584,6 +602,7 @@ class TicketController extends BaseController
'tm.insured_name',
'c.short_name',
'DATE_FORMAT(tm.created_at, "%d-%m-%Y") AS ticket_created_date',
'DATE_FORMAT(tm.updated_at, "%d-%m-%Y") AS ticket_updated_date',
'COALESCE(tat_category.tat, "0-6 Days") AS tat',
'(SELECT first_name FROM user_profiles WHERE user_profiles.id = tm.acm_id) AS acm_name',
@ -641,9 +660,14 @@ class TicketController extends BaseController
->where('tm.is_active', 1)
->where($where)
->orderBy('tm.id', 'DESC');
if (!empty($rawWhere)) {
foreach ($rawWhere as $condition) {
$query->where($condition, null, false); // raw SQL
}
}
$data = $query->get()->getResultArray();
// dd($db->getLastQuery()->getQuery());
// dd($db->getLastQuery()->getQuery());die;
// dd($data);
if ($action == 5){

View File

@ -2099,7 +2099,7 @@
<a href="<?= base_url('/frontend_content') ?>">Front-end Content</a>
</li>
<li>
<a href="<?= base_url('/FAQ?return_type=web') ?>"> FAQ's </a>
<a href="<?= base_url('/FAQ?return_type=web') ?>"> FAQ </a>
</li>
</ul>
</div>

View File

@ -25,6 +25,10 @@ table.dataTable tbody td {
margin-left: 20px !important;
}
.dataTables_length label {height: 21px !important;}
.text-custom-grey{
font-size: 0.65em;
color: #6c757d !important;
}
</style>
<style>
@ -48,7 +52,7 @@ table.dataTable tbody td {
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="card-body" style="padding : 0 1.5rem 0 1.5rem !important">
<div class="row" style="padding-bottom: 10px;">
<div class="col-6" style="align-self: center;">
<h4 style="position: relative;">Claim List </h4>
@ -161,10 +165,17 @@ table.dataTable tbody td {
}
?>
</span>
<?php if (!empty($row['ticket_updated_date'])): ?>
<span class="text-custom-grey"><br><?= "Updated at ".$row['ticket_updated_date']; ?></span>
<?php endif; ?>
</td>
<td><?php echo str_replace("Claim-", "", $ticket_type[$row['ticket_type_id']] ?? 'N/A'); ?></td>
<td><?php echo $row['claim_no'] ?: 'N/A' ; ?></td>
<td><?php echo $row['claim_no'] ?: 'N/A' ; ?>
<?php if (!empty($row['ticket_created_date'])): ?>
<span class="text-custom-grey"><br><?= "Created at ".$row['ticket_created_date']; ?></span>
<?php endif; ?>
</td>
<td><?php echo $row['tpa_no'] ?: 'N/A'; ?></td>
<td><?php echo $row['emp_code'] ?: 'N/A'; ?></td>
<td><?php echo $row['emp_name'] ?: 'N/A'; ?></td>

View File

@ -6,9 +6,9 @@
</style>
<div class="container-fluid-min">
<div class="row">
<div class="row" style="margin-bottom: -12px;">
<div class="col-12" style="margin-top: -12px;">
<div class="card-body">
<div class="card-body" style="padding : 1.5rem 1.5rem 0 1.5rem !important">
<div id="accordion" class="mb-3">
<div class="card mb-1">
<h4>
@ -121,6 +121,30 @@
</select>
</div>
<div class="form-group col-md-3">
<label>Date Type<span class="text-danger"></span></label>
<select class="form-control" id="date_type" name="date_type" onchange="hideDateField()">
<option value="0">Select Date Type</option>
<?php
if (isset($date_type) && count($date_type)) {
foreach ($date_type as $key => $value) {
echo "<option value='" . $key . "'>" . $value . "</option>";
}
}
?>
</select>
</div>
<div class="form-group col-md-3" style="display: none;" id="date_div">
<label>Date<span class="text-danger"></span></label>
<div class="input-icon">
<input type="text" id="reportrange" class="form-control" readonly style="caret-color: transparent;">
<i class="mdi mdi-calendar-blank-outline additional-icon"></i>
</div>
<input type="hidden" id="startDate">
<input type="hidden" id="endDate">
</div>
<div class="form-group col-md-12 text-right m-b-0" style="margin-bottom: -15px;">
<a href="#" class="btn btn-secondary" id="clear-filters">Clear</a>
<a class="btn btn-primary" id="get-emp-list" onclick="fetchTicketListData();">Submit</a>
@ -192,6 +216,10 @@
var insurer_id = $('#insurer_id').val();
var tpa_id = $('#tpa_id').val();
var start_date = $('#startDate').val();
var end_date = $('#endDate').val();
var date_type = $('#date_type').val();
var requestData = {
ticket_type_id: ticket_type,
pod_no: pod_no,
@ -203,6 +231,9 @@
client_id: client_id,
insurer_id: insurer_id,
tpa_id: tpa_id,
start_date: start_date,
end_date: end_date,
date_type: date_type,
};
let filterData = requestData;
@ -294,12 +325,59 @@
$('#client_id').val(filterData.client_id);
$('#insurer_id').val(filterData.insurer_id);
$('#tpa_id').val(filterData.tpa_id);
$('#date_type').val(filterData.date_type);
if(filterData.date_type == '0'){
$('#date_div').hide();
}else{
$('#date_div').show();
}
}
})
</script>
<script>
$(function() {
const url = new URL(window.location.href);
const params = new URLSearchParams(url.search);
// Get start and end dates from URL parameters, or use default values
const startDateParam = params.get('start_date') || moment().subtract(29, 'days').format('DD-MM-YYYY');
const endDateParam = params.get('end_date') || moment().format('DD-MM-YYYY');
// Parse the dates to moment objects
var start = moment(startDateParam, 'DD-MM-YYYY');
var end = moment(endDateParam, 'DD-MM-YYYY');
// var start = moment().subtract(29, 'days');
// var end = moment();
function cb(start, end) {
$('#reportrange').html(start.format('D-MM-YYYY') + ' - ' + end.format('D-MM-YYYY'));
$('#startDate').val(start.format('DD-MM-YYYY'));
$('#endDate').val(end.format('DD-MM-YYYY'));
}
$('#reportrange').daterangepicker({
startDate: start,
endDate: end,
locale: {
format: 'DD-MM-YYYY'
},
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
}
}, cb);
cb(start, end);
$(document).on('click', '#clear-filters', function(e) {
e.preventDefault(); // Stops the browser from following the link
@ -317,7 +395,37 @@
$('#tpa_id').val('0');
$('#client_id').val('0');
$('#insurer_id').val('0');
$('#date_div').hide();
$('#date_type').val('0');
$('#start_date').val('');
$('#end_date').val('');
// Reset the date range picker to default
$('#reportrange').data('daterangepicker').setStartDate(moment().subtract(29, 'days'));
$('#reportrange').data('daterangepicker').setEndDate(moment());
cb(start, end); // Update the displayed date range
localStorage.setItem('filterData', JSON.stringify(filterData));
window.location.href = "<?= base_url("/ticket/list") ?>";
});
});
function hideDateField(input = null)
{
let val = $('#date_type').val();
if(input){
val = input;
}
if(val != 0){
$('#date_div').show();
}else{
$('#date_div').hide();
$('#start_date').val('');
$('#end_date').val('');
}
}
</script>