From c8d5a9c37dca9651f93da713ff19ff9c01d8b7f5 Mon Sep 17 00:00:00 2001 From: pjpatil12 Date: Mon, 23 Mar 2026 10:37:48 +0530 Subject: [PATCH] changes of reports and pmc reports by pankaj-dev --- v-2/.env | 9 + v-2/.gitignore | 7 + v-2/Dockerfile | 18 + v-2/README.md | 1 + v-2/activity.log | 7989 +++++++++++++++++++ v-2/app.log | 114 + v-2/config.py | 21 + v-2/controllers/auth_controller.py | 46 + v-2/controllers/block_controller.py | 119 + v-2/controllers/district_controller.py | 84 + v-2/controllers/excel_upload_controller.py | 388 + v-2/controllers/gst_release_controller.py | 70 + v-2/controllers/hold_types_controller.py | 77 + v-2/controllers/invoice_controller.py | 98 + v-2/controllers/log_controller.py | 31 + v-2/controllers/payment_controller.py | 103 + v-2/controllers/pmc_report_controller.py | 37 + v-2/controllers/report_controller.py | 193 + v-2/controllers/state_controller.py | 69 + v-2/controllers/subcontractor_controller.py | 117 + v-2/controllers/village_controller.py | 167 + v-2/docker-compose.yml | 35 + v-2/logs/activity.log | 0 v-2/logs/audit.log | 74 + v-2/main.py | 68 + v-2/model/Auth.py | 63 + v-2/model/Block.py | 165 + v-2/model/ContractorInfo.py | 72 + v-2/model/District.py | 100 + v-2/model/FolderAndFile.py | 39 + v-2/model/GST.py | 55 + v-2/model/HoldTypes.py | 90 + v-2/model/Invoice.py | 379 + v-2/model/ItemCRUD.py | 359 + v-2/model/Log.py | 87 + v-2/model/PmcReport.py | 456 ++ v-2/model/Report.py | 275 + v-2/model/State.py | 168 + v-2/model/Subcontractor.py | 140 + v-2/model/Utilities.py | 66 + v-2/model/Village.py | 121 + v-2/model/gst_release.py | 150 + v-2/model/payment.py | 158 + v-2/requirements.txt | 4 + v-2/static/css/base.css | 89 + v-2/static/css/index.css | 226 + v-2/static/css/invoice.css | 395 + v-2/static/css/invoice1.css | 313 + v-2/static/css/report.css | 181 + v-2/static/css/show_excel.css | 212 + v-2/static/css/style.css | 448 ++ v-2/static/css/subcontractor_report.css | 199 + v-2/static/css/upload_excel_file.css | 111 + v-2/static/images/icons/bin_red_icon.png | Bin 0 -> 4624 bytes v-2/static/images/icons/pen_blue_icon.png | Bin 0 -> 3015 bytes v-2/static/js/block.js | 116 + v-2/static/js/district.js | 62 + v-2/static/js/edit_hold_type.js | 18 + v-2/static/js/holdAmount.js | 95 + v-2/static/js/hold_types.js | 39 + v-2/static/js/invoice.js | 62 + v-2/static/js/save_data_success.js | 39 + v-2/static/js/save_excel_file.js | 21 + v-2/static/js/searchContractor.js | 43 + v-2/static/js/search_on_table.js | 108 + v-2/static/js/showSuccessAlert.js | 8 + v-2/static/js/sorting.js | 66 + v-2/static/js/state.js | 61 + v-2/static/js/subcontractor.js | 49 + v-2/static/js/validateFileInput.js | 12 + v-2/static/js/village.js | 198 + v-2/templates/activity_log.html | 102 + v-2/templates/add_block.html | 99 + v-2/templates/add_district.html | 85 + v-2/templates/add_gst_release.html | 175 + v-2/templates/add_hold_type.html | 59 + v-2/templates/add_invoice.html | 370 + v-2/templates/add_payment.html | 193 + v-2/templates/add_purchase_order.html | 147 + v-2/templates/add_state.html | 74 + v-2/templates/add_subcontractor.html | 127 + v-2/templates/add_village.html | 99 + v-2/templates/add_work_order.html | 137 + v-2/templates/admin_profile.html | 49 + v-2/templates/base.html | 97 + v-2/templates/edit_block.html | 60 + v-2/templates/edit_district.html | 26 + v-2/templates/edit_grn.html | 39 + v-2/templates/edit_gst_release.html | 45 + v-2/templates/edit_hold_type.html | 62 + v-2/templates/edit_invoice.html | 207 + v-2/templates/edit_payment.html | 49 + v-2/templates/edit_purchase.html | 47 + v-2/templates/edit_state.html | 17 + v-2/templates/edit_subcontractor.html | 50 + v-2/templates/edit_village.html | 52 + v-2/templates/grn_form.html | 77 + v-2/templates/index.html | 164 + v-2/templates/login.html | 90 + v-2/templates/pmc_report.html | 340 + v-2/templates/purchase_order.html | 10 + v-2/templates/purchase_order_report.html | 205 + v-2/templates/report.html | 108 + v-2/templates/show_excel_file.html | 85 + v-2/templates/subcontractor_report.html | 372 + v-2/templates/unreleased_gst.html | 35 + v-2/templates/uploadExcelFile.html | 24 + v-2/templates/work_order_report.html | 209 + v-2/unusedCode/unused.py | 482 ++ v-2/unusedCode/workOrder.py | 128 + 110 files changed, 20849 insertions(+) create mode 100644 v-2/.env create mode 100644 v-2/.gitignore create mode 100644 v-2/Dockerfile create mode 100644 v-2/README.md create mode 100644 v-2/activity.log create mode 100644 v-2/app.log create mode 100644 v-2/config.py create mode 100644 v-2/controllers/auth_controller.py create mode 100644 v-2/controllers/block_controller.py create mode 100644 v-2/controllers/district_controller.py create mode 100644 v-2/controllers/excel_upload_controller.py create mode 100644 v-2/controllers/gst_release_controller.py create mode 100644 v-2/controllers/hold_types_controller.py create mode 100644 v-2/controllers/invoice_controller.py create mode 100644 v-2/controllers/log_controller.py create mode 100644 v-2/controllers/payment_controller.py create mode 100644 v-2/controllers/pmc_report_controller.py create mode 100644 v-2/controllers/report_controller.py create mode 100644 v-2/controllers/state_controller.py create mode 100644 v-2/controllers/subcontractor_controller.py create mode 100644 v-2/controllers/village_controller.py create mode 100644 v-2/docker-compose.yml create mode 100644 v-2/logs/activity.log create mode 100644 v-2/logs/audit.log create mode 100644 v-2/main.py create mode 100644 v-2/model/Auth.py create mode 100644 v-2/model/Block.py create mode 100644 v-2/model/ContractorInfo.py create mode 100644 v-2/model/District.py create mode 100644 v-2/model/FolderAndFile.py create mode 100644 v-2/model/GST.py create mode 100644 v-2/model/HoldTypes.py create mode 100644 v-2/model/Invoice.py create mode 100644 v-2/model/ItemCRUD.py create mode 100644 v-2/model/Log.py create mode 100644 v-2/model/PmcReport.py create mode 100644 v-2/model/Report.py create mode 100644 v-2/model/State.py create mode 100644 v-2/model/Subcontractor.py create mode 100644 v-2/model/Utilities.py create mode 100644 v-2/model/Village.py create mode 100644 v-2/model/gst_release.py create mode 100644 v-2/model/payment.py create mode 100644 v-2/requirements.txt create mode 100644 v-2/static/css/base.css create mode 100644 v-2/static/css/index.css create mode 100644 v-2/static/css/invoice.css create mode 100644 v-2/static/css/invoice1.css create mode 100644 v-2/static/css/report.css create mode 100644 v-2/static/css/show_excel.css create mode 100644 v-2/static/css/style.css create mode 100644 v-2/static/css/subcontractor_report.css create mode 100644 v-2/static/css/upload_excel_file.css create mode 100644 v-2/static/images/icons/bin_red_icon.png create mode 100644 v-2/static/images/icons/pen_blue_icon.png create mode 100644 v-2/static/js/block.js create mode 100644 v-2/static/js/district.js create mode 100644 v-2/static/js/edit_hold_type.js create mode 100644 v-2/static/js/holdAmount.js create mode 100644 v-2/static/js/hold_types.js create mode 100644 v-2/static/js/invoice.js create mode 100644 v-2/static/js/save_data_success.js create mode 100644 v-2/static/js/save_excel_file.js create mode 100644 v-2/static/js/searchContractor.js create mode 100644 v-2/static/js/search_on_table.js create mode 100644 v-2/static/js/showSuccessAlert.js create mode 100644 v-2/static/js/sorting.js create mode 100644 v-2/static/js/state.js create mode 100644 v-2/static/js/subcontractor.js create mode 100644 v-2/static/js/validateFileInput.js create mode 100644 v-2/static/js/village.js create mode 100644 v-2/templates/activity_log.html create mode 100644 v-2/templates/add_block.html create mode 100644 v-2/templates/add_district.html create mode 100644 v-2/templates/add_gst_release.html create mode 100644 v-2/templates/add_hold_type.html create mode 100644 v-2/templates/add_invoice.html create mode 100644 v-2/templates/add_payment.html create mode 100644 v-2/templates/add_purchase_order.html create mode 100644 v-2/templates/add_state.html create mode 100644 v-2/templates/add_subcontractor.html create mode 100644 v-2/templates/add_village.html create mode 100644 v-2/templates/add_work_order.html create mode 100644 v-2/templates/admin_profile.html create mode 100644 v-2/templates/base.html create mode 100644 v-2/templates/edit_block.html create mode 100644 v-2/templates/edit_district.html create mode 100644 v-2/templates/edit_grn.html create mode 100644 v-2/templates/edit_gst_release.html create mode 100644 v-2/templates/edit_hold_type.html create mode 100644 v-2/templates/edit_invoice.html create mode 100644 v-2/templates/edit_payment.html create mode 100644 v-2/templates/edit_purchase.html create mode 100644 v-2/templates/edit_state.html create mode 100644 v-2/templates/edit_subcontractor.html create mode 100644 v-2/templates/edit_village.html create mode 100644 v-2/templates/grn_form.html create mode 100644 v-2/templates/index.html create mode 100644 v-2/templates/login.html create mode 100644 v-2/templates/pmc_report.html create mode 100644 v-2/templates/purchase_order.html create mode 100644 v-2/templates/purchase_order_report.html create mode 100644 v-2/templates/report.html create mode 100644 v-2/templates/show_excel_file.html create mode 100644 v-2/templates/subcontractor_report.html create mode 100644 v-2/templates/unreleased_gst.html create mode 100644 v-2/templates/uploadExcelFile.html create mode 100644 v-2/templates/work_order_report.html create mode 100644 v-2/unusedCode/unused.py create mode 100644 v-2/unusedCode/workOrder.py diff --git a/v-2/.env b/v-2/.env new file mode 100644 index 0000000..5bfeba1 --- /dev/null +++ b/v-2/.env @@ -0,0 +1,9 @@ +Secret_Key = 9f2a1b8c4d6e7f0123456789abcdef01 + +MYSQL_HOST=127.0.0.1 +MYSQL_USER=root +MYSQL_PASSWORD=root +MYSQL_DB=test + +DEFAULT_USERNAME=admin +DEFAULT_PASSWORD=admin123 diff --git a/v-2/.gitignore b/v-2/.gitignore new file mode 100644 index 0000000..f0af8fa --- /dev/null +++ b/v-2/.gitignore @@ -0,0 +1,7 @@ +venv/ +*.pyc +__pycache__/ +.uploads +static/download/ + + diff --git a/v-2/Dockerfile b/v-2/Dockerfile new file mode 100644 index 0000000..411d674 --- /dev/null +++ b/v-2/Dockerfile @@ -0,0 +1,18 @@ +# Use official Python image +FROM python:3.9 + +# Set working directory inside container +WORKDIR /app + +# Copy all files to container +COPY . . + +# Install dependencies +RUN pip install --no-cache-dir -r requirements.txt + +# Expose Flask's default port +EXPOSE 5000 + +# Run Flask app +CMD ["python", "main.py"] + diff --git a/v-2/README.md b/v-2/README.md new file mode 100644 index 0000000..52a42d7 --- /dev/null +++ b/v-2/README.md @@ -0,0 +1 @@ +# MA07-05-2025 diff --git a/v-2/activity.log b/v-2/activity.log new file mode 100644 index 0000000..c5d6a02 --- /dev/null +++ b/v-2/activity.log @@ -0,0 +1,7989 @@ +Timestamp: 2025-08-25 17:29:20 | User: Unknown | Action: Logout | Details: User v.sinha logged out +Timestamp: 2025-08-25 17:29:29 | User: Unknown | Action: Login | Details: User v.sinha logged in +Timestamp: 2025-08-25 17:29:38 | User: Unknown | Action: Check State | Details: User v.sinha Checked state 'MP' +Timestamp: 2025-08-25 17:29:39 | User: Unknown | Action: Add State | Details: User v.sinha added state 'MP' +Timestamp: 2025-08-25 17:29:43 | User: Unknown | Action: Delete State | Details: User v.sinha Deleted state '22' +Timestamp: 2025-08-25 17:46:20 | User: Unknown | Action: Check State | Details: User v.sinha Checked state 'MP' +Timestamp: 2025-08-25 17:46:20 | User: Unknown | Action: Add State | Details: User v.sinha added state 'MP' +Timestamp: 2025-08-25 17:46:24 | User: Unknown | Action: Delete State | Details: User v.sinha Deleted state '23' +Timestamp: 2025-08-25 17:49:43 | User: Unknown | Action: Check State | Details: User v.sinha Checked state 'MP' +Timestamp: 2025-08-25 17:49:44 | User: Unknown | Action: Add State | Details: User v.sinha added state 'MP' +Timestamp: 2025-08-25 17:49:51 | User: Unknown | Action: Delete State | Details: User v.sinha Deleted state '24' +Timestamp: 2025-08-25 18:01:58 | User: Unknown | Action: Check State | Details: User v.sinha Checked state 'MP' +Timestamp: 2025-08-25 18:01:59 | User: Unknown | Action: Add State | Details: User v.sinha added state 'MP' +Timestamp: 2025-08-25 18:02:05 | User: Unknown | Action: Delete State | Details: User v.sinha Deleted state '25' +Timestamp: 2025-08-25 18:05:30 | User: Unknown | Action: Logout | Details: User v.sinha logged out +Timestamp: 2025-08-25 18:05:42 | User: Unknown | Action: Login | Details: User v.sinha logged in +Timestamp: 2025-08-25 18:05:49 | User: Unknown | Action: Check State | Details: User v.sinha Checked state 'MP' +Timestamp: 2025-08-25 18:05:49 | User: Unknown | Action: Add State | Details: User v.sinha added state 'MP' +Timestamp: 2025-08-25 18:05:52 | User: Unknown | Action: Delete State | Details: User v.sinha Deleted state '26' +Timestamp: 2025-08-25 18:12:26 | User: Unknown | Action: Logout | Details: User v.sinha logged out +Timestamp: 2025-08-25 18:12:33 | User: Unknown | Action: Login | Details: User v.sinha logged in +Timestamp: 2025-08-25 18:12:55 | User: Unknown | Action: Check State | Details: User v.sinha Checked state 'MP' +Timestamp: 2025-08-25 18:12:56 | User: Unknown | Action: Add State | Details: User v.sinha added state 'MP' +Timestamp: 2025-08-25 18:13:00 | User: Unknown | Action: Delete State | Details: User v.sinha Deleted state '27' +Timestamp: 2025-08-26 10:32:21 | User: Unknown | Action: Login | Details: User v.sinha logged in +Timestamp: 2025-08-26 18:20:31 | User: Unknown | Action: Login | Details: User v.sinha logged in +Timestamp: 2025-09-24 15:17:33 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-24 15:18:49 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 15:18:49 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'aa' +Timestamp: 2025-09-24 15:18:52 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'aa' +Timestamp: 2025-09-24 15:21:28 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 15:21:28 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'aa' +Timestamp: 2025-09-24 15:21:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 15:21:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'' +Timestamp: 2025-09-24 15:21:43 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 15:22:10 | User: Unknown | Action: Check State | Details: User admin Checked state 'Uttar Pradesh' +Timestamp: 2025-09-24 15:22:12 | User: Unknown | Action: Add State | Details: User admin added state 'Uttar Pradesh' +Timestamp: 2025-09-24 15:22:39 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-24 15:22:41 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-24 15:22:42 | User: Unknown | Action: Add District | Details: User admin Added District 'Shamli' +Timestamp: 2025-09-24 15:23:03 | User: Unknown | Action: Get District | Details: User admin Get District '1' +Timestamp: 2025-09-24 15:23:09 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-24 15:23:12 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-24 15:23:12 | User: Unknown | Action: Add Block | Details: User admin Added block 'Shamli' +Timestamp: 2025-09-24 15:24:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:25:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:26:04 | User: Unknown | Action: Check State | Details: User admin Checked state 'Uttar Pradesh' +Timestamp: 2025-09-24 15:26:06 | User: Unknown | Action: Add State | Details: User admin added state 'Uttar Pradesh' +Timestamp: 2025-09-24 15:26:14 | User: Unknown | Action: Check District | Details: User admin Checked District 'Uttar Pradesh' +Timestamp: 2025-09-24 15:26:26 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-24 15:26:29 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-24 15:26:29 | User: Unknown | Action: Add District | Details: User admin Added District 'Shamli' +Timestamp: 2025-09-24 15:26:37 | User: Unknown | Action: Get District | Details: User admin Get District '1' +Timestamp: 2025-09-24 15:26:41 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-24 15:26:44 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-24 15:26:44 | User: Unknown | Action: Add Block | Details: User admin Added block 'Shamli' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:27:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'A' +Timestamp: 2025-09-24 15:27:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'A' +Timestamp: 2025-09-24 15:27:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'Aa' +Timestamp: 2025-09-24 15:27:21 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'Aa' +Timestamp: 2025-09-24 15:35:38 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 15:35:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:35:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:35:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:35:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:35:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:35:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:35:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:35:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:35:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:35:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'A' +Timestamp: 2025-09-24 15:35:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'A' +Timestamp: 2025-09-24 15:35:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'Ar' +Timestamp: 2025-09-24 15:36:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'Ar' +Timestamp: 2025-09-24 15:50:03 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-24 15:50:21 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 15:51:45 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:52:01 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 15:52:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:53:27 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 15:53:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:53:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:53:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:53:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:53:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:53:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:53:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:53:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:53:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 15:54:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'' +Timestamp: 2025-09-24 15:54:39 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:54:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 15:55:13 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 15:55:13 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-24 15:55:13 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'adi' +Timestamp: 2025-09-24 15:55:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'adi' +Timestamp: 2025-09-24 16:14:09 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:14:10 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:14:17 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 16:14:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:14:25 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:14:25 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:22:09 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:22:10 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:22:18 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:22:25 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:22:25 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:23:14 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-24 16:23:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:23:21 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:25:51 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:25:51 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:25:58 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 16:26:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:26:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:59:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 16:59:59 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 17:00:05 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:00:14 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 17:00:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 17:11:17 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-24 17:11:31 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:11:39 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 17:11:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 17:14:21 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:14:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-24 17:14:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-24 17:14:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-24 17:18:11 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-24 17:18:20 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:18:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-24 17:18:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-24 17:18:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-24 17:56:56 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:56:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-24 17:57:07 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ew' +Timestamp: 2025-09-24 17:57:07 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ew' +Timestamp: 2025-09-24 17:57:08 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'e' +Timestamp: 2025-09-24 17:57:08 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'' +Timestamp: 2025-09-24 17:57:11 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'' +Timestamp: 2025-09-24 17:57:14 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-24 17:57:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 10:35:37 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-25 10:36:05 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 10:36:06 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 10:48:14 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 10:48:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 10:48:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 10:48:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 10:48:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 10:48:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 10:48:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 10:48:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 10:48:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 10:48:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 10:48:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 10:48:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-25 10:48:21 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-25 11:40:35 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-25 11:40:44 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:40:51 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 11:40:52 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 11:40:53 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 11:49:46 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 11:49:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 11:49:55 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 11:49:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 11:49:57 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:01:16 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:01:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:01:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:01:23 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:15:19 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:15:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:15:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:15:28 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:19:08 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:19:09 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:22:14 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-25 12:22:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 12:22:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:22:21 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:22:28 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:22:34 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:22:34 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:22:35 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:40:54 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:40:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:41:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 12:41:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:41:01 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:50:05 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 12:50:11 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:50:11 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 12:50:12 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 13:09:34 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 13:09:35 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 13:09:39 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:09:47 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 13:09:47 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 13:09:48 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 13:19:14 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:19:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 13:19:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 13:19:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 13:26:42 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:26:44 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 13:27:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 13:27:38 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 13:27:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 14:24:25 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 14:26:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 14:26:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 14:26:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 15:06:37 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 15:06:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:06:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 15:06:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 15:06:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 15:24:42 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:25:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 15:25:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 15:25:23 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 15:33:35 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:33:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:35:39 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 15:35:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:35:49 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 15:35:49 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 15:35:50 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 15:54:05 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 15:54:12 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 15:54:12 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 15:54:13 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:01:09 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:01:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:01:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:01:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:06:17 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:06:23 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 16:06:23 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:06:24 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:12:45 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 16:12:45 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:12:49 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:13:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:13:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:13:01 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:13:05 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:13:11 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:13:11 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:13:11 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:15:09 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:15:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 16:15:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:15:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:26:14 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:26:14 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:26:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:26:20 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:26:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:26:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:26:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:36:06 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:36:11 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:36:11 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:36:13 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:37:50 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:37:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:37:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:37:57 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:42:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:42:32 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:42:37 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:42:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:42:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:42:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:47:32 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:47:32 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:47:34 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:47:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:47:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:47:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:47:45 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 16:47:51 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:47:51 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:47:52 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:56:35 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 16:56:35 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:56:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 16:56:42 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 16:56:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:15:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 17:15:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:15:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:15:49 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 17:16:08 | User: Unknown | Action: Check State | Details: User admin Checked state 'Uttar Pradesh' +Timestamp: 2025-09-25 17:16:08 | User: Unknown | Action: Add State | Details: User admin added state 'Uttar Pradesh' +Timestamp: 2025-09-25 17:16:40 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 17:16:53 | User: Unknown | Action: Delete State | Details: User admin Deleted state '4' +Timestamp: 2025-09-25 17:16:54 | User: Unknown | Action: Check State | Details: User admin Checked state 'Shamli' +Timestamp: 2025-09-25 17:16:55 | User: Unknown | Action: Add State | Details: User admin added state 'Shamli' +Timestamp: 2025-09-25 17:17:05 | User: Unknown | Action: Check District | Details: User admin Checked District 'Uttar Pradesh' +Timestamp: 2025-09-25 17:17:06 | User: Unknown | Action: Check District | Details: User admin Checked District 'Uttar Pradesh' +Timestamp: 2025-09-25 17:17:06 | User: Unknown | Action: Add District | Details: User admin Added District 'Uttar Pradesh' +Timestamp: 2025-09-25 17:17:30 | User: Unknown | Action: Check State | Details: User admin Checked state 'Uttar Pradesh' +Timestamp: 2025-09-25 17:17:33 | User: Unknown | Action: Check State | Details: User admin Checked state 'Uttar Pradesh' +Timestamp: 2025-09-25 17:17:34 | User: Unknown | Action: Add State | Details: User admin added state 'Uttar Pradesh' +Timestamp: 2025-09-25 17:17:49 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-25 17:17:49 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-25 17:17:50 | User: Unknown | Action: Add District | Details: User admin Added District 'Shamli' +Timestamp: 2025-09-25 17:18:11 | User: Unknown | Action: Get District | Details: User admin Get District '5' +Timestamp: 2025-09-25 17:18:14 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-25 17:18:14 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-25 17:18:14 | User: Unknown | Action: Add Block | Details: User admin Added block 'Shamli' +Timestamp: 2025-09-25 17:18:35 | User: Unknown | Action: Get District | Details: User admin Get District '5' +Timestamp: 2025-09-25 17:18:38 | User: Unknown | Action: Get District | Details: User admin Get District '6' +Timestamp: 2025-09-25 17:18:40 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-25 17:18:41 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-25 17:18:41 | User: Unknown | Action: Add Block | Details: User admin Added block 'Shamli' +Timestamp: 2025-09-25 17:19:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:20:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:10 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:21:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:21:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:21:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:40:41 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:43 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:40:46 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 17:40:46 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:40:47 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:42:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 17:42:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:42:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:42:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:42:36 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:42:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:42:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:42:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:48:07 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:48:12 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 17:48:12 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:48:13 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:50:57 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:50:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 17:51:02 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 17:51:02 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 17:51:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:00:33 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:00:39 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 18:00:39 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:00:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:06:21 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:23 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:06:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:06:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:06:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:15:55 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:15:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:16:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:16:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:16:01 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:17:34 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:17:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:17:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:17:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:23:11 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:13 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:23:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 18:23:21 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 18:24:24 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:26 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:24:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:24:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:24:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-25 18:26:41 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-25 18:26:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:26:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:26:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:26:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:26:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:26:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:26:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:26:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:26:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-25 18:26:45 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 18:26:46 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-25 18:26:46 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-25 18:30:17 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-25 18:30:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 10:37:17 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-26 10:37:21 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 10:37:23 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 10:39:57 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 10:40:40 | User: Unknown | Action: Check State | Details: User admin Checked state 'Uttar Pradesh' +Timestamp: 2025-09-26 10:40:41 | User: Unknown | Action: Add State | Details: User admin added state 'Uttar Pradesh' +Timestamp: 2025-09-26 10:41:01 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-26 10:41:01 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-26 10:41:01 | User: Unknown | Action: Add District | Details: User admin Added District 'Shamli' +Timestamp: 2025-09-26 10:41:18 | User: Unknown | Action: Get District | Details: User admin Get District '4' +Timestamp: 2025-09-26 10:41:20 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-26 10:41:21 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-26 10:41:21 | User: Unknown | Action: Add Block | Details: User admin Added block 'Shamli' +Timestamp: 2025-09-26 10:41:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:39 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:47:45 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 10:47:45 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 10:47:46 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 10:57:34 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 10:57:39 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 10:57:39 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 10:57:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 11:08:31 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:33 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:08:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 11:08:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 11:08:38 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 11:10:53 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:10:59 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 11:10:59 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 11:11:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 11:14:35 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 11:14:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 11:14:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 11:14:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 12:06:12 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:06:14 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:47 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:14:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:15:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 12:15:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 12:15:45 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 12:34:19 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 12:34:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:29 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 12:34:34 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 12:34:34 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:34:35 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:36:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 12:36:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:36:38 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:38:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 12:38:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:38:32 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:40:53 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 12:40:54 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:40:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:42:53 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 12:42:54 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:42:54 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:44:34 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 12:44:35 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 12:44:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 12:44:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:44:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:45:46 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 12:45:46 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:45:47 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:55:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 12:55:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:55:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:58:48 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 12:58:49 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 12:58:50 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:00:47 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:00:47 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:11:46 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:11:47 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:11:47 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:13:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:13:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:13:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:16:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:16:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:16:05 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:16:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:16:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:16:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:23:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:23:38 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:23:39 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:24:06 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:24:08 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:29:02 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'' +Timestamp: 2025-09-26 13:29:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:29:06 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:29:06 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:29:25 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:29:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:35:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:35:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:35:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:36:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:36:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 13:36:05 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 13:38:57 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:38:57 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:38:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:40:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:40:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:40:21 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:41:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:41:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:41:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:43:35 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:43:35 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 13:43:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:43:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:43:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-26 13:43:38 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-26 13:46:13 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:46:14 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:46:14 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arg' +Timestamp: 2025-09-26 13:46:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:46:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:47:24 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 13:47:24 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 13:47:25 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:16:49 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 14:16:50 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:16:52 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:18:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 14:18:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:18:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:19:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 14:19:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:19:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:21:25 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 14:21:25 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:21:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-26 14:21:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-26 14:22:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 14:22:28 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:22:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:23:49 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 14:23:49 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:23:49 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arg' +Timestamp: 2025-09-26 14:23:50 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:23:51 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:24:35 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 14:24:35 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:24:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:25:38 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 14:25:38 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:25:38 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arg' +Timestamp: 2025-09-26 14:25:39 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:25:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:26:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 14:26:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:26:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:30:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 14:30:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 14:30:23 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 15:27:14 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-26 15:27:17 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 15:27:17 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 15:27:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 15:27:46 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-26 15:27:56 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 15:27:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:27:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:27:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:27:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:27:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:27:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:27:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:27:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:27:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:28:03 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 15:28:03 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 15:28:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-26 15:28:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-26 15:30:28 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 15:30:28 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 15:30:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 15:30:39 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 15:30:50 | User: Unknown | Action: Check State | Details: User admin Checked state 'Uttar Pradesh' +Timestamp: 2025-09-26 15:31:01 | User: Unknown | Action: Check State | Details: User admin Checked state 'Uttar Pradesh' +Timestamp: 2025-09-26 15:31:02 | User: Unknown | Action: Add State | Details: User admin added state 'Uttar Pradesh' +Timestamp: 2025-09-26 15:31:09 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-26 15:31:09 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-26 15:31:10 | User: Unknown | Action: Add District | Details: User admin Added District 'Shamli' +Timestamp: 2025-09-26 15:31:19 | User: Unknown | Action: Get District | Details: User admin Get District '4' +Timestamp: 2025-09-26 15:31:21 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-26 15:31:21 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-26 15:31:21 | User: Unknown | Action: Add Block | Details: User admin Added block 'Shamli' +Timestamp: 2025-09-26 15:31:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:32:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 15:32:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 15:33:01 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 15:33:26 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 15:33:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:33:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:33:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:33:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:33:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:33:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:33:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:33:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:33:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:33:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 15:33:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 15:33:32 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-26 15:33:33 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-26 15:37:35 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 15:37:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:37:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:37:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:37:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:37:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:37:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:37:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:37:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:37:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:37:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 15:37:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 15:44:07 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 15:44:07 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 15:44:08 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 15:47:58 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 15:48:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:48:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:48:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:48:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:48:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:48:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:48:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:48:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:48:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 15:48:03 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 15:48:03 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ae' +Timestamp: 2025-09-26 15:48:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 15:48:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 15:48:06 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 15:50:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 15:50:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 15:50:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-26 15:50:02 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-26 15:55:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 15:55:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:00:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:00:01 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:02:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:02:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 16:02:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 16:20:54 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-26 16:20:59 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:21:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:36:01 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:36:01 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:40:07 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:40:08 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:41:48 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:41:48 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:42:59 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:43:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:44:01 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:44:02 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:58:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 16:58:17 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 17:47:48 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 17:47:49 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 17:48:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 17:48:01 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 18:07:02 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-26 18:07:02 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-26 18:07:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 10:45:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 10:45:17 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 10:50:03 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 10:50:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 11:10:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 11:10:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 11:14:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 11:14:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 11:14:45 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 11:19:53 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-27 11:19:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:19:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:19:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:19:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:19:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:19:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:19:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:19:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:19:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:01 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 11:20:07 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 11:20:07 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 11:20:08 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 11:34:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 11:34:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 11:34:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 11:36:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 11:36:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 11:36:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 11:39:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 11:39:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 11:54:18 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 11:54:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 11:54:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 11:58:28 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 11:58:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 11:59:14 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 11:59:14 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 11:59:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 12:12:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 12:12:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'as' +Timestamp: 2025-09-27 12:12:45 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 12:12:47 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 12:18:33 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 12:18:33 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 12:18:34 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 13:10:54 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 13:10:57 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 15:02:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 15:02:01 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 15:03:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 15:03:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 15:03:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-27 15:03:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-27 16:29:33 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 16:29:33 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 16:29:35 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 16:30:10 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 16:30:10 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 16:30:10 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 16:37:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 16:37:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-27 16:37:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-27 16:37:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-27 16:42:26 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-27 16:42:36 | User: Unknown | Action: Check State | Details: User admin Checked state 'Uttar Pradesh' +Timestamp: 2025-09-27 16:42:38 | User: Unknown | Action: Add State | Details: User admin added state 'Uttar Pradesh' +Timestamp: 2025-09-27 16:42:45 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-27 16:42:45 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-27 16:42:45 | User: Unknown | Action: Add District | Details: User admin Added District 'Shamli' +Timestamp: 2025-09-27 16:42:50 | User: Unknown | Action: Get District | Details: User admin Get District '4' +Timestamp: 2025-09-27 16:42:53 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-27 16:42:53 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-27 16:42:53 | User: Unknown | Action: Add Block | Details: User admin Added block 'Shamli' +Timestamp: 2025-09-27 16:43:05 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:43:05 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:43:05 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:43:05 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:43:05 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:43:05 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:43:05 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:43:05 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:43:05 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:43:09 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 16:43:10 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 16:46:46 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:48 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 16:46:55 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 16:46:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 16:46:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 16:57:55 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 16:57:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 17:16:18 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 17:16:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 17:33:52 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 17:33:53 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 17:37:57 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'r' +Timestamp: 2025-09-27 17:37:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'' +Timestamp: 2025-09-27 17:49:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 17:49:18 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 17:56:33 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 17:56:33 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 18:00:40 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:00:48 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 18:00:48 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 18:00:49 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 18:01:38 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:40 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:01:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 18:01:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 18:01:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 18:02:33 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-27 18:02:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-27 18:02:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-27 18:02:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-28 11:19:46 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-28 11:20:06 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-28 11:20:07 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-28 11:40:57 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 11:41:08 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-28 11:41:11 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-28 11:48:26 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-28 11:48:39 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-28 11:48:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-28 19:47:14 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-28 19:47:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-28 19:47:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-28 21:12:24 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:12:24 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:12:24 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:12:24 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:12:24 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:13:38 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:13:38 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:13:38 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:13:38 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:13:38 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:14:04 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:14:04 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:14:04 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:14:04 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:14:04 | User: Unknown | Action: Download PMC Report | Details: User admin Download PMC Report'59485' +Timestamp: 2025-09-28 21:15:26 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-28 21:15:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-28 21:15:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-28 21:15:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-28 21:29:49 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-28 21:29:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 21:29:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-28 21:29:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-28 21:30:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-28 22:07:03 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-28 22:07:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-28 22:07:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-28 22:07:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 10:07:20 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-29 10:07:26 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 10:07:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:07:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:07:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:07:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:07:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:07:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:07:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:07:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:07:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:07:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 10:07:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-29 10:07:32 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-29 10:07:53 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 10:07:53 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 10:07:54 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 10:13:28 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 10:13:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-29 10:13:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-29 10:16:32 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 10:17:29 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:17:34 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 10:17:35 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 10:17:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 10:27:41 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 10:27:53 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 10:27:54 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 12:43:57 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 12:43:57 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 12:43:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 12:52:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 12:52:17 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 15:19:07 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 15:19:13 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 15:19:13 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 15:19:14 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:00:36 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:00:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:00:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:00:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:05:05 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 16:06:52 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 16:07:07 | User: Unknown | Action: Check District | Details: User admin Checked District 'Muzaffarnagar' +Timestamp: 2025-09-29 16:07:18 | User: Unknown | Action: Check District | Details: User admin Checked District 'Muzaffarnagar' +Timestamp: 2025-09-29 16:07:53 | User: Unknown | Action: Add District | Details: User admin Added District 'Muzaffarnagar' +Timestamp: 2025-09-29 16:08:06 | User: Unknown | Action: Get District | Details: User admin Get District '4' +Timestamp: 2025-09-29 16:08:10 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Muzaffarnagar' +Timestamp: 2025-09-29 16:08:10 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Muzaffarnagar' +Timestamp: 2025-09-29 16:08:10 | User: Unknown | Action: Add Block | Details: User admin Added block 'Muzaffarnagar' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:08:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'j' +Timestamp: 2025-09-29 16:08:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ja' +Timestamp: 2025-09-29 16:08:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ja' +Timestamp: 2025-09-29 16:15:32 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:15:39 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 16:15:39 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:15:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:17:58 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 16:18:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:18:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:18:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:18:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:18:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:18:00 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:18:14 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 16:18:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:18:49 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 16:18:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:21:00 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 16:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:22:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:24:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:24:33 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 16:24:37 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:10 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 16:28:12 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'' +Timestamp: 2025-09-29 16:28:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'p' +Timestamp: 2025-09-29 16:28:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'po' +Timestamp: 2025-09-29 16:28:18 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'p' +Timestamp: 2025-09-29 16:28:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'pu' +Timestamp: 2025-09-29 16:28:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'pu' +Timestamp: 2025-09-29 16:28:31 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:28:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 16:28:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:28:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:29:53 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:29:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 16:30:01 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:30:01 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:30:02 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:47:32 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:47:32 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:47:32 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:48:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:48:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:48:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:49:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:49:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:49:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:51:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:51:23 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:54:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:54:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:54:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:57:11 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:57:11 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 16:57:13 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:00:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:00:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:08:18 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:08:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 17:08:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:08:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:10:59 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:11:13 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:11:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:13:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:13:28 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:13:36 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:38 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:39 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-29 17:13:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 17:13:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:13:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:15:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:15:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:15:57 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:19:18 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:19:18 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:19:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:27:48 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:27:48 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 17:27:49 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 18:22:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-29 18:22:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-29 18:22:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 10:30:19 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-30 10:31:51 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 10:40:56 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-30 10:40:58 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 11:35:14 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:35:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 11:35:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 11:35:21 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 11:51:45 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 11:51:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:51:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:51:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:51:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:51:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:51:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:51:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:51:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:51:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:51:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 11:51:47 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:13 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 13:03:18 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-30 13:03:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 13:03:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 14:29:09 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-30 14:30:18 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-30 14:30:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'' +Timestamp: 2025-09-30 15:04:51 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-30 15:04:54 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 15:04:55 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:15:25 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-09-30 17:16:54 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-30 17:16:54 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:16:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:28:25 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:28:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:28:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:28:32 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:43:00 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 17:43:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:43:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:43:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:43:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:43:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:43:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:43:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:43:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:43:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:43:03 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:44:41 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 17:44:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:44:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:44:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:44:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:44:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:44:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:44:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:44:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:44:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:44:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:46:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:07 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:18 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 17:47:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:20 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:52 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:47:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:06 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:08 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:48:59 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:01 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:49:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:49:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:49:05 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:50:39 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:50 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:50 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:50 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:50 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:50 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:50 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:50 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:50 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:50 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:50:50 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:56 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:54:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:55:02 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:55:02 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:55:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:58:09 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 17:58:10 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:10 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:58:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:58:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:58:17 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 17:59:17 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 17:59:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:59:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:59:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:59:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:59:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:59:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:59:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:59:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:59:18 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 17:59:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-30 17:59:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-09-30 17:59:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-30 17:59:23 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'arh' +Timestamp: 2025-09-30 18:14:10 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 18:14:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:55 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 18:14:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:56 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:14:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:15:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 18:15:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 18:15:01 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 18:16:32 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 18:16:40 | User: Unknown | Action: Check State | Details: User admin Checked state 'Uttar Pradesh' +Timestamp: 2025-09-30 18:16:40 | User: Unknown | Action: Add State | Details: User admin added state 'Uttar Pradesh' +Timestamp: 2025-09-30 18:16:45 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-30 18:16:45 | User: Unknown | Action: Check District | Details: User admin Checked District 'Shamli' +Timestamp: 2025-09-30 18:16:45 | User: Unknown | Action: Add District | Details: User admin Added District 'Shamli' +Timestamp: 2025-09-30 18:16:50 | User: Unknown | Action: Get District | Details: User admin Get District '4' +Timestamp: 2025-09-30 18:16:52 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-30 18:16:52 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Shamli' +Timestamp: 2025-09-30 18:16:52 | User: Unknown | Action: Add Block | Details: User admin Added block 'Shamli' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:12 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 18:17:12 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 18:17:13 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-09-30 18:17:50 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-09-30 18:17:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-09-30 18:17:55 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-09-30 18:17:57 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-01 17:47:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-01 17:47:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 10:36:52 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-10-03 10:37:39 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 10:39:47 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-10-03 10:39:56 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:39:59 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 10:40:03 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 10:40:03 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 10:40:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 11:32:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 11:32:38 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 11:36:40 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:42 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 11:36:45 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-03 11:36:46 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 11:36:47 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 12:57:09 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:12 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 12:57:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 12:57:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 12:57:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 13:52:14 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:52:17 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:10 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 13:54:11 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:34 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:17:35 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:02 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:21:04 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:53 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:23:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:21 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:29 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:39 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:24:41 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:50 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:25:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:33 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:26:34 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:44 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:27:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:47 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:29:49 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:14 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 14:32:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:15 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:32:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 14:32:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 14:32:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 14:44:17 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:19 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:44:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 14:44:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 14:44:23 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 14:45:29 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:31 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 14:45:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-03 14:45:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-03 15:03:24 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 15:03:24 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 15:03:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'' +Timestamp: 2025-10-03 15:03:35 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:36 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 15:03:39 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 15:03:39 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 15:03:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 16:46:30 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:32 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 16:46:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 16:46:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 16:46:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 17:15:14 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 17:15:16 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:22 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:25 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:17:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 17:17:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 17:17:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 17:37:01 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-10-03 17:37:03 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 17:37:03 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 17:37:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 17:39:07 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:09 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:39:12 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-03 17:39:12 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 17:39:13 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-03 17:44:09 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 17:44:41 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 17:45:01 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 17:45:21 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 17:45:31 | User: Unknown | Action: Check District | Details: User admin Checked District 'Muzaffarnagar' +Timestamp: 2025-10-03 17:45:32 | User: Unknown | Action: Check District | Details: User admin Checked District 'Muzaffarnagar' +Timestamp: 2025-10-03 17:45:32 | User: Unknown | Action: Add District | Details: User admin Added District 'Muzaffarnagar' +Timestamp: 2025-10-03 17:45:42 | User: Unknown | Action: Get District | Details: User admin Get District '4' +Timestamp: 2025-10-03 17:45:44 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Muzaffarnagar' +Timestamp: 2025-10-03 17:45:45 | User: Unknown | Action: Check Block | Details: User admin Checked block 'Muzaffarnagar' +Timestamp: 2025-10-03 17:45:45 | User: Unknown | Action: Add Block | Details: User admin Added block 'Muzaffarnagar' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:57 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:45:58 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:46:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'j' +Timestamp: 2025-10-03 17:46:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ja' +Timestamp: 2025-10-03 17:46:38 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ja' +Timestamp: 2025-10-03 17:49:50 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 17:49:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:49:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:49:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:49:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:49:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:49:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:49:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:49:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:49:52 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:49:55 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-03 17:49:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-10-03 17:49:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ar' +Timestamp: 2025-10-03 17:56:43 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-03 17:56:45 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:56:45 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:56:45 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-03 17:56:50 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-03 17:56:50 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'as' +Timestamp: 2025-10-03 17:56:52 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'as' +Timestamp: 2025-10-04 10:40:53 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:55 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-04 10:40:59 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:40:59 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:41:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:44:17 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:44:17 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:44:17 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:45:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:45:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:45:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:47:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:47:56 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:47:57 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:50:11 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:50:11 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:50:12 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:52:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:52:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 10:52:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 11:40:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 11:40:19 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 11:40:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 11:49:14 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 11:49:14 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 11:49:15 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ad' +Timestamp: 2025-10-04 15:07:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-04 15:07:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'aa' +Timestamp: 2025-10-04 15:07:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'aad' +Timestamp: 2025-10-04 15:07:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'aad' +Timestamp: 2025-10-04 17:27:24 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'aa' +Timestamp: 2025-10-04 17:27:24 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-04 17:27:24 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'aad' +Timestamp: 2025-10-04 17:27:25 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'aad' +Timestamp: 2025-10-06 13:03:06 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'd' +Timestamp: 2025-10-06 13:03:06 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'da' +Timestamp: 2025-10-06 13:03:06 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'day' +Timestamp: 2025-10-06 13:03:07 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'day' +Timestamp: 2025-10-06 13:08:38 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'd' +Timestamp: 2025-10-06 13:08:38 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'da' +Timestamp: 2025-10-06 13:08:38 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'day' +Timestamp: 2025-10-06 13:08:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'da' +Timestamp: 2025-10-06 13:08:40 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'd' +Timestamp: 2025-10-06 13:08:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'' +Timestamp: 2025-10-06 13:08:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-06 13:08:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ak' +Timestamp: 2025-10-06 13:08:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'akr' +Timestamp: 2025-10-06 13:08:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'akra' +Timestamp: 2025-10-06 13:08:45 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'akr' +Timestamp: 2025-10-06 13:08:45 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ak' +Timestamp: 2025-10-06 13:08:47 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ak' +Timestamp: 2025-10-06 13:09:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'd' +Timestamp: 2025-10-06 13:09:20 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'da' +Timestamp: 2025-10-06 13:09:21 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'day' +Timestamp: 2025-10-06 13:09:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'day' +Timestamp: 2025-10-06 13:15:23 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'd' +Timestamp: 2025-10-06 13:15:23 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'da' +Timestamp: 2025-10-06 13:15:24 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'day' +Timestamp: 2025-10-06 13:15:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'da' +Timestamp: 2025-10-06 13:15:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'd' +Timestamp: 2025-10-06 13:15:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'' +Timestamp: 2025-10-06 13:15:41 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-06 13:15:45 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:45 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:45 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:45 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:45 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:45 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:45 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:45 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:46 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:15:51 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'd' +Timestamp: 2025-10-06 13:15:51 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'da' +Timestamp: 2025-10-06 13:15:52 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'day' +Timestamp: 2025-10-06 13:15:53 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'day' +Timestamp: 2025-10-06 13:25:20 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:22 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 13:25:25 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'd' +Timestamp: 2025-10-06 13:25:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'da' +Timestamp: 2025-10-06 13:25:26 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'day' +Timestamp: 2025-10-06 13:25:27 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'day' +Timestamp: 2025-10-06 14:58:02 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'd' +Timestamp: 2025-10-06 14:58:02 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'da' +Timestamp: 2025-10-06 14:58:05 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'da' +Timestamp: 2025-10-06 15:00:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'd' +Timestamp: 2025-10-06 15:00:04 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'da' +Timestamp: 2025-10-06 15:00:06 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'da' +Timestamp: 2025-10-06 15:00:21 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:24 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-06 15:00:33 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'd' +Timestamp: 2025-10-06 15:00:33 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'da' +Timestamp: 2025-10-06 15:00:33 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'day' +Timestamp: 2025-10-06 15:00:34 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'day' +Timestamp: 2025-10-06 17:30:50 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' + +Timestamp: 2025-10-06 17:30:50 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'aad' +Timestamp: 2025-10-06 17:30:53 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-06 17:30:53 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'' +Timestamp: 2025-10-08 12:09:50 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-08 12:09:50 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-08 12:32:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-08 12:32:42 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'ms' +Timestamp: 2025-10-08 12:32:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-08 12:32:44 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-08 12:58:25 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-08 12:58:25 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-08 12:59:22 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-08 12:59:23 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-09 10:20:50 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-10-09 10:21:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-09 10:21:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-09 10:31:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-09 10:31:02 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-09 10:31:50 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:53 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:54 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-09 10:31:59 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-09 10:32:00 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'm' +Timestamp: 2025-10-14 10:25:59 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-14 10:25:59 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-15 10:27:20 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-10-15 10:27:29 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-15 10:27:30 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-15 15:44:05 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-15 15:44:05 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-15 15:44:24 | User: Unknown | Action: Upload Excel File | Details: User adminUpload Excel File'' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:27 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:28 | User: Unknown | Action: Data saved | Details: User admin Data saved'None' +Timestamp: 2025-10-15 15:44:31 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-15 15:44:32 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-23 14:48:46 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-10-23 18:28:12 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-23 18:28:16 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-23 18:31:12 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-10-23 18:31:17 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-23 18:31:18 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-23 18:37:04 | User: Unknown | Action: Logout | Details: User admin logged out +Timestamp: 2025-10-23 18:37:09 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-10-23 20:13:02 | User: Unknown | Action: Logout | Details: User admin logged out +Timestamp: 2025-10-23 20:13:10 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-10-23 20:13:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-23 20:13:36 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'aa' +Timestamp: 2025-10-23 20:13:37 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'aa' +Timestamp: 2025-10-23 20:13:41 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-10-23 20:13:43 | User: Unknown | Action: Search contractor | Details: User admin Search contractor'a' +Timestamp: 2025-11-12 15:51:31 | User: Unknown | Action: Login | Details: User admin logged in (static user) +Timestamp: 2025-11-12 15:51:35 | User: Unknown | Action: Logout | Details: User admin logged out +Timestamp: 2025-11-14 17:51:17 | User: Unknown | Action: Login | Details: +Timestamp: 2025-11-14 17:54:56 | User: Unknown | Action: Login | Details: +Timestamp: 2025-11-14 17:57:06 | User: Unknown | Action: Logout | Details: +Timestamp: 2025-11-14 17:57:11 | User: Unknown | Action: Login | Details: +Timestamp: 2025-11-14 18:14:25 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2025-11-14 19:38:45 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:38:45 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:38:45 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:38:45 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:38:46 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:38:46 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:38:46 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:38:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:38:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:38:50 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:38:51 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:38:52 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:38:54 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-14 19:43:35 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:35 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:35 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:35 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:35 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:36 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:37 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:37 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:37 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:37 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:37 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:37 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:37 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:37 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:38 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:43:39 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-14 19:44:24 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:44:24 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:44:24 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:44:24 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:44:30 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:44:30 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-14 19:44:32 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-15 13:13:57 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:13:57 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:13:57 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:13:57 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:13:59 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:28:01 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 13:29:05 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 13:29:24 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 13:30:12 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 13:33:03 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 13:33:37 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:33:37 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:33:38 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:33:38 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:33:40 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:33:41 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-15 13:33:48 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 13:34:55 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:34:55 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:34:56 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:34:56 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:34:56 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:34:58 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:34:58 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:34:59 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:35:00 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:35:02 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-15 13:35:08 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 13:35:26 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:35:27 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:35:27 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:35:29 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-15 13:35:34 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 13:36:43 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:36:43 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:36:43 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:36:45 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-15 13:36:52 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 13:39:35 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:39:35 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:39:36 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:39:36 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:39:38 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-15 13:39:46 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 13:44:28 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:44:28 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:44:28 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:44:28 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:44:29 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:44:29 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:44:29 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:44:30 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:44:30 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:44:30 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:44:31 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-15 13:44:42 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 13:46:23 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:46:23 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:46:23 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:46:25 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-15 13:46:59 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 13:47:38 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:47:38 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:47:39 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:47:40 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-15 13:47:45 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 13:48:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:48:55 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:48:55 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 13:48:56 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-15 13:49:02 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 16:09:12 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:12 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:13 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:16 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:16 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:17 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:17 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:29 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-15 16:09:35 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 16:09:51 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:51 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:51 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:51 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:51 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:51 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:55 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:55 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:56 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:56 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:56 | User: Unknown | Action: Check State | Details: +Timestamp: 2025-11-15 16:09:57 | User: Unknown | Action: Add State | Details: +Timestamp: 2025-11-15 16:10:08 | User: Unknown | Action: Delete State | Details: +Timestamp: 2025-11-15 16:18:38 | User: Unknown | Action: Edit State | Details: +Timestamp: 2025-11-15 16:18:53 | User: Unknown | Action: Edit State | Details: +Timestamp: 2025-11-15 16:43:27 | User: Unknown | Action: Edit State | Details: +Timestamp: 2025-11-15 18:42:45 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-15 18:42:49 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-15 18:42:49 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-15 18:42:49 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-15 18:42:49 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-15 18:42:50 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-15 18:42:52 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-15 18:42:55 | User: Unknown | Action: Add Block | Details: +Timestamp: 2025-11-16 10:50:37 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-16 10:51:40 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-16 10:52:00 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-16 10:52:06 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-16 10:52:07 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-16 10:52:08 | User: Unknown | Action: Add Block | Details: +Timestamp: 2025-11-16 10:52:22 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-16 10:59:26 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-16 11:13:51 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-16 11:18:30 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-16 11:18:44 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:18:44 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:18:44 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:18:44 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:18:44 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:18:45 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:18:45 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:18:46 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:18:49 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:18:49 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:18:50 | User: Unknown | Action: Add Village | Details: +Timestamp: 2025-11-16 11:21:31 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:21:31 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:21:31 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:21:33 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:21:33 | User: Unknown | Action: Add Village | Details: +Timestamp: 2025-11-16 11:24:16 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:24:16 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:24:16 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:24:16 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:24:18 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:24:18 | User: Unknown | Action: Add Village | Details: +Timestamp: 2025-11-16 11:26:44 | User: Unknown | Action: Add Village | Details: +Timestamp: 2025-11-16 11:27:23 | User: Unknown | Action: Add Village | Details: +Timestamp: 2025-11-16 11:27:34 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:27:34 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:27:35 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:27:35 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:27:36 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:27:36 | User: Unknown | Action: Add Village | Details: +Timestamp: 2025-11-16 11:28:04 | User: Unknown | Action: Add Village | Details: +Timestamp: 2025-11-16 11:29:03 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-16 11:32:07 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:32:07 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:32:07 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:32:08 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:32:08 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:32:08 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:32:08 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:32:09 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:32:09 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:32:09 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:32:09 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:32:11 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-16 11:32:11 | User: Unknown | Action: Add Village | Details: +Timestamp: 2025-11-16 11:44:09 | User: Unknown | Action: Check District | Details: +Timestamp: 2025-11-16 11:44:10 | User: Unknown | Action: Check District | Details: +Timestamp: 2025-11-16 11:44:10 | User: Unknown | Action: Check District | Details: +Timestamp: 2025-11-16 11:44:10 | User: Unknown | Action: Check District | Details: +Timestamp: 2025-11-16 11:44:13 | User: Unknown | Action: Check District | Details: +Timestamp: 2025-11-16 11:44:13 | User: Unknown | Action: Add Village | Details: +Timestamp: 2025-11-17 13:42:52 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-17 13:42:56 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:42:57 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:42:57 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:42:57 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:42:57 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:42:58 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:42:59 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:42:59 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:43:01 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:43:01 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:43:01 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:43:03 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:46:07 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:46:07 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:46:08 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:46:08 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:46:08 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:46:09 | User: Unknown | Action: Check Village | Details: +Timestamp: 2025-11-17 13:46:09 | User: Unknown | Action: Add 'Village' | Details: +Timestamp: 2025-11-17 22:37:38 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-17 22:37:42 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:37:42 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:37:42 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:37:43 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:37:43 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:37:43 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:37:44 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:37:44 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2025-11-17 22:37:53 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2025-11-17 22:38:29 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:38:30 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:38:30 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:38:32 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:38:32 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2025-11-17 22:38:56 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-17 22:39:08 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:39:09 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:39:09 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:39:10 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:39:10 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2025-11-17 22:42:02 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-17 22:42:10 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:42:10 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:42:11 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2025-11-17 22:42:15 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:42:15 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-17 22:42:17 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2025-11-18 00:47:33 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-18 00:47:39 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-18 00:47:39 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-18 00:47:39 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-18 00:47:40 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-18 00:47:42 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-18 00:47:42 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2025-11-18 00:48:49 | User: Unknown | Action: Get District | Details: +Timestamp: 2025-11-18 00:48:55 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-18 00:48:57 | User: Unknown | Action: Check Block | Details: +Timestamp: 2025-11-18 00:48:57 | User: Unknown | Action: Add 'Village' | Details: +Timestamp: 2025-11-18 09:58:53 | User: Unknown | Action: Login | Details: +Timestamp: 2026-02-27 10:58:49 | User: Unknown | Action: Login | Details: +Timestamp: 2026-02-27 10:59:11 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-02-27 10:59:13 | User: Unknown | Action: Add State | Details: +Timestamp: 2026-02-27 11:00:00 | User: Unknown | Action: Edit State | Details: +Timestamp: 2026-02-27 11:00:07 | User: Unknown | Action: Delete State | Details: +Timestamp: 2026-02-27 11:07:20 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:07:20 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:07:23 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:07:23 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:07:26 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:07:26 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:07:27 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:07:27 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:07:30 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:07:38 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:07:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-02-27 11:08:15 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:08:15 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:08:16 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:08:17 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:08:19 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:29:08 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:29:08 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:29:08 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:29:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:29:15 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:43:15 | User: Unknown | Action: Login | Details: +Timestamp: 2026-02-27 11:43:22 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:43:22 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:43:24 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:43:24 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:43:25 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:43:25 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:43:27 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 11:58:37 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-02-27 11:58:37 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-02-27 11:58:38 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-02-27 11:58:38 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-02-27 11:58:39 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-02-27 11:58:39 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-02-27 11:58:40 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-02-27 11:58:41 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-02-27 11:58:41 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-02-27 11:58:41 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-02-27 11:58:41 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-02-27 11:58:42 | User: Unknown | Action: Add State | Details: +Timestamp: 2026-02-27 11:58:54 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 11:58:55 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 11:58:55 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 11:58:55 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 11:59:02 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 11:59:02 | User: Unknown | Action: Add 'District' | Details: +Timestamp: 2026-02-27 12:08:09 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 12:09:51 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-02-27 12:23:18 | User: Unknown | Action: Login | Details: +Timestamp: 2026-02-27 12:32:10 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-02-27 12:32:17 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-02-27 12:32:20 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-02-27 12:32:27 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 12:32:27 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 12:32:27 | User: Unknown | Action: Add 'District' | Details: +Timestamp: 2026-02-27 12:32:33 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-02-27 12:32:48 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-02-27 12:32:53 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 12:32:53 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 12:32:54 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2026-02-27 12:34:57 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-02-27 12:35:00 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 12:35:00 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 12:35:00 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2026-02-27 12:35:14 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-02-27 12:35:20 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 12:35:20 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 12:35:21 | User: Unknown | Action: Add 'Village' | Details: +Timestamp: 2026-02-27 12:35:43 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 12:35:48 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 12:35:56 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 12:41:37 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 12:41:43 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 12:41:48 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 12:48:48 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 12:48:51 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 13:01:04 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 13:01:04 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 13:01:05 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 13:01:05 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 13:01:06 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 13:01:30 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 13:12:15 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 13:13:18 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 13:15:31 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 13:15:34 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 13:15:40 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 13:15:50 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 13:17:53 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 13:19:27 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 13:20:05 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 13:20:36 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-02-27 13:22:10 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-02-27 13:22:14 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 13:22:14 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 13:22:18 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 13:22:19 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 13:22:19 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 13:22:26 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 13:22:26 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 13:22:27 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 13:22:27 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 13:22:28 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 13:22:28 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 13:22:29 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 13:22:30 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2026-02-27 14:29:35 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-02-27 14:42:58 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-02-27 15:10:25 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-02-27 15:10:28 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 15:10:28 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 15:10:29 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2026-02-27 15:10:36 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-02-27 15:15:37 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-02-27 15:15:40 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-02-27 15:15:43 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 15:15:43 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-02-27 15:15:44 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2026-02-27 15:38:20 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 15:38:24 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 15:38:44 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 15:43:06 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 15:45:19 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 15:45:41 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-02-27 18:48:06 | User: Unknown | Action: Login | Details: +Timestamp: 2026-02-27 18:48:15 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 18:48:15 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 18:48:15 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 18:48:16 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 18:48:17 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 18:48:17 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 18:48:30 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 18:48:33 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:23:54 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:23:55 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:23:55 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:23:55 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:23:57 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:40:57 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:40:57 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:40:57 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:40:58 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:41:00 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:53:42 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:53:42 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:53:43 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 19:53:45 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:06:27 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:06:27 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:06:28 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:06:30 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:12:49 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:12:49 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:12:49 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:12:50 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:12:53 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:12:53 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:12:54 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:12:55 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:13:02 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:17:34 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:17:34 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:17:36 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:17:43 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:17:43 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:17:44 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:17:47 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:17:50 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:19:30 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:19:30 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:19:31 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:19:31 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:19:33 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:34:29 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:34:29 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:34:30 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:34:31 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:34:32 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:37:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:37:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:37:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:37:19 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:37:20 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:39:32 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:39:32 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:39:33 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:39:33 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:39:36 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:42:33 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:42:33 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:42:34 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:42:39 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:42:41 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:45:51 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:45:52 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:45:54 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:45:55 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:48:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:48:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:48:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:48:15 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:48:16 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:52:19 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:52:19 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:52:19 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:52:23 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:52:25 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:54:34 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:54:35 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:54:35 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:54:38 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 20:54:40 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:07:16 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:07:16 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:07:16 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:07:17 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:07:19 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:11:52 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:11:52 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:11:53 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:11:53 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:11:55 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:15:16 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:15:16 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:15:17 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:15:18 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:15:21 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:20:30 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:20:31 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:20:31 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:20:32 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:20:33 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:22:56 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:22:56 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:22:56 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:22:58 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 21:22:59 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:19:47 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:19:48 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:19:49 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:19:50 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:19:52 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:25:56 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:25:56 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:25:56 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:25:58 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:25:59 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:32:08 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:32:08 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:32:09 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:32:11 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:35:10 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:35:12 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:35:12 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:35:13 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:35:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:38:55 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:38:55 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:38:55 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:39:00 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:39:01 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:42:22 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:42:22 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:42:22 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:42:25 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:42:26 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:48:04 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:48:04 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:48:05 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:48:05 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:48:07 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:50:57 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:50:57 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:50:57 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:50:58 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:50:59 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:55:56 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:55:57 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:55:57 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:55:57 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:55:59 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:59:11 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:59:11 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:59:11 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:59:12 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 22:59:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:08:36 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:08:36 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:08:36 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:08:37 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:08:38 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:20:21 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:20:21 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:20:22 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:20:25 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:20:27 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:27:07 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:27:07 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:27:08 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:27:11 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:27:13 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:33:04 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:33:04 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:33:04 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:33:05 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:33:07 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:35:28 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:35:29 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:35:30 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:35:31 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:35:32 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:38:03 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:38:04 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:38:04 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:38:05 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:38:06 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:43:21 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:43:21 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:43:22 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:43:23 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:43:26 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:47:36 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:47:37 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:47:40 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:47:41 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:47:41 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:47:41 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:47:44 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:50:51 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:50:51 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:50:52 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:50:52 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:50:54 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:54:28 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:54:31 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:54:32 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:54:33 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:54:33 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-27 23:54:34 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:01:34 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:01:34 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:01:35 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:01:38 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:01:38 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:01:40 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:11:32 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:11:32 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:11:32 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:11:33 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:11:35 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:14:45 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:14:46 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:14:48 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:14:49 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:14:50 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:32:49 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:32:49 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:32:49 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:32:50 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:32:52 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:43:29 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:43:29 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:43:29 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:43:29 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:43:31 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:48:13 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:48:13 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:48:13 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:48:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:48:16 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:54:43 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:54:43 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:54:43 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:54:44 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:54:45 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 00:54:45 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:07:19 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:07:19 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:07:20 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:07:21 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:07:23 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:09:28 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:09:28 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:09:28 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:09:29 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:09:32 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:35:50 | User: Unknown | Action: Login | Details: +Timestamp: 2026-02-28 01:36:03 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:36:03 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:36:03 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:36:04 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-02-28 01:36:06 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 11:08:01 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-02 11:08:16 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-02 11:08:20 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:08:20 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:08:20 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:08:20 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:18:39 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-02 11:18:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:21:24 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-02 11:21:28 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:27 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:29:30 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 11:43:27 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 11:43:27 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 11:43:28 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 11:43:37 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 11:43:53 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 11:44:32 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 11:46:40 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:20:58 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:21:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:43:31 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:43:31 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:43:32 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:43:32 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:43:33 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:48:16 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-02 12:48:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:48:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:48:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:48:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:48:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:48:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:48:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:48:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:48:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 12:48:28 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:48:29 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:48:31 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:49:10 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:49:12 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:59:35 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:59:35 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:59:35 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 12:59:36 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:01:53 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:01:53 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:01:53 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:01:54 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:04:29 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:04:29 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:04:29 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:04:31 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:05:51 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:05:52 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:05:52 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:05:53 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:07:26 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:07:27 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:13:16 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:13:16 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:13:17 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:27:00 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:27:00 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:27:02 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:31:23 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:31:24 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:31:24 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 13:31:25 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:26:19 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:26:20 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:26:20 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:26:21 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:34:40 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:34:41 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:34:41 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:34:42 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:35:48 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:35:49 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:35:50 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:40:57 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-02 14:41:29 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:09 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:10 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 14:42:27 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:42:28 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:42:36 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 14:59:59 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:07 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-02 15:00:39 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-02 15:02:23 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 15:02:24 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 15:02:33 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 15:21:32 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-02 15:22:29 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-02 15:44:37 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-02 15:44:49 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-02 15:44:53 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-02 15:44:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-02 15:44:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-02 15:44:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-02 15:44:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-02 15:44:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-02 15:44:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-02 15:44:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-02 15:44:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-02 15:44:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-02 15:45:09 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:12 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:12 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:12 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:12 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:13 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:14 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:14 | User: Unknown | Action: Add 'District' | Details: +Timestamp: 2026-03-02 15:45:20 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-03-02 15:45:24 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:24 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:25 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:25 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:27 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:27 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2026-03-02 15:45:34 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-03-02 15:45:43 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:43 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-02 15:45:44 | User: Unknown | Action: Add 'Village' | Details: +Timestamp: 2026-03-02 15:46:52 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-02 15:48:08 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-02 15:50:33 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 15:50:34 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 15:50:34 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 15:50:36 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 16:08:43 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-02 16:12:06 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-02 16:13:18 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-02 16:13:51 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-02 16:46:07 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-02 17:03:42 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-02 17:05:08 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-02 17:06:21 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-02 17:10:00 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-02 17:11:55 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-02 17:12:36 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-02 17:17:14 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-02 17:17:36 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-02 17:18:21 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-02 17:19:21 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-02 17:23:41 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-02 17:24:36 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-02 17:28:35 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-02 17:29:32 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-02 17:30:25 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-02 17:33:02 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-02 17:33:38 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-02 17:34:31 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-02 17:35:30 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-02 17:36:13 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-02 17:36:22 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-02 17:38:17 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-02 17:39:18 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-02 17:39:49 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-02 17:40:19 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-02 17:41:16 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-02 17:43:01 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-02 17:43:10 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:43:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:44:02 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:44:02 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:44:02 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:44:02 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:44:04 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:44:24 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-02 17:44:35 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:44:35 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:44:36 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:44:37 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:44:55 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-02 17:44:57 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-02 17:45:01 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:45:01 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:45:02 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:46:21 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-02 17:47:18 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-02 17:47:35 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:47:35 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:47:36 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:47:36 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:47:39 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:47:39 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-02 17:47:41 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 00:20:07 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-04 00:20:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 00:20:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 00:20:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 00:20:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 00:20:18 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 00:31:29 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-04 00:32:35 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-04 00:35:07 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-04 00:35:15 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-04 00:35:20 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-04 00:37:20 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-04 00:38:02 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 00:40:42 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 00:41:20 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 00:41:33 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 00:42:37 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-04 00:44:04 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 00:48:47 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-04 00:49:35 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-04 00:50:11 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-04 00:50:50 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 00:54:54 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:04:14 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:04:37 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:11:57 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:13:30 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:13:37 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:13:44 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:13:51 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:14:09 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:14:39 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:14:59 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:15:06 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:16:17 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:16:22 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:16:28 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:17:56 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 01:24:46 | User: Unknown | Action: Edit gst_release | Details: +Timestamp: 2026-03-04 01:35:30 | User: Unknown | Action: Add gst_release | Details: +Timestamp: 2026-03-04 01:36:20 | User: Unknown | Action: Add gst_release | Details: +Timestamp: 2026-03-04 01:37:32 | User: Unknown | Action: Add gst_release | Details: +Timestamp: 2026-03-04 01:39:16 | User: Unknown | Action: Add gst_release | Details: +Timestamp: 2026-03-04 01:41:38 | User: Unknown | Action: Add gst_release | Details: +Timestamp: 2026-03-04 01:42:46 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 01:42:46 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 01:42:46 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 01:42:48 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 01:45:17 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 01:45:18 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 01:45:18 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 01:45:19 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:05:19 | User: Unknown | Action: Add gst_release | Details: +Timestamp: 2026-03-04 02:06:56 | User: Unknown | Action: Add gst_release | Details: +Timestamp: 2026-03-04 02:07:00 | User: Unknown | Action: Add gst_release | Details: +Timestamp: 2026-03-04 02:07:16 | User: Unknown | Action: delete gst_release | Details: +Timestamp: 2026-03-04 02:07:24 | User: Unknown | Action: delete gst_release | Details: +Timestamp: 2026-03-04 02:10:23 | User: Unknown | Action: Add gst_release | Details: +Timestamp: 2026-03-04 02:11:05 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:11:05 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:11:06 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:11:06 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:11:06 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:11:06 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:11:08 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:11:08 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:11:13 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:11:14 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:11:15 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:14:30 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:14:30 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:14:30 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:14:31 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:21:46 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:21:46 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 02:21:47 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-04 18:39:27 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-04 18:39:34 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-04 18:39:50 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-04 18:43:24 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-04 18:43:48 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-03-04 18:43:54 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-04 18:43:54 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-04 18:43:55 | User: Unknown | Action: Add 'Village' | Details: +Timestamp: 2026-03-04 18:44:02 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-04 18:44:47 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-04 18:46:35 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-04 18:46:44 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-04 18:47:23 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-04 18:48:27 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-04 18:48:43 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 18:51:59 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-04 18:52:13 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-03-04 18:52:20 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-04 18:52:20 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-04 18:52:21 | User: Unknown | Action: Add 'Village' | Details: +Timestamp: 2026-03-04 18:52:31 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-04 18:53:10 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-04 18:53:37 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-04 18:53:49 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-04 19:01:04 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-04 19:14:36 | User: Unknown | Action: Get District | Details: +Timestamp: 2026-03-04 19:14:41 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-04 19:14:41 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-04 19:14:42 | User: Unknown | Action: Add 'Village' | Details: +Timestamp: 2026-03-04 19:15:08 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-04 19:15:56 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-04 19:16:27 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-04 19:23:58 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-04 19:24:31 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-04 19:25:30 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-04 19:28:00 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-04 19:28:29 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-04 19:30:39 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-04 19:30:51 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-04 19:31:48 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-04 19:32:16 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-04 19:33:06 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-04 19:51:46 | User: Unknown | Action: Add gst_release | Details: +Timestamp: 2026-03-04 21:44:52 | User: Unknown | Action: Edit gst_release | Details: +Timestamp: 2026-03-04 21:44:57 | User: Unknown | Action: Edit gst_release | Details: +Timestamp: 2026-03-04 21:46:50 | User: Unknown | Action: Edit gst_release | Details: +Timestamp: 2026-03-04 21:46:54 | User: Unknown | Action: Edit gst_release | Details: +Timestamp: 2026-03-04 21:47:04 | User: Unknown | Action: Edit gst_release | Details: +Timestamp: 2026-03-04 21:49:14 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-04 21:49:26 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-13 15:13:40 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-13 15:16:07 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:14 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:16:23 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:16:23 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:16:23 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:16:25 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:16:26 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:17:23 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:36 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:17:50 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:17:50 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:17:52 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:17:55 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:17:56 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:28:09 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-13 15:28:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:28:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:28:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-13 15:28:20 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:28:20 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:28:21 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:28:23 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-13 15:28:24 | User: Unknown | Action: Search contractor | Details: +Timestamp: 2026-03-14 16:31:44 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-14 16:51:26 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-14 17:08:11 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-14 17:24:44 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:45 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:45 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:45 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:45 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:46 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:47 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:47 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:47 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:50 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:52 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:52 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:53 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:53 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:53 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:53 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:53 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:54 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:58 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:59 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:59 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:24:59 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:25:00 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:25:01 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:25:01 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:25:10 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:25:11 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:25:11 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:25:14 | User: Unknown | Action: Add State | Details: +Timestamp: 2026-03-14 17:25:23 | User: Unknown | Action: Edit State | Details: +Timestamp: 2026-03-14 17:25:37 | User: Unknown | Action: Delete State | Details: +Timestamp: 2026-03-14 17:25:57 | User: Unknown | Action: Edit State | Details: +Timestamp: 2026-03-14 17:34:51 | User: Unknown | Action: Edit State | Details: +Timestamp: 2026-03-14 17:34:58 | User: Unknown | Action: Edit State | Details: +Timestamp: 2026-03-14 17:35:04 | User: Unknown | Action: Delete State | Details: +Timestamp: 2026-03-14 17:35:07 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:35:08 | User: Unknown | Action: Add State | Details: +Timestamp: 2026-03-14 17:35:22 | User: Unknown | Action: Delete State | Details: +Timestamp: 2026-03-14 17:35:34 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 17:35:35 | User: Unknown | Action: Add State | Details: +Timestamp: 2026-03-14 18:05:02 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 18:05:09 | User: Unknown | Action: Edit State | Details: +Timestamp: 2026-03-14 18:05:14 | User: Unknown | Action: Delete State | Details: +Timestamp: 2026-03-14 18:05:18 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-14 18:05:19 | User: Unknown | Action: Add State | Details: +Timestamp: 2026-03-14 18:05:33 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:05:33 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:05:35 | User: Unknown | Action: Add 'District' | Details: +Timestamp: 2026-03-14 18:05:47 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-03-14 18:05:53 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-03-14 18:06:26 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:06:26 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:06:27 | User: Unknown | Action: Add 'District' | Details: +Timestamp: 2026-03-14 18:07:49 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:07:49 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:07:50 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2026-03-14 18:21:58 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:21:58 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:22:01 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:22:02 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:22:02 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:22:02 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:22:02 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:22:02 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:22:03 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:22:03 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:22:03 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:22:04 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-14 18:22:05 | User: Unknown | Action: Add 'District' | Details: +Timestamp: 2026-03-14 18:22:15 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-03-14 18:22:22 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-03-14 18:22:27 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-03-16 10:10:24 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-16 10:16:08 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-16 10:16:08 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-16 10:16:09 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2026-03-16 10:16:23 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-03-16 10:16:33 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-03-16 10:16:38 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-03-16 10:35:02 | User: Unknown | Action: Add 'Village' | Details: +Timestamp: 2026-03-16 10:40:17 | User: Unknown | Action: Add 'Village' | Details: +Timestamp: 2026-03-16 10:47:05 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-16 10:47:05 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-16 10:47:06 | User: Unknown | Action: Add 'Village' | Details: +Timestamp: 2026-03-16 11:00:45 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-03-16 11:00:50 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-03-16 11:01:47 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-16 12:09:07 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 12:09:23 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 12:15:18 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-16 12:15:18 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-16 12:15:20 | User: Unknown | Action: Add 'Village' | Details: +Timestamp: 2026-03-16 12:15:28 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 12:16:19 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-16 12:19:15 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 12:19:35 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 12:26:54 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 12:27:24 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 12:27:31 | User: Unknown | Action: Delete Invoice | Details: +Timestamp: 2026-03-16 12:27:42 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 12:29:22 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-16 12:36:35 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-16 12:37:09 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-16 12:37:15 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 13:56:41 | User: Unknown | Action: Add Subcontractor | Details: +Timestamp: 2026-03-16 13:57:02 | User: Unknown | Action: Edit Subcontractor | Details: +Timestamp: 2026-03-16 13:57:41 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 13:58:15 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 14:59:33 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-16 15:00:01 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-16 15:00:01 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-16 15:00:14 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-16 15:00:14 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-16 15:00:15 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2026-03-16 15:00:30 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-16 15:00:30 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-16 15:00:31 | User: Unknown | Action: Add 'Village' | Details: +Timestamp: 2026-03-16 15:01:01 | User: Unknown | Action: Add Subcontractor | Details: +Timestamp: 2026-03-16 15:01:12 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 15:02:06 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-16 15:02:08 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 15:03:23 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-16 15:27:46 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-16 15:27:52 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-16 15:35:55 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-16 15:36:49 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 15:36:54 | User: Unknown | Action: Delete Invoice | Details: +Timestamp: 2026-03-16 15:36:59 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 15:42:35 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 15:43:01 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-16 15:43:03 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-16 15:43:35 | User: Unknown | Action: Add GST Release | Details: +Timestamp: 2026-03-16 15:46:56 | User: Unknown | Action: Edit GST Release | Details: +Timestamp: 2026-03-16 15:47:17 | User: Unknown | Action: Delete GST Release | Details: +Timestamp: 2026-03-16 16:32:59 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-16 16:33:14 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-16 16:33:54 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-16 16:33:59 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:33:59 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:33:59 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:33:59 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:33:59 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:33:59 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:33:59 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:33:59 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:33:59 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:33:59 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:33:59 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:34:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:39:40 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-16 16:43:24 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-16 16:43:29 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:43:29 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:43:29 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:43:29 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:43:29 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:43:29 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:43:29 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:43:29 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:43:29 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:43:29 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:43:29 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:43:35 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 16:57:54 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-16 17:22:48 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 17:22:52 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 17:23:05 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-16 17:23:08 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 17:26:45 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-16 17:38:02 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 17:38:04 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 17:39:42 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 17:47:44 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-16 18:14:18 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-16 18:19:25 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-16 18:25:48 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-16 18:26:45 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-16 18:29:04 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-17 10:58:06 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-17 10:58:15 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:16 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:08:24 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 11:09:13 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-17 11:25:26 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:31 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:43 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:45 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:45 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:46 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:47 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:48 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:48 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:50 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:50 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:52 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:52 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:54 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:55 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:25:56 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:01 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:01 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:05 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:06 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:06 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:07 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:07 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:07 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:13 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:13 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:16 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:16 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:18 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:24 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:24 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:26 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:26 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:29 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:29 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:30 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:30 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:26:30 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:27:38 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:27:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:27:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:27:43 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:50:12 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:50:12 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:50:14 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:52:21 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:52:22 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 11:52:23 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:13:36 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:13:36 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:13:38 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:31:06 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:31:06 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:31:09 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:55:27 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:55:27 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:55:28 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:55:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:55:45 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:55:47 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:59:34 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:59:34 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 12:59:36 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 13:06:38 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 13:06:39 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 13:06:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 13:14:03 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 13:14:03 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 13:14:04 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 13:14:05 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 13:14:12 | User: Unknown | Action: Download PMC Report | Details: +Timestamp: 2026-03-17 14:32:31 | User: Unknown | Action: Delete Hold Type | Details: +Timestamp: 2026-03-17 15:04:02 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-17 15:04:10 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:04:10 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:04:12 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:07:10 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:07:11 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:07:12 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:07:12 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:07:14 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:07:36 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-17 15:07:39 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:13 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-17 15:11:15 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:11:17 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:11:28 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:31 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:32 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:32 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:32 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:32 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:32 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-17 15:11:36 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:11:36 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:11:38 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:14:10 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:14:10 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:14:11 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:24:20 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:24:20 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:24:20 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:27:23 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:23 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:24 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:24 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:25 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:25 | User: Unknown | Action: Add 'District' | Details: +Timestamp: 2026-03-17 15:27:35 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:36 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:36 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:36 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:37 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:37 | User: Unknown | Action: Add 'Block' | Details: +Timestamp: 2026-03-17 15:27:50 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:50 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:51 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:51 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:51 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-17 15:27:51 | User: Unknown | Action: Add 'Village' | Details: +Timestamp: 2026-03-17 15:28:36 | User: Unknown | Action: Add Subcontractor | Details: +Timestamp: 2026-03-17 15:28:40 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-17 15:29:18 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-17 15:29:21 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-17 15:29:27 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-17 15:29:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:29:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:29:45 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:33:42 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-03-17 15:33:50 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-03-17 15:33:51 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-03-17 15:33:53 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-03-17 15:33:55 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-03-17 15:34:03 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-03-17 15:34:09 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-03-17 15:34:12 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-03-17 15:34:40 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-03-17 15:34:43 | User: Unknown | Action: Edit District | Details: +Timestamp: 2026-03-17 15:34:54 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-03-17 15:35:01 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-03-17 15:35:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:35:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:35:42 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:40:06 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:40:06 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-17 15:40:07 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-18 11:06:03 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-18 11:06:03 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-18 11:06:08 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-18 17:47:20 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-18 17:47:20 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-18 17:47:20 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-18 17:47:21 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-18 17:47:21 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-18 17:47:23 | User: Unknown | Action: Add State | Details: +Timestamp: 2026-03-18 17:47:30 | User: Unknown | Action: Check Item | Details: +Timestamp: 2026-03-18 17:47:31 | User: Unknown | Action: Check Item | Details: +Timestamp: 2026-03-18 17:47:31 | User: Unknown | Action: Check Item | Details: +Timestamp: 2026-03-18 17:47:31 | User: Unknown | Action: Check Item | Details: +Timestamp: 2026-03-18 17:47:31 | User: Unknown | Action: Check Item | Details: +Timestamp: 2026-03-18 17:47:32 | User: Unknown | Action: Check Item | Details: +Timestamp: 2026-03-18 17:47:32 | User: Unknown | Action: Add Item | Details: +Timestamp: 2026-03-18 17:47:40 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-18 17:47:40 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-18 17:47:40 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-18 17:47:40 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-18 17:47:40 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-18 17:47:41 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-18 17:47:42 | User: Unknown | Action: Add Block | Details: +Timestamp: 2026-03-18 17:47:50 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-18 17:47:50 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-18 17:47:50 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-18 17:47:50 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-18 17:47:50 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-18 17:47:51 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-18 17:47:51 | User: Unknown | Action: Add Village | Details: +Timestamp: 2026-03-18 18:10:38 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:10:40 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:10:41 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:10:41 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:10:45 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:10:45 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:10:45 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:10:45 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:10:49 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:10:50 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:11:07 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:11:07 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:11:07 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:13:01 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-18 18:14:59 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-20 15:28:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-20 15:28:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-20 15:28:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-20 15:28:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-20 15:28:50 | User: Unknown | Action: Add State | Details: +Timestamp: 2026-03-20 15:29:03 | User: Unknown | Action: Edit State | Details: +Timestamp: 2026-03-20 15:29:10 | User: Unknown | Action: Delete State | Details: +Timestamp: 2026-03-20 15:54:10 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-20 15:54:34 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:38 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 15:54:49 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 15:54:49 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 15:54:49 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 15:54:51 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 16:02:57 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-20 16:02:59 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-20 16:03:26 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-20 16:03:26 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-20 16:03:27 | User: Unknown | Action: Add Village | Details: +Timestamp: 2026-03-20 16:03:56 | User: Unknown | Action: Add Subcontractor | Details: +Timestamp: 2026-03-20 16:04:05 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-20 16:05:09 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-20 16:13:43 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-20 16:29:34 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-20 16:29:37 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-20 16:30:45 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-20 16:31:08 | User: Unknown | Action: Add Subcontractor | Details: +Timestamp: 2026-03-20 16:31:15 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-20 16:31:34 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-20 16:31:37 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-20 16:31:37 | User: Unknown | Action: Add Village | Details: +Timestamp: 2026-03-20 16:31:44 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-20 16:32:26 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-20 16:32:28 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-20 16:33:12 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-20 16:39:53 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-20 16:43:25 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-20 16:44:02 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-20 16:48:00 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-20 16:53:47 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-20 16:58:22 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-20 16:58:35 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-20 17:00:42 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-20 17:00:53 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-20 17:02:08 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-20 17:02:14 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-20 17:13:50 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:13:53 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:30:27 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-20 17:33:14 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-20 17:33:34 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:33:37 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:40:01 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-20 17:42:08 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-20 17:51:11 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:51:15 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:08 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-20 17:53:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:12 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 17:53:13 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-20 18:02:56 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 18:02:57 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 18:02:59 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 18:25:56 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 18:25:56 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 18:25:58 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 22:09:59 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-20 22:10:06 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 22:10:07 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 22:10:09 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 22:10:18 | User: Unknown | Action: Download PMC Report | Details: +Timestamp: 2026-03-20 22:14:46 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 22:14:46 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 22:14:47 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 22:14:49 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 22:15:02 | User: Unknown | Action: Download PMC Report | Details: +Timestamp: 2026-03-20 22:15:46 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 22:15:46 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 22:15:48 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-20 22:15:55 | User: Unknown | Action: Download PMC Report | Details: +Timestamp: 2026-03-20 22:16:15 | User: Unknown | Action: Download PMC Report | Details: +Timestamp: 2026-03-20 22:16:46 | User: Unknown | Action: Download PMC Report | Details: +Timestamp: 2026-03-21 12:18:15 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-21 12:26:48 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-21 12:37:59 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-21 15:04:29 | User: Unknown | Action: Logout | Details: +Timestamp: 2026-03-21 15:27:44 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-21 15:27:54 | User: Unknown | Action: Logout | Details: +Timestamp: 2026-03-21 15:28:01 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-21 16:38:40 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:38:40 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:38:40 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:38:41 | User: Unknown | Action: Add State | Details: +Timestamp: 2026-03-21 16:38:49 | User: Unknown | Action: Edit State | Details: +Timestamp: 2026-03-21 16:38:54 | User: Unknown | Action: Delete State | Details: +Timestamp: 2026-03-21 16:39:13 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:39:13 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:39:25 | User: Unknown | Action: Check Item | Details: +Timestamp: 2026-03-21 16:39:25 | User: Unknown | Action: Check Item | Details: +Timestamp: 2026-03-21 16:39:25 | User: Unknown | Action: Check Item | Details: +Timestamp: 2026-03-21 16:39:26 | User: Unknown | Action: Check Item | Details: +Timestamp: 2026-03-21 16:39:26 | User: Unknown | Action: Check Item | Details: +Timestamp: 2026-03-21 16:39:28 | User: Unknown | Action: Check Item | Details: +Timestamp: 2026-03-21 16:39:28 | User: Unknown | Action: Add Item | Details: +Timestamp: 2026-03-21 16:39:40 | User: Unknown | Action: Edit Item | Details: +Timestamp: 2026-03-21 16:39:47 | User: Unknown | Action: Delete Item | Details: +Timestamp: 2026-03-21 16:40:12 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-21 16:40:12 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-21 16:40:14 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-21 16:40:14 | User: Unknown | Action: Add Block | Details: +Timestamp: 2026-03-21 16:40:25 | User: Unknown | Action: Edit Block | Details: +Timestamp: 2026-03-21 16:40:39 | User: Unknown | Action: Delete Block | Details: +Timestamp: 2026-03-21 16:40:56 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-21 16:40:56 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-21 16:40:57 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-21 16:40:58 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-21 16:40:58 | User: Unknown | Action: Add Village | Details: +Timestamp: 2026-03-21 16:41:10 | User: Unknown | Action: Edit Village | Details: +Timestamp: 2026-03-21 16:41:42 | User: Unknown | Action: Edit Village | Details: +Timestamp: 2026-03-21 16:52:28 | User: Unknown | Action: Edit Village | Details: +Timestamp: 2026-03-21 16:52:37 | User: Unknown | Action: Edit Village | Details: +Timestamp: 2026-03-21 16:52:44 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-03-21 16:56:09 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-03-21 16:56:17 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-03-21 16:56:46 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:56:46 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:56:46 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:56:46 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:56:47 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:56:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:56:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:56:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:56:48 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:56:49 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:56:50 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:56:50 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-21 16:56:50 | User: Unknown | Action: Add State | Details: +Timestamp: 2026-03-21 16:56:59 | User: Unknown | Action: Edit State | Details: +Timestamp: 2026-03-21 16:57:08 | User: Unknown | Action: Delete State | Details: +Timestamp: 2026-03-21 16:57:22 | User: Unknown | Action: Check Item | Details: +Timestamp: 2026-03-21 16:57:24 | User: Unknown | Action: Add Item | Details: +Timestamp: 2026-03-21 16:57:35 | User: Unknown | Action: Edit Item | Details: +Timestamp: 2026-03-21 16:57:42 | User: Unknown | Action: Delete Item | Details: +Timestamp: 2026-03-21 16:58:02 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-21 16:58:03 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-21 16:58:03 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-21 16:58:05 | User: Unknown | Action: Check Block | Details: +Timestamp: 2026-03-21 16:58:05 | User: Unknown | Action: Add Block | Details: +Timestamp: 2026-03-21 16:58:20 | User: Unknown | Action: Edit Block | Details: +Timestamp: 2026-03-21 16:58:30 | User: Unknown | Action: Delete Block | Details: +Timestamp: 2026-03-21 16:58:57 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-21 16:58:57 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-21 16:58:58 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-21 16:58:58 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-21 16:59:00 | User: Unknown | Action: Check Village | Details: +Timestamp: 2026-03-21 16:59:00 | User: Unknown | Action: Add Village | Details: +Timestamp: 2026-03-21 16:59:10 | User: Unknown | Action: Edit Village | Details: +Timestamp: 2026-03-21 16:59:15 | User: Unknown | Action: Delete Village | Details: +Timestamp: 2026-03-21 17:00:22 | User: Unknown | Action: Add Subcontractor | Details: +Timestamp: 2026-03-21 17:00:31 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-21 17:01:22 | User: Unknown | Action: Add invoice | Details: +Timestamp: 2026-03-21 17:01:24 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-21 17:02:51 | User: Unknown | Action: Edit invoice | Details: +Timestamp: 2026-03-21 17:03:41 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-21 17:04:01 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-21 17:04:43 | User: Unknown | Action: Add GST Release | Details: +Timestamp: 2026-03-21 17:05:11 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-21 17:05:18 | User: Unknown | Action: Add Hold Type | Details: +Timestamp: 2026-03-21 17:09:22 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:25 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 17:09:36 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:09:36 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:09:37 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:09:39 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:19:07 | User: Unknown | Action: Download PMC Report | Details: +Timestamp: 2026-03-21 17:23:07 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:23:08 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:23:10 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:24:38 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-21 17:24:43 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:24:45 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:34:13 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:34:13 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:34:15 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:39:16 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:39:17 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:39:17 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:39:19 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:42:00 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 17:42:02 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:21:01 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-21 18:23:21 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-21 18:26:56 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-21 18:26:58 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:27:20 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-21 18:27:21 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:27:21 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:27:21 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:27:21 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:27:21 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:27:21 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:27:21 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:27:21 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:27:21 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:27:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:27:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:27:45 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:27:46 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:30:17 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-21 18:30:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:30:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:30:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:30:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:30:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:30:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:30:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:30:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:30:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:30:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:30:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:30:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:30:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:30:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:30:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:30:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:31:07 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:11 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-21 18:31:17 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:31:17 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:31:17 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:31:17 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-21 18:31:20 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 12:25:56 | User: Unknown | Action: Add Subcontractor | Details: +Timestamp: 2026-03-22 12:27:17 | User: Unknown | Action: Edit Subcontractor | Details: +Timestamp: 2026-03-22 12:27:31 | User: Unknown | Action: Add Subcontractor | Details: +Timestamp: 2026-03-22 12:27:39 | User: Unknown | Action: Edit Subcontractor | Details: +Timestamp: 2026-03-22 12:32:18 | User: Unknown | Action: Edit Subcontractor | Details: +Timestamp: 2026-03-22 12:33:19 | User: Unknown | Action: Add Subcontractor | Details: +Timestamp: 2026-03-22 12:33:40 | User: Unknown | Action: Edit Subcontractor | Details: +Timestamp: 2026-03-22 12:40:57 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-22 12:40:58 | User: Unknown | Action: Add State | Details: +Timestamp: 2026-03-22 12:42:22 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-22 12:42:23 | User: Unknown | Action: Add State | Details: +Timestamp: 2026-03-22 12:42:28 | User: Unknown | Action: Edit State | Details: +Timestamp: 2026-03-22 12:42:37 | User: Unknown | Action: Edit State | Details: +Timestamp: 2026-03-22 12:42:42 | User: Unknown | Action: Delete State | Details: +Timestamp: 2026-03-22 12:45:49 | User: Unknown | Action: Add Payment | Details: +Timestamp: 2026-03-22 12:46:08 | User: Unknown | Action: Edit Payment | Details: +Timestamp: 2026-03-22 12:46:14 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-22 13:00:54 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-22 13:16:59 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-22 13:17:00 | User: Unknown | Action: Add State | Details: +Timestamp: 2026-03-22 13:17:08 | User: Unknown | Action: Edit State | Details: +Timestamp: 2026-03-22 13:17:12 | User: Unknown | Action: Delete State | Details: +Timestamp: 2026-03-22 13:17:16 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-22 13:17:16 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-22 13:17:17 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-22 13:17:17 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-22 13:17:17 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-22 13:17:17 | User: Unknown | Action: Check State | Details: +Timestamp: 2026-03-22 13:17:34 | User: Unknown | Action: Add Subcontractor | Details: +Timestamp: 2026-03-22 13:17:43 | User: Unknown | Action: Edit Subcontractor | Details: +Timestamp: 2026-03-22 13:18:07 | User: Unknown | Action: Edit Subcontractor | Details: +Timestamp: 2026-03-22 14:41:43 | User: Unknown | Action: Login | Details: +Timestamp: 2026-03-22 14:41:52 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:41:53 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:32 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:32 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:33 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:33 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:33 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:33 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:34 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:34 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:34 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:34 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:34 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:34 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:35 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:35 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:35 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:35 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:35 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:36 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:36 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:37 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:37 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:38 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:38 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:38 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:39 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:39 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:39 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:42 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:42 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:42 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:42 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:43 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:43 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:43 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:43 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:43 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:45 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:45 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:45 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:45 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:45 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:46 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:46 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:55 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:55 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:57 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:43:57 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:44:18 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-22 14:44:26 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:44:26 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:44:26 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:44:27 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:44:27 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:44:27 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:44:27 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:44:41 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:44:51 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:12 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-22 14:46:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:18 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:19 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 14:46:29 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:29 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:31 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:31 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:31 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:31 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:34 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:34 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:35 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:35 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:35 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:35 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:35 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:35 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:37 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:38 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:39 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:39 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:39 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:46:43 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 14:47:00 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-22 15:43:40 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:41 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:42 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:42 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:42 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:42 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:42 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:43 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:43 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:43 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:44 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:45 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:43:47 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:44:25 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-22 15:46:11 | User: Unknown | Action: Delete Payment | Details: +Timestamp: 2026-03-22 15:46:49 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:46:49 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:46:50 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:47:09 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:47:09 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:47:09 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:52:16 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:52:18 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:55:27 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:55:27 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:55:27 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:55:29 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:55:31 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:55:32 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:55:33 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:49 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:50 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:50 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:51 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:51 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:51 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:51 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:52 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:52 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:52 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:52 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:52 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:52 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:53 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:53 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:53 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:53 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:53 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:53 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:53 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:53 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:53 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:53 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:54 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:57:54 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:58:07 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:58:08 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:58:08 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:58:10 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:58:10 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:58:10 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:58:10 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:58:12 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 15:58:12 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 16:11:47 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 16:11:48 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 16:25:22 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-22 16:26:30 | User: Unknown | Action: Get hold type | Details: +Timestamp: 2026-03-22 16:27:56 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 16:27:57 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 17:12:59 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 17:13:00 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 17:32:37 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 17:32:39 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 17:49:52 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 17:49:56 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 17:52:53 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 17:52:55 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 18:04:04 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 18:04:09 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 18:04:15 | User: Unknown | Action: Download PMC Report | Details: +Timestamp: 2026-03-22 18:07:07 | User: Unknown | Action: Download PMC Report | Details: +Timestamp: 2026-03-22 18:11:40 | User: Unknown | Action: Download PMC Report | Details: +Timestamp: 2026-03-22 18:15:29 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 18:15:31 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 18:15:37 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 18:15:38 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 18:15:41 | User: Unknown | Action: Download PMC Report | Details: +Timestamp: 2026-03-22 18:18:47 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 18:18:48 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 18:30:11 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 18:30:14 | User: Unknown | Action: Search Contractor | Details: +Timestamp: 2026-03-22 18:34:50 | User: Unknown | Action: Download PMC Report | Details: +Timestamp: 2026-03-22 18:52:52 | User: Unknown | Action: Upload Excel File | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: +Timestamp: 2026-03-22 18:52:55 | User: Unknown | Action: Data saved | Details: diff --git a/v-2/app.log b/v-2/app.log new file mode 100644 index 0000000..e126126 --- /dev/null +++ b/v-2/app.log @@ -0,0 +1,114 @@ +2025-02-15 11:07:16,100 - INFO - Logging is set up. +2025-02-15 11:07:16,100 - INFO - Logging is set up. +2025-02-15 11:07:16,131 - WARNING - * Debugger is active! +2025-02-15 11:07:16,131 - WARNING - * Debugger is active! +2025-02-15 11:07:16,137 - INFO - * Debugger PIN: 558-213-972 +2025-02-15 11:07:16,137 - INFO - * Debugger PIN: 558-213-972 +2025-02-15 11:13:26,290 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:26] "GET / HTTP/1.1" 200 - +2025-02-15 11:13:26,290 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:26] "GET / HTTP/1.1" 200 - +2025-02-15 11:13:26,315 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:26] "GET /static/css/index.css HTTP/1.1" 304 - +2025-02-15 11:13:26,315 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:26] "GET /static/css/index.css HTTP/1.1" 304 - +2025-02-15 11:13:26,504 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:26] "GET /static/css/style.css HTTP/1.1" 304 - +2025-02-15 11:13:26,504 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:26] "GET /static/css/style.css HTTP/1.1" 304 - +2025-02-15 11:13:26,626 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:26] "GET /static/js/validateFileInput.js HTTP/1.1" 304 - +2025-02-15 11:13:26,626 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:26] "GET /static/js/validateFileInput.js HTTP/1.1" 304 - +2025-02-15 11:13:26,633 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:26] "GET /static/js/searchContractor.js HTTP/1.1" 304 - +2025-02-15 11:13:26,633 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:26] "GET /static/js/searchContractor.js HTTP/1.1" 304 - +2025-02-15 11:13:26,950 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:26] "GET /favicon.ico HTTP/1.1" 404 - +2025-02-15 11:13:26,950 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:26] "GET /favicon.ico HTTP/1.1" 404 - +2025-02-15 11:13:28,623 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:28] "GET / HTTP/1.1" 200 - +2025-02-15 11:13:28,623 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:28] "GET / HTTP/1.1" 200 - +2025-02-15 11:13:28,933 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:28] "GET /static/css/index.css HTTP/1.1" 304 - +2025-02-15 11:13:28,933 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:28] "GET /static/css/index.css HTTP/1.1" 304 - +2025-02-15 11:13:28,952 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:28] "GET /static/js/validateFileInput.js HTTP/1.1" 304 - +2025-02-15 11:13:28,952 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:28] "GET /static/js/validateFileInput.js HTTP/1.1" 304 - +2025-02-15 11:13:28,954 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:28] "GET /static/js/searchContractor.js HTTP/1.1" 304 - +2025-02-15 11:13:28,955 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:28] "GET /static/css/style.css HTTP/1.1" 304 - +2025-02-15 11:13:28,954 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:28] "GET /static/js/searchContractor.js HTTP/1.1" 304 - +2025-02-15 11:13:28,955 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:28] "GET /static/css/style.css HTTP/1.1" 304 - +2025-02-15 11:13:31,608 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:31] "GET /add_state HTTP/1.1" 200 - +2025-02-15 11:13:31,608 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:31] "GET /add_state HTTP/1.1" 200 - +2025-02-15 11:13:31,639 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:31] "GET /static/css/style.css HTTP/1.1" 304 - +2025-02-15 11:13:31,639 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:31] "GET /static/css/style.css HTTP/1.1" 304 - +2025-02-15 11:13:31,649 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:31] "GET /static/images/icons/pen_blue_icon.png HTTP/1.1" 304 - +2025-02-15 11:13:31,649 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:31] "GET /static/images/icons/pen_blue_icon.png HTTP/1.1" 304 - +2025-02-15 11:13:31,967 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:31] "GET /static/images/icons/bin_red_icon.png HTTP/1.1" 304 - +2025-02-15 11:13:31,967 - INFO - 127.0.0.1 - - [15/Feb/2025 11:13:31] "GET /static/images/icons/bin_red_icon.png HTTP/1.1" 304 - +2025-02-15 11:15:01,349 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:01] "POST /check_state HTTP/1.1" 409 - +2025-02-15 11:15:01,349 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:01] "POST /check_state HTTP/1.1" 409 - +2025-02-15 11:15:21,783 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:21] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:15:21,783 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:21] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:15:22,127 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:22] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:15:22,127 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:22] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:15:22,151 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:22] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:15:22,151 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:22] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:15:22,391 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:22] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:15:22,391 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:22] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:15:22,440 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:22] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:15:22,440 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:22] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:15:24,266 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:24] "POST /add_state HTTP/1.1" 200 - +2025-02-15 11:15:24,266 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:24] "POST /add_state HTTP/1.1" 200 - +2025-02-15 11:15:25,418 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:25] "GET /add_state HTTP/1.1" 200 - +2025-02-15 11:15:25,418 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:25] "GET /add_state HTTP/1.1" 200 - +2025-02-15 11:15:25,716 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:25] "GET /static/css/style.css HTTP/1.1" 304 - +2025-02-15 11:15:25,716 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:25] "GET /static/css/style.css HTTP/1.1" 304 - +2025-02-15 11:15:25,749 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:25] "GET /static/images/icons/pen_blue_icon.png HTTP/1.1" 304 - +2025-02-15 11:15:25,749 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:25] "GET /static/images/icons/pen_blue_icon.png HTTP/1.1" 304 - +2025-02-15 11:15:25,752 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:25] "GET /static/images/icons/bin_red_icon.png HTTP/1.1" 304 - +2025-02-15 11:15:25,752 - INFO - 127.0.0.1 - - [15/Feb/2025 11:15:25] "GET /static/images/icons/bin_red_icon.png HTTP/1.1" 304 - +2025-02-15 11:16:46,338 - INFO - * Detected change in 'C:\\Users\\ADMIN\\PycharmProjects\\ManagementApplicationt\\main.py', reloading +2025-02-15 11:16:46,338 - INFO - * Detected change in 'C:\\Users\\ADMIN\\PycharmProjects\\ManagementApplicationt\\main.py', reloading +2025-02-15 11:16:48,798 - INFO - Logging is set up. +2025-02-15 11:16:48,798 - INFO - Logging is set up. +2025-02-15 11:16:48,843 - WARNING - * Debugger is active! +2025-02-15 11:16:48,843 - WARNING - * Debugger is active! +2025-02-15 11:16:48,847 - INFO - * Debugger PIN: 558-213-972 +2025-02-15 11:16:48,847 - INFO - * Debugger PIN: 558-213-972 +2025-02-15 11:16:52,045 - DEBUG - Fetched state data successfully. +2025-02-15 11:16:52,045 - DEBUG - Fetched state data successfully. +2025-02-15 11:16:52,054 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:52] "GET /add_state HTTP/1.1" 200 - +2025-02-15 11:16:52,054 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:52] "GET /add_state HTTP/1.1" 200 - +2025-02-15 11:16:52,076 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:52] "GET /static/css/style.css HTTP/1.1" 304 - +2025-02-15 11:16:52,076 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:52] "GET /static/css/style.css HTTP/1.1" 304 - +2025-02-15 11:16:52,078 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:52] "GET /static/images/icons/pen_blue_icon.png HTTP/1.1" 304 - +2025-02-15 11:16:52,078 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:52] "GET /static/images/icons/pen_blue_icon.png HTTP/1.1" 304 - +2025-02-15 11:16:52,377 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:52] "GET /static/images/icons/bin_red_icon.png HTTP/1.1" 304 - +2025-02-15 11:16:52,377 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:52] "GET /static/images/icons/bin_red_icon.png HTTP/1.1" 304 - +2025-02-15 11:16:54,758 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:54] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:16:54,758 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:54] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:16:54,992 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:54] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:16:54,992 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:54] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:16:55,016 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:55] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:16:55,016 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:55] "POST /check_state HTTP/1.1" 200 - +2025-02-15 11:16:55,669 - INFO - State 'sss' added successfully. +2025-02-15 11:16:55,669 - INFO - 'State 'sss added successfully. +2025-02-15 11:16:55,670 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:55] "POST /add_state HTTP/1.1" 200 - +2025-02-15 11:16:55,670 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:55] "POST /add_state HTTP/1.1" 200 - +2025-02-15 11:16:57,235 - DEBUG - Fetched state data successfully. +2025-02-15 11:16:57,235 - DEBUG - Fetched state data successfully. +2025-02-15 11:16:57,239 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:57] "GET /add_state HTTP/1.1" 200 - +2025-02-15 11:16:57,239 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:57] "GET /add_state HTTP/1.1" 200 - +2025-02-15 11:16:57,263 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:57] "GET /static/css/style.css HTTP/1.1" 304 - +2025-02-15 11:16:57,263 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:57] "GET /static/css/style.css HTTP/1.1" 304 - +2025-02-15 11:16:57,483 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:57] "GET /static/images/icons/pen_blue_icon.png HTTP/1.1" 304 - +2025-02-15 11:16:57,483 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:57] "GET /static/images/icons/pen_blue_icon.png HTTP/1.1" 304 - +2025-02-15 11:16:57,567 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:57] "GET /static/images/icons/bin_red_icon.png HTTP/1.1" 304 - +2025-02-15 11:16:57,567 - INFO - 127.0.0.1 - - [15/Feb/2025 11:16:57] "GET /static/images/icons/bin_red_icon.png HTTP/1.1" 304 - +2025-02-15 11:20:55,547 - INFO - * Detected change in 'C:\\Users\\ADMIN\\PycharmProjects\\ManagementApplicationt\\main.py', reloading +2025-02-15 11:20:55,547 - INFO - * Detected change in 'C:\\Users\\ADMIN\\PycharmProjects\\ManagementApplicationt\\main.py', reloading +2025-02-15 11:20:56,800 - INFO - Logging is set up. +2025-02-15 11:20:56,800 - INFO - Logging is set up. +2025-02-15 11:20:56,835 - WARNING - * Debugger is active! +2025-02-15 11:20:56,835 - WARNING - * Debugger is active! +2025-02-15 11:20:56,837 - INFO - * Debugger PIN: 558-213-972 +2025-02-15 11:20:56,837 - INFO - * Debugger PIN: 558-213-972 +2025-02-15 11:21:04,060 - INFO - * Detected change in 'C:\\Users\\ADMIN\\PycharmProjects\\ManagementApplicationt\\main.py', reloading +2025-02-15 11:21:04,060 - INFO - * Detected change in 'C:\\Users\\ADMIN\\PycharmProjects\\ManagementApplicationt\\main.py', reloading +2025-02-15 11:21:05,429 - INFO - Logging is set up. +2025-02-15 11:21:05,429 - INFO - Logging is set up. +2025-02-15 11:21:05,461 - WARNING - * Debugger is active! +2025-02-15 11:21:05,461 - WARNING - * Debugger is active! +2025-02-15 11:21:05,463 - INFO - * Debugger PIN: 558-213-972 +2025-02-15 11:21:05,463 - INFO - * Debugger PIN: 558-213-972 +2025-02-15 11:21:17,911 - INFO - * Detected change in 'C:\\Users\\ADMIN\\PycharmProjects\\ManagementApplicationt\\main.py', reloading +2025-02-15 11:21:17,911 - INFO - * Detected change in 'C:\\Users\\ADMIN\\PycharmProjects\\ManagementApplicationt\\main.py', reloading diff --git a/v-2/config.py b/v-2/config.py new file mode 100644 index 0000000..b147757 --- /dev/null +++ b/v-2/config.py @@ -0,0 +1,21 @@ +import mysql.connector +import os +from dotenv import load_dotenv + +# Load environment variables from .env file +load_dotenv() + +# Get MySQL credentials from environment variables +MYSQL_HOST = os.getenv("MYSQL_HOST") +MYSQL_USER = os.getenv("MYSQL_USER") +MYSQL_PASSWORD = os.getenv("MYSQL_PASSWORD") +MYSQL_DB = os.getenv("MYSQL_DB") + +# Connect to MySQL +def get_db_connection(): + return mysql.connector.connect( + host=MYSQL_HOST, + user=MYSQL_USER, + password=MYSQL_PASSWORD, + database=MYSQL_DB + ) \ No newline at end of file diff --git a/v-2/controllers/auth_controller.py b/v-2/controllers/auth_controller.py new file mode 100644 index 0000000..0e63627 --- /dev/null +++ b/v-2/controllers/auth_controller.py @@ -0,0 +1,46 @@ +from flask import Blueprint, render_template, request, redirect, url_for, flash, session +from flask_login import login_user, logout_user, login_required, current_user + +from model.Auth import LoginLDAP, User +from model.Log import LogHelper + +auth_bp = Blueprint('auth', __name__) + + +@auth_bp.route('/login', methods=['GET', 'POST']) +def login(): + + if request.method == 'POST': + + loginData = LoginLDAP(request) + + if loginData.isValidLogin: + + if loginData.isDefaultCredentials: + LogHelper.log_action('Login', f"User {loginData.username} logged in (static user)") + else: + LogHelper.log_action('Login', f"User {loginData.username} logged in (LDAP)") + + session['username'] = loginData.username + + login_user(User(loginData.username)) + + return redirect(url_for('index')) + + else: + flash(loginData.errorMessage, 'danger') + + return render_template("login.html") + + +@auth_bp.route('/logout') +@login_required +def logout(): + + LogHelper.log_action('Logout', f"User {current_user.id} logged out") + + logout_user() + + flash('You have been logged out.', 'info') + + return redirect(url_for('auth.login')) \ No newline at end of file diff --git a/v-2/controllers/block_controller.py b/v-2/controllers/block_controller.py new file mode 100644 index 0000000..7e04a13 --- /dev/null +++ b/v-2/controllers/block_controller.py @@ -0,0 +1,119 @@ +from flask import Blueprint, render_template, request, redirect, url_for, jsonify +from flask_login import login_required + +import config +import mysql.connector + +from model.Block import Block +from model.Utilities import HtmlHelper + +block_bp = Blueprint('block', __name__) + + +@block_bp.route('/add_block', methods=['GET', 'POST']) +@login_required +def add_block(): + + block = Block() + + if request.method == 'POST': + block.AddBlock(request) + return block.resultMessage + + connection = config.get_db_connection() + cursor = connection.cursor() + + cursor.callproc("GetAllStates") + for rs in cursor.stored_results(): + states = rs.fetchall() + + block_data = block.GetAllBlocks(request) + + cursor.close() + connection.close() + + return render_template( + 'add_block.html', + states=states, + block_data=block_data + ) + + +# ✅ NEW ROUTE (FIX FOR DISTRICT FETCH) +@block_bp.route('/get_districts/') +@login_required +def get_districts(state_id): + + connection = config.get_db_connection() + cursor = connection.cursor() + + cursor.callproc("GetDistrictsByStateId", (state_id,)) + + districts = [] + for rs in cursor.stored_results(): + districts = rs.fetchall() + + cursor.close() + connection.close() + + district_list = [] + + for district in districts: + district_list.append({ + "id": district[0], + "name": district[1] + }) + + return jsonify(district_list) + + +@block_bp.route('/check_block', methods=['POST']) +@login_required +def check_block(): + + block = Block() + return block.CheckBlock(request) + + +@block_bp.route('/edit_block/', methods=['GET', 'POST']) +@login_required +def edit_block(block_id): + + block = Block() + + if request.method == 'POST': + block.EditBlock(request, block_id) + return block.resultMessage + + connection = config.get_db_connection() + cursor = connection.cursor() + + cursor.callproc("GetAllStates") + for rs in cursor.stored_results(): + states = rs.fetchall() + + cursor.callproc("GetAllDistrictsData") + for rs in cursor.stored_results(): + districts = rs.fetchall() + + block_data = block.GetBlockByID(block_id) + + cursor.close() + connection.close() + + return render_template( + 'edit_block.html', + block_data=block_data, + states=states, + districts=districts + ) + + +@block_bp.route('/delete_block/') +@login_required +def delete_block(block_id): + + block = Block() + block.DeleteBlock(request, block_id) + + return redirect(url_for('block.add_block')) \ No newline at end of file diff --git a/v-2/controllers/district_controller.py b/v-2/controllers/district_controller.py new file mode 100644 index 0000000..d326d68 --- /dev/null +++ b/v-2/controllers/district_controller.py @@ -0,0 +1,84 @@ +from flask import Blueprint, render_template, request, redirect, url_for, flash +from flask_login import login_required + +from model.District import District +from model.State import State + +district_bp = Blueprint('district', __name__) + + +@district_bp.route('/add_district', methods=['GET', 'POST']) +@login_required +def add_district(): + + district = District() + + if request.method == 'POST': + district.AddDistrict(request=request) + return district.resultMessage + + state = State() + states = state.GetAllStates(request=request) + + districtdata = district.GetAllDistricts(request=request) + + return render_template( + 'add_district.html', + districtdata=districtdata, + states=states + ) + + +@district_bp.route('/check_district', methods=['POST']) +@login_required +def check_district(): + + district = District() + + return district.CheckDistrict(request=request) + + +@district_bp.route('/delete_district/') +@login_required +def delete_district(district_id): + + district = District() + + district.DeleteDistrict(request=request, district_id=district_id) + + if not district.isSuccess: + return district.resultMessage + else: + return redirect(url_for('district.add_district')) + + +@district_bp.route('/edit_district/', methods=['GET', 'POST']) +@login_required +def edit_district(district_id): + + district = District() + state = State() + + if request.method == 'POST': + + district.EditDistrict(request=request, district_id=district_id) + + if district.isSuccess: + flash("District updated successfully!", "success") + return redirect(url_for('district.add_district')) + else: + flash(district.resultMessage, "error") + + districtdata = district.GetDistrictByID(request=request, district_id=district_id) + + if not districtdata: + flash("District not found", "error") + return redirect(url_for('district.add_district')) + + states = state.GetAllStates(request=request) + + return render_template( + 'edit_district.html', + districtdata=districtdata, + states=states + ) \ No newline at end of file diff --git a/v-2/controllers/excel_upload_controller.py b/v-2/controllers/excel_upload_controller.py new file mode 100644 index 0000000..0f543d5 --- /dev/null +++ b/v-2/controllers/excel_upload_controller.py @@ -0,0 +1,388 @@ +import os +import ast +import re +from flask_login import login_required +import openpyxl +from flask import Blueprint, request, render_template, redirect, url_for, jsonify, current_app +from flask_login import current_user +from model.Log import LogHelper +import config +from model.FolderAndFile import FolderAndFile + +excel_bp = Blueprint('excel', __name__) + +# Default folder in case config not set +# DEFAULT_UPLOAD_FOLDER = 'uploads' + + +# def get_upload_folder(): +# """Returns the upload folder from Flask config or default, ensures it exists.""" +# folder = current_app.config.get('UPLOAD_FOLDER', DEFAULT_UPLOAD_FOLDER) +# if not os.path.exists(folder): +# os.makedirs(folder) +# return folder + + +# ---------------- Upload Excel File ---------------- +@excel_bp.route('/upload_excel_file', methods=['GET', 'POST']) +@login_required +def upload(): + if request.method == 'POST': + file = request.files.get('file') + if file and file.filename.endswith('.xlsx'): + # upload_folder = get_upload_folder() + # filepath = os.path.join(upload_folder, file.filename) + + filepath =FolderAndFile.get_upload_path(file.filename) + + file.save(filepath) + + LogHelper.log_action( + "Upload Excel File", + f"User {current_user.id} Upload Excel File '{file.filename}'" + ) + return redirect(url_for('excel.show_table', filename=file.filename)) + return render_template('uploadExcelFile.html') + + +# ---------------- Show Excel Table ---------------- +@excel_bp.route('/show_table/') +def show_table(filename): + global data + data = [] + + # filepath = os.path.join(get_upload_folder(), filename) + filepath = FolderAndFile.get_upload_path(filename) + wb = openpyxl.load_workbook(filepath, data_only=True) + sheet = wb.active + + file_info = { + "Subcontractor": sheet.cell(row=1, column=2).value, + "State": sheet.cell(row=2, column=2).value, + "District": sheet.cell(row=3, column=2).value, + "Block": sheet.cell(row=4, column=2).value, + } + + errors = [] + subcontractor_data = None + state_data = None + district_data = None + block_data = None + + connection = config.get_db_connection() + if connection: + try: + cursor = connection.cursor(dictionary=True) + + cursor.callproc('GetStateByName', [file_info['State']]) + for result in cursor.stored_results(): + state_data = result.fetchone() + if not state_data: + errors.append(f"State '{file_info['State']}' is not valid. Please add it.") + + if state_data: + cursor.callproc('GetDistrictByNameAndStates', [file_info['District'], state_data['State_ID']]) + for result in cursor.stored_results(): + district_data = result.fetchone() + if not district_data: + errors.append(f"District '{file_info['District']}' is not valid under state '{file_info['State']}'.") + + if district_data: + cursor.callproc('GetBlockByNameAndDistricts', [file_info['Block'], district_data['District_ID']]) + for result in cursor.stored_results(): + block_data = result.fetchone() + if not block_data: + errors.append(f"Block '{file_info['Block']}' is not valid under district '{file_info['District']}'.") + + cursor.callproc('GetSubcontractorByName', [file_info['Subcontractor']]) + for result in cursor.stored_results(): + subcontractor_data = result.fetchone() + + if not subcontractor_data: + cursor.callproc('InsertSubcontractor', [file_info['Subcontractor']]) + connection.commit() + cursor.callproc('GetSubcontractorByName', [file_info['Subcontractor']]) + for result in cursor.stored_results(): + subcontractor_data = result.fetchone() + + cursor.callproc("GetAllHoldTypes") + hold_types_data = [] + for ht in cursor.stored_results(): + hold_types_data = ht.fetchall() + hold_types_lookup = {row['hold_type'].lower(): row['hold_type_id'] for row in hold_types_data if row['hold_type']} + + cursor.close() + except Exception as e: + print(f"Database error: {e}") + return f"Database operation failed: {e}", 500 + finally: + connection.close() + + variables = {} + hold_columns = [] + hold_counter = 0 + + for j in range(1, sheet.max_column + 1): + col_value = sheet.cell(row=5, column=j).value + if col_value: + variables[col_value] = j + if 'hold' in str(col_value).lower(): + hold_counter += 1 + hold_type_key = str(col_value).lower().strip() + hold_type_id = hold_types_lookup.get(hold_type_key) + hold_columns.append({ + 'column_name': col_value, + 'column_number': j, + 'hold_type_id': hold_type_id + }) + + for i in range(6, sheet.max_row + 1): + row_data = {} + if sheet.cell(row=i, column=1).value: + row_data["Row Number"] = i + for var_name, col_num in variables.items(): + row_data[var_name] = sheet.cell(row=i, column=col_num).value + if sum(1 for value in row_data.values() if value) >= 4: + data.append(row_data) + + for hold in hold_columns: + if hold['hold_type_id']: + print(f" if Column: {hold['column_name']}, Column Number: {hold['column_number']}, Hold Type ID: {hold['hold_type_id']}") + else: + errors.append(f"Hold Type not added ! Column name '{hold['column_name']}'.") + print(f" else Column: {hold['column_name']}, Column Number: {hold['column_number']}, Hold Type ID: {hold['hold_type_id']}") + + return render_template( + 'show_excel_file.html', + file_info=file_info, + variables=variables, + data=data, + subcontractor_data=subcontractor_data, + state_data=state_data, + district_data=district_data, + block_data=block_data, + errors=errors, + hold_columns=hold_columns, + hold_counter=hold_counter + ) + + + # save Excel data +@excel_bp.route('/save_data', methods=['POST']) +def save_data(): + # Extract form data + subcontractor_id = request.form.get("subcontractor_data") + state_id = request.form.get("state_data") + district_id = request.form.get("district_data") + block_id = request.form.get("block_data") + variables = request.form.getlist('variables[]') + hold_columns = request.form.get("hold_columns") + hold_counter = request.form.get("hold_counter") + if not data: + return jsonify({"error": "No data provided to save"}), 400 + if data: + connection = config.get_db_connection() + cursor = connection.cursor() + try: + for entry in data: + save_data = { + "PMC_No": entry.get("PMC_No"), + "Invoice_Details": entry.get("Invoice_Details", ''), + "Work_Type": 'none', + "Invoice_Date": entry.get("Invoice_Date").strftime('%Y-%m-%d') if entry.get( + "Invoice_Date") else None, + "Invoice_No": entry.get("Invoice_No", ''), + "Basic_Amount": entry.get("Basic_Amount", 0.00), + "Debit_Amount": entry.get("Debit_Amount", 0.00), + "After_Debit_Amount": entry.get("After_Debit_Amount", 0.00), + "Amount": entry.get("Amount", 0.00), + "GST_Amount": entry.get("GST_Amount", 0.00), + "TDS_Amount": entry.get("TDS_Amount", 0.00), + "SD_Amount": entry.get("SD_Amount", 0.00), + "On_Commission": entry.get("On_Commission", 0.00), + "Hydro_Testing": entry.get("Hydro_Testing", 0.00), + "Hold_Amount": 0, + "GST_SD_Amount": entry.get("GST_SD_Amount", 0.00), + "Final_Amount": entry.get("Final_Amount", 0.00), + "Payment_Amount": entry.get("Payment_Amount", 0.00), + "Total_Amount": entry.get("Total_Amount", 0.00), + "TDS_Payment_Amount": entry.get("TDS_Payment_Amount", 0.00), + "UTR": entry.get("UTR", ''), + } + village_name, work_type = None, None + village_id = 0 + LogHelper.log_action("Data saved", f"User {current_user.id} Data saved'{ village_name}'") + PMC_No = save_data.get('PMC_No') + Invoice_Details = save_data.get('Invoice_Details') + Invoice_Date = save_data.get('Invoice_Date') + Invoice_No = save_data.get('Invoice_No') + Basic_Amount = save_data.get('Basic_Amount') + Debit_Amount = save_data.get('Debit_Amount') + After_Debit_Amount = save_data.get('After_Debit_Amount') + Amount = save_data.get('Amount') + GST_Amount = save_data.get('GST_Amount') + TDS_Amount = save_data.get('TDS_Amount') + SD_Amount = save_data.get('SD_Amount') + On_Commission = save_data.get('On_Commission') + Hydro_Testing = save_data.get('Hydro_Testing') + GST_SD_Amount = save_data.get('GST_SD_Amount') + Final_Amount = save_data.get('Final_Amount') + Payment_Amount = save_data.get('Payment_Amount') + Total_Amount = save_data.get('Total_Amount') + TDS_Payment_Amount = save_data.get('TDS_Payment_Amount') + UTR = save_data.get('UTR') + + if Invoice_Details: + words = Invoice_Details.lower().split() + if 'village' in words: + village_pos = words.index('village') + village_name = " ".join(words[:village_pos]) + if 'work' in words: + work_pos = words.index('work') + if village_name: + work_type = " ".join(words[village_pos + 1:work_pos + 1]) + else: + work_type = " ".join(words[:work_pos + 1]) + if Invoice_Details and 'village' in Invoice_Details.lower() and 'work' in Invoice_Details.lower(): + print("village_name ::", village_name, "|| work_type ::", work_type) + if block_id and village_name: + village_id = None + cursor.callproc("GetVillageId", (block_id, village_name)) + for result in cursor.stored_results(): + result = result.fetchone() + village_id = result[0] if result else None + if not village_id: + cursor.callproc("SaveVillage", (village_name, block_id)) + cursor.callproc("GetVillageId", (block_id, village_name)) + for result in cursor.stored_results(): + result = result.fetchone() + village_id = result[0] if result else None + print("village_id :", village_id) + print("block_id :", block_id) + print("invoice :", PMC_No, village_id, work_type, Invoice_Details, Invoice_Date, Invoice_No, + Basic_Amount, Debit_Amount, After_Debit_Amount, Amount, GST_Amount, TDS_Amount, + SD_Amount, On_Commission, Hydro_Testing, GST_SD_Amount, Final_Amount) + + args = ( + PMC_No, village_id, work_type, Invoice_Details, Invoice_Date, Invoice_No, + Basic_Amount, Debit_Amount, After_Debit_Amount, Amount, GST_Amount, TDS_Amount, + SD_Amount, On_Commission, Hydro_Testing, GST_SD_Amount, Final_Amount, + subcontractor_id, 0 + ) + + print("All invoice Details ",args) + results = cursor.callproc('SaveInvoice', args) + invoice_id = results[-1] + print("invoice id from the excel ", invoice_id) + if isinstance(hold_columns, str): + hold_columns = ast.literal_eval(hold_columns) + if isinstance(hold_columns, list) and all(isinstance(hold, dict) for hold in hold_columns): + for hold in hold_columns: + print(f"Processing hold: {hold}") + hold_column_name = hold.get('column_name') # Get column name + hold_type_id = hold.get('hold_type_id') # Get hold_type_id + if hold_column_name: + hold_amount = entry.get( + hold_column_name) # Get the value for that specific hold column + if hold_amount is not None: + print(f"Processing hold type: {hold_column_name}, Hold Amount: {hold_amount}") + hold_join_data = { + "Contractor_Id": subcontractor_id, + "Invoice_Id": invoice_id, + "hold_type_id": hold_type_id, + "hold_amount": hold_amount + } + cursor.callproc('InsertHoldJoinData', [ + hold_join_data['Contractor_Id'], hold_join_data['Invoice_Id'], + hold_join_data['hold_type_id'], hold_join_data['hold_amount'] + ]) + connection.commit() + print(f"Inserted hold join data: {hold_join_data}") + else: + print(f"Invalid hold entry: {hold}") + else: + print("Hold columns data is not a valid list of dictionaries.") +#---------------------------------------------Credit Note--------------------------------------------------------------------------- + elif any(keyword in Invoice_Details.lower() for keyword in ['credit note','logging report']): + print("Credit note found:", PMC_No, Invoice_No, Basic_Amount, Debit_Amount, Final_Amount, + After_Debit_Amount, GST_Amount, Amount, Final_Amount, Payment_Amount, Total_Amount, UTR, Invoice_No) + cursor.callproc( + 'AddCreditNoteFromExcel', + [ + PMC_No, Invoice_Details, Basic_Amount, Debit_Amount, After_Debit_Amount, + GST_Amount, Amount, Final_Amount, Payment_Amount, Total_Amount, UTR, + subcontractor_id, Invoice_No + ] + ) +#-----------------------------------------------Hold Amount---------------------------------------------------------------------- + # Step 1: Normalize Invoice_Details: lowercase, trim, remove extra spaces + normalized_details = re.sub(r'\s+', ' ', Invoice_Details.strip()).lower() + # Step 2: Define lowercase keywords + keywords = [ + 'excess hold', + 'ht', + 'hold release amount', + 'dpr excess hold amount', + 'excess hold amount', + 'Multi to Single layer bill', + 'hold amount', + 'logging report' + ] + # Step 3: Matching condition + if any(kw in normalized_details for kw in keywords): + print("✅ Match found. Inserting hold release for:", Invoice_Details) + cursor.callproc( + 'AddHoldReleaseFromExcel', + [PMC_No, Invoice_No, Invoice_Details, Basic_Amount, Final_Amount, UTR, subcontractor_id] +) + connection.commit() + print("✅ Hold release inserted for:", PMC_No, Invoice_Details) + #------------------------------------------------------------------------------------------------------------------ + elif Invoice_Details and any( + keyword in Invoice_Details.lower() for keyword in ['gst', 'release', 'note']): + print("Gst rels :", PMC_No, Invoice_No, Basic_Amount, Final_Amount,Total_Amount,UTR, subcontractor_id) + cursor.callproc( + 'AddGSTReleaseFromExcel', + [PMC_No, Invoice_No, Basic_Amount, Final_Amount, Total_Amount, UTR, subcontractor_id] + ) + + if PMC_No and Total_Amount and UTR: + print("Payment :", PMC_No, Invoice_No, Payment_Amount, TDS_Payment_Amount, Total_Amount, UTR ) + cursor.callproc("SavePayment",(PMC_No, Invoice_No, Payment_Amount, TDS_Payment_Amount, Total_Amount, UTR )) + if not village_id: + village_id = None + cursor.callproc('InsertOrUpdateInPayment', ( + PMC_No, + village_id, + work_type, + Invoice_Details, + Invoice_Date, + Invoice_No, + Basic_Amount, + Debit_Amount, + After_Debit_Amount, + Amount, + GST_Amount, + TDS_Amount, + SD_Amount, + On_Commission, + Hydro_Testing, + 0, + GST_SD_Amount, + Final_Amount, + Payment_Amount, + TDS_Payment_Amount, + Total_Amount, + UTR, + subcontractor_id + )) + connection.commit() + return jsonify({"success": "Data saved successfully!"}), 200 + except Exception as e: + connection.rollback() + return jsonify({"error": f"An unexpected error occurred: {e}"}), 500 + finally: + cursor.close() + connection.close() + return render_template('index.html') +# ---------------------- Report -------------------------------- \ No newline at end of file diff --git a/v-2/controllers/gst_release_controller.py b/v-2/controllers/gst_release_controller.py new file mode 100644 index 0000000..a5fea92 --- /dev/null +++ b/v-2/controllers/gst_release_controller.py @@ -0,0 +1,70 @@ +from flask import Blueprint, render_template, request, redirect, url_for, jsonify +from flask_login import login_required, current_user +from model.gst_release import GSTReleasemodel +from model.Log import LogHelper + +gst_release_bp = Blueprint('gst_release_bp', __name__) + +# ------------------- Add GST Release ------------------- +@gst_release_bp.route('/add_gst_release', methods=['GET', 'POST']) +@login_required +def add_gst_release(): + gst_releases_dict = GSTReleasemodel.fetch_all_gst_releases() + gst_releases = [ + [ + g['GST_Release_Id'], g['PMC_No'], g['invoice_no'], + g['Basic_Amount'], g['Final_Amount'], g['Total_Amount'], g['UTR'] + ] for g in gst_releases_dict + ] if gst_releases_dict else [] + + if request.method == 'POST': + pmc_no = request.form['PMC_No'] + invoice_no = request.form['invoice_No'] + basic_amount = request.form['basic_amount'] + final_amount = request.form['final_amount'] + total_amount = request.form['total_amount'] + utr = request.form['utr'] + contractor_id = request.form['subcontractor_id'] + + LogHelper.log_action("Add GST Release", f"User {current_user.id} added GST release '{pmc_no}'") + GSTReleasemodel.insert_gst_release(pmc_no, invoice_no, basic_amount, final_amount, total_amount, utr, contractor_id) + + return redirect(url_for('gst_release_bp.add_gst_release')) + + return render_template('add_gst_release.html', gst_releases=gst_releases, invoices=[]) + + +# ------------------- Edit GST Release ------------------- +@gst_release_bp.route('/edit_gst_release/', methods=['GET', 'POST']) +@login_required +def edit_gst_release(gst_release_id): + gst_release_data = GSTReleasemodel.fetch_gst_release_by_id(gst_release_id) + if not gst_release_data: + return "GST Release not found", 404 + + if request.method == 'POST': + pmc_no = request.form['PMC_No'] + invoice_no = request.form['invoice_No'] + basic_amount = request.form['basic_amount'] + final_amount = request.form['final_amount'] + total_amount = request.form['total_amount'] + utr = request.form['utr'] + + LogHelper.log_action("Edit GST Release", f"User {current_user.id} edited GST release '{pmc_no}'") + GSTReleasemodel.update_gst_release(gst_release_id, pmc_no, invoice_no, basic_amount, final_amount, total_amount, utr) + + return redirect(url_for('gst_release_bp.add_gst_release')) + + return render_template('edit_gst_release.html', gst_release_data=gst_release_data, invoices=[]) + + +# ------------------- Delete GST Release ------------------- +@gst_release_bp.route('/delete_gst_release/', methods=['GET', 'POST']) +@login_required +def delete_gst_release(gst_release_id): + success, utr = GSTReleasemodel.delete_gst_release(gst_release_id) + if not success: + return jsonify({"message": "GST Release not found or failed to delete", "status": "error"}), 404 + + LogHelper.log_action("Delete GST Release", f"User {current_user.id} deleted GST release '{gst_release_id}'") + return jsonify({"message": f"GST Release {gst_release_id} deleted successfully.", "status": "success"}), 200 \ No newline at end of file diff --git a/v-2/controllers/hold_types_controller.py b/v-2/controllers/hold_types_controller.py new file mode 100644 index 0000000..0b163ab --- /dev/null +++ b/v-2/controllers/hold_types_controller.py @@ -0,0 +1,77 @@ +from flask import Blueprint, render_template, request, jsonify, redirect, url_for +from flask_login import login_required +from model.HoldTypes import HoldTypes +from model.GST import GST + +hold_bp = Blueprint("hold_types", __name__) + + +# ---------------- ADD HOLD TYPE ---------------- +@hold_bp.route('/add_hold_type', methods=['GET','POST']) +@login_required +def add_hold_type(): + + hold = HoldTypes() + + if request.method == 'POST': + hold.AddHoldType(request) # ✅ + return hold.resultMessage + + hold_types = hold.GetAllHoldTypes() # ✅ + + return render_template( + "add_hold_type.html", + Hold_Types_data=hold_types + ) + + +# ---------------- CHECK HOLD TYPE (OPTIONAL LIKE BLOCK) ---------------- +@hold_bp.route('/check_hold_type', methods=['POST']) +@login_required +def check_hold_type(): + + hold = HoldTypes() + return hold.CheckHoldType(request) # if exists + + +# ---------------- EDIT HOLD TYPE ---------------- +@hold_bp.route('/edit_hold_type/', methods=['GET','POST']) +@login_required +def edit_hold_type(id): + + hold = HoldTypes() + + if request.method == 'POST': + hold.EditHoldType(request, id) # ✅ + return hold.resultMessage + + hold_data = hold.GetHoldTypeByID(id) # ✅ + + return render_template( + "edit_hold_type.html", + hold_type=hold_data + ) + + +# ---------------- DELETE HOLD TYPE ---------------- +@hold_bp.route('/delete_hold_type/') +@login_required +def delete_hold_type(id): + + hold = HoldTypes() + hold.DeleteHoldType(request, id) # ✅ + + return redirect(url_for("hold_types.add_hold_type")) + + +# ---------------- GST ---------------- +@hold_bp.route('/unreleased_gst') +@login_required +def unreleased_gst(): + + data = GST.get_unreleased_gst() + + return render_template( + "unreleased_gst.html", + data=data + ) \ No newline at end of file diff --git a/v-2/controllers/invoice_controller.py b/v-2/controllers/invoice_controller.py new file mode 100644 index 0000000..d8af37a --- /dev/null +++ b/v-2/controllers/invoice_controller.py @@ -0,0 +1,98 @@ +# controllers/invoice_controller.py + +from flask import Blueprint, request, jsonify, render_template +from flask_login import login_required, current_user +from model.Invoice import * +from model.Log import LogHelper + +invoice_bp = Blueprint('invoice', __name__) + +# -------------------------------- Add Invoice --------------------------------- +@invoice_bp.route('/add_invoice', methods=['GET', 'POST']) +@login_required +def add_invoice(): + if request.method == 'POST': + try: + village_name = request.form.get('village') + village_result = get_village_id(village_name) + + if not village_result: + return jsonify({"status": "error", "message": f"Village '{village_name}' not found"}), 400 + + village_id = village_result['Village_Id'] + data = request.form + + invoice_id = insert_invoice(data, village_id) + assign_subcontractor(data, village_id) + insert_hold_types(data, invoice_id) + + LogHelper.log_action("Add invoice", f"User {current_user.id} Added invoice '{data.get('pmc_no')}'") + + return jsonify({"status": "success", "message": "Invoice added successfully"}), 201 + + except Exception as e: + return jsonify({"status": "error", "message": str(e)}), 500 + + invoices = get_all_invoice_details() + villages = get_all_villages() + return render_template('add_invoice.html', invoices=invoices, villages=villages) + + +# ------------------- Search Subcontractor ------------------- +@invoice_bp.route('/search_subcontractor', methods=['POST']) +@login_required +def search_subcontractor(): + sub_query = request.form.get("query") + results = search_contractors(sub_query) + + if not results: + return "
  • No subcontractor found
  • " + + output = "".join( + f"
  • {row['Contractor_Name']}
  • " + for row in results + ) + return output + + +# ------------------- Get Hold Types ------------------- +@invoice_bp.route('/get_hold_types', methods=['GET']) +@login_required +def get_hold_types(): + hold_types = get_all_hold_types() + LogHelper.log_action("Get hold type", f"User {current_user.id} Get hold type '{hold_types}'") + return jsonify(hold_types) + + +# ------------------- Edit Invoice ------------------- +@invoice_bp.route('/edit_invoice/', methods=['GET', 'POST']) +@login_required +def edit_invoice(invoice_id): + if request.method == 'POST': + data = request.form + update_invoice(data, invoice_id) + update_inpayment(data) + + LogHelper.log_action("Edit invoice", f"User {current_user.id} Edit invoice '{invoice_id}'") + return jsonify({"status": "success", "message": "Invoice updated successfully"}), 200 + + invoice = get_invoice_by_id(invoice_id) + return render_template('edit_invoice.html', invoice=invoice) + + +# ------------------- Delete Invoice ------------------- +@invoice_bp.route('/delete_invoice/', methods=['GET']) +@login_required +def delete_invoice_route(invoice_id): + try: + delete_invoice_data(invoice_id, current_user.id) + LogHelper.log_action("Delete Invoice", f"User {current_user.id} deleted Invoice '{invoice_id}'") + return jsonify({ + "message": f"Invoice {invoice_id} deleted successfully.", + "status": "success" + }) + except Exception as e: + return jsonify({ + "message": str(e), + "status": "error" + }), 500 \ No newline at end of file diff --git a/v-2/controllers/log_controller.py b/v-2/controllers/log_controller.py new file mode 100644 index 0000000..145c91b --- /dev/null +++ b/v-2/controllers/log_controller.py @@ -0,0 +1,31 @@ +from flask import Blueprint, render_template, request +from flask_login import login_required + +from model.Log import LogData + +log_bp = Blueprint('log', __name__) + + +@log_bp.route('/activity_log', methods=['GET', 'POST']) +@login_required +def activity_log(): + + start_date = request.values.get("start_date") + end_date = request.values.get("end_date") + user_name = request.values.get("username") + + logData = LogData() + + filtered_logs = logData.GetFilteredActivitiesLog( + start_date, + end_date, + user_name + ) + + return render_template( + "activity_log.html", + logs=filtered_logs, + start_date=start_date, + end_date=end_date, + username=user_name + ) \ No newline at end of file diff --git a/v-2/controllers/payment_controller.py b/v-2/controllers/payment_controller.py new file mode 100644 index 0000000..a0dfc40 --- /dev/null +++ b/v-2/controllers/payment_controller.py @@ -0,0 +1,103 @@ +from flask import Blueprint, render_template, request, redirect, url_for, jsonify +from flask_login import login_required, current_user +from model.payment import Paymentmodel +from model.Log import LogHelper + +payment_bp = Blueprint('payment_bp', __name__) + +# ------------------- Add Payment ------------------- +@payment_bp.route('/add_payment', methods=['GET', 'POST']) +@login_required +def add_payment(): + payments_dicts = Paymentmodel.fetch_all_payments() + # Convert to array for template + payments = [ + [ + p['Payment_Id'], p['PMC_No'], p['Invoice_No'], + p['Payment_Amount'], p['TDS_Payment_Amount'], p['Total_Amount'], p['UTR'] + ] for p in payments_dicts + ] if payments_dicts else [] + + if request.method == 'POST': + subcontractor_id = request.form.get('subcontractor_id') + pmc_no = request.form['PMC_No'] + invoice_no = request.form['invoice_No'] + amount = request.form['Payment_Amount'] + tds_amount = request.form['TDS_Payment_Amount'] + total_amount = request.form['total_amount'] + utr = request.form['utr'] + + LogHelper.log_action("Add Payment", f"User {current_user.id} Add Payment '{pmc_no}'") + Paymentmodel.insert_payment(pmc_no, invoice_no, amount, tds_amount, total_amount, utr) + Paymentmodel.update_inpayment(subcontractor_id, pmc_no, invoice_no, amount, tds_amount, total_amount, utr) + + return redirect(url_for('payment_bp.add_payment')) + + return render_template('add_payment.html', payments=payments) + + +# ------------------- Get PMC Nos ------------------- +@payment_bp.route('/get_pmc_nos_by_subcontractor/') +@login_required +def get_pmc_nos_by_subcontractor(subcontractorId): + connection = Paymentmodel.get_connection() + cur = connection.cursor() + cur.callproc('GetDistinctPMCNoByContractorId', [subcontractorId]) + results = [] + for result in cur.stored_results(): + results = result.fetchall() + cur.close() + pmc_nos = [row[0] for row in results] + return jsonify({'pmc_nos': pmc_nos}) + + +# ------------------- Edit Payment ------------------- +@payment_bp.route('/edit_payment/', methods=['GET', 'POST']) +@login_required +def edit_payment(payment_id): + payment_data = Paymentmodel.fetch_payment_by_id(payment_id) + + if not payment_data: + return "Payment not found", 404 + + if request.method == 'POST': + pmc_no = request.form['PMC_No'] + invoice_no = request.form['invoice_No'] + amount = request.form['Payment_Amount'] + tds_amount = request.form['TDS_Payment_Amount'] + total_amount = request.form['total_amount'] + utr = request.form['utr'] + + LogHelper.log_action("Edit Payment", f"User {current_user.id} Edit Payment '{pmc_no}'") + Paymentmodel.call_update_payment_proc(payment_id, pmc_no, invoice_no, amount, tds_amount, total_amount, utr) + + # Update inpayment + connection = Paymentmodel.get_connection() + cursor = connection.cursor() + cursor.callproc( + 'UpdateInpaymentByPMCInvoiceUTR', + [amount, tds_amount, total_amount, pmc_no, invoice_no, utr] +) + connection.commit() + cursor.close() + connection.close() + + return redirect(url_for('payment_bp.add_payment')) + + return render_template('edit_payment.html', payment_data=payment_data) + + +# ------------------- Delete Payment ------------------- +@payment_bp.route('/delete_payment/', methods=['GET', 'POST']) +@login_required +def delete_payment(payment_id): + success, pmc_no, invoice_no = Paymentmodel.delete_payment(payment_id) + if not success: + return jsonify({"message": "Payment not found or failed to delete", "status": "error"}), 404 + + LogHelper.log_action("Delete Payment", f"User {current_user.id} deleted Payment '{payment_id}'") + + return jsonify({ + "message": f"Payment ID {payment_id} deleted successfully.", + "status": "success" + }), 200 \ No newline at end of file diff --git a/v-2/controllers/pmc_report_controller.py b/v-2/controllers/pmc_report_controller.py new file mode 100644 index 0000000..7c92cb7 --- /dev/null +++ b/v-2/controllers/pmc_report_controller.py @@ -0,0 +1,37 @@ +from flask import Blueprint, render_template, send_from_directory +from flask_login import login_required, current_user +from model.PmcReport import PmcReport + +pmc_report_bp = Blueprint("pmc_report", __name__) + +@pmc_report_bp.route("/pmc_report/") +@login_required +def pmc_report(pmc_no): + data = PmcReport.get_pmc_report(pmc_no) + if not data: + return "No PMC found with this number", 404 + + return render_template( + "pmc_report.html", + info=data["info"], + invoices=data["invoices"], + hold_types=data["hold_types"], + gst_rel=data["gst_rel"], + payments=data["payments"], + credit_note=data["credit_note"], + hold_release=data["hold_release"], + total=data["total"] + ) + +@pmc_report_bp.route("/download_pmc_report/") +@login_required +def download_pmc_report(pmc_no): + + result = PmcReport.download_pmc_report(pmc_no) + + if not result: + return "No contractor found for this PMC No", 404 + + output_folder, file_name = result + + return send_from_directory(output_folder, file_name, as_attachment=True) \ No newline at end of file diff --git a/v-2/controllers/report_controller.py b/v-2/controllers/report_controller.py new file mode 100644 index 0000000..5810a8a --- /dev/null +++ b/v-2/controllers/report_controller.py @@ -0,0 +1,193 @@ +from flask import Blueprint, render_template, request, jsonify, send_file +from flask_login import login_required, current_user +from model.Report import ReportHelper +from model.Log import LogHelper +import config +import os +import openpyxl +from openpyxl.styles import Font +from model.ContractorInfo import ContractorInfo +from model.FolderAndFile import FolderAndFile + + +report_bp = Blueprint("report", __name__) + + +# ---------------- Report Page ---------------- +@report_bp.route("/report") +@login_required +def report_page(): + return render_template("/report.html") + + +# ---------------- Search Contractor ---------------- +@report_bp.route("/search_contractor", methods=["POST"]) +@login_required +def search_contractor(): + + subcontractor_name = request.form.get("subcontractor_name") + + LogHelper.log_action( + "Search Contractor", + f"User {current_user.id} searched contractor '{subcontractor_name}'" + ) + + data = ReportHelper.search_contractor(request) + + return jsonify(data) + +# ---------------- Contractor Report ---------------- +@report_bp.route('/contractor_report/') +@login_required +def contractor_report(contractor_id): + + data = ReportHelper.get_contractor_report(contractor_id) + + return render_template( + 'subcontractor_report.html', + contractor_id=contractor_id, + **data + ) + +@report_bp.route('/download_report/') +@login_required +def download_report(contractor_id): + + return ReportHelper().download_report(contractor_id=contractor_id) + + + + +# @report_bp.route('/download_report/') +# @login_required +# def download_report(contractor_id): +# try: +# connection = config.get_db_connection() +# cursor = connection.cursor(dictionary=True) + +# # -------- Contractor Info -------- +# contractor = ContractorInfo(contractor_id) +# contInfo = contractor.contInfo + +# if not contInfo: +# return "No contractor found", 404 + +# # -------- Invoice Data -------- +# cursor.callproc('FetchInvoicesByContractor', [contractor_id]) + +# invoices = [] +# for result in cursor.stored_results(): +# invoices.extend(result.fetchall()) + +# if not invoices: +# return "No invoice data found" + +# # -------- Create Workbook -------- +# workbook = openpyxl.Workbook() +# sheet = workbook.active +# sheet.title = "Contractor Report" + +# # ================= CONTRACTOR DETAILS ================= +# sheet.append(["SUB CONTRACTOR DETAILS"]) +# sheet.cell(row=sheet.max_row, column=1).font = Font(bold=True) +# sheet.append([]) + +# sheet.append(["Name", contInfo.get("Contractor_Name") or ""]) +# sheet.append(["Mobile No", contInfo.get("Mobile_No") or ""]) +# sheet.append(["Email", contInfo.get("Email") or ""]) +# sheet.append(["Village", contInfo.get("Village_Name") or ""]) +# sheet.append(["Block", contInfo.get("Block_Name") or ""]) +# sheet.append(["District", contInfo.get("District_Name") or ""]) +# sheet.append(["State", contInfo.get("State_Name") or ""]) +# sheet.append(["Address", contInfo.get("Address") or ""]) +# sheet.append(["GST No", contInfo.get("GST_No") or ""]) +# sheet.append(["PAN No", contInfo.get("PAN_No") or ""]) +# sheet.append([]) +# sheet.append([]) + +# # ================= TABLE HEADERS ================= +# headers = [ +# "PMC No", "Village", "Invoice No", "Invoice Date", "Work Type","Invoice_Details", +# "Basic Amount", "Debit Amount", "After Debit Amount", +# "Amount", "GST Amount", "TDS Amount", "SD Amount", +# "On Commission", "Hydro Testing", "Hold Amount", +# "GST SD Amount", "Final Amount", +# "Payment Amount", "TDS Payment", +# "Total Amount", "UTR" +# ] +# sheet.append(headers) +# for col in range(1, len(headers) + 1): +# sheet.cell(row=sheet.max_row, column=col).font = Font(bold=True) + +# # ================= DATA ================= +# total_final = 0 +# total_payment = 0 +# total_amount = 0 + +# for inv in invoices: +# row = [ +# inv.get("PMC_No"), +# inv.get("Village_Name"), +# inv.get("invoice_no"), +# inv.get("Invoice_Date"), +# inv.get("Work_Type"), +# inv.get("Invoice_Details"), +# inv.get("Basic_Amount"), +# inv.get("Debit_Amount"), +# inv.get("After_Debit_Amount"), +# inv.get("Amount"), +# inv.get("GST_Amount"), +# inv.get("TDS_Amount"), +# inv.get("SD_Amount"), +# inv.get("On_Commission"), +# inv.get("Hydro_Testing"), +# inv.get("Hold_Amount"), +# inv.get("GST_SD_Amount"), +# inv.get("Final_Amount"), +# inv.get("Payment_Amount"), +# inv.get("TDS_Payment_Amount"), +# inv.get("Total_Amount"), +# inv.get("UTR") +# ] + +# total_final += float(inv.get("Final_Amount") or 0) +# total_payment += float(inv.get("Payment_Amount") or 0) +# total_amount += float(inv.get("Total_Amount") or 0) + +# sheet.append(row) + +# # ================= TOTAL ROW ================= +# sheet.append([]) +# sheet.append([ +# "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", +# "TOTAL", +# total_final, +# total_payment, +# "", +# total_amount, +# "" +# ]) + +# # ================= AUTO WIDTH ================= +# for column in sheet.columns: +# max_length = 0 +# column_letter = column[0].column_letter +# for cell in column: +# if cell.value: +# max_length = max(max_length, len(str(cell.value))) +# sheet.column_dimensions[column_letter].width = max_length + 2 + +# # ================= SAVE FILE ================= +# # output_folder = "downloads" +# # os.makedirs(output_folder, exist_ok=True) +# # filename = f"Contractor_Report_{contInfo.get('Contractor_Name')}.xlsx" +# # output_file = os.path.join(output_folder, filename) + +# filename = f"Contractor_Report_{contInfo.get('Contractor_Name')}.xlsx" +# output_file = FolderAndFile.get_download_path(filename) +# workbook.save(output_file) + +# return send_file(output_file, as_attachment=True) + +# except Exception as e: +# return str(e) \ No newline at end of file diff --git a/v-2/controllers/state_controller.py b/v-2/controllers/state_controller.py new file mode 100644 index 0000000..2ccada9 --- /dev/null +++ b/v-2/controllers/state_controller.py @@ -0,0 +1,69 @@ +from flask import Blueprint, render_template, request, redirect, url_for +from flask_login import login_required +from model.State import State + +state_bp = Blueprint('state', __name__) + + +@state_bp.route('/add_state', methods=['GET', 'POST']) +@login_required +def add_state(): + + state = State() + + if request.method == 'POST': + state.AddState(request=request) + return state.resultMessage + + statedata = state.GetAllStates(request=request) + + return render_template('add_state.html', statedata=statedata) + + +@state_bp.route('/check_state', methods=['POST']) +@login_required +def check_state(): + + state = State() + + return state.CheckState(request=request) + + +@state_bp.route('/delete_state/') +@login_required +def deleteState(id): + + state = State() + + msg = state.DeleteState(request=request, id=id) + + if not state.isSuccess: + return state.resultMessage + else: + return redirect(url_for('state.add_state')) + + +@state_bp.route('/edit_state/', methods=['GET', 'POST']) +@login_required +def editState(id): + + state = State() + + if request.method == 'POST': + + state.EditState(request=request, id=id) + + if state.isSuccess: + return redirect(url_for('state.add_state')) + else: + return state.resultMessage + + statedata = state.GetStateByID(request=request, id=id) + + if not state.isSuccess: + return state.resultMessage + + if statedata is None: + statedata = [] + + return render_template('edit_state.html', state=statedata) \ No newline at end of file diff --git a/v-2/controllers/subcontractor_controller.py b/v-2/controllers/subcontractor_controller.py new file mode 100644 index 0000000..884ed6a --- /dev/null +++ b/v-2/controllers/subcontractor_controller.py @@ -0,0 +1,117 @@ +from flask import Blueprint, render_template, request, redirect, url_for, jsonify +from flask_login import login_required +from model.Subcontractor import Subcontractor + +subcontractor_bp = Blueprint('subcontractor', __name__) + +# ---------------------------------------------------------- +# Helpers (unchanged) +# ---------------------------------------------------------- +class HtmlHelper: + @staticmethod + def json_response(data, status=200): + return jsonify(data), status + +class ResponseHandler: + @staticmethod + def fetch_failure(entity): + return {"status": "error", "message": f"Failed to fetch {entity}"} + + @staticmethod + def add_failure(entity): + return {"status": "error", "message": f"Failed to add {entity}"} + + @staticmethod + def update_failure(entity): + return {"status": "error", "message": f"Failed to update {entity}"} + + @staticmethod + def delete_failure(entity): + return {"status": "error", "message": f"Failed to delete {entity}"} + + +# ---------------------------------------------------------- +# LIST + ADD +# ---------------------------------------------------------- +@subcontractor_bp.route('/subcontractor', methods=['GET', 'POST']) +@login_required +def subcontract(): + + sub = Subcontractor() + + # ---------------- GET ---------------- + if request.method == 'GET': + subcontractor = sub.GetAllSubcontractors(request) + + if not sub.isSuccess: + return HtmlHelper.json_response( + ResponseHandler.fetch_failure("Subcontractor"), 500 + ) + + return render_template('add_subcontractor.html', subcontractor=subcontractor) + + # ---------------- POST (ADD) ---------------- + if request.method == 'POST': + + sub.AddSubcontractor(request) + + if not sub.isSuccess: + return HtmlHelper.json_response( + ResponseHandler.add_failure("Subcontractor"), 500 + ) + + # Reload list after insert + subcontractor = sub.GetAllSubcontractors(request) + + return render_template('add_subcontractor.html', subcontractor=subcontractor) + + +# ---------------------------------------------------------- +# EDIT +# ---------------------------------------------------------- +@subcontractor_bp.route('/edit_subcontractor/', methods=['GET', 'POST']) +@login_required +def edit_subcontractor(id): + + sub = Subcontractor() + + # Fetch data + subcontractor = sub.GetSubcontractorByID(id) + + if not subcontractor: + return HtmlHelper.json_response( + ResponseHandler.fetch_failure("Subcontractor"), 404 + ) + + # ---------------- POST (UPDATE) ---------------- + if request.method == 'POST': + + sub.EditSubcontractor(request, id) + + if not sub.isSuccess: + return HtmlHelper.json_response( + ResponseHandler.update_failure("Subcontractor"), 500 + ) + + return redirect(url_for('subcontractor.subcontract')) + + return render_template('edit_subcontractor.html', subcontractor=subcontractor) + + +# ---------------------------------------------------------- +# DELETE +# ---------------------------------------------------------- +@subcontractor_bp.route('/deleteSubContractor/', methods=['GET', 'POST']) +@login_required +def deleteSubContractor(id): + + sub = Subcontractor() + + sub.DeleteSubcontractor(request, id) + + if not sub.isSuccess: + return HtmlHelper.json_response( + ResponseHandler.delete_failure("Subcontractor"), 500 + ) + + return redirect(url_for('subcontractor.subcontract')) \ No newline at end of file diff --git a/v-2/controllers/village_controller.py b/v-2/controllers/village_controller.py new file mode 100644 index 0000000..02df862 --- /dev/null +++ b/v-2/controllers/village_controller.py @@ -0,0 +1,167 @@ +from flask import Blueprint, render_template, request, redirect, url_for, flash, jsonify +from flask_login import login_required + +import config + +from model.Village import Village +from model.State import State + +# Create Blueprint +village_bp = Blueprint('village', __name__) + + +# ------------------------- Add Village ------------------------- +@village_bp.route('/add_village', methods=['GET', 'POST']) +@login_required +def add_village(): + + village = Village() + + if request.method == 'POST': + village.AddVillage(request=request) + return village.resultMessage + + state = State() + states = state.GetAllStates(request=request) + + villages = village.GetAllVillages(request=request) + + return render_template( + 'add_village.html', + states=states, + villages=villages + ) + + +# ------------------------- Fetch Districts ------------------------- +@village_bp.route('/get_districts/') +@login_required +def get_districts(state_id): + + connection = config.get_db_connection() + cursor = connection.cursor() + + cursor.callproc("GetDistrictByStateID", [state_id]) + + districts = [] + + for rs in cursor.stored_results(): + districts = rs.fetchall() + + cursor.close() + connection.close() + + district_list = [] + + for d in districts: + district_list.append({ + "id": d[0], + "name": d[1] + }) + + return jsonify(district_list) + + +# ------------------------- Fetch Blocks ------------------------- +@village_bp.route('/get_blocks/') +@login_required +def get_blocks(district_id): + + connection = config.get_db_connection() + cursor = connection.cursor() + + cursor.callproc("GetBlocksByDistrictID", [district_id]) + + blocks = [] + + for rs in cursor.stored_results(): + blocks = rs.fetchall() + + cursor.close() + connection.close() + + block_list = [] + + for b in blocks: + block_list.append({ + "id": b[0], + "name": b[1] + }) + + return jsonify(block_list) + + +# ------------------------- Check Village ------------------------- +@village_bp.route('/check_village', methods=['POST']) +@login_required +def check_village(): + + village = Village() + return village.CheckVillage(request=request) + + +# ------------------------- Delete Village ------------------------- +@village_bp.route('/delete_village/') +@login_required +def delete_village(village_id): + + village = Village() + + village.DeleteVillage(request=request, village_id=village_id) + + if not village.isSuccess: + flash(village.resultMessage, "error") + else: + flash(village.resultMessage, "success") + + return redirect(url_for('village.add_village')) + + +# ------------------------- Edit Village ------------------------- +@village_bp.route('/edit_village/', methods=['GET', 'POST']) +@login_required +def edit_village(village_id): + + village = Village() + + if request.method == 'POST': + + village.EditVillage(request=request, village_id=village_id) + + if village.isSuccess: + flash(village.resultMessage, "success") + return redirect(url_for('village.add_village')) + + else: + flash(village.resultMessage, "error") + + village_data = village.GetVillageByID(request=request, id=village_id) + blocks = village.GetAllBlocks(request=request) + + return render_template( + 'edit_village.html', + village_data=village_data, + blocks=blocks + ) + + else: + + village_data = village.GetVillageByID(request=request, id=village_id) + + if not village.isSuccess: + flash(village.resultMessage, "error") + return redirect(url_for('village.add_village')) + + blocks = village.GetAllBlocks(request=request) + + if village_data is None: + village_data = [] + + if blocks is None: + blocks = [] + + return render_template( + 'edit_village.html', + village_data=village_data, + blocks=blocks + ) \ No newline at end of file diff --git a/v-2/docker-compose.yml b/v-2/docker-compose.yml new file mode 100644 index 0000000..2a3c49d --- /dev/null +++ b/v-2/docker-compose.yml @@ -0,0 +1,35 @@ +version: "3.8" + +services: + flask-app: + build: . + ports: + - "5000:5000" + depends_on: + - mysql + environment: + - MYSQL_HOST=mysql + - MYSQL_USER=root + - MYSQL_PASSWORD=root + - MYSQL_DB=test + networks: + - mynetwork + + mysql: + image: mysql:8.0 + restart: always + environment: + MYSQL_ROOT_PASSWORD: root + MYSQL_DATABASE: test + ports: + - "3306:3306" + volumes: + - mysql-data:/var/lib/mysql + networks: + - mynetwork + +volumes: + mysql-data: + +networks: + mynetwork: diff --git a/v-2/logs/activity.log b/v-2/logs/activity.log new file mode 100644 index 0000000..e69de29 diff --git a/v-2/logs/audit.log b/v-2/logs/audit.log new file mode 100644 index 0000000..02c0a11 --- /dev/null +++ b/v-2/logs/audit.log @@ -0,0 +1,74 @@ +2025-08-22 13:29:24,485 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.180 +2025-08-22 13:41:42,046 | User: v.sinha | Action: Logout | Details: User v.sinha logged out | IP: 192.168.0.180 +2025-08-22 14:07:01,924 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.180 +2025-08-22 15:05:59,287 | User: v.sinha | Action: Logout | Details: User v.sinha logged out | IP: 192.168.0.180 +2025-08-22 15:06:05,201 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.180 +2025-08-23 15:58:28,248 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.180 +2025-08-23 17:33:06,648 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.180 +2025-08-23 17:39:08,442 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.180 +2025-08-23 18:14:51,722 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.180 +2025-08-25 11:57:12,202 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.238 +2025-08-25 12:00:17,780 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.181 +2025-08-25 14:09:29,385 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.181 +2025-08-25 14:12:35,084 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.181 +2025-08-25 14:23:53,539 | User: v.sinha | Action: Checked State | Details: User MP Checking State | IP: 192.168.0.181 +2025-08-25 14:23:54,024 | User: v.sinha | Action: Added State | Details: User MP Adding State | IP: 192.168.0.181 +2025-08-25 14:23:57,113 | User: v.sinha | Action: Deleted State | Details: User 11 Deleting State | IP: 192.168.0.181 +2025-08-25 14:31:55,715 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.181 +2025-08-25 14:36:21,158 | User: v.sinha | Action: Checked State | Details: User MP Checking State | IP: 192.168.0.181 +2025-08-25 14:36:21,496 | User: v.sinha | Action: Added State | Details: State 'MP' added. | IP: 192.168.0.181 +2025-08-25 14:47:08,719 | User: v.sinha | Action: Checked State | Details: User Maharashtra Checking State | IP: 192.168.0.181 +2025-08-25 14:47:14,759 | User: v.sinha | Action: Deleted State | Details: User 12 Deleting State | IP: 192.168.0.181 +2025-08-25 14:47:16,915 | User: v.sinha | Action: Checked State | Details: User MP Checking State | IP: 192.168.0.181 +2025-08-25 14:47:17,708 | User: v.sinha | Action: Added State | Details: State 'MP' added. | IP: 192.168.0.181 +2025-08-25 14:49:09,480 | User: v.sinha | Action: Checked State | Details: User MP Checking State | IP: 192.168.0.181 +2025-08-25 14:49:13,014 | User: v.sinha | Action: Deleted State | Details: User 13 Deleting State | IP: 192.168.0.181 +2025-08-25 14:49:14,584 | User: v.sinha | Action: Checked State | Details: User MP Checking State | IP: 192.168.0.181 +2025-08-25 14:49:15,055 | User: v.sinha | Action: Added State | Details: State 'MP' added. | IP: 192.168.0.181 +2025-08-25 14:51:55,187 | User: v.sinha | Action: Checked State | Details: User MP Checking State | IP: 192.168.0.181 +2025-08-25 14:51:58,463 | User: v.sinha | Action: Deleted State | Details: User 14 Deleting State | IP: 192.168.0.181 +2025-08-25 14:52:00,606 | User: v.sinha | Action: Checked State | Details: User MP Checking State | IP: 192.168.0.181 +2025-08-25 14:52:00,953 | User: v.sinha | Action: Added State | Details: State 'MP' added. | IP: 192.168.0.181 +2025-08-25 14:54:26,674 | User: v.sinha | Action: Deleted State | Details: User 15 Deleting State | IP: 192.168.0.181 +2025-08-25 14:54:28,892 | User: v.sinha | Action: Checked State | Details: User MP Checking State | IP: 192.168.0.181 +2025-08-25 14:54:29,553 | User: v.sinha | Action: Added State | Details: State 'MP' added. | IP: 192.168.0.181 +2025-08-25 15:18:37,773 | User: v.sinha | Action: Logout | Details: User v.sinha logged out | IP: 192.168.0.181 +2025-08-25 15:18:43,347 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.181 +2025-08-25 15:20:41,331 | User: v.sinha | Action: Logout | Details: User v.sinha logged out | IP: 192.168.0.181 +2025-08-25 15:20:47,525 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.181 +2025-08-25 15:20:55,687 | User: v.sinha | Action: Checked State | Details: User MP Checking State | IP: 192.168.0.181 +2025-08-25 15:20:58,544 | User: v.sinha | Action: Deleted State | Details: User 16 Deleting State | IP: 192.168.0.181 +2025-08-25 16:33:49,898 | User: v.sinha | Action: Check State | Details: User v.sinha Checked state 'MP' | IP: 192.168.0.181 +2025-08-25 16:33:50,394 | User: v.sinha | Action: Add State | Details: User v.sinha added state 'MP' | IP: 192.168.0.181 +2025-08-25 16:43:46,446 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.181 +2025-08-25 16:43:49,710 | User: v.sinha | Action: Logout | Details: User v.sinha logged out | IP: 192.168.0.181 +2025-08-25 16:43:58,093 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.181 +2025-08-25 16:44:11,935 | User: v.sinha | Action: Check State | Details: User v.sinha Checked state 'shamli' | IP: 192.168.0.181 +2025-08-25 16:44:12,466 | User: v.sinha | Action: Add State | Details: User v.sinha added state 'shamli' | IP: 192.168.0.181 +2025-08-25 16:44:17,731 | User: v.sinha | Action: Delete State | Details: User v.sinha Deleted state '18' | IP: 192.168.0.181 +2025-08-25 16:57:27,983 | User: v.sinha | Action: Logout | Details: User v.sinha logged out | IP: 192.168.0.181 +2025-08-25 16:57:33,498 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.181 +2025-08-25 16:57:41,438 | User: v.sinha | Action: Check State | Details: User v.sinha Checked state 'shamli' | IP: 192.168.0.181 +2025-08-25 16:57:42,250 | User: v.sinha | Action: Add State | Details: User v.sinha added state 'shamli' | IP: 192.168.0.181 +2025-08-25 16:57:45,339 | User: v.sinha | Action: Delete State | Details: User v.sinha Deleted state '19' | IP: 192.168.0.181 +2025-08-25 16:57:48,794 | User: v.sinha | Action: Delete State | Details: User v.sinha Deleted state '17' | IP: 192.168.0.181 +2025-08-25 17:04:11,021 | User: v.sinha | Action: Logout | Details: User v.sinha logged out | IP: 192.168.0.181 +2025-08-25 17:04:16,165 | User: v.sinha | Action: Login | Details: User v.sinha logged in | IP: 192.168.0.181 +2025-08-25 17:04:21,702 | User: v.sinha | Action: Check State | Details: User v.sinha Checked state 'shamli' | IP: 192.168.0.181 +2025-08-25 17:04:22,159 | User: v.sinha | Action: Add State | Details: User v.sinha added state 'shamli' | IP: 192.168.0.181 +2025-08-25 17:04:26,850 | User: v.sinha | Action: Check State | Details: User v.sinha Checked state 'M' | IP: 192.168.0.181 +2025-08-25 17:04:27,076 | User: v.sinha | Action: Check State | Details: User v.sinha Checked state 'MP' | IP: 192.168.0.181 +2025-08-25 17:04:28,070 | User: v.sinha | Action: Add State | Details: User v.sinha added state 'MP' | IP: 192.168.0.181 +2025-08-25 17:04:32,165 | User: v.sinha | Action: Delete State | Details: User v.sinha Deleted state '21' | IP: 192.168.0.181 +2025-08-25 17:04:35,058 | User: v.sinha | Action: Delete State | Details: User v.sinha Deleted state '20' | IP: 192.168.0.181 +2025-08-25 17:06:05,113 | User: v.sinha | Action: Check District | Details: User v.sinha Checked District 'Shamli' | IP: 192.168.0.181 +2025-08-25 17:06:05,114 | User: v.sinha | Action: Check District | Details: User v.sinha Checked District 'Shamli' | IP: 192.168.0.181 +2025-08-25 17:06:08,040 | User: v.sinha | Action: Check District | Details: User v.sinha Checked District 'p' | IP: 192.168.0.181 +2025-08-25 17:06:08,360 | User: v.sinha | Action: Check District | Details: User v.sinha Checked District 'pu' | IP: 192.168.0.181 +2025-08-25 17:06:08,554 | User: v.sinha | Action: Check District | Details: User v.sinha Checked District 'pun' | IP: 192.168.0.181 +2025-08-25 17:06:08,756 | User: v.sinha | Action: Check District | Details: User v.sinha Checked District 'pune' | IP: 192.168.0.181 +2025-08-25 17:06:10,190 | User: v.sinha | Action: Check District | Details: User v.sinha Checked District 'pune' | IP: 192.168.0.181 +2025-08-25 17:06:11,204 | User: v.sinha | Action: Check District | Details: User v.sinha Checked District 'pune' | IP: 192.168.0.181 +2025-08-25 17:06:11,206 | User: v.sinha | Action: Check District | Details: User v.sinha Checked District 'pune' | IP: 192.168.0.181 +2025-08-25 17:06:13,085 | User: v.sinha | Action: Add District | Details: User v.sinha Added District 'pune' | IP: 192.168.0.181 +2025-08-25 17:06:19,524 | User: v.sinha | Action: Delete District | Details: User v.sinha Deleted District '5' | IP: 192.168.0.181 diff --git a/v-2/main.py b/v-2/main.py new file mode 100644 index 0000000..96a2977 --- /dev/null +++ b/v-2/main.py @@ -0,0 +1,68 @@ +# main.py +from flask import Flask, render_template +from flask_login import LoginManager +from model.Auth import User + +# Import Blueprints / Controllers +from controllers.auth_controller import auth_bp +from controllers.log_controller import log_bp +from controllers.state_controller import state_bp +from controllers.district_controller import district_bp +from controllers.block_controller import block_bp +from controllers.village_controller import village_bp +from controllers.invoice_controller import invoice_bp +from controllers.subcontractor_controller import subcontractor_bp +from controllers.payment_controller import payment_bp +from controllers.gst_release_controller import gst_release_bp +from controllers.excel_upload_controller import excel_bp +from controllers.report_controller import report_bp +from controllers.pmc_report_controller import pmc_report_bp + +from controllers.hold_types_controller import hold_bp +from dotenv import load_dotenv +import os + +# ---------------- Initialize App ---------------- +app = Flask(__name__) + +load_dotenv() +Secret_Key = os.getenv("SECRET_KEY") +app.secret_key = Secret_Key + +# ---------------- Login Manager ---------------- +login_manager = LoginManager() +login_manager.init_app(app) +login_manager.login_view = 'auth.login' + +@login_manager.user_loader +def load_user(user_id): + return User(user_id) + +# ---------------- Home Route ---------------- +@app.route('/') +def index(): + return render_template("index.html") + +# ---------------- Register Blueprints ---------------- + +app.register_blueprint(auth_bp) +app.register_blueprint(log_bp) +app.register_blueprint(state_bp) +app.register_blueprint(district_bp) +app.register_blueprint(block_bp) +app.register_blueprint(village_bp) +app.register_blueprint(invoice_bp) +app.register_blueprint(subcontractor_bp) +app.register_blueprint(payment_bp) +app.register_blueprint(gst_release_bp) +app.register_blueprint(excel_bp) +app.register_blueprint(report_bp) +app.register_blueprint(pmc_report_bp) +app.register_blueprint(hold_bp) + +# ---------------- Run App ---------------- +if __name__ == '__main__': + app.run(host='0.0.0.0', port=5000, debug=True) + + + diff --git a/v-2/model/Auth.py b/v-2/model/Auth.py new file mode 100644 index 0000000..e1b9cd4 --- /dev/null +++ b/v-2/model/Auth.py @@ -0,0 +1,63 @@ +import os +from dotenv import load_dotenv +from flask_login import UserMixin +from ldap3 import Server, Connection, ALL +from ldap3.core.exceptions import LDAPBindError + +# Load .env +load_dotenv() + + +class DefaultCredentials: + username = os.getenv("DEFAULT_USERNAME") + password = os.getenv("DEFAULT_PASSWORD") + + +class LoginLDAP: + + def __init__(self, request): + + self.username = request.form.get("username", "").strip() + self.password = request.form.get("password", "") + + self.isDefaultCredentials = False + self.isValidLogin = False + self.errorMessage = "" + + ldap_server = "ldap://localhost:389" + ldap_user_dn = f"uid={self.username},ou=users,dc=lcepl,dc=org" + + # fallback admin login + if ( + self.username == DefaultCredentials.username + and self.password == DefaultCredentials.password + ): + self.isDefaultCredentials = True + self.isValidLogin = True + return + + try: + + server = Server(ldap_server, get_info=ALL) + + conn = Connection( + server, + user=ldap_user_dn, + password=self.password, + auto_bind=True + ) + + if conn.bound: + self.isValidLogin = True + + except LDAPBindError: + self.errorMessage = "Invalid LDAP credentials" + + except Exception as e: + self.errorMessage = str(e) + + +class User(UserMixin): + + def __init__(self, username): + self.id = username \ No newline at end of file diff --git a/v-2/model/Block.py b/v-2/model/Block.py new file mode 100644 index 0000000..c963d28 --- /dev/null +++ b/v-2/model/Block.py @@ -0,0 +1,165 @@ +from flask import Flask, render_template, request, redirect, url_for, send_from_directory, flash, jsonify, json +from flask import current_app + +from datetime import datetime +from flask_login import LoginManager, UserMixin, login_user, logout_user, login_required, current_user + +from model.Utilities import RegEx, ResponseHandler, HtmlHelper, ItemCRUDType +from model.Log import LogData, LogHelper + +import os +import config +import re + +import mysql.connector +from mysql.connector import Error + +from model.ItemCRUD import ItemCRUD, itemCRUDMapping + + +class Block: + + isSuccess = False + resultMessage = "" + + def __init__(self): + self.isSuccess = False + self.resultMessage = "" + + # ---------------------------------------------------------- + # Add Block + # ---------------------------------------------------------- + def AddBlock(self, request): + + block = ItemCRUD(itemType=ItemCRUDType.Block) + + district_id = request.form.get('district_Id') + block_name = request.form.get('block_Name', '').strip() + + block.AddItem(request=request, parentid=district_id, childname=block_name, storedprocfetch="GetBlockByNameAndDistricts", storedprocadd="SaveBlock" ) + self.isSuccess = block.isSuccess + self.resultMessage = block.resultMessage + return + + # ---------------------------------------------------------- + # Get All Blocks + # ---------------------------------------------------------- + # def GetAllBlocks(self): + + # block = ItemCRUD(itemType=ItemCRUDType.Block) + # blocksdata = block.GetAllData(request=request, storedproc="GetAllBlock") + # self.isSuccess = block.isSuccess + # self.resultMessage = block.resultMessage + # return blocksdata + + def GetAllBlocks(self, request): + + block = ItemCRUD(itemType=ItemCRUDType.Block) + blocksdata = block.GetAllData(request=request, storedproc="GetAllBlock") + + self.isSuccess = block.isSuccess + self.resultMessage = block.resultMessage + return blocksdata + + # ---------------------------------------------------------- + # Check Block Exists + # ---------------------------------------------------------- + + # def CheckBlock(self, request): + # block = ItemCRUD(itemType=ItemCRUDType.Block) + # block_name = request.json.get('block_Name', '').strip() + # district_id = request.json.get('district_Id') + # result = block.CheckItem(request=request, parentid=district_id, childname=block_name, storedprocfetch="GetBlockByNameAndDistrict") + # self.isSuccess = block.isSuccess + # self.resultMessage = block.resultMessage + # return result + def CheckBlock(self, request): + block = ItemCRUD(itemType=ItemCRUDType.Block) + data = request.get_json(silent=True) or request.form + block_name = (data.get('block_Name') or '').strip() + district_id = data.get('district_Id') + + result = block.CheckItem( + request=request, + parentid=district_id, + childname=block_name, + storedprocfetch="GetBlockByNameAndDistrict" + ) + self.isSuccess = block.isSuccess + self.resultMessage = block.resultMessage + return result + + # ---------------------------------------------------------- + # Get Block By ID + # ---------------------------------------------------------- + # def GetBlockByID(self, id): + + # block = ItemCRUD(itemType=ItemCRUDType.Village) + # blockdata = block.GetAllData(id=id,storedproc="GetBlockDataByID") + # self.isSuccess = block.isSuccess + # self.resultMessage = block.resultMessage + # print("akash"+blockdata) + # return blockdata + + # def GetBlockByID(self,request,id): + # block = ItemCRUD(itemType=ItemCRUDType.Block) + # blockdata = block.GetDataByID(request=request,id=id,storedproc="GetBlockDataByID") + # self.isSuccess = block.isSuccess + # self.resultMessage = block.resultMessage + # return blockdata + def GetBlockByID(self, id): + + block = ItemCRUD(itemType=ItemCRUDType.Block) + + blockdata = block.GetDataByID( + id=id, + storedproc="GetBlockDataByID" + ) + + self.isSuccess = block.isSuccess + self.resultMessage = block.resultMessage + + return blockdata + # ---------------------------------------------------------- + # Update Block + # ---------------------------------------------------------- + # def EditBlock(self, request, block_id): + + # block = ItemCRUD(itemType=ItemCRUDType.Block) + + # district_id = request.form.get('district_Id') + # block_name = request.form.get('block_Name', '').strip() + + # block.EditItem(request=request, childid=block_id, parentid=district_id, childname=block_name, storedprocadd="UpdateBlockById" ) + # self.isSuccess = block.isSuccess + # self.resultMessage = block.resultMessage + # return + def EditBlock(self, request, block_id): + + block = ItemCRUD(itemType=ItemCRUDType.Block) + + district_id = request.form.get('district_Id') + block_name = request.form.get('block_Name', '').strip() + + block.EditItem( + request=request, + childid=block_id, + parentid=district_id, + childname=block_name, + storedprocupdate="UpdateBlockById" + ) + + self.isSuccess = block.isSuccess + self.resultMessage = block.resultMessage + return render_template('add_block.html') + + # ---------------------------------------------------------- + # Delete Block + # --------------------------------------------------------- + def DeleteBlock(self,request, id): + block = ItemCRUD(itemType=ItemCRUDType.Block) + + block.DeleteItem(request=request,itemID=id, storedprocDelete="DeleteBlock") + self.isSuccess = block.isSuccess + self.resultMessage = block.resultMessage + return \ No newline at end of file diff --git a/v-2/model/ContractorInfo.py b/v-2/model/ContractorInfo.py new file mode 100644 index 0000000..a4eb36b --- /dev/null +++ b/v-2/model/ContractorInfo.py @@ -0,0 +1,72 @@ +import mysql.connector +from mysql.connector import Error +import config +import openpyxl +import os +import re +import ast +from datetime import datetime + + +class ContractorInfo: + ID = "" + contInfo = None + def __init__(self, id): + self.ID = id + print(id) + self.fetchData() + + def fetchData(self): + try: + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True, buffered=True) + cursor.callproc('GetContractorInfoById', [self.ID]) + for result in cursor.stored_results(): + self.contInfo = result.fetchone() + + print(self.contInfo,flush=True) + finally: + cursor.close() + connection.close() + + def fetchalldata(self): + + try: + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True, buffered=True) + print("here", flush=True) + + + # ---------------- Hold Types ---------------- + cursor = connection.cursor(dictionary=True) + + cursor.callproc('GetHoldTypesByContractor', [self.ID]) + + hold_types = [] + for result in cursor.stored_results(): + hold_types = result.fetchall() + hold_type_map = {ht['hold_type_id']: ht['hold_type'] for ht in hold_types} + + # ---------------- Invoices ---------------- + cursor = connection.cursor(dictionary=True) + + cursor.callproc('GetInvoicesByContractor', [self.ID]) + + invoices = [] + for result in cursor.stored_results(): + invoices = result.fetchall() + + # Remove duplicate invoices + invoice_ids_seen = set() + unique_invoices = [] + for inv in invoices: + if inv["Invoice_Id"] not in invoice_ids_seen: + invoice_ids_seen.add(inv["Invoice_Id"]) + unique_invoices.append(inv) + invoices = unique_invoices + + finally: + cursor.close() + connection.close() + + diff --git a/v-2/model/District.py b/v-2/model/District.py new file mode 100644 index 0000000..14ecea5 --- /dev/null +++ b/v-2/model/District.py @@ -0,0 +1,100 @@ +from flask import Flask, render_template, request, redirect, url_for, send_from_directory, flash, jsonify, json +from flask import current_app + +from datetime import datetime +from flask_login import LoginManager, UserMixin, login_user, logout_user, login_required, current_user + +from model.Utilities import RegEx, ResponseHandler, HtmlHelper, ItemCRUDType +from model.Log import LogData, LogHelper + +import os +import config +import re + +import mysql.connector +from mysql.connector import Error + +from model.ItemCRUD import ItemCRUD +class District: + + isSuccess = False + resultMessage = "" + + def __init__(self): + self.isSuccess = False + self.resultMessage = "" + + + def EditDistrict(self, request, district_id): + district = ItemCRUD(itemType=ItemCRUDType.District) + + district_name = request.form['district_Name'].strip() + state_id = request.form['state_Id'] + + district.EditItem(request=request, childid=district_id, parentid=state_id, childname=district_name,storedprocupdate="UpdateDistrict" ) + self.isSuccess = district.isSuccess + self.resultMessage = district.resultMessage + return + + + def AddDistrict(self, request): + + district = ItemCRUD(ItemCRUDType.District) + + district_name = request.form['district_Name'].strip() + state_id = request.form['state_Id'] + + district.AddItem(request=request, parentid=state_id, childname=district_name, storedprocfetch="GetDistrictByNameAndState", storedprocadd="SaveDistrict" ) + self.isSuccess = district.isSuccess + self.resultMessage = district.resultMessage + return + + + + def GetAllDistricts(self, request): + district = ItemCRUD(itemType=ItemCRUDType.District) + districtsdata = district.GetAllData(request=request, storedproc="GetAllDistricts") + self.isSuccess = district.isSuccess + self.resultMessage = district.resultMessage + return districtsdata + + + def CheckDistrict(self, request): + district = ItemCRUD(itemType=ItemCRUDType.District) + district_name = request.json.get('district_Name', '').strip() + state_id = request.json.get('state_Id', '') + result = district.CheckItem(request=request, parentid=state_id, childname=district_name, storedprocfetch="GetDistrictByNameAndState") + self.isSuccess = district.isSuccess + self.resultMessage = district.resultMessage + return result + + + # def GetDistrictByID(self, request,district_id): + # district = ItemCRUD(itemType=ItemCRUDType.District) + # districtdata = district.GetAllData(id=district_id,storedproc="GetDistrictDataByID") + # self.isSuccess = district.isSuccess + # self.resultMessage = district.resultMessage + # return districtdata + def GetDistrictByID(self, request, district_id): + district = ItemCRUD(itemType=ItemCRUDType.District) + + districtdata = district.GetDataByID( + id=district_id, + storedproc="GetDistrictDataByID" + ) + + if districtdata: + self.isSuccess = True + else: + self.isSuccess = False + self.resultMessage = "District not found" + + return districtdata + + +#Delete District + def DeleteDistrict(self, request, district_id): + district = ItemCRUD(itemType=ItemCRUDType.District) + district.DeleteItem(request=request,itemID=district_id,storedprocDelete="DeleteDistrict") + self.isSuccess = district.isSuccess + self.resultMessage = str(district.resultMessage) \ No newline at end of file diff --git a/v-2/model/FolderAndFile.py b/v-2/model/FolderAndFile.py new file mode 100644 index 0000000..65dedef --- /dev/null +++ b/v-2/model/FolderAndFile.py @@ -0,0 +1,39 @@ +import os +from flask import current_app + + +class FolderAndFile: + + # ----------------------------- + # BASE FOLDER METHODS + # ----------------------------- + @staticmethod + def get_download_folder(): + folder = os.path.join(current_app.root_path, "static", "downloads") + + if not os.path.exists(folder): + os.makedirs(folder) + + os.makedirs(folder, exist_ok=True) + return folder + + @staticmethod + def get_upload_folder(): + folder = os.path.join(current_app.root_path, "static", "uploads") + + if not os.path.exists(folder): + os.makedirs(folder) + + os.makedirs(folder, exist_ok=True) + return folder + + # ----------------------------- + # FILE PATH METHODS + # ----------------------------- + @staticmethod + def get_download_path(filename): + return os.path.join(FolderAndFile.get_download_folder(), filename) + + @staticmethod + def get_upload_path(filename): + return os.path.join(FolderAndFile.get_upload_folder(), filename) \ No newline at end of file diff --git a/v-2/model/GST.py b/v-2/model/GST.py new file mode 100644 index 0000000..a908dd9 --- /dev/null +++ b/v-2/model/GST.py @@ -0,0 +1,55 @@ +import config + +class GST: + + @staticmethod + def get_unreleased_gst(): + + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + try: + # ----------- Invoices ----------- + cursor.callproc('GetAllInvoicesBasic') + invoices = [] + for result in cursor.stored_results(): + invoices = result.fetchall() + + + # ----------- GST Releases ----------- + cursor.callproc('GetAllGSTReleasesBasic') + gst_releases = [] + for result in cursor.stored_results(): + gst_releases = result.fetchall() + + gst_invoice_nos = { + g['Invoice_No'] + for g in gst_releases + if g['Invoice_No'] + } + + gst_basic_amounts = { + float(g['Basic_Amount']) + for g in gst_releases + if g['Basic_Amount'] is not None + } + + unreleased = [] + + for inv in invoices: + + match_by_invoice = inv['Invoice_No'] in gst_invoice_nos + + match_by_gst_amount = float( + inv.get('GST_SD_Amount') or 0 + ) in gst_basic_amounts + + if not (match_by_invoice or match_by_gst_amount): + unreleased.append(inv) + + return unreleased + + finally: + cursor.close() + connection.close() + \ No newline at end of file diff --git a/v-2/model/HoldTypes.py b/v-2/model/HoldTypes.py new file mode 100644 index 0000000..b8a9a46 --- /dev/null +++ b/v-2/model/HoldTypes.py @@ -0,0 +1,90 @@ +from flask import request +from model.ItemCRUD import ItemCRUD +from model.Utilities import ItemCRUDType + +class HoldTypes: + """CRUD operations for Hold Types using ItemCRUD""" + + def __init__(self): + self.isSuccess = False + self.resultMessage = "" + + # ------------------- Add Hold Type ------------------- + def AddHoldType(self, request): + hold = ItemCRUD(itemType=ItemCRUDType.HoldType) + hold_name = request.form.get('hold_type', '').strip() + + hold.AddItem( + request=request, + parentid=None, + childname=hold_name, + storedprocfetch="CheckHoldTypeExists", + storedprocadd="SaveHoldType" + ) + + self.isSuccess = hold.isSuccess + self.resultMessage = hold.resultMessage + + # ------------------- Get All Hold Types ------------------- + def GetAllHoldTypes(self, request=None): + hold = ItemCRUD(itemType=ItemCRUDType.HoldType) + rows = hold.GetAllData(request=request, storedproc="GetAllHoldTypes") + + self.isSuccess = hold.isSuccess + self.resultMessage = hold.resultMessage + + # ✅ Convert tuple → dictionary + data = [] + for row in rows: + data.append({ + "hold_type_id": row[0], + "hold_type": row[1] + }) + + return data + + # ------------------- Get Hold Type By ID ------------------- + def GetHoldTypeByID(self, hold_type_id): + hold = ItemCRUD(itemType=ItemCRUDType.HoldType) + row = hold.GetDataByID(hold_type_id, storedproc="GetHoldTypesById") + + self.isSuccess = hold.isSuccess + self.resultMessage = hold.resultMessage + + # ✅ Convert tuple → dictionary + if row: + return { + "hold_type_id": row[0], + "hold_type": row[1] + } + + return None + + # ------------------- Update Hold Type ------------------- + def EditHoldType(self, request, hold_type_id): + hold = ItemCRUD(itemType=ItemCRUDType.HoldType) + hold_name = request.form.get('hold_type', '').strip() + + hold.EditItem( + request=request, + childid=hold_type_id, + parentid=None, + childname=hold_name, + storedprocupdate="UpdateHoldTypeById" + ) + + self.isSuccess = hold.isSuccess + self.resultMessage = hold.resultMessage + + # ------------------- Delete Hold Type ------------------- + def DeleteHoldType(self, request, hold_type_id): + hold = ItemCRUD(itemType=ItemCRUDType.HoldType) + + hold.DeleteItem( + request=request, + itemID=hold_type_id, + storedprocDelete="DeleteHoldType" + ) + + self.isSuccess = hold.isSuccess + self.resultMessage = hold.resultMessage \ No newline at end of file diff --git a/v-2/model/Invoice.py b/v-2/model/Invoice.py new file mode 100644 index 0000000..ac148ac --- /dev/null +++ b/v-2/model/Invoice.py @@ -0,0 +1,379 @@ +import config +import mysql.connector + +# ------------------- Helper ------------------- +def clear_results(cursor): + for r in cursor.stored_results(): + r.fetchall() + + +# ------------------- Get Village Id ------------------- +def get_village_id(village_name): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + cursor.callproc("GetVillageIdByName", (village_name,)) + village_result = None + + for rs in cursor.stored_results(): + village_result = rs.fetchone() + + cursor.close() + connection.close() + return village_result + + +# ------------------- Insert Invoice ------------------- +def insert_invoice(data, village_id): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + try: + # 1. Insert Invoice + cursor.callproc('InsertInvoice', [ + data.get('pmc_no'), + village_id, + data.get('work_type'), + data.get('invoice_details'), + data.get('invoice_date'), + data.get('invoice_no'), + float(data.get('basic_amount') or 0), + float(data.get('debit_amount') or 0), + float(data.get('after_debit_amount') or 0), + float(data.get('amount') or 0), + float(data.get('gst_amount') or 0), + float(data.get('tds_amount') or 0), + float(data.get('sd_amount') or 0), + float(data.get('on_commission') or 0), + float(data.get('hydro_testing') or 0), + float(data.get('gst_sd_amount') or 0), + float(data.get('final_amount') or 0) + ]) + + invoice_id = None + for result in cursor.stored_results(): + row = result.fetchone() + if row: + invoice_id = row.get('invoice_id') + + if not invoice_id: + raise Exception("Invoice ID not returned") + + # 2. Insert Inpayment + cursor.callproc('InsertInpayment', [ + data.get('pmc_no'), + village_id, + data.get('work_type'), + data.get('invoice_details'), + data.get('invoice_date'), + data.get('invoice_no'), + float(data.get('basic_amount') or 0), + float(data.get('debit_amount') or 0), + float(data.get('after_debit_amount') or 0), + float(data.get('amount') or 0), + float(data.get('gst_amount') or 0), + float(data.get('tds_amount') or 0), + float(data.get('sd_amount') or 0), + float(data.get('on_commission') or 0), + float(data.get('hydro_testing') or 0), + float(data.get('gst_sd_amount') or 0), + float(data.get('final_amount') or 0), + data.get('subcontractor_id') + ]) + clear_results(cursor) + + connection.commit() + return invoice_id + + except Exception as e: + connection.rollback() + raise e + + finally: + cursor.close() + connection.close() + + +# ------------------- Assign Subcontractor ------------------- +def assign_subcontractor(data, village_id): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + try: + cursor.callproc('AssignSubcontractor', [ + data.get('pmc_no'), + data.get('subcontractor_id'), + village_id + ]) + clear_results(cursor) + + connection.commit() + + except Exception as e: + connection.rollback() + raise e + + finally: + cursor.close() + connection.close() + + +# ------------------- Insert Hold Types ------------------- +def insert_hold_types(data, invoice_id): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + try: + hold_types = data.getlist('hold_type[]') + hold_amounts = data.getlist('hold_amount[]') + + for hold_type, hold_amount in zip(hold_types, hold_amounts): + if not hold_type: + continue + + cursor.callproc('GetHoldTypeIdByName', [hold_type]) + hold_type_result = None + + for result in cursor.stored_results(): + hold_type_result = result.fetchone() + + if not hold_type_result: + cursor.callproc('InsertHoldType', [hold_type, 0]) + cursor.execute("SELECT @_InsertHoldType_1") + hold_type_id = cursor.fetchone()[0] + else: + hold_type_id = hold_type_result['hold_type_id'] + + hold_amount = float(hold_amount or 0) + + cursor.callproc('InsertInvoiceSubcontractorHold', [ + data.get('subcontractor_id'), + invoice_id, + hold_type_id, + hold_amount + ]) + clear_results(cursor) + + connection.commit() + + except Exception as e: + connection.rollback() + raise e + + finally: + cursor.close() + connection.close() + + +# ------------------- Get All Invoices ------------------- +def get_all_invoice_details(): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + cursor.callproc('GetAllInvoiceDetails') + invoices = [] + + for result in cursor.stored_results(): + invoices = result.fetchall() + + cursor.close() + connection.close() + return invoices + + +# ------------------- Get All Villages ------------------- +def get_all_villages(): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + cursor.callproc("GetAllVillages") + villages = [] + + for result in cursor.stored_results(): + villages = result.fetchall() + + cursor.close() + connection.close() + return villages + + +# ------------------- Search Contractors ------------------- +def search_contractors(sub_query): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + cursor.callproc('SearchContractorsByName', [sub_query]) + results = [] + + for result in cursor.stored_results(): + results = result.fetchall() + + cursor.close() + connection.close() + return results + + +# ------------------- Get All Hold Types ------------------- +def get_all_hold_types(): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + cursor.callproc("GetAllHoldTypes") + hold_types = [] + + for result in cursor.stored_results(): + hold_types = result.fetchall() + + cursor.close() + connection.close() + return hold_types + + +# ------------------- Get Invoice By Id ------------------- +def get_invoice_by_id(invoice_id): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + cursor.callproc('GetInvoiceDetailsById', [invoice_id]) + invoice = None + + for result in cursor.stored_results(): + invoice = result.fetchone() + + cursor.callproc('GetHoldAmountsByInvoiceId', [invoice_id]) + hold_amounts = [] + + for result in cursor.stored_results(): + hold_amounts = result.fetchall() + + if invoice: + invoice["hold_amounts"] = hold_amounts + + cursor.close() + connection.close() + return invoice + + +# ------------------- Update Invoice ------------------- +def update_invoice(data, invoice_id): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + try: + cursor.callproc("GetVillageIdByName", (data.get('village'),)) + village = None + + for rs in cursor.stored_results(): + village = rs.fetchone() + + village_id = village['Village_Id'] + + numeric = [ + float(data.get('basic_amount') or 0), + float(data.get('debit_amount') or 0), + float(data.get('after_debit_amount') or 0), + float(data.get('amount') or 0), + float(data.get('gst_amount') or 0), + float(data.get('tds_amount') or 0), + float(data.get('sd_amount') or 0), + float(data.get('on_commission') or 0), + float(data.get('hydro_testing') or 0), + float(data.get('gst_sd_amount') or 0), + float(data.get('final_amount') or 0), + ] + + cursor.callproc('UpdateInvoice', [ + data.get('pmc_no'), + village_id, + data.get('work_type'), + data.get('invoice_details'), + data.get('invoice_date'), + data.get('invoice_no'), + *numeric, + invoice_id + ]) + clear_results(cursor) + + connection.commit() + + except Exception as e: + connection.rollback() + raise e + + finally: + cursor.close() + connection.close() + + +# ------------------- Update Inpayment ------------------- +def update_inpayment(data): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + try: + numeric = [ + float(data.get('basic_amount') or 0), + float(data.get('debit_amount') or 0), + float(data.get('after_debit_amount') or 0), + float(data.get('amount') or 0), + float(data.get('gst_amount') or 0), + float(data.get('tds_amount') or 0), + float(data.get('sd_amount') or 0), + float(data.get('on_commission') or 0), + float(data.get('hydro_testing') or 0), + float(data.get('gst_sd_amount') or 0), + float(data.get('final_amount') or 0), + ] + + cursor.callproc('UpdateInpayment', [ + data.get('work_type'), + data.get('invoice_details'), + data.get('invoice_date'), + *numeric, + data.get('pmc_no'), + data.get('invoice_no') + ]) + clear_results(cursor) + + connection.commit() + + except Exception as e: + connection.rollback() + raise e + + finally: + cursor.close() + connection.close() + + +# ------------------- Delete Invoice ------------------- +def delete_invoice_data(invoice_id, user_id): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + try: + cursor.callproc('GetInvoicePMCById', [invoice_id]) + + record = {} + for result in cursor.stored_results(): + record = result.fetchone() or {} + if not record: + raise Exception("Invoice not found") + + cursor.callproc("DeleteInvoice", (invoice_id,)) + clear_results(cursor) + + cursor.callproc( + 'DeleteInpaymentByPMCInvoice', + [record['PMC_No'], record['invoice_no']] + ) + + connection.commit() + + except Exception as e: + connection.rollback() + raise e + + finally: + cursor.close() + connection.close() \ No newline at end of file diff --git a/v-2/model/ItemCRUD.py b/v-2/model/ItemCRUD.py new file mode 100644 index 0000000..19f8dfb --- /dev/null +++ b/v-2/model/ItemCRUD.py @@ -0,0 +1,359 @@ +from flask_login import current_user +from model.Utilities import RegEx, ResponseHandler, HtmlHelper, ItemCRUDType +from model.Log import LogHelper + +import config +import re +import mysql.connector + + +# ---------------------------------------------------------- +# Mapping Class +# ---------------------------------------------------------- +class itemCRUDMapping: + + def __init__(self, itemType): + if itemType is ItemCRUDType.Village: + self.name = "Village" + elif itemType is ItemCRUDType.Block: + self.name = "Block" + elif itemType is ItemCRUDType.State: + self.name = "State" + elif itemType is ItemCRUDType.HoldType: + self.name = "Hold Type" + elif itemType is ItemCRUDType.Subcontractor: + self.name = "Subcontractor" + else: + self.name = "Item" + + +# ---------------------------------------------------------- +# Generic CRUD Class +# ---------------------------------------------------------- +class ItemCRUD: + + def __init__(self, itemType): + self.isSuccess = False + self.resultMessage = "" + self.itemCRUDType = itemType + self.itemCRUDMapping = itemCRUDMapping(itemType) + + # ---------------------------------------------------------- + # DELETE + # ---------------------------------------------------------- + def DeleteItem(self, request, itemID, storedprocDelete): + + connection = config.get_db_connection() + cursor = connection.cursor() + + LogHelper.log_action( + f"Delete {self.itemCRUDMapping.name}", + f"User {current_user.id} deleted {self.itemCRUDMapping.name} '{itemID}'" + ) + + try: + cursor.callproc(storedprocDelete, (itemID,)) + connection.commit() + + self.isSuccess = True + self.resultMessage = HtmlHelper.json_response( + ResponseHandler.delete_success(self.itemCRUDMapping.name), 200 + ) + + except mysql.connector.Error as e: + print(f"Error deleting {self.itemCRUDMapping.name}: {e}") + self.isSuccess = False + self.resultMessage = HtmlHelper.json_response( + ResponseHandler.delete_failure(self.itemCRUDMapping.name), 500 + ) + + finally: + cursor.close() + connection.close() + + # ---------------------------------------------------------- + # ADD + # ---------------------------------------------------------- + def AddItem(self, request, parentid=None, childname=None, storedprocfetch=None, storedprocadd=None, data=None): + + connection = config.get_db_connection() + if not connection: + self.isSuccess = False + self.resultMessage = HtmlHelper.json_response( + ResponseHandler.db_connection_failure(), 500 + ) + return + + cursor = connection.cursor() + + LogHelper.log_action( + f"Add {self.itemCRUDMapping.name}", + f"User {current_user.id} adding '{childname if childname else (data.get('Contractor_Name') if data else '')}'" + ) + + try: + # ====================================================== + # SUBCONTRACTOR (MULTI-FIELD) + # ====================================================== + if data: + + # Duplicate check + cursor.callproc(storedprocfetch, (data['Contractor_Name'],)) + + existing_item = None + for rs in cursor.stored_results(): + existing_item = rs.fetchone() + + if existing_item: + self.isSuccess = False + self.resultMessage = HtmlHelper.json_response( + ResponseHandler.already_exists(self.itemCRUDMapping.name), 409 + ) + return + + # Insert + cursor.callproc(storedprocadd, ( + data['Contractor_Name'], + data['Address'], + data['Mobile_No'], + data['PAN_No'], + data['Email'], + data['Gender'], + data['GST_Registration_Type'], + data['GST_No'], + data['Contractor_password'] + )) + + connection.commit() + + self.isSuccess = True + self.resultMessage = HtmlHelper.json_response( + ResponseHandler.add_success(self.itemCRUDMapping.name), 200 + ) + return + + # ====================================================== + # NORMAL (Village / Block / State) + # ====================================================== + if not re.match(RegEx.patternAlphabetOnly, childname): + self.isSuccess = False + self.resultMessage = HtmlHelper.json_response( + ResponseHandler.invalid_name(self.itemCRUDMapping.name), 400 + ) + return + + # Duplicate check + if parentid is None: + cursor.callproc(storedprocfetch, (childname,)) + else: + cursor.callproc(storedprocfetch, (childname, parentid)) + + existing_item = None + for rs in cursor.stored_results(): + existing_item = rs.fetchone() + + if existing_item: + self.isSuccess = False + self.resultMessage = HtmlHelper.json_response( + ResponseHandler.already_exists(self.itemCRUDMapping.name), 409 + ) + return + + # Insert + if parentid is None: + cursor.callproc(storedprocadd, (childname,)) + else: + cursor.callproc(storedprocadd, (childname, parentid)) + + connection.commit() + + self.isSuccess = True + self.resultMessage = HtmlHelper.json_response( + + ResponseHandler.add_success(self.itemCRUDMapping.name), 200 + ) + + except mysql.connector.Error as e: + print(f"Database Error: {e}") + self.isSuccess = False + self.resultMessage = HtmlHelper.json_response( + ResponseHandler.add_failure(self.itemCRUDMapping.name), 500 + ) + + finally: + cursor.close() + connection.close() + + # ---------------------------------------------------------- + # EDIT + # ---------------------------------------------------------- + def EditItem(self, request, childid, parentid=None, childname=None, storedprocupdate=None, data=None): + + connection = config.get_db_connection() + cursor = connection.cursor() + + LogHelper.log_action( + f"Edit {self.itemCRUDMapping.name}", + f"User {current_user.id} edited '{childid}'" + ) + + try: + # ====================================================== + # SUBCONTRACTOR (MULTI-FIELD) + # ====================================================== + if data: + cursor.callproc(storedprocupdate, ( + childid, + data['Contractor_Name'], + data['Address'], + data['Mobile_No'], + data['PAN_No'], + data['Email'], + data['Gender'], + data['GST_Registration_Type'], + data['GST_No'], + data['Contractor_password'] + )) + + connection.commit() + + self.isSuccess = True + self.resultMessage = HtmlHelper.json_response( + ResponseHandler.update_success(self.itemCRUDMapping.name), 200 + ) + return + + # ====================================================== + # NORMAL + # ====================================================== + if not re.match(RegEx.patternAlphabetOnly, childname): + self.isSuccess = False + self.resultMessage = ResponseHandler.update_failure(self.itemCRUDMapping.name)['message'] + return + + if parentid is None: + cursor.callproc(storedprocupdate, (childid, childname)) + else: + cursor.callproc(storedprocupdate, (childid, parentid, childname)) + + connection.commit() + + self.isSuccess = True + self.resultMessage = ResponseHandler.update_success(self.itemCRUDMapping.name)['message'] + + except mysql.connector.Error as e: + print(f"Error updating {self.itemCRUDMapping.name}: {e}") + self.isSuccess = False + self.resultMessage = HtmlHelper.json_response( + ResponseHandler.update_failure(self.itemCRUDMapping.name), 500 + ) + + finally: + cursor.close() + connection.close() + + # ---------------------------------------------------------- + # GET ALL + # ---------------------------------------------------------- + def GetAllData(self, request, storedproc): + + data = [] + connection = config.get_db_connection() + + if not connection: + return [] + + cursor = connection.cursor() + + try: + cursor.callproc(storedproc) + + for result in cursor.stored_results(): + data = result.fetchall() + + self.isSuccess = True + + except mysql.connector.Error as e: + print(f"Error fetching {self.itemCRUDMapping.name}: {e}") + self.isSuccess = False + self.resultMessage = HtmlHelper.json_response( + ResponseHandler.fetch_failure(self.itemCRUDMapping.name), 500 + ) + return [] + + finally: + cursor.close() + connection.close() + + return data + + # ---------------------------------------------------------- + # GET BY ID + # ---------------------------------------------------------- + def GetDataByID(self, id, storedproc): + + data = None + connection = config.get_db_connection() + cursor = connection.cursor() + + try: + cursor.callproc(storedproc, (id,)) + + for rs in cursor.stored_results(): + data = rs.fetchone() + + except mysql.connector.Error as e: + print(f"Error fetching {self.itemCRUDMapping.name}: {e}") + + finally: + cursor.close() + connection.close() + + return data + + # ---------------------------------------------------------- + # CHECK ITEM + # ---------------------------------------------------------- + def CheckItem(self, request, parentid, childname, storedprocfetch): + + connection = config.get_db_connection() + cursor = connection.cursor() + + LogHelper.log_action( + f"Check {self.itemCRUDMapping.name}", + f"User {current_user.id} checked '{childname}'" + ) + + if not re.match(RegEx.patternAlphabetOnly, childname): + return HtmlHelper.json_response( + ResponseHandler.invalid_name(self.itemCRUDMapping.name), 400 + ) + + try: + if parentid is None: + cursor.callproc(storedprocfetch, (childname,)) + else: + cursor.callproc(storedprocfetch, (childname, parentid)) + + existing_item = None + for rs in cursor.stored_results(): + existing_item = rs.fetchone() + + if existing_item: + return HtmlHelper.json_response( + ResponseHandler.already_exists(self.itemCRUDMapping.name), 409 + ) + + return HtmlHelper.json_response( + ResponseHandler.is_available(self.itemCRUDMapping.name), 200 + ) + + except mysql.connector.Error as e: + print(f"Error checking {self.itemCRUDMapping.name}: {e}") + return HtmlHelper.json_response( + ResponseHandler.fetch_failure(self.itemCRUDMapping.name), 500 + ) + + finally: + cursor.close() + connection.close() \ No newline at end of file diff --git a/v-2/model/Log.py b/v-2/model/Log.py new file mode 100644 index 0000000..d84215b --- /dev/null +++ b/v-2/model/Log.py @@ -0,0 +1,87 @@ +from flask import Flask, render_template, request, redirect, url_for, send_from_directory, flash, jsonify, json +from flask import current_app + +from datetime import datetime +from flask_login import LoginManager, UserMixin, login_user, logout_user, login_required, current_user + +import os + +class LogHelper: + @staticmethod + def log_action(action, details=""): + """Log user actions with timestamp, user, action, and details.""" + logData = LogData() + logData.WriteLog(action, details="") + +class LogData: + + filepath = "" + timestamp = None + + def __init__(self): + self.filepath = os.path.join(current_app.root_path, 'activity.log') + self.timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + if hasattr(current_user, "cn") and current_user.cn: + self.user = current_user.cn + elif hasattr(current_user, "username") and current_user.username: + self.user = current_user.username + elif hasattr(current_user, "sAMAccountName") and current_user.sAMAccountName: + self.user = current_user.sAMAccountName + else: + self.user = "Unknown" + + def WriteLog(self, action, details=""): + """Log user actions with timestamp, user, action, and details.""" + + with open(self.filepath, "a", encoding="utf-8") as f: + f.write( + f"Timestamp: {self.timestamp} | " + f"User: {self.user} | " + f"Action: {action} | " + f"Details: {details}\n" + ) + + + def GetActivitiesLog(self): + logs = [] + + if os.path.exists(self.filepath): + with open(self.filepath, 'r') as f: + for line in f: + parts = line.strip().split(" | ") + if len(parts) == 4: + logs.append({ + "timestamp": parts[0].replace("Timestamp:", "").strip(), + "user": parts[1].replace("User:", "").strip(), + "action": parts[2].replace("Action:", "").strip(), + "details": parts[3].replace("Details:", "").strip() + }) + return logs + + def GetFilteredActivitiesLog(self, startDate, endDate, userName): + + filtered_logs = self.GetActivitiesLog() + + # Date filter + if startDate or endDate: + try: + start_dt = datetime.strptime(startDate, "%Y-%m-%d") if startDate else datetime.min + end_dt = datetime.strptime(endDate, "%Y-%m-%d") if endDate else datetime.max + + + filtered_logs = [ + log for log in filtered_logs + if start_dt <= datetime.strptime(log["timestamp"], "%Y-%m-%d %H:%M:%S") <= end_dt + ] + + + except Exception as e: + print("Date filter error:", e) + #Why catching all exceptions? Need to handle specific exceptions + + # Username filter + if userName: + filtered_logs = [log for log in filtered_logs if userName.lower() in log["user"].lower()] + + return filtered_logs \ No newline at end of file diff --git a/v-2/model/PmcReport.py b/v-2/model/PmcReport.py new file mode 100644 index 0000000..c8ec69e --- /dev/null +++ b/v-2/model/PmcReport.py @@ -0,0 +1,456 @@ +import openpyxl +from openpyxl.styles import Font, PatternFill +import config +from flask_login import current_user +from model.Log import LogHelper + +from model.Report import ReportHelper +from model.FolderAndFile import FolderAndFile + +class PmcReport: + + @staticmethod + def get_pmc_report(pmc_no): + + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True, buffered=True) + + try: + + # cursor.callproc("GetContractorInfoByPmcNo", (pmc_no,)) + # pmc_info = next(cursor.stored_results()).fetchone() + pmc_info = ReportHelper.execute_sp(cursor, 'GetContractorInfoByPmcNo', [pmc_no], True) + + if not pmc_info: + return None + + cursor.callproc("Get_pmc_hold_types", (pmc_no, pmc_info["Contractor_Id"])) + hold_types = next(cursor.stored_results()).fetchall() + + # Extract hold_type_ids + hold_type_ids = [ht['hold_type_id'] for ht in hold_types] + + invoices = [] + hold_amount_total = 0 + if hold_type_ids: + hold_type_ids_str = ",".join(map(str, hold_type_ids)) + cursor.callproc( + 'GetInvoices_WithHold', + [pmc_no, pmc_info["Contractor_Id"], hold_type_ids_str] + ) + else: + cursor.callproc( + 'GetInvoices_NoHold', + [pmc_no, pmc_info["Contractor_Id"]] + ) + for result in cursor.stored_results(): + invoices = result.fetchall() + + if hold_type_ids: + hold_amount_total = sum(row.get('hold_amount', 0) or 0 for row in invoices) + + total_invo_final = sum(row.get('Final_Amount', 0) or 0 for row in invoices) + + + # GST RELEASE + # cursor.callproc('GetGSTReleaseByPMC', [pmc_no]) + # gst_rel = [] + # for result in cursor.stored_results(): + # gst_rel = result.fetchall() + + gst_rel = ReportHelper.execute_sp(cursor, 'GetGSTReleaseByPMC', [pmc_no]) + + total_gst_basic = sum(row.get('basic_amount', 0) or 0 for row in gst_rel) + total_gst_final = sum(row.get('final_amount', 0) or 0 for row in gst_rel) + + # ---------------- HOLD RELEASE ---------------- + # cursor.callproc('GetHoldReleaseByPMC', [pmc_no]) + # hold_release = [] + # for result in cursor.stored_results(): + # hold_release = result.fetchall() + + hold_release = ReportHelper.execute_sp(cursor, 'GetHoldReleaseByPMC', [pmc_no]) + + # ---------------- CREDIT NOTE ---------------- + # cursor.callproc('GetCreditNoteByPMC', [pmc_no]) + # credit_note = [] + # for result in cursor.stored_results(): + # credit_note = result.fetchall() + + credit_note = ReportHelper.execute_sp(cursor, 'GetCreditNoteByPMC', [pmc_no]) + + payments = ReportHelper.execute_sp(cursor, 'GetPaymentsByPMC', [pmc_no]) + + + # ---------------- PAYMENTS ---------------- + # cursor.callproc('GetPaymentsByPMC', [pmc_no]) + # payments = [] + # for result in cursor.stored_results(): + # payments = result.fetchall() + + + + total_pay_amount = sum(row.get('Payment_Amount', 0) or 0 for row in payments) + total_pay_total = sum(row.get('Total_amount', 0) or 0 for row in payments) + + totals = { + "sum_invo_basic_amt": sum(row.get('Basic_Amount', 0) or 0 for row in invoices), + "sum_invo_debit_amt": sum(row.get('Debit_Amount', 0) or 0 for row in invoices), + "sum_invo_after_debit_amt": sum(row.get('After_Debit_Amount', 0) or 0 for row in invoices), + "sum_invo_amt": sum(row.get('Amount', 0) or 0 for row in invoices), + "sum_invo_gst_amt": sum(row.get('GST_Amount', 0) or 0 for row in invoices), + "sum_invo_tds_amt": sum(row.get('TDS_Amount', 0) or 0 for row in invoices), + "sum_invo_ds_amt": sum(row.get('SD_Amount', 0) or 0 for row in invoices), + "sum_invo_on_commission": sum(row.get('On_Commission', 0) or 0 for row in invoices), + "sum_invo_hydro_test": sum(row.get('Hydro_Testing', 0) or 0 for row in invoices), + "sum_invo_gst_sd_amt": sum(row.get('GST_SD_Amount', 0) or 0 for row in invoices), + "sum_invo_final_amt": total_invo_final, + "sum_invo_hold_amt": hold_amount_total, + "sum_gst_basic_amt": total_gst_basic, + "sum_gst_final_amt": total_gst_final, + "sum_pay_payment_amt": total_pay_amount, + "sum_pay_tds_payment_amt": sum(row.get('TDS_Payment_Amount', 0) or 0 for row in payments), + "sum_pay_total_amt": total_pay_total + } + + return { + "info": pmc_info, + "invoices": invoices, + "hold_types": hold_types, + "gst_rel": gst_rel, + "payments": payments, + "credit_note": credit_note, + "hold_release": hold_release, + "total": totals + } + + finally: + cursor.close() + connection.close() + + + @staticmethod + def download_pmc_report(pmc_no): + + connection = config.get_db_connection() + if not connection: + return None + + cursor = connection.cursor(dictionary=True) + + try: + # filename + filename = f"PMC_Report_{pmc_no}.xlsx" + + output_folder = FolderAndFile.get_download_folder() + output_file = FolderAndFile.get_download_path(filename) + + # ================= DATA FETCH ================= + + contractor_info = ReportHelper.execute_sp(cursor, 'GetContractorDetailsByPMC', [pmc_no], "one") + + if not contractor_info: + return None + + hold_types = ReportHelper.execute_sp(cursor, 'GetHoldTypesByContractor', [contractor_info["Contractor_Id"]]) + + hold_type_map = {ht['hold_type_id']: ht['hold_type'] for ht in hold_types} + + invoices = ReportHelper.execute_sp(cursor, 'GetInvoicesAndGstReleaseByPmcNo', [pmc_no]) + + credit_notes = ReportHelper.execute_sp(cursor, 'GetCreditNoteByContractor', [contractor_info["Contractor_Id"]]) + + hold_amounts = ReportHelper.execute_sp(cursor, 'GetHoldAmountsByContractor', [contractor_info["Contractor_Id"]]) + + all_payments = ReportHelper.execute_sp(cursor, 'GetAllPaymentsByPMC', [pmc_no]) + + gst_releases = ReportHelper.execute_sp(cursor, 'GetGSTReleaseDetailsByPMC', [pmc_no]) + + # ================= DATA MAPPING ================= + + hold_data = {} + for h in hold_amounts: + hold_data.setdefault(h['Invoice_Id'], {})[h['hold_type_id']] = h['hold_amount'] + + payments_map = {} + for pay in all_payments: + if pay['invoice_no']: + payments_map.setdefault(pay['invoice_no'], []).append(pay) + + # ================= LOG ================= + LogHelper.log_action( + "Download PMC Report", + f"User {current_user.id} Download PMC Report '{pmc_no}'" + ) + + # ================= EXCEL ================= + workbook = openpyxl.Workbook() + sheet = workbook.active + sheet.title = "PMC Report" + + # HEADER INFO + sheet.append(["", "", "Laxmi Civil Engineering Services PVT. LTD."]) + sheet.append(["Contractor Name", contractor_info["Contractor_Name"]]) + sheet.append(["State", contractor_info["State_Name"]]) + sheet.append(["District", contractor_info["District_Name"]]) + sheet.append(["Block", contractor_info["Block_Name"]]) + sheet.append([]) + + base_headers = [ + "PMC No","Village","Work Type","Invoice Details","Invoice Date","Invoice No", + "Basic Amount","Debit","After Debit Amount","GST","Amount","TDS", + "SD","On Commission","Hydro Testing","GST SD Amount" + ] + + hold_headers = [ht['hold_type'] for ht in hold_types] + + payment_headers = [ + "Final Amount","Payment Amount","TDS Payment","Total Paid","UTR" + ] + + headers = base_headers + hold_headers + payment_headers + sheet.append(headers) + + # STYLE + for cell in sheet[sheet.max_row]: + cell.font = Font(bold=True) + + # DATA + seen_invoices = set() + + for inv in invoices: + + invoice_no = inv["Invoice_No"] + payments = payments_map.get(invoice_no, []) + + if invoice_no in seen_invoices: + continue + + seen_invoices.add(invoice_no) + + first_payment = payments[0] if payments else None + + row = [ + pmc_no, + inv["Village_Name"], + inv["Work_Type"], + inv["Invoice_Details"], + inv["Invoice_Date"], + invoice_no, + inv["Basic_Amount"], + inv["Debit_Amount"], + inv["After_Debit_Amount"], + inv["GST_Amount"], + inv["Amount"], + inv["TDS_Amount"], + inv["SD_Amount"], + inv["On_Commission"], + inv["Hydro_Testing"], + inv["GST_SD_Amount"] + ] + + # HOLD DATA + invoice_holds = hold_data.get(inv["Invoice_Id"], {}) + for ht_id in hold_type_map.keys(): + row.append(invoice_holds.get(ht_id, "")) + + # PAYMENT DATA + row += [ + inv["Final_Amount"], + first_payment["Payment_Amount"] if first_payment else "", + first_payment["TDS_Payment_Amount"] if first_payment else "", + first_payment["Total_amount"] if first_payment else "", + first_payment["UTR"] if first_payment else "" + ] + + sheet.append(row) + + # AUTO WIDTH + for col in sheet.columns: + max_len = max((len(str(cell.value)) for cell in col if cell.value), default=0) + sheet.column_dimensions[col[0].column_letter].width = max_len + 2 + + # SAVE + workbook.save(output_file) + workbook.close() + + return output_folder, filename + + except Exception as e: + print(f"Error generating PMC report: {e}") + return None + + finally: + cursor.close() + connection.close() + + # @staticmethod + # def download_pmc_report(pmc_no): + + # connection = config.get_db_connection() + # cursor = connection.cursor(dictionary=True) + + # # output_folder = "static/download" + # # output_file = os.path.join(output_folder, f"PMC_Report_{pmc_no}.xlsx") + # output_folder = FolderAndFile.get_download_folder + # filename = f"PMC_Report_{pmc_no}.xlsx" + # output_file = FolderAndFile.get_download_path(filename) + + # try: + + # cursor.callproc('GetContractorDetailsByPMC', [pmc_no]) + # contractor_info = next(cursor.stored_results()).fetchone() + + # if not contractor_info: + # return None + + # cursor.callproc('GetHoldTypesByContractor', [contractor_info["Contractor_Id"]]) + # hold_types = next(cursor.stored_results()).fetchall() + + # hold_type_map = {ht['hold_type_id']: ht['hold_type'] for ht in hold_types} + + # cursor.callproc('GetInvoicesAndGstReleaseByPmcNo', [pmc_no]) + # invoices = next(cursor.stored_results()).fetchall() + + # cursor.callproc('GetCreditNoteByContractor',[contractor_info["Contractor_Id"]]) + + # credit_notes = [] + # for result in cursor.stored_results(): + # credit_notes = result.fetchall() + + # credit_note_map = {} + # for cn in credit_notes: + # key = (cn["PMC_No"], cn["Invoice_No"]) + # credit_note_map.setdefault(key, []).append(cn) + + # cursor.callproc('GetHoldAmountsByContractor', [contractor_info["Contractor_Id"]]) + # hold_amounts = next(cursor.stored_results()).fetchall() + + # hold_data = {} + # for h in hold_amounts: + # hold_data.setdefault(h['Invoice_Id'], {})[h['hold_type_id']] = h['hold_amount'] + + # cursor.callproc('GetAllPaymentsByPMC', [pmc_no]) + # all_payments = next(cursor.stored_results()).fetchall() + + # payments_map = {} + # extra_payments = [] + + # for pay in all_payments: + # if pay['invoice_no']: + # payments_map.setdefault(pay['invoice_no'], []).append(pay) + # else: + # extra_payments.append(pay) + + # # ---------------- GST RELEASE DETAILS ---------------- + # cursor.callproc('GetGSTReleaseDetailsByPMC', [pmc_no]) + + # gst_releases = [] + # for result in cursor.stored_results(): + # gst_releases = result.fetchall() + + # gst_release_map = {} + + # for gr in gst_releases: + + # invoice_nos = [] + + # if gr['Invoice_No']: + + # cleaned = gr['Invoice_No'].replace(' ', '') + + # if '&' in cleaned: + # invoice_nos = cleaned.split('&') + + # elif ',' in cleaned: + # invoice_nos = cleaned.split(',') + + # else: + # invoice_nos = [cleaned] + + # for inv_no in invoice_nos: + # gst_release_map.setdefault(inv_no, []).append(gr) + + # LogHelper.log_action( + # "Download PMC Report", + # f"User {current_user.id} Download PMC Report '{pmc_no}'" + # ) + + # workbook = openpyxl.Workbook() + # sheet = workbook.active + # sheet.title = "PMC Report" + + # sheet.append(["", "", "Laxmi Civil Engineering Services PVT. LTD."]) + # sheet.append(["Contractor Name", contractor_info["Contractor_Name"], "", "GST No", contractor_info["GST_No"], "", "GST Type", contractor_info["GST_Registration_Type"]]) + # sheet.append(["State", contractor_info["State_Name"], "", "PAN No", contractor_info["PAN_No"], "", "Address", contractor_info["Address"]]) + # sheet.append(["District", contractor_info["District_Name"], "", "Mobile No", contractor_info["Mobile_No"]]) + # sheet.append(["Block", contractor_info["Block_Name"], "", "Email", contractor_info["Email"]]) + # sheet.append([]) + + # base_headers = [ + # "PMC No","Village","Work Type","Invoice Details","Invoice Date","Invoice No", + # "Basic Amount","Debit","After Debit Amount","GST (18%)","Amount","TDS (1%)", + # "SD (5%)","On Commission","Hydro Testing","GST SD Amount" + # ] + + # hold_headers = [ht['hold_type'] for ht in hold_types] + + # payment_headers = [ + # "Final Amount","Payment Amount","TDS Payment","Total Paid","UTR" + # ] + + # sheet.append(base_headers + hold_headers + payment_headers) + + # header_fill = PatternFill(start_color="ADD8E6",end_color="ADD8E6",fill_type="solid") + # header_font = Font(bold=True) + + # for cell in sheet[sheet.max_row]: + # cell.font = header_font + # cell.fill = header_fill + + # seen_invoices = set() + # processed_payments = set() + + # for inv in invoices: + + # invoice_no = inv["Invoice_No"] + # payments = payments_map.get(invoice_no, []) + + # if invoice_no not in seen_invoices: + + # seen_invoices.add(invoice_no) + # first_payment = payments[0] if payments else None + + # row = [ + # pmc_no, inv["Village_Name"], inv["Work_Type"], + # inv["Invoice_Details"], inv["Invoice_Date"], invoice_no, + # inv["Basic_Amount"], inv["Debit_Amount"], + # inv["After_Debit_Amount"], inv["GST_Amount"], + # inv["Amount"], inv["TDS_Amount"], inv["SD_Amount"], + # inv["On_Commission"], inv["Hydro_Testing"], inv["GST_SD_Amount"] + # ] + + # invoice_holds = hold_data.get(inv["Invoice_Id"], {}) + + # for ht_id in hold_type_map.keys(): + # row.append(invoice_holds.get(ht_id, "")) + + # row += [ + # inv["Final_Amount"], + # first_payment["Payment_Amount"] if first_payment else "", + # first_payment["TDS_Payment_Amount"] if first_payment else "", + # first_payment["Total_amount"] if first_payment else "", + # first_payment["UTR"] if first_payment else "" + # ] + + # sheet.append(row) + + # workbook.save(output_file) + # workbook.close() + + # return output_folder, filename + + # finally: + + # cursor.close() + # connection.close() \ No newline at end of file diff --git a/v-2/model/Report.py b/v-2/model/Report.py new file mode 100644 index 0000000..41d5ad2 --- /dev/null +++ b/v-2/model/Report.py @@ -0,0 +1,275 @@ +import config +from datetime import datetime +from flask import send_file +import openpyxl +from openpyxl.styles import Font + +from model.FolderAndFile import FolderAndFile + +class ReportHelper: + isSuccess = False + resultMessage = "" + data=[] + + def __init__(self): + self.isSuccess = False + self.resultMessage = "" + self.data = [] + + @staticmethod + def execute_sp(cursor, proc_name, params=[], fetch_one=False): + cursor.callproc(proc_name, params) + return ( + ReportHelper.fetch_one_result(cursor) + if fetch_one else + ReportHelper.fetch_all_results(cursor) + ) + + @staticmethod + def fetch_all_results(cursor): + data = [] + for result in cursor.stored_results(): + data = result.fetchall() + return data + + + @staticmethod + def fetch_one_result(cursor): + data = None + for result in cursor.stored_results(): + data = result.fetchone() + return data + + + @staticmethod + def search_contractor(request): + subcontractor_name = request.form.get("subcontractor_name") + pmc_no = request.form.get("pmc_no") + state = request.form.get("state") + district = request.form.get("district") + block = request.form.get("block") + village = request.form.get("village") + year_from = request.form.get("year_from") + year_to = request.form.get("year_to") + + connection = config.get_db_connection() + if not connection: + return [] + + cursor = connection.cursor(dictionary=True) + + try: + data = ReportHelper.execute_sp( + cursor, + "search_contractor_info", + [ + subcontractor_name or None, + pmc_no or None, + state or None, + district or None, + block or None, + village or None, + year_from or None, + year_to or None + ] + ) + + except Exception as e: + print(f"Error in search_contractor: {e}") + data = [] + + finally: + cursor.close() + connection.close() + + return data + + + @staticmethod + def get_contractor_report(contractor_id): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True, buffered=True) + + try: + # Contractor Info (only one fetch) + contInfo = ReportHelper.execute_sp(cursor, 'GetContractorInfo', [contractor_id], True) + # Hold Types + hold_types = ReportHelper.execute_sp(cursor, 'GetContractorHoldTypes', [contractor_id]) + # Invoices + invoices = ReportHelper.execute_sp(cursor, 'GetContractorInvoices', [contractor_id]) + # GST Release + gst_rel = ReportHelper.execute_sp(cursor, 'GetGSTRelease', [contractor_id]) + # Hold Release + hold_release = ReportHelper.execute_sp(cursor, 'GetHoldRelease', [contractor_id]) + # Credit Note + credit_note = ReportHelper.execute_sp(cursor, 'GetCreditNote', [contractor_id]) + # Payments + payments = ReportHelper.execute_sp(cursor, 'GetPayments', [contractor_id]) + + # Totals + total = { + "sum_invo_basic_amt": float(sum(row['Basic_Amount'] or 0 for row in invoices)), + "sum_invo_debit_amt": float(sum(row['Debit_Amount'] or 0 for row in invoices)), + "sum_invo_after_debit_amt": float(sum(row['After_Debit_Amount'] or 0 for row in invoices)), + "sum_invo_amt": float(sum(row['Amount'] or 0 for row in invoices)), + "sum_invo_gst_amt": float(sum(row['GST_Amount'] or 0 for row in invoices)), + "sum_invo_tds_amt": float(sum(row['TDS_Amount'] or 0 for row in invoices)), + "sum_invo_ds_amt": float(sum(row['SD_Amount'] or 0 for row in invoices)), + "sum_invo_on_commission": float(sum(row['On_Commission'] or 0 for row in invoices)), + "sum_invo_hydro_test": float(sum(row['Hydro_Testing'] or 0 for row in invoices)), + "sum_invo_gst_sd_amt": float(sum(row['GST_SD_Amount'] or 0 for row in invoices)), + "sum_invo_final_amt": float(sum(row['Final_Amount'] or 0 for row in invoices)), + "sum_invo_hold_amt": float(sum(row['hold_amount'] or 0 for row in invoices)), + + "sum_gst_basic_amt": float(sum(row['basic_amount'] or 0 for row in gst_rel)), + "sum_gst_final_amt": float(sum(row['final_amount'] or 0 for row in gst_rel)), + + "sum_pay_payment_amt": float(sum(row['Payment_Amount'] or 0 for row in payments)), + "sum_pay_tds_payment_amt": float(sum(row['TDS_Payment_Amount'] or 0 for row in payments)), + "sum_pay_total_amt": float(sum(row['Total_amount'] or 0 for row in payments)) + } + + current_date = datetime.now().strftime('%Y-%m-%d') + + finally: + cursor.close() + connection.close() + + return { + "contInfo": contInfo, + "invoices": invoices, + "hold_types": hold_types, + "gst_rel": gst_rel, + "payments": payments, + "credit_note": credit_note, + "hold_release": hold_release, + "total": total, + "current_date": current_date + } + + @staticmethod + def download_report(contractor_id): + try: + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + # -------- Contractor Info -------- + contInfo = ReportHelper.execute_sp(cursor, 'GetContractorInfo', [contractor_id], True) + + if not contInfo: + return "No contractor found", 404 + + # -------- Invoice Data -------- + cursor.callproc('FetchInvoicesByContractor', [contractor_id]) + + invoices = [] + for result in cursor.stored_results(): + invoices.extend(result.fetchall()) + + if not invoices: + return "No invoice data found" + + # -------- Create Workbook -------- + workbook = openpyxl.Workbook() + sheet = workbook.active + sheet.title = "Contractor Report" + + # ================= CONTRACTOR DETAILS ================= + sheet.append(["SUB CONTRACTOR DETAILS"]) + sheet.cell(row=sheet.max_row, column=1).font = Font(bold=True) + sheet.append([]) + + sheet.append(["Name", contInfo.get("Contractor_Name") or ""]) + sheet.append(["Mobile No", contInfo.get("Mobile_No") or ""]) + sheet.append(["Email", contInfo.get("Email") or ""]) + sheet.append(["Village", contInfo.get("Village_Name") or ""]) + sheet.append(["Block", contInfo.get("Block_Name") or ""]) + sheet.append(["District", contInfo.get("District_Name") or ""]) + sheet.append(["State", contInfo.get("State_Name") or ""]) + sheet.append(["Address", contInfo.get("Address") or ""]) + sheet.append(["GST No", contInfo.get("GST_No") or ""]) + sheet.append(["PAN No", contInfo.get("PAN_No") or ""]) + sheet.append([]) + sheet.append([]) + + # ================= TABLE HEADERS ================= + headers = [ + "PMC No", "Village", "Invoice No", "Invoice Date", "Work Type","Invoice_Details", + "Basic Amount", "Debit Amount", "After Debit Amount", + "Amount", "GST Amount", "TDS Amount", "SD Amount", + "On Commission", "Hydro Testing", "Hold Amount", + "GST SD Amount", "Final Amount", + "Payment Amount", "TDS Payment", + "Total Amount", "UTR" + ] + sheet.append(headers) + for col in range(1, len(headers) + 1): + sheet.cell(row=sheet.max_row, column=col).font = Font(bold=True) + + # ================= DATA ================= + total_final = 0 + total_payment = 0 + total_amount = 0 + + for inv in invoices: + row = [ + inv.get("PMC_No"), + inv.get("Village_Name"), + inv.get("invoice_no"), + inv.get("Invoice_Date"), + inv.get("Work_Type"), + inv.get("Invoice_Details"), + inv.get("Basic_Amount"), + inv.get("Debit_Amount"), + inv.get("After_Debit_Amount"), + inv.get("Amount"), + inv.get("GST_Amount"), + inv.get("TDS_Amount"), + inv.get("SD_Amount"), + inv.get("On_Commission"), + inv.get("Hydro_Testing"), + inv.get("Hold_Amount"), + inv.get("GST_SD_Amount"), + inv.get("Final_Amount"), + inv.get("Payment_Amount"), + inv.get("TDS_Payment_Amount"), + inv.get("Total_Amount"), + inv.get("UTR") + ] + + total_final += float(inv.get("Final_Amount") or 0) + total_payment += float(inv.get("Payment_Amount") or 0) + total_amount += float(inv.get("Total_Amount") or 0) + + sheet.append(row) + + # ================= TOTAL ROW ================= + sheet.append([]) + sheet.append([ + "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", + "TOTAL", + total_final, + total_payment, + "", + total_amount, + "" + ]) + + # ================= AUTO WIDTH ================= + for column in sheet.columns: + max_length = 0 + column_letter = column[0].column_letter + for cell in column: + if cell.value: + max_length = max(max_length, len(str(cell.value))) + sheet.column_dimensions[column_letter].width = max_length + 2 + + # ================= SAVE FILE ================= + filename = f"Contractor_Report_{contInfo.get('Contractor_Name')}.xlsx" + output_file = FolderAndFile.get_download_path(filename) + workbook.save(output_file) + + return send_file(output_file, as_attachment=True) + + except Exception as e: + return str(e) \ No newline at end of file diff --git a/v-2/model/State.py b/v-2/model/State.py new file mode 100644 index 0000000..9245a99 --- /dev/null +++ b/v-2/model/State.py @@ -0,0 +1,168 @@ +from flask import request, redirect, url_for +from flask_login import current_user + +from model.Utilities import RegEx, ResponseHandler, HtmlHelper, ItemCRUDType +from model.Log import LogHelper +from model.ItemCRUD import ItemCRUD + +import config +import re +import mysql.connector + + +class State: + + def __init__(self): + self.isSuccess = False + self.resultMessage = "" + + # ---------------------------------------------------------- + # ADD STATE (USING ITEM CRUD) + # ---------------------------------------------------------- + def AddState(self, request): + + state_name = request.form['state_Name'].strip() + + crud = ItemCRUD(ItemCRUDType.State) + + crud.AddItem( + request=request, + childname=state_name, + storedprocfetch="CheckStateExists", + storedprocadd="SaveState" + ) + + self.isSuccess = crud.isSuccess + self.resultMessage = crud.resultMessage + + return self.resultMessage + + + # ---------------------------------------------------------- + # GET ALL STATES (NO CHANGE - THIS IS CORRECT) + # ---------------------------------------------------------- + def GetAllStates(self, request): + + connection = config.get_db_connection() + data = [] + + if not connection: + return [] + + cursor = connection.cursor() + + try: + cursor.callproc("GetAllStates") + for res in cursor.stored_results(): + data = res.fetchall() + + self.isSuccess = True + + except mysql.connector.Error as e: + print(f"Error fetching states: {e}") + self.isSuccess = False + self.resultMessage = HtmlHelper.json_response( + ResponseHandler.fetch_failure("state"), 500 + ) + return [] + + finally: + cursor.close() + connection.close() + + return data + + + # ---------------------------------------------------------- + # CHECK STATE (USING ITEM CRUD) + # ---------------------------------------------------------- + def CheckState(self, request): + + state_name = request.json.get('state_Name', '').strip() + + crud = ItemCRUD(ItemCRUDType.State) + + return crud.CheckItem( + request=request, + parentid=None, + childname=state_name, + storedprocfetch="CheckStateExists" + ) + + + # ---------------------------------------------------------- + # DELETE STATE (USING ITEM CRUD) + # ---------------------------------------------------------- + def DeleteState(self, request, id): + + crud = ItemCRUD(ItemCRUDType.State) + + crud.DeleteItem( + request=request, + itemID=id, + storedprocDelete="DeleteState" + ) + + self.isSuccess = crud.isSuccess + self.resultMessage = crud.resultMessage + + return self.resultMessage + + + # ---------------------------------------------------------- + # EDIT STATE (USING ITEM CRUD) + # ---------------------------------------------------------- + def EditState(self, request, id): + + state_name = request.form['state_Name'].strip() + + crud = ItemCRUD(ItemCRUDType.State) + + crud.EditItem( + request=request, + childid=id, + parentid=None, + childname=state_name, + storedprocupdate="UpdateStateById" + ) + + self.isSuccess = crud.isSuccess + self.resultMessage = crud.resultMessage + + return redirect(url_for('state.add_state')) + + + # ---------------------------------------------------------- + # GET STATE BY ID (KEEP SAME) + # ---------------------------------------------------------- + def GetStateByID(self, request, id): + + connection = config.get_db_connection() + data = None + + if not connection: + return None + + cursor = connection.cursor() + + try: + cursor.callproc("GetStateByID", (id,)) + for res in cursor.stored_results(): + data = res.fetchone() + + if data: + self.isSuccess = True + self.resultMessage = "Success" + else: + self.isSuccess = False + self.resultMessage = "Not Found" + + except mysql.connector.Error as e: + print(f"Error fetching state: {e}") + self.isSuccess = False + + finally: + cursor.close() + connection.close() + + return data \ No newline at end of file diff --git a/v-2/model/Subcontractor.py b/v-2/model/Subcontractor.py new file mode 100644 index 0000000..0ec659d --- /dev/null +++ b/v-2/model/Subcontractor.py @@ -0,0 +1,140 @@ +from model.Utilities import ItemCRUDType +from model.ItemCRUD import ItemCRUD + + +class Subcontractor: + def __init__(self): + self.isSuccess = False + self.resultMessage = "" + + # ---------------------------------------------------------- + # ADD + # ---------------------------------------------------------- + def AddSubcontractor(self, request): + + subcontractor = ItemCRUD(itemType=ItemCRUDType.Subcontractor) + + data = { + "Contractor_Name": request.form.get('Contractor_Name', '').strip(), + "Address": request.form.get('Address', '').strip(), + "Mobile_No": request.form.get('Mobile_No', '').strip(), + "PAN_No": request.form.get('PAN_No', '').strip(), + "Email": request.form.get('Email', '').strip(), + "Gender": request.form.get('Gender', '').strip(), + "GST_Registration_Type": request.form.get('GST_Registration_Type', '').strip(), + "GST_No": request.form.get('GST_No', '').strip(), + "Contractor_password": request.form.get('Contractor_password', '').strip() + } + + subcontractor.AddItem( + request=request, + data=data, + storedprocfetch="GetSubcontractorByName", + storedprocadd="SaveContractor" + ) + + self.isSuccess = subcontractor.isSuccess + self.resultMessage = subcontractor.resultMessage + return + + # ---------------------------------------------------------- + # GET ALL + # ---------------------------------------------------------- + def GetAllSubcontractors(self, request): + + subcontractor = ItemCRUD(itemType=ItemCRUDType.Subcontractor) + + data = subcontractor.GetAllData( + request=request, + storedproc="GetAllSubcontractors" + ) + + self.isSuccess = subcontractor.isSuccess + self.resultMessage = subcontractor.resultMessage + return data + + # ---------------------------------------------------------- + # GET BY ID + # ---------------------------------------------------------- + def GetSubcontractorByID(self, id): + + subcontractor = ItemCRUD(itemType=ItemCRUDType.Subcontractor) + + data = subcontractor.GetDataByID( + id=id, + storedproc="GetSubcontractorById" + ) + + if data: + self.isSuccess = True + else: + self.isSuccess = False + self.resultMessage = "Subcontractor not found" + + return data + + # ---------------------------------------------------------- + # CHECK (Duplicate) + # ---------------------------------------------------------- + def CheckSubcontractor(self, request): + + subcontractor = ItemCRUD(itemType=ItemCRUDType.Subcontractor) + + name = request.form.get('Contractor_Name', '').strip() + + result = subcontractor.CheckItem( + request=request, + childname=name, + storedprocfetch="GetSubcontractorByName" + ) + + self.isSuccess = subcontractor.isSuccess + self.resultMessage = subcontractor.resultMessage + return result + + # ---------------------------------------------------------- + # EDIT + # ---------------------------------------------------------- + def EditSubcontractor(self, request, subcontractor_id): + + subcontractor = ItemCRUD(itemType=ItemCRUDType.Subcontractor) + + data = { + "Contractor_Name": request.form.get('Contractor_Name', '').strip(), + "Address": request.form.get('Address', '').strip(), + "Mobile_No": request.form.get('Mobile_No', '').strip(), + "PAN_No": request.form.get('PAN_No', '').strip(), + "Email": request.form.get('Email', '').strip(), + "Gender": request.form.get('Gender', '').strip(), + "GST_Registration_Type": request.form.get('GST_Registration_Type', '').strip(), + "GST_No": request.form.get('GST_No', '').strip(), + "Contractor_password": request.form.get('Contractor_password', '').strip() + } + + subcontractor.EditItem( + request=request, + childid=subcontractor_id, + data=data, + storedprocupdate="UpdateSubcontractor" + ) + + self.isSuccess = subcontractor.isSuccess + self.resultMessage = subcontractor.resultMessage + return + + # ---------------------------------------------------------- + # DELETE + # ---------------------------------------------------------- + def DeleteSubcontractor(self, request, subcontractor_id): + + subcontractor = ItemCRUD(itemType=ItemCRUDType.Subcontractor) + + subcontractor.DeleteItem( + request=request, + itemID=subcontractor_id, + storedprocDelete="DeleteSubcontractor" + ) + + self.isSuccess = subcontractor.isSuccess + self.resultMessage = subcontractor.resultMessage + return \ No newline at end of file diff --git a/v-2/model/Utilities.py b/v-2/model/Utilities.py new file mode 100644 index 0000000..83868ba --- /dev/null +++ b/v-2/model/Utilities.py @@ -0,0 +1,66 @@ +from flask import flash, jsonify, json +from enum import Enum + +class ItemCRUDType(Enum): + Village = 1 + Block = 2 + District = 3 + State = 4 + HoldType = 5 + Subcontractor = 6 + + +class RegEx: + patternAlphabetOnly = "^[A-Za-z ]+$" + + +class ResponseHandler: + @staticmethod + def invalid_name(entity): + return {'status': 'error', 'message': f'Invalid {entity} name. Only letters are allowed!'} + + @staticmethod + def already_exists(entity): + return {'status': 'exists', 'message': f'{entity.capitalize()} already exists!'} + + @staticmethod + def add_success(entity): + return {'status': 'success', 'message': f'{entity.capitalize()} added successfully!'} + + @staticmethod + def add_failure(entity): + return {'status': 'error', 'message': f'Failed to add {entity}.'} + + @staticmethod + def is_available(entity): + return {'status': 'available', 'message': f'{entity.capitalize()} name is available!'} + + @staticmethod + def delete_success(entity): + return {'status': 'success', 'message': f'{entity.capitalize()} deleted successfully!'} + + @staticmethod + def delete_failure(entity): + return {'status': 'error', 'message': f'Failed to delete {entity}.'} + + @staticmethod + def update_success(entity): + return {'status': 'success', 'message': f'{entity.capitalize()} updated successfully!'} + + @staticmethod + def update_failure(entity): + return {'status': 'error', 'message': f'Failed to update {entity}.'} + + @staticmethod + def fetch_failure(entity): + return {'status': 'error', 'message': f'Failed to fetch {entity}.'} + + +class HtmlHelper: + # Helper: JSON Response Formatter + + @staticmethod + def json_response(message_obj, status_code): + return jsonify(message_obj), status_code + #May need to refactor further + diff --git a/v-2/model/Village.py b/v-2/model/Village.py new file mode 100644 index 0000000..3b7b0cb --- /dev/null +++ b/v-2/model/Village.py @@ -0,0 +1,121 @@ + +from flask_login import LoginManager, UserMixin, login_user, logout_user, login_required, current_user + +from model.Utilities import RegEx, ResponseHandler, HtmlHelper, ItemCRUDType +from model.Log import LogData, LogHelper + +import config + +import mysql.connector +from mysql.connector import Error + +from model.ItemCRUD import ItemCRUD + + +class Village: + isSuccess = False + resultMessage = "" + + def __init__(self): + self.isSuccess = False + self.resultMessage = "" + + def AddVillage(self, request): + village = ItemCRUD(itemType=ItemCRUDType.Village) + + block_id = request.form.get('block_Id') + village_name = request.form.get('Village_Name', '').strip() + + village.AddItem(request=request, parentid=block_id, childname=village_name, storedprocfetch="GetVillageByNameAndBlock", storedprocadd="SaveVillage" ) + self.isSuccess = village.isSuccess + self.resultMessage = village.resultMessage + return + #self.isSuccess = False + + def GetAllVillages(self, request): + village = ItemCRUD(itemType=ItemCRUDType.Village) + villagesdata = village.GetAllData(request=request, storedproc="GetAllVillages") + self.isSuccess = village.isSuccess + self.resultMessage = village.resultMessage + return villagesdata + + + def CheckVillage(self, request): + village = ItemCRUD(itemType=ItemCRUDType.Village) + block_id = request.form.get('block_Id') + village_name = request.form.get('Village_Name', '').strip() + result = village.CheckItem(request=request, parentid=block_id, childname=village_name, storedprocfetch="GetVillageByNameAndBlocks") + self.isSuccess = village.isSuccess + self.resultMessage = village.resultMessage + return result + + + def DeleteVillage(self, request, village_id): + + village = ItemCRUD(itemType=ItemCRUDType.Village) + + village.DeleteItem(request=request, itemID=village_id, storedprocDelete="DeleteVillage" ) + self.isSuccess = village.isSuccess + self.resultMessage = village.resultMessage + return + + def EditVillage(self, request, village_id): + corsor=None + village = ItemCRUD(itemType=ItemCRUDType.Village) + + block_id = request.form.get('block_Id') + village_name = request.form.get('Village_Name', '').strip() + + village.EditItem(request=request,childid=village_id,parentid=block_id,childname=village_name,storedprocupdate="UpdateVillage" ) + + self.isSuccess = village.isSuccess + self.resultMessage = village.resultMessage + return + + # def GetVillageByID(self, request, id): + + # village = ItemCRUD(itemType=ItemCRUDType.Village) + # villagedetailsdata = village.GetAllData(request=request, storedproc="GetVillageDetailsById") + # self.isSuccess = village.isSuccess + # self.resultMessage = village.resultMessage + # return villagedetailsdata + + def GetVillageByID(self, request, id): + village = ItemCRUD(itemType=ItemCRUDType.Village) + villagedetailsdata = village.GetDataByID(id=id,storedproc="GetVillageDetailsById") + if villagedetailsdata: + self.isSuccess = True + else: + self.isSuccess = False + self.resultMessage = "Village not found" + + return villagedetailsdata + + + def GetAllBlocks(self, request): + + blocks = [] + self.isSuccess = False + self.resultMessage = "" + connection = config.get_db_connection() + + if not connection: + return [] + + cursor = connection.cursor() + + try: + cursor.callproc('GetAllBlocks') + for result in cursor.stored_results(): + blocks = result.fetchall() + self.isSuccess = True + + except mysql.connector.Error as e: + print(f"Error fetching blocks: {e}") + self.isSuccess = False + self.resultMessage = HtmlHelper.json_response(ResponseHandler.fetch_failure("block"), 500) + finally: + cursor.close() + connection.close() + + return blocks \ No newline at end of file diff --git a/v-2/model/gst_release.py b/v-2/model/gst_release.py new file mode 100644 index 0000000..732f9d7 --- /dev/null +++ b/v-2/model/gst_release.py @@ -0,0 +1,150 @@ +import config +import mysql.connector + +class GSTReleasemodel: + + @staticmethod + def get_connection(): + connection = config.get_db_connection() + if not connection: + return None + return connection + + @staticmethod + def fetch_all_gst_releases(): + connection = GSTReleasemodel.get_connection() + gst_releases = [] + if connection: + cursor = connection.cursor(dictionary=True) + + try: + cursor.callproc('GetAllGSTReleases') + + gst_releases = [] + for result in cursor.stored_results(): # change to procedure + gst_releases = result.fetchall() + + except mysql.connector.Error as e: + print(f"Error fetching GST releases: {e}") + finally: + cursor.close() + connection.close() + return gst_releases + + @staticmethod + def insert_gst_release(pmc_no, invoice_no, basic_amount, final_amount, total_amount, utr, contractor_id): + connection = GSTReleasemodel.get_connection() + if not connection: + return False + try: + cursor = connection.cursor() + + # Insert into gst_release + cursor.callproc( + 'InsertGSTReleaseOnly', + [pmc_no, invoice_no, basic_amount, final_amount, total_amount, utr, contractor_id] + ) + + # Insert into inpayment + cursor.callproc( + 'InsertInpaymentOnly', + [pmc_no, invoice_no, basic_amount, final_amount, total_amount, utr, contractor_id] + ) + + connection.commit() + return True + except mysql.connector.Error as e: + print(f"Error inserting GST release: {e}") + return False + finally: + cursor.close() + connection.close() + + @staticmethod + def fetch_gst_release_by_id(gst_release_id): + connection = GSTReleasemodel.get_connection() + if not connection: + return None + data = {} + try: + cursor = connection.cursor(dictionary=True) + + cursor.callproc('GetGSTReleaseById', [gst_release_id]) + + for result in cursor.stored_results(): + data = result.fetchone() + if data: + # Convert to array for template + data = [ + data.get('GST_Release_Id'), + data.get('PMC_No'), + data.get('Invoice_No'), + data.get('Basic_Amount'), + data.get('Final_Amount'), + data.get('Total_Amount'), + data.get('UTR') + ] + except mysql.connector.Error as e: + print(f"Error fetching GST release by id: {e}") + finally: + cursor.close() + connection.close() + return data + + @staticmethod + def update_gst_release(gst_release_id, pmc_no, invoice_no, basic_amount, final_amount, total_amount, utr): + connection = GSTReleasemodel.get_connection() + if not connection: + return False + try: + cursor = connection.cursor() + # Update gst_release + cursor.callproc( + 'UpdateGSTRelease', + [pmc_no, invoice_no, basic_amount, final_amount, total_amount, utr, gst_release_id] + ) + # Update inpayment + cursor.callproc( + 'UpdateInpaymentByUTR', + [basic_amount, final_amount, total_amount, utr] + ) + connection.commit() + return True + except mysql.connector.Error as e: + print(f"Error updating GST release: {e}") + return False + finally: + cursor.close() + connection.close() + + @staticmethod + def delete_gst_release(gst_release_id): + connection = GSTReleasemodel.get_connection() + if not connection: + return False, None + try: + cursor = connection.cursor(dictionary=True) + cursor.callproc('GetGSTReleaseUTRById', [gst_release_id]) + record = None + for result in cursor.stored_results(): + record = result.fetchone() + + if not record: + return False, None + + utr = record['UTR'] + + # Step 1: Delete gst_release + cursor.callproc('DeleteGSTReleaseById', [gst_release_id]) + + # Step 2: Reset inpayment using UTR + cursor.callproc('ResetInpaymentByUTR', [utr]) + + connection.commit() + return True, utr + except mysql.connector.Error as e: + print(f"Error deleting GST release: {e}") + return False, None + finally: + cursor.close() + connection.close() \ No newline at end of file diff --git a/v-2/model/payment.py b/v-2/model/payment.py new file mode 100644 index 0000000..90bd738 --- /dev/null +++ b/v-2/model/payment.py @@ -0,0 +1,158 @@ +import config +import mysql.connector + +class Paymentmodel: + + @staticmethod + def get_connection(): + connection = config.get_db_connection() + if not connection: + return None + return connection + + @staticmethod + def fetch_all_payments(): + connection = Paymentmodel.get_connection() + payments = [] + if connection: + cursor = connection.cursor(dictionary=True) + try: + cursor.callproc('GetAllPayments') + for result in cursor.stored_results(): + payments = result.fetchall() + except mysql.connector.Error as e: + print(f"Error fetching payment history: {e}") + finally: + cursor.close() + connection.close() + return payments + + @staticmethod + def insert_payment(pmc_no, invoice_no, amount, tds_amount, total_amount, utr): + connection = Paymentmodel.get_connection() + if not connection: + return False + try: + cursor = connection.cursor() + cursor.callproc('InsertPayments', [pmc_no, invoice_no, amount, tds_amount, total_amount, utr]) + connection.commit() + return True + except mysql.connector.Error as e: + print(f"Error inserting payment: {e}") + return False + finally: + cursor.close() + connection.close() + + @staticmethod + def update_inpayment(subcontractor_id, pmc_no, invoice_no, amount, tds_amount, total_amount, utr): + connection = Paymentmodel.get_connection() + if not connection: + return False + try: + cursor = connection.cursor() + cursor.callproc('UpdateInpaymentRecord', [ + subcontractor_id, + pmc_no, + invoice_no, + amount, + tds_amount, + total_amount, + utr + ]) + connection.commit() + return True + except mysql.connector.Error as e: + print(f"Error updating inpayment: {e}") + return False + finally: + cursor.close() + connection.close() + + @staticmethod + def fetch_payment_by_id(payment_id): + connection = Paymentmodel.get_connection() + if not connection: + return None + payment_data = {} + try: + cursor = connection.cursor(dictionary=True) + cursor.callproc("GetPaymentById", (payment_id,)) + for result in cursor.stored_results(): + payment_data = result.fetchone() + # Convert to array for template + if payment_data: + payment_data = [ + payment_data.get('Payment_Id'), + payment_data.get('PMC_No'), + payment_data.get('Invoice_No'), + payment_data.get('Payment_Amount'), + payment_data.get('TDS_Payment_Amount'), + payment_data.get('Total_Amount'), + payment_data.get('UTR') + ] + except mysql.connector.Error as e: + print(f"Error fetching payment data: {e}") + finally: + cursor.close() + connection.close() + return payment_data + + @staticmethod + def call_update_payment_proc(payment_id, pmc_no, invoice_no, amount, tds_amount, total_amount, utr): + connection = Paymentmodel.get_connection() + if not connection: + return False + try: + cursor = connection.cursor() + cursor.callproc("UpdatePayment", (payment_id, pmc_no, invoice_no, amount, tds_amount, total_amount, utr)) + connection.commit() + return True + except mysql.connector.Error as e: + print(f"Error updating payment: {e}") + return False + finally: + cursor.close() + connection.close() + + @staticmethod + def delete_payment(payment_id): + """ + Deletes a payment and resets the related inpayment fields in one go. + Returns (success, pmc_no, invoice_no) + """ + connection = Paymentmodel.get_connection() + if not connection: + return False, None, None + + try: + cursor = connection.cursor(dictionary=True) + + cursor.callproc('GetPaymentPMCInvoiceById', [payment_id]) + + record = {} + for result in cursor.stored_results(): + record = result.fetchone() or {} + if not record: + return False, None, None + + pmc_no = record['PMC_No'] + invoice_no = record['Invoice_No'] + + # Step 2: Delete the payment using the stored procedure + cursor.callproc("DeletePayment", (payment_id,)) + connection.commit() + + # Step 3: Reset inpayment fields using the stored procedure + cursor.callproc("ResetInpayment", [pmc_no, invoice_no]) + connection.commit() + + return True, pmc_no, invoice_no + + except mysql.connector.Error as e: + print(f"Error deleting payment: {e}") + return False, None, None + + finally: + cursor.close() + connection.close() \ No newline at end of file diff --git a/v-2/requirements.txt b/v-2/requirements.txt new file mode 100644 index 0000000..61475b0 --- /dev/null +++ b/v-2/requirements.txt @@ -0,0 +1,4 @@ +Flask +mysql-connector-python +openpyxl +pandas diff --git a/v-2/static/css/base.css b/v-2/static/css/base.css new file mode 100644 index 0000000..9094baf --- /dev/null +++ b/v-2/static/css/base.css @@ -0,0 +1,89 @@ +body { + margin: 0; + font-family: Arial, sans-serif; + background-color: #f5f5f5; + display: flex; + } + + /* Sidebar */ + .sidebar { + width: 250px; + height: 100vh; + background-color: #ffffff; + position: fixed; + left: -250px; + transition: left 0.3s ease; + box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1); + padding-top: 20px; + } + .sidebar.open { + left: 0; + } + + /* Sidebar Navigation */ + .nav-menu { + list-style: none; + padding: 0; + margin: 0; + } + + .nav-item { + width: 100%; + } + + .nav-link { + display: flex; + align-items: center; + text-decoration: none; + color: #333; + padding: 15px 20px; + font-size: 16px; + transition: background-color 0.3s, color 0.3s; + } + + .nav-link i { + margin-right: 10px; + font-size: 18px; + } + + .nav-link:hover, .nav-link.active { + background-color: #e6f7ff; + color: #007bff; + } + + /* Menu Button */ + .menu-icon { + position: absolute; + top: 15px; + left: 15px; + font-size: 24px; + cursor: pointer; + background: none; + border: none; + } + + /* Content Area */ + .content { + margin-left: 0; + padding: 20px; + width: 100%; + transition: margin-left 0.3s ease; + } + .content.shift { + margin-left: 250px; + } +@media (max-width: 768px) { + .sidebar { + width: 200px; + left: -200px; + } + + .sidebar.open { + left: 0; + } + + .content.shift { + margin-left: 200px; + } +} + diff --git a/v-2/static/css/index.css b/v-2/static/css/index.css new file mode 100644 index 0000000..1c22a93 --- /dev/null +++ b/v-2/static/css/index.css @@ -0,0 +1,226 @@ +body { + margin: 0; + font-family: Arial, sans-serif; + display: flex; + flex-direction: column; + background-color: #f5f5f5; + } + + /* Sidebar */ + .sidebar { + width: 250px; + height: 100%; + background-color: #ffffff; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + display: flex; + flex-direction: column; + align-items: center; + padding-top: 20px; + position: fixed; + } + .logo { + width: 80px; + margin-bottom: 20px; + } + .nav-menu { + width: 100%; + list-style: none; + padding: 0; + margin: 0; + } + .nav-item { + width: 100%; + } + .nav-link { + display: flex; + align-items: center; + text-decoration: none; + color: #333; + padding: 15px 20px; + font-size: 16px; + transition: background-color 0.3s, color 0.3s; + } + .nav-link:hover, + .nav-link.active { + background-color: #e6f7ff; + color: #007bff; + } + .nav-link i { + margin-right: 10px; + font-size: 18px; + } + .user-section { + margin-top: auto; + width: 100%; + padding: 20px; + display: flex; + align-items: center; + border-top: 1px solid #eee; + } + .user-section img { + width: 50px; + height: 50px; + border-radius: 50%; + margin-right: 10px; + } + .user-info { + display: flex; + flex-direction: column; + } + .user-info span { + font-size: 14px; + color: #333; + } + + + /* Main content area */ + .content { + margin-left: 250px; + padding: 20px; + width: calc(100% - 250px); + } + + /* Menu Cards */ + .menu { + display: flex; + flex-wrap: wrap; + gap: 20px; + } + .card { + background-color: #fff; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + border-radius: 8px; + padding: 20px; + text-align: center; + flex: 1 1 calc(30% - 20px); + max-width: calc(30% - 20px); + + } + .card h2 { + margin: 0 0 10px; + font-size: 20px; + } + .btn { + display: inline-block; + padding: 10px 20px; + color: #fff; + background-color: #007bff; + border-radius: 4px; + text-decoration: none; + font-size: 14px; + transition: background-color 0.3s; + } + .btn:hover { + background-color: #0056b3; + } + +/* Company Info */ +.company-info { + text-align: center; + padding: 20px; + background-color: Whitesmoke; + color: blue; + margin-left: 250px; +} + +.company-name { + font-size: 30px; + font-weight: bold; + margin: 0; +} + +.app-name { + font-weight: bold; + app-name-shadow:0 2px 4px rgba(0, 0, 0, 0.1); + font-size: 24px; + margin: 5px 0 0; +} + + + + /* Responsive Design */ +@media screen and (max-width: 768px) { + .sidebar { + width: 100%; + height: auto; + position: static; + } + .content { + margin-left: 0; + width: 100%; + } + .menu { + flex-direction: column; + align-items: center; + } + .card { + flex: 1 1 100%; + max-width: 100%; + min-width: 50%; + } +} + +@media screen and (max-width: 480px) { + .nav-link { + font-size: 14px; + padding: 10px 15px; + } + .btn { + font-size: 12px; + padding: 8px 15px; + } +} + +@media screen and (max-width: 768px) { + .sidebar { + width: 100%; + height: auto; + position: static; + } + + .content { + margin-left: 0; + width: 100%; + } + + .menu { + flex-direction: column; + align-items: center; + } + + .card { + flex: 1 1 100%; + max-width: 100%; + min-width: 50%; + } + + .company-info { + margin-left: 0; + } +} + +@media screen and (max-width: 480px) { + .nav-link { + font-size: 14px; + padding: 10px 15px; + } + + .btn { + font-size: 12px; + padding: 8px 15px; + } + + .user-section { + flex-direction: column; + align-items: flex-start; + gap: 10px; + } + + .user-section img { + margin-right: 0; + } + + .card { + min-width: 90%; + } +} diff --git a/v-2/static/css/invoice.css b/v-2/static/css/invoice.css new file mode 100644 index 0000000..ecf18e0 --- /dev/null +++ b/v-2/static/css/invoice.css @@ -0,0 +1,395 @@ +/* General Styles */ + +h2 { + text-align: center; + font-size: 24px; + color: #333; + margin-bottom: 20px; +} + +/* Form Styling */ +form { + width:50%; + background: #fff; + padding: 20px; + border-radius: 8px; + box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); + display: flex; + flex-direction: column; + gap: 15px; +} + +/* Responsive Form Layout */ +.row1, +.row2, +.row3 { + display: grid; + gap: 15px; +} + +.row2, +.row3 { + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); +} + +label { + font-weight: bold; + display: block; + margin-bottom: 6px; +} + +input, +textarea, +select { + width: 100%; + padding: 10px; + border: 1px solid #ccc; + border-radius: 6px; + font-size: 16px; + box-sizing: border-box; +} + +/* Button Styling */ +.button { + padding: 12px; + background-color: #007bff; + color: white; + border: none; + border-radius: 6px; + font-size: 18px; + cursor: pointer; + transition: background-color 0.3s ease-in-out; +} + +.button:hover { + background-color: #0056b3; +} + +/* Dynamic Hold Amount Fields */ +.hold-row { + display: flex; + flex-wrap: wrap; + gap: 10px; +} + +.hold-amount-field { + display: flex; + align-items: center; + gap: 10px; + padding: 10px; + background-color: #f9f9f9; + border: 1px solid #ddd; + border-radius: 4px; + flex-wrap: wrap; +} + +.hold-amount-field select, +.hold-amount-field input { + flex: 1; + min-width: 100px; +} + +.hold-amount-field button { + background-color: red; + color: white; + font-size: 14px; + padding: 8px 10px; + border: none; + border-radius: 4px; + cursor: pointer; +} + +.hold-amount-field button:hover { + background-color: #c0392b; +} + +/* Success Alert Box */ +.success-alert { + position: fixed; + top: 20px; + left: 50%; + transform: translateX(-50%); + background-color: #4CAF50; + color: #fff; + padding: 15px 25px; + border-radius: 5px; + box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); + opacity: 0; + visibility: hidden; + transition: opacity 0.5s ease, visibility 0.5s ease; + z-index: 1000; +} + +.success-alert.show { + opacity: 1; + visibility: visible; +} + +/* Table Styles */ +.invoice-table { + width: 100%; + border-collapse: collapse; + margin-top: 20px; + overflow-x: auto; +} + +.invoice-table th, +.invoice-table td { + border: 1px solid #ddd; + padding: 10px; + text-align: left; + font-size: 14px; + word-break: break-word; +} + +.invoice-table th { + background-color: #007bff; + color: #fff; +} + +.invoice-table tr:nth-child(even) { + background-color: #f9f9f9; +} + +.invoice-table tr:hover { + background-color: #f1f1f1; +} + + + +/* icon */ + .icon { + width: 20px; + height: 20px; + cursor: pointer; + transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out; + } + + .icon:hover { + transform: scale(1.5); + opacity: 0.8; + } + + .edit-icon:hover { + filter: drop-shadow(0 0 5px #007bff); /* Blue glow for edit */ + } + + .delete-icon:hover { + filter: drop-shadow(0 0 5px #ff0000); /* Red glow for delete */ + } + + +/* Center the buttons and apply consistent styling */ +.button-container { + display: flex; + justify-content: center; /* Center buttons horizontally */ + gap: 10px; /* Space between buttons */ + margin-top: 20px; /* Add some top margin */ +} + +.action-button { + background-color: #007BFF; /* Blue background */ + color: white; /* White text */ + padding: 15px 30px; /* Larger padding for bigger buttons */ + border: none; /* Remove border */ + border-radius: 5px; /* Rounded corners */ + cursor: pointer; /* Pointer cursor on hover */ + font-size: 18px; /* Larger font size */ + text-align: center; /* Center text */ + text-decoration: none; /* Remove underline */ + transition: background-color 0.3s ease; /* Smooth hover transition */ +} + +.action-button:hover { + background-color: #0056b3; /* Darker blue on hover */ +} + +#addStateForm, #stateTable { + display: none; /* Initially hide both the form and the table */ +} + +/* Success Popup */ +.success-popup { + display: none; + color: green; + font-size: 1.2em; + margin-top: 10px; +} + +/* Sorting buttons */ +.sortable .sort-buttons { + margin-left: 5px; +} + + +.sortable { + cursor: pointer; + user-select: none; + } +.sort-buttons a { + text-decoration: none; + color: black; + font-weight: bold; + margin-left: 5px; + margin-right: 5px; +} +.sort-buttons a:hover { + text-decoration: underline; + } + .back-button { + display: inline-block; + margin-top: 20px; + padding: 8px 15px; + background-color: #28a745; + color: white; + border-radius: 5px; + text-decoration: none; + font-size: 16px; + } + .back-button:hover { + background-color: #218838; + } + + + + + +span .sort-desc:hover{ +cursor: pointer; +} + +span .sort-asc:hover{ +cursor: pointer; +} + + +/* Responsive Design */ +@media (max-width: 1024px) { + form { + padding: 15px; + } + + .row2, + .row3 { + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + } + + .invoice-table th, + .invoice-table td { + font-size: 12px; + padding: 8px; + } +} + +@media (max-width: 768px) { + .row1, + .row2, + .row3 { + grid-template-columns: 1fr; + } + + .hold-amount-field { + flex-direction: column; + gap: 5px; + align-items: flex-start; + } + + .hold-amount-field select, + .hold-amount-field input { + width: 100%; + } + + .invoice-table { + display: block; + overflow-x: auto; + white-space: nowrap; + } +} + +@media (max-width: 480px) { + body { + max-width: 100%; + padding: 10px; + } + + form { + padding: 10px; + } + + .invoice-table th, + .invoice-table td { + font-size: 12px; + padding: 5px; + } + + button { + font-size: 16px; + padding: 10px; + } +} +/* Additional Media Queries */ + +/* For tablets and medium devices */ +@media (max-width: 992px) { + form { + width: 90%; + } + + .button-container { + flex-direction: column; + align-items: center; + } + + .action-button { + width: 100%; + max-width: 300px; + } +} + +/* For smaller tablets and large phones */ +@media (max-width: 600px) { + .button-container { + flex-direction: column; + align-items: stretch; + } + + .action-button { + width: 100%; + } + + .icon { + width: 16px; + height: 16px; + } + + .success-alert { + width: 90%; + font-size: 14px; + padding: 10px 15px; + } +} + +/* For very small phones */ +@media (max-width: 360px) { + h2 { + font-size: 20px; + } + + .back-button { + width: 100%; + text-align: center; + font-size: 14px; + padding: 8px 10px; + } + + .sort-buttons a { + font-size: 12px; + } + + .invoice-table th, + .invoice-table td { + font-size: 10px; + padding: 4px; + } +} + diff --git a/v-2/static/css/invoice1.css b/v-2/static/css/invoice1.css new file mode 100644 index 0000000..11d9e52 --- /dev/null +++ b/v-2/static/css/invoice1.css @@ -0,0 +1,313 @@ +/* General Styling */ +body { + font-family: Arial, sans-serif; + margin: 20px; + background-color: #f9f9f9; + color: #333; +} + +/* Header Styling */ +h1, h2, h3 { + color: #0056b3; + text-align: center; +} + +/* Table Styling */ +table { + width: 100%; + border-collapse: collapse; + margin: 20px 0; +} + +table th, table td { + border: 1px solid #ddd; + padding: 8px; + text-align: center; +} + +table th { + background-color: #007bff; + color: white; + font-weight: bold; + cursor: pointer; + position: relative; +} + +table tr:nth-child(even) { + background-color: #f2f2f2; +} + +table tr:hover { + background-color: #ddd; +} + +/* Sort Dropdown */ +.sort-options { + display: none; + position: absolute; + background: white; + border: 1px solid black; + padding: 5px; + z-index: 100; + width: 120px; + text-align: center; +} + +.sort-options button { + display: block; + width: 100%; + border: none; + background: none; + padding: 5px; + cursor: pointer; +} + +.sort-options button:hover { + background-color: #f0f0f0; +} + +/* Form Styling */ +form { + max-width: 700px; + margin: 0 auto; + padding: 20px; + background: #fff; + border: 1px solid #ddd; + border-radius: 5px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +form label { + display: block; + margin-bottom: 5px; + font-weight: bold; +} + +form input[type="text"], +form input[type="number"], +form input[type="date"], +form input[type="email"], +form textarea, +select { + width: 100%; + padding: 10px; + margin-bottom: 15px; + border: 1px solid #ddd; + border-radius: 5px; + box-sizing: border-box; +} + +form textarea { + resize: vertical; +} + +/* Button Styling */ +.button, form button { + width: 100%; + padding: 10px; + background-color: #007bff; + color: white; + border: none; + border-radius: 5px; + cursor: pointer; + font-size: 16px; + text-align: center; +} + +.button:hover, form button:hover { + background-color: #0056b3; +} + +/* Back Button */ +.back-button { + background-color: red; + color: white; + padding: 10px 20px; + text-decoration: none; + font-weight: bold; + border-radius: 5px; + display: inline-block; + margin-top: 20px; + text-align: center; +} + +.back-button:hover { + background-color: darkred; +} + +/* Success Alert */ +.success-alert { + display: none; + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background-color: #d4edda; + color: #155724; + padding: 20px; + border-radius: 10px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); + text-align: center; + font-size: 18px; + font-weight: bold; +} + +.success-popup i { + color: green; + font-size: 30px; + margin-right: 10px; +} + +/* Error Message */ +.error-message { + color: red; + font-size: 14px; + margin-top: 5px; +} + +/* Table Icons */ +td img { + width: 20px; /* Adjust as needed */ + height: 20px; /* Adjust as needed */ + transition: transform 0.3s ease; /* Smooth transition for hover effect */ +} + +td img:hover { + transform: scale(1.2); /* Slight zoom effect on hover */ +} + +/* Select Dropdown */ +select { + width: 100%; + padding: 12px 15px; + margin: 10px 0; + border: 1px solid #ccc; + border-radius: 5px; + font-size: 14px; + background-color: #fff; + box-sizing: border-box; + appearance: none; +} + +/* Custom Dropdown Arrow */ +select::-ms-expand { + display: none; +} + +select:focus { + outline: none; + border-color: #4CAF50; +} + +select option { + padding: 12px 15px; + font-size: 14px; +} + +option[disabled] { + color: #aaa; + font-style: italic; +} + +/* Save Button */ +.save-button { + background-color: green; + color: white; + padding: 15px; + text-decoration: none; + font-weight: bold; + border-radius: 5px; + display: flex; + justify-content: center; + align-items: center; + margin: 20px auto; + text-align: center; +} + +.save-button:hover { + background-color: darkgreen; +} + +/* Responsive Design */ +@media (max-width: 768px) { + form { + max-width: 100%; + padding: 15px; + } + + table th, table td { + padding: 6px; + font-size: 14px; + } + + .button, form button { + font-size: 14px; + padding: 8px; + } +} +/* Additional Media Queries */ + +/* For tablets and medium-sized screens */ +@media (max-width: 992px) { + form { + padding: 18px; + } + + table th, table td { + font-size: 14px; + padding: 6px; + } + + .save-button, .back-button, .button, form button { + font-size: 15px; + } +} + +/* For smaller tablets and large phones */ +@media (max-width: 600px) { + body { + margin: 10px; + } + + h1, h2, h3 { + font-size: 20px; + } + + table th, table td { + font-size: 13px; + padding: 5px; + } + + .success-alert { + width: 90%; + font-size: 16px; + padding: 15px; + } + + .button, form button, .save-button, .back-button { + padding: 10px; + font-size: 14px; + } +} + +/* For very small phones */ +@media (max-width: 360px) { + h1, h2, h3 { + font-size: 18px; + } + + .save-button, .back-button { + width: 100%; + font-size: 13px; + padding: 10px; + } + + table th, table td { + font-size: 12px; + padding: 4px; + } + + form input, form select, form textarea { + font-size: 14px; + } +} diff --git a/v-2/static/css/report.css b/v-2/static/css/report.css new file mode 100644 index 0000000..686905d --- /dev/null +++ b/v-2/static/css/report.css @@ -0,0 +1,181 @@ +h2 { + text-align: center; + font-size: 24px; + color: #333; + margin-bottom: 20px; +} + +/* Form Styling */ +.info { + width: 60%; + background: #fff; + padding: 20px; + border-radius: 8px; + box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); + display: flex; + flex-direction: column; + gap: 15px; +} + +/* Responsive Form Layout */ +.row1, +.row2, +.row3 { + display: grid; + gap: 15px; +} + +.row2, +.row3 { + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); +} + +label { + font-weight: bold; + display: block; + margin-bottom: 6px; +} + +input, +textarea, +select { + width: 100%; + padding: 10px; + border: 1px solid #ccc; + border-radius: 6px; + font-size: 16px; + box-sizing: border-box; +} + +/* Table styling */ +.table-wrapper { + overflow-x: auto; +} + +table { + width: 100%; + border-collapse: collapse; + margin: 20px 0; +} + +table th, table td { + border: 1px solid #ddd; + padding: 8px; + text-align: center; +} + +table th { + background-color: #007bff; + color: white; + font-weight: bold; +} + +table tr:nth-child(even) { + background-color: #f2f2f2; +} + +table tr:hover { + background-color: #ddd; +} + +.download-btn { + display: inline-block; + padding: 10px 15px; + background-color: #28a745; + color: white; + text-decoration: none; + border-radius: 5px; + margin-top: 15px; +} + +.total-table { + width: 35%; +} + +/* Responsive Design */ +@media (max-width: 1024px) { + .info { + padding: 15px; + } + + .row2, + .row3 { + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + } + + .invoice-table th, + .invoice-table td { + font-size: 12px; + padding: 8px; + } +} + +@media (max-width: 768px) { + .row1, + .row2, + .row3 { + grid-template-columns: 1fr; + } +} + +@media (max-width: 480px) { + body { + max-width: 100%; + padding: 10px; + } + + .info { + padding: 10px; + } + + table th, + table td { + font-size: 10px; + padding: 6px; + } +} + +/* Ensure table responsiveness */ +@media (max-width: 600px) { + .table-wrapper { + overflow-x: auto; + } + + table { + min-width: 600px; + } +} +/* Extra Small Devices (max-width: 360px) */ +@media (max-width: 360px) { + h2 { + font-size: 20px; + margin-bottom: 15px; + } + + .info { + width: 100%; + padding: 8px; + } + + input, + textarea, + select { + font-size: 14px; + padding: 8px; + } + + .download-btn { + font-size: 14px; + padding: 8px 12px; + } + + table th, + table td { + font-size: 9px; + padding: 5px; + } + + .total-table { + width: 100%; + } +} diff --git a/v-2/static/css/show_excel.css b/v-2/static/css/show_excel.css new file mode 100644 index 0000000..9563d2a --- /dev/null +++ b/v-2/static/css/show_excel.css @@ -0,0 +1,212 @@ + /* General Styles */ +body { + font-family: Arial, sans-serif; + margin: 20px; + padding: 20px; + background-color: #f4f4f9; + color: #333; +} + +/* Headings */ +h1, h2 { + color: #2c3e50; +} + +/* File Information Section */ +ul { + list-style-type: none; + padding: 0; +} + +ul li { + background: #ecf0f1; + margin: 5px 0; + padding: 10px; + border-radius: 5px; +} + +/* Error Messages */ +.errors { + background-color: #ffdddd; + border: 1px solid #ff4d4d; + padding: 15px; + margin-bottom: 20px; + border-radius: 5px; +} + +.errors h2 { + color: #ff4d4d; +} + +.error { + color: #d8000c; + font-weight: bold; +} + +/* Table Styles */ +.table-container { + max-width: 100%; + overflow-x: auto; /* Allows horizontal scrolling */ + margin-bottom: 20px; + border: 1px solid #ddd; /* Optional for better visibility */ +} + +table { + width: 100%; + border-collapse: collapse; + background-color: white; + table-layout: auto; /* Let the columns adjust based on content */ +} + +th, td { + padding: 10px; + border: 1px solid #ddd; + text-align: left; + word-wrap: break-word; /* Prevents text from overflowing */ +} + +th { + background-color: #3498db; + color: white; +} + +tr:nth-child(even) { + background-color: #f2f2f2; +} + +/* Set input width to 100px */ +input[type="text"] { + width: 200px; /* Set a fixed width of 100px */ + padding: 8px; + border: 1px solid #ccc; + border-radius: 4px; + box-sizing: border-box; /* Ensures padding is included in width calculation */ + white-space: nowrap; /* Prevent line breaks */ + overflow: hidden; /* Prevents overflow */ + text-overflow: ellipsis; /* Shows ellipsis if the content is too long */ +} + +/* Buttons */ +button { + display: inline-block; + background-color: #27ae60; + color: white; + padding: 10px 15px; + text-decoration: none; + border: none; + cursor: pointer; + border-radius: 5px; + transition: background 0.3s ease; + font-size: 16px; + width: 100%; /* Ensures button is centered */ +} + +.back-button { + display: inline-block; + background-color: #27ae60; + color: white; + padding: 10px 15px; + text-decoration: none; + border: none; + cursor: pointer; + border-radius: 5px; + transition: background 0.3s ease; + font-size: 16px; + width: 10%; /* Ensures button is centered */ +} + +/* Hover Effects */ +button:hover, .back-button:hover { + background-color: #219150; +} + +button:disabled { + background-color: #95a5a6; + cursor: not-allowed; +} + +/* Back Button */ +.back-button { + background-color: #e74c3c; +} + +.back-button:hover { + background-color: #c0392b; +} + +/* Center Save Data Button */ +form { + display: flex; + flex-direction: column; + align-items: center; +} + +.save-button { + margin-top: 20px; + width: 50%; +} + +/* Responsive Design */ +@media (max-width: 768px) { + .table-container { + display: block; + overflow-x: auto; + white-space: nowrap; + } + + table { + width: 100%; + table-layout: auto; /* Let the table adjust to fit its content */ + } + + input[type="text"] { + width: 100px; /* Fixed width of 100px */ + padding: 6px; /* Smaller padding on mobile */ + } + + button, .back-button { + width: 100%; + text-align: center; + } +} +@media (max-width: 480px) { + body { + margin: 10px; + padding: 10px; + } + + h1, h2 { + font-size: 20px; + text-align: center; + } + + input[type="text"] { + width: 80px; + font-size: 14px; + } + + th, td { + font-size: 12px; + padding: 6px; + } + + .save-button { + width: 100%; + } + + .back-button { + width: 100%; + font-size: 14px; + } + + button { + font-size: 14px; + padding: 8px 12px; + } + + .errors { + font-size: 14px; + padding: 10px; + } +} + diff --git a/v-2/static/css/style.css b/v-2/static/css/style.css new file mode 100644 index 0000000..1e4ea1d --- /dev/null +++ b/v-2/static/css/style.css @@ -0,0 +1,448 @@ + /* General styling */ +body { + font-family: Arial, sans-serif; + margin: 20px; + background-color: #f9f9f9; + color: #333; +} + +/* Header styling */ +h1 { + color: back; + text-align: center; +} +h2 { + color: #0056b3; + text-align: center; +} +h3 { + color: #0056b3; +} + +/* Table styling */ +table { + width: 100%; + border-collapse: collapse; + margin: 20px 0; +} + +table th, table td { + border: 1px solid #ddd; + padding: 8px; + text-align: center; +} + +table th { + background-color: #007bff; + color: white; + font-weight: bold; +} + +table tr:nth-child(even) { + background-color: #f2f2f2; +} + +table tr:hover { + background-color: #ddd; +} + + + +/* Form styling */ +form { + max-width: 600px; + margin: 0 auto; + padding: 20px; + background: #fff; + border: 1px solid #ddd; + border-radius: 5px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +form label { + display: block; + margin-bottom: 5px; + font-weight: bold; +} + + + +form input[type="text"], form input[type="number"], form input[type="date"],form input[type="email"], form textarea { + width: 100%; + padding: 10px; + margin-bottom: 15px; + border: 1px solid #ddd; + border-radius: 5px; + box-sizing: border-box; +} + +form textarea { + resize: vertical; +} + + +form button { + width: 100%; + padding: 10px; + background-color: #007bff; + color: white; + border: none; + border-radius: 5px; + cursor: pointer; + font-size: 16px; +} + +form button:hover { + background-color: #0056b3; +} + +/* Style the

    elements to display inline */ +h1 { + display: inline-block; + margin-right: 10px; /* Spacing between buttons */ +} + +/* Style the tags to look like buttons */ +.button { + text-decoration: none; /* Remove underline */ + padding: 10px 20px; /* Add padding for size */ + background-color: #4CAF50; /* Green background color */ + color: white; /* White text */ + font-size: 16px; /* Font size */ + border-radius: 5px; /* Rounded corners */ + border: none; /* Remove default border */ + cursor: pointer; /* Cursor style */ + transition: background-color 0.3s ease; /* Smooth transition for hover */ +} + +/* Change background color on hover */ +.button:hover { + background-color: #45a049; +} + +/* Style for the Back Button */ +.back-button { + background-color: red; + color: white; + padding: 10px 20px; + text-decoration: none; + font-weight: bold; + border-radius: 5px; + display: inline-block; + margin-top: 20px; + text-align: center; +} + +.back-button:hover { + background-color: darkred; +} + +/* Styling for the select dropdown */ +select { + width: 100%; /* Use full width for better responsiveness */ + padding: 12px 15px; /* Increased padding for better spacing */ + margin: 10px 0; /* Spacing above and below */ + border: 1px solid #ccc; /* Border color */ + border-radius: 5px; /* Rounded corners */ + font-size: 14px; /* Font size for text */ + background-color: #fff; /* White background */ + box-sizing: border-box; /* Ensures padding and border are included in width */ + appearance: none; /* Remove default dropdown arrow for custom styling */ +} + +/* Custom dropdown arrow */ +select::-ms-expand { + display: none; /* Remove the default arrow for IE/Edge */ +} + +select:focus { + outline: none; /* Remove outline when focused */ + border-color: #4CAF50; /* Change border color when focused */ +} + +/* Option styling for the select */ +select option { + padding: 12px 15px; /* Padding for each option */ + font-size: 14px; /* Font size */ +} + +/* Style the placeholder (default) option */ +option[disabled] { + color: #aaa; /* Light grey color for disabled option */ + font-style: italic; /* Italicize the disabled option */ +} + +/* Label styling */ +label { + font-size: 16px; + font-weight: bold; + margin-bottom: 5px; + display: block; +} + + + + +.save-button { + background-color: Green; + color: white; + padding: 15px; + text-decoration: none; + font-weight: bold; + border-radius: 5px; + display:flex; + justify-content: center; + align-item: center; + margin: 20px; + text-align: center; + +} + +.save-button:hover { + background-color: darkGreen; +} + + +.success-popup { + display: none; + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background-color: #d4edda; + color: #155724; + padding: 20px; + border-radius: 10px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); + text-align: center; + font-size: 18px; + font-weight: bold; +} +.success-popup i { + color: green; + font-size: 30px; + margin-right: 10px; +} + + .error-message { + color: red; + font-size: 14px; + margin-top: 5px; + } + + + .icon { + width: 20px; + height: 20px; + cursor: pointer; + transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out; + } + + .icon:hover { + transform: scale(1.5); + opacity: 0.8; + } + + .edit-icon:hover { + filter: drop-shadow(0 0 5px #007bff); /* Blue glow for edit */ + } + + .delete-icon:hover { + filter: drop-shadow(0 0 5px #ff0000); /* Red glow for delete */ + } + + /* Search Bar Container */ +.search-container { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; +} + +/* Search Bar Input */ +#searchBar { + padding: 8px; + font-size: 14px; + border: 1px solid #ccc; + border-radius: 5px; + width: 200px; + transition: 0.3s; +} + +/* Search Bar Focus Effect */ +#searchBar:focus { + border-color: #007bff; + outline: none; + box-shadow: 0 0 5px rgba(0, 123, 255, 0.5); +} + + + + + +/* Center the buttons and apply consistent styling */ +.button-container { + display: flex; + justify-content: center; /* Center buttons horizontally */ + gap: 10px; /* Space between buttons */ + margin-top: 20px; /* Add some top margin */ +} + +.action-button { + background-color: #007BFF; /* Blue background */ + color: white; /* White text */ + padding: 15px 30px; /* Larger padding for bigger buttons */ + border: none; /* Remove border */ + border-radius: 5px; /* Rounded corners */ + cursor: pointer; /* Pointer cursor on hover */ + font-size: 18px; /* Larger font size */ + text-align: center; /* Center text */ + text-decoration: none; /* Remove underline */ + transition: background-color 0.3s ease; /* Smooth hover transition */ +} + +.action-button:hover { + background-color: #0056b3; /* Darker blue on hover */ +} + +#addStateForm, #stateTable { + display: none; /* Initially hide both the form and the table */ +} + +/* Success Popup */ +.success-popup { + display: none; + color: green; + font-size: 1.2em; + margin-top: 10px; +} + +/* Sorting buttons */ +.sortable .sort-buttons { + margin-left: 5px; +} + + +.sortable { + cursor: pointer; + user-select: none; + } +.sort-buttons a { + text-decoration: none; + color: black; + font-weight: bold; + margin-left: 5px; + margin-right: 5px; +} +.sort-buttons a:hover { + text-decoration: underline; + } + .back-button { + display: inline-block; + margin-top: 20px; + padding: 8px 15px; + background-color: #28a745; + color: white; + border-radius: 5px; + text-decoration: none; + font-size: 16px; + } + .back-button:hover { + background-color: #218838; + } + + + + +span .sort-desc:hover{ +cursor: pointer; +} + +span .sort-asc:hover{ +cursor: pointer; +} +.sortable select { + background-color: #007BFF; /* Blue background */ + color: white; /* White text */ + border: none; + border-radius: 4px; + padding: 5px 10px; + font-size: 14px; + cursor: pointer; + appearance: none; /* Remove default browser styling */ + background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-caret-down-fill' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658c-.566-.63-.106-1.658.753-1.658h9.592c.86 0 1.32 1.027.753 1.658L8.753 11.14a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 10px center; + background-size: 12px; +} + +.sortable select:focus { + outline: none; + background-color: #0056b3; /* Darker blue on focus */ +} +.download-btn { + display: inline-block; + padding: 10px 15px; + background-color: #28a745; + color: white; + text-decoration: none; + border-radius: 5px; + margin-top: 15px; + } +@media (max-width: 480px) { + body { + margin: 10px; + padding: 10px; + } + + h1, h2, h3 { + font-size: 18px; + text-align: center; + } + + table th, table td { + font-size: 12px; + padding: 6px; + } + + form { + padding: 10px; + max-width: 100%; + } + + form input[type="text"], + form input[type="number"], + form input[type="date"], + form input[type="email"], + form textarea, + select { + padding: 8px; + font-size: 14px; + } + + form button, + .button, + .back-button, + .save-button, + .action-button { + font-size: 14px; + padding: 10px; + width: 100%; + } + + .button-container { + flex-direction: column; + gap: 10px; + } + + #searchBar { + width: 100%; + font-size: 14px; + } + + .sortable select { + font-size: 14px; + padding: 8px 10px; + background-position: right 8px center; + } +} diff --git a/v-2/static/css/subcontractor_report.css b/v-2/static/css/subcontractor_report.css new file mode 100644 index 0000000..b7ab1ff --- /dev/null +++ b/v-2/static/css/subcontractor_report.css @@ -0,0 +1,199 @@ +/* Global box-sizing for predictable sizing */ +*, *::before, *::after { + box-sizing: border-box; +} + +h2 { + text-align: center; + /* Fluid font size between 20px and 24px */ + font-size: clamp(20px, 3vw, 24px); + color: #333; + margin-bottom: 20px; +} + +/* Form Styling */ +.info { + width: 60%; + max-width: 900px; /* optional max-width */ + background: #fff; + padding: 20px; + border-radius: 8px; + box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); + display: flex; + flex-direction: column; + gap: 15px; + margin: 0 auto; /* center horizontally */ +} + +/* Responsive Form Layout */ +.row1, +.row2, +.row3 { + display: grid; + gap: 15px; +} + +.row2, +.row3 { + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); +} + +label { + font-weight: bold; + display: block; + margin-bottom: 6px; +} + +input, +textarea, +select { + width: 100%; + padding: 10px; + border: 1px solid #ccc; + border-radius: 6px; + /* Fluid font size between 14px and 16px */ + font-size: clamp(14px, 1.5vw, 16px); +} + +/* Table styling */ +.table-wrapper { + overflow-x: auto; +} + +table { + width: 100%; + border-collapse: collapse; + margin: 20px 0; +} + +table th, +table td { + border: 1px solid #ddd; + padding: 8px; + text-align: center; + /* Fluid font size between 10px and 14px */ + font-size: clamp(10px, 1vw, 14px); +} + +table th { + background-color: #007bff; + color: white; + font-weight: bold; +} + +table tr:nth-child(even) { + background-color: #f2f2f2; +} + +table tr:hover { + background-color: #ddd; +} + +.download-btn { + display: inline-block; + padding: 10px 15px; + background-color: #28a745; + color: white; + text-decoration: none; + border-radius: 5px; + margin-top: 15px; + /* Fluid font size between 12px and 16px */ + font-size: clamp(12px, 1.5vw, 16px); +} + +.total-table { + width: 35%; +} + +/* Responsive Design */ +@media (max-width: 1024px) { + .info { + padding: 15px; + width: 80%; + } + + .row2, + .row3 { + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + } + + .invoice-table th, + .invoice-table td { + font-size: 12px; + padding: 8px; + } +} + +@media (max-width: 768px) { + .info { + width: 90%; + } + .row1, + .row2, + .row3 { + grid-template-columns: 1fr; + } +} + +@media (max-width: 600px) { + .table-wrapper { + overflow-x: auto; + } + + table { + min-width: 600px; + } +} + +@media (max-width: 480px) { + body { + max-width: 100%; + padding: 10px; + } + + .info { + padding: 10px; + width: 100%; + } + + table th, + table td { + font-size: 10px; + padding: 6px; + } +} + +@media (max-width: 360px) { + h2 { + font-size: 20px; + margin-bottom: 15px; + } + + .info { + width: 100%; + padding: 8px; + gap: 10px; + } + + input, + textarea, + select { + font-size: 14px; + padding: 8px; + } + + table th, + table td { + font-size: 8px; + padding: 4px; + } + + .total-table { + width: 100%; + } + + .download-btn { + padding: 8px 12px; + font-size: 14px; + } +} diff --git a/v-2/static/css/upload_excel_file.css b/v-2/static/css/upload_excel_file.css new file mode 100644 index 0000000..e9bc1b6 --- /dev/null +++ b/v-2/static/css/upload_excel_file.css @@ -0,0 +1,111 @@ +body { + font-family: Arial, sans-serif; + margin: 0; + padding: 0; + display: flex; + justify-content: center; + align-items: center; + min-height: 100vh; + background-color: #f9f9f9; +} + +.container { + max-width: 500px; + width: 90%; + background: #ffffff; + padding: 20px; + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); + text-align: center; +} + +h1 { + margin-bottom: 20px; + color: #333; +} + +form { + margin-bottom: 20px; +} + +input[type="file"] { + display: block; + margin: 0 auto 15px auto; + font-size: 18px; + padding: 10px; + cursor: pointer; + border: 2px solid #007bff; + border-radius: 5px; + background-color: #f4f4f4; +} + +input[type="file"]:hover { + border-color: #0056b3; +} + +button { + background-color: #4CAF50; + color: white; + border: none; + padding: 15px 25px; + font-size: 18px; + border-radius: 5px; + cursor: pointer; +} + +button:hover { + background-color: #45a049; +} + +/* Style for the Back Button */ +.back-button { + background-color: red; + color: white; + padding: 10px 20px; + text-decoration: none; + font-weight: bold; + border-radius: 5px; + display: inline-block; + margin-top: 20px; + text-align: center; +} + +.back-button:hover { + background-color: darkred; +} + +@media screen and (max-width: 600px) { + .container { + padding: 15px; + } + h1 { + font-size: 20px; + } + input[type="file"] { + font-size: 16px; + padding: 8px; + } + button, .back-button { + font-size: 14px; + padding: 10px 20px; + } +} +@media screen and (max-width: 360px) { + .container { + width: 95%; + padding: 10px; + } + h1 { + font-size: 18px; + margin-bottom: 15px; + } + input[type="file"] { + font-size: 14px; + padding: 6px; + } + button, .back-button { + font-size: 12px; + padding: 8px 16px; + } +} + diff --git a/v-2/static/images/icons/bin_red_icon.png b/v-2/static/images/icons/bin_red_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ca80068ef2a59672085cb84456acaa2ceae0ca59 GIT binary patch literal 4624 zcmeHKXH-*J*FJ$bfDXlqf)E5o1Vj{Gij)wVfQZszD8Yi_3{8}bU=k8h2Lz>w(usfw zQb%c0LQv_T*g_AXga83)AwWU`@6~y~U+?<6!Zh*!kAR!qhn|^BWBt znml>CE#$UGUrcG8hK5?nWAU6l@SJGTTr*RPowhS-dlD-Plkdf7>`+&fzTlZKuIAm4 zQ?0sZ+T*I!&26TZJNGU|x;HDPpGoQvoSK(D|3pPT<(8O{cKFDe-U4HzZ7QH=X5b4w zZ7rOV_OtdQC&k2eRp4=$3xL5g41_X-!F0O__?RdOo+=>#)@qhzNF{I7_)BQmdOQ9r zr1!?Qyn?w-S%WdbusVUCSY9S`^J6<@%rAKF12X&Z=UPdm1ABaSB0f18<7RRyIt~ZU z&R@m9t5J6g&P>E|?G7C9**vQ(NG8PDjs?9_KkY{+4JJGuIwwed^If;loHn%J9UReF z96W#37bEl4zV^z*&lM&T^5&UD97zBAX4oR<#;va4>C{S_xIO1QUmv^9Xg6tjbLsx! zc9GE?m_qk7UG;3z{E%9@(OO!bcoaoWBwn=0iEb&o$*GwcowyIso+`oo4Ktjo1o;S{AT;j{=sekV`)|F zpY(e+0b|Cg(4@JN!#6DQuFS@XG3`ushW>~v4*$*V8o2>m5{@8pd#qx*ZWSW@52_#l z$_fdHP!xdNf2V_eA=aN>>p~a_<>cg_<2U%Wj&JN}9jQG*_{y02q_yWk_N)9b7CAoo zm^-rm;^o2V!M-)GLgXWOleu`#wTw<3S*v|^nNfET6jm zCiOR2^FYlc#9_GS`uOY(^$5!RDNfp9@Fb={19xPFn!SAIPIHppoJxJS_Gu3HFt95e zd6jqWbzi#|$JBIOi`0A6b7lHx&aWzf14-@wpv95U1X}ThY%})8q?6uc0|A{y#_kW)n-S;R!t6ciZtWcTMT+%kt9f< zVcf$7w^y{ku9?SfN6j=`W>cl**DdCoPAn8J+~2pGScJ(a*IgKP^a&kZ*h{;$cA7&@ zT!dYhe>+(_fc;!&Ay-lEH7m;)OaB9!)!iB`U;wX-`ro>f# z%$)w~k0_^@!##LMe7UkOxXz=8q3|KMADtkXyr7ZSggAmEd)RRj&CSQX=?S;LmX~c) z2pHm7i_dwvLe*MBoQLp9GHe;9atS$@5#r&-wcM8LusUlcw3Ks*OMIl7Ru%e^cTwn5 zr(7r-%^^RMf{Cs*9x7=}MOAiJ^w#NZ4VvP&;0Az6b!KzUuwuoUb8#)C))xyoD3Pc9 zL>*ODtY~x5@ykpPj`5ypklfu6e4nQ%^s=)yG_;NBev;+lPM26oqa46u9PMzE^R(Eg$|uWyL>gDuPF51z9P`? zCI`Q#A0(SJ800g`=tqxbZH)3iW4HXz4!oVL=!)PhdNYgDy5>Dk$VGd`BK-Lj7WT+T z7#P*~?{xoxeo#F$Rq@s&{wU#3e3?*l3qI&n%S@%Bv`Yt%m$5W^9y*f(h0f=Mt_p0a z3!7%+Vp%l9T;vd(2vEvw*%T?F!jUXCpdSKLT9j~Am}n#fkH;Jl`;_I`E_7Cf9S{W; zS`=zLfWu%!>29BVSLk~vppZlhw=U%c>;^(0ajxv0+E>2}AO)iD){AR8{jFgJgd#!H z4!DAXC}=?a-(JjQh){~n1SU;JQPT&0*DbzjQBmWP#2{n<_+2`zUBAlq+4=5Dzpj+> zbPw{(R?f))FrScYDbgVE&(*4SJ_wOwE-ed|Ko@SDvMce@kxCa0HLf&BaOLq(Mu zN?JYS2at=lgwIE?hJuPl8t~VqOVFQXivq@$w^d_z1g9lFA5O=Nxmd{{y94|xs>aS2 zdb<{wa^MQO%dj%;PGTl9?^PbnC9w`^i80?xLt-(N*c-gfDHT=U|U%wC<(Qrk&#U9Rk{ zsma(>D8LO8#BdDdkO0o=6cP-hR!* zfKG&`;fs?S-K5mzZ_f=@1M-3vHnJ|#evhbG)du%ewfl6YUcRq4n6wj;f?&RH+!!#2 zE(_{%v_4GBzc5J{LH3qnf*XdYec()LVsB5XB!2VJ} zjLJZ!@TTm4l>TwSKUwhqvk>;J!KSs6LD*iR=K|XH2Sj-ci#%l~cnFO;Kp-Ne^Bvxh zz({!UD7a@rj{N~nIzk_>3)`<$oKzP>LDP;G+X%#$qzz}{)27hOA@Ro{9(~pVtcYQ2 zT@{43-Z*hoXE)}3cmTV+9-{(-<{6?tT4eO&XO%0uem>LP@{Kh6Q?zV>&C8%tuc`}~ zBu{oZML_)y%GpZW|FeYwxTklHV9*=*9awcHy68(fz(uw?E*cX&@=*-SA5I@A3x0O8 z4>`++Wd|w&*cb+w`EgEG6vA!xpUluQ1sUKEvop+<1A+>ML>s+oX zC(~wqv0VtX@qm%P{en&pDxmDG@&S*lk{SJK^?b1m)(OU(L4o|p+6bkhMy`3r(!MFb7xO?LM`1!Y#BR8 z#EEcW6HBjNX*^_wuNEWPfjC-d%sUz0U`yg~SFk~X9&UWTBu-cPQ-XnYFAQfuG+>dO; zM=^^fkM26R89kKFk-r!A3u4rxrL%I0^)9m63D*|c_CxQuW@vtm%@f3a7?B@=w8+PF6Bw8nk#A{LrNtL`NCo$EwGT##hG2FdZ_qwDDCB=7H z&5tf&seb9e;!T6ZQ=E$IuGsgojghC3P3lbZ05v~Yj zcsw^Dg*UegSgpH&Pwo8HU*7Yys0xXai+5^M)228nh@;IWY}F5)CW4-aENxqGuy~-l z0*#z{`sfQSVo2DGZ6%Gf#O^ZwUk5 zQ7+E>G0h38pS>MYK|ZyBz})Q(RSU(p^Q!t#A|$eKZ|sy zoNHyL+)~_LYN!{HSI*@vvi#5opCd0VokA+0)1-I!-)#JnH@>vhSjwR9)6gT_8a$}j zT-$NOEq!6Za3!N{p=hA)(s_Z8q}NlV?b4b5Z9?XnY&)WzxuxGi1khz;dDf!L?0n?E E0Z2(XtpET3 literal 0 HcmV?d00001 diff --git a/v-2/static/images/icons/pen_blue_icon.png b/v-2/static/images/icons/pen_blue_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2f0bf5f1db66eb00ad7b79b39902a6261fa78869 GIT binary patch literal 3015 zcmaJ@X;c&E8lD7*2?9cc%A!O>1w{cZixx4sU=R&p*t7)`u0b}zg~cjY5;Ry_E5R#V zEG}V}MT1fZ2!zC-g1E3K4UkHjYcXYs2`CU?lDS{Rp7vMgocZQE?>z7JJnt;u2l|tY z4Xq3z2r}N|yNd!rD6mCASPZy?pDaHDF1X{q2a_OZAzpW)p!^#aU~_uUuI<6!-cY=G zRvi&#*>>W{7tXux>N)8dZZg}ULKopPi^|8*9pp2fZ{ihvcdxoE@-hqOjbF5eWAbVC zPaY9PdyO|9TJXbTln=(-&^*YA;zyA7PIWbgbq;Tt8=Hi0O-D!rCdzDAMOVusU3e>oAgh#Z$jr}SsI+K>^=n=)Rf^M?M?k+*tX=g0ear3Hk2 z59@n(&mwJYb((LbPLiT+hoFUB+>y1vvhOa2UzU$OF01kEZ8M?aM+OEtpk%(Y2x z>5c3As<w5*NSNhCf*KdYhQ7e{uWpdU)yTnQA zShRPrzw9;+>fZdF&SYyyBtwCC-M(BO2llEZ>w$-GZpIWikklb&T(mvJH`S4$-JxStjk5$?bP2k2 zCe728Iugbo5hh=_QA{}&10>cce;ju&@!(zf=fgD5jH&ppt5?oGY&vAVt}Pcq7h1gb zU%`L3P!XRdz9gdaCpxoa3VoX??qY+rkwXG+2h7iS-#QzqKsqRka5M~j-9hxk)Z#7J zilo7ml}W3)@J*T#-9CE+&N_9u{Xn-PGG-wJ5nl#0kM1m^D-VQC9hse$#4f`(^XT?n z+j9E~dHCTkesfX|WZMqk{P&Y7TAER;o7VU1Txv2ABfsgLFMs;`^HZ~Pi4ch&x8q5U zBf}8k%L#jf`d?fEpKI<$(pM)Ft});U0mvh zs!l-mZE)VuXkxxnz!l*nei2O3?GJ2?CqO&8)KHEy6 z7mYML^@4{FI)2? z+BMnS86}TIjx2XC%)lGi!=wZ0!h6vd+*}T$1BxpRBFT8(*USBE41MsD1d|a)^ z$7}n>mP~Hd-A=dk$dKQ*Yue+*z+O-t3r{4kxG9zAd!-hi88kJLaj5R(f*QM6?yq|lZ@oDY}bJby;cwo4Mufvsmm`je3q>RjLcVRKc(e4?o#aAM#ZY>4n%;8IM zB?(ASEVp`p=K_G&T=mH4Fd?6kgp8c_cG(I0Rd@XUJm~wyj)-(|!0O${@4)FV2cN%X z(S{JxtG>k}vt~xJX*(l?N>LLFxP*tM>BLG^eO}63YX6cH4Jdiej0-c4N+tWnY#LTT zh*UG`8Q(>e%|k^hq^xqx>vNRmcgW;K4gZ@6A}Az1M<#vnYOr)3*pWbVBz^__MeIPZ z%6LdUi?Ey}T_htpu%zsXr1WhgI~T~NcdE?{K|PYGu+(f-@p;vpEsV|lb2V#`AZaaq z=S@V)?^Jf?A|+|&td^gqI6I%excMpw2Z9tE5l>BQ2OAJaJQXcsn?$Lv5Ado+r+0k{ zU)-GH@h7nU{qDcg{<|Kj{!|ut-)!YB1og3xOArqb;IE7q-w&;B3ZHM0C6zPI{jE$h z?P(?Pl^gPz*7;^Ww*+DbhVB&Ig z4wc8{vw`z1^rTGlS%gSntx<(d8GWXOp&PePqfu;#H1MK>)WnkcC@exDz={$Ovrnv$ zEVaY!+_3rCnAf)7jS`wK7Pothif$SHkZ; z`GVbBLd|Z&GLT?d^iW&n8oRmLxwuC>Y0_5d*nR8XNxSlodrxQQ3aB*+L|NO{l^xt8 zL&`jru^*FiNymrthRi~>>DcNScBxo)|>9PNKKvm(77aZ1q$^ZgPbQRhs6Ywnx708mb`hGYwVDSU(}FhahiQ$v0+IqDm0 z?EUQv#z{)QI3z_cX?S>8*jY;yr_~0m4&7Qho!nY6W;6Lf-~CP=#^uh5O^UB)6s##Q1vMKH&MW*Y;s2ztBq4lvaA zxe5x$nN}DBjV=WFn|kGj2Q~vz4~O@E!y-HelrPto@m5c6L7%y5B@F1@zVIvm(v2Y; zLP1z;?%a0fJs)cpp*2uE<;@gkS}J%9%E8iY&df_1&#{_4Y05@Ow$R1DG+xUeNkTXH zISyt(vLJR)>?EhW)8MznM*24rd9MMs&q|5}d9u86lbz!t57V;9ukxyA5yQlM>2 zOnvLS2fZ%l5;g}IK1s&r=~X-_UJFZJe=ueRg``e4@HlyWSPHrAm0H#k!SnIz^o~)G zSZ}Yq;h;b8lW)RbKEAwd>G9$&YRPzvAu@fvHfa|>9AB2nlc{nALJMP PsDthC@!!SWK|A+Select District'); + + data.forEach(function (district) { + + districtDropdown.append( + '' + ); + + }); + + districtDropdown.prop('disabled', false); + }, + + error: function () { + alert('Error fetching districts. Please try again.'); + } + }); + + } else { + $('#district_Id').prop('disabled', true); + } + + }); + +}); \ No newline at end of file diff --git a/v-2/static/js/district.js b/v-2/static/js/district.js new file mode 100644 index 0000000..d466a57 --- /dev/null +++ b/v-2/static/js/district.js @@ -0,0 +1,62 @@ + window.onload = function () { + document.getElementById('district_Name').focus(); + }; + + + $(document).ready(function () { + $("#district_Name").on("input", function () { + let districtName = $(this).val(); + // Remove numbers and special characters automatically + let cleanedName = districtName.replace(/[^A-Za-z ]/g, ""); + $(this).val(cleanedName); + }); + + $("#district_Name, #state_Id").on("input change", function () { + let districtName = $("#district_Name").val().trim(); + let stateId = $("#state_Id").val(); + + if (districtName === "" || stateId === "") { + $("#districtMessage").text("").css("color", ""); + $("#submitButton").prop("disabled", true); + return; + } + + $.ajax({ + url: "/check_district", + type: "POST", + contentType: "application/json", + data: JSON.stringify({ district_Name: districtName, state_Id: stateId }), + success: function (response) { + if (response.status === "available") { + $("#districtMessage").text(response.message).css("color", "green"); + $("#submitButton").prop("disabled", false); + } + }, + error: function (xhr) { + if (xhr.status === 409) { + $("#districtMessage").text("District already exists!").css("color", "red"); + $("#submitButton").prop("disabled", true); + } else if (xhr.status === 400) { + $("#districtMessage").text("Invalid district name! Only letters are allowed.").css("color", "red"); + $("#submitButton").prop("disabled", true); + } + } + }); + }); + + $("#districtForm").on("submit", function (event) { + event.preventDefault(); + $.ajax({ + url: "/add_district", + type: "POST", + data: $(this).serialize(), + success: function (response) { + alert(response.message); + location.reload(); + }, + error: function (xhr) { + alert(xhr.responseJSON.message); + } + }); + }); + }); \ No newline at end of file diff --git a/v-2/static/js/edit_hold_type.js b/v-2/static/js/edit_hold_type.js new file mode 100644 index 0000000..2e3175e --- /dev/null +++ b/v-2/static/js/edit_hold_type.js @@ -0,0 +1,18 @@ + $("#updateHoldTypeForm").on("submit", function(event) { + event.preventDefault(); + let holdTypeId = $("#hold_type_id").val(); + let newHoldType = $("#edit_hold_type").val().trim(); + let reg = /^[A-Za-z]/; + + if (!reg.test(newHoldType)) { + alert("Hold Type must start with a letter."); + return; + } + + $.post(`/update_hold_type/${holdTypeId}`, { hold_type: newHoldType }, function(response) { + alert(response.message); + window.location.href = "/"; + }).fail(function(xhr) { + alert(xhr.responseJSON.message); + }); + }); \ No newline at end of file diff --git a/v-2/static/js/holdAmount.js b/v-2/static/js/holdAmount.js new file mode 100644 index 0000000..76aff10 --- /dev/null +++ b/v-2/static/js/holdAmount.js @@ -0,0 +1,95 @@ +$(document).ready(function () { + // Create a module to manage hold amounts + window.holdAmountModule = { + holdCount: 0, + holdTypes: [], + + init: function() { + this.loadHoldTypes(); + this.setupEventListeners(); + }, + + loadHoldTypes: function() { + $.ajax({ + url: '/get_hold_types', + method: 'GET', + dataType: 'json', + success: (data) => { + this.holdTypes = data; + $("#add_hold_amount").prop('disabled', false); + }, + error: (err) => { + console.error('Failed to load hold types', err); + } + }); + }, + + setupEventListeners: function() { + $("#add_hold_amount").click(() => this.addHoldAmountField()); + $(document).on("click", ".remove-hold", (e) => this.removeHoldAmountField(e)); + $(document).on("change", ".hold-type-dropdown", () => this.refreshDropdowns()); + $(document).on("input", "input[name='hold_amount[]']", () => this.triggerHoldAmountChanged()); + }, + + addHoldAmountField: function() { + this.holdCount++; + $("#hold_amount_container").append(` +
    + + + +
    + `); + this.refreshDropdowns(); + this.triggerHoldAmountChanged(); + }, + + removeHoldAmountField: function(e) { + const id = $(e.target).attr("data-id"); + $(`#${id}`).remove(); + this.refreshDropdowns(); + this.triggerHoldAmountChanged(); + }, + + generateOptions: function(selectedForThisDropdown = '') { + const selectedValues = $("select[name='hold_type[]']").map(function() { + return $(this).val(); + }).get(); + + let options = ''; + this.holdTypes.forEach((type) => { + if (!selectedValues.includes(type.hold_type) || type.hold_type === selectedForThisDropdown) { + options += ``; + } + }); + return options; + }, + + refreshDropdowns: function() { + $("select[name='hold_type[]']").each(function() { + const currentVal = $(this).val(); + $(this).html(window.holdAmountModule.generateOptions(currentVal)); + $(this).val(currentVal); + }); + }, + + getTotalHoldAmount: function() { + let total = 0; + $("input[name='hold_amount[]']").each(function() { + total += parseFloat($(this).val()) || 0; + }); + return total; + }, + + triggerHoldAmountChanged: function() { + const event = new Event('holdAmountChanged'); + document.dispatchEvent(event); + } + }; + + // Initialize the module + window.holdAmountModule.init(); +}); \ No newline at end of file diff --git a/v-2/static/js/hold_types.js b/v-2/static/js/hold_types.js new file mode 100644 index 0000000..47f7e18 --- /dev/null +++ b/v-2/static/js/hold_types.js @@ -0,0 +1,39 @@ +$(document).ready(function () { + $("#hold_type").on("input", function () { + let holdType = $(this).val().replace(/^\s+/, ""); + $(this).val(holdType); + + let reg = /^[A-Za-z]/; + + if (!reg.test(holdType)) { + $("#holdTypeMessage").text("Hold Type must start with a letter.").css("color", "red"); + $("#addButton").prop("disabled", true); + return; + } else { + $("#holdTypeMessage").text("").css("color", ""); + $("#addButton").prop("disabled", false); + } + }); + + $("#holdTypeForm").on("submit", function (event) { + event.preventDefault(); + $.post("/add_hold_type", $(this).serialize(), function (response) { + alert(response.message); + location.reload(); + }).fail(function (xhr) { + alert(xhr.responseJSON.message); + }); + }); + + $(".delete-button").on("click", function () { + let id = $(this).data("id"); + if (confirm("Are you sure?")) { + $.post(`/delete_hold_type/${id}`, function (response) { + alert(response.message); + location.reload(); + }).fail(function (xhr) { + alert(xhr.responseJSON.message); + }); + } + }); +}); diff --git a/v-2/static/js/invoice.js b/v-2/static/js/invoice.js new file mode 100644 index 0000000..9b3f2a0 --- /dev/null +++ b/v-2/static/js/invoice.js @@ -0,0 +1,62 @@ +// Subcontractor autocomplete functionality + $(document).ready(function () { + $("#subcontractor").keyup(function () { + let query = $(this).val(); + if (query !== "") { + $.ajax({ + url: "/search_subcontractor", + method: "POST", + data: { query: query }, + success: function (data) { + $("#subcontractor_list").fadeIn().html(data); + } + }); + } else { + $("#subcontractor_list").fadeOut(); + } + }); + + $(document).on("click", "li", function () { + $("#subcontractor").val($(this).text()); + $("#subcontractor_id").val($(this).attr("data-id")); + $("#subcontractor_list").fadeOut(); + }); + }); + + // Success Alert: show alert and reload after 3 seconds + function showSuccessAlert() { + const alertBox = document.getElementById("invoiceSuccessAlert"); + alertBox.classList.add("show"); + setTimeout(() => { + alertBox.classList.remove("show"); + // Reload page or redirect after alert hides + window.location.href = '/add_invoice'; + }, 3000); + } + + // Submit form via AJAX + $("#invoiceForm").on("submit", function (e) { + e.preventDefault(); + let formData = $(this).serialize(); + $.ajax({ + url: '/add_invoice', + method: 'POST', + data: formData, + success: function (response) { + if(response.status === "success") { + showSuccessAlert(); + } else { + alert(response.message); + } + }, + error: function (xhr, status, error) { + alert("Submission failed: " + error); + } + }); + }); + + + +window.onload = function () { + document.getElementById('subcontractor').focus(); + }; \ No newline at end of file diff --git a/v-2/static/js/save_data_success.js b/v-2/static/js/save_data_success.js new file mode 100644 index 0000000..d3a570e --- /dev/null +++ b/v-2/static/js/save_data_success.js @@ -0,0 +1,39 @@ +document.addEventListener('DOMContentLoaded', function () { + const form = document.getElementById('saveForm'); + + form.addEventListener('submit', function (e) { + e.preventDefault(); // Prevent normal form submission + + const formData = new FormData(form); + + fetch('/save_data', { + method: 'POST', + body: formData, + }).then(response => response.json()).then(data => { + if (data.success) { + Swal.fire({ + icon: 'success', + title: 'Success!', + text: data.success, + showConfirmButton: true, + confirmButtonText: 'OK' + }).then(() => { + const redirectUrl = "{{ url_for('upload_excel_file') }}"; // Redirect after success pop + }); + } else if (data.error) { + Swal.fire({ + icon: 'error', + title: 'Error!', + text: data.error, + }); + } + }).catch(error => { + Swal.fire({ + icon: 'error', + title: 'Error!', + text: 'An unexpected error occurred.', + }); + console.error('Error:', error); + }); + }); +}); \ No newline at end of file diff --git a/v-2/static/js/save_excel_file.js b/v-2/static/js/save_excel_file.js new file mode 100644 index 0000000..a670d69 --- /dev/null +++ b/v-2/static/js/save_excel_file.js @@ -0,0 +1,21 @@ +$("#saveForm").on("submit", function (event) { + event.preventDefault(); + $.ajax({ + url: "/save_data", + type: "POST", + data: $(this).serialize(), + success: function (response) { + if (response.success) { + alert("Success: " + response.success); // Show success alert + window.location.href = "/upload_excel_file"; // Redirect to the upload page + } + }, + error: function (xhr) { + if (xhr.responseJSON && xhr.responseJSON.error) { + alert("Error: " + xhr.responseJSON.error); + } else { + alert("An unexpected error occurred. Please try again."); + } + } + }); + }); \ No newline at end of file diff --git a/v-2/static/js/searchContractor.js b/v-2/static/js/searchContractor.js new file mode 100644 index 0000000..bb0251c --- /dev/null +++ b/v-2/static/js/searchContractor.js @@ -0,0 +1,43 @@ +$(document).ready(function () { + function fetchResults() { + let formData = $('#search-form').serialize(); + + $.ajax({ + type: 'POST', + url: '/search_contractor', + data: formData, + success: function (data) { + let tableBody = $('#result-table tbody'); + tableBody.empty(); + + if (data.length === 0) { + tableBody.append('No data found'); + } else { + data.forEach(function (row) { + tableBody.append(` + +
    ${row.Contractor_Name} + ${row.PMC_No} + ${row.State_Name} + ${row.District_Name} + ${row.Block_Name} + ${row.Village_Name} + + `); + }); + } + }, + error: function (xhr) { + alert(xhr.responseJSON.error); + } + }); + } + + $('#search-form input').on('keyup change', function () { + fetchResults(); + }); + }); + +window.onload = function () { + document.getElementById('subcontractor_name').focus(); + }; \ No newline at end of file diff --git a/v-2/static/js/search_on_table.js b/v-2/static/js/search_on_table.js new file mode 100644 index 0000000..de2f886 --- /dev/null +++ b/v-2/static/js/search_on_table.js @@ -0,0 +1,108 @@ + +// Search on table using search inpute options +function searchTable() { + let input = document.getElementById("searchBar").value.toLowerCase(); + let rows = document.querySelectorAll("table tbody tr"); + + rows.forEach(row => { + let blockName = row.cells[1].textContent.toLowerCase(); + let districtName = row.cells[2].textContent.toLowerCase(); + let villageName = row.cells[3].textContent.toLowerCase(); + + if (blockName.includes(input) || districtName.includes(input)|| villageName.includes(input)) { + row.style.display = ""; + } else { + row.style.display = "none"; + } + }); +} + + + + + +// Common Sorting Script for Tables +function sortTable(n, dir) { + var table, rows, switching, i, x, y, shouldSwitch; + table = document.getElementById("sortableTable"); // Ensure your table has this ID + switching = true; + + while (switching) { + switching = false; + rows = table.rows; + + for (i = 1; i < (rows.length - 1); i++) { + shouldSwitch = false; + x = rows[i].getElementsByTagName("TD")[n]; + y = rows[i + 1].getElementsByTagName("TD")[n]; + + if (dir == "asc") { + if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) { + shouldSwitch = true; + break; + } + } else if (dir == "desc") { + if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) { + shouldSwitch = true; + break; + } + } + } + + if (shouldSwitch) { + rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); + switching = true; + } + } +} + +// Attach sorting functionality to all sortable tables +document.addEventListener("DOMContentLoaded", function() { + // Find all elements with the class "sortable-header" + var sortableHeaders = document.querySelectorAll(".sortable-header"); + + sortableHeaders.forEach(function(header) { + // Attach click event for ascending sort + if (header.querySelector(".sort-asc")) { + header.querySelector(".sort-asc").addEventListener("click", function() { + var columnIndex = Array.from(header.parentNode.children).indexOf(header); + sortTable(columnIndex, "asc"); + }); + } + + // Attach click event for descending sort + if (header.querySelector(".sort-desc")) { + header.querySelector(".sort-desc").addEventListener("click", function() { + var columnIndex = Array.from(header.parentNode.children).indexOf(header); + sortTable(columnIndex, "desc"); + }); + } + }); +}); + + +// ADD & Dispaly screen show +document.addEventListener("DOMContentLoaded", function () { + const addButton = document.getElementById("addButton"); + const displayButton = document.getElementById("displayButton"); + const addForm = document.getElementById("addForm"); + const addTable = document.getElementById("addTable"); + + // Show "Add State" form by default + addForm.style.display = "block"; + addButton.classList.add("active-button"); // Optional: Add styling for active button + + addButton.addEventListener("click", function () { + addForm.style.display = "block"; + addTable.style.display = "none"; + addButton.classList.add("active-button"); + displayButton.classList.remove("active-button"); + }); + + displayButton.addEventListener("click", function () { + addForm.style.display = "none"; + addTable.style.display = "block"; + displayButton.classList.add("active-button"); + addButton.classList.remove("active-button"); + }); +}); \ No newline at end of file diff --git a/v-2/static/js/showSuccessAlert.js b/v-2/static/js/showSuccessAlert.js new file mode 100644 index 0000000..7adcf0c --- /dev/null +++ b/v-2/static/js/showSuccessAlert.js @@ -0,0 +1,8 @@ +function showSuccessAlert(event) { + event.preventDefault(); // Prevent form submission + document.getElementById("successPopup").style.display = "block"; + setTimeout(function() { + document.getElementById("successPopup").style.display = "none"; + event.target.submit(); // Submit the form after showing the message + }, 2000); + } \ No newline at end of file diff --git a/v-2/static/js/sorting.js b/v-2/static/js/sorting.js new file mode 100644 index 0000000..933f8d9 --- /dev/null +++ b/v-2/static/js/sorting.js @@ -0,0 +1,66 @@ +$(document).ready(function () { + function fetchResults(sortBy = '', sortOrder = '') { + let formData = $('#search-form').serialize(); + formData += &sort_by=${sortBy}&sort_order=${sortOrder}; + + $.ajax({ + type: 'POST', + url: '/search_contractor', + data: formData, + success: function (data) { + let tableBody = $('#result-table tbody'); + tableBody.empty(); + + if (data.length === 0) { + tableBody.append('No data found'); + } else { + data.forEach(function (row) { + tableBody.append(` + + ${row.Contractor_Name} + ${row.PMC_No} + ${row.State_Name} + ${row.District_Name} + ${row.Block_Name} + ${row.Village_Name} + + `); + }); + } + }, + error: function (xhr) { + alert(xhr.responseJSON.error); + } + }); + } + + $('#search-form input').on('keyup change', function () { + fetchResults(); + }); + + function showSortOptions(thElement, column) { + let sortMenu = $('#sort-options'); + let offset = $(thElement).position(); + let thHeight = $(thElement).outerHeight(); + + sortMenu.html(` + + + `); + + sortMenu.css({ + display: 'block', + top: offset.top + thHeight + 'px', + left: offset.left + 'px' + }); + } + + $(document).click(function(event) { + if (!$(event.target).closest('.sort-options, th').length) { + $('#sort-options').hide(); + } + }); + + window.fetchResults = fetchResults; + window.showSortOptions = showSortOptions; + }); \ No newline at end of file diff --git a/v-2/static/js/state.js b/v-2/static/js/state.js new file mode 100644 index 0000000..21625f8 --- /dev/null +++ b/v-2/static/js/state.js @@ -0,0 +1,61 @@ + window.onload = function () { + document.getElementById('state_Name').focus(); + }; + + +$(document).ready(function () { + $("#state_Name").on("input", function () { + let stateName = $(this).val(); + // Remove numbers and special characters automatically + let cleanedName = stateName.replace(/[^A-Za-z ]/g, ""); + $(this).val(cleanedName); + }); + + $("#state_Name").on("input", function () { + let stateName = $("#state_Name").val().trim(); + + if (stateName === "") { + $("#stateMessage").text("").css("color", ""); + $("#submitButton").prop("disabled", true); + return; + } + + $.ajax({ + url: "/check_state", + type: "POST", + contentType: "application/json", + data: JSON.stringify({ state_Name: stateName }), + success: function (response) { + if (response.status === "available") { + $("#stateMessage").text(response.message).css("color", "green"); + $("#submitButton").prop("disabled", false); + } + }, + error: function (xhr) { + if (xhr.status === 409) { + $("#stateMessage").text("State already exists!").css("color", "red"); + $("#submitButton").prop("disabled", true); + } else if (xhr.status === 400) { + $("#stateMessage").text("Invalid state name! Only letters are allowed.").css("color", "red"); + $("#submitButton").prop("disabled", true); + } + } + }); + }); + + $("#stateForm").on("submit", function (event) { + event.preventDefault(); + $.ajax({ + url: "/add_state", + type: "POST", + data: $(this).serialize(), + success: function (response) { + alert(response.message); + location.reload(); + }, + error: function (xhr) { + alert(xhr.responseJSON.message); + } + }); + }); +}); \ No newline at end of file diff --git a/v-2/static/js/subcontractor.js b/v-2/static/js/subcontractor.js new file mode 100644 index 0000000..33cdb43 --- /dev/null +++ b/v-2/static/js/subcontractor.js @@ -0,0 +1,49 @@ +function validateInput() { + let isValid = true; + + // Get form elements + let contractorName = document.getElementById("Contractor_Name").value; + let mobileNo = document.getElementById("Mobile_No").value; + let panNo = document.getElementById("PAN_No").value; + let email = document.getElementById("Email").value; + let passwordField = document.getElementById("Contractor_password"); + let submitBtn = document.getElementById("submitBtn"); + + // Validation patterns + let mobileRegex = /^[0-9]{10}$/; + let panRegex = /^[A-Z0-9]{10}$/; + let emailRegex = /^[a-z]+@[a-z]+\.[a-z]{2,6}$/; + + // Validate Mobile No + if (!mobileNo.match(mobileRegex)) { + document.getElementById("mobileError").innerText = "Mobile No must be exactly 10 digits."; + isValid = false; + } else { + document.getElementById("mobileError").innerText = ""; + } + + // Validate PAN No + if (!panNo.match(panRegex)) { + document.getElementById("panError").innerText = "PAN No must be uppercase letters or digits (10 chars)."; + isValid = false; + } else { + document.getElementById("panError").innerText = ""; + } + + // Validate Email + if (!email.match(emailRegex)) { + document.getElementById("emailError").innerText = "Email must be lowercase, contain '@' and '.'"; + isValid = false; + } else { + document.getElementById("emailError").innerText = ""; + } + + + + // Enable or disable the submit button + submitBtn.disabled = !isValid; + } + +window.onload = function () { + document.getElementById('Contractor_Name').focus(); + }; \ No newline at end of file diff --git a/v-2/static/js/validateFileInput.js b/v-2/static/js/validateFileInput.js new file mode 100644 index 0000000..ab6b9ad --- /dev/null +++ b/v-2/static/js/validateFileInput.js @@ -0,0 +1,12 @@ +function validateFileInput() { + const fileInput = document.querySelector('input[type="file"]'); + const filePath = fileInput.value; + const allowedExtensions = /(\.xlsx|\.xls)$/i; + + if (!allowedExtensions.exec(filePath)) { + alert("Please upload a valid Excel file (.xlsx or .xls only)."); + fileInput.value = ''; + return false; + } + return true; + } \ No newline at end of file diff --git a/v-2/static/js/village.js b/v-2/static/js/village.js new file mode 100644 index 0000000..e07e455 --- /dev/null +++ b/v-2/static/js/village.js @@ -0,0 +1,198 @@ +window.onload = function () { + document.getElementById('Village_Name').focus(); +}; + +$(document).ready(function () { + + // STATE → DISTRICT + $('#state_Id').change(function () { + + var stateId = $(this).val(); + + if (stateId) { + + $.ajax({ + url: '/get_districts/' + stateId, + type: 'GET', + + success: function (data) { + + var districtDropdown = $('#district_Id'); + + districtDropdown.empty(); + districtDropdown.append(''); + + data.forEach(function (district) { + + districtDropdown.append( + '' + ); + + }); + + districtDropdown.prop('disabled', false); + + } + + }); + + } + + }); + + + // DISTRICT → BLOCK + $('#district_Id').change(function () { + + var districtId = $(this).val(); + + if (districtId) { + + $.ajax({ + url: '/get_blocks/' + districtId, + type: 'GET', + + success: function (data) { + + var blockDropdown = $('#block_Id'); + + blockDropdown.empty(); + blockDropdown.append(''); + + data.forEach(function (block) { + + blockDropdown.append( + '' + ); + + }); + + blockDropdown.prop('disabled', false); + + } + + }); + + } + + }); + + + // VILLAGE NAME VALIDATION + $('#Village_Name').on('input', function () { + + var villageName = $(this).val(); + var validPattern = /^[A-Za-z ]*$/; + + if (!validPattern.test(villageName)) { + + $('#villageMessage') + .text('Only letters and spaces are allowed!') + .css('color', 'red'); + + $('#submitVillage').prop('disabled', true); + + } else { + + $('#villageMessage').text(''); + $('#submitVillage').prop('disabled', false); + + } + + }); + + + // CHECK DUPLICATE VILLAGE + $('#Village_Name, #block_Id').on('change keyup', function () { + + var blockId = $('#block_Id').val(); + var villageName = $('#Village_Name').val().trim(); + + if (blockId && villageName) { + + $.ajax({ + + url: '/check_village', + type: 'POST', + + data: { + block_Id: blockId, + Village_Name: villageName + }, + + success: function (response) { + + if (response.status === 'exists') { + + $('#villageMessage') + .text(response.message) + .css('color', 'red'); + + $('#submitVillage').prop('disabled', true); + + } else { + + $('#villageMessage') + .text(response.message) + .css('color', 'green'); + + $('#submitVillage').prop('disabled', false); + + } + + }, + + error: function () { + + $('#villageMessage') + .text('Error checking village name') + .css('color', 'red'); + + $('#submitVillage').prop('disabled', true); + + } + + }); + + } + + }); + + + // ADD VILLAGE + $('#villageForm').submit(function (event) { + + event.preventDefault(); + + $.ajax({ + + url: '/add_village', + type: 'POST', + data: $(this).serialize(), + + success: function (response) { + + if (response.status === 'success') { + + alert('Village added successfully!'); + location.reload(); + + } else { + + alert('Error adding village. Please try again.'); + + } + + }, + + error: function () { + + alert('An error occurred. Please try again.'); + + } + + }); + + }); + +}); \ No newline at end of file diff --git a/v-2/templates/activity_log.html b/v-2/templates/activity_log.html new file mode 100644 index 0000000..40c9ef6 --- /dev/null +++ b/v-2/templates/activity_log.html @@ -0,0 +1,102 @@ + + + + + Activity Logs + + + +

    Activity Logs

    +
    + + + + + + + + + + + + + +
    + + + + + + + + + {% for log in logs %} + + + + + + + {% endfor %} + {% if logs|length == 0 %} + + + + {% endif %} +
    TimestampUserActionDetails
    {{ log.timestamp }}{{ log.user }}{{ log.action }}{{ log.details }}
    No logs found
    + + + + diff --git a/v-2/templates/add_block.html b/v-2/templates/add_block.html new file mode 100644 index 0000000..4bcf1f7 --- /dev/null +++ b/v-2/templates/add_block.html @@ -0,0 +1,99 @@ +{% extends 'base.html' %} +{% block content %} + + + + + Add Block + + + + + + + + +
    + + +
    + + + + + +{% endblock %} \ No newline at end of file diff --git a/v-2/templates/add_district.html b/v-2/templates/add_district.html new file mode 100644 index 0000000..ceeaee6 --- /dev/null +++ b/v-2/templates/add_district.html @@ -0,0 +1,85 @@ +{% extends 'base.html' %} +{% block content %} + + Add District + + + + + + + +
    + + +
    + + + + + + +{% endblock %} \ No newline at end of file diff --git a/v-2/templates/add_gst_release.html b/v-2/templates/add_gst_release.html new file mode 100644 index 0000000..f15e4fa --- /dev/null +++ b/v-2/templates/add_gst_release.html @@ -0,0 +1,175 @@ +{% extends 'base.html' %} +{% block content %} + + + + Add GST Release + + + + + + + +
    + + +
    + + + + +
    + {% with messages = get_flashed_messages(with_categories=true) %} + {% if messages %} + {% for category, message in messages %} +
    + {{ message }} +
    + {% endfor %} + {% endif %} + {% endwith %} +
    + + + + + + + +{% endblock %} \ No newline at end of file diff --git a/v-2/templates/add_hold_type.html b/v-2/templates/add_hold_type.html new file mode 100644 index 0000000..1a60ea5 --- /dev/null +++ b/v-2/templates/add_hold_type.html @@ -0,0 +1,59 @@ +{% extends 'base.html' %} +{% block content %} + + Manage Hold Types + + + + + + + +
    + + +
    + +
    +

    Add Hold Types

    +
    + + + + +
    +
    + + + +{% endblock %} + diff --git a/v-2/templates/add_invoice.html b/v-2/templates/add_invoice.html new file mode 100644 index 0000000..399fa07 --- /dev/null +++ b/v-2/templates/add_invoice.html @@ -0,0 +1,370 @@ +{% extends 'base.html' %} +{% block content %} + + + + Add Invoice + + + + + + +{% if success == 'true' %} + +{% endif %} + + + +{% with messages = get_flashed_messages(with_categories=true) %} + {% if messages %} +
    + {% for category, message in messages %} +
    {{ message }}
    + {% endfor %} +
    + {% endif %} +{% endwith %} + +
    + + +
    + + + + + + +{% endblock %} diff --git a/v-2/templates/add_payment.html b/v-2/templates/add_payment.html new file mode 100644 index 0000000..8339d8b --- /dev/null +++ b/v-2/templates/add_payment.html @@ -0,0 +1,193 @@ +{% extends 'base.html' %} +{% block content %} + + + + Add Payment + + + + + + +
    + + +
    + + + +
    + Payment added successfully! +
    + + + + + + + + + + +{% endblock %} diff --git a/v-2/templates/add_purchase_order.html b/v-2/templates/add_purchase_order.html new file mode 100644 index 0000000..4e57849 --- /dev/null +++ b/v-2/templates/add_purchase_order.html @@ -0,0 +1,147 @@ +{% extends 'base.html' %} +{% block content %} + + Manage Purchases + + + + +
    + + +
    + + + + + + + + + + + + +{% endblock %} diff --git a/v-2/templates/add_state.html b/v-2/templates/add_state.html new file mode 100644 index 0000000..705b42e --- /dev/null +++ b/v-2/templates/add_state.html @@ -0,0 +1,74 @@ +{% extends 'base.html' %} +{% block content %} + + + Add State + + + + + + + + +
    + + +
    + + + + + + + +{% endblock %} \ No newline at end of file diff --git a/v-2/templates/add_subcontractor.html b/v-2/templates/add_subcontractor.html new file mode 100644 index 0000000..7bef52e --- /dev/null +++ b/v-2/templates/add_subcontractor.html @@ -0,0 +1,127 @@ +{% extends 'base.html' %} +{% block content %} + + + SubContractor + + + + + + + + +
    + + +
    + + + + + +{% endblock %} diff --git a/v-2/templates/add_village.html b/v-2/templates/add_village.html new file mode 100644 index 0000000..dd5e4ce --- /dev/null +++ b/v-2/templates/add_village.html @@ -0,0 +1,99 @@ +{% extends 'base.html' %} +{% block content %} + + + + Village Management + + + + + + + +
    + + +
    + + + + + + +{% endblock %} diff --git a/v-2/templates/add_work_order.html b/v-2/templates/add_work_order.html new file mode 100644 index 0000000..ad5ad38 --- /dev/null +++ b/v-2/templates/add_work_order.html @@ -0,0 +1,137 @@ +{% extends 'base.html' %} +{% block content %} + + Manage Work Order + + + + + + + +
    + + +
    +
    + +
    +{# display data #} + + + + + + + +{% endblock %} \ No newline at end of file diff --git a/v-2/templates/admin_profile.html b/v-2/templates/admin_profile.html new file mode 100644 index 0000000..fbd60ca --- /dev/null +++ b/v-2/templates/admin_profile.html @@ -0,0 +1,49 @@ +{% extends 'base.html' %} +{% block content %} + + + + Admin Profile + + +
    +

    Admin Profile

    + {% with messages = get_flashed_messages(with_categories=true) %} + {% if messages %} + {% for category, message in messages %} +

    {{ message }}

    + {% endfor %} + {% endif %} + {% endwith %} +
    +
    + + +
    + + + + + + + + + + + +
    +
    + + +{% endblock %} diff --git a/v-2/templates/base.html b/v-2/templates/base.html new file mode 100644 index 0000000..bb52864 --- /dev/null +++ b/v-2/templates/base.html @@ -0,0 +1,97 @@ + + + + + + {% block title %}Payment Reconciliation{% endblock %} + + + + + + + + + + + + + +
    + {% block content %}{% endblock %} +
    + + + + + \ No newline at end of file diff --git a/v-2/templates/edit_block.html b/v-2/templates/edit_block.html new file mode 100644 index 0000000..86a5059 --- /dev/null +++ b/v-2/templates/edit_block.html @@ -0,0 +1,60 @@ + + + +{% extends 'base.html' %} +{% block content %} + + Edit Block + + + + + +

    Edit Block

    + + +{% with messages = get_flashed_messages(with_categories=true) %} + {% if messages %} + {% for category, message in messages %} + + {% endfor %} + {% endif %} +{% endwith %} + + +
    + +

    + + +

    + + +

    + + +
    + + +{% endblock %} diff --git a/v-2/templates/edit_district.html b/v-2/templates/edit_district.html new file mode 100644 index 0000000..c028514 --- /dev/null +++ b/v-2/templates/edit_district.html @@ -0,0 +1,26 @@ +{% extends 'base.html' %} +{% block content %} + + Edit District + + + +

    Edit District

    + +
    + + + + + +
    + + + + +{% endblock %} \ No newline at end of file diff --git a/v-2/templates/edit_grn.html b/v-2/templates/edit_grn.html new file mode 100644 index 0000000..22f0200 --- /dev/null +++ b/v-2/templates/edit_grn.html @@ -0,0 +1,39 @@ + + +Edit GRN + + + +

    Edit GRN

    +
    + +

    + + +

    + + +

    + + +

    + + +

    + + +

    + + +

    + + +

    + + +

    + + +
    + + diff --git a/v-2/templates/edit_gst_release.html b/v-2/templates/edit_gst_release.html new file mode 100644 index 0000000..30b9430 --- /dev/null +++ b/v-2/templates/edit_gst_release.html @@ -0,0 +1,45 @@ +{% extends 'base.html' %} +{% block content %} + + + + Edit GST Release + + + +

    Edit GST Release

    + +
    + + + +
    +

    + +
    +

    + + +
    +

    + +
    +

    + +
    +

    + +
    +

    + + +
    + + + +{% endblock %} \ No newline at end of file diff --git a/v-2/templates/edit_hold_type.html b/v-2/templates/edit_hold_type.html new file mode 100644 index 0000000..525e5b1 --- /dev/null +++ b/v-2/templates/edit_hold_type.html @@ -0,0 +1,62 @@ + +{% extends 'base.html' %} + +{% block content %} + + Edit Hold Type + + + + + +

    Edit Hold Type

    +
    + + + + + +
    + + + +{% endblock %} + + + + + diff --git a/v-2/templates/edit_invoice.html b/v-2/templates/edit_invoice.html new file mode 100644 index 0000000..c2a5f7a --- /dev/null +++ b/v-2/templates/edit_invoice.html @@ -0,0 +1,207 @@ +{% extends 'base.html' %} +{% block content %} + + + + + Edit Invoice + + + + + + + +
    +

    Edit Invoice

    + + + + +
    + + +
    +
    + + + + +
    +
    + + +
    +
    + + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + {% set seen_types = [] %} + {% for hold in invoice.hold_amounts %} + {% if hold.hold_type not in seen_types %} + {% set _ = seen_types.append(hold.hold_type) %} +
    + + + + + +
    + {% endif %} + {% endfor %} +
    + + +
    + +
    + + +
    +
    + + +
    +
    + + +
    +
    + + + +
    +
    + + + + + +{% endblock %} \ No newline at end of file diff --git a/v-2/templates/edit_payment.html b/v-2/templates/edit_payment.html new file mode 100644 index 0000000..00f7d89 --- /dev/null +++ b/v-2/templates/edit_payment.html @@ -0,0 +1,49 @@ +{% extends 'base.html' %} +{% block content %} + + + + Edit Payment + + + + +

    Edit Payment

    + +
    + + + + + + + + + +
    +

    + +
    +

    + + +
    +

    + +
    +

    + +
    +

    + +
    +

    + + +
    + + +{% endblock %} diff --git a/v-2/templates/edit_purchase.html b/v-2/templates/edit_purchase.html new file mode 100644 index 0000000..bfa090a --- /dev/null +++ b/v-2/templates/edit_purchase.html @@ -0,0 +1,47 @@ + + + + Edit Purchase + + + +

    Edit Purchase Order

    +
    + +

    + + +

    + + +

    + + +

    + + +

    + + +

    + + +

    + + +

    + + + +

    + + +

    + + +

    + + +
    + + diff --git a/v-2/templates/edit_state.html b/v-2/templates/edit_state.html new file mode 100644 index 0000000..144fdfe --- /dev/null +++ b/v-2/templates/edit_state.html @@ -0,0 +1,17 @@ +{% extends 'base.html' %} +{% block content %} + + Edit State + + + +

    Edit State

    + +
    + + +
    + + + +{% endblock %} \ No newline at end of file diff --git a/v-2/templates/edit_subcontractor.html b/v-2/templates/edit_subcontractor.html new file mode 100644 index 0000000..3238527 --- /dev/null +++ b/v-2/templates/edit_subcontractor.html @@ -0,0 +1,50 @@ +{% extends 'base.html' %} +{% block content %} + + + Edit SubContractor + + + + +

    Edit Sub-Contractor

    +
    + + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + + +{% endblock %} \ No newline at end of file diff --git a/v-2/templates/edit_village.html b/v-2/templates/edit_village.html new file mode 100644 index 0000000..c4e7afe --- /dev/null +++ b/v-2/templates/edit_village.html @@ -0,0 +1,52 @@ +{% extends 'base.html' %} +{% block content %} + + + + Edit Village + + + + +
    +
    +

    Edit Village

    +
    + + + + + + + + +
    +
    + + + {% with messages = get_flashed_messages(with_categories=true) %} + {% if messages %} + {% for category, message in messages %} + + {% endfor %} + {% endif %} + {% endwith %} +
    + + + +{% endblock %} diff --git a/v-2/templates/grn_form.html b/v-2/templates/grn_form.html new file mode 100644 index 0000000..eae3847 --- /dev/null +++ b/v-2/templates/grn_form.html @@ -0,0 +1,77 @@ + + + + GRN Management + + + +

    Add GRN

    +
    + +

    + + +

    +{# #} +{# #} + + +

    + + +

    + + +

    + + +

    + + +

    + + +

    + + +

    + + +
    + +

    All GRNs

    + + + + + + {% for grn in grns %} + + + + + + + + + + + + + + {% endfor %} +
    IDDatePurchase IDSupplierItemQtyUnitRateAmountRemarksActions
    {{ grn[0] }}{{ grn[1] }}{{ grn[2] }}{{ grn[3] }}{{ grn[4] }}{{ grn[5] }}{{ grn[6] }}{{ grn[7] }}{{ grn[8] }}{{ grn[9] }} + Edit + +
    + +
    +
    + + diff --git a/v-2/templates/index.html b/v-2/templates/index.html new file mode 100644 index 0000000..bc8094b --- /dev/null +++ b/v-2/templates/index.html @@ -0,0 +1,164 @@ + + + + + + + Payment Reconciliation + + + + + + +
    + Logout +
    + +
    + +

    Laxmi Civil Engineering Services Pvt. Ltd.

    +
    +

    Payment Reconciliation

    +
    +
    + + + + + \ No newline at end of file diff --git a/v-2/templates/login.html b/v-2/templates/login.html new file mode 100644 index 0000000..e638b55 --- /dev/null +++ b/v-2/templates/login.html @@ -0,0 +1,90 @@ + + + + + LCEPL Payment Reconciliation + + + + + + diff --git a/v-2/templates/pmc_report.html b/v-2/templates/pmc_report.html new file mode 100644 index 0000000..c218c5f --- /dev/null +++ b/v-2/templates/pmc_report.html @@ -0,0 +1,340 @@ + + +{% extends 'base.html' %} +{% block content %} + + + + PMC Report + + + + + +
    +

    PMC Report

    + +
    +

    Contractor Details

    +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + + +
    +
    + + +
    +
    +

    PMC Report for PMC No: {{ info.PMC_No}}

    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + +

    Invoice Details

    + + + + + + + + + + + + + + + + + + + + + {% set hold_types = invoices | map(attribute='hold_type') | reject('none') | unique | list %} + {% for hold in hold_types %} + + {% endfor %} + + + + + + + {% if invoices %} + {% for invoice in invoices %} + + + + + + + + + + + + + + + + + + + {% for hold in hold_types %} + + {% endfor %} + + + + + + {% endfor %} + + + + + + + + + + + + {% set hold_types = invoices | map(attribute='hold_type') | unique | list %} + {% for hold in hold_types %} + + {% endfor %} + + + + + {% else %} + + + + {% endif %} + +
    PMC NoVillage NameWork TypeInvoice DetailsInvoice DateInvoice NoBasic AmountDebitAfter Debit AmtGST (18%)AmountTDS (1%)SD (5%)On CommissionHydro Testing{{ hold }}GST SD (18%)Final Amount
    {{ invoice.PMC_No }}{{ invoice.Village_Name.capitalize() }}{{ invoice.Work_Type }}{{ invoice.Invoice_Details }}{{ invoice.Invoice_Date }}{{ invoice.Invoice_No }}{{ invoice.Basic_Amount }}{{ invoice.Debit_Amount }}{{ invoice.After_Debit_Amount }}{{ invoice.GST_Amount }}{{ invoice.Amount }}{{ invoice.TDS_Amount }}{{ invoice.SD_Amount }}{{ invoice.On_Commission }}{{ invoice.Hydro_Testing }} + {% if invoice.hold_type == hold %} + {{ invoice.hold_amount }} + {% else %} + 0 + {% endif %} + {{ invoice.GST_SD_Amount }}{{ invoice.Final_Amount }}
    Total{{total["sum_invo_basic_amt"]}}{{total["sum_invo_debit_amt"]}}{{total["sum_invo_after_debit_amt"]}}{{total["sum_invo_gst_amt"]}}{{total["sum_invo_amt"]}}{{total["sum_invo_tds_amt"]}}{{total["sum_invo_ds_amt"]}}{{total["sum_invo_on_commission"]}}{{total["sum_invo_hydro_test"]}}{{total["sum_invo_hold_amt"]}}{{total["sum_invo_gst_sd_amt"]}}{{total["sum_invo_final_amt"]}}
    No invoices found.
    +

    Hold Release

    + + + + + + + + + + + + + {%if hold_release%} + {%for hold in hold_release%} + + + + + + + + + {%endfor%} + {%else%} + + + + {%endif%} + +
    PMC NoInvoice NoInvoice DetailsBasic AmountTotal AmountUTR
    {{ hold['PMC_No'] }}{{ hold['Invoice_No'] }}{{ hold['Invoice_Details'] }}{{ hold['Basic_Amount'] }}{{ hold['Total_Amount'] }}{{ hold['UTR'] }}
    No data present
    + +
    +

    GST Release Note Details

    + + + + + + + + + + + {% if gst_rel %} + {% for gst in gst_rel %} + + + + + + + {% endfor %} + + + + + + + {% else %} + + + + {% endif %} + +
    PMC NoInvoice NoBasic AmountFinal Amount
    {{ gst.pmc_no }}{{ gst.invoice_no }}{{ gst.basic_amount }}{{ gst.final_amount }}
    Total{{total["sum_gst_basic_amt"]}}{{total["sum_gst_final_amt"]}}
    No GST release found.
    + + +

    Credit Details

    + + + + + + + + + + + + + + + + + + + {% if credit_note %} + {% for credit in credit_note %} + + + + + + + + + + + + + + + + {% endfor %} + + {% else %} + + + + {% endif %} + + + +
    PMC NoInvoice DetailsBasic AmountDebitAfter Debit AmtGST AmountAmountFinal AmountPayment AmountTotal AmountUTR
    {{ credit["PMC_No"] }}{{ credit["Invoice_Details"] }}{{ credit["Basic_Amount"] }}{{ credit["Debit_Amount"] }}{{ credit["After_Debit_Amount"] }}{{ credit["GST_Amount"] }}{{ credit["Amount"] }}{{ credit["Final_Amount"] }}{{ credit["Payment_Amount"] }}{{ credit["Total_Amount"] }}{{ credit["UTR"] }}
    No Credit note found.
    + +
    +

    Payment Details

    + + + + + + + + + + + + + {% if payments %} + {% for pay in payments %} + + + + + + + + + {% endfor %} + + + + + + + + {% else %} + + + + + {% endif %} + + +
    PMC NoInvoice NoAmountTDS Amount @ 1% on BASIC AMOUNTTotal Amount PaidUTR
    {{ pay.pmc_no }}{{ pay.invoice_no }}{{ pay.Payment_Amount }}{{ pay.TDS_Payment_Amount }}{{ pay.Total_amount }}{{ pay.utr}}
    Total{{total["sum_pay_payment_amt"]}}{{total["sum_pay_tds_payment_amt"]}}{{total["sum_pay_total_amt"]}}
    No payment found.
    + + + + + +{% endblock %} \ No newline at end of file diff --git a/v-2/templates/purchase_order.html b/v-2/templates/purchase_order.html new file mode 100644 index 0000000..33b3c30 --- /dev/null +++ b/v-2/templates/purchase_order.html @@ -0,0 +1,10 @@ + + + + + Purchase Order + + + + + \ No newline at end of file diff --git a/v-2/templates/purchase_order_report.html b/v-2/templates/purchase_order_report.html new file mode 100644 index 0000000..aacea0c --- /dev/null +++ b/v-2/templates/purchase_order_report.html @@ -0,0 +1,205 @@ + + + + Purchase Order Report + + + + + +

    Purchase Order Report

    + +
    +
    + + +
    + +
    + + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/v-2/templates/report.html b/v-2/templates/report.html new file mode 100644 index 0000000..de53ef8 --- /dev/null +++ b/v-2/templates/report.html @@ -0,0 +1,108 @@ +{% extends 'base.html' %} +{% block content %} + + + + Contractor Search + + + + + +
    +

    Search Contractor Report

    +
    +
    +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + +
    +
    +
    + +

    Contractor List

    + + + + + + + + + + + + + + +
    Contractor Name + + PMC NoState + + District + + Block + + Village + +
    +
    +
    + + +{% endblock %} \ No newline at end of file diff --git a/v-2/templates/show_excel_file.html b/v-2/templates/show_excel_file.html new file mode 100644 index 0000000..19b8903 --- /dev/null +++ b/v-2/templates/show_excel_file.html @@ -0,0 +1,85 @@ + + + + Excel Data + + + + + + + + +

    Excel Data

    + +

    File Information:

    +
      +
    • Subcontractor: {{ file_info['Subcontractor'] }}
    • +
    • State: {{ file_info['State'] }}
    • +
    • District: {{ file_info['District'] }}
    • +
    • Block: {{ file_info['Block'] }}
    • +
    + +{% if errors %} +
    +

    Validation Errors:

    +
      + {% for error in errors %} +
    • {{ error }}
    • + {% endfor %} +
    +
    +{% endif %} + +

    Data Table:

    +
    +
    + + + + + {% for var in variables %} + + {% endfor %} + + + + {% for row in data %} + + + {% for var in variables %} + + {% endfor %} + + {% endfor %} + +
    Row No{{ var }}
    {{ row['Row Number'] }}
    +
    + + + + + + + + + + + + + + + + + + + + +
    + +Back to Dashboard + + + + + \ No newline at end of file diff --git a/v-2/templates/subcontractor_report.html b/v-2/templates/subcontractor_report.html new file mode 100644 index 0000000..e1f5001 --- /dev/null +++ b/v-2/templates/subcontractor_report.html @@ -0,0 +1,372 @@ + + + +{% extends 'base.html' %} +{% block content %} + + + + Contractor Report + + + + +
    +

    Contractor Report

    + +
    +

    Contractor Details

    +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + + +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    + +

    Total

    + + + + + + + + + + + + + {% if hold_types %} + + {% for hold in hold_types %} + + + {% endfor %} + + {% endif %} + + + + +
    {{current_date}}
    Advance / Suplus{{total["sum_invo_final_amt"]+total["sum_gst_final_amt"]-total["sum_pay_total_amt"]}}
    {{ hold.hold_type }}{{total["sum_invo_hold_amt"]}}
    Amount With TDS{{total["sum_invo_tds_amt"]}}
    + + + + + + + + + + + +

    Invoice Details

    + + + + + + + + + + + + + + + + + + + + + {% set hold_types = invoices | map(attribute='hold_type') | unique | list %} + {% for hold in hold_types %} + + {% endfor %} + + + + + + + {% if invoices %} + {% for invoice in invoices %} + + + + + + + + + + + + + + + + + + + {% set hold_types = invoices | map(attribute='hold_type') | unique | list %} + {% for hold in hold_types %} + + {% endfor %} + + + + + + {% endfor %} + + + + + + + + + + + + + + {% set hold_types = invoices | map(attribute='hold_type') | unique | list %} + {% for hold in hold_types %} + + {% endfor %} + + + + + + {% else %} + + + + {% endif %} + +
    PMC NoVillage NameWork TypeInvoice DetailsInvoice DateInvoice NoBasic AmountDebitAfter Debit AmtGST (18%)AmountTDS (1%)SD (5%)On CommissionHydro Testing{{ hold }}GST SD (18%)Final Amount
    {{ invoice.PMC_No }}{{ invoice.Village_Name.capitalize() }}{{ invoice.Work_Type }}{{ invoice.Invoice_Details }}{{ invoice.Invoice_Date }}{{ invoice.Invoice_No }}{{ invoice.Basic_Amount }}{{ invoice.Debit_Amount }}{{ invoice.After_Debit_Amount }}{{ invoice.GST_Amount }}{{ invoice.Amount }}{{ invoice.TDS_Amount }}{{ invoice.SD_Amount }}{{ invoice.On_Commission }}{{ invoice.Hydro_Testing }} + {% if invoice.hold_type == hold %} + {{ invoice.hold_amount }} + {% else %} + 0.00 + {% endif %} + {{ invoice.GST_SD_Amount }}{{ invoice.Final_Amount }}
    Total{{total["sum_invo_basic_amt"]}}{{total["sum_invo_debit_amt"]}}{{total["sum_invo_after_debit_amt"]}}{{total["sum_invo_gst_amt"]}}{{total["sum_invo_amt"]}}{{total["sum_invo_tds_amt"]}}{{total["sum_invo_ds_amt"]}}{{total["sum_invo_on_commission"]}}{{total["sum_invo_hydro_test"]}}{{total["sum_invo_hold_amt"]}}{{total["sum_invo_gst_sd_amt"]}}{{total["sum_invo_final_amt"]}}
    No invoices found.
    + +

    Hold Release

    + + + + + + + + + + + + + {% if hold_release %} + {% for hold in hold_release %} + + + + + + + + + {% endfor %} + {% else %} + + + + {% endif %} + +
    PMC NoInvoice NoInvoice DetailsBasic AmountTotal AmountUTR
    {{ hold['PMC_No'] }}{{ hold['Invoice_No'] }}{{ hold['Invoice_Details'] }}{{ hold['Basic_Amount'] }}{{ hold['Total_Amount'] }}{{ hold['UTR'] }}
    No data present
    +
    + + + +

    Credit Details

    + + + + + + + + + + + + + + + + + + + {% if credit_note %} + {% for credit in credit_note %} + + + + + + + + + + + + + + + + {% endfor %} + + {% else %} + + + + {% endif %} + + + +
    PMC NoInvoice DetailsBasic AmountDebitAfter Debit AmtGST AmountAmountFinal AmountPayment AmountTotal AmountUTR
    {{ credit["PMC_No"] }}{{ credit["Invoice_Details"] }}{{ credit["Basic_Amount"] }}{{ credit["Debit_Amount"] }}{{ credit["After_Debit_Amount"] }}{{ credit["GST_Amount"] }}{{ credit["Amount"] }}{{ credit["Final_Amount"] }}{{ credit["Payment_Amount"] }}{{ credit["Total_Amount"] }}{{ credit["UTR"] }}
    No Credit note found.
    +

    GST Release Note Details

    + + + + + + + + + + + + + {% if gst_rel %} + {% for gst in gst_rel %} + + + + + + + {% endfor %} + + + + + + + {% else %} + + + + {% endif %} + +
    PMC NoInvoice NoBasic AmountFinal Amount
    {{ gst.pmc_no }}{{ gst.invoice_no }}{{ gst.basic_amount }}{{ gst.final_amount }}
    Total{{total["sum_gst_basic_amt"]}}{{total["sum_gst_final_amt"]}}
    No GST release found.
    + + +
    +

    Payment Details

    + + + + + + + + + + + + + {% if payments %} + {% for pay in payments %} + + + + + + + + + {% endfor %} + + + + + + + + + {% else %} + + + + + {% endif %} + + +
    PMC NoInvoice NoAmountTDS Amount @ 1% on BASIC AMOUNTTotal Amount PaidUTR
    {{ pay.pmc_no }}{{ pay.invoice_no }}{{ pay.Payment_Amount }}{{ pay.TDS_Payment_Amount }}{{ pay.Total_amount }}{{ pay.utr}}
    Total{{total["sum_pay_payment_amt"]}}{{total["sum_pay_tds_payment_amt"]}}{{total["sum_pay_total_amt"]}}
    No payment found.
    + + + Download Report +
    + +{% endblock %} \ No newline at end of file diff --git a/v-2/templates/unreleased_gst.html b/v-2/templates/unreleased_gst.html new file mode 100644 index 0000000..266a457 --- /dev/null +++ b/v-2/templates/unreleased_gst.html @@ -0,0 +1,35 @@ +{% extends "base.html" %} +{% block content %} +
    +

    🚫 GST Release Not Filled

    + + + + + + + + + + + + + + {% for row in data %} + + + + + + + + + {% endfor %} + +
    PMC NoInvoice NoInvoice DetailsGST_SD_Amount
    {{ row.PMC_No }}{{ row.Invoice_No }}{{ row.Invoice_Details }}{{ row.GST_SD_Amount }}
    + + {% if data|length == 0 %} +

    ✅ All invoices have GST releases.

    + {% endif %} +
    +{% endblock %} diff --git a/v-2/templates/uploadExcelFile.html b/v-2/templates/uploadExcelFile.html new file mode 100644 index 0000000..47c3a5b --- /dev/null +++ b/v-2/templates/uploadExcelFile.html @@ -0,0 +1,24 @@ +{% extends 'base.html' %} +{% block content %} + + + + Upload Excel File + + + + + +

    Upload Excel File

    +
    +
    + +

    + +
    +
    + + + +{% endblock %} diff --git a/v-2/templates/work_order_report.html b/v-2/templates/work_order_report.html new file mode 100644 index 0000000..80935e9 --- /dev/null +++ b/v-2/templates/work_order_report.html @@ -0,0 +1,209 @@ +{% extends 'base.html' %} +{% block content %} + + Work Order Report + + + + + +

    Work Order Report

    + +
    +
    + + +
    + +
    + + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +{% endblock %} diff --git a/v-2/unusedCode/unused.py b/v-2/unusedCode/unused.py new file mode 100644 index 0000000..e7c9245 --- /dev/null +++ b/v-2/unusedCode/unused.py @@ -0,0 +1,482 @@ + +logging.basicConfig(level=logging.DEBUG) + + +@app.route('/add_purchase_order', methods=['GET', 'POST']) +def add_purchase_order(): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + if request.method == 'POST': + # Fetch form fields + purchase_date = request.form.get('purchase_date') + supplier_name = request.form.get('supplier_name') + purchase_order_no = request.form.get('purchase_order_no') + item_name = request.form.get('item_name') + quantity = request.form.get('quantity') + unit = request.form.get('unit') + rate = request.form.get('rate') + amount = request.form.get('amount') + GST_Amount = request.form.get('GST_Amount') + TDS = request.form.get('TDS') + final_amount = request.form.get('final_amount') + LogHelper.log_action("Add purchase order", f"User {current_user.id} Added puirchase Order'{ purchase_order_no}'") + # Insert into database + insert_query = """ + INSERT INTO purchase_order ( + purchase_date, supplier_name, purchase_order_no, item_name, quantity, unit, rate, amount, + GST_Amount, TDS, final_amount + ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) + """ + cursor.execute(insert_query, ( + purchase_date, supplier_name, purchase_order_no, item_name, quantity, unit, rate, amount, + GST_Amount, TDS, final_amount + )) + connection.commit() + + # ✅ Always fetch updated data + cursor.execute("SELECT * FROM purchase_order") + purchases = cursor.fetchall() + + cursor.close() + connection.close() + + return render_template('add_purchase_order.html', purchases=purchases) + + +# Show all purchases +@app.route('/purchase_orders') +def show_purchase_orders(): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + cursor.execute("SELECT * FROM purchase_order") + purchases = cursor.fetchall() + cursor.close() + connection.close() + return render_template('add_purchase_order.html', purchases=purchases) + + +# Delete purchase order +@app.route('/delete_purchase/', methods=['POST']) +def delete_purchase(id): + connection = config.get_db_connection() + cursor = connection.cursor() + cursor.execute("DELETE FROM purchase_order WHERE purchase_id = %s", (id,)) + connection.commit() + cursor.close() + connection.close() + LogHelper.log_action("Delete purchase order", f"User {current_user.id} Deleted puirchase Order'{ id}'") + return render_template(('add_purchase_order.html')) + + +# Edit purchase order (form + update logic) +@app.route('/update_purchase/', methods=['GET', 'POST']) +def update_purchase(id): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + if request.method == 'POST': + # ✅ Form submitted - update all fields + data = request.form + cursor.execute(""" + UPDATE purchase_order + SET purchase_date = %s, + supplier_name = %s, + purchase_order_no = %s, + item_name = %s, + quantity = %s, + unit = %s, + rate = %s, + amount = %s, + GST_Amount = %s, + TDS = %s, + final_amount = %s + WHERE purchase_id = %s + """, ( + data['purchase_date'], data['supplier_name'], data['purchase_order_no'], data['item_name'], + data['quantity'], + data['unit'], data['rate'], data['amount'], data['GST_Amount'], data['TDS'], data['final_amount'], + id + )) + connection.commit() + cursor.close() + connection.close() + LogHelper.log_action("Delete purchase order", f"User {current_user.id} Deleted puirchase Order'{ id}'") + return redirect(url_for('show_purchase_orders')) + + # Show edit form + cursor.execute("SELECT * FROM purchase_order WHERE purchase_id = %s", (id,)) + purchase = cursor.fetchone() + cursor.close() + connection.close() + return render_template('edit_purchase.html', purchase=purchase) + + +# SHOW all GRNs + ADD form +@app.route('/grn', methods=['GET']) +def grn_page(): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + # Fetch purchase orders for dropdown + cursor.execute("SELECT purchase_id, supplier_name FROM purchase_order") + purchase_orders = cursor.fetchall() + + # Fetch all GRNs to display + cursor.execute("SELECT * FROM goods_receive_note") + grns = cursor.fetchall() + print(grns) + cursor.close() + connection.close() + + # Render the template with both datasets + return render_template('grn_form.html', purchase_orders=purchase_orders, grns=grns) + + +# ADD new GRN +@app.route('/add_grn', methods=['POST', 'GET']) +def add_grn(): + data = request.form + connection = config.get_db_connection() + cursor = connection.cursor() + query = """ + INSERT INTO goods_receive_note + (grn_date, purchase_id, supplier_name, item_description, received_quantity, unit, rate, amount, remarks) + VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s) \ + """ + cursor.execute(query, ( + data.get('grn_date'), + data.get('purchase_id'), + data.get('supplier_name'), + data.get('item_description'), + data.get('received_quantity'), + data.get('unit'), + data.get('rate'), + data.get('amount'), + data.get('remarks') + )) + connection.commit() + + cursor.execute("SELECT * FROM goods_receive_note") + grns = cursor.fetchall() + print(grns) + query = "select * from purchase_order" + cursor.execute(query) + purchase_orders = cursor.fetchall() + cursor.close() + connection.close() + return render_template('grn_form.html', purchase_orders=purchase_orders, grns=grns) + + +# UPDATE GRN +@app.route('/update_grn/', methods=['GET', 'POST']) +def update_grn(grn_id): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + if request.method == 'POST': + data = request.form + query = """ + UPDATE goods_receive_note + SET grn_date=%s, purchase_id=%s, supplier_name=%s, item_description=%s, + received_quantity=%s, unit=%s, rate=%s, amount=%s, remarks=%s + WHERE grn_id=%s + """ + cursor.execute(query, ( + data['grn_date'], data['purchase_id'], data['supplier_name'], + data['item_description'], data['received_quantity'], data['unit'], + data['rate'], data['amount'], data['remarks'], grn_id + )) + connection.commit() + cursor.close() + connection.close() + return redirect(url_for('grns')) + + cursor.execute("SELECT * FROM goods_receive_note WHERE grn_id = %s", (grn_id,)) + grn = cursor.fetchone() + cursor.close() + connection.close() + return render_template("edit_grn.html", grn=grn) + + +# DELETE GRN +@app.route('/delete_grn/', methods=['POST']) +def delete_grn(grn_id): + connection = config.get_db_connection() + cursor = connection.cursor() + cursor.execute("DELETE FROM goods_receive_note WHERE grn_id = %s", (grn_id,)) + connection.commit() + cursor.close() + connection.close() + return render_template("grn_form.html") + + +@app.route('/work_order_report', methods=['GET']) +def work_order_report(): + return render_template('work_order_report.html') + + + + +# ✅ Vendor Name Search (for Select2) +@app.route('/get_vendor_names') +def get_vendor_names(): + query = request.args.get('q', '') + connection = config.get_db_connection() + cursor = connection.cursor() + cursor.execute("SELECT DISTINCT vendor_name FROM work_order WHERE vendor_name LIKE %s", (f"%{query}%",)) + vendors = [row[0] for row in cursor.fetchall()] + cursor.close() + connection.close() + return jsonify(vendors) + + +# ✅ Work Order Number Search (with or without vendor) +@app.route('/get_work_order_numbers') +def get_work_order_numbers(): + vendor = request.args.get('vendor_name', '') + query = request.args.get('q', '') + connection = config.get_db_connection() + cursor = connection.cursor() + + if vendor: + cursor.execute( + "SELECT DISTINCT work_order_number FROM work_order WHERE vendor_name = %s AND work_order_number LIKE %s", + (vendor, f"%{query}%")) + else: + cursor.execute("SELECT DISTINCT work_order_number FROM work_order WHERE work_order_number LIKE %s", + (f"%{query}%",)) + + orders = [row[0] for row in cursor.fetchall()] + cursor.close() + connection.close() + return jsonify(orders) + + +# ✅ Get Work Order Data (Filtered) +@app.route('/get_work_order_data') +def get_work_order_data(): + vendor = request.args.get('vendor_name') + order_number = request.args.get('work_order_number') + + query = "SELECT * FROM work_order WHERE 1=1" + params = [] + + if vendor: + query += " AND vendor_name = %s" + params.append(vendor) + if order_number: + query += " AND work_order_number = %s" + params.append(order_number) + + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + cursor.execute(query, tuple(params)) + data = cursor.fetchall() + cursor.close() + connection.close() + return jsonify(data) + + + + +@app.route('/download_work_order_report') +def download_work_order_report(): + vendor_name = request.args.get('vendor_name') + work_order_number = request.args.get('work_order_number') + + if work_order_number == "null": + work_order_number = None + + query = "SELECT * FROM work_order WHERE 1=1" + params = [] + + if vendor_name: + query += " AND vendor_name = %s" + params.append(vendor_name) + if work_order_number: + query += " AND work_order_number = %s" + params.append(work_order_number) + + conn = config.get_db_connection() + cursor = conn.cursor(dictionary=True) + cursor.execute(query, tuple(params)) + data = cursor.fetchall() + cursor.close() + conn.close() + + if not data: + return "No data found for the selected filters", 404 + + # Convert to DataFrame + df = pd.DataFrame(data) + + output_path = 'static/downloads/work_order_report.xlsx' + os.makedirs(os.path.dirname(output_path), exist_ok=True) + df.to_excel(output_path, index=False, startrow=2) # Leave space for heading + + # Load workbook for styling + wb = load_workbook(output_path) + ws = wb.active + + # Add a merged title + title = "Work Order Report" + ws.merge_cells(start_row=1, start_column=1, end_row=1, end_column=len(df.columns)) + title_cell = ws.cell(row=1, column=1) + title_cell.value = title + title_cell.font = Font(size=14, bold=True, color="1F4E78") + title_cell.alignment = Alignment(horizontal="center", vertical="center") + + # Style header row (row 3 because data starts from row 3) + header_font = Font(bold=True) + for col_num, column_name in enumerate(df.columns, 1): + cell = ws.cell(row=3, column=col_num) + cell.font = header_font + cell.alignment = Alignment(horizontal="center", vertical="center") + # Optional: adjust column width + max_length = max(len(str(column_name)), 12) + ws.column_dimensions[get_column_letter(col_num)].width = max_length + 2 + + wb.save(output_path) + return send_file(output_path, as_attachment=True) + + +@app.route('/purchase_order_report', methods=['GET']) +def purchase_order_report(): + return render_template('purchase_order_report.html') + + +@app.route('/get_supplier_names') +def get_supplier_names(): + query = request.args.get('q', '') # Get the search term from Select2 + connection = config.get_db_connection() + cursor = connection.cursor() + + # Fetch distinct supplier names that match the search query + cursor.execute( + "SELECT supplier_name FROM purchase_order WHERE supplier_name LIKE %s", + (f"%{query}%",) + ) + suppliers = [row[0] for row in cursor.fetchall()] + + cursor.close() + connection.close() + return jsonify(suppliers) + + +@app.route('/get_purchase_order_numbers') +def get_purchase_order_numbers(): + supplier = request.args.get('supplier_name', '') + query = request.args.get('q', '') + + connection = config.get_db_connection() + cursor = connection.cursor() + + if supplier: + cursor.execute(""" + SELECT purchase_order_no + FROM purchase_order + WHERE supplier_name = %s AND purchase_order_no LIKE %s + """, (supplier, f"%{query}%")) + else: + cursor.execute(""" + SELECT purchase_order_no + FROM purchase_order + WHERE purchase_order_no LIKE %s + """, (f"%{query}%",)) + + orders = [row[0] for row in cursor.fetchall()] + cursor.close() + connection.close() + return jsonify(orders) + + +@app.route('/get_purchase_order_data') +def get_purchase_order_data(): + supplier = request.args.get('supplier_name') + order_no = request.args.get('purchase_order_no') + + query = "SELECT * FROM purchase_order WHERE 1=1" + params = [] + + if supplier: + query += " AND supplier_name = %s" + params.append(supplier) + if order_no: + query += " AND purchase_order_no = %s" + params.append(order_no) + + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + cursor.execute(query, tuple(params)) + data = cursor.fetchall() + cursor.close() + connection.close() + return jsonify(data) + + +@app.route('/download_purchase_order_report') +def download_purchase_order_report(): + supplier_name = request.args.get('supplier_name') + purchase_order_no = request.args.get('purchase_order_no') + + if purchase_order_no == "null": + purchase_order_no = None + LogHelper.log_action("Download purchase order", f"User {current_user.id} Download puirchase Order'{ purchase_order_no}'") + query = "SELECT * FROM purchase_order WHERE 1=1" + params = [] + + if supplier_name: + query += " AND supplier_name = %s" + params.append(supplier_name) + if purchase_order_no: + query += " AND purchase_order_no = %s" + params.append(purchase_order_no) + + conn = config.get_db_connection() + cursor = conn.cursor(dictionary=True) + cursor.execute(query, tuple(params)) + data = cursor.fetchall() + cursor.close() + conn.close() + + if not data: + return "No data found for the selected filters", 404 + + # Convert to DataFrame + df = pd.DataFrame(data) + + output_path = 'static/downloads/purchase_order_report.xlsx' + os.makedirs(os.path.dirname(output_path), exist_ok=True) + + df.to_excel(output_path, index=False, startrow=2) # Reserve space for heading + + # Load workbook for styling + wb = load_workbook(output_path) + ws = wb.active + + # Add a merged title + title = "Purchase Order Report" + ws.merge_cells(start_row=1, start_column=1, end_row=1, end_column=len(df.columns)) + title_cell = ws.cell(row=1, column=1) + title_cell.value = title + title_cell.font = Font(size=14, bold=True, color="1F4E78") + title_cell.alignment = Alignment(horizontal="center", vertical="center") + + # Style header row (row 3 because data starts from row 3) + header_font = Font(bold=True) + for col_num, column_name in enumerate(df.columns, 1): + cell = ws.cell(row=3, column=col_num) + cell.font = header_font + cell.alignment = Alignment(horizontal="center", vertical="center") + max_length = max(len(str(column_name)), 12) + ws.column_dimensions[get_column_letter(col_num)].width = max_length + 2 + + wb.save(output_path) + return send_file(output_path, as_attachment=True) + + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=5000, debug=True) + + diff --git a/v-2/unusedCode/workOrder.py b/v-2/unusedCode/workOrder.py new file mode 100644 index 0000000..2623bb9 --- /dev/null +++ b/v-2/unusedCode/workOrder.py @@ -0,0 +1,128 @@ +# -- end hold types controlller -------------------- + +# Route to display the HTML form +@app.route('/add_work_order', methods=['GET']) +def add_work_order(): + # Add database connection + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + cursor.execute("SELECT Contractor_id, Contractor_Name FROM subcontractors") # Adjust table/column names as needed + subcontractor = cursor.fetchall() + + cursor.close() + connection.close() + + return render_template('add_work_order.html', subcontractor=subcontractor) # This is your HTML form page + + +# Route to handle form submission (from action="/submit_work_order") +@app.route('/submit_work_order', methods=['POST', 'GET']) +def submit_work_order(): + vendor_name = request.form['vendor_name'] + work_order_type = request.form['work_order_type'] + work_order_amount = request.form['work_order_amount'] + boq_amount = request.form['boq_amount'] + work_done_percentage = request.form['work_done_percentage'] + work_order_number = request.form['work_order_number'] + gst_amount = request.form['gst_amount'] + tds_amount = request.form['tds_amount'] + security_deposite = request.form['security_deposite'] + sd_against_gst = request.form['sd_against_gst'] + final_total = request.form['final_total'] + tds_of_gst = request.form['tds_of_gst'] + LogHelper.log_action("Submit Work Order", f"User {current_user.id} Submit Work Order'{ work_order_type}'") + # print("Good Morning How are U") + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + # print("Good morning and how are you") + insert_query = """ + INSERT INTO work_order + (vendor_name, work_order_type, work_order_amount, boq_amount, work_done_percentage,work_order_number,gst_amount,tds_amount + ,security_deposit,sd_against_gst,final_total,tds_of_gst) + VALUES (%s, %s, %s, %s, %s,%s,%s,%s,%s,%s,%s,%s) + """ + cursor.execute(insert_query, + (vendor_name, work_order_type, work_order_amount, boq_amount, work_done_percentage, work_order_number + , gst_amount, tds_amount, security_deposite, sd_against_gst, final_total, tds_of_gst)) + connection.commit() + + # ✅ Fetch all data after insert + select_query = "SELECT * FROM work_order" + cursor.execute(select_query) + wo = cursor.fetchall() + # print("The Work order data is ",wo) + print("The data from work order ", wo) # should now print the data properly + cursor.execute("SELECT Contractor_id, Contractor_Name FROM subcontractors") # Adjust table/column names as needed + subcontractor = cursor.fetchall() + cursor.close() + connection.close() + + return render_template('add_work_order.html', work_order_type=work_order_type, wo=wo, subcontractor=subcontractor) + + +@app.route('/delete_work_order/', methods=['POST']) +def delete_work_order(id): + connection = config.get_db_connection() + cursor = connection.cursor() + cursor.execute("DELETE FROM work_order WHERE work_order_id = %s", (id,)) + connection.commit() + cursor.close() + connection.close() + LogHelper.log_action("delete Work Order", f"User {current_user.id} delete Work Order'{ id}'") + return jsonify({'success': True}) + + +@app.route('/update_work_order/', methods=['GET', 'POST']) +def update_work_order(id): + connection = config.get_db_connection() + cursor = connection.cursor(dictionary=True) + + if request.method == 'POST': + work_order_type = request.form['work_order_type'] + work_order_amount = request.form['work_order_amount'] + boq_amount = request.form['boq_amount'] + work_done_percentage = request.form['work_done_percentage'] + work_order_number = request.form['work_order_number'] + gst_amount = request.form['gst_amount'] + tds_amount = request.form['tds_amount'] + security_deposite = request.form['security_deposite'] + sd_against_gst = request.form['sd_against_gst'] + final_amount = request.form['final_amount'] + tds_of_gst = request.form['tds_of_gst'] + update_query = """ + UPDATE work_order + SET work_order_type = %s, + work_order_amount = %s, + boq_amount = %s, + work_done_percentage = %s, + work_order_number= %s, + gst_amount = %s, + tds_amount= %s, + security_deposite= %s, + sd_against_gst=%s, + final_amount= %s, + tds_of_gst=%s + WHERE work_order_id = %s + """ + cursor.execute(update_query, ( + work_order_type, work_order_amount, boq_amount, work_done_percentage, work_order_number, gst_amount, + tds_amount, security_deposite, sd_against_gst, final_amount, tds_of_gst, id)) + connection.commit() + cursor.close() + connection.close() + + # If GET request: fetch the existing record + cursor.execute("SELECT * FROM work_order WHERE work_order_id = %s", (id,)) + work_order = cursor.fetchone() + cursor.close() + connection.close() + return render_template('update_work_order.html', work_order=work_order) + + +# Optional: Route to show a success message +@app.route('/success') +def success(): + return "Work Order Submitted Successfully!" + +