made client data browsable with dropdown and version diffs
This commit is contained in:
@ -12,27 +12,24 @@ function qdb_analytics_submissions_by_day(PDO $pdo, array $tokenRec, int $days =
|
||||
$days = max(1, min(90, $days));
|
||||
[$rbacClause, $rbacParams] = rbac_client_filter($tokenRec, 'cl');
|
||||
|
||||
$today = strtotime('today');
|
||||
$startTs = $today - ($days - 1) * 86400;
|
||||
$startTs = strtotime('today', time()) - ($days - 1) * 86400;
|
||||
|
||||
$stmt = $pdo->prepare(
|
||||
"SELECT strftime('%Y-%m-%d', qs.submittedAt, 'unixepoch') AS d, COUNT(*) AS cnt
|
||||
"SELECT qs.submittedAt
|
||||
FROM questionnaire_submission qs
|
||||
INNER JOIN client cl ON cl.clientCode = qs.clientCode
|
||||
WHERE $rbacClause AND qs.submittedAt >= :start
|
||||
GROUP BY d
|
||||
ORDER BY d"
|
||||
WHERE $rbacClause AND qs.submittedAt >= :start"
|
||||
);
|
||||
$stmt->execute(array_merge($rbacParams, [':start' => $startTs]));
|
||||
$byDate = [];
|
||||
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
|
||||
$byDate[$row['d']] = (int)$row['cnt'];
|
||||
foreach ($stmt->fetchAll(PDO::FETCH_COLUMN) as $submittedAt) {
|
||||
$key = date('Y-m-d', (int)$submittedAt);
|
||||
$byDate[$key] = ($byDate[$key] ?? 0) + 1;
|
||||
}
|
||||
|
||||
$out = [];
|
||||
for ($i = 0; $i < $days; $i++) {
|
||||
$ts = $startTs + $i * 86400;
|
||||
$key = date('Y-m-d', $ts);
|
||||
$key = date('Y-m-d', $startTs + $i * 86400);
|
||||
$out[] = ['date' => $key, 'count' => $byDate[$key] ?? 0];
|
||||
}
|
||||
return $out;
|
||||
|
||||
Reference in New Issue
Block a user