forked from fa/breadcrumb-the-shire
feat(helpdesk): add trend delta indicator per agent in team dashboard
Shows a small arrow next to the ticket count in each agent card header: ↑3 (orange) = received 3 more than resolved → backlog growing ↓2 (green) = resolved 2 more than received → backlog shrinking Hidden when delta is 0 (stable). Delta is computed from received_in_period (tickets created in the selected period assigned to this agent) minus resolved_in_period. No snapshot storage needed — derived from existing ticket data. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1621,6 +1621,7 @@ class DebitorDetailService
|
||||
'critical_tickets' => 0,
|
||||
'age_hours_sum' => 0,
|
||||
'resolved_in_period' => 0,
|
||||
'received_in_period' => 0,
|
||||
'open_ticket_details' => [],
|
||||
'resolved_customers' => [],
|
||||
'resolved_categories' => [],
|
||||
@@ -1631,6 +1632,9 @@ class DebitorDetailService
|
||||
|
||||
if ($isClosed) {
|
||||
$createdTs = self::parseIsoToTimestamp((string) ($ticket['Created_On'] ?? ''));
|
||||
if ($createdTs !== null && $createdTs >= $periodStart) {
|
||||
$agents[$normalizedUser]['received_in_period']++;
|
||||
}
|
||||
if ($activityTs !== null && $activityTs >= $periodStart) {
|
||||
$agents[$normalizedUser]['resolved_in_period']++;
|
||||
$globalResolved++;
|
||||
@@ -1659,6 +1663,11 @@ class DebitorDetailService
|
||||
$agents[$normalizedUser]['open_tickets']++;
|
||||
$globalOpen++;
|
||||
|
||||
$createdTs = self::parseIsoToTimestamp((string) ($ticket['Created_On'] ?? ''));
|
||||
if ($createdTs !== null && $createdTs >= $periodStart) {
|
||||
$agents[$normalizedUser]['received_in_period']++;
|
||||
}
|
||||
|
||||
if ($rawUser === '') {
|
||||
$globalUnassigned++;
|
||||
}
|
||||
@@ -1733,6 +1742,8 @@ class DebitorDetailService
|
||||
'critical_tickets' => $agent['critical_tickets'],
|
||||
'avg_age_hours' => $avgAge,
|
||||
'resolved_in_period' => $agent['resolved_in_period'],
|
||||
'received_in_period' => $agent['received_in_period'],
|
||||
'trend_delta' => $agent['received_in_period'] - $agent['resolved_in_period'],
|
||||
'open_ticket_details' => $details,
|
||||
'performance' => [
|
||||
'top_customers' => array_map(
|
||||
|
||||
Reference in New Issue
Block a user