This commit is contained in:
@@ -41,52 +41,48 @@ if (currentOrg) {
|
||||
const weekAgo = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000);
|
||||
const monthAgo = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000);
|
||||
|
||||
const weekEntries = await db.select()
|
||||
const weekStats = await db.select({
|
||||
totalDuration: sql<number>`sum(${timeEntries.endTime} - ${timeEntries.startTime})`
|
||||
})
|
||||
.from(timeEntries)
|
||||
.where(and(
|
||||
eq(timeEntries.organizationId, currentOrg.organizationId),
|
||||
gte(timeEntries.startTime, weekAgo)
|
||||
gte(timeEntries.startTime, weekAgo),
|
||||
sql`${timeEntries.endTime} IS NOT NULL`
|
||||
))
|
||||
.all();
|
||||
.get();
|
||||
|
||||
stats.totalTimeThisWeek = weekEntries.reduce((sum, e) => {
|
||||
if (e.endTime) {
|
||||
return sum + (e.endTime.getTime() - e.startTime.getTime());
|
||||
}
|
||||
return sum;
|
||||
}, 0);
|
||||
stats.totalTimeThisWeek = weekStats?.totalDuration || 0;
|
||||
|
||||
const monthEntries = await db.select()
|
||||
const monthStats = await db.select({
|
||||
totalDuration: sql<number>`sum(${timeEntries.endTime} - ${timeEntries.startTime})`
|
||||
})
|
||||
.from(timeEntries)
|
||||
.where(and(
|
||||
eq(timeEntries.organizationId, currentOrg.organizationId),
|
||||
gte(timeEntries.startTime, monthAgo)
|
||||
gte(timeEntries.startTime, monthAgo),
|
||||
sql`${timeEntries.endTime} IS NOT NULL`
|
||||
))
|
||||
.all();
|
||||
.get();
|
||||
|
||||
stats.totalTimeThisMonth = monthEntries.reduce((sum, e) => {
|
||||
if (e.endTime) {
|
||||
return sum + (e.endTime.getTime() - e.startTime.getTime());
|
||||
}
|
||||
return sum;
|
||||
}, 0);
|
||||
stats.totalTimeThisMonth = monthStats?.totalDuration || 0;
|
||||
|
||||
const activeCount = await db.select()
|
||||
const activeCount = await db.select({ count: sql<number>`count(*)` })
|
||||
.from(timeEntries)
|
||||
.where(and(
|
||||
eq(timeEntries.organizationId, currentOrg.organizationId),
|
||||
isNull(timeEntries.endTime)
|
||||
))
|
||||
.all();
|
||||
.get();
|
||||
|
||||
stats.activeTimers = activeCount.length;
|
||||
stats.activeTimers = activeCount?.count || 0;
|
||||
|
||||
const clientCount = await db.select()
|
||||
const clientCount = await db.select({ count: sql<number>`count(*)` })
|
||||
.from(clients)
|
||||
.where(eq(clients.organizationId, currentOrg.organizationId))
|
||||
.all();
|
||||
.get();
|
||||
|
||||
stats.totalClients = clientCount.length;
|
||||
stats.totalClients = clientCount?.count || 0;
|
||||
|
||||
stats.recentEntries = await db.select({
|
||||
entry: timeEntries,
|
||||
|
||||
Reference in New Issue
Block a user