Revert "Hide non-billable values in analysis"
This reverts commit ccb859ad49.
This commit is contained in:
@@ -385,6 +385,7 @@ 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 ?? [];
|
||||||
@@ -751,6 +752,7 @@ 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>
|
||||||
@@ -760,7 +762,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={8} className="py-0">
|
<TableCell colSpan={9} 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>
|
||||||
@@ -788,6 +790,7 @@ 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>
|
||||||
@@ -833,7 +836,7 @@ export function AnalysisPage({ onNavigate }: AnalysisPageProps) {
|
|||||||
</div>
|
</div>
|
||||||
<TicketStatus ticket={ticket} />
|
<TicketStatus ticket={ticket} />
|
||||||
</div>
|
</div>
|
||||||
<div className="grid grid-cols-2 gap-2 text-sm">
|
<div className="grid grid-cols-3 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>
|
||||||
@@ -842,6 +845,10 @@ 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
|
||||||
|
|||||||
Reference in New Issue
Block a user