diff --git a/app/Controllers/TicketController.php b/app/Controllers/TicketController.php
index 800ce03d..e2a9bb42 100644
--- a/app/Controllers/TicketController.php
+++ b/app/Controllers/TicketController.php
@@ -928,21 +928,73 @@ class TicketController extends BaseController
$toDate = \DateTime::createFromFormat('d-m-Y', $to_Date)->format('Y-m-d');
$policy_type = $received_data['policy_type'];
// print_rr($received_data);
- if ($received_data['report_type'] == "acc_manager_wise_status") {
-
- $viewData['account_manager_wise_data'] = $this->accountManagerWiseReport($policy_type, $fromDate, $toDate);
+ if ($received_data['report_type'] == "acc_manager_wise_status"){
+ $viewData['policy_type'] = $received_data['policy_type'];
+ $viewData['account_manager_wise_data'] = $this->ticketMasterModel->accountManagerWiseReport($policy_type,$fromDate,$toDate);
// print_rr($viewData);
- if ($policy_type == 1) {
- $html = view('claims_report_acc_manager_gmc', $viewData);
+ if ($policy_type == 1){
+ $viewData['column_order'] = [
+ 'ACM_NAME', 'ID NOT GENERATED', 'NON ID', 'CDA', 'INFORMATION REQUIRED',
+ 'UNDER PROCESS - CLAIM NO. UPDATION', 'UNDER PROCESS - INVESTIGATION STATUS',
+ 'UNDER PROCESS - QUERY DOCUMENT RECEIVED', 'APPROVED', 'PAYMENT INITIATED',
+ 'TOTAL'
+ ];
+ $ordered_data = [];
+
+ foreach ($viewData['account_manager_wise_data'] as $tpa_data) {
+ $temp = [];
+ foreach ($viewData['column_order'] as $key) {
+ $temp[$key] = isset($tpa_data[$key]) ? $tpa_data[$key] : 0; // Default to 0 if key is missing
+ }
+ $ordered_data[] = $temp;
+ }
+ $viewData['tpa_wise_data'] = $ordered_data;
+ $html = view('claims_report_acc_manager_wise', $viewData);
return $this->respond(['status' => true, 'html' => $html], 200);
- } else {
- $html = view('claims_report_acc_manager_gpa', $viewData);
+ }else{
+ $viewData['column_order'] = [
+ 'ACM_NAME', 'CLAIM INTIMATION', 'INTIMATION TO INSURER', 'CLIENT PENDING',
+ 'INSURER PENDING','INVESTIGATION','APPROVED','ON HOLD','TOTAL', 'NOT COVERED',
+ 'CLOSED', 'SETTLED', 'CLEARED_TOTAL'
+ ];
+ $ordered_data = [];
+
+ foreach ($viewData['account_manager_wise_data'] as $tpa_data) {
+ $temp = [];
+ foreach ($viewData['column_order'] as $key) {
+ $temp[$key] = isset($tpa_data[$key]) ? $tpa_data[$key] : 0; // Default to 0 if key is missing
+ }
+ $ordered_data[] = $temp;
+ }
+ $viewData['tpa_wise_data'] = $ordered_data;
+ $html = view('claims_report_acc_manager_wise', $viewData);
return $this->respond(['status' => true, 'html' => $html], 200);
}
} elseif ($received_data['report_type'] == 'tpa_wise_status') {
- $viewData['tpa_wise_data'] = $this->tpaWiseReport($policy_type, $fromDate, $toDate);
- $html = view('claims_report_tpa_wise', $viewData);
+ $viewData['tpa_wise_data'] = $this->ticketMasterModel->tpaWiseReport($policy_type, $fromDate, $toDate);
+
+ $viewData['column_order'] = [
+ 'TPA_NAME', 'NON ID', 'ID NOT GENERATED', 'CDA', 'INFORMATION REQUIRED',
+ 'UNDER PROCESS - CLAIM NO. UPDATION', 'UNDER PROCESS - INVESTIGATION STATUS',
+ 'UNDER PROCESS - QUERY DOCUMENT RECEIVED', 'APPROVED', 'PAYMENT INITIATED',
+ 'TOTAL', 'SETTLED', 'CLOSED', 'CANCELLED', 'RETURNED', 'CLEARED_TOTAL'
+ ];
+
+ // Reorder data based on column order
+ $ordered_data = [];
+
+ foreach ($viewData['tpa_wise_data'] as $tpa_data) {
+ $temp = [];
+ foreach ($viewData['column_order'] as $key) {
+ $temp[$key] = isset($tpa_data[$key]) ? $tpa_data[$key] : 0; // Default to 0 if key is missing
+ }
+ $ordered_data[] = $temp;
+ }
+ $viewData['tpa_wise_data'] = $ordered_data;
+ // $html = view('claims_report_tpa_wise', $viewData);
+
+ $html = view('claims_report_tpa_wise',$viewData);
return $this->respond(['status' => true, 'html' => $html], 200);
} else if ($received_data['report_type'] == 'tat_band_wise') {
@@ -953,134 +1005,134 @@ class TicketController extends BaseController
}
}
- public function accountManagerWiseReport($policy_type = null, $start_date = null, $end_date = null)
- {
+ // public function accountManagerWiseReport($policy_type = null ,$start_date = null, $end_date = null){
- if ($policy_type == 1) {
- $sql = "SELECT
- u.first_name AS acc_manager_name,
- COUNT(CASE WHEN tcs.claim_status = 'ID NOT GENERATED' AND master.ticket_type_id = 1 THEN master.id END) AS id_not_generated,
- COUNT(CASE WHEN tcs.claim_status = 'NON ID' AND master.ticket_type_id = 1 THEN master.id END) AS non_id,
- COUNT(CASE WHEN tcs.claim_status = 'CDA' AND master.ticket_type_id = 1 THEN master.id END) AS cda,
- COUNT(CASE WHEN tcs.claim_status = 'INFORMATION REQUIRED' AND master.ticket_type_id = 1 THEN master.id END) AS information_required,
- COUNT(CASE WHEN tcs.claim_status LIKE '%UNDER PROCESS%' AND master.ticket_type_id = 1 THEN master.id END) AS under_process,
- COUNT(CASE WHEN tcs.claim_status = 'APPROVED' AND master.ticket_type_id = 1 THEN master.id END) AS approved,
- COUNT(CASE WHEN tcs.claim_status = 'PAYMENT INITIATED' AND master.ticket_type_id = 1 THEN master.id END) AS payment_initiated,
- (
- COUNT(CASE WHEN tcs.claim_status = 'ID NOT GENERATED' AND master.ticket_type_id = 1 THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'NON ID' AND master.ticket_type_id = 1 THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'CDA' AND master.ticket_type_id = 1 THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'INFORMATION REQUIRED' AND master.ticket_type_id = 1 THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status LIKE '%UNDER PROCESS%' AND master.ticket_type_id = 1 THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'APPROVED' AND master.ticket_type_id = 1 THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'PAYMENT INITIATED' AND master.ticket_type_id = 1 THEN master.id END)
- ) AS total
- FROM
- ticket_master master
- JOIN
- user_profiles u ON master.acm_id = u.id and u.is_active = 1
- JOIN
- ticket_claim_status tcs ON tcs.id = master.claim_status_id and tcs.is_active = 1
- WHERE
- master.created_at <= '$end_date' and master.created_at >= '$start_date' and master.is_active = 1
- GROUP BY
- u.id;
- ";
- $result = $this->ticketMasterModel->query($sql)->getResultArray();
- // dd($result);
+ // if ($policy_type == 1) {
+ // $sql = "SELECT
+ // u.first_name AS acc_manager_name,
+ // COUNT(CASE WHEN tcs.claim_status = 'ID NOT GENERATED' AND master.ticket_type_id = 1 THEN master.id END) AS id_not_generated,
+ // COUNT(CASE WHEN tcs.claim_status = 'NON ID' AND master.ticket_type_id = 1 THEN master.id END) AS non_id,
+ // COUNT(CASE WHEN tcs.claim_status = 'CDA' AND master.ticket_type_id = 1 THEN master.id END) AS cda,
+ // COUNT(CASE WHEN tcs.claim_status = 'INFORMATION REQUIRED' AND master.ticket_type_id = 1 THEN master.id END) AS information_required,
+ // COUNT(CASE WHEN tcs.claim_status LIKE '%UNDER PROCESS%' AND master.ticket_type_id = 1 THEN master.id END) AS under_process,
+ // COUNT(CASE WHEN tcs.claim_status = 'APPROVED' AND master.ticket_type_id = 1 THEN master.id END) AS approved,
+ // COUNT(CASE WHEN tcs.claim_status = 'PAYMENT INITIATED' AND master.ticket_type_id = 1 THEN master.id END) AS payment_initiated,
+ // (
+ // COUNT(CASE WHEN tcs.claim_status = 'ID NOT GENERATED' AND master.ticket_type_id = 1 THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'NON ID' AND master.ticket_type_id = 1 THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'CDA' AND master.ticket_type_id = 1 THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'INFORMATION REQUIRED' AND master.ticket_type_id = 1 THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status LIKE '%UNDER PROCESS%' AND master.ticket_type_id = 1 THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'APPROVED' AND master.ticket_type_id = 1 THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'PAYMENT INITIATED' AND master.ticket_type_id = 1 THEN master.id END)
+ // ) AS total
+ // FROM
+ // ticket_master master
+ // JOIN
+ // user_profiles u ON master.acm_id = u.id and u.is_active = 1
+ // JOIN
+ // ticket_claim_status tcs ON tcs.id = master.claim_status_id and tcs.is_active = 1
+ // WHERE
+ // master.created_at <= '$end_date' and master.created_at >= '$start_date' and master.is_active = 1
+ // GROUP BY
+ // u.id;
+ // ";
+ // $result = $this->ticketMasterModel->query($sql)->getResultArray();
+ // // dd($result);
- return $result;
- } else {
- $sql = "SELECT u.first_name AS acc_manager_name,
- COUNT(CASE WHEN tcs.claim_status = 'CLAIM INTIMATION' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS claim_intimation,
- COUNT(CASE WHEN tcs.claim_status = 'INTIMATION TO INSURER' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS int_to_insurer,
- COUNT(CASE WHEN tcs.claim_status = 'CLIENT PENDING' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS client_pending,
- COUNT(CASE WHEN tcs.claim_status = 'INSURER PENDING' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS information_required,
- COUNT(CASE WHEN tcs.claim_status = 'INVESTIGATION' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS investigation,
- COUNT(CASE WHEN tcs.claim_status = 'APPROVED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS approved,
- COUNT(CASE WHEN tcs.claim_status = 'ON HOLD' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS on_hold,
+ // return $result;
+
+
+ // }else{
+ // $sql = "SELECT u.first_name AS acc_manager_name,
+ // COUNT(CASE WHEN tcs.claim_status = 'CLAIM INTIMATION' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS claim_intimation,
+ // COUNT(CASE WHEN tcs.claim_status = 'INTIMATION TO INSURER' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS int_to_insurer,
+ // COUNT(CASE WHEN tcs.claim_status = 'CLIENT PENDING' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS client_pending,
+ // COUNT(CASE WHEN tcs.claim_status = 'INSURER PENDING' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS information_required,
+ // COUNT(CASE WHEN tcs.claim_status = 'INVESTIGATION' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS investigation,
+ // COUNT(CASE WHEN tcs.claim_status = 'APPROVED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS approved,
+ // COUNT(CASE WHEN tcs.claim_status = 'ON HOLD' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS on_hold,
- (
- COUNT(CASE WHEN tcs.claim_status = 'CLAIM INTIMATION' AND master.ticket_type_id = '$policy_type' THEN master.id END)+
- COUNT(CASE WHEN tcs.claim_status = 'INTIMATION TO INSURER' AND master.ticket_type_id = '$policy_type' THEN master.id END)+
- COUNT(CASE WHEN tcs.claim_status = 'CLIENT PENDING' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'INSURER PENDING' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'INVESTIGATION' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'APPROVED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'ON HOLD' AND master.ticket_type_id = '$policy_type' THEN master.id END)
- ) AS total1,
- COUNT(CASE WHEN tcs.claim_status = 'NOT COVERED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS not_covered,
- COUNT(CASE WHEN tcs.claim_status = 'CLOSED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS closed,
- COUNT(CASE WHEN tcs.claim_status = 'SETTLED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS settled,
- (
- COUNT(CASE WHEN tcs.claim_status = 'NOT COVERED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'CLOSED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'SETTLED' AND master.ticket_type_id = '$policy_type' THEN master.id END)
- ) AS total2
- FROM
- ticket_master master
- JOIN
- user_profiles u ON master.acm_id = u.id and u.is_active = 1
- JOIN
- ticket_claim_status tcs ON tcs.id = master.claim_status_id and tcs.is_active = 1
- WHERE
- master.created_at <= '$end_date' and master.created_at >= '$start_date' and master.is_active = 1 and master.ticket_type_id = '$policy_type'
- GROUP BY
- u.id;
- ";
- $result = $this->ticketMasterModel->query($sql)->getResultArray();
+ // (
+ // COUNT(CASE WHEN tcs.claim_status = 'CLAIM INTIMATION' AND master.ticket_type_id = '$policy_type' THEN master.id END)+
+ // COUNT(CASE WHEN tcs.claim_status = 'INTIMATION TO INSURER' AND master.ticket_type_id = '$policy_type' THEN master.id END)+
+ // COUNT(CASE WHEN tcs.claim_status = 'CLIENT PENDING' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'INSURER PENDING' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'INVESTIGATION' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'APPROVED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'ON HOLD' AND master.ticket_type_id = '$policy_type' THEN master.id END)
+ // ) AS total1,
+ // COUNT(CASE WHEN tcs.claim_status = 'NOT COVERED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS not_covered,
+ // COUNT(CASE WHEN tcs.claim_status = 'CLOSED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS closed,
+ // COUNT(CASE WHEN tcs.claim_status = 'SETTLED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS settled,
+ // (
+ // COUNT(CASE WHEN tcs.claim_status = 'NOT COVERED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'CLOSED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'SETTLED' AND master.ticket_type_id = '$policy_type' THEN master.id END)
+ // ) AS total2
+ // FROM
+ // ticket_master master
+ // JOIN
+ // user_profiles u ON master.acm_id = u.id and u.is_active = 1
+ // JOIN
+ // ticket_claim_status tcs ON tcs.id = master.claim_status_id and tcs.is_active = 1
+ // WHERE
+ // master.created_at <= '$end_date' and master.created_at >= '$start_date' and master.is_active = 1 and master.ticket_type_id = '$policy_type'
+ // GROUP BY
+ // u.id;
+ // ";
+ // $result = $this->ticketMasterModel->query($sql)->getResultArray();
- return $result;
- }
- }
+ // return $result;
+ // }
+ // }
- public function tpaWiseReport($policy_type = null, $start_date = null, $end_date = null)
- {
- // $policy_type = 1;
- $sql = "SELECT
- tpa.name AS tpa_name,
- COUNT(CASE WHEN tcs.claim_status = 'ID NOT GENERATED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS id_not_generated,
- COUNT(CASE WHEN tcs.claim_status = 'NON ID' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS non_id,
- COUNT(CASE WHEN tcs.claim_status = 'CDA' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS cda,
- COUNT(CASE WHEN tcs.claim_status = 'INFORMATION REQUIRED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS information_required,
- COUNT(CASE WHEN tcs.claim_status LIKE '%UNDER PROCESS%' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS under_process,
- COUNT(CASE WHEN tcs.claim_status = 'APPROVED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS approved,
- COUNT(CASE WHEN tcs.claim_status = 'PAYMENT INITIATED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS payment_initiated,
- (
- COUNT(CASE WHEN tcs.claim_status = 'ID NOT GENERATED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'NON ID' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'CDA' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'INFORMATION REQUIRED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status LIKE '%UNDER PROCESS%' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'APPROVED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'PAYMENT INITIATED' AND master.ticket_type_id = '$policy_type' THEN master.id END)
- ) AS total,
- COUNT(CASE WHEN tcs.claim_status = 'CLOSED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS closed,
- COUNT(CASE WHEN tcs.claim_status = 'SETTLED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS settled,
- COUNT(CASE WHEN tcs.claim_status = 'RETURNED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS returned,
- COUNT(CASE WHEN tcs.claim_status = 'REJECTED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS denied,
- (
- COUNT(CASE WHEN tcs.claim_status = 'CLOSED' AND master.ticket_type_id = '$policy_type'THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'SETTLED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'RETURNED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
- COUNT(CASE WHEN tcs.claim_status = 'REJECTED' AND master.ticket_type_id = '$policy_type' THEN master.id END)
- ) AS total2
- FROM
- ticket_master master
- JOIN
- tpa ON master.tpa_id = tpa.id and tpa.is_active = 1
- JOIN
- ticket_claim_status tcs ON tcs.id = master.claim_status_id and tcs.is_active = 1
- WHERE
- master.created_at <= '$end_date' and master.created_at >= '$start_date' and master.is_active = 1
- GROUP BY
- tpa.id;
+ // public function tpaWiseReport($policy_type = null ,$start_date = null,$end_date = null ){
+ // // $policy_type = 1;
+ // $sql = "SELECT
+ // tpa.name AS tpa_name,
+ // COUNT(CASE WHEN tcs.claim_status = 'ID NOT GENERATED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS id_not_generated,
+ // COUNT(CASE WHEN tcs.claim_status = 'NON ID' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS non_id,
+ // COUNT(CASE WHEN tcs.claim_status = 'CDA' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS cda,
+ // COUNT(CASE WHEN tcs.claim_status = 'INFORMATION REQUIRED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS information_required,
+ // COUNT(CASE WHEN tcs.claim_status LIKE '%UNDER PROCESS%' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS under_process,
+ // COUNT(CASE WHEN tcs.claim_status = 'APPROVED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS approved,
+ // COUNT(CASE WHEN tcs.claim_status = 'PAYMENT INITIATED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS payment_initiated,
+ // (
+ // COUNT(CASE WHEN tcs.claim_status = 'ID NOT GENERATED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'NON ID' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'CDA' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'INFORMATION REQUIRED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status LIKE '%UNDER PROCESS%' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'APPROVED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'PAYMENT INITIATED' AND master.ticket_type_id = '$policy_type' THEN master.id END)
+ // ) AS total,
+ // COUNT(CASE WHEN tcs.claim_status = 'CLOSED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS closed,
+ // COUNT(CASE WHEN tcs.claim_status = 'SETTLED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS settled,
+ // COUNT(CASE WHEN tcs.claim_status = 'RETURNED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS returned,
+ // COUNT(CASE WHEN tcs.claim_status = 'REJECTED' AND master.ticket_type_id = '$policy_type' THEN master.id END) AS denied,
+ // (
+ // COUNT(CASE WHEN tcs.claim_status = 'CLOSED' AND master.ticket_type_id = '$policy_type'THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'SETTLED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'RETURNED' AND master.ticket_type_id = '$policy_type' THEN master.id END) +
+ // COUNT(CASE WHEN tcs.claim_status = 'REJECTED' AND master.ticket_type_id = '$policy_type' THEN master.id END)
+ // ) AS total2
+ // FROM
+ // ticket_master master
+ // JOIN
+ // tpa ON master.tpa_id = tpa.id and tpa.is_active = 1
+ // JOIN
+ // ticket_claim_status tcs ON tcs.id = master.claim_status_id and tcs.is_active = 1
+ // WHERE
+ // master.created_at <= '$end_date' and master.created_at >= '$start_date' and master.is_active = 1
+ // GROUP BY
+ // tpa.id;
- ";
- $result = $this->ticketMasterModel->query($sql)->getResultArray();
+ // ";
+ // $result = $this->ticketMasterModel->query($sql)->getResultArray();
- return $result;
- }
+ // return $result;
+ // }
}
diff --git a/app/Models/TicketMasterModel.php b/app/Models/TicketMasterModel.php
index adce7dff..c4fca96d 100644
--- a/app/Models/TicketMasterModel.php
+++ b/app/Models/TicketMasterModel.php
@@ -450,5 +450,201 @@ class TicketMasterModel extends Model
return $data;
}
+
+ public function tpaWiseReport($policy_type = null ,$start_date = null, $end_date = null){
+ $ticket_type_data_1 = "";
+ $ticket_type_data_2 = "";
+
+ if (!empty($policy_type)) {
+ $ticket_type_data_1 = "AND ticket_type = $policy_type";
+ $ticket_type_data_2 = "AND master.ticket_type_id = $policy_type";
+ }
+
+ // Fetch claim statuses dynamically
+ $statusQuery = "SELECT id, claim_status FROM ticket_claim_status WHERE is_active = 1 $ticket_type_data_1";
+ $statusResult = $this->db->query($statusQuery)->getResultArray();
+
+ // Initialize dynamic query parts
+ $dynamicSelect = '';
+ $dynamicTotal = '';
+ $dynamicClosedTotal = '';
+
+ // Loop through each claim status and generate the CASE statements
+ foreach ($statusResult as $status) {
+ $dynamicSelect .= "
+ COUNT(CASE WHEN master.claim_status_id = {$status['id']} THEN master.id END) AS `{$status['claim_status']}`, ";
+
+ if (in_array($status['claim_status'], ['ID NOT GENERATED', 'NON ID', 'CDA', 'INFORMATION REQUIRED','UNDER PROCESS - CLAIM NO. UPDATION',
+ 'UNDER PROCESS - INVESTIGATION STATUS','UNDER PROCESS - QUERY DOCUMENT RECEIVED','APPROVED','PAYMENT INITIATED'])) {
+ $dynamicTotal .= "COUNT(CASE WHEN master.claim_status_id = {$status['id']} THEN master.id END) + ";
+ }
+ // Include in total count
+ // $dynamicTotal .= "COUNT(CASE WHEN master.claim_status_id = {$status['id']} THEN master.id END) + ";
+
+ // Include only closed-related statuses in total2 count
+ if (in_array($status['claim_status'], ['CLOSED', 'SETTLED', 'RETURNED', 'REJECTED'])) {
+ $dynamicClosedTotal .= "COUNT(CASE WHEN master.claim_status_id = {$status['id']} THEN master.id END) + ";
+ }
+ }
+
+ // Remove the trailing commas and `+` signs
+ $dynamicSelect = rtrim($dynamicSelect, ', ');
+ $dynamicTotal = rtrim($dynamicTotal, ' +');
+ $dynamicClosedTotal = rtrim($dynamicClosedTotal, ' +');
+ // print_rr($dynamicSelect);
+ // Construct the final SQL query
+ $sql = "
+ SELECT
+ tpa.name AS TPA_NAME,
+ $dynamicSelect,
+ ($dynamicTotal) AS TOTAL,
+ ($dynamicClosedTotal) AS CLEARED_TOTAL
+ FROM
+ ticket_master master
+ JOIN
+ tpa ON master.tpa_id = tpa.id AND tpa.is_active = 1
+ WHERE
+ master.created_at BETWEEN '$start_date' AND '$end_date'
+ AND master.is_active = 1
+ $ticket_type_data_2
+ GROUP BY
+ tpa.id;
+ ";
+
+ // Execute the query
+ $result = $this->db->query($sql)->getResultArray();
+
+ // print_rr($result);die();
+ return $result;
+
+ }
+
+ public function accountManagerWiseReport($policy_type = null ,$start_date = null, $end_date = null){
+
+ if ($policy_type == 1) {
+ $ticket_type_data_1 = "";
+ $ticket_type_data_2 = "";
+
+ if (!empty($policy_type)) {
+ $ticket_type_data_1 = "AND ticket_type = $policy_type";
+ $ticket_type_data_2 = "AND master.ticket_type_id = $policy_type";
+ }
+
+ // Fetch claim statuses dynamically
+ $statusQuery = "SELECT id, claim_status FROM ticket_claim_status WHERE is_active = 1 $ticket_type_data_1";
+ $statusResult = $this->db->query($statusQuery)->getResultArray();
+
+ // Initialize dynamic query parts
+ $dynamicSelect = '';
+ $dynamicTotal = '';
+
+ // Loop through each claim status and generate the CASE statements
+ foreach ($statusResult as $status) {
+ $dynamicSelect .= "
+ COUNT(CASE WHEN master.claim_status_id = {$status['id']} THEN master.id END) AS `{$status['claim_status']}`, ";
+
+
+ // Include in total count
+ $dynamicTotal .= "COUNT(CASE WHEN master.claim_status_id = {$status['id']} THEN master.id END) + ";
+
+ // Include only closed-related statuses in total2 count
+
+ }
+
+ // Remove the trailing commas and `+` signs
+ $dynamicSelect = rtrim($dynamicSelect, ', ');
+ $dynamicTotal = rtrim($dynamicTotal, ' +');
+ // print_rr($dynamicSelect);
+ // Construct the final SQL query
+ $sql = "
+ SELECT
+ user_profiles.first_name AS ACM_NAME,
+ $dynamicSelect,
+ ($dynamicTotal) AS TOTAL
+ FROM
+ ticket_master master
+ JOIN
+ user_profiles ON master.acm_id = user_profiles.id AND user_profiles.is_active = 1
+ WHERE
+ master.created_at BETWEEN '$start_date' AND '$end_date'
+ AND master.is_active = 1
+ $ticket_type_data_2
+ GROUP BY
+ user_profiles.id;
+ ";
+
+ $result = $this->db->query($sql)->getResultArray();
+ // dd($result);
+
+ return $result;
+
+
+ }else{
+ $ticket_type_data_1 = "";
+ $ticket_type_data_2 = "";
+
+ if (!empty($policy_type)) {
+ $ticket_type_data_1 = "AND ticket_type = $policy_type";
+ $ticket_type_data_2 = "AND master.ticket_type_id = $policy_type";
+ }
+
+ // Fetch claim statuses dynamically
+ $statusQuery = "SELECT id, claim_status FROM ticket_claim_status WHERE is_active = 1 $ticket_type_data_1";
+ $statusResult = $this->db->query($statusQuery)->getResultArray();
+
+ // Initialize dynamic query parts
+ $dynamicSelect = '';
+ $dynamicTotal = '';
+ $dynamicClosedTotal = '';
+
+ // Loop through each claim status and generate the CASE statements
+ foreach ($statusResult as $status) {
+ $dynamicSelect .= "
+ COUNT(CASE WHEN master.claim_status_id = {$status['id']} THEN master.id END) AS `{$status['claim_status']}`, ";
+
+ if (in_array($status['claim_status'], ['CLAIM INTIMATION', 'INTIMATION TO INSURER', 'CLIENT PENDING', 'INSURER PENDING','INVESTIGATION',
+ 'APPROVED','ON HOLD'])) {
+ $dynamicTotal .= "COUNT(CASE WHEN master.claim_status_id = {$status['id']} THEN master.id END) + ";
+ }
+ // Include in total count
+ // $dynamicTotal .= "COUNT(CASE WHEN master.claim_status_id = {$status['id']} THEN master.id END) + ";
+
+ // Include only closed-related statuses in total2 count
+ if (in_array($status['claim_status'], ['CLOSED', 'SETTLED', 'NOT COVERED'])) {
+ $dynamicClosedTotal .= "COUNT(CASE WHEN master.claim_status_id = {$status['id']} THEN master.id END) + ";
+ }
+ }
+
+ // Remove the trailing commas and `+` signs
+ $dynamicSelect = rtrim($dynamicSelect, ', ');
+ $dynamicTotal = rtrim($dynamicTotal, ' +');
+ $dynamicClosedTotal = rtrim($dynamicClosedTotal, ' +');
+ // print_rr($dynamicSelect);
+ // Construct the final SQL query
+ $sql = "
+ SELECT
+ user_profiles.first_name AS ACM_NAME,
+ $dynamicSelect,
+ ($dynamicTotal) AS TOTAL,
+ ($dynamicClosedTotal) AS CLEARED_TOTAL
+ FROM
+ ticket_master master
+ JOIN
+ user_profiles ON master.acm_id = user_profiles.id AND user_profiles.is_active = 1
+ WHERE
+ master.created_at BETWEEN '$start_date' AND '$end_date'
+ AND master.is_active = 1
+ $ticket_type_data_2
+ GROUP BY
+ user_profiles.id;
+ ";
+
+ // Execute the query
+ $result = $this->db->query($sql)->getResultArray();
+
+ // print_rr($result);die();
+ return $result;
+ }
+ }
}
diff --git a/app/Views/claims_report_acc_manager_gmc.php b/app/Views/claims_report_acc_manager_gmc.php
deleted file mode 100644
index b24b462b..00000000
--- a/app/Views/claims_report_acc_manager_gmc.php
+++ /dev/null
@@ -1,169 +0,0 @@
-
-
-
-
-
diff --git a/app/Views/claims_report_acc_manager_gpa.php b/app/Views/claims_report_acc_manager_gpa.php
deleted file mode 100644
index b1523e04..00000000
--- a/app/Views/claims_report_acc_manager_gpa.php
+++ /dev/null
@@ -1,203 +0,0 @@
-
-
-
-
-
diff --git a/app/Views/claims_report_acc_manager_wise.php b/app/Views/claims_report_acc_manager_wise.php
new file mode 100644
index 00000000..a629a01c
--- /dev/null
+++ b/app/Views/claims_report_acc_manager_wise.php
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
Account Manger Claim Status List
+
+
+
+
+
+
+
+
diff --git a/app/Views/claims_report_tpa_wise.php b/app/Views/claims_report_tpa_wise.php
index 3682ca00..0a3fc65a 100644
--- a/app/Views/claims_report_tpa_wise.php
+++ b/app/Views/claims_report_tpa_wise.php
@@ -1,24 +1,23 @@
@@ -26,7 +25,7 @@ table.dataTable tbody td {
-
Insurer List
+ TPA Claim Status List
@@ -34,63 +33,40 @@ table.dataTable tbody td {
| OPEN |
- CLEARED |
+ CLEARED |
- | TPA |
- ID Not Generated |
- Non-ID |
- CDA |
- Information Required |
- Under Process |
- Approved |
- Payment Initiated |
- Total |
- Closed |
- Settled |
- Returned |
- Denied |
- Total |
-
+
+ = str_replace('_', ' ', $col_name) ?> |
+
-
+
- | = $data['tpa_name'] ?> |
- = $data['id_not_generated'] ?> |
- = $data['non_id'] ?> |
- =$data['cda']?> |
- =$data['information_required'] ?> |
- =$data['under_process'] ?> |
- =$data['approved'] ?> |
- =$data['payment_initiated'] ?> |
- =$data['total'] ?> |
- =$data['closed'] ?> |
- =$data['settled'] ?> |
- =$data['returned'] ?> |
- =$data['denied'] ?> |
- =$data['total2'] ?> |
+
+ = $row[$col_name] ?> |
+
-
+
| Grand Total |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
+ {$totals[$col_name]}";
+ }
+ }
+ ?>
@@ -106,102 +82,17 @@ table.dataTable tbody td {
if (ticketsTable.length) {
ticketsTable.DataTable({
scrollX: true,
- dom: "<'row'<'col-sm-6'f><'col-sm-6 text-right'B>>" + // Filter left, buttons right
- "<'row'<'col-sm-12'tr>>" +
- "<'row'<'col-sm-5'i><'col-sm-7'p>>", // Pagination at the bottom, without page length selector
+ dom: "<'row'<'col-sm-6'f><'col-sm-6 text-right'B>>" +
+ "<'row'<'col-sm-12'tr>>" +
+ "<'row'<'col-sm-5'i><'col-sm-7'p>>",
buttons: [
- {
- extend: 'csv',
- text: 'CSV',
- title: 'Insurer-Wise-Report-List',
- },
- {
- extend: 'excel',
- text: 'Excel',
- title: 'Insurer-Wise-Report-List',
- exportOptions: {
- orthogonal: 'sort'
- },
- }
+ { extend: 'csv', text: 'CSV', title: 'Insurer-Wise-Report-List' },
+ { extend: 'excel', text: 'Excel', title: 'Insurer-Wise-Report-List', exportOptions: { orthogonal: 'sort' } }
],
- language: {
- search: "_INPUT_",
- searchPlaceholder: "Search..."
- },
- paging: true, // Enable pagination
- pageLength: 10, // Set default number of rows per page (optional)
- ordering: false,
- footerCallback: function(row, data, start, end, display) {
- var api = this.api();
-
- // Helper function to parse numbers
- var parseNumber = function(value) {
- return typeof value === 'string' ?
- parseFloat(value.replace(/[\$,]/g, '')) :
- typeof value === 'number' ? value : 0;
- };
-
- // Calculate total for each column
- var total_id_not_generated = api.column(1).data().reduce(function(a, b) {
- return parseNumber(a) + parseNumber(b);
- }, 0);
-
- var total_non_id = api.column(2).data().reduce(function(a, b) {
- return parseNumber(a) + parseNumber(b);
- }, 0);
-
- var total_cda = api.column(3).data().reduce(function(a, b) {
- return parseNumber(a) + parseNumber(b);
- }, 0);
- var total_information_required = api.column(4).data().reduce(function(a, b) {
- return parseNumber(a) + parseNumber(b);
- }, 0);
- var total_under_process = api.column(5).data().reduce(function(a, b) {
- return parseNumber(a) + parseNumber(b);
- }, 0);
- var total_approved = api.column(6).data().reduce(function(a, b) {
- return parseNumber(a) + parseNumber(b);
- }, 0);
- var total_payment_initiated = api.column(7).data().reduce(function(a, b) {
- return parseNumber(a) + parseNumber(b);
- }, 0);
- var total_of_total = api.column(8).data().reduce(function(a, b) {
- return parseNumber(a) + parseNumber(b);
- }, 0);
- var total_closed = api.column(9).data().reduce(function(a, b) {
- return parseNumber(a) + parseNumber(b);
- }, 0);
- var total_settled = api.column(10).data().reduce(function(a, b) {
- return parseNumber(a) + parseNumber(b);
- }, 0);
- var total_returned = api.column(11).data().reduce(function(a, b) {
- return parseNumber(a) + parseNumber(b);
- }, 0);
- var total_denied = api.column(12).data().reduce(function(a, b) {
- return parseNumber(a) + parseNumber(b);
- }, 0);
- var total_of_total2 = api.column(13).data().reduce(function(a, b) {
- return parseNumber(a) + parseNumber(b);
- }, 0);
-
- // Update the footer with totals
- $(api.column(1).footer()).html(total_id_not_generated);
- $(api.column(2).footer()).html(total_non_id);
- $(api.column(3).footer()).html(total_cda);
- $(api.column(4).footer()).html(total_information_required);
- $(api.column(5).footer()).html(total_under_process);
- $(api.column(6).footer()).html(total_approved);
- $(api.column(7).footer()).html(total_payment_initiated);
- $(api.column(8).footer()).html(total_of_total);
- $(api.column(9).footer()).html(total_closed);
- $(api.column(10).footer()).html(total_settled);
- $(api.column(11).footer()).html(total_returned);
- $(api.column(12).footer()).html(total_denied);
- $(api.column(13).footer()).html(total_of_total2);
-
-
-
- }
+ language: { search: "_INPUT_", searchPlaceholder: "Search..." },
+ paging: true,
+ pageLength: 10,
+ ordering: false
});
} else {
console.error("Table not found.");