diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index be5f2664..1d206b11 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -4223,24 +4223,46 @@ class ClientController extends AdminController } public function get_client_policy_data_using_policy_no() - { + { + $received_data = $this->request->getGet(); $policy_no = $this->request->getGet('policy_no'); + $client_id = $this->request->getGet('client_id'); + $client_branch_id = $this->request->getGet('client_branch_id'); + $policy_type_id = $this->request->getGet('policy_type_id'); + $data = $this->clientPolicyModel ->select(" client_policy.*, + policy_type.policy_type, clients.client_type, + clients.client_name, DATE_FORMAT(client_policy.policy_start_date, '%d/%m/%Y') as policy_start_date, DATE_FORMAT(client_policy.policy_end_date, '%d/%m/%Y') as policy_end_date ") ->join('clients', 'client_policy.client_id = clients.id') + ->join('policy_type', 'client_policy.policy_type_id = policy_type.id') ->where('client_policy.policy_no', $policy_no) ->where('client_policy.is_active', 1) + ->where('client_policy.policy_status', 1) ->first(); if ($data) { - return $this->respond(['status' => true, 'data' => $data, 'code' => 200], 200); + if ($data['client_id'] == $client_id && $data['client_branch_id'] == $client_branch_id) { + + if ($data['policy_type_id'] == $policy_type_id) { + return $this->respond(['status' => true, 'data' => $data, 'code' => 200, 'received_data' => $received_data], 200); + } else { + $policy_type = $this->policyTypeModel->where('id', $policy_type_id)->first(); + $message = 'This policy number is mapped to the selected client with policy type: ' . (!empty($data['policy_type']) ? $data['policy_type'] : 'N/A') . '. You selected: ' . (!empty($policy_type['policy_type']) ? $policy_type['policy_type'] : 'N/A') . '. Please check.'; + return $this->respond(['status' => true, 'data' => $data, 'code' => 409, "message" => $message, 'received_data' => $received_data], 200); + } + + } else { + $message = 'This policy number is already linked to another client' . (!empty($data['client_name']) ? '. Client name : ' . $data['client_name'] : '') . '. Please check'; + return $this->respond(['status' => true, 'code' => 409, "message" => $message, 'received_data' => $received_data, 'db_data' => $data], 200); + } } else { - return $this->respond(['status' => false, 'message' => 'No Data Found', 'code' => 404], 200); + return $this->respond(['status' => false, 'message' => 'No Data Found', 'code' => 404, 'received_data' => $received_data], 200); } } diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index 3dbf91d5..9d3eeecf 100755 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -1918,7 +1918,7 @@ class EmpDataServiceController extends BaseController $result_for_employees_policy = $this->employeePolicyModel ->select('employee_polices.*') ->join('employees', 'employees.id = employee_polices.employee_id') - ->join('emp_endorsement', 'emp_endorsement.employee_id = employees.id') // assuming this is the correct join + ->join('emp_endorsement', 'emp_endorsement.pk = employees.id') // assuming this is the correct join ->where('employees.emp_code', $emp_code) ->where('employees.name', $name) ->where('employees.client_id', $client_id) diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 6541e011..28f3a010 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -344,9 +344,11 @@ class EmployeeController extends AdminController $query->where('cr.user_id', $user_id); } // ->where('files.created_by', get_session_userid()) - $data['fileList'] = $query->groupBy("c.id")->orderBy('files.created_at', 'desc') - ->limit(1500) + $data['fileList'] = $query->groupBy("files.id")->orderBy('files.created_at', 'desc') + // $data['fileList'] = $query + ->limit(2000) ->find(); + // dd($this->fileModel->getLastQuery()); // dd($data['fileList']); $query2 = $this->batchFileModel->select(" @@ -395,7 +397,7 @@ class EmployeeController extends AdminController $query2->where('cr.user_id', $user_id); } // ->where('files.created_by', get_session_userid()) - $data['batch_list'] = $query2->groupBy("clients.id")->orderBy('batch_files.id', 'desc') + $data['batch_list'] = $query2->groupBy("batch_files.id")->orderBy('batch_files.id', 'desc') ->limit(1500) ->find(); diff --git a/app/Controllers/LeadsController.php b/app/Controllers/LeadsController.php index 0af284e1..8572a87b 100644 --- a/app/Controllers/LeadsController.php +++ b/app/Controllers/LeadsController.php @@ -493,7 +493,7 @@ class LeadsController extends BaseController { if ($this->leadsModel->where('id', $id)->set($data[0])->update()) { - $this->insertMultiFilesData($data[0]['multi_file_data'], $id); + $this->insertMultiFilesData($data[0]['multi_file_data'], $id, $data[0]['lead_form_type']); $this->insertLeadStatus($id, $data[0]['status'], 3); return $this->respond(['status' => true, 'lead_id' => $id, 'message' => "Lead updated successfully", 'data' => $data], 200); } @@ -591,14 +591,18 @@ class LeadsController extends BaseController return $multi_file_data; } - public function insertMultiFilesData($data, $lead_id) + public function insertMultiFilesData($data, $lead_id, $lead_form_type = null) { - // print_r($data); die; + log_message('info', 'insertMultiFilesData() called with lead_id: ' . $lead_id); if (!empty($data)) { + log_message('info', 'Data is not empty. Total items: ' . count($data)); + foreach ($data as $key => $value) { + log_message('info', "Processing item at index {$key}: " . json_encode($value)); if (!empty($value['id'])) { + log_message('info', "Record with ID {$value['id']} exists. Preparing to update."); $lead_file_data = [ 'lead_id' => $lead_id, @@ -607,10 +611,22 @@ class LeadsController extends BaseController if (!empty($value['file_name'])) { $lead_file_data['file_name'] = $value['file_name']; + log_message('info', "file_name found: {$value['file_name']}"); + + if (!empty($lead_form_type) && $lead_form_type == 1 && $key == 0) { + //for this push the job to the calculateMembersDemography() function + $job_details = new Jobs(); + $r = Jobs::addJob(['job_name' => 'calculateMembersDemography', 'payload' => [ + 'lead_id' => $lead_id, + ]]); + log_message('info', "calculateMembersDemography JOB PUSHED"); + } } + log_message('info', "Updating leadFilesModel where id = {$value['id']} with data: " . json_encode($lead_file_data)); $this->leadFilesModel->where('id', $value['id'])->set($lead_file_data)->update(); } else { + log_message('info', "No ID found. Preparing to insert new record."); if (!empty($value['file_name'])) { $lead_file_data = [ @@ -618,16 +634,24 @@ class LeadsController extends BaseController 'docs_name' => $value['docs_name'], 'file_name' => $value['file_name'], ]; + + log_message('info', "Inserting into leadFilesModel: " . json_encode($lead_file_data)); $this->leadFilesModel->insert($lead_file_data); + } else { + log_message('warning', "Skipped insert: file_name missing in data at index {$key}"); } } if ($key == 0 && !empty($value['file_name'])) { + log_message('info', "Setting first file_name '{$value['file_name']}' to leadsModel for lead_id: {$lead_id}"); $this->leadsModel->where('id', $lead_id)->set('file_name', $value['file_name'])->update(); } } + } else { + log_message('warning', 'insertMultiFilesData() received empty data array.'); } + log_message('info', 'insertMultiFilesData() completed successfully.'); return true; } @@ -1286,9 +1310,9 @@ class LeadsController extends BaseController 'Policy Run Days' => $rfq_data['policy_run_days'], 'Inception Premium' => formatIndianCurrency($rfq_data['premium_at_inception']), 'Premium as on (' . date('d-m-Y', strtotime($rfq_data['incurred_claims_date'])) . ')' => formatIndianCurrency($rfq_data['premium_date']), - 'Earned Premium' => $rfq_data['earned_premium'], + 'Earned Premium' => formatIndianCurrency(intval($rfq_data['earned_premium'])), 'Incurred Claims as on (' . date('d-m-Y', strtotime($rfq_data['incurred_claims_date'])) . ')' => formatIndianCurrency($rfq_data['incurred_claims']), - 'Annualised Claims' => formatIndianCurrency($rfq_data['annualised_claims']), + 'Annualised Claims' => formatIndianCurrency(intval($rfq_data['annualised_claims'])), 'Incurred Claims Ratio' => $rfq_data['incurred_claims_ratio'] . " %", 'Earned Claims Ratio' => $rfq_data['earned_claims_ratio'] . " %", ]; diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php index 6622d0fa..0cb10174 100644 --- a/app/Controllers/PolicyTransactionController.php +++ b/app/Controllers/PolicyTransactionController.php @@ -2037,8 +2037,8 @@ class PolicyTransactionController extends BaseController //insurer statement list page public function statementList() { - // dd($this->validateInsurerStatement(['file_id' => 30])); - // $data['insurers'] = $this->insurerModel->where('is_active',1)->findAll(); + // dd($this->validateInsurerStatement(['file_id' => 49])); + $data['insurers'] = $this->insurerModel->where('is_active',1)->findAll(); $today = date('Y-m-d'); $fromday = $from_date = date('Y-m-d', strtotime('-180 days', strtotime($today))); // echo $fromday;die(); @@ -2261,13 +2261,13 @@ class PolicyTransactionController extends BaseController // dd($highestRowAndColumn); $excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']); unset($excel_data[0]); - // Kint::dump($excel_data); + // Kint::dump($excel_data);die(); //get no of line items and update in DB $line_items = 0; // get uploaded month transactions data $source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(insurer_id: $file['insurer_id'], insurer_branch_id: $file['branch_id']); // var_dump($source_data);die(); - // Kint::dump($source_data);//die(); + // Kint::dump($source_data);die(); // check policy no,insurer and etc in DB for this month @@ -2277,17 +2277,24 @@ class PolicyTransactionController extends BaseController if (!$is_row_empty) { // $excel_row = ExcelSanitizeHelper::sanitizeArrayData($excel_row); $is_source_found = 0; + // Kint::dump($excel_key,$excel_row[1],$excel_row[2]); $policy_start_date = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[4]); //policy_start_date from excel $policy_end_date = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[5]); //policy_end_date from excel + $policy_no = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[1]); //policy_end_date from excel - $policy_no = preg_replace('/[\x{200C}\x{200B}]/u', '', $excel_row[1]); //policy_end_date from excel + $policy_no = preg_replace( '/[\x{200B}\x{200C}\x{200D}\x{FEFF}\x{00A0}\x{200E}\x{200F}\x{202A}-\x{202E}]/u', '', $excel_row[1]); //policy_end_date from excel + $client_name = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[3]); //clientname from excel + $endorsement_no = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[2]); //policy_end_date from excel - // Kint::dump($policy_no); + $endorsement_no = preg_replace( '/[\x{200B}\x{200C}\x{200D}\x{FEFF}\x{00A0}\x{200E}\x{200F}\x{202A}-\x{202E}]/u', '', $excel_row[2]); //policy_end_date from excel + + // Kint::dump($excel_key,$policy_no,$endorsement_no,$policy_start_date,$policy_end_date);//die(); foreach ($source_data as $source_key => $source_row) { $source_endorsement_no = $source_row['endorsement_no'] !== null ? $source_row['endorsement_no'] : null; // Kint::dump($source_endorsement_no); - if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name']) { + if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name']) + { $is_source_found = 1; $line_items = $line_items + 1; unset($source_data[$source_key]); diff --git a/app/Models/HRAccessControlModel.php b/app/Models/HRAccessControlModel.php new file mode 100644 index 00000000..81f16f0e --- /dev/null +++ b/app/Models/HRAccessControlModel.php @@ -0,0 +1,59 @@ +join('user_teams', 'user_profiles.id = user_teams.user_id') ->where('user_profiles.id', $user_id) ->where('user_teams.is_active', 1) + ->where("user_profiles.is_active", 1) ->get() ->getResultArray(); diff --git a/app/Views/leads_form.php b/app/Views/leads_form.php index 390fa7ee..01586d13 100644 --- a/app/Views/leads_form.php +++ b/app/Views/leads_form.php @@ -1423,7 +1423,9 @@ console.log('Policy Run Days (Final):', policy_run_days); let annualised_claims = policy_run_days > 0 ? (incurred_claims / policy_run_days) * 365 : 0; - let annualised_claims_roundoff = Math.round(annualised_claims); + // let annualised_claims_roundoff = annualised_claims.toFixed(2); + let annualised_claims_roundoff = Math.trunc(annualised_claims); + console.log('Annualised Claims:', annualised_claims); console.log('Annualised Claims (Rounded):', annualised_claims_roundoff); $('#annualised_claims').val(annualised_claims_roundoff); @@ -1431,22 +1433,24 @@ let premium_as_on_date = Number($('#premium_date').val()) || 0; console.log('Premium as on Date:', premium_as_on_date); - let incurred_claim_ratio = (annualised_claims > 0 && premium_as_on_date > 0) - ? (annualised_claims / premium_as_on_date) + let incurred_claim_ratio = (incurred_claims > 0 && premium_as_on_date > 0) + ? (incurred_claims / premium_as_on_date) * 100 : 0; - let incurred_claim_ratio_roundoff = isFinite(incurred_claim_ratio) ? Math.round(incurred_claim_ratio) : 0; + let incurred_claim_ratio_roundoff = isFinite(incurred_claim_ratio) ? incurred_claim_ratio.toFixed(2) : 0; console.log('Incurred Claim Ratio:', incurred_claim_ratio); console.log('Incurred Claim Ratio (Rounded):', incurred_claim_ratio_roundoff); $('#incurred_claims_ratio').val(incurred_claim_ratio_roundoff); - let earned_premium = premium_as_on_date > 0 ? (premium_as_on_date / 365) * 364 : 0; - let earned_premium_roundoff = Math.round(earned_premium); + let earned_premium = premium_as_on_date > 0 ? (premium_as_on_date / 365) * policy_run_days : 0; + // let earned_premium_roundoff = earned_premium.toFixed(2); + let earned_premium_roundoff = Math.trunc(earned_premium); + console.log('Earned Premium:', earned_premium); console.log('Earned Premium (Rounded):', earned_premium_roundoff); $('#earned_premium').val(earned_premium_roundoff); - let earnedClaimsRatio = earned_premium > 0 ? annualised_claims / earned_premium : 0; - let earnedClaimsRatioRounded = Math.round(earnedClaimsRatio); + let earnedClaimsRatio = premium_as_on_date > 0 ? (annualised_claims / premium_as_on_date) * 100 : 0; + let earnedClaimsRatioRounded = earnedClaimsRatio.toFixed(2); console.log('Earned Claims Ratio:', earnedClaimsRatio); console.log('Earned Claims Ratio (Rounded):', earnedClaimsRatioRounded); $('#earned_claims_ratio').val(earnedClaimsRatioRounded); diff --git a/app/Views/policy_grid.php b/app/Views/policy_grid.php index 06c945c6..d0e825f6 100755 --- a/app/Views/policy_grid.php +++ b/app/Views/policy_grid.php @@ -1391,6 +1391,8 @@ function appendGridtHtml(ui_type = false, secondary = false, data = false) console.log('appendGridtHtml function ui_type', ui_type); console.log('appendGridtHtml function secondary', secondary); console.log('appendGridtHtml function typeof secondary', typeof secondary); + var default_unit = $('#hidden_unit').val(); + // alert(default_unit); // console.log('appendGridtHtml function data.unit', data.unit); // console.log('appendGridtHtml function data.unit type',typeof data.unit); diff --git a/app/Views/policy_transaction_inception_form.php b/app/Views/policy_transaction_inception_form.php index cc6415c1..b378d5cb 100644 --- a/app/Views/policy_transaction_inception_form.php +++ b/app/Views/policy_transaction_inception_form.php @@ -3838,6 +3838,15 @@ $('#policy_no').change(function(){ var policy_no = $(this).val(); policy_no = policy_no.trim(); + let client_id = $('#client_id').val()?.trim(); + let client_branch_id = $('#client_branch_id').val()?.trim(); + let policy_type_id = $('#policy_type_id').val()?.trim(); + + if (!client_id || !client_branch_id || !policy_type_id) { + toastr.warning('Please select the policy type, client and branch', "WARNING"); + $('#policy_no').val(''); + return; + } $pt_id = $('#policy_tranction_policy_number').val(); console.log('$pt_id', $pt_id); @@ -3846,13 +3855,19 @@ $('#policy_no').change(function(){ $.ajax({ url: '', type: "GET", - data : { policy_no : policy_no }, + data : { policy_no : policy_no, client_id : client_id, client_branch_id : client_branch_id, policy_type_id : policy_type_id}, dataType: 'json', success: function (res) { console.log('get_client_policy_data_using_policy_no response', res) - if(res.status == true){ + if(res.status == true && res.code == 409){ + toastr.warning(res.message,'WARNING'); + $('#policy_no').val(""); + return; + } + + if(res.status == true){ $('#ct_type').val(1); $('#client_policy_id').val(res.data.id); $('#policy_start_date').val(res.data.policy_start_date); diff --git a/app/Views/report_bds.php b/app/Views/report_bds.php index 815eecb5..d8c1145a 100644 --- a/app/Views/report_bds.php +++ b/app/Views/report_bds.php @@ -212,8 +212,8 @@ $(document).ready(function() { customizeData: function (data) { for (var i = 0; i < data.body.length; i++) { for (var j = 0; j < data.body[i].length; j++) { - // Check if the column is the 9th index (10th column) - if (j === 9) { + // Check if the column is the 9th index (10th column) and 10th index (11th column) + if (j === 9 || j === 10) { data.body[i][j] = '\u200C' + data.body[i][j]; } } diff --git a/app/Views/rfq/gmc.php b/app/Views/rfq/gmc.php index f8982fce..fe9b7c2d 100644 --- a/app/Views/rfq/gmc.php +++ b/app/Views/rfq/gmc.php @@ -78,12 +78,12 @@