From 3c1eb1bbc4e48d11c57f68331f5b2107ca9d1b4d Mon Sep 17 00:00:00 2001 From: venba-Inspriron-3558 Date: Sat, 11 Oct 2025 18:48:08 +0530 Subject: [PATCH 01/37] FIX_resolved - Email duplication based on ClientBrach testcase wise. --- app/Views/client_branch.php | 117 ++++++++++++++++++++++++++---------- 1 file changed, 85 insertions(+), 32 deletions(-) diff --git a/app/Views/client_branch.php b/app/Views/client_branch.php index 0fc1fa1..34e5201 100755 --- a/app/Views/client_branch.php +++ b/app/Views/client_branch.php @@ -956,55 +956,108 @@ function validateDuplicateByClientBranch(input, field, submitButId) { let message = label ? label + " is duplicate!" : "Value is duplicate!"; console.log(`cId: ${clientId} | bId: ${branchId}`); - + // Don't forgot be careful // 1 Local duplication check (User entered) let isLocalDuplicate = false; $('input[name="' + field + '[]"]').each(function(index) { + let compareVal = $(this).val().trim(); console.log(`Entered value: ${value} | Contact ${index+1} value: ${$(this).val()}`); - if (this !== input && $(this).val().trim() === value) { + if (this !== input && compareVal !== '' && compareVal === value) { isLocalDuplicate = true; - return false; // break loop + return false; } }); if (isLocalDuplicate) { console.log(`r u n Local`); - console.log(`btn Dis - true`); + console.log(`duplicate found for ${field}`); toastr.warning(message, 'WARNING'); $('#' + submitButId).prop('disabled', true); - return; // donโ€™t call server if duplicate in UI + return; } - + + // important Skip empty values + if (value === '') { + checkAllFieldsValid(submitButId); + return; + } + // Don't forgot be careful // 2 Server-side duplicate check (DB) - if (!isLocalDuplicate && value !== '') { - - $.ajax({ - url: '', - type: 'POST', - data: { - client_id: clientId, - branch_id: branchId, - value: value, - field: field - }, - dataType: 'json', - success: function(response) { - if (response.isDuplicate) { - console.log(`r u n Server`); - console.log(`btn Dis - true`); - toastr.warning(message, 'WARNING'); - $('#' + submitButId).prop('disabled', true); - } else { - console.log(`btn Dis - false`); - $('#' + submitButId).prop('disabled', false); - } - }, - error: function(xhr, status, error) { - console.error('AJAX Error:', error); + $.ajax({ + url: '', + type: 'POST', + data: { + client_id: clientId, + branch_id: branchId, + value: value, + field: field + }, + dataType: 'json', + success: function(response) { + if (response.isDuplicate) { + console.log(`r u n Server`); + console.log(`duplicate found for ${field}`); + toastr.warning(message, 'WARNING'); + $('#' + submitButId).prop('disabled', true); + } else { + console.log(`No duplicate for ${field}`); + checkAllFieldsValid(submitButId); } - }); + }, + error: function(xhr, status, error) { + console.error('AJAX Error:', error); + } + }); +} + + +// recheck all contacts before enabling submit +function checkAllFieldsValid(submitButId) { + let emailDuplicates = false; + let mobileDuplicates = false; + + // cross check all EMAIL duplicates + let emailSeen = []; + $('input[name="email[]"]').each(function() { + let val = $(this).val().trim(); + if (val && emailSeen.includes(val)) { + emailDuplicates = true; + } else if (val) { + emailSeen.push(val); + } + }); + + // cross check all MOBILE duplicates + let mobileSeen = []; + $('input[name="mobile[]"]').each(function() { + let val = $(this).val().trim(); + if (val && mobileSeen.includes(val)) { + mobileDuplicates = true; + } else if (val) { + mobileSeen.push(val); + } + }); + + if (emailDuplicates || mobileDuplicates) { + $('#' + submitButId).prop('disabled', true); + // show correct message based on whatโ€™s duplicated + if (emailDuplicates && mobileDuplicates) { + toastr.warning("Email and Mobile values are duplicate!", "WARNING"); + console.log('Both Email and Mobile duplicates'); + } else if (emailDuplicates) { + toastr.warning("Email duplicate!", "WARNING"); + console.log('Cross Check Email duplicates'); + } else if (mobileDuplicates) { + toastr.warning("Mobile duplicate!", "WARNING"); + console.log('Cross Check Mobile duplicates'); + } + console.log(`btn Dis - true`); + } else { + console.log('unique โ€” enable'); + console.log(`btn Dis - false`); + $('#' + submitButId).prop('disabled', false); } } From f6b8be70c97ba9d818011053361db5f07204109b Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Mon, 13 Oct 2025 12:12:47 +0530 Subject: [PATCH 02/37] CHNAGE_ENROLLMENT_FILTER --- app/Views/enrollment_list.php | 278 +++++++++++++++++++++++----------- 1 file changed, 189 insertions(+), 89 deletions(-) diff --git a/app/Views/enrollment_list.php b/app/Views/enrollment_list.php index bc59899..8d3810d 100755 --- a/app/Views/enrollment_list.php +++ b/app/Views/enrollment_list.php @@ -99,10 +99,8 @@
-
- -
+
@@ -111,7 +109,6 @@
Emp Count

0

-
@@ -168,10 +165,20 @@
+
+
+
+
+
+
Draft
+

0

+
+
+
+
+
- - @@ -297,16 +304,16 @@ }); } - function filterTable(columnIndex, filterValue) - { - var table = $('#tickets-table').DataTable(); + // function filterTable(columnIndex, filterValue) + // { + // var table = $('#tickets-table').DataTable(); - // Reset the search filter for all columns - table.columns().search('').draw(); + // // Reset the search filter for all columns + // table.columns().search('').draw(); - // Apply the filter to the specified column - table.column(columnIndex).search(filterValue).draw(); - } + // // Apply the filter to the specified column + // table.column(columnIndex).search(filterValue).draw(); + // } function fetchEmpolyeeList(event) { @@ -357,28 +364,45 @@ return; } var enrolled_count = 0; + var not_enrolled_count = 0; var loggedIn_count = 0; + var not_loggedIn_count = 0; + var self_count = 0; + var draft_count = 0; + data.forEach(function(employee, index) { + if(employee.relationship.toLowerCase() === "self"){ + self_count++ + } + if(employee.emp_status === 'enrolled'){ var enrolled = 'Yes'; enrolled_count++; }else{ var enrolled = 'No'; + if (employee.relationship.toLowerCase() === "self") { + not_enrolled_count++; + } } - if(employee.user_type === 'employee'){ + if(employee.relationship.toLowerCase() === "self" && employee.user_type === 'employee'){ var loggedIn = 'Yes'; loggedIn_count++; }else{ if (employee.relationship && employee.relationship.toLowerCase() === "self") { var loggedIn = 'No'; + not_loggedIn_count ++; }else{ var loggedIn = '-'; } } + if(employee.relationship.toLowerCase() === "self" && enrolled == "No" && loggedIn == "Yes"){ + draft_count++; + } + table.row.add([ index + 1, employee.employee_name, @@ -387,15 +411,15 @@ enrolled, loggedIn ]); - - $('#emp_count_view').html(data.length); - $('#emp_enrolled_view').html(enrolled_count); - $('#emp_not_enrolled_view').html(data.length - enrolled_count); - $('#emp_logged_in_view').html(loggedIn_count); - $('#emp_not_logged_in_view').html(data.length - loggedIn_count); - }); + $('#emp_count_view').html(self_count); + $('#emp_enrolled_view').html(enrolled_count); + $('#emp_not_enrolled_view').html(not_enrolled_count); + $('#emp_logged_in_view').html(loggedIn_count); + $('#emp_not_logged_in_view').html(not_loggedIn_count); + $('#emp_draft_view').html(draft_count); + table.draw(); function getUrlParameter(name) { @@ -490,91 +514,167 @@ }); - $('#emp_enrolled_view_click').on('click', function() { + // $('#emp_enrolled_view_click').on('click', function() { - console.log($(this).hasClass('click_hover')); - if ($(this).hasClass('click_hover')) { - // $(this).removeClass('click_hover'); - $('.click_hover').each(function() { - $(this).removeClass('click_hover'); - }); - table.columns().search('').draw(); // Clear all filters and show all data - }else{ - $('.click_hover').each(function() { - $(this).removeClass('click_hover'); - }); - $('#emp_enrolled_view_click').addClass('click_hover'); - filterTable(4, 'Yes'); // Filter "Enrolled" column (4th column, index 3) - } + // console.log($(this).hasClass('click_hover')); + // if ($(this).hasClass('click_hover')) { + // // $(this).removeClass('click_hover'); + // $('.click_hover').each(function() { + // $(this).removeClass('click_hover'); + // }); + // table.columns().search('').draw(); // Clear all filters and show all data + // }else{ + // $('.click_hover').each(function() { + // $(this).removeClass('click_hover'); + // }); + // $('#emp_enrolled_view_click').addClass('click_hover'); + // filterTable(4, 'Yes'); // Filter "Enrolled" column (4th column, index 3) + // } + // }); + + // $('#emp_not_enrolled_view_click').on('click', function() { + // if ($(this).hasClass('click_hover')) { + // // $(this).removeClass('click_hover'); + // $('.click_hover').each(function() { + // $(this).removeClass('click_hover'); + // }); + // table.columns().search('').draw(); // Clear all filters and show all data + // }else{ + // $('.click_hover').each(function() { + // $(this).removeClass('click_hover'); + // }); + // $('#emp_not_enrolled_view_click').addClass('click_hover'); + // filterTable(4, 'No'); // Filter "Enrolled" column (4th column, index 3) + // } + // }); + + // $('#emp_logged_in_view_click').on('click', function() { + // if ($(this).hasClass('click_hover')) { + // // $(this).removeClass('click_hover'); + // $('.click_hover').each(function() { + // $(this).removeClass('click_hover'); + // }); + // table.columns().search('').draw(); // Clear all filters and show all data + // }else{ + // $('.click_hover').each(function() { + // $(this).removeClass('click_hover'); + // }); + // $('#emp_logged_in_view_click').addClass('click_hover'); + // filterTable(5, 'Yes'); // Filter "Logged-In" column (5th column, index 4) + // } + // }); + + // $('#emp_not_logged_in_view_click').on('click', function() { + // if ($(this).hasClass('click_hover')) { + // // $(this).removeClass('click_hover'); + // $('.click_hover').each(function() { + // $(this).removeClass('click_hover'); + // }); + // table.columns().search('').draw(); // Clear all filters and show all data + // }else{ + // $('.click_hover').each(function() { + // $(this).removeClass('click_hover'); + // }); + // $('#emp_not_logged_in_view_click').addClass('click_hover'); + // filterTable(5, 'No'); // Filter "Logged-In" column (5th column, index 4) + // } + // }); + + // $('#emp_draft_view_click').on('click', function() { + // var table = $('#tickets-table').DataTable(); + + // if ($(this).hasClass('click_hover')) { + // // Remove active class and reset filters + // $('.click_hover').removeClass('click_hover'); + // table.columns().search('').draw(); // Clear all filters + // } else { + // // Remove existing active state and set new one + // $('.click_hover').removeClass('click_hover'); + // $(this).addClass('click_hover'); + + // // Apply both filters simultaneously + // filterTableMultiple([ + // { column: 5, value: 'Yes' }, + // { column: 4, value: 'No' } + // ]); + // } + // }); + + // $('#emp_count_view_click').on('click', function() { + // if ($(this).hasClass('click_hover')) { + // // $(this).removeClass('click_hover'); + // $('.click_hover').each(function() { + // $(this).removeClass('click_hover'); + // }); + // table.columns().search('').draw(); // Clear all filters and show all data + // }else{ + // $('.click_hover').each(function() { + // $(this).removeClass('click_hover'); + // }); + // $('#emp_count_view_click').addClass('click_hover'); + // table.columns().search('').draw(); // Clear all filters and show all data + // } + // }); + + // === Attach click handlers === + $('#emp_enrolled_view_click').on('click', function() { + handleFilterClick('emp_enrolled_view_click', [{ column: 4, value: 'Yes' }]); }); $('#emp_not_enrolled_view_click').on('click', function() { - if ($(this).hasClass('click_hover')) { - // $(this).removeClass('click_hover'); - $('.click_hover').each(function() { - $(this).removeClass('click_hover'); - }); - table.columns().search('').draw(); // Clear all filters and show all data - }else{ - $('.click_hover').each(function() { - $(this).removeClass('click_hover'); - }); - $('#emp_not_enrolled_view_click').addClass('click_hover'); - filterTable(4, 'No'); // Filter "Enrolled" column (4th column, index 3) - } + handleFilterClick('emp_not_enrolled_view_click', [ + { column: 3, value: 'Self' }, + { column: 4, value: 'No' } + ]); }); $('#emp_logged_in_view_click').on('click', function() { - if ($(this).hasClass('click_hover')) { - // $(this).removeClass('click_hover'); - $('.click_hover').each(function() { - $(this).removeClass('click_hover'); - }); - table.columns().search('').draw(); // Clear all filters and show all data - }else{ - $('.click_hover').each(function() { - $(this).removeClass('click_hover'); - }); - $('#emp_logged_in_view_click').addClass('click_hover'); - filterTable(5, 'Yes'); // Filter "Logged-In" column (5th column, index 4) - } + handleFilterClick('emp_logged_in_view_click', [{ column: 5, value: 'Yes' }]); }); $('#emp_not_logged_in_view_click').on('click', function() { - if ($(this).hasClass('click_hover')) { - // $(this).removeClass('click_hover'); - $('.click_hover').each(function() { - $(this).removeClass('click_hover'); - }); - table.columns().search('').draw(); // Clear all filters and show all data - }else{ - $('.click_hover').each(function() { - $(this).removeClass('click_hover'); - }); - $('#emp_not_logged_in_view_click').addClass('click_hover'); - filterTable(5, 'No'); // Filter "Logged-In" column (5th column, index 4) - } + handleFilterClick('emp_not_logged_in_view_click', [{ column: 5, value: 'No' }]); + }); + + // ๐Ÿ”น Attach click handlers + $('#emp_draft_view_click').on('click', function() { + handleFilterClick('emp_draft_view_click', [ + { column: 5, value: 'Yes' }, // Logged-in = Yes + { column: 4, value: 'No' } // Enrolled = No + ]); }); $('#emp_count_view_click').on('click', function() { - if ($(this).hasClass('click_hover')) { - // $(this).removeClass('click_hover'); - $('.click_hover').each(function() { - $(this).removeClass('click_hover'); - }); - table.columns().search('').draw(); // Clear all filters and show all data - }else{ - $('.click_hover').each(function() { - $(this).removeClass('click_hover'); - }); - $('#emp_count_view_click').addClass('click_hover'); - table.columns().search('').draw(); // Clear all filters and show all data - } + // Just reset all filters โ€” no column filter needed + handleFilterClick('emp_count_view_click', [{ column: 3, value: 'Self' }]); }); toggleContent(); }); + // Common function to handle DataTable filter toggling + function handleFilterClick(buttonId, filters = null) { + var table = $('#tickets-table').DataTable(); + var $button = $('#' + buttonId); + + if ($button.hasClass('click_hover')) { + // Remove highlight and clear filters + $('.click_hover').removeClass('click_hover'); + table.columns().search('').draw(); + } else { + // Remove existing active state, set new one + $('.click_hover').removeClass('click_hover'); + $button.addClass('click_hover'); + + // Apply multiple filters (array of {column, value}) + table.columns().search(''); // clear existing filters + if(filters){ + filters.forEach(f => table.column(f.column).search(f.value)); + } + table.draw(); + } + } + function toggleContent() { var content = document.getElementById("statusContent"); From ab915d49b72d1cf45e895c47477848f69f6b397d Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Mon, 13 Oct 2025 18:01:19 +0530 Subject: [PATCH 03/37] CHANGE_UI_FIX - VADIVEL J 2025-10-13 --- app/Views/mail_template.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Views/mail_template.php b/app/Views/mail_template.php index 2eb5f07..ab67544 100644 --- a/app/Views/mail_template.php +++ b/app/Views/mail_template.php @@ -51,7 +51,7 @@ From 8578c32913364d99cd6dc36c5e35a624a5890cc5 Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Mon, 13 Oct 2025 18:14:03 +0530 Subject: [PATCH 04/37] CHANGE_UI_FIX - VADIVEL J 2025-10-13 --- app/Helpers/sendMailNotification.php | 24 ++++++++++++------------ app/Views/mail_template.php | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/Helpers/sendMailNotification.php b/app/Helpers/sendMailNotification.php index 8698874..67aa5a2 100755 --- a/app/Helpers/sendMailNotification.php +++ b/app/Helpers/sendMailNotification.php @@ -64,7 +64,7 @@ class sendMailNotification $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); - $data['params'] = $params; + $data['params'] = $params;$data['client_logo'] = $client_logo; $data['mail_content'] = $mail_content; $mail_content = view('mail_template', $data); @@ -104,7 +104,7 @@ class sendMailNotification $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); - $data['params'] = $params; + $data['params'] = $params;$data['client_logo'] = $client_logo; $data['mail_content'] = $mail_content; $mail_content = view('mail_template', $data); @@ -161,7 +161,7 @@ class sendMailNotification $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); - $data['params'] = $params; + $data['params'] = $params;$data['client_logo'] = $client_logo; $data['mail_content'] = $mail_content; $mail_content = view('mail_template', $data); @@ -556,7 +556,7 @@ class sendMailNotification $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); - $data['params'] = $params; + $data['params'] = $params;$data['client_logo'] = $client_logo; $data['mail_content'] = $mail_content; $mail_content = view('mail_template', $data); @@ -859,7 +859,7 @@ class sendMailNotification $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); - $data['params'] = $params; + $data['params'] = $params;$data['client_logo'] = $client_logo; $data['mail_content'] = $mail_content; $mail_content = view('mail_template', $data); @@ -1167,7 +1167,7 @@ class sendMailNotification // // $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); - // $data['params'] = $params; + // $data['params'] = $params;$data['client_logo'] = $client_logo; // $data['mail_content'] = $mail_content; // $mail_content = view('mail_template',$data); // $mail_content = $header_of_mail . @@ -1248,7 +1248,7 @@ class sendMailNotification $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); - $data['params'] = $params; + $data['params'] = $params;$data['client_logo'] = $client_logo; $data['mail_content'] = $mail_content; $mail_content = view('mail_template', $data); @@ -1287,7 +1287,7 @@ class sendMailNotification $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); - $data['params'] = $params; + $data['params'] = $params;$data['client_logo'] = $client_logo; $data['mail_content'] = $mail_content; $mail_content = view('mail_template', $data); @@ -1345,7 +1345,7 @@ class sendMailNotification $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); - $data['params'] = $params; + $data['params'] = $params;$data['client_logo'] = $client_logo; $data['mail_content'] = $mail_content; $mail_content = view('mail_template', $data); @@ -1504,7 +1504,7 @@ class sendMailNotification $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); - $data['params'] = $params; + $data['params'] = $params;$data['client_logo'] = $client_logo; $data['mail_content'] = $mail_content; $mail_content = view('mail_template', $data); @@ -1659,7 +1659,7 @@ class sendMailNotification $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); - $data['params'] = $params; + $data['params'] = $params;$data['client_logo'] = $client_logo; $data['mail_content'] = $mail_content; $mail_content = view('mail_template', $data); @@ -1816,7 +1816,7 @@ class sendMailNotification $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); - $data['params'] = $params; + $data['params'] = $params;$data['client_logo'] = $client_logo; $data['mail_content'] = $mail_content; $mail_content = view('mail_template', $data); diff --git a/app/Views/mail_template.php b/app/Views/mail_template.php index ab67544..12b4dac 100644 --- a/app/Views/mail_template.php +++ b/app/Views/mail_template.php @@ -51,7 +51,7 @@
- " alt="Client Logo" style="max-height:80px; max-width: 160px;">
From f48bb15264b1e2410b7b933813531a6db7362902 Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Tue, 14 Oct 2025 10:39:52 +0530 Subject: [PATCH 05/37] CHANGE_Mail_template_filename_issue - VADIVEL J 2025-10-14 --- app/Helpers/utility_helper.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Helpers/utility_helper.php b/app/Helpers/utility_helper.php index ca22481..3372200 100755 --- a/app/Helpers/utility_helper.php +++ b/app/Helpers/utility_helper.php @@ -56,6 +56,7 @@ if (!function_exists('file_Upload')) { { if ($fileToUpload !== null && $fileToUpload->isValid() && !$fileToUpload->hasMoved()) { $fileName = $fileToUpload->getName(); + $fileName = preg_replace('/[\s\x{00A0}\x{200B}-\x{200D}\x{FEFF}]/u', '', $fileName); $fileToUpload->move($filepath, $fileName); return $fileName; } else { From f05c3ee6f417efdae5b9cd20440e47ac97086114 Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Tue, 14 Oct 2025 14:18:39 +0530 Subject: [PATCH 06/37] CHANGE_Mail_template_filename_issue - VADIVEL J 2025-10-14 --- app/Config/Routes.php | 4 +- app/Controllers/TestingController.php | 79 +++++++++++++++++++++++++++ 2 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 app/Controllers/TestingController.php diff --git a/app/Config/Routes.php b/app/Config/Routes.php index cbb5b40..39f986e 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -530,5 +530,7 @@ $routes->get('notification_mail_header',"NotificationController::notification_ma $routes->get('notification_mail_footer',"NotificationController::notification_mail_footer"); - +$routes->group('test',function($routes){ + $routes->get('logo_renaming','TestingController::logo_renaming'); +}); diff --git a/app/Controllers/TestingController.php b/app/Controllers/TestingController.php new file mode 100644 index 0000000..aa9a266 --- /dev/null +++ b/app/Controllers/TestingController.php @@ -0,0 +1,79 @@ +get_client_logo_files(); + + $rename_files = ""; + $failed_rename_files = ""; + + foreach ($files as $file) { + // Skip system entries + if ($file === '.' || $file === '..' ) { + continue; + } + + $oldPath = $directory . $file; + + if (is_file($oldPath) && in_array(trim($file) , $client_logo_files)) { + + // Remove all spaces from filename + $newFileName = preg_replace('/\s+|\x{00A0}|\x{200B}|\x{200C}|\x{200D}|\x{FEFF}/u', '', $file); + + $newPath = $directory . $newFileName; + + // Only rename if the name changed + if ($oldPath !== $newPath) { + if (rename($oldPath, $newPath)) { + $rename_files .= "\n Renamed: $file โ†’ $newFileName \n"; + } else { + $failed_rename_files .= "\n Failed file: $file \n"; + } + } + } + } + log_message('error', 'Renamed Files: ' . $rename_files); + log_message('error', 'Failed Renames: ' . $failed_rename_files); + + return $this->response->setJSON(['status' => 'success', + 'message' => 'Logo renaming completed. kindly check backend logs for details', + 'data' => [ + 'renamed_files' => $rename_files, + 'failed_renames' => $failed_rename_files + ] + ])->setStatusCode(200); + } + + public function get_client_logo_files(){ + + $db = \Config\Database::connect(); + + $sql = "SELECT client_logo FROM clients WHERE client_logo IS NOT NULL AND TRIM(client_logo) <> '' "; + + $query = $db->query($sql); + + $results = $query->getResultArray() ?? []; + + $files = array_map(function($item) { + return trim($item['client_logo']); + }, $results); + + return $files; + } + +} From 7dc0e4696ab1e31af038f8285f0818c043481de5 Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Tue, 14 Oct 2025 14:54:33 +0530 Subject: [PATCH 07/37] CHANGE_Mail_template_filename_issue - VADIVEL J 2025-10-14 --- app/Controllers/TestingController.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/Controllers/TestingController.php b/app/Controllers/TestingController.php index aa9a266..90c2e87 100644 --- a/app/Controllers/TestingController.php +++ b/app/Controllers/TestingController.php @@ -47,8 +47,12 @@ class TestingController extends BaseController } } } + + $dbUpdated = $this->update_client_logo_files(); + log_message('error', 'Renamed Files: ' . $rename_files); log_message('error', 'Failed Renames: ' . $failed_rename_files); + log_message('error', 'Database Update Status: ' . ($dbUpdated ? 'Success' : 'No Changes Made or Failed')); return $this->response->setJSON(['status' => 'success', 'message' => 'Logo renaming completed. kindly check backend logs for details', @@ -76,4 +80,21 @@ class TestingController extends BaseController return $files; } + public function update_client_logo_files(){ + + $db = \Config\Database::connect(); + + $sql = "UPDATE clients + SET client_logo = REPLACE(REPLACE(REPLACE(client_logo, CHAR(160), ''), ' ', ''), '\t', '') + WHERE client_logo IS NOT NULL + AND TRIM(client_logo) <> '' + "; + + $query = $db->query($sql); + + return $db->affectedRows() > 0; + + + } + } From 67d03e83928a7cac19bc023cc82ee6ab4f0bdd2a Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Wed, 15 Oct 2025 17:30:26 +0530 Subject: [PATCH 08/37] CHANGE_Mail_template_filename_issue - VADIVEL J 2025-10-15 --- app/Controllers/ClientController.php | 76 ++++++++ app/Views/client_policy.php | 267 ++++++++++++++++++++++++++- 2 files changed, 337 insertions(+), 6 deletions(-) diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index d2eb167..5afb6bb 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -684,6 +684,12 @@ class ClientController extends AdminController $insert = $this->clientModel->insert($data); if ($insert) { $client_data = $this->clientModel->where(['id' => $insert, 'is_active' => 1])->first(); + + $client_id = $insert; + $default_template_creation = $this->createDefaultMailTemplate($client_id , $client_data); + if($default_template_creation == false){ + $this->myLogger->logme('error', 'Default Mail Template Creation Failed for Client ID: {data}', ['data' => $client_id]); + } return $this->respond(['status' => true, 'code' => 200, 'data' => $client_data], 200); } else { return $this->respond(['status' => false, 'code' => 404, 'message' => 'no data found'], 200); @@ -5334,6 +5340,76 @@ class ClientController extends AdminController } + public function createDefaultMailTemplate($client_id , $client_data){ + + $member_welcome_mail_template = $this->notificationModel->where('client_id',NULL)->where('template_name','member_welcome_mail')->get()->getResultArray()[0]??[]; + + $member_remainder_mail_template = $this->notificationModel->where('client_id',NULL)->where('template_name','member_reminder_mail')->get()->getResultArray()[0]??[]; + + $member_review_and_summary_mail_template = $this->notificationModel->where('client_id',NULL)->where('template_name','member_review_and_summary_mail')->get()->getResultArray()[0]??[]; + + $default_member_welcome_mail_template = [ + 'client_id' => $client_id, + 'template_name' => 'member_welcome_mail', + 'subject' => $member_welcome_mail_template['subject']??'', + 'mail_content' => $member_welcome_mail_template['mail_content']??'', + 'mail_content_json'=> $member_welcome_mail_template['mail_content_json']??'', + + 'created_by' => get_session_userid(), + 'created_at' => date('Y-m-d H:i:s'), + 'updated_by' => null, + 'updated_at' => date('Y-m-d H:i:s'), + 'mail_content_copy'=> null + ]; + + $default_member_remainder_mail_template = [ + 'client_id' => $client_id, + 'template_name' => 'member_reminder_mail', + 'subject' => $member_remainder_mail_template['subject']??'', + 'mail_content' => $member_remainder_mail_template['mail_content']??'', + 'mail_content_json'=> $member_remainder_mail_template['mail_content_json']??'', + + 'created_by' => get_session_userid(), + 'created_at' => date('Y-m-d H:i:s'), + 'updated_by' => null, + 'updated_at' => date('Y-m-d H:i:s'), + 'mail_content_copy'=> null + ]; + + $default_member_review_and_summary_mail_template = [ + 'client_id' => $client_id, + 'template_name' => 'member_review_and_summary_mail', + 'subject' => $member_review_and_summary_mail_template['subject']??'', + 'mail_content' => $member_review_and_summary_mail_template['mail_content']??'', + 'mail_content_json'=> $member_review_and_summary_mail_template['mail_content_json']??'', + + 'created_by' => get_session_userid(), + 'created_at' => date('Y-m-d H:i:s'), + 'updated_by' => null, + 'updated_at' => date('Y-m-d H:i:s'), + 'mail_content_copy'=> null + ]; + + $this->myLogger->logme('error', 'Default Mail Template Data ' . json_encode([ + $default_member_welcome_mail_template, + $default_member_remainder_mail_template, + $default_member_review_and_summary_mail_template + ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); + + + + $default_templates_inserted = $this->notificationModel->insertBatch([ + $default_member_welcome_mail_template, + $default_member_remainder_mail_template, + $default_member_review_and_summary_mail_template + ]); + + + return $default_templates_inserted ? true : false; + + + } + diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php index 877077e..6b083d4 100755 --- a/app/Views/client_policy.php +++ b/app/Views/client_policy.php @@ -1,3 +1,69 @@ + + + +
@@ -5,6 +71,18 @@
+ +
+ +
+ +
+
- " + Client Logo
@@ -322,6 +400,9 @@ $(document).ready(function() { // Get today's date var today = new Date(); + + const showExpired = $('#chk-show-expired').is(':checked'); + var startDatePicker = flatpickr("#start_date", { dateFormat: "d-m-Y", defaultDate: today, @@ -436,7 +517,8 @@ $(document).ready(function() { si_mapping = ` SI Mapping`; } - + if(showExpired == false && checkDateStatus(item.policy_end_date) != 'Expired'){ + policyTable += ` @@ -457,7 +539,7 @@ $(document).ready(function() { ${auto_si_menu} ${si_mapping}`; // Conditionally render the delete option based on the role - if (role !== 3 && role !== 4) { + if (role != 3 && role != 4) { policyTable += ` Delete`; @@ -470,6 +552,7 @@ $(document).ready(function() { `; + } }); $('#policy_table').append(policyTable); @@ -478,9 +561,11 @@ $(document).ready(function() { $('#table-client-policy').DataTable({ - paging: true, - searching: false, - // ordering: false + paging: true, + searching: true, + autoWidth: false, + responsive: true, + }); @@ -710,7 +795,7 @@ $("#policy_form").submit(function(event) { ${auto_si_menu}`; // Conditionally render the delete option based on the role - if (role !== 3 && role !== 4) { + if (role != 3 && role != 4) { policyTable += ` Delete`; @@ -2142,4 +2227,174 @@ function featchClient() { //---------------------------------------------------------------------------------------------------- + + + \ No newline at end of file From 2893890291f2e161947089d0c9f8aec698a6ab0f Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Fri, 17 Oct 2025 12:34:00 +0530 Subject: [PATCH 09/37] CHANGE_live_ui_fix_in_qcr - VADIVEL J 2025-10-17 --- app/Views/client_policy.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php index 6b083d4..6fd9d35 100755 --- a/app/Views/client_policy.php +++ b/app/Views/client_policy.php @@ -1,6 +1,6 @@ @@ -49,15 +73,21 @@ -
+
- -
- Client Logo + +