From 350697869bbcc399b0cc0fe604d1262c71634306 Mon Sep 17 00:00:00 2001 From: wrongecho Date: Fri, 30 May 2025 17:31:54 +0100 Subject: [PATCH 1/5] Fix invoice top banner not showing --- invoice.php | 163 ++++++++++++++++++++++++++-------------------------- 1 file changed, 82 insertions(+), 81 deletions(-) diff --git a/invoice.php b/invoice.php index a625914c..70dffe0d 100644 --- a/invoice.php +++ b/invoice.php @@ -191,102 +191,103 @@ if (isset($_GET['invoice_id'])) {
-
+
- -
+
+ +
+ = 2) { ?> + + + + + + + + + Add Payment + + + + Pay via saved card + + + + + + + Mark Non-Billable + + -
From 55a31865d075d3b564d2c9b2163ba3619ba8f91b Mon Sep 17 00:00:00 2001 From: johnnyq Date: Fri, 30 May 2025 16:15:12 -0400 Subject: [PATCH 2/5] Updated Client Overview Entities to not show Archived client's Entities even though the entity may not be archived, also added Archive Searching to network and certificates also added unarchive capabilities to them as well --- assets.php | 20 ++++++++++++++++++-- certificates.php | 36 +++++++++++++++++++++++++++++++++--- contacts.php | 18 +++++++++++++++++- credentials.php | 20 +++++++++++++++++++- locations.php | 18 +++++++++++++++++- networks.php | 35 ++++++++++++++++++++++++++++++++--- post/user/certificate.php | 23 +++++++++++++++++++++++ post/user/network.php | 23 +++++++++++++++++++++++ software.php | 18 +++++++++++++++++- 9 files changed, 199 insertions(+), 12 deletions(-) diff --git a/assets.php b/assets.php index f6d0f1cb..bdbb6112 100644 --- a/assets.php +++ b/assets.php @@ -9,10 +9,26 @@ if (isset($_GET['client_id'])) { require_once "includes/inc_all_client.php"; $client_query = "AND asset_client_id = $client_id"; $client_url = "client_id=$client_id&"; + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "asset_archived_at IS NOT NULL"; + } else { + $archived = 0; + $archive_query = "asset_archived_at IS NULL"; + } } else { require_once "includes/inc_client_overview_all.php"; $client_query = ''; $client_url = ''; + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "(client_archived_at IS NOT NULL OR asset_archived_at IS NOT NULL)"; + } else { + $archived = 0; + $archive_query = "(client_archived_at IS NULL AND asset_archived_at IS NULL)"; + } } // Perms @@ -71,7 +87,7 @@ $row = mysqli_fetch_assoc(mysqli_query($mysqli, " LEFT JOIN contacts ON asset_contact_id = contact_id LEFT JOIN locations ON asset_location_id = location_id LEFT JOIN asset_interfaces ON interface_asset_id = asset_id AND interface_primary = 1 - WHERE asset_$archive_query + WHERE $archive_query $access_permission_query $client_query ) AS filtered_assets; @@ -105,7 +121,7 @@ $sql = mysqli_query( LEFT JOIN contacts ON asset_contact_id = contact_id LEFT JOIN locations ON asset_location_id = location_id LEFT JOIN asset_interfaces ON interface_asset_id = asset_id AND interface_primary = 1 - WHERE asset_$archive_query + WHERE $archive_query AND (asset_name LIKE '%$q%' OR asset_description LIKE '%$q%' OR asset_type LIKE '%$q%' OR interface_ip LIKE '%$q%' OR interface_ipv6 LIKE '%$q%' OR asset_make LIKE '%$q%' OR asset_model LIKE '%$q%' OR asset_serial LIKE '%$q%' OR asset_os LIKE '%$q%' OR contact_name LIKE '%$q%' OR location_name LIKE '%$q%' OR client_name LIKE '%$q%') AND ($type_query) $access_permission_query diff --git a/certificates.php b/certificates.php index 7e7bfc04..97d80525 100644 --- a/certificates.php +++ b/certificates.php @@ -9,10 +9,26 @@ if (isset($_GET['client_id'])) { require_once "includes/inc_all_client.php"; $client_query = "AND certificate_client_id = $client_id"; $client_url = "client_id=$client_id&"; + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "certificate_archived_at IS NOT NULL"; + } else { + $archived = 0; + $archive_query = "certificate_archived_at IS NULL"; + } } else { require_once "includes/inc_client_overview_all.php"; $client_query = ''; $client_url = ''; + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "(client_archived_at IS NOT NULL OR certificate_archived_at IS NOT NULL)"; + } else { + $archived = 0; + $archive_query = "(client_archived_at IS NULL AND certificate_archived_at IS NULL)"; + } } // Perms @@ -32,7 +48,7 @@ if (!$client_url) { $sql = mysqli_query($mysqli, "SELECT SQL_CALC_FOUND_ROWS * FROM certificates LEFT JOIN clients ON client_id = certificate_client_id - WHERE certificate_archived_at IS NULL + WHERE $archive_query AND (certificate_name LIKE '%$q%' OR certificate_domain LIKE '%$q%' OR certificate_issued_by LIKE '%$q%' OR client_name LIKE '%$q%') $access_permission_query $client_query @@ -65,6 +81,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); +
@@ -109,6 +126,10 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
+ "> + Archived +
diff --git a/contacts.php b/contacts.php index 9da09fe4..65fbda07 100644 --- a/contacts.php +++ b/contacts.php @@ -9,10 +9,26 @@ if (isset($_GET['client_id'])) { require_once "includes/inc_all_client.php"; $client_query = "AND contact_client_id = $client_id"; $client_url = "client_id=$client_id&"; + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "contact_archived_at IS NOT NULL"; + } else { + $archived = 0; + $archive_query = "contact_archived_at IS NULL"; + } } else { require_once "includes/inc_client_overview_all.php"; $client_query = ''; $client_url = ''; + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "(client_archived_at IS NOT NULL OR contact_archived_at IS NOT NULL)"; + } else { + $archived = 0; + $archive_query = "(client_archived_at IS NULL AND contact_archived_at IS NULL)"; + } } // Tags Filter @@ -55,7 +71,7 @@ $sql = mysqli_query($mysqli, "SELECT SQL_CALC_FOUND_ROWS contacts.*, clients.*, LEFT JOIN users ON user_id = contact_user_id LEFT JOIN contact_tags ON contact_tags.contact_id = contacts.contact_id LEFT JOIN tags ON tags.tag_id = contact_tags.tag_id - WHERE contact_$archive_query + WHERE $archive_query $tag_query AND (contact_name LIKE '%$q%' OR contact_title LIKE '%$q%' OR location_name LIKE '%$q%' OR contact_email LIKE '%$q%' OR contact_department LIKE '%$q%' OR contact_phone LIKE '%$phone_query%' OR contact_extension LIKE '%$q%' OR contact_mobile LIKE '%$phone_query%' OR tag_name LIKE '%$q%' OR client_name LIKE '%$q%') $access_permission_query diff --git a/credentials.php b/credentials.php index ebad77b1..5a88e058 100644 --- a/credentials.php +++ b/credentials.php @@ -9,12 +9,30 @@ if (isset($_GET['client_id'])) { require_once "includes/inc_all_client.php"; $client_query = "AND credential_client_id = $client_id"; $client_url = "client_id=$client_id&"; + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "c.credential_archived_at IS NOT NULL"; + } else { + $archived = 0; + $archive_query = "c.credential_archived_at IS NULL"; + } + // Log when users load the Credentials page logAction("Credential", "View", "$session_name viewed the Credentials page for client", $client_id); + } else { require_once "includes/inc_client_overview_all.php"; $client_query = ''; $client_url = ''; + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "(client_archived_at IS NOT NULL OR c.credential_archived_at IS NOT NULL)"; + } else { + $archived = 0; + $archive_query = "(client_archived_at IS NULL AND c.credential_archived_at IS NULL)"; + } // Log when users load the Credentials page logAction("Credential", "View", "$session_name viewed the All Credentials page"); } @@ -68,7 +86,7 @@ $sql = mysqli_query( LEFT JOIN contacts ON contact_id = credential_contact_id LEFT JOIN assets ON asset_id = credential_asset_id $location_query_innerjoin - WHERE c.credential_$archive_query + WHERE $archive_query $tag_query AND (c.credential_name LIKE '%$q%' OR c.credential_description LIKE '%$q%' OR c.credential_uri LIKE '%$q%' OR tag_name LIKE '%$q%' OR client_name LIKE '%$q%') $location_query diff --git a/locations.php b/locations.php index dbdf2dc3..165245d2 100644 --- a/locations.php +++ b/locations.php @@ -9,6 +9,14 @@ if (isset($_GET['client_id'])) { require_once "includes/inc_all_client.php"; $client_query = "AND location_client_id = $client_id"; $client_url = "client_id=$client_id&"; + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "location_archived_at IS NOT NULL"; + } else { + $archived = 0; + $archive_query = "location_archived_at IS NULL"; + } } else { require_once "includes/inc_client_overview_all.php"; $client_query = ''; @@ -25,6 +33,14 @@ if (!$client_url) { $client_query = ''; $client = ''; } + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "(client_archived_at IS NOT NULL OR location_archived_at IS NOT NULL)"; + } else { + $archived = 0; + $archive_query = "(client_archived_at IS NULL AND location_archived_at IS NULL)"; + } } // Tags Filter @@ -45,7 +61,7 @@ $sql = mysqli_query( LEFT JOIN clients ON client_id = location_client_id LEFT JOIN location_tags ON location_tags.location_id = locations.location_id LEFT JOIN tags ON tags.tag_id = location_tags.tag_id - WHERE location_$archive_query + WHERE $archive_query $tag_query AND (location_name LIKE '%$q%' OR location_description LIKE '%$q%' OR location_address LIKE '%$q%' OR location_city LIKE '%$q%' OR location_state LIKE '%$q%' OR location_zip LIKE '%$q%' OR location_country LIKE '%$q%' OR location_phone LIKE '%$phone_query%' OR tag_name LIKE '%$q%' OR client_name LIKE '%$q%') $access_permission_query diff --git a/networks.php b/networks.php index 416e3f3b..96437c38 100644 --- a/networks.php +++ b/networks.php @@ -9,10 +9,26 @@ if (isset($_GET['client_id'])) { require_once "includes/inc_all_client.php"; $client_query = "AND network_client_id = $client_id"; $client_url = "client_id=$client_id&"; + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "network_archived_at IS NOT NULL"; + } else { + $archived = 0; + $archive_query = "network_archived_at IS NULL"; + } } else { require_once "includes/inc_client_overview_all.php"; $client_query = ''; $client_url = ''; + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "(client_archived_at IS NOT NULL OR network_archived_at IS NOT NULL)"; + } else { + $archived = 0; + $archive_query = "(client_archived_at IS NULL AND network_archived_at IS NULL)"; + } } // Perms @@ -45,7 +61,7 @@ $sql = mysqli_query( "SELECT SQL_CALC_FOUND_ROWS * FROM networks LEFT JOIN clients ON client_id = network_client_id LEFT JOIN locations ON location_id = network_location_id - WHERE network_$archive_query + WHERE $archive_query AND (network_name LIKE '%$q%' OR network_description LIKE '%$q%' OR network_vlan LIKE '%$q%' OR network LIKE '%$q%' OR network_gateway LIKE '%$q%' OR network_subnet LIKE '%$q%' OR network_primary_dns LIKE '%$q%' OR network_secondary_dns LIKE '%$q%' OR network_dhcp_range LIKE '%$q%' OR location_name LIKE '%$q%' OR client_name LIKE '%$q%') $access_permission_query $location_query @@ -80,6 +96,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); +
@@ -150,6 +167,10 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
+ "> + Archived +
diff --git a/post/user/certificate.php b/post/user/certificate.php index f2960904..22292c1b 100644 --- a/post/user/certificate.php +++ b/post/user/certificate.php @@ -132,6 +132,29 @@ if (isset($_GET['archive_certificate'])) { } +if (isset($_GET['unarchive_certificate'])) { + + enforceUserPermission('module_support', 2); + + $certificate_id = intval($_GET['unarchive_certificate']); + + // Get Certificate Name and Client ID for logging and alert message + $sql = mysqli_query($mysqli,"SELECT certificate_name, certificate_client_id FROM certificates WHERE certificate_id = $certificate_id"); + $row = mysqli_fetch_array($sql); + $certificate_name = sanitizeInput($row['certificate_name']); + $client_id = intval($row['certificate_client_id']); + + mysqli_query($mysqli,"UPDATE certificates SET certificate_archived_at = NULL WHERE certificate_id = $certificate_id"); + + // logging + logAction("Certificate", "Unarchive", "$session_name restored certificate $certificate_name", $client_id, $certificate_id); + + $_SESSION['alert_message'] = "Certificate $certificate_name restored"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); + +} + if (isset($_GET['delete_certificate'])) { enforceUserPermission('module_support', 3); diff --git a/post/user/network.php b/post/user/network.php index 661753a3..b4ba0c19 100644 --- a/post/user/network.php +++ b/post/user/network.php @@ -67,6 +67,29 @@ if (isset($_GET['archive_network'])) { } +if (isset($_GET['unarchive_network'])) { + + enforceUserPermission('module_support', 2); + + $network_id = intval($_GET['unarchive_network']); + + // Get Network Name and Client ID for logging and alert message + $sql = mysqli_query($mysqli,"SELECT network_name, network_client_id FROM networks WHERE network_id = $network_id"); + $row = mysqli_fetch_array($sql); + $network_name = sanitizeInput($row['network_name']); + $client_id = intval($row['network_client_id']); + + mysqli_query($mysqli,"UPDATE networks SET network_archived_at = NULL WHERE network_id = $network_id"); + + // logging + logAction("Network", "Unarchive", "$session_name restored contact $contact_name", $client_id, $network_id); + + $_SESSION['alert_message'] = "Network $network_name restored"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); + +} + if (isset($_GET['delete_network'])) { enforceUserPermission('module_support', 3); diff --git a/software.php b/software.php index 56d6d57c..653d99e7 100644 --- a/software.php +++ b/software.php @@ -9,10 +9,26 @@ if (isset($_GET['client_id'])) { require_once "includes/inc_all_client.php"; $client_query = "AND software_client_id = $client_id"; $client_url = "client_id=$client_id&"; + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "software_archived_at IS NOT NULL"; + } else { + $archived = 0; + $archive_query = "software_archived_at IS NULL"; + } } else { require_once "includes/inc_client_overview_all.php"; $client_query = ''; $client_url = ''; + // Overide Filter Header Archived + if (isset($_GET['archived']) && $_GET['archived'] == 1) { + $archived = 1; + $archive_query = "(client_archived_at IS NOT NULL OR software_archived_at IS NOT NULL)"; + } else { + $archived = 0; + $archive_query = "(client_archived_at IS NULL AND software_archived_at IS NULL)"; + } } // Perms @@ -36,7 +52,7 @@ $sql = mysqli_query( LEFT JOIN clients ON client_id = software_client_id LEFT JOIN vendors ON vendor_id = software_vendor_id WHERE software_template = 0 - AND software_$archive_query + AND $archive_query AND (software_name LIKE '%$q%' OR software_type LIKE '%$q%' OR software_key LIKE '%$q%' OR client_name LIKE '%$q%') $access_permission_query $client_query From 73da203dbb1c3021fcfcf34b6a8d10592b397766 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Sat, 31 May 2025 17:47:08 -0400 Subject: [PATCH 3/5] Added Cards for Account Balance, Recurring Monthly for Billing Contacts and Domains Expiring for Technical Contacts to Client Portal --- client/index.php | 228 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) diff --git a/client/index.php b/client/index.php index 856a36bf..219f8ed2 100644 --- a/client/index.php +++ b/client/index.php @@ -8,7 +8,235 @@ header("Content-Security-Policy: default-src 'self'"); require_once "includes/inc_all.php"; + +// Billing Card Queries + //Add up all the payments for the invoice and get the total amount paid to the invoice +$sql_invoice_amounts = mysqli_query($mysqli, "SELECT SUM(invoice_amount) AS invoice_amounts FROM invoices WHERE invoice_client_id = $session_client_id AND invoice_status NOT LIKE 'Draft' AND invoice_status NOT LIKE 'Cancelled'"); +$row = mysqli_fetch_array($sql_invoice_amounts); + +$invoice_amounts = floatval($row['invoice_amounts']); + +$sql_amount_paid = mysqli_query($mysqli, "SELECT SUM(payment_amount) AS amount_paid FROM payments, invoices WHERE payment_invoice_id = invoice_id AND invoice_client_id = $session_client_id"); +$row = mysqli_fetch_array($sql_amount_paid); + +$amount_paid = floatval($row['amount_paid']); + +$balance = $invoice_amounts - $amount_paid; + +//Get Monthly Recurring Total +$sql_recurring_monthly_total = mysqli_query($mysqli, "SELECT SUM(recurring_invoice_amount) AS recurring_monthly_total FROM recurring_invoices WHERE recurring_invoice_status = 1 AND recurring_invoice_frequency = 'month' AND recurring_invoice_client_id = $session_client_id"); +$row = mysqli_fetch_array($sql_recurring_monthly_total); + +$recurring_monthly_total = floatval($row['recurring_monthly_total']); + +//Get Yearly Recurring Total +$sql_recurring_yearly_total = mysqli_query($mysqli, "SELECT SUM(recurring_invoice_amount) AS recurring_yearly_total FROM recurring_invoices WHERE recurring_invoice_status = 1 AND recurring_invoice_frequency = 'year' AND recurring_invoice_client_id = $session_client_id"); +$row = mysqli_fetch_array($sql_recurring_yearly_total); + +$recurring_yearly_total = floatval($row['recurring_yearly_total']) / 12; + +$recurring_monthly = $recurring_monthly_total + $recurring_yearly_total; + +// Technical Card Queries +// 8 - 45 Day Warning + +// Get Domains Expiring +$sql_domains_expiring = mysqli_query( + $mysqli, + "SELECT * FROM domains + WHERE domain_client_id = $session_client_id + AND domain_expire IS NOT NULL + AND domain_archived_at IS NULL + AND domain_expire > CURRENT_DATE + AND domain_expire < CURRENT_DATE + INTERVAL 45 DAY + ORDER BY domain_expire ASC" +); + +// Get Certificates Expiring +$sql_certificates_expiring = mysqli_query( + $mysqli, + "SELECT * FROM certificates + WHERE certificate_client_id = $session_client_id + AND certificate_expire IS NOT NULL + AND certificate_archived_at IS NULL + AND certificate_expire > CURRENT_DATE + AND certificate_expire < CURRENT_DATE + INTERVAL 45 DAY + ORDER BY certificate_expire ASC" +); + +// Get Licenses Expiring +$sql_licenses_expiring = mysqli_query( + $mysqli, + "SELECT * FROM software + WHERE software_client_id = $session_client_id + AND software_expire IS NOT NULL + AND software_archived_at IS NULL + AND software_expire > CURRENT_DATE + AND software_expire < CURRENT_DATE + INTERVAL 45 DAY + ORDER BY software_expire ASC" +); + +// Get Asset Warranties Expiring +$sql_asset_warranties_expiring = mysqli_query( + $mysqli, + "SELECT * FROM assets + WHERE asset_client_id = $session_client_id + AND asset_warranty_expire IS NOT NULL + AND asset_archived_at IS NULL + AND asset_warranty_expire > CURRENT_DATE + AND asset_warranty_expire < CURRENT_DATE + INTERVAL 45 DAY + ORDER BY asset_warranty_expire ASC" +); + +// Get Assets Retiring 7 Year +$sql_asset_retire = mysqli_query( + $mysqli, + "SELECT * FROM assets + WHERE asset_client_id = $session_client_id + AND asset_install_date IS NOT NULL + AND asset_archived_at IS NULL + AND asset_install_date + INTERVAL 7 YEAR > CURRENT_DATE + AND asset_install_date + INTERVAL 7 YEAR <= CURRENT_DATE + INTERVAL 45 DAY + ORDER BY asset_install_date ASC" +); + +/* + * EXPIRED ITEMS + */ + +// Get Domains Expired +$sql_domains_expired = mysqli_query( + $mysqli, + "SELECT * FROM domains + WHERE domain_client_id = $session_client_id + AND domain_expire IS NOT NULL + AND domain_archived_at IS NULL + AND domain_expire < CURRENT_DATE + ORDER BY domain_expire ASC" +); + +// Get Certificates Expired +$sql_certificates_expired = mysqli_query( + $mysqli, + "SELECT * FROM certificates + WHERE certificate_client_id = $session_client_id + AND certificate_expire IS NOT NULL + AND certificate_archived_at IS NULL + AND certificate_expire < CURRENT_DATE + ORDER BY certificate_expire ASC" +); + +// Get Licenses Expired +$sql_licenses_expired = mysqli_query( + $mysqli, + "SELECT * FROM software + WHERE software_client_id = $session_client_id + AND software_expire IS NOT NULL + AND software_archived_at IS NULL + AND software_expire < CURRENT_DATE + ORDER BY software_expire ASC" +); + +// Get Asset Warranties Expired +$sql_asset_warranties_expired = mysqli_query( + $mysqli, + "SELECT * FROM assets + WHERE asset_client_id = $session_client_id + AND asset_warranty_expire IS NOT NULL + AND asset_archived_at IS NULL + AND asset_warranty_expire < CURRENT_DATE + ORDER BY asset_warranty_expire ASC" +); + +// Get Retired Assets +$sql_asset_retired = mysqli_query( + $mysqli, + "SELECT * FROM assets + WHERE asset_client_id = $session_client_id + AND asset_install_date IS NOT NULL + AND asset_archived_at IS NULL + AND asset_install_date + INTERVAL 7 YEAR < CURRENT_DATE -- Assets retired (installed more than 7 years ago) + ORDER BY asset_install_date ASC" +); + ?> + + + +
+ + 0) { ?> +
+
+
+

Account Balance

+
+
+
+
+
+
+ + + 0) { ?> +
+
+
+

Recurring Monthly

+
+
+
+
+
+
+ + +
+ + + + + +
+ + 0) { ?> +
+
+
+

Domains Expiring

+
+
+ +

+ + Domain: + -- () +

+ +
+
+
+ + +
+ + + From b777f8024998eaf7eead4d8af091bdcd9b36f55a Mon Sep 17 00:00:00 2001 From: johnnyq Date: Mon, 2 Jun 2025 14:19:04 -0400 Subject: [PATCH 4/5] Increment Minor Version and update Changelog --- CHANGELOG.md | 10 ++++++++++ includes/app_version.php | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38642ef2..f48a1111 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ This file documents all notable changes made to ITFlow. +## [25.05.1] + +### Added / Changed +- Added Domain Expiring Card to Client Portal Dashboard for Primary and Technical Users. +- Added Balance and Monthly Recurring Amount to Client Portal Dahboard for Primary and Technical Users. + +### Fixed +- Add Payment not showing in Invoice. + + ## [25.05] ### Added / Changed diff --git a/includes/app_version.php b/includes/app_version.php index 3cbd4bb9..036a39ee 100644 --- a/includes/app_version.php +++ b/includes/app_version.php @@ -5,4 +5,4 @@ * Update this file each time we merge develop into master. Format is YY.MM (add a .v if there is more than one release a month. */ -DEFINE("APP_VERSION", "25.05"); +DEFINE("APP_VERSION", "25.05.1"); From 84e8a459c88612fe43a8857a6751e3e6b9a65461 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Mon, 2 Jun 2025 14:24:52 -0400 Subject: [PATCH 5/5] update Changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f48a1111..06a75c8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,11 @@ This file documents all notable changes made to ITFlow. ### Added / Changed - Added Domain Expiring Card to Client Portal Dashboard for Primary and Technical Users. - Added Balance and Monthly Recurring Amount to Client Portal Dahboard for Primary and Technical Users. +- Added Archive Searching to network and certificates also added unarchive capabilities to them as well. ### Fixed - Add Payment not showing in Invoice. +- Updated Client Overview Entities to not show archived client's Entities even though the entity may not be archived. ## [25.05]