From ce832d280592255fe6142fbe5071dd6534f36965 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Fri, 19 Sep 2025 16:02:55 -0400 Subject: [PATCH 01/35] Fix Broken Restore from Backup on Setup Page --- setup/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/index.php b/setup/index.php index 8eb15fc8..b917afed 100644 --- a/setup/index.php +++ b/setup/index.php @@ -203,7 +203,7 @@ if (isset($_POST['restore'])) { } // === 5. Restore uploads directory === - $uploadDir = __DIR__ . "../uploads/"; + $uploadDir = __DIR__ . "/../uploads/"; $uploadsZip = "$tempDir/uploads.zip"; if (file_exists($uploadsZip)) { From 4ff3231451c7ec6ae68971600293856a0904abbd Mon Sep 17 00:00:00 2001 From: johnnyq Date: Sat, 20 Sep 2025 15:56:50 -0400 Subject: [PATCH 02/35] Fix Incorrect Asset Name in Logging and Flash Alert when editing an asset in a ticket, remove ACH and Add Bank Transfer to Setup --- setup/index.php | 2 +- user/post/ticket.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/setup/index.php b/setup/index.php index b917afed..79d3b92c 100644 --- a/setup/index.php +++ b/setup/index.php @@ -440,7 +440,7 @@ if (isset($_POST['add_company_settings'])) { // Payment Methods mysqli_query($mysqli,"INSERT INTO payment_methods SET payment_method_name = 'Cash'"); mysqli_query($mysqli,"INSERT INTO payment_methods SET payment_method_name = 'Check'"); - mysqli_query($mysqli,"INSERT INTO payment_methods SET payment_method_name = 'ACH'"); + mysqli_query($mysqli,"INSERT INTO payment_methods SET payment_method_name = 'Bank Transfer'"); mysqli_query($mysqli,"INSERT INTO payment_methods SET payment_method_name = 'Credit Card'"); // Default Calendar diff --git a/user/post/ticket.php b/user/post/ticket.php index 42ca0a70..da7bacba 100644 --- a/user/post/ticket.php +++ b/user/post/ticket.php @@ -573,7 +573,7 @@ if (isset($_POST['edit_ticket_asset'])) { // Get ticket / asset details for logging $sql = mysqli_query($mysqli, "SELECT asset_name, ticket_prefix, ticket_number, ticket_status_name, ticket_client_id FROM assets - LEFT JOIN tickets ON ticket_asset_id = $asset_id + LEFT JOIN tickets ON ticket_asset_id = asset_id LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id WHERE ticket_id = $ticket_id" ); From 61a1d61901f2e0f7c6b50310ba1cffa398248b27 Mon Sep 17 00:00:00 2001 From: wrongecho Date: Mon, 22 Sep 2025 11:23:18 +0100 Subject: [PATCH 03/35] Bugfix - remove capital in html field name - Threshold => threshold --- admin/modals/payment_provider/payment_provider_edit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/modals/payment_provider/payment_provider_edit.php b/admin/modals/payment_provider/payment_provider_edit.php index a98e94d5..f5e65cb6 100644 --- a/admin/modals/payment_provider/payment_provider_edit.php +++ b/admin/modals/payment_provider/payment_provider_edit.php @@ -58,7 +58,7 @@ ob_start();
- + Will not show as an option at Checkout if above this number From 6d3351b2f7c68a54e8a92edc469ef339ce6ccc20 Mon Sep 17 00:00:00 2001 From: wrongecho Date: Mon, 22 Sep 2025 11:53:49 +0100 Subject: [PATCH 04/35] Payment providers bug-fixing --- admin/payment_provider.php | 13 ++++++++----- admin/post/payment_provider.php | 23 +++++++++++++++-------- admin/post/saved_payment_method.php | 2 +- client/saved_payment_methods.php | 2 +- custom/readme.php | 2 +- 5 files changed, 26 insertions(+), 16 deletions(-) diff --git a/admin/payment_provider.php b/admin/payment_provider.php index bb3b3cef..1c1073fe 100644 --- a/admin/payment_provider.php +++ b/admin/payment_provider.php @@ -55,7 +55,7 @@ $num_rows = mysqli_num_rows($sql); - Fee + Expensed Fee Saved Payment Methods @@ -93,7 +93,7 @@ $num_rows = mysqli_num_rows($sql); - + + % + diff --git a/admin/post/payment_provider.php b/admin/post/payment_provider.php index 650f774b..0ff98af7 100644 --- a/admin/post/payment_provider.php +++ b/admin/post/payment_provider.php @@ -15,10 +15,10 @@ if (isset($_POST['add_payment_provider'])) { $private_key = sanitizeInput($_POST['private_key']); $threshold = floatval($_POST['threshold']); $enable_expense = intval($_POST['enable_expense'] ?? 0); - $percentage_fee = floatval($_POST['percentage_fee']) / 100; - $flat_fee = floatval($_POST['flat_fee']); + $percentage_fee = floatval($_POST['percentage_fee']) / 100 ?? 0; + $flat_fee = floatval($_POST['flat_fee']) ?? 0; - // Check to make sure Provider isnt added Twice + // Check to ensure provider isn't added twice $sql = "SELECT 1 FROM payment_providers WHERE payment_provider_name = '$provider' LIMIT 1"; $result = mysqli_query($mysqli, $sql); if (mysqli_num_rows($result) > 0) { @@ -26,7 +26,7 @@ if (isset($_POST['add_payment_provider'])) { redirect(); } - // Check for Stripe Account if not create it + // Check for Stripe Account, if not create it $sql_account = mysqli_query($mysqli,"SELECT account_id FROM accounts WHERE account_name = '$provider' AND account_archived_at IS NULL LIMIT 1"); if (mysqli_num_rows($sql_account) == 0) { $account_id = mysqli_insert_id($mysqli); @@ -35,6 +35,10 @@ if (isset($_POST['add_payment_provider'])) { $account_id = intval($row['account_id']); } + // Expense defaults + $category_id = 0; + $vendor_id = 0; + if ($enable_expense) { // Category $sql_category = mysqli_query($mysqli,"SELECT category_id FROM categories WHERE category_name = 'Payment Processing' AND category_type = 'Expense' AND category_archived_at IS NULL LIMIT 1"); @@ -45,7 +49,7 @@ if (isset($_POST['add_payment_provider'])) { $row = mysqli_fetch_array($sql_category); $category_id = intval($row['category_id']); } - //Vendor + // Vendor $sql_vendor = mysqli_query($mysqli,"SELECT vendor_id FROM vendors WHERE vendor_name = '$provider' AND vendor_client_id = 0 AND vendor_archived_at IS NULL LIMIT 1"); if (mysqli_num_rows($sql_vendor) == 0) { mysqli_query($mysqli,"INSERT INTO vendors SET vendor_name = '$provider', vendor_description = 'Payment Processor Provider', vendor_client_id = 0"); @@ -56,7 +60,7 @@ if (isset($_POST['add_payment_provider'])) { } } - mysqli_query($mysqli,"INSERT INTO payment_providers SET payment_provider_name = '$provider', payment_provider_public_key = '$public_key', payment_provider_private_key = '$private_key', payment_provider_account = $account_id, payment_provider_expense_vendor = $vendor_id, payment_provider_expense_category = $category_id, payment_provider_expense_percentage_fee = $percentage_fee, payment_provider_expense_flat_fee = $flat_fee"); + mysqli_query($mysqli,"INSERT INTO payment_providers SET payment_provider_name = '$provider', payment_provider_public_key = '$public_key', payment_provider_private_key = '$private_key', payment_provider_threshold = $threshold, payment_provider_account = $account_id, payment_provider_expense_vendor = $vendor_id, payment_provider_expense_category = $category_id, payment_provider_expense_percentage_fee = $percentage_fee, payment_provider_expense_flat_fee = $flat_fee"); $provider_id = mysqli_insert_id($mysqli); @@ -81,7 +85,7 @@ if (isset($_POST['edit_payment_provider'])) { $percentage_fee = floatval($_POST['percentage_fee']) / 100; $flat_fee = floatval($_POST['flat_fee']); - mysqli_query($mysqli,"UPDATE payment_providers SET payment_provider_public_key = '$public_key', payment_provider_private_key = '$private_key', payment_provider_expense_percentage_fee = $percentage_fee, payment_provider_expense_flat_fee = $flat_fee WHERE payment_provider_id = $provider_id"); + mysqli_query($mysqli,"UPDATE payment_providers SET payment_provider_public_key = '$public_key', payment_provider_private_key = '$private_key', payment_provider_threshold = $threshold, payment_provider_expense_percentage_fee = $percentage_fee, payment_provider_expense_flat_fee = $flat_fee WHERE payment_provider_id = $provider_id"); logAction("Payment Provider", "Edit", "$session_name edited Payment Provider $provider"); @@ -92,11 +96,14 @@ if (isset($_POST['edit_payment_provider'])) { } if (isset($_GET['delete_payment_provider'])) { + + validateCSRFToken($_GET['csrf_token']); $provider_id = intval($_GET['delete_payment_provider']); - $provider_name = sanitizeInput(getFieldById('provider_providers', $provider_id, 'provider_name')); + $provider_name = sanitizeInput(getFieldById('payment_providers', $provider_id, 'provider_name')); + // Delete provider mysqli_query($mysqli,"DELETE FROM payment_providers WHERE payment_provider_id = $provider_id"); logAction("Payment Provider", "Delete", "$session_name deleted Payment Provider $provider_name"); diff --git a/admin/post/saved_payment_method.php b/admin/post/saved_payment_method.php index da69664a..7645b390 100644 --- a/admin/post/saved_payment_method.php +++ b/admin/post/saved_payment_method.php @@ -37,7 +37,7 @@ if (isset($_GET['delete_saved_payment'])) { $private_key = $row['payment_provider_private_key']; - // Seperate logic for each Payment Provider + // Separate logic for each Payment Provider if ($payment_provider_name == 'Stripe') { try { diff --git a/client/saved_payment_methods.php b/client/saved_payment_methods.php index 656010ff..fc0b6674 100644 --- a/client/saved_payment_methods.php +++ b/client/saved_payment_methods.php @@ -1,6 +1,6 @@ Date: Mon, 22 Sep 2025 12:04:11 +0100 Subject: [PATCH 05/35] New tickets v2 - Exclude leads --- user/modals/ticket/ticket_add_v2.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/user/modals/ticket/ticket_add_v2.php b/user/modals/ticket/ticket_add_v2.php index 6d575c7a..7e96fd44 100644 --- a/user/modals/ticket/ticket_add_v2.php +++ b/user/modals/ticket/ticket_add_v2.php @@ -79,8 +79,6 @@ data-details=""> ( tasks) - - @@ -198,7 +196,7 @@ From 5c448c05a9840ae12b907f8a0ec03489e9925275 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Mon, 22 Sep 2025 19:33:40 -0400 Subject: [PATCH 06/35] Update .gitignore and add custom directories to /admin /client /guest /user Example Documentation coming soon --- .gitignore | 10 ++++++- admin/custom/readme.php | 8 ++++++ {custom => client/custom}/readme.php | 5 ++-- custom/post.php | 40 ---------------------------- custom/post/readme.php | 13 --------- custom/test.php | 18 ------------- guest/custom/readme.php | 9 +++++++ user/custom/readme.php | 9 +++++++ 8 files changed, 38 insertions(+), 74 deletions(-) create mode 100644 admin/custom/readme.php rename {custom => client/custom}/readme.php (72%) delete mode 100644 custom/post.php delete mode 100644 custom/post/readme.php delete mode 100644 custom/test.php create mode 100644 guest/custom/readme.php create mode 100644 user/custom/readme.php diff --git a/.gitignore b/.gitignore index f60657bd..6680ff1e 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,14 @@ plugins/htmlpurifier/standalone/HTMLPurifier/DefinitionCache/Serializer/CSS/* xcustom/* !xcustom/readme.php post/xcustom -custom/* !post/xcustom/readme.php +admin/custom/* +!admin/custom/readme.php +client/custom/* +!client/custom/readme.php +guest/custom/* +!guest/custom/readme.php +user/custom/* +!user/custom/readme.php .zed + diff --git a/admin/custom/readme.php b/admin/custom/readme.php new file mode 100644 index 00000000..498c1b53 --- /dev/null +++ b/admin/custom/readme.php @@ -0,0 +1,8 @@ + - - - - - -

Blank Page

-
-

This is a great starting point for new custom pages.

- - Date: Tue, 23 Sep 2025 08:38:29 +0100 Subject: [PATCH 07/35] Fix file paths in cron notifs to new structure --- scripts/cron.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/cron.php b/scripts/cron.php index ef54bec8..9b35f0a7 100644 --- a/scripts/cron.php +++ b/scripts/cron.php @@ -160,7 +160,7 @@ while ($row = mysqli_fetch_array($sql)) { // Whitelabel - Disable if expired/invalid if ($config_whitelabel_enabled && !validateWhitelabelKey($config_whitelabel_key)) { mysqli_query($mysqli, "UPDATE settings SET config_whitelabel_enabled = 0, config_whitelabel_key = '' WHERE company_id = 1"); - appNotify("Settings", "White-labelling was disabled due to expired/invalid key", "settings_modules.php"); + appNotify("Settings", "White-labelling was disabled due to expired/invalid key", "/admin/settings_modules.php"); } @@ -1220,7 +1220,7 @@ $update_message = $updates->update_message; if ($updates->current_version !== $updates->latest_version) { // Send Alert to inform Updates Available - appNotify("Update", "$update_message", "admin_update.php"); + appNotify("Update", "$update_message", "/admin/update.php"); } @@ -1232,7 +1232,7 @@ if ($updates->current_version !== $updates->latest_version) { */ // Send Alert to inform Cron was run -appNotify("Cron", "Cron successfully executed", "admin_audit_log.php"); +appNotify("Cron", "Cron successfully executed", "/admin/audit_log.php"); // Logging logApp("Cron", "info", "Cron executed successfully"); From e9921384569a7320fc6da91a56be0a4e3c4a179a Mon Sep 17 00:00:00 2001 From: wrongecho Date: Tue, 23 Sep 2025 08:45:06 +0100 Subject: [PATCH 08/35] Better logic for the index/root page: - If app user, send to their start page - If a client contact, send back to the client area - If not logged in at all, make them --- index.php | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/index.php b/index.php index 36e1df46..cb81e850 100644 --- a/index.php +++ b/index.php @@ -1,10 +1,27 @@ - Date: Tue, 23 Sep 2025 09:27:04 +0100 Subject: [PATCH 09/35] Bugfix: Change working directory back after --- functions.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/functions.php b/functions.php index 70c9117a..740a7d1b 100644 --- a/functions.php +++ b/functions.php @@ -1481,10 +1481,14 @@ function enforceAdminPermission() { } function customAction($trigger, $entity) { + $original_dir = getcwd(); // Save + chdir(dirname(__FILE__)); if (file_exists(__DIR__ . "/custom/custom_action_handler.php")) { include_once __DIR__ . "/custom/custom_action_handler.php"; } + + chdir($original_dir); // Restore original working directory } function appNotify($type, $details, $action = null, $client_id = 0, $entity_id = 0) { From e7dcc6df3cac523bd8390f362a1bba67a9674dee Mon Sep 17 00:00:00 2001 From: wrongecho Date: Tue, 23 Sep 2025 09:28:27 +0100 Subject: [PATCH 10/35] Tickets API - Add ability to resolve ticket in post request with only a ticket ID and client ID via resolve.php endpoint --- api/v1/tickets/resolve.php | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 api/v1/tickets/resolve.php diff --git a/api/v1/tickets/resolve.php b/api/v1/tickets/resolve.php new file mode 100644 index 00000000..1079bbce --- /dev/null +++ b/api/v1/tickets/resolve.php @@ -0,0 +1,48 @@ + Date: Tue, 23 Sep 2025 15:36:45 -0400 Subject: [PATCH 11/35] Added Viewing Archived Users and the Ability to Restore alonf with reassigning tickets of that user during the archive process --- admin/modals/user/user_archive.php | 97 +++++++++++++++++++++++++----- admin/modals/user/user_edit.php | 2 +- admin/modals/user/user_restore.php | 87 +++++++++++++++++++++++++++ admin/post/users.php | 42 +++++++++++-- admin/users.php | 22 +++++-- 5 files changed, 225 insertions(+), 25 deletions(-) create mode 100644 admin/modals/user/user_restore.php diff --git a/admin/modals/user/user_archive.php b/admin/modals/user/user_archive.php index 8662ad4c..ad3662c5 100644 --- a/admin/modals/user/user_archive.php +++ b/admin/modals/user/user_archive.php @@ -1,16 +1,83 @@ - @@ -113,8 +119,10 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); $user_config_force_mfa = intval($row['user_config_force_mfa']); $user_role = intval($row['user_role_id']); $user_role_display = nullable_htmlentities($row['role_name']); + $user_archived_at = nullable_htmlentities($row['user_archived_at']); $user_initials = nullable_htmlentities(initials($user_name)); + $sql_last_login = mysqli_query( $mysqli, "SELECT * FROM logs @@ -196,10 +204,17 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); Disable + - + + Restore + + + + Archive + @@ -207,9 +222,6 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); From 93061eb6959d8ff56881ab8168bbbdf39098e5d7 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Tue, 23 Sep 2025 15:43:45 -0400 Subject: [PATCH 12/35] Add Assigned Agent column to Recurring Tickets --- user/recurring_tickets.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/user/recurring_tickets.php b/user/recurring_tickets.php index 8a99aa17..ab7b3e4f 100644 --- a/user/recurring_tickets.php +++ b/user/recurring_tickets.php @@ -32,7 +32,8 @@ $sql = mysqli_query( $mysqli, "SELECT SQL_CALC_FOUND_ROWS * FROM recurring_tickets LEFT JOIN clients ON recurring_ticket_client_id = client_id - LEFT JOIN categories ON category_id = recurring_ticket_category + LEFT JOIN categories ON category_id = recurring_ticket_category + LEFT JOIN users ON user_id = recurring_ticket_assigned_to WHERE (recurring_tickets.recurring_ticket_subject LIKE '%$q%' OR category_name LIKE '%$q%') $rec_ticket_permission_snippet $client_query @@ -147,6 +148,11 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); Frequency + + + Assigned + + Next Run Date @@ -171,6 +177,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); $recurring_ticket_next_run = nullable_htmlentities($row['recurring_ticket_next_run']); $recurring_ticket_category = getFallBack(nullable_htmlentities($row['category_name'])); $recurring_ticket_client_name = nullable_htmlentities($row['client_name']); + $assigned_to = getFallBack(nullable_htmlentities($row['user_name'])); ?> @@ -195,6 +202,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); + = 2) { ?> From 6b6c70f1dff335a57751347f62dff518bc7969cc Mon Sep 17 00:00:00 2001 From: johnnyq Date: Tue, 23 Sep 2025 17:05:12 -0400 Subject: [PATCH 13/35] added extra ../ to href for css and js in header and footer to allow code to be placed deeper within the directory structure moved reports to /user/reports, this should also fix the new custom directories --- includes/footer.php | 34 +++++++++---------- includes/header.php | 26 +++++++------- includes/top_nav.php | 14 ++++---- modals/notifications.php | 4 +-- user/includes/inc_all_reports.php | 20 ----------- user/includes/side_nav.php | 2 +- .../{report_budget.php => reports/budget.php} | 2 +- .../clients_with_balance.php} | 4 +-- .../credential_rotation.php} | 2 +- .../expense_by_vendor.php} | 2 +- .../expense_summary.php} | 2 +- user/reports/includes/inc_all_reports.php | 20 +++++++++++ .../includes/reports_side_nav.php | 28 +++++++-------- .../income_by_client.php} | 4 +-- .../income_summary.php} | 2 +- .../index.php} | 2 +- .../profit_loss.php} | 2 +- .../recurring_by_client.php} | 4 +-- .../tax_summary.php} | 2 +- .../ticket_by_client.php} | 2 +- .../ticket_summary.php} | 2 +- .../tickets_unbilled.php} | 4 +-- .../time_by_tech.php} | 2 +- 23 files changed, 93 insertions(+), 93 deletions(-) delete mode 100644 user/includes/inc_all_reports.php rename user/{report_budget.php => reports/budget.php} (98%) rename user/{report_clients_with_balance.php => reports/clients_with_balance.php} (93%) rename user/{report_credential_rotation.php => reports/credential_rotation.php} (98%) rename user/{report_expense_by_vendor.php => reports/expense_by_vendor.php} (98%) rename user/{report_expense_summary.php => reports/expense_summary.php} (99%) create mode 100644 user/reports/includes/inc_all_reports.php rename user/{ => reports}/includes/reports_side_nav.php (63%) rename user/{report_income_by_client.php => reports/income_by_client.php} (94%) rename user/{report_income_summary.php => reports/income_summary.php} (99%) rename user/{report_overview.php => reports/index.php} (92%) rename user/{report_profit_loss.php => reports/profit_loss.php} (99%) rename user/{report_recurring_by_client.php => reports/recurring_by_client.php} (92%) rename user/{report_tax_summary.php => reports/tax_summary.php} (99%) rename user/{report_ticket_by_client.php => reports/ticket_by_client.php} (99%) rename user/{report_ticket_summary.php => reports/ticket_summary.php} (99%) rename user/{report_tickets_unbilled.php => reports/tickets_unbilled.php} (97%) rename user/{report_time_by_tech.php => reports/time_by_tech.php} (99%) diff --git a/includes/footer.php b/includes/footer.php index 8800ddac..ad30ac9d 100644 --- a/includes/footer.php +++ b/includes/footer.php @@ -19,27 +19,27 @@ if (basename(dirname($_SERVER['REQUEST_URI'])) === 'admin') { ?> - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - + + + + diff --git a/includes/header.php b/includes/header.php index 835da821..83e7268b 100644 --- a/includes/header.php +++ b/includes/header.php @@ -20,26 +20,26 @@ header("X-Frame-Options: DENY"); - + - + - - - - - - - - - + + + + + + + + + - - + + -
+
@@ -64,7 +64,7 @@ ?> diff --git a/modals/notifications.php b/modals/notifications.php index b2d961bd..dce12ddc 100644 --- a/modals/notifications.php +++ b/modals/notifications.php @@ -86,11 +86,11 @@ ob_start(); ]; ?>" class="btn btn-primary"> Dismiss all - + See all Notifications - + See Dismissed Notifications diff --git a/user/includes/inc_all_reports.php b/user/includes/inc_all_reports.php deleted file mode 100644 index 1a2ec280..00000000 --- a/user/includes/inc_all_reports.php +++ /dev/null @@ -1,20 +0,0 @@ -= 1) { ?>
- \ No newline at end of file diff --git a/user/report_clients_with_balance.php b/user/reports/clients_with_balance.php similarity index 93% rename from user/report_clients_with_balance.php rename to user/reports/clients_with_balance.php index 30abd2de..ce3f8fc1 100644 --- a/user/report_clients_with_balance.php +++ b/user/reports/clients_with_balance.php @@ -67,7 +67,7 @@ enforceUserPermission('module_financial'); ?> - + - diff --git a/user/report_expense_summary.php b/user/reports/expense_summary.php similarity index 99% rename from user/report_expense_summary.php rename to user/reports/expense_summary.php index 727d9678..a127eb64 100644 --- a/user/report_expense_summary.php +++ b/user/reports/expense_summary.php @@ -122,7 +122,7 @@ $largest_expense_month = 0; - + + +
A ticket has been assigned to you!

Client: $client_name
Ticket Number: $ticket_prefix$ticket_number
Subject: $ticket_subject

https://$config_base_url/user/ticket.php?ticket_id=$ticket_id

Thanks,
$session_name
$company_name"; + $body = "Hi $agent_name,

A ticket has been assigned to you!

Client: $client_name
Ticket Number: $ticket_prefix$ticket_number
Subject: $ticket_subject

https://$config_base_url/agent/ticket.php?ticket_id=$ticket_id

Thanks,
$session_name
$company_name"; // Email Ticket Agent // Queue Mail @@ -2697,7 +2697,7 @@ if (isset($_POST['edit_ticket_schedule'])) { 'recipient' => $user_email, 'recipient_name' => $user_name, 'subject' => "Ticket Scheduled - [$ticket_prefix$ticket_number] - $ticket_subject", - 'body' => "Hello, " . $user_name . "

The ticket regarding $ticket_subject has been scheduled for $email_datetime.

--------------------------------
$ticket_link
--------------------------------

Please do not reply to this email.

Ticket: $ticket_prefix$ticket_number
Subject: $ticket_subject
Portal: https://$config_base_url/user/ticket.php?ticket_id=$ticket_id

~
$session_company_name
Support Department
$config_ticket_from_email", + 'body' => "Hello, " . $user_name . "

The ticket regarding $ticket_subject has been scheduled for $email_datetime.

--------------------------------
$ticket_link
--------------------------------

Please do not reply to this email.

Ticket: $ticket_prefix$ticket_number
Subject: $ticket_subject
Portal: https://$config_base_url/agent/ticket.php?ticket_id=$ticket_id

~
$session_company_name
Support Department
$config_ticket_from_email", 'cal_str' => $cal_str ]; @@ -2849,7 +2849,7 @@ if (isset($_GET['cancel_ticket_schedule'])) { 'recipient' => $user_email, 'recipient_name' => $user_name, 'subject' => "Ticket Schedule Cancelled - [$ticket_prefix$ticket_number] - $ticket_subject", - 'body' => "Hello, " . $user_name . "

Scheduled work for the ticket regarding $ticket_subject has been cancelled.

--------------------------------
$ticket_link
--------------------------------

Please do not reply to this email.

Ticket: $ticket_prefix$ticket_number
Subject: $ticket_subject
Portal: https://$config_base_url/user/ticket.php?id=$ticket_id

~
$session_company_name
Support Department
$config_ticket_from_email", + 'body' => "Hello, " . $user_name . "

Scheduled work for the ticket regarding $ticket_subject has been cancelled.

--------------------------------
$ticket_link
--------------------------------

Please do not reply to this email.

Ticket: $ticket_prefix$ticket_number
Subject: $ticket_subject
Portal: https://$config_base_url/agent/ticket.php?id=$ticket_id

~
$session_company_name
Support Department
$config_ticket_from_email", 'cal_str' => $cal_str ]; diff --git a/user/post/ticket_recurring_model.php b/agent/post/ticket_recurring_model.php similarity index 100% rename from user/post/ticket_recurring_model.php rename to agent/post/ticket_recurring_model.php diff --git a/user/post/transfer.php b/agent/post/transfer.php similarity index 100% rename from user/post/transfer.php rename to agent/post/transfer.php diff --git a/user/post/transfer_model.php b/agent/post/transfer_model.php similarity index 100% rename from user/post/transfer_model.php rename to agent/post/transfer_model.php diff --git a/user/post/trip.php b/agent/post/trip.php similarity index 100% rename from user/post/trip.php rename to agent/post/trip.php diff --git a/user/post/trip_model.php b/agent/post/trip_model.php similarity index 100% rename from user/post/trip_model.php rename to agent/post/trip_model.php diff --git a/user/post/vendor.php b/agent/post/vendor.php similarity index 100% rename from user/post/vendor.php rename to agent/post/vendor.php diff --git a/user/post/vendor_contact.php b/agent/post/vendor_contact.php similarity index 100% rename from user/post/vendor_contact.php rename to agent/post/vendor_contact.php diff --git a/user/post/vendor_contact_model.php b/agent/post/vendor_contact_model.php similarity index 100% rename from user/post/vendor_contact_model.php rename to agent/post/vendor_contact_model.php diff --git a/user/post/vendor_model.php b/agent/post/vendor_model.php similarity index 100% rename from user/post/vendor_model.php rename to agent/post/vendor_model.php diff --git a/user/products.php b/agent/products.php similarity index 100% rename from user/products.php rename to agent/products.php diff --git a/user/project_details.php b/agent/project_details.php similarity index 100% rename from user/project_details.php rename to agent/project_details.php diff --git a/user/projects.php b/agent/projects.php similarity index 100% rename from user/projects.php rename to agent/projects.php diff --git a/user/quote.php b/agent/quote.php similarity index 100% rename from user/quote.php rename to agent/quote.php diff --git a/user/quotes.php b/agent/quotes.php similarity index 100% rename from user/quotes.php rename to agent/quotes.php diff --git a/user/racks.php b/agent/racks.php similarity index 100% rename from user/racks.php rename to agent/racks.php diff --git a/user/recurring_expenses.php b/agent/recurring_expenses.php similarity index 100% rename from user/recurring_expenses.php rename to agent/recurring_expenses.php diff --git a/user/recurring_invoice.php b/agent/recurring_invoice.php similarity index 100% rename from user/recurring_invoice.php rename to agent/recurring_invoice.php diff --git a/user/recurring_invoices.php b/agent/recurring_invoices.php similarity index 100% rename from user/recurring_invoices.php rename to agent/recurring_invoices.php diff --git a/user/recurring_tickets.php b/agent/recurring_tickets.php similarity index 100% rename from user/recurring_tickets.php rename to agent/recurring_tickets.php diff --git a/user/reports/budget.php b/agent/reports/budget.php similarity index 100% rename from user/reports/budget.php rename to agent/reports/budget.php diff --git a/user/reports/clients_with_balance.php b/agent/reports/clients_with_balance.php similarity index 95% rename from user/reports/clients_with_balance.php rename to agent/reports/clients_with_balance.php index ce3f8fc1..29ac13f8 100644 --- a/user/reports/clients_with_balance.php +++ b/agent/reports/clients_with_balance.php @@ -67,7 +67,7 @@ enforceUserPermission('module_financial'); ?> - +