Client Overview - Enhance Recently Updated section

- Move the asset warranty expiring and stale ticket queries out of inc_all_client.php and into client_overview.php, there is no need to load this data on every page load - just for the overview
- Show recently updated documents (in addition to contacts/vendors)
- General tidy
This commit is contained in:
Marcus Hill
2023-06-03 21:58:34 +01:00
parent acbc935519
commit d86b5d8992
2 changed files with 329 additions and 276 deletions
+100 -15
View File
@@ -2,19 +2,69 @@
require_once("inc_all_client.php");
$sql_contacts = mysqli_query($mysqli, "SELECT * FROM contacts WHERE contact_client_id = $client_id AND contact_archived_at IS NULL ORDER BY contact_updated_at, contact_created_at DESC LIMIT 5");
$sql_important_contacts = mysqli_query(
$mysqli,
"SELECT * FROM contacts
WHERE contact_client_id = $client_id
AND (contact_important = 1 OR contact_billing = 1 OR contact_technical = 1 OR contact_id = $primary_contact)
AND contact_archived_at IS NULL ORDER BY contact_name DESC"
);
$sql_important_contacts = mysqli_query($mysqli, "SELECT * FROM contacts WHERE contact_client_id = $client_id AND (contact_important = 1 OR contact_billing = 1 OR contact_technical = 1 OR contact_id = $primary_contact) AND contact_archived_at IS NULL ORDER BY contact_name DESC");
/*
* RECENTLY UPDATED ITEMS
*/
$sql_vendors = mysqli_query($mysqli, "SELECT * FROM vendors WHERE vendor_client_id = $client_id AND vendor_template = 0 AND vendor_archived_at IS NULL ORDER BY vendor_updated_at DESC LIMIT 5");
$sql_recent_contacts = mysqli_query(
$mysqli,
"SELECT * FROM contacts
WHERE contact_client_id = $client_id
AND contact_archived_at IS NULL
ORDER BY contact_updated_at, contact_created_at DESC LIMIT 3"
);
$sql_documents = mysqli_query($mysqli, "SELECT * FROM documents WHERE document_client_id = $client_id AND document_archived_at IS NULL ORDER BY document_updated_at DESC LIMIT 5");
$sql_recent_vendors = mysqli_query(
$mysqli,
"SELECT * FROM vendors
WHERE vendor_client_id = $client_id
AND vendor_template = 0 AND vendor_archived_at IS NULL
ORDER BY vendor_updated_at DESC LIMIT 2"
);
$sql_tickets = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_client_id = $client_id ORDER BY ticket_updated_at DESC LIMIT 5");
$sql_recent_documents = mysqli_query(
$mysqli,
"SELECT * FROM documents
WHERE document_client_id = $client_id
AND document_archived_at IS NULL
ORDER BY document_updated_at DESC LIMIT 2"
);
$sql_logins = mysqli_query($mysqli, "SELECT * FROM logins WHERE login_client_id = $client_id ORDER BY login_updated_at DESC LIMIT 5");
$sql_recent_tickets = mysqli_query(
$mysqli,
"SELECT * FROM tickets
WHERE ticket_client_id = $client_id
ORDER BY ticket_updated_at DESC LIMIT 5"
);
// Expiring Items
$sql_recent_logins = mysqli_query(
$mysqli,
"SELECT * FROM logins
WHERE login_client_id = $client_id
ORDER BY login_updated_at DESC LIMIT 5"
);
/*
* EXPIRING/ACTION ITEMS
*/
// Stale Tickets
$sql_stale_tickets = mysqli_query(
$mysqli,
"SELECT * FROM tickets
WHERE ticket_client_id = $client_id
AND ticket_created_at < CURRENT_DATE - INTERVAL 14 DAY
AND ticket_status != 'Closed'
ORDER BY ticket_created_at DESC"
);
// Get Domains Expiring
$sql_domains_expiring = mysqli_query(
@@ -27,6 +77,28 @@ $sql_domains_expiring = mysqli_query(
ORDER BY domain_expire DESC"
);
// Get Asset Warranties Expiring
$sql_asset_warranties_expiring = mysqli_query(
$mysqli,
"SELECT * FROM assets
WHERE asset_client_id = $client_id
AND asset_warranty_expire IS NOT NULL
AND asset_archived_at IS NULL
AND asset_warranty_expire < CURRENT_DATE + INTERVAL 90 DAY
ORDER BY asset_warranty_expire DESC"
);
// Get Assets Retiring
$sql_asset_retire = mysqli_query(
$mysqli,
"SELECT * FROM assets
WHERE asset_client_id = $client_id
AND asset_install_date IS NOT NULL
AND asset_archived_at IS NULL
AND asset_install_date + INTERVAL 7 YEAR < CURRENT_DATE + INTERVAL 90 DAY
ORDER BY asset_install_date DESC"
);
?>
<div class="row">
@@ -50,7 +122,6 @@ $sql_domains_expiring = mysqli_query(
<div class="col-md-4">
<div class="card card-dark mb-3">
<div class="card-header">
<h5 class="card-title"><i class="fa fa-fw fa-users mr-2"></i>Important Contacts</h5>
@@ -96,7 +167,7 @@ $sql_domains_expiring = mysqli_query(
<?php } ?>
<?php if (mysqli_num_rows($sql_contacts) > 0 || mysqli_num_rows($sql_vendors) > 0) { ?>
<?php if (mysqli_num_rows($sql_recent_contacts) > 0 || mysqli_num_rows($sql_recent_vendors) > 0 || mysqli_num_rows($sql_recent_documents) > 0) { ?>
<div class="col-md-3">
<div class="card card-dark mb-3">
@@ -105,9 +176,9 @@ $sql_domains_expiring = mysqli_query(
</div>
<div class="card-body">
<!-- Contacts -->
<?php
while ($row = mysqli_fetch_array($sql_contacts)) {
while ($row = mysqli_fetch_array($sql_recent_contacts)) {
$contact_id = intval($row['contact_id']);
$contact_name = nullable_htmlentities($row['contact_name']);
$contact_updated_at = nullable_htmlentities($row['contact_updated_at']);
@@ -121,9 +192,9 @@ $sql_domains_expiring = mysqli_query(
}
?>
<!-- Vendors -->
<?php
while ($row = mysqli_fetch_array($sql_vendors)) {
while ($row = mysqli_fetch_array($sql_recent_vendors)) {
$vendor_id = intval($row['vendor_id']);
$vendor_name = nullable_htmlentities($row['vendor_name']);
$vendor_updated_at = nullable_htmlentities($row['vendor_updated_at']);
@@ -137,6 +208,20 @@ $sql_domains_expiring = mysqli_query(
}
?>
<!-- Docs -->
<?php
while ($row = mysqli_fetch_array($sql_recent_documents)) {
$document_id = intval($row['document_id']);
$document_name = nullable_htmlentities($row['document_name']);
?>
<p class="mb-1">
<i class="fas fa-fw fa-file-alt text-secondary mr-1"></i>
<a href="client_document_details.php?client_id=<?php echo $client_id; ?>&document_id=<?php echo $document_id; ?>"><?php echo $document_name; ?></a></td>
</p>
<?php
}
?>
</div>
</div>
</div>
@@ -216,7 +301,7 @@ $sql_domains_expiring = mysqli_query(
<?php } ?>
<?php if (mysqli_num_rows($sql_tickets_stale) > 0) { ?>
<?php if (mysqli_num_rows($sql_stale_tickets) > 0) { ?>
<!-- Stale Tickets -->
@@ -232,7 +317,7 @@ $sql_domains_expiring = mysqli_query(
<tbody>
<?php
while ($row = mysqli_fetch_array($sql_tickets_stale)) {
while ($row = mysqli_fetch_array($sql_stale_tickets)) {
$ticket_id = intval($row['ticket_id']);
$ticket_prefix = nullable_htmlentities($row['ticket_prefix']);
$ticket_number = intval($row['ticket_number']);
-32
View File
@@ -213,38 +213,6 @@ if (isset($_GET['client_id'])) {
));
$num_certs_expiring = intval($row['num']);
// Get Asset Warranties Expiring
$sql_asset_warranties_expiring = mysqli_query(
$mysqli,
"SELECT * FROM assets
WHERE asset_client_id = $client_id
AND asset_warranty_expire IS NOT NULL
AND asset_archived_at IS NULL
AND asset_warranty_expire < CURRENT_DATE + INTERVAL 90 DAY
ORDER BY asset_warranty_expire DESC"
);
// Get Assets Retiring
$sql_asset_retire = mysqli_query(
$mysqli,
"SELECT * FROM assets
WHERE asset_client_id = $client_id
AND asset_install_date IS NOT NULL
AND asset_archived_at IS NULL
AND asset_install_date + INTERVAL 7 YEAR < CURRENT_DATE + INTERVAL 90 DAY
ORDER BY asset_install_date DESC"
);
// Get Stale Tickets
$sql_tickets_stale = mysqli_query(
$mysqli,
"SELECT * FROM tickets
WHERE ticket_client_id = $client_id
AND ticket_created_at < CURRENT_DATE - INTERVAL 14 DAY
AND ticket_status != 'Closed'
ORDER BY ticket_created_at DESC"
);
}
}