diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 62989198..24c0f2ec 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -142,24 +142,38 @@ class ClientController extends AdminController return $this->response->setJSON(['isDuplicate' => $isDuplicate]); } + private const ALLOWED_DUPLICATE_CHECK_TABLES = [ + 'clients', 'client_branch', 'level_contacts', 'insurers', 'insurer_branch', + 'tpa', 'tpa_branch', 'policies', 'client_policy', 'user_profiles', + ]; + public function checkDuplicateTableFieldValue() { $table = $this->request->getPost('table'); $field = $this->request->getPost('field'); $value = $this->request->getPost('value'); - // Load the database if not already loaded - $db = db_connect(); + if (!in_array($table, self::ALLOWED_DUPLICATE_CHECK_TABLES, true)) { + return $this->response->setJSON(['isDuplicate' => false, 'error' => 'Invalid table']); + } + + $db = db_connect(); + $tableFields = $db->getFieldNames($table); - // Perform the query $builder = $db->table($table); if (is_array($value)) { - $isDuplicate = $builder->where($value)->where('is_active', 1)->countAllResults() > 0; + $filteredValue = array_intersect_key($value, array_flip($tableFields)); + if (empty($filteredValue)) { + return $this->response->setJSON(['isDuplicate' => false, 'error' => 'Invalid fields']); + } + $isDuplicate = $builder->where($filteredValue)->where('is_active', 1)->countAllResults() > 0; } else { + if (!in_array($field, $tableFields, true)) { + return $this->response->setJSON(['isDuplicate' => false, 'error' => 'Invalid field']); + } $isDuplicate = $builder->where($field, $value)->where('is_active', 1)->countAllResults() > 0; } - // Return the result return $this->response->setJSON(['isDuplicate' => $isDuplicate]); } diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index 4a4e9faf..3ea1af3a 100755 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -4360,13 +4360,15 @@ class EmpDataServiceController extends BaseController { $client_policy_id = $arrayData['client_policy_id']; $cd_ac_pk = $this->clientPolicyModel->select('cd_ac_pk')->where('id',$client_policy_id)->first(); + $sanitizedIds = array_map('intval', $arrayData['employeeIds']); + $placeholders = implode(',', array_fill(0, count($sanitizedIds), '?')); $amount = $this->employeePolicyModel->query(" SELECT SUM(rata_premimum + gst) AS total_sum FROM employee_polices JOIN employees ON employees.id = employee_polices.employee_id - WHERE employees.unit = '$unit' - AND employee_polices.id IN (" . implode(',', $arrayData['employeeIds']) . ") - ")->getRow(); + WHERE employees.unit = ? + AND employee_polices.id IN ($placeholders) + ", array_merge([$unit], $sanitizedIds))->getRow(); if($amount){ @@ -4625,11 +4627,14 @@ class EmpDataServiceController extends BaseController // AND employee_polices.id IN (" . implode(',', $arrayData['employeeIds']) . ") // ")->getRow(); + $sanitizedIds = array_map('intval', $arrayData['employeeIds']); + $placeholders = implode(',', array_fill(0, count($sanitizedIds), '?')); + $safeAddOneDay = (int)$add_one_day; $amount = $this->employeePolicyModel->query(" SELECT SUM(ROUND( - ((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, emp_endorsement.new_value) + '$add_one_day')) / 365) + - (((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, emp_endorsement.new_value) + '$add_one_day')) / 365) * 0.18), + ((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, emp_endorsement.new_value) + ?)) / 365) + + (((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, emp_endorsement.new_value) + ?)) / 365) * 0.18), 2 )) AS total_sum FROM @@ -4639,14 +4644,14 @@ class EmpDataServiceController extends BaseController JOIN emp_endorsement ON emp_endorsement.pk = employee_polices.id WHERE - employee_polices.id IN (" . implode(',', $arrayData['employeeIds']) . ") - AND emp_endorsement.pk IN (" . implode(',', $arrayData['employeeIds']) . ") + employee_polices.id IN ($placeholders) + AND emp_endorsement.pk IN ($placeholders) AND employee_polices.claim_status = 0 AND emp_endorsement.field_name = 'date_of_exit' AND emp_endorsement.is_active = 1 AND emp_endorsement.actions = 'd' - AND emp_endorsement.status != 'truncated'; - ")->getRow(); + AND emp_endorsement.status != 'truncated' + ", array_merge([$safeAddOneDay, $safeAddOneDay], $sanitizedIds, $sanitizedIds))->getRow(); // dd(db_connect()->getLastQuery(), $amount); diff --git a/app/Helpers/excel_import_export_helper.php b/app/Helpers/excel_import_export_helper.php index c7ba2982..dcffd660 100755 --- a/app/Helpers/excel_import_export_helper.php +++ b/app/Helpers/excel_import_export_helper.php @@ -766,18 +766,18 @@ if(!function_exists('query_construct_for_emp_policy_id')){ $gst_alise = ''; } $subQuery .= "SELECT " . intval($index) . $row_id_alise; - $subQuery .= "'" . $employee[$col_index['emp_name']] . "'" . $emp_name_alise; - $subQuery .= "'" . $employee[$col_index['emp_code']] . "'" . $emp_code_alise; - $subQuery .= "'" . $employee[$col_index['emp_dob']] . "'" . $emp_dob_alise; - $subQuery .= "'" . $employee[$col_index['emp_gender']] . "'" . $emp_gender_alise; - $subQuery .= "'" . $employee[$col_index['pre_existing_alignments']] . "'" . $pre_existing_alignments_alise; - $subQuery .= "'" . $employee[$col_index['basic_cover_si']] . "'" . $basic_cover_si_alise; - $subQuery .= "'" . $employee[$col_index['emp_relationship']] . "'" . $emp_relationship_alise; - $subQuery .= "'" . $employee[$col_index['policy_end_date']] . "'" . $policy_end_date_alise; - $subQuery .= "'" . $employee[$col_index['days']] . "'" . $days_alise; - $subQuery .= "'" . $employee[$col_index['premium']] . "'" . $premium_alise; - $subQuery .= "'" . $employee[$col_index['rata_premimum']] . "'" . $rata_premimum_alise; - $subQuery .= "'" . $employee[$col_index['gst']] . "'" . $gst_alise; + $subQuery .= $db->escape($employee[$col_index['emp_name']]) . $emp_name_alise; + $subQuery .= $db->escape($employee[$col_index['emp_code']]) . $emp_code_alise; + $subQuery .= $db->escape($employee[$col_index['emp_dob']]) . $emp_dob_alise; + $subQuery .= $db->escape($employee[$col_index['emp_gender']]) . $emp_gender_alise; + $subQuery .= $db->escape($employee[$col_index['pre_existing_alignments']]) . $pre_existing_alignments_alise; + $subQuery .= $db->escape($employee[$col_index['basic_cover_si']]) . $basic_cover_si_alise; + $subQuery .= $db->escape($employee[$col_index['emp_relationship']]) . $emp_relationship_alise; + $subQuery .= $db->escape($employee[$col_index['policy_end_date']]) . $policy_end_date_alise; + $subQuery .= $db->escape($employee[$col_index['days']]) . $days_alise; + $subQuery .= $db->escape($employee[$col_index['premium']]) . $premium_alise; + $subQuery .= $db->escape($employee[$col_index['rata_premimum']]) . $rata_premimum_alise; + $subQuery .= $db->escape($employee[$col_index['gst']]) . $gst_alise; } // Complete the query @@ -893,18 +893,18 @@ if(!function_exists('query_construct_second_stage')){ $gst_alise = ''; } $subQuery .= "SELECT " . intval($index) . $row_id_alise; - $subQuery .= "'" . $employee[$col_index['emp_name']] . "'" . $emp_name_alise; - $subQuery .= "'" . $employee[$col_index['emp_code']] . "'" . $emp_code_alise; - $subQuery .= "'" . $employee[$col_index['emp_dob']] . "'" . $emp_dob_alise; - $subQuery .= "'" . $employee[$col_index['emp_gender']] . "'" . $emp_gender_alise; - $subQuery .= "'" . $employee[$col_index['pre_existing_alignments']] . "'" . $pre_existing_alignments_alise; - $subQuery .= "'" . $employee[$col_index['basic_cover_si']] . "'" . $basic_cover_si_alise; - $subQuery .= "'" . $employee[$col_index['emp_relationship']] . "'" . $emp_relationship_alise; - $subQuery .= "'" . $employee[$col_index['policy_end_date']] . "'" . $policy_end_date_alise; - $subQuery .= "'" . $employee[$col_index['days']] . "'" . $days_alise; - $subQuery .= "'" . $employee[$col_index['premium']] . "'" . $premium_alise; - $subQuery .= "'" . $employee[$col_index['rata_premimum']] . "'" . $rata_premimum_alise; - $subQuery .= "'" . $employee[$col_index['gst']] . "'" . $gst_alise; + $subQuery .= $db->escape($employee[$col_index['emp_name']]) . $emp_name_alise; + $subQuery .= $db->escape($employee[$col_index['emp_code']]) . $emp_code_alise; + $subQuery .= $db->escape($employee[$col_index['emp_dob']]) . $emp_dob_alise; + $subQuery .= $db->escape($employee[$col_index['emp_gender']]) . $emp_gender_alise; + $subQuery .= $db->escape($employee[$col_index['pre_existing_alignments']]) . $pre_existing_alignments_alise; + $subQuery .= $db->escape($employee[$col_index['basic_cover_si']]) . $basic_cover_si_alise; + $subQuery .= $db->escape($employee[$col_index['emp_relationship']]) . $emp_relationship_alise; + $subQuery .= $db->escape($employee[$col_index['policy_end_date']]) . $policy_end_date_alise; + $subQuery .= $db->escape($employee[$col_index['days']]) . $days_alise; + $subQuery .= $db->escape($employee[$col_index['premium']]) . $premium_alise; + $subQuery .= $db->escape($employee[$col_index['rata_premimum']]) . $rata_premimum_alise; + $subQuery .= $db->escape($employee[$col_index['gst']]) . $gst_alise; } // Complete the query diff --git a/app/Libraries/DataServiceSqlite.php b/app/Libraries/DataServiceSqlite.php index 226cba32..442efc63 100755 --- a/app/Libraries/DataServiceSqlite.php +++ b/app/Libraries/DataServiceSqlite.php @@ -65,12 +65,23 @@ class DataServiceSqlite $this->sqliteDb->exec($sql); } + private const ALLOWED_TABLES = ['http', 'log']; + public function insertData(array $data, string $tableName): bool { log_message('error', 'SQLite insert called: '); + + if (!in_array($tableName, self::ALLOWED_TABLES, true)) { + log_message('error', 'SQLite insert rejected: invalid table name: ' . $tableName); + return false; + } + unset($data['context']); - $columns = implode(', ', array_keys($data)); - // print_r($columns); + + $safeColumns = array_map(function ($col) { + return preg_replace('/[^a-zA-Z0-9_]/', '', $col); + }, array_keys($data)); + $columns = implode(', ', $safeColumns); $placeholders = implode(', ', array_fill(0, count($data), '?')); $sql = "INSERT INTO $tableName ($columns) VALUES ($placeholders)"; diff --git a/app/Models/ClientModel.php b/app/Models/ClientModel.php index c99a50f4..0a291e7c 100755 --- a/app/Models/ClientModel.php +++ b/app/Models/ClientModel.php @@ -228,8 +228,14 @@ class ClientModel extends Model return $result; } + private const ALLOWED_CONTACT_FIELDS = ['email', 'mobile', 'phone', 'name', 'contact_name', 'contact_email', 'contact_mobile']; + public function isDuplicateByClientBranch($value, $field, $clientId, $branchId) { + if (!in_array($field, self::ALLOWED_CONTACT_FIELDS, true)) { + throw new \InvalidArgumentException("Invalid field name: {$field}"); + } + $builder = $this->db->table('level_contacts lc') ->select('lc.id') ->join('client_branch cb', 'lc.ref_id = cb.id', 'left') diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php index 8171df0c..92efedf8 100755 --- a/app/Models/EmployeePolicyModel.php +++ b/app/Models/EmployeePolicyModel.php @@ -1146,6 +1146,8 @@ class EmployeePolicyModel extends Model $endorsement_condition = "{$insurer_or_tpa}" === 'tpa' ? "AND (a.endorsement_id IS NULL OR a.endorsement_id = '')" : "AND (a.endorsement_id IS NULL OR a.endorsement_id = '')"; + $add_one_day = (int)$add_one_day; + $query = $this->db->query(" SELECT DISTINCT a.id as endorsement_primarykey, @@ -1688,30 +1690,29 @@ class EmployeePolicyModel extends Model public function bulkUpdate($emp_details) { // Extract IDs, tpa_ids, and uhids - $ids = array_column($emp_details, 'id'); + $ids = array_map('intval', array_column($emp_details, 'id')); $tpa_ids = array_column($emp_details, 'tpa_id'); $uhids = array_column($emp_details, 'uhid'); - // Escape values for SQL - $escapedIds = array_map([$this->db, 'escape'], $ids); + // Escape string values for SQL $escapedTpaIds = array_map([$this->db, 'escape'], $tpa_ids); $escapedUhids = array_map([$this->db, 'escape'], $uhids); - // Construct the CASE statements + // Construct the CASE statements with int-cast IDs $caseTpaId = array_map(function($id, $tpa_id) { - return "WHEN id = $id THEN $tpa_id"; - }, $escapedIds, $escapedTpaIds); + return "WHEN id = {$id} THEN {$tpa_id}"; + }, $ids, $escapedTpaIds); $caseUhid = array_map(function($id, $uhid) { - return "WHEN id = $id THEN $uhid"; - }, $escapedIds, $escapedUhids); + return "WHEN id = {$id} THEN {$uhid}"; + }, $ids, $escapedUhids); // Convert cases to a string $caseTpaIdString = implode(' ', $caseTpaId); $caseUhidString = implode(' ', $caseUhid); // Convert ids to a string - $idsString = implode(', ', $escapedIds); + $idsString = implode(', ', $ids); // Construct the SQL query $sql = " @@ -1837,18 +1838,19 @@ class EmployeePolicyModel extends Model $groupKeys = []; foreach ($endorsement_details as $row) { - $groupKey = $this->db->escape($row['group_key']); + $groupKey = (int)$row['group_key']; $endorsementId = $this->db->escape($row['endorsement_id']); $caseParts[] = "WHEN group_key = {$groupKey} THEN {$endorsementId}"; $groupKeys[] = $groupKey; } + $groupKeysStr = implode(', ', $groupKeys); $sql = " UPDATE emp_endorsement SET endorsement_id = CASE " . implode(' ', $caseParts) . " END, status = 'complete' - WHERE group_key IN (" . implode(', ', $groupKeys) . ") + WHERE group_key IN ({$groupKeysStr}) "; $this->db->query($sql); @@ -1866,26 +1868,37 @@ class EmployeePolicyModel extends Model public function bulkUpdateForCorrection($emp_details){ + $ids = []; + $caseStatements = []; + + $employeeTableFields = $this->db->getFieldNames('employees'); + foreach ($emp_details as $employee) { - $id = $this->db->escape($employee['id']); + $id = (int)$employee['id']; $ids[] = $id; foreach ($employee as $field => $value) { if ($field === 'id') continue; + + $safeField = preg_replace('/[^a-zA-Z0-9_]/', '', $field); + if (!in_array($safeField, $employeeTableFields, true)) { + continue; + } + $escapedValue = $this->db->escape($value); - if (!isset($caseStatements[$field])) { - $caseStatements[$field] = []; + if (!isset($caseStatements[$safeField])) { + $caseStatements[$safeField] = []; } - $caseStatements[$field][] = "WHEN id = $id THEN $escapedValue"; + $caseStatements[$safeField][] = "WHEN id = {$id} THEN {$escapedValue}"; } } // Construct the CASE strings $caseStrings = []; foreach ($caseStatements as $field => $cases) { - $caseStrings[] = "$field = CASE " . implode(' ', $cases) . " END"; + $caseStrings[] = "{$field} = CASE " . implode(' ', $cases) . " END"; } // Convert ids to a string @@ -1941,7 +1954,7 @@ class EmployeePolicyModel extends Model ->getRowArray(); // Determine if one day should be added for deletion - $add_one_day = (!empty($result) && $result['deletion_add_day'] == 1) ? 1 : 0; + $add_one_day = (int)((!empty($result) && $result['deletion_add_day'] == 1) ? 1 : 0); $query = $this->db->query(" @@ -2130,14 +2143,17 @@ class EmployeePolicyModel extends Model $caseEndorsementId = "CASE "; $ids = []; foreach ($array as $item) { - $caseStatus .= "WHEN id = {$item['id']} THEN '{$item['status']}' "; - $caseEndorsementId .= "WHEN id = {$item['id']} THEN '{$item['endorsement_id']}' "; - $ids[] = $item['id']; + $safeId = (int)$item['id']; + $safeStatus = $this->db->escape($item['status']); + $safeEndorsementId = $this->db->escape($item['endorsement_id']); + $caseStatus .= "WHEN id = {$safeId} THEN {$safeStatus} "; + $caseEndorsementId .= "WHEN id = {$safeId} THEN {$safeEndorsementId} "; + $ids[] = $safeId; } $caseStatus .= "END"; $caseEndorsementId .= "END"; $ids = implode(',', $ids); - $query = "UPDATE emp_endorsement SET status = $caseStatus, endorsement_id = $caseEndorsementId WHERE id IN ($ids);"; // Execute the query + $query = "UPDATE emp_endorsement SET status = $caseStatus, endorsement_id = $caseEndorsementId WHERE id IN ($ids);"; $this->db->query($query); } diff --git a/app/Models/PolicyTransactionModel.php b/app/Models/PolicyTransactionModel.php index 8c6d875d..e9656ad6 100644 --- a/app/Models/PolicyTransactionModel.php +++ b/app/Models/PolicyTransactionModel.php @@ -127,6 +127,22 @@ return $data; } + private const ALLOWED_DATE_TYPES = [ + 'policy_issue_date', + 'policy_start_date', + 'policy_end_date', + 'created_at', + 'updated_at', + ]; + + private function validateDateType($date_type) + { + if (!in_array($date_type, self::ALLOWED_DATE_TYPES, true)) { + throw new \InvalidArgumentException("Invalid date_type: {$date_type}"); + } + return $date_type; + } + // BDS Report OLD Functin for QUERY // public function getBDSReportList($client_id, $policy_id, $branch_id, $issuer) public function getBDSReportListOld($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0) @@ -282,11 +298,12 @@ // Check if the start date and end date are provided if ($start_date != 0 && $end_date != 0 && $date_type != 0) { + $this->validateDateType($date_type); $startDate = date('Y-m-d 00:00:00', strtotime($start_date)); $endDate = date('Y-m-d 23:59:59', strtotime($end_date)); - $builder->where('policy_transaction.' . $date_type . '>=', $startDate) - ->where('policy_transaction.' . $date_type . '<=', $endDate); + $builder->where('policy_transaction.' . $date_type . ' >=', $startDate) + ->where('policy_transaction.' . $date_type . ' <=', $endDate); } else { // $fromDate = date('Y-m-d', strtotime('-30 days')); @@ -835,18 +852,16 @@ // Check if the start date and end date are provided if ($start_date != 0 && $end_date != 0 && $date_type != 0 && $date_type != 'statement_month') { + $this->validateDateType($date_type); $startDate = date('Y-m-d 00:00:00', strtotime($start_date)); $endDate = date('Y-m-d 23:59:59', strtotime($end_date)); - // $builder->where('policy_transaction.' . $date_type . '>=', $startDate) - // ->where('policy_transaction.' . $date_type . '<=', $endDate); - if($date_type == "policy_issue_date"){ $builder->where("pt_co_share_details.pt_policy_issue_date >=", $startDate) ->where("pt_co_share_details.pt_policy_issue_date <=", $endDate); }else{ - $builder->where('policy_transaction.' . $date_type . '>=', $startDate) - ->where('policy_transaction.' . $date_type . '<=', $endDate); + $builder->where('policy_transaction.' . $date_type . ' >=', $startDate) + ->where('policy_transaction.' . $date_type . ' <=', $endDate); } } @@ -1064,6 +1079,7 @@ // Optimize Date Filtering if (!empty($start_date) && !empty($end_date) && !empty($date_type)) { + $this->validateDateType($date_type); $startDate = change_date_format($start_date, 'd/m/Y', 'Y-m-d 00:00:00'); $endDate = change_date_format($end_date, 'd/m/Y', 'Y-m-d 23:59:59'); @@ -1165,6 +1181,7 @@ if ($start_date != 0 && $end_date != 0 && $date_type != 0) { + $this->validateDateType($date_type); $startDate = change_date_format($start_date, 'd/m/Y', 'Y-m-d 00:00:00'); $endDate = change_date_format($end_date, 'd/m/Y', 'Y-m-d 23:59:59'); @@ -1172,8 +1189,8 @@ $builder->where("pt_co_share_details.pt_policy_issue_date >=", $startDate) ->where("pt_co_share_details.pt_policy_issue_date <=", $endDate); }else{ - $builder->where('policy_transaction.' . $date_type . '>=', $startDate) - ->where('policy_transaction.' . $date_type . '<=', $endDate); + $builder->where('policy_transaction.' . $date_type . ' >=', $startDate) + ->where('policy_transaction.' . $date_type . ' <=', $endDate); } } else { @@ -1349,18 +1366,16 @@ if ($start_date != 0 && $end_date != 0 && $date_type != 0) { + $this->validateDateType($date_type); $startDate = date('Y-m-d 00:00:00', strtotime($start_date)); $endDate = date('Y-m-d 23:59:59', strtotime($end_date)); - // $builder->where('policy_transaction.' . $date_type . '>=', $startDate) - // ->where('policy_transaction.' . $date_type . '<=', $endDate); - if($date_type == "policy_issue_date"){ $builder->where("pt_co_share_details.pt_policy_issue_date >=", $startDate) ->where("pt_co_share_details.pt_policy_issue_date <=", $endDate); }else{ - $builder->where('policy_transaction.' . $date_type . '>=', $startDate) - ->where('policy_transaction.' . $date_type . '<=', $endDate); + $builder->where('policy_transaction.' . $date_type . ' >=', $startDate) + ->where('policy_transaction.' . $date_type . ' <=', $endDate); } } else { @@ -1463,18 +1478,16 @@ if ($start_date != 0 && $end_date != 0 && $date_type != 0) { + $this->validateDateType($date_type); $startDate = date('Y-m-d 00:00:00', strtotime($start_date)); $endDate = date('Y-m-d 23:59:59', strtotime($end_date)); - // $builder->where('policy_transaction.' . $date_type . '>=', $startDate) - // ->where('policy_transaction.' . $date_type . '<=', $endDate); - if($date_type == "policy_issue_date"){ $builder->where("pt_co_share_details.pt_policy_issue_date >=", $startDate) ->where("pt_co_share_details.pt_policy_issue_date <=", $endDate); }else{ - $builder->where('policy_transaction.' . $date_type . '>=', $startDate) - ->where('policy_transaction.' . $date_type . '<=', $endDate); + $builder->where('policy_transaction.' . $date_type . ' >=', $startDate) + ->where('policy_transaction.' . $date_type . ' <=', $endDate); } } else { @@ -1574,18 +1587,16 @@ if ($start_date != 0 && $end_date != 0 && $date_type != 0) { + $this->validateDateType($date_type); $startDate = date('Y-m-d 00:00:00', strtotime($start_date)); $endDate = date('Y-m-d 23:59:59', strtotime($end_date)); - // $builder->where('policy_transaction.' . $date_type . '>=', $startDate) - // ->where('policy_transaction.' . $date_type . '<=', $endDate); - if($date_type == "policy_issue_date"){ $builder->where("pt_co_share_details.pt_policy_issue_date >=", $startDate) ->where("pt_co_share_details.pt_policy_issue_date <=", $endDate); }else{ - $builder->where('policy_transaction.' . $date_type . '>=', $startDate) - ->where('policy_transaction.' . $date_type . '<=', $endDate); + $builder->where('policy_transaction.' . $date_type . ' >=', $startDate) + ->where('policy_transaction.' . $date_type . ' <=', $endDate); } } else { @@ -1689,18 +1700,16 @@ // Date range filtering if ($start_date != 0 && $end_date != 0 && $date_type != 0) { + $this->validateDateType($date_type); $startDate = date('Y-m-d 00:00:00', strtotime($start_date)); $endDate = date('Y-m-d 23:59:59', strtotime($end_date)); - // $builder->where('policy_transaction.' . $date_type . '>=', $startDate) - // ->where('policy_transaction.' . $date_type . '<=', $endDate); - if($date_type == "policy_issue_date"){ $builder->where("pt_co_share_details.pt_policy_issue_date >=", $startDate) ->where("pt_co_share_details.pt_policy_issue_date <=", $endDate); }else{ - $builder->where('policy_transaction.' . $date_type . '>=', $startDate) - ->where('policy_transaction.' . $date_type . '<=', $endDate); + $builder->where('policy_transaction.' . $date_type . ' >=', $startDate) + ->where('policy_transaction.' . $date_type . ' <=', $endDate); } } else { $fromDate = date('Y-m-d', strtotime('-90 days')); @@ -2364,6 +2373,7 @@ } if ($start_date != 0 && $end_date != 0 && $date_type != 0 && $date_type != 'statement_month') { + $this->validateDateType($date_type); $startDate = date('Y-m-d 00:00:00', strtotime($start_date)); $endDate = date('Y-m-d 23:59:59', strtotime($end_date)); @@ -2489,6 +2499,7 @@ // 3. Date condition (except statement_month) if ($start_date != 0 && $end_date != 0 && $date_type != 0 && $date_type != 'statement_month') { + $this->validateDateType($date_type); $startDate = date('Y-m-d 00:00:00', strtotime($start_date)); $endDate = date('Y-m-d 23:59:59', strtotime($end_date)); @@ -3080,6 +3091,7 @@ // 3. Date condition (except statement_month) if ($start_date != 0 && $end_date != 0 && $date_type != 0 && $date_type != 'statement_month') { + $this->validateDateType($date_type); $startDate = date('Y-m-d 00:00:00', strtotime($start_date)); $endDate = date('Y-m-d 23:59:59', strtotime($end_date)); diff --git a/app/Models/TicketMasterModel.php b/app/Models/TicketMasterModel.php index 324a18db..14101188 100644 --- a/app/Models/TicketMasterModel.php +++ b/app/Models/TicketMasterModel.php @@ -1,5 +1,4 @@ select("ticket_mail_template.*, CASE - WHEN employees.email_corporate IS NULL OR employees.email_corporate = '' - THEN ticket_master.emp_mail - ELSE employees.email_corporate + ->select("ticket_mail_template.*, CASE + WHEN employees.email_corporate IS NULL OR employees.email_corporate = '' + THEN ticket_master.emp_mail + ELSE employees.email_corporate END as emp_mail, ,ticket_master.claim_status_id") ->join('ticket_claim_status', 'ticket_master.claim_status_id = ticket_claim_status.id and ticket_claim_status.is_active = 1') ->join('ticket_mail_template', ' - ticket_claim_status.trigger_type = ticket_mail_template.trigger_type - and ticket_claim_status.ticket_type = ticket_mail_template.ticket_type + ticket_claim_status.trigger_type = ticket_mail_template.trigger_type + and ticket_claim_status.ticket_type = ticket_mail_template.ticket_type and ticket_mail_template.is_active = 1') ->join('employees', 'employees.id = ticket_master.emp_id', 'left') ->where('ticket_master.id', $ticket_id) @@ -173,11 +171,11 @@ class TicketMasterModel extends Model { $ticket_data = $this->select(" ticket_master.*, - CASE - WHEN employees.email_corporate IS NULL OR employees.email_corporate = '' - THEN ticket_master.emp_mail - ELSE employees.email_corporate - END as emp_mail, + CASE + WHEN employees.email_corporate IS NULL OR employees.email_corporate = '' + THEN ticket_master.emp_mail + ELSE employees.email_corporate + END as emp_mail, user_profiles.first_name as acm, user_profiles.mobile as acm_mobile, @@ -205,7 +203,7 @@ class TicketMasterModel extends Model //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'); @@ -222,9 +220,9 @@ class TicketMasterModel extends Model // } // // Fetch claim statuses from the `ticket_claim_status` table - // $statusQuery = " SELECT + // $statusQuery = " SELECT // id, claim_status, ticket_type - // FROM ticket_claim_status + // FROM ticket_claim_status // Where is_active = 1 // $ticket_type_data_1 // "; @@ -273,7 +271,6 @@ class TicketMasterModel extends Model // $dynamicSelect = rtrim($dynamicSelect, ', '); // // dd($dynamicSelect); - // // Construct the full SQL query // $sql = " // SELECT @@ -326,7 +323,7 @@ class TicketMasterModel extends Model // WHERE // tm.ticket_type_id = tcs.id // $ticket_type_data_2 - // AND tm.created_at >= '$fromDate' + // AND tm.created_at >= '$fromDate' // AND tm.created_at <= '$toDate' // AND tm.is_active = 1 // AND th.is_active = 1 @@ -371,9 +368,9 @@ class TicketMasterModel extends Model // } // // Fetch claim statuses from the `ticket_claim_status` table - // $statusQuery = " SELECT + // $statusQuery = " SELECT // id, claim_status, ticket_type - // FROM ticket_claim_status + // FROM ticket_claim_status // Where is_active = 1 // $ticket_type_data_1 // "; @@ -422,7 +419,6 @@ class TicketMasterModel extends Model // $dynamicSelect = rtrim($dynamicSelect, ', '); // // dd($dynamicSelect); - // // Construct the full SQL query // $sql = " // SELECT @@ -451,20 +447,20 @@ class TicketMasterModel extends Model // FROM // ticket_master tm // LEFT JOIN ( - // SELECT - // th.ticket_id, + // SELECT + // th.ticket_id, // th.new_value AS claim_status_id, // MAX(th.created_at) AS change_date - // FROM - // ticket_history th - // WHERE + // FROM + // ticket_history th + // WHERE // th.field_name = 'claim_status_id' // AND th.is_active = 1 - // GROUP BY + // GROUP BY // th.ticket_id, th.new_value // ) AS latest_status ON latest_status.ticket_id = tm.id // WHERE tm.is_active = 1 - // AND tm.created_at >= '$fromDate' + // AND tm.created_at >= '$fromDate' // AND tm.created_at <= '$toDate' // " . (!empty($ticket_type) ? " AND tm.ticket_type_id = $ticket_type" : "") . " // GROUP BY tm.id, latest_status.claim_status_id, latest_status.change_date, tm.created_at @@ -493,33 +489,33 @@ class TicketMasterModel extends Model { // Set default date range (last 90 days) $fromDate = date('Y-m-d', strtotime('-90 days')); - $toDate = date('Y-m-d 23:59:59'); - - if (!empty($start_date) && !empty($end_date)) { + $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); + $toDate = change_date_format($end_date); } - + // Get all active claim statuses $statusQuery = $this->db->table('ticket_claim_status') ->select('id, claim_status') ->where('is_active', 1) ->orderBy('id', 'ASC'); - - if (!empty($ticket_type)) { + + if (! empty($ticket_type)) { $statusQuery->where('ticket_type', $ticket_type); } - + $statusResult = $statusQuery->get()->getResultArray(); - + // Create a list of all TAT categories we want in the output $tatCategories = [ 'Above 20 Days', - '13-20 Days', + '13-20 Days', '7-12 Days', - '0-6 Days' + '0-6 Days', ]; - + // Initialize the result array with all TAT categories $result = []; foreach ($tatCategories as $category) { @@ -529,39 +525,39 @@ class TicketMasterModel extends Model } $result[] = $row; } - + // Get the base query for ticket counts by status and TAT category $query = $this->db->table('ticket_master tm') ->select([ 'tcs.claim_status', 'CASE WHEN DATEDIFF(CURDATE(), COALESCE( - (SELECT MAX(th.created_at) - FROM ticket_history th - WHERE th.ticket_id = tm.id + (SELECT MAX(th.created_at) + FROM ticket_history th + WHERE th.ticket_id = tm.id AND th.field_name = "claim_status_id" AND th.is_active = 1), tm.created_at )) BETWEEN 0 AND 6 THEN "0-6 Days" WHEN DATEDIFF(CURDATE(), COALESCE( - (SELECT MAX(th.created_at) - FROM ticket_history th - WHERE th.ticket_id = tm.id + (SELECT MAX(th.created_at) + FROM ticket_history th + WHERE th.ticket_id = tm.id AND th.field_name = "claim_status_id" AND th.is_active = 1), tm.created_at )) BETWEEN 7 AND 12 THEN "7-12 Days" WHEN DATEDIFF(CURDATE(), COALESCE( - (SELECT MAX(th.created_at) - FROM ticket_history th - WHERE th.ticket_id = tm.id + (SELECT MAX(th.created_at) + FROM ticket_history th + WHERE th.ticket_id = tm.id AND th.field_name = "claim_status_id" AND th.is_active = 1), tm.created_at )) BETWEEN 13 AND 20 THEN "13-20 Days" ELSE "Above 20 Days" END AS tat_category', - 'COUNT(*) AS count' + 'COUNT(*) AS count', ]) ->join('ticket_claim_status tcs', 'tcs.id = tm.claim_status_id AND tcs.is_active = 1') ->where('tm.is_active', 1) @@ -569,23 +565,23 @@ class TicketMasterModel extends Model ->where('tm.created_at <=', $toDate) ->groupBy('tcs.claim_status, tat_category') ->orderBy('FIELD(tat_category, "Above 20 Days", "13-20 Days", "7-12 Days", "0-6 Days")'); - - if (!empty($ticket_type)) { + + if (! empty($ticket_type)) { $query->where('tm.ticket_type_id', $ticket_type); } - + $countResults = $query->get()->getResultArray(); - + // Populate the result array with actual counts foreach ($countResults as $row) { foreach ($result as &$categoryRow) { if ($categoryRow['TAT_Category'] === $row['tat_category']) { - $categoryRow[$row['claim_status']] = (int)$row['count']; + $categoryRow[$row['claim_status']] = (int) $row['count']; break; } } } - + return $result; } @@ -593,21 +589,21 @@ class TicketMasterModel extends Model { $ticket_type_data_1 = ""; $ticket_type_data_2 = ""; - $statusBinds = []; + $statusBinds = []; - if (!empty($policy_type)) { - $ticket_type_data_1 = "AND ticket_type = :policy_type:"; - $ticket_type_data_2 = "AND master.ticket_type_id = :policy_type:"; + if (! empty($policy_type)) { + $ticket_type_data_1 = "AND ticket_type = :policy_type:"; + $ticket_type_data_2 = "AND master.ticket_type_id = :policy_type:"; $statusBinds['policy_type'] = $policy_type; } // Fetch claim statuses dynamically - $statusQuery = "SELECT id, claim_status FROM ticket_claim_status WHERE is_active = 1 $ticket_type_data_1"; + $statusQuery = "SELECT id, claim_status FROM ticket_claim_status WHERE is_active = 1 $ticket_type_data_1"; $statusResult = $this->db->query($statusQuery, $statusBinds)->getResultArray(); // Initialize dynamic query parts - $dynamicSelect = ''; - $dynamicTotal = ''; + $dynamicSelect = ''; + $dynamicTotal = ''; $dynamicClosedTotal = ''; // Loop through each claim status and generate the CASE statements @@ -624,7 +620,7 @@ class TicketMasterModel extends Model 'UNDER PROCESS - INVESTIGATION STATUS', 'UNDER PROCESS - QUERY DOCUMENT RECEIVED', 'APPROVED', - 'PAYMENT INITIATED' + 'PAYMENT INITIATED', ])) { $dynamicTotal .= "COUNT(CASE WHEN master.claim_status_id = {$status['id']} THEN master.id END) + "; } @@ -638,34 +634,34 @@ class TicketMasterModel extends Model } // Remove the trailing commas and `+` signs - $dynamicSelect = rtrim($dynamicSelect, ', '); - $dynamicTotal = rtrim($dynamicTotal, ' +'); + $dynamicSelect = rtrim($dynamicSelect, ', '); + $dynamicTotal = rtrim($dynamicTotal, ' +'); $dynamicClosedTotal = rtrim($dynamicClosedTotal, ' +'); // print_rr($dynamicSelect); // Construct the final SQL query $sql = " - SELECT + SELECT tpa.id as TPA_ID, tpa.name AS TPA_NAME, $dynamicSelect, ($dynamicTotal) AS TOTAL, ($dynamicClosedTotal) AS CLEARED_TOTAL - FROM + FROM ticket_master master - JOIN + JOIN tpa ON master.tpa_id = tpa.id AND tpa.is_active = 1 - WHERE + WHERE master.created_at BETWEEN :start_date: AND :end_date: AND master.is_active = 1 $ticket_type_data_2 - GROUP BY + GROUP BY tpa.id; "; // Execute the query - $binds = ["start_date"=>$start_date,"end_date"=>$end_date]; + $binds = ["start_date" => $start_date, "end_date" => $end_date]; // Merge policy_type binds if present - if (!empty($statusBinds)) { + if (! empty($statusBinds)) { $binds = array_merge($binds, $statusBinds); } $result = $this->db->query($sql, $binds)->getResultArray(); @@ -680,28 +676,27 @@ class TicketMasterModel extends Model if ($policy_type == 1) { $ticket_type_data_1 = ""; $ticket_type_data_2 = ""; - $statusBinds = []; + $statusBinds = []; - if (!empty($policy_type)) { - $ticket_type_data_1 = "AND ticket_type = :policy_type:"; - $ticket_type_data_2 = "AND master.ticket_type_id = :policy_type:"; + if (! empty($policy_type)) { + $ticket_type_data_1 = "AND ticket_type = :policy_type:"; + $ticket_type_data_2 = "AND master.ticket_type_id = :policy_type:"; $statusBinds['policy_type'] = $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,$statusBinds)->getResultArray(); + $statusQuery = "SELECT id, claim_status FROM ticket_claim_status WHERE is_active = 1 $ticket_type_data_1"; + $statusResult = $this->db->query($statusQuery, $statusBinds)->getResultArray(); // Initialize dynamic query parts $dynamicSelect = ''; - $dynamicTotal = ''; + $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) + "; @@ -711,54 +706,54 @@ class TicketMasterModel extends Model // Remove the trailing commas and `+` signs $dynamicSelect = rtrim($dynamicSelect, ', '); - $dynamicTotal = rtrim($dynamicTotal, ' +'); + $dynamicTotal = rtrim($dynamicTotal, ' +'); // print_rr($dynamicSelect); // Construct the final SQL query $sql = " - SELECT + SELECT user_profiles.id as ACM_ID, user_profiles.first_name AS ACM_NAME, $dynamicSelect, ($dynamicTotal) AS TOTAL - FROM + FROM ticket_master master - JOIN + JOIN user_profiles ON master.acm_id = user_profiles.id AND user_profiles.is_active = 1 - WHERE + WHERE master.created_at BETWEEN :start_date: AND :end_date: AND master.is_active = 1 $ticket_type_data_2 - GROUP BY + GROUP BY user_profiles.id; "; - $binds = ["start_date"=>$start_date,"end_date"=>$end_date]; - // Merge policy_type binds if present - if (!empty($statusBinds)) { + $binds = ["start_date" => $start_date, "end_date" => $end_date]; + // Merge policy_type binds if present + if (! empty($statusBinds)) { $binds = array_merge($binds, $statusBinds); } - $result = $this->db->query($sql,$binds)->getResultArray(); + $result = $this->db->query($sql, $binds)->getResultArray(); // print_rr(count(($result))); // print_rr($this->db->lastQuery);die(); return $result; } else { $ticket_type_data_1 = ""; $ticket_type_data_2 = ""; - $statusBinds = []; + $statusBinds = []; - if (!empty($policy_type)) { - $ticket_type_data_1 = "AND ticket_type = :policy_type:"; - $ticket_type_data_2 = "AND master.ticket_type_id = :policy_type:"; + if (! empty($policy_type)) { + $ticket_type_data_1 = "AND ticket_type = :policy_type:"; + $ticket_type_data_2 = "AND master.ticket_type_id = :policy_type:"; $statusBinds['policy_type'] = $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,$statusBinds)->getResultArray(); + $statusQuery = "SELECT id, claim_status FROM ticket_claim_status WHERE is_active = 1 $ticket_type_data_1"; + $statusResult = $this->db->query($statusQuery, $statusBinds)->getResultArray(); // Initialize dynamic query parts - $dynamicSelect = ''; - $dynamicTotal = ''; + $dynamicSelect = ''; + $dynamicTotal = ''; $dynamicClosedTotal = ''; // Loop through each claim status and generate the CASE statements @@ -773,7 +768,7 @@ class TicketMasterModel extends Model 'INSURER PENDING', 'INVESTIGATION', 'APPROVED', - 'ON HOLD' + 'ON HOLD', ])) { $dynamicTotal .= "COUNT(CASE WHEN master.claim_status_id = {$status['id']} THEN master.id END) + "; } @@ -787,52 +782,51 @@ class TicketMasterModel extends Model } // Remove the trailing commas and `+` signs - $dynamicSelect = rtrim($dynamicSelect, ', '); - $dynamicTotal = rtrim($dynamicTotal, ' +'); + $dynamicSelect = rtrim($dynamicSelect, ', '); + $dynamicTotal = rtrim($dynamicTotal, ' +'); $dynamicClosedTotal = rtrim($dynamicClosedTotal, ' +'); // print_rr($dynamicSelect); // Construct the final SQL query $sql = " - SELECT + SELECT user_profiles.id as ACM_ID, user_profiles.first_name AS ACM_NAME, $dynamicSelect, ($dynamicTotal) AS TOTAL, ($dynamicClosedTotal) AS CLEARED_TOTAL - FROM + FROM ticket_master master - JOIN + JOIN user_profiles ON master.acm_id = user_profiles.id AND user_profiles.is_active = 1 - WHERE + WHERE master.created_at BETWEEN :start_date: AND :end_date: AND master.is_active = 1 $ticket_type_data_2 - GROUP BY + GROUP BY user_profiles.id; "; - $binds = ["start_date"=>$start_date,"end_date"=>$end_date]; + $binds = ["start_date" => $start_date, "end_date" => $end_date]; // Execute the query - // Merge policy_type binds if present - if (!empty($statusBinds)) { + // Merge policy_type binds if present + if (! empty($statusBinds)) { $binds = array_merge($binds, $statusBinds); } - $result = $this->db->query($sql,$binds)->getResultArray(); + $result = $this->db->query($sql, $binds)->getResultArray(); // print_rr($this->db->lastQuery);die(); return $result; - } } //api - public function get_ticket_data($emp_id, $returnType,$ticket_type = null, $ticket_id = null) + public function get_ticket_data($emp_id, $returnType, $ticket_type = null, $ticket_id = null) { $query = $this->select(" - ticket_master.*, - tms.mail_subject as subject, + ticket_master.*, + tms.mail_subject as subject, tms.id as ticket_message_id, ( SELECT th1.old_value @@ -854,11 +848,11 @@ class TicketMasterModel extends Model $query->whereIn('sender', ['staff', 'user']); $query->where('ticket_master.emp_id', $emp_id); - if (!empty($ticket_id)) { + if (! empty($ticket_id)) { $query->where('ticket_master.id', $ticket_id); } - if (!empty($ticket_type)) { + if (! empty($ticket_type)) { $query->where('ticket_master.ticket_type_id', $ticket_type); } @@ -879,9 +873,9 @@ class TicketMasterModel extends Model ->select('tm.id, tm.ticket_type_id, tcs.claim_status, th.last_claim_status_change') ->join('ticket_claim_status tcs', 'tm.claim_status_id = tcs.id', 'left') ->join( - '(SELECT ticket_id, MAX(created_at) AS last_claim_status_change - FROM ticket_history - WHERE field_name = \'claim_status_id\' + '(SELECT ticket_id, MAX(created_at) AS last_claim_status_change + FROM ticket_history + WHERE field_name = \'claim_status_id\' GROUP BY ticket_id) th', 'tm.id = th.ticket_id', 'left' @@ -898,8 +892,8 @@ class TicketMasterModel extends Model $total = 0; foreach ($statuses as $status) { - $alias = strtolower(str_replace(' ', '_', $status)); - $summary[$alias] = 0; + $alias = strtolower(str_replace(' ', '_', $status)); + $summary[$alias] = 0; $summary[$alias . '_ids'] = ''; $dateLimit = $limit[$typeId][$status] ?? 3; @@ -911,19 +905,18 @@ class TicketMasterModel extends Model if ( $row['claim_status'] === $status && ( - !$row['last_claim_status_change'] || + ! $row['last_claim_status_change'] || $row['last_claim_status_change'] <= $threshold ) ) { $summary[$alias]++; $ticketIds[] = $row['id']; - if ($status == "APPROVED"|| $status == "SETTLED"|| $status == "CLOSED" ){ + if ($status == "APPROVED" || $status == "SETTLED" || $status == "CLOSED") { continue; } - + $total++; - } } @@ -934,8 +927,8 @@ class TicketMasterModel extends Model $summary['total'] = $total; // Add approved but not settled IDs and count - $approvedNotSettled = $this->getNotSettledbutApprovedCount($typeId); - $summary['approved_not_settled'] = $approvedNotSettled['count']; + $approvedNotSettled = $this->getNotSettledbutApprovedCount($typeId); + $summary['approved_not_settled'] = $approvedNotSettled['count']; $summary['approved_not_settled_ids'] = $approvedNotSettled['ticket_ids']; $finalResults[$typeId] = $summary; @@ -960,13 +953,13 @@ class TicketMasterModel extends Model $ids = $builder->get()->getRowArray(); // If no matching status IDs are found, return empty - if (!$ids) { + if (! $ids) { return ['count' => 0, 'ticket_ids' => '']; } // Extract approved and settled status IDs $approved_id = $ids['approved_id']; - $settled_id = $ids['settled_id']; + $settled_id = $ids['settled_id']; // Subquery to get the latest approval time for each ticket $subquery = $this->db->table('ticket_history') @@ -983,12 +976,12 @@ class TicketMasterModel extends Model // Left join to find if there is a settled status for each ticket after approval $builder->join( 'ticket_history th_settled', - "th_settled.ticket_id = tm.id - AND th_settled.field_name = 'claim_status_id' - AND th_settled.new_value = {$settled_id} + "th_settled.ticket_id = tm.id + AND th_settled.field_name = 'claim_status_id' + AND th_settled.new_value = {$settled_id} AND th_settled.created_at > latest_approval.approved_time", 'left', - false // Important for raw ON condition + false// Important for raw ON condition ); // Filtering conditions: not settled and approved time older than 12 days @@ -1001,7 +994,7 @@ class TicketMasterModel extends Model $builder->select('tm.id'); // Execute the query - $query = $builder->get(); + $query = $builder->get(); $ticketIds = array_column($query->getResultArray(), 'id'); // Extract the IDs // Convert ticket IDs array to a comma-separated string @@ -1009,8 +1002,8 @@ class TicketMasterModel extends Model // Return the count and comma-separated ticket IDs return [ - 'count' => count($ticketIds), - 'ticket_ids' => $ticketIdsString + 'count' => count($ticketIds), + 'ticket_ids' => $ticketIdsString, ]; } @@ -1024,8 +1017,8 @@ class TicketMasterModel extends Model AND cp.is_active = 1 "; - $binds = ["ticket_id"=>$ticket_id]; - $query = $this->db->query($sql,$binds); + $binds = ["ticket_id" => $ticket_id]; + $query = $this->db->query($sql, $binds); if ($query && $query->getNumRows() > 0) { $row = $query->getRowArray(); @@ -1039,11 +1032,10 @@ class TicketMasterModel extends Model public function getPolicyData($params) { - $client_name = $params['client_name'] ?? null; + $client_name = $params['client_name'] ?? null; $insurer_short_name = $params['insurer_short_name'] ?? null; - $tpa_short_name = $params['tpa_short_name'] ?? null; - $policy_no = $params['policy_no'] ?? null; - + $tpa_short_name = $params['tpa_short_name'] ?? null; + $policy_no = $params['policy_no'] ?? null; $builder = $this->db->table('client_policy'); $builder->select('client_policy.*'); @@ -1055,19 +1047,19 @@ class TicketMasterModel extends Model $builder->where('i.is_active', 1); $builder->where('c.client_name', trim($client_name)); $builder->where('i.short_name', trim($insurer_short_name)); - if(!empty($tpa_short_name)){ - $builder->where('tpa.short_name', trim($tpa_short_name)); + if (! empty($tpa_short_name)) { + $builder->where('tpa.short_name', trim($tpa_short_name)); } $builder->where('client_policy.policy_no', trim($policy_no)); - $query = $builder->get(); + $query = $builder->get(); $result = $query->getResultArray(); // dd($this->db->getLastQuery()); return $result; } public function getTheClaimDetails($params) - { + { $client_name = $params['client_name'] ?? null; $policy_no = $params['policy_no'] ?? null; $insurer_short_name = $params['insurer_short_name'] ?? null; @@ -1099,19 +1091,19 @@ class TicketMasterModel extends Model $builder->where('ticket_master.claim_number', trim($claim_no)); $builder->where('ticket_master.relationship', trim($relationship)); - if(!empty($tpa_short_name)){ - $builder->where('tpa.short_name', trim($tpa_short_name)); + if (! empty($tpa_short_name)) { + $builder->where('tpa.short_name', trim($tpa_short_name)); } - $query = $builder->get(); + $query = $builder->get(); $result = $query->getResultArray(); return $result; - } + } public function getEmployeeAndEmployeePolicyDetails($params) - { + { $client_name = $params['client_name'] ?? null; $emp_code = $params['emp_code'] ?? null; $emp_name = $params['emp_name'] ?? null; @@ -1124,7 +1116,6 @@ class TicketMasterModel extends Model // $emp_name = "Lokesh"; // $policy_no = "GMC-1999/2000/2021/2022"; - $builder = $this->db->table('employees e'); $builder->select(" e.id as emp_id, @@ -1143,7 +1134,7 @@ class TicketMasterModel extends Model cp.insurer_id, cp.tpa_id, cp.policy_no, - CASE + CASE WHEN cp.policy_type_id = 2 THEN 1 WHEN cp.policy_type_id = 1 THEN 2 WHEN cp.policy_type_id = 6 THEN 3 @@ -1165,7 +1156,7 @@ class TicketMasterModel extends Model $builder->where('cp.policy_no', trim($policy_no)); $builder->where('LOWER(e.relationship)', strtolower('self')); - $query = $builder->get(); + $query = $builder->get(); $result = $query->getRowArray(); return $result; @@ -1181,8 +1172,8 @@ class TicketMasterModel extends Model $builder = $this->db->table('user_profiles'); $builder->select("user_profiles.*"); $builder->where('user_profiles.is_active', 1); - $builder->where('user_profiles.mobile', trim($acm_mobile)); - $query = $builder->get(); + $builder->where('user_profiles.mobile', trim($acm_mobile)); + $query = $builder->get(); $result = $query->getRowArray(); return $result; @@ -1193,9 +1184,9 @@ class TicketMasterModel extends Model public function getInsuredDetails($params) { - $client_id = $params['client_id'] ?? null; + $client_id = $params['client_id'] ?? null; $emp_code = $params['emp_code'] ?? null; - $policy_id = $params['client_policy_id'] ?? null; + $policy_id = $params['client_policy_id'] ?? null; $insured_name = $params['insured_name'] ?? null; $builder = $this->db->table('employees e'); @@ -1220,7 +1211,7 @@ class TicketMasterModel extends Model $builder->where('e.client_id', trim($client_id)); $builder->where('ep.client_policy_id', trim($policy_id)); - $query = $builder->get(); + $query = $builder->get(); $result = $query->getRowArray(); // dd($this->db->getLastQuery()); return $result;