feat(reports): nicht abrechenbare Projekte ausblenden
Im Zeitreport stehen interne Projekte und Abwesenheiten zwischen den Kundenzahlen: 2025 sind das 19.451 von 45.762 Stunden, und die Auslastung zeigt 146 Prozent, weil Urlaub und Krankheit mitzaehlen. Ein Haken neben der Billable-Aufteilung blendet Projekte vom Typ "nicht abrechenbar" aus. Er wirkt auf den ganzen Report - Summen, Auslastung, alle vier Gruppierungen - und auf die Exporte, die denselben Report bauen; im PDF-Kopf steht dann "Nicht abrechenbare Projekte: ausgeblendet". Gefiltert wird in loadEntries, damit Kunden-, Projekt- und Taskliste dieselbe Grundmenge sehen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
2710baa615
commit
80e46910fd
@@ -39,6 +39,9 @@ export async function buildTimeReport(viewer, query) {
|
||||
const from = query.from;
|
||||
const to = query.to;
|
||||
const includeFixed = query.include_fixed === '1' || query.include_fixed === 'true';
|
||||
// Schalter im Report: nicht abrechenbare Projekte (intern, Abwesenheiten)
|
||||
// ausblenden - dann zeigt die Auswertung nur das Kundengeschaeft.
|
||||
const hideNonBillable = query.hide_non_billable === '1' || query.hide_non_billable === 'true';
|
||||
const userIds = await reportUserIds(viewer, query.team);
|
||||
const entries = await loadEntries(settings, {
|
||||
from,
|
||||
@@ -46,6 +49,7 @@ export async function buildTimeReport(viewer, query) {
|
||||
userIds,
|
||||
customerId: query.customer_id,
|
||||
projectId: query.project_id,
|
||||
skipNonBillableProjects: hideNonBillable,
|
||||
});
|
||||
|
||||
const filter = userFilter(userIds, 'id');
|
||||
@@ -91,6 +95,7 @@ export async function buildTimeReport(viewer, query) {
|
||||
return {
|
||||
range: { from, to },
|
||||
include_fixed: includeFixed,
|
||||
hide_non_billable: hideNonBillable,
|
||||
summary: {
|
||||
minutes,
|
||||
billable_minutes: billable,
|
||||
|
||||
Reference in New Issue
Block a user