Remove non-billable data from statistics

This commit is contained in:
2026-08-05 21:17:47 +02:00
parent 8fef5980db
commit 971d493015
4 changed files with 28 additions and 75 deletions
+7 -5
View File
@@ -768,7 +768,7 @@ async function getStatisticsOverview(period: ParsedPeriod, userId: string) {
`
${baseCte}
SELECT
COUNT(DISTINCT ticket_id)::int AS tickets,
COUNT(DISTINCT ticket_id) FILTER (WHERE billing_status = 'billed')::int AS tickets,
COUNT(*)::int AS sessions,
COALESCE(SUM(rounded_minutes) FILTER (WHERE billing_status = 'billed'), 0)::int AS minutes,
COALESCE(SUM(rounded_minutes) FILTER (WHERE billing_status = 'billed'), 0)::int AS billed_minutes,
@@ -832,8 +832,8 @@ async function getStatisticsOverview(period: ParsedPeriod, userId: string) {
SELECT
organization_id::text AS organization_id,
organization_name,
COUNT(DISTINCT ticket_id)::int AS tickets,
SUM(session_count)::int AS sessions,
COUNT(DISTINCT ticket_id) FILTER (WHERE total_minutes > 0)::int AS tickets,
COALESCE(SUM(billed_sessions), 0)::int AS sessions,
COALESCE(SUM(total_minutes), 0)::int AS total_minutes,
COALESCE(SUM(COALESCE(billed_minutes, 0)), 0)::int AS billed_minutes,
COALESCE(SUM(COALESCE(non_billable_minutes, 0)), 0)::int AS non_billable_minutes,
@@ -844,6 +844,7 @@ async function getStatisticsOverview(period: ParsedPeriod, userId: string) {
COALESCE(SUM(crm_billed_minutes), 0)::int AS crm_billed_minutes
FROM session_group_with_crm
GROUP BY organization_id, organization_name
HAVING COALESCE(SUM(total_minutes), 0) > 0
ORDER BY total_minutes DESC, organization_name ASC;
`,
[period.startIso, period.endIso, userId]
@@ -853,8 +854,8 @@ async function getStatisticsOverview(period: ParsedPeriod, userId: string) {
${baseCte}
SELECT
work_type,
COUNT(DISTINCT ticket_id)::int AS tickets,
SUM(session_count)::int AS sessions,
COUNT(DISTINCT ticket_id) FILTER (WHERE total_minutes > 0)::int AS tickets,
COALESCE(SUM(billed_sessions), 0)::int AS sessions,
COALESCE(SUM(total_minutes), 0)::int AS total_minutes,
COALESCE(SUM(COALESCE(billed_minutes, 0)), 0)::int AS billed_minutes,
COALESCE(SUM(COALESCE(non_billable_minutes, 0)), 0)::int AS non_billable_minutes,
@@ -865,6 +866,7 @@ async function getStatisticsOverview(period: ParsedPeriod, userId: string) {
COALESCE(SUM(crm_billed_minutes), 0)::int AS crm_billed_minutes
FROM session_group_with_crm
GROUP BY work_type
HAVING COALESCE(SUM(total_minutes), 0) > 0
ORDER BY total_minutes DESC, work_type ASC;
`,
[period.startIso, period.endIso, userId]