Skip to content

Commit 662978c

Browse files
authored
Fix the SQL query for the backlog graph (#290)
* Fix backlog sql query * Fix backlog sql query * Update changelog * Remove useless distinct * Update changelog
1 parent 4515c53 commit 662978c

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](http://keepachangelog.com/)
66
and this project adheres to [Semantic Versioning](http://semver.org/).
77

8+
## [UNRELEASED] -
9+
10+
### Fixed
11+
12+
- Fix the SQL query for the backlog graph (#290)
13+
814
## [1.8.8] - 2025-08-07
915

1016
### Fixed

inc/baseclass.class.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ public function __construct($config = [])
149149
"DATE_FORMAT(`date` - INTERVAL (WEEKDAY(`date`)) DAY, '{$this->period_datetime}') as period_l",
150150
);
151151
$this->criteria_list_date2 = new QueryExpression(
152-
"DATE_FORMAT(`date` - INTERVAL (WEEKDAY(`solvedate`)) DAY, '{$this->period_datetime}') as period_l",
152+
"DATE_FORMAT(`solvedate` - INTERVAL (WEEKDAY(`solvedate`)) DAY, '{$this->period_datetime}') as period_l",
153153
);
154154
break;
155155
case 'month':

inc/helpdeskplus.class.php

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -110,31 +110,32 @@ public function __construct($config = [])
110110
],
111111
];
112112
$this->criteria_join_gt = [
113-
Group_Ticket::getTable() => [
113+
Group_Ticket::getTable() . ' AS gt' => [
114114
'FKEY' => [
115-
Group_Ticket::getTable() . '.tickets_id',
115+
'gt.tickets_id',
116116
Ticket::getTable() . '.id',
117117
[
118118
'AND' => [
119-
Group_Ticket::getTable() . '.type' => Group_Ticket::ASSIGN,
119+
'gt.type' => Group_Ticket::ASSIGN,
120120
],
121121
],
122122
],
123123
],
124124
];
125125
$this->criteria_join_gtr = [
126-
Group_Ticket::getTable() => [
126+
Group_Ticket::getTable() . ' AS gtr' => [
127127
'FKEY' => [
128-
Group_Ticket::getTable() . '.tickets_id',
128+
'gtr.tickets_id',
129129
Ticket::getTable() . '.id',
130130
[
131131
'AND' => [
132-
Group_Ticket::getTable() . '.type' => Group_Ticket::REQUESTER,
132+
'gtr.type' => Group_Ticket::REQUESTER,
133133
],
134134
],
135135
],
136136
],
137137
];
138+
138139
$this->criteria_select_sla = new QueryExpression(
139140
"CASE WHEN glpi_slas.definition_time = 'day'
140141
AND glpi_tickets.solve_delay_stat <= glpi_slas.number_time * 86400
@@ -346,16 +347,18 @@ public function reportGlineBacklogs($config = [])
346347
'SELECT' => [
347348
new QueryExpression("DATE_FORMAT(list_date.period_l, '{$this->period_sort}') as period"),
348349
new QueryExpression("DATE_FORMAT(list_date.period_l, '{$this->period_label}') as period_name"),
350+
new QueryExpression("COUNT(DISTINCT " . Ticket::getTable() . ".id) as nb"),
349351
],
350-
'COUNT' => 'nb',
351352
'FROM' => new QuerySubQuery($list_date_table, 'list_date'),
352353
'LEFT JOIN' => array_merge(
353354
[
354355
Ticket::getTable() => [
355-
'OR' => [
356-
Ticket::getTable() . '.solvedate > list_date.period_l',
357-
new QueryExpression(Ticket::getTable() . '.solvedate IS NULL'),
358-
Ticket::getTable() . '.date' => ['<=', 'list_date.period_l'],
356+
'AND' => [
357+
Ticket::getTable() . '.date' => ['<=', new QueryExpression('list_date.period_l')],
358+
'OR' => [
359+
Ticket::getTable() . '.solvedate' => ['>', new QueryExpression('list_date.period_l')],
360+
new QueryExpression(Ticket::getTable() . '.solvedate IS NULL'),
361+
],
359362
],
360363
],
361364
],

0 commit comments

Comments
 (0)