FIX_LIST : RV
This commit is contained in:
parent
8491a72213
commit
9a3988072a
@ -2225,6 +2225,7 @@ class EmployeeController extends AdminController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//UPDATE EMPLOYEE
|
||||||
public function update_emp_data()
|
public function update_emp_data()
|
||||||
{
|
{
|
||||||
$data = $this->request->getPost();
|
$data = $this->request->getPost();
|
||||||
|
|||||||
@ -142,51 +142,67 @@ class TicketController extends BaseController
|
|||||||
|
|
||||||
public function ticketSearch($action = null)
|
public function ticketSearch($action = null)
|
||||||
{
|
{
|
||||||
|
$db = db_connect();
|
||||||
|
|
||||||
|
$subquery = $db->table('ticket_history th')
|
||||||
|
->select([
|
||||||
|
'th.ticket_id',
|
||||||
|
"CASE
|
||||||
|
WHEN DATEDIFF(
|
||||||
|
th.created_at,
|
||||||
|
COALESCE(
|
||||||
|
(SELECT MIN(created_at) FROM ticket_history th2 WHERE th2.ticket_id = th.ticket_id),
|
||||||
|
tm.created_at
|
||||||
|
)
|
||||||
|
) BETWEEN 0 AND 6 THEN '0-6 Days'
|
||||||
|
WHEN DATEDIFF(
|
||||||
|
th.created_at,
|
||||||
|
COALESCE(
|
||||||
|
(SELECT MIN(created_at) FROM ticket_history th2 WHERE th2.ticket_id = th.ticket_id),
|
||||||
|
tm.created_at
|
||||||
|
)
|
||||||
|
) BETWEEN 7 AND 12 THEN '7-12 Days'
|
||||||
|
WHEN DATEDIFF(
|
||||||
|
th.created_at,
|
||||||
|
COALESCE(
|
||||||
|
(SELECT MIN(created_at) FROM ticket_history th2 WHERE th2.ticket_id = th.ticket_id),
|
||||||
|
tm.created_at
|
||||||
|
)
|
||||||
|
) BETWEEN 13 AND 20 THEN '13-20 Days'
|
||||||
|
ELSE 'Above 20 Days'
|
||||||
|
END AS tat"
|
||||||
|
])
|
||||||
|
->join('ticket_master tm', 'tm.id = th.ticket_id', 'right')
|
||||||
|
->where('tm.is_active', 1)
|
||||||
|
->groupBy('th.ticket_id, tm.created_at');
|
||||||
|
|
||||||
//action 1 get last 100 rows, action 2 filter and get all rows related to that
|
//action 1 get last 100 rows, action 2 filter and get all rows related to that
|
||||||
if ($action == 1) {
|
if ($action == 1) {
|
||||||
|
|
||||||
$data = $this->ticketMasterModel
|
$query = $db->table('ticket_master tm')
|
||||||
->select("
|
->select([
|
||||||
|
'tm.id',
|
||||||
|
'tcs.claim_status AS status',
|
||||||
|
'tm.claim_number AS claim_no',
|
||||||
|
'tm.tpa_id',
|
||||||
|
'tm.emp_name',
|
||||||
|
'i.name AS insurer_name',
|
||||||
|
'c.client_name',
|
||||||
|
'tm.insured_name',
|
||||||
|
'c.short_name',
|
||||||
|
'DATE_FORMAT(tm.created_at, "%d-%m-%Y") AS ticket_created_date',
|
||||||
|
'COALESCE(tat_category.tat, "0-6 Days") AS tat'
|
||||||
|
])
|
||||||
|
->join('insurers i', 'i.id = tm.insurer_id AND i.is_active = 1', 'left')
|
||||||
|
->join('clients c', 'c.id = tm.client_id AND c.is_active = 1', 'left')
|
||||||
|
->join('ticket_claim_status tcs', 'tcs.id = tm.claim_status_id AND tcs.is_active = 1', 'left')
|
||||||
|
->join("({$subquery->getCompiledSelect()}) tat_category", 'tm.id = tat_category.ticket_id', 'left')
|
||||||
|
->where('tm.is_active', 1)
|
||||||
|
->orderBy('tm.id', 'DESC');
|
||||||
|
|
||||||
ticket_master.id,
|
$data = $query->get()->getResultArray();
|
||||||
ticket_claim_status.claim_status as status,
|
|
||||||
ticket_master.claim_number as claim_no,
|
|
||||||
ticket_master.tpa_id,
|
|
||||||
ticket_master.emp_name,
|
|
||||||
insurers.name as insurer_name,
|
|
||||||
clients.client_name,
|
|
||||||
ticket_master.insured_name,
|
|
||||||
clients.short_name,
|
|
||||||
DATE_FORMAT(ticket_master.created_at, '%d-%m-%Y') as ticket_created_date,
|
|
||||||
CASE
|
|
||||||
WHEN DATEDIFF(
|
|
||||||
ticket_master.updated_at,
|
|
||||||
COALESCE(ticket_master.updated_at, ticket_history.created_at)
|
|
||||||
) BETWEEN 0 AND 6 THEN '0-6 Days'
|
|
||||||
WHEN DATEDIFF(
|
|
||||||
ticket_master.updated_at,
|
|
||||||
COALESCE(ticket_master.updated_at, ticket_history.created_at)
|
|
||||||
) BETWEEN 7 AND 12 THEN '7-12 Days'
|
|
||||||
WHEN DATEDIFF(
|
|
||||||
ticket_master.updated_at,
|
|
||||||
COALESCE(ticket_master.updated_at, ticket_history.created_at)
|
|
||||||
) BETWEEN 13 AND 20 THEN '13-20 Days'
|
|
||||||
ELSE 'Above 20 Days'
|
|
||||||
END AS tat
|
|
||||||
|
|
||||||
")
|
// dd(db_connect()->getLastQuery());
|
||||||
->join('insurers', 'insurers.id = ticket_master.insurer_id and insurers.is_active = 1', 'left')
|
|
||||||
->join('clients', 'clients.id = ticket_master.client_id and clients.is_active = 1', 'left')
|
|
||||||
->join('ticket_claim_status', 'ticket_claim_status.id = ticket_master.claim_status_id and ticket_claim_status.is_active = 1', 'left')
|
|
||||||
->join('ticket_history', "ticket_master.id = ticket_history.ticket_id")
|
|
||||||
->where('ticket_master.is_active', 1)
|
|
||||||
->where('ticket_history.is_active', 1)
|
|
||||||
->groupBy('ticket_master.id')
|
|
||||||
->orderBy('ticket_master.id', 'DESC')
|
|
||||||
->limit(100)
|
|
||||||
->findAll();
|
|
||||||
|
|
||||||
// dd($data);
|
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
|
|
||||||
@ -200,46 +216,33 @@ class TicketController extends BaseController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// print_rr($where);
|
// print_rr($where);
|
||||||
$data = $this->ticketMasterModel
|
$query = $db->table('ticket_master tm')
|
||||||
->select("
|
->select([
|
||||||
ticket_master.id,
|
'tm.id',
|
||||||
ticket_claim_status.claim_status as status,
|
'tcs.claim_status AS status',
|
||||||
ticket_master.claim_number as claim_no,
|
'tm.claim_number AS claim_no',
|
||||||
ticket_master.tpa_id,
|
'tm.tpa_id',
|
||||||
ticket_master.emp_name,
|
'tm.emp_name',
|
||||||
insurers.name as insurer_name,
|
'i.name AS insurer_name',
|
||||||
clients.client_name,ticket_master.insured_name,
|
'c.client_name',
|
||||||
clients.short_name,
|
'tm.insured_name',
|
||||||
DATE_FORMAT(ticket_master.created_at, '%d-%m-%Y') as ticket_created_date,
|
'c.short_name',
|
||||||
CASE
|
'DATE_FORMAT(tm.created_at, "%d-%m-%Y") AS ticket_created_date',
|
||||||
WHEN DATEDIFF(
|
'COALESCE(tat_category.tat, "0-6 Days") AS tat'
|
||||||
ticket_master.updated_at,
|
])
|
||||||
COALESCE(ticket_master.updated_at, ticket_history.created_at)
|
->join('insurers i', 'i.id = tm.insurer_id AND i.is_active = 1', 'left')
|
||||||
) BETWEEN 0 AND 6 THEN '0-6 Days'
|
->join('clients c', 'c.id = tm.client_id AND c.is_active = 1', 'left')
|
||||||
WHEN DATEDIFF(
|
->join('ticket_claim_status tcs', 'tcs.id = tm.claim_status_id AND tcs.is_active = 1', 'left')
|
||||||
ticket_master.updated_at,
|
->join("({$subquery->getCompiledSelect()}) tat_category", 'tm.id = tat_category.ticket_id', 'left')
|
||||||
COALESCE(ticket_master.updated_at, ticket_history.created_at)
|
->where('tm.is_active', 1)
|
||||||
) BETWEEN 7 AND 12 THEN '7-12 Days'
|
|
||||||
WHEN DATEDIFF(
|
|
||||||
ticket_master.updated_at,
|
|
||||||
COALESCE(ticket_master.updated_at, ticket_history.created_at)
|
|
||||||
) BETWEEN 13 AND 20 THEN '13-20 Days'
|
|
||||||
ELSE 'Above 20 Days'
|
|
||||||
END AS tat
|
|
||||||
")
|
|
||||||
->join('insurers', 'insurers.id = ticket_master.insurer_id and insurers.is_active = 1', 'left')
|
|
||||||
->join('clients', 'clients.id = ticket_master.client_id and clients.is_active = 1', 'left')
|
|
||||||
->join('ticket_claim_status', 'ticket_claim_status.id = ticket_master.claim_status_id and ticket_claim_status.is_active = 1', 'left')
|
|
||||||
->join('ticket_history', "ticket_master.id = ticket_history.ticket_id")
|
|
||||||
->where('ticket_master.is_active', 1)
|
|
||||||
->where('ticket_history.is_active', 1)
|
|
||||||
->where($where)
|
->where($where)
|
||||||
->groupBy('ticket_master.id')
|
->orderBy('tm.id', 'DESC');
|
||||||
->orderBy('ticket_master.id', 'DESC')
|
|
||||||
->findAll();
|
$data = $query->get()->getResultArray();
|
||||||
// print_rr($data);
|
// print_rr($data);
|
||||||
// log_message('error',' Claims Master Data '.json_encode($data));die();
|
// log_message('error',' Claims Master Data '.json_encode($data));die();
|
||||||
// print_rr($data);die();
|
// print_rr($data);die();
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -147,6 +147,155 @@ class TicketMasterModel extends Model
|
|||||||
}
|
}
|
||||||
|
|
||||||
//get TAT report BAND wise Data
|
//get TAT report BAND wise Data
|
||||||
|
// public function getTATReport($ticket_type = null, $start_date = null, $end_date = null)
|
||||||
|
// {
|
||||||
|
// //set default last 3 months data date
|
||||||
|
// $fromDate = date('Y-m-d', strtotime('-90 days'));
|
||||||
|
// $toDate = date('Y-m-d 23:59:59');
|
||||||
|
|
||||||
|
// if (!empty($start_date) && !empty($end_date)) {
|
||||||
|
// $fromDate = change_date_format($start_date);
|
||||||
|
// $toDate = change_date_format($end_date);
|
||||||
|
// }
|
||||||
|
// $ticket_type_data_1 = "";
|
||||||
|
// $ticket_type_data_2 = "";
|
||||||
|
// if(!empty($ticket_type)){
|
||||||
|
// $ticket_type_data_1 = "AND ticket_type = $ticket_type";
|
||||||
|
// $ticket_type_data_2 = "AND tm.ticket_type_id = $ticket_type";
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // Fetch claim statuses from the `ticket_claim_status` table
|
||||||
|
// $statusQuery = " SELECT
|
||||||
|
// id, claim_status, ticket_type
|
||||||
|
// FROM ticket_claim_status
|
||||||
|
// Where is_active = 1
|
||||||
|
// $ticket_type_data_1
|
||||||
|
// ";
|
||||||
|
// $statusResult = $this->db->query($statusQuery)->getResultArray();
|
||||||
|
// // dd($statusResult);
|
||||||
|
|
||||||
|
// // Initialize dynamic query parts
|
||||||
|
// $dynamicSelect = '';
|
||||||
|
|
||||||
|
// // Loop through each claim status and generate the COALESCE and CASE statements for the SELECT
|
||||||
|
// foreach ($statusResult as $status) {
|
||||||
|
|
||||||
|
// $columnName = $status['claim_status']; // Default column name
|
||||||
|
|
||||||
|
// if (empty($ticket_type)) {
|
||||||
|
// // Append the insurance type prefix based on `ticket_type`
|
||||||
|
// switch ($status['ticket_type']) {
|
||||||
|
// case 1:
|
||||||
|
// $columnName = "GMC - {$status['claim_status']}";
|
||||||
|
// break;
|
||||||
|
// case 2:
|
||||||
|
// $columnName = "GPA - {$status['claim_status']}";
|
||||||
|
// break;
|
||||||
|
// case 3:
|
||||||
|
// $columnName = "EDLI - {$status['claim_status']}";
|
||||||
|
// break;
|
||||||
|
// case 4:
|
||||||
|
// $columnName = "GTLI - {$status['claim_status']}";
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// $dynamicSelect .= "
|
||||||
|
// COALESCE(
|
||||||
|
// SUM(
|
||||||
|
// CASE
|
||||||
|
// WHEN subquery.status_id = {$status['id']} THEN 1
|
||||||
|
// ELSE 0
|
||||||
|
// END
|
||||||
|
// ),
|
||||||
|
// 0
|
||||||
|
// ) AS `$columnName`, ";
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // Remove the trailing comma from the SELECT part
|
||||||
|
// $dynamicSelect = rtrim($dynamicSelect, ', ');
|
||||||
|
// // dd($dynamicSelect);
|
||||||
|
|
||||||
|
|
||||||
|
// // Construct the full SQL query
|
||||||
|
// $sql = "
|
||||||
|
// SELECT
|
||||||
|
// tc.TAT_Category,
|
||||||
|
// $dynamicSelect
|
||||||
|
// FROM
|
||||||
|
// (
|
||||||
|
// SELECT 'Above 20 Days' AS TAT_Category
|
||||||
|
// UNION ALL
|
||||||
|
// SELECT '13-20 Days'
|
||||||
|
// UNION ALL
|
||||||
|
// SELECT '7-12 Days'
|
||||||
|
// UNION ALL
|
||||||
|
// SELECT '0-6 Days'
|
||||||
|
// ) AS tc
|
||||||
|
// LEFT JOIN (
|
||||||
|
// SELECT
|
||||||
|
// tm.id AS ticket_id,
|
||||||
|
// tcs.claim_status,
|
||||||
|
// tcs.id AS status_id,
|
||||||
|
// CASE
|
||||||
|
// WHEN DATEDIFF(
|
||||||
|
// COALESCE(th.created_at, tm.created_at),
|
||||||
|
// COALESCE(
|
||||||
|
// (SELECT MIN(created_at) FROM ticket_history th2 WHERE th2.ticket_id = tm.id),
|
||||||
|
// tm.created_at
|
||||||
|
// )
|
||||||
|
// ) BETWEEN 0 AND 6 THEN '0-6 Days'
|
||||||
|
// WHEN DATEDIFF(
|
||||||
|
// COALESCE(th.created_at, tm.created_at),
|
||||||
|
// COALESCE(
|
||||||
|
// (SELECT MIN(created_at) FROM ticket_history th2 WHERE th2.ticket_id = tm.id),
|
||||||
|
// tm.created_at
|
||||||
|
// )
|
||||||
|
// ) BETWEEN 7 AND 12 THEN '7-12 Days'
|
||||||
|
// WHEN DATEDIFF(
|
||||||
|
// COALESCE(th.created_at, tm.created_at),
|
||||||
|
// COALESCE(
|
||||||
|
// (SELECT MIN(created_at) FROM ticket_history th2 WHERE th2.ticket_id = tm.id),
|
||||||
|
// tm.created_at
|
||||||
|
// )
|
||||||
|
// ) BETWEEN 13 AND 20 THEN '13-20 Days'
|
||||||
|
// ELSE 'Above 20 Days'
|
||||||
|
// END AS TAT_Category
|
||||||
|
// FROM
|
||||||
|
// ticket_master tm
|
||||||
|
// JOIN ticket_history th ON tm.id = th.ticket_id
|
||||||
|
// JOIN ticket_claim_status tcs ON th.field_name = 'claim_status_id'
|
||||||
|
// AND th.new_value = tcs.id
|
||||||
|
// WHERE
|
||||||
|
// tm.ticket_type_id = tcs.id
|
||||||
|
// $ticket_type_data_2
|
||||||
|
// AND tm.created_at >= '$fromDate'
|
||||||
|
// AND tm.created_at <= '$toDate'
|
||||||
|
// AND tm.is_active = 1
|
||||||
|
// AND th.is_active = 1
|
||||||
|
// AND tcs.is_active = 1
|
||||||
|
// ) AS subquery ON tc.TAT_Category = subquery.TAT_Category
|
||||||
|
// GROUP BY
|
||||||
|
// tc.TAT_Category
|
||||||
|
// ORDER BY
|
||||||
|
// FIELD(tc.TAT_Category, 'Above 20 Days', '13-20 Days', '7-12 Days', '0-6 Days');
|
||||||
|
// ";
|
||||||
|
|
||||||
|
// // Execute the query and return the result
|
||||||
|
// $data = $this->db->query($sql)->getResultArray();
|
||||||
|
// // print_rr($this->db->getLastQuery(), $data); die;
|
||||||
|
|
||||||
|
// // $tableData = [];
|
||||||
|
// // if (!empty($data)) {
|
||||||
|
// // // Extract table headers from the first row keys
|
||||||
|
// // $headers = array_keys($data[0]);
|
||||||
|
// // $tableData['headers'] = $headers;
|
||||||
|
// // $tableData['body'] = $data;
|
||||||
|
// // }
|
||||||
|
|
||||||
|
// return $data;
|
||||||
|
// }
|
||||||
|
|
||||||
public function getTATReport($ticket_type = null, $start_date = null, $end_date = null)
|
public function getTATReport($ticket_type = null, $start_date = null, $end_date = null)
|
||||||
{
|
{
|
||||||
//set default last 3 months data date
|
//set default last 3 months data date
|
||||||
@ -161,7 +310,7 @@ class TicketMasterModel extends Model
|
|||||||
$ticket_type_data_2 = "";
|
$ticket_type_data_2 = "";
|
||||||
if(!empty($ticket_type)){
|
if(!empty($ticket_type)){
|
||||||
$ticket_type_data_1 = "AND ticket_type = $ticket_type";
|
$ticket_type_data_1 = "AND ticket_type = $ticket_type";
|
||||||
$ticket_type_data_2 = "AND tm.ticket_type_id = $ticket_type";
|
$ticket_type_data_2 = "WHERE tm.ticket_type_id = $ticket_type";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fetch claim statuses from the `ticket_claim_status` table
|
// Fetch claim statuses from the `ticket_claim_status` table
|
||||||
@ -233,36 +382,47 @@ class TicketMasterModel extends Model
|
|||||||
SELECT '0-6 Days'
|
SELECT '0-6 Days'
|
||||||
) AS tc
|
) AS tc
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
th.ticket_id,
|
th.ticket_id,
|
||||||
tcs.claim_status,
|
tcs.claim_status,
|
||||||
tcs.id AS status_id,
|
tcs.id AS status_id,
|
||||||
CASE
|
CASE
|
||||||
WHEN DATEDIFF(
|
WHEN DATEDIFF(
|
||||||
tm.updated_at,
|
th.created_at,
|
||||||
COALESCE(tm.updated_at, th.created_at)
|
COALESCE(
|
||||||
|
(SELECT MIN(created_at) FROM ticket_history th2 WHERE th2.ticket_id = th.ticket_id),
|
||||||
|
tm.created_at
|
||||||
|
)
|
||||||
) BETWEEN 0 AND 6 THEN '0-6 Days'
|
) BETWEEN 0 AND 6 THEN '0-6 Days'
|
||||||
WHEN DATEDIFF(
|
WHEN DATEDIFF(
|
||||||
tm.updated_at,
|
th.created_at,
|
||||||
COALESCE(tm.updated_at, th.created_at)
|
COALESCE(
|
||||||
|
(SELECT MIN(created_at) FROM ticket_history th2 WHERE th2.ticket_id = th.ticket_id),
|
||||||
|
tm.created_at
|
||||||
|
)
|
||||||
) BETWEEN 7 AND 12 THEN '7-12 Days'
|
) BETWEEN 7 AND 12 THEN '7-12 Days'
|
||||||
WHEN DATEDIFF(
|
WHEN DATEDIFF(
|
||||||
tm.updated_at,
|
th.created_at,
|
||||||
COALESCE(tm.updated_at, th.created_at)
|
COALESCE(
|
||||||
|
(SELECT MIN(created_at) FROM ticket_history th2 WHERE th2.ticket_id = th.ticket_id),
|
||||||
|
tm.created_at
|
||||||
|
)
|
||||||
) BETWEEN 13 AND 20 THEN '13-20 Days'
|
) BETWEEN 13 AND 20 THEN '13-20 Days'
|
||||||
ELSE 'Above 20 Days'
|
ELSE 'Above 20 Days'
|
||||||
END AS TAT_Category
|
END AS TAT_Category
|
||||||
|
|
||||||
FROM
|
FROM
|
||||||
ticket_master tm
|
ticket_master tm
|
||||||
JOIN ticket_history th ON tm.id = th.ticket_id
|
JOIN ticket_history th ON tm.id = th.ticket_id
|
||||||
JOIN ticket_claim_status tcs ON th.field_name = 'claim_status_id'
|
JOIN ticket_claim_status tcs ON th.field_name = 'claim_status_id' AND th.new_value = tcs.id
|
||||||
AND th.new_value = tcs.id
|
|
||||||
$ticket_type_data_2
|
$ticket_type_data_2
|
||||||
AND tm.created_at >= '$fromDate'
|
AND tm.created_at >= '$fromDate'
|
||||||
AND tm.created_at <= '$toDate'
|
AND tm.created_at <= '$toDate'
|
||||||
AND tm.is_active = 1
|
AND tm.is_active = 1
|
||||||
AND th.is_active = 1
|
AND th.is_active = 1
|
||||||
AND tcs.is_active = 1
|
AND tcs.is_active = 1
|
||||||
|
|
||||||
) AS subquery ON tc.TAT_Category = subquery.TAT_Category
|
) AS subquery ON tc.TAT_Category = subquery.TAT_Category
|
||||||
GROUP BY
|
GROUP BY
|
||||||
tc.TAT_Category
|
tc.TAT_Category
|
||||||
@ -278,7 +438,7 @@ class TicketMasterModel extends Model
|
|||||||
|
|
||||||
// Execute the query and return the result
|
// Execute the query and return the result
|
||||||
$data = $this->db->query($sql)->getResultArray();
|
$data = $this->db->query($sql)->getResultArray();
|
||||||
// dd($this->db->getLastQuery(), $data);
|
// print_rr($this->db->getLastQuery(), $data); die;
|
||||||
|
|
||||||
// $tableData = [];
|
// $tableData = [];
|
||||||
// if (!empty($data)) {
|
// if (!empty($data)) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user