@@ -109,6 +126,10 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
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) { ?>
+
+
+
+ 0) { ?>
+
+
+
+
+
+
+
+
+
+
+
+ 0) { ?>
+
+
+
+
+
+
+
+ Domain:
+ -- ()
+
+
+
+
+
+
+
+
+
+
+
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/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");
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'])) {
-