Hide non-billable values in analysis

This commit is contained in:
2026-08-05 22:35:49 +02:00
parent 7f71c23232
commit ccb859ad49
+2 -9
View File
@@ -385,7 +385,6 @@ export function AnalysisPage({ onNavigate }: AnalysisPageProps) {
{ label: "Tickets", value: totals?.tickets ?? 0, icon: Ticket }, { label: "Tickets", value: totals?.tickets ?? 0, icon: Ticket },
{ label: "Sessions", value: totals?.sessions ?? 0, icon: Users }, { label: "Sessions", value: totals?.sessions ?? 0, icon: Users },
{ label: "Abgerechnet", value: formatMinutes(totals?.minutes ?? 0), detail: `Teamspace ${formatMinutes(totals?.crmBilledMinutes ?? 0)}`, icon: Clock3 }, { label: "Abgerechnet", value: formatMinutes(totals?.minutes ?? 0), detail: `Teamspace ${formatMinutes(totals?.crmBilledMinutes ?? 0)}`, icon: Clock3 },
{ label: "Nicht abrechenbar", value: formatMinutes(totals?.nonBillableMinutes ?? 0), icon: UserCheck },
{ label: "Offen", value: totals?.openSessions ?? 0, detail: formatMinutes(totals?.openMinutes ?? 0), icon: UserCheck } { label: "Offen", value: totals?.openSessions ?? 0, detail: formatMinutes(totals?.openMinutes ?? 0), icon: UserCheck }
]; ];
const tickets = overview?.tickets ?? []; const tickets = overview?.tickets ?? [];
@@ -752,7 +751,6 @@ export function AnalysisPage({ onNavigate }: AnalysisPageProps) {
<TableHead>Sessions</TableHead> <TableHead>Sessions</TableHead>
<TableHead>Zeit abgerechnet</TableHead> <TableHead>Zeit abgerechnet</TableHead>
<TableHead>Sessions abgerechnet</TableHead> <TableHead>Sessions abgerechnet</TableHead>
<TableHead>Nicht abrechenbar</TableHead>
<TableHead>Status</TableHead> <TableHead>Status</TableHead>
<TableHead /> <TableHead />
</TableRow> </TableRow>
@@ -762,7 +760,7 @@ export function AnalysisPage({ onNavigate }: AnalysisPageProps) {
<Fragment key={section.key}> <Fragment key={section.key}>
{ticketViewSettings.groupBy !== "none" ? ( {ticketViewSettings.groupBy !== "none" ? (
<TableRow className={`${sectionIndex > 0 ? "border-t-[12px] border-t-background" : ""} border-b-2 border-border bg-muted/70 hover:bg-muted/70`}> <TableRow className={`${sectionIndex > 0 ? "border-t-[12px] border-t-background" : ""} border-b-2 border-border bg-muted/70 hover:bg-muted/70`}>
<TableCell colSpan={9} className="py-0"> <TableCell colSpan={8} className="py-0">
<div className="flex flex-wrap items-center justify-between gap-3 rounded-md border border-border/80 bg-card px-3 py-2 shadow-sm"> <div className="flex flex-wrap items-center justify-between gap-3 rounded-md border border-border/80 bg-card px-3 py-2 shadow-sm">
<div className="flex min-w-0 items-center gap-2"> <div className="flex min-w-0 items-center gap-2">
<span className="rounded-sm bg-primary px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-primary-foreground">Gruppe</span> <span className="rounded-sm bg-primary px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-primary-foreground">Gruppe</span>
@@ -790,7 +788,6 @@ export function AnalysisPage({ onNavigate }: AnalysisPageProps) {
<TableCell>{ticket.session_count}</TableCell> <TableCell>{ticket.session_count}</TableCell>
<TableCell>{formatMinutes(ticket.total_minutes)}</TableCell> <TableCell>{formatMinutes(ticket.total_minutes)}</TableCell>
<TableCell>{ticket.billed_count}</TableCell> <TableCell>{ticket.billed_count}</TableCell>
<TableCell>{ticket.non_billable_count} / {formatMinutes(ticket.non_billable_minutes)}</TableCell>
<TableCell> <TableCell>
<TicketStatus ticket={ticket} /> <TicketStatus ticket={ticket} />
</TableCell> </TableCell>
@@ -836,7 +833,7 @@ export function AnalysisPage({ onNavigate }: AnalysisPageProps) {
</div> </div>
<TicketStatus ticket={ticket} /> <TicketStatus ticket={ticket} />
</div> </div>
<div className="grid grid-cols-3 gap-2 text-sm"> <div className="grid grid-cols-2 gap-2 text-sm">
<div className="rounded-md bg-muted/50 p-2"> <div className="rounded-md bg-muted/50 p-2">
<p className="text-muted-foreground">Abr.</p> <p className="text-muted-foreground">Abr.</p>
<p className="font-medium">{formatMinutes(ticket.total_minutes)}</p> <p className="font-medium">{formatMinutes(ticket.total_minutes)}</p>
@@ -845,10 +842,6 @@ export function AnalysisPage({ onNavigate }: AnalysisPageProps) {
<p className="text-muted-foreground">Abr.</p> <p className="text-muted-foreground">Abr.</p>
<p className="font-medium">{ticket.billed_count}</p> <p className="font-medium">{ticket.billed_count}</p>
</div> </div>
<div className="rounded-md bg-muted/50 p-2">
<p className="text-muted-foreground">Nicht</p>
<p className="font-medium">{formatMinutes(ticket.non_billable_minutes)}</p>
</div>
</div> </div>
<Button className="w-full" size="sm" variant="secondary" onClick={() => onNavigate(`/analysis/${periodType}/${period}/tickets/${ticket.id}`)}> <Button className="w-full" size="sm" variant="secondary" onClick={() => onNavigate(`/analysis/${periodType}/${period}/tickets/${ticket.id}`)}>
Öffnen Öffnen