Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,15 +159,20 @@ met legenda is sinds #113 net als de kop een herhaalbaar blok — `RenderReportR
rendert per pagina één volledige `renderReport`-pass extra voor die strook, net als voor de kop), het
mijlpalen- en variance-rapport (eigen DOM-component + `build*Columns` voor de PDF) en zeven **tabelrapporten**
uit discussie #31 — look-ahead, kritiek/near-critical, voortgang, planningsgezondheid,
resourcebelasting per week, resourcetoewijzingen en WBS-samenvatting. Die zeven hebben een pure
rekenlaag in `src/engine/reports/` (één `ReportContext` in, rijen met rauwe waarden uit; headless
getest in `tests/planning/check-reports.ts`) en één presentatielaag: `useTableReportSpec.tsx` bouwt
resourcebelasting (per week of maand), resourcetoewijzingen en WBS-samenvatting. Die zeven hebben
een pure rekenlaag in `src/engine/reports/` (één `ReportContext` in, rijen met rauwe waarden uit;
headless getest in `tests/planning/check-reports.ts`) en één presentatielaag: `useTableReportSpec.tsx` bouwt
per type een `TableReportSpec` (titel, meldingen, samenvatting, secties met een `ReportColumn`-
lijst), `TableReportView.tsx` tekent daar de `<table>`s uit en `makeSectionedRenderReport`
(`pdfTable.ts`) de vector-PDF — dezelfde kolomspec, dus DOM en PDF kunnen niet uit elkaar lopen.
Nieuw tabelrapport ⇒ engine-module, een `build*`-functie in `useTableReportSpec`, opties in
`TableReportOptions` + `TableReportOptionsBlock`, sleutels onder `tableReports.*` in alle 14
`report.json`-locales, en een sectie in `gids-rapporten-printen.md` (nl+en).
`report.json`-locales, en een sectie in `gids-rapporten-printen.md` (nl+en). Rapporten met een
tijdvenster (look-ahead, voortgang, belasting, toewijzingen) delen de **rapportageperiode** (issue
#120): een `ReportingPeriod` (preset rond de statusdatum, `project` of `custom` met twee ISO-dagen)
uit `src/engine/reports/reportingPeriod.ts`, per rapport opgeslagen in `TableReportOptions`, in de
UI het gedeelde `ReportingPeriodField`, en in de engine opgelost via `resolvePeriodFor(ctx, period)`
— nooit een eigen weken-getal erbij bouwen.

### State: één Zustand + Immer store, samengesteld uit slices

Expand Down
37 changes: 29 additions & 8 deletions public/docs/ar/gids-rapporten-printen.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,25 @@
من آخر **حساب** (F5)، وتشير ملاحظة إلى جدول تغيّر منذ ذلك الحين، ويعيد تصدير PDF الحساب دائماً أولاً؛
لكل تقرير كتلة صغيرة **خيارات التقرير** تُحفظ بين الجلسات. تُختصر أيام العمل إلى *ي.ع*.

### فترة التقرير

تعمل أربعة تقارير على نافذة زمنية: الاستشراف، والتقدّم، وتحميل الموارد، وتعيينات الموارد. وهي
تتشارك عنصر تحكّم واحداً *فترة التقرير* في خيارات التقرير، مع إعداد محفوظ لكل تقرير على حدة:

- **الأسبوع القادم / الماضي، أو 2 أو 4 أو 6 أو 8 أو 12 أسبوعاً** و**الشهر القادم / الماضي** — تُحسب
من تاريخ حالة المشروع (أو من اليوم إن لم يُحدَّد). الإعداد المسبق شامل من الطرفين: *الأسابيع
الأربعة القادمة* يوم الخميس 10 سبتمبر تمتد حتى الأربعاء 7 أكتوبر. عند تغيير تاريخ الحالة تنتقل
النافذة معه.
- **المشروع بأكمله** — من أبكر بداية إلى آخر نهاية في الجدول.
- **مخصص** — تاريخان من اختيارك. يصبح الحقلان *من* و*إلى* قابلين للتحرير (كتابة أو منتقي تاريخ)؛
ومع إعداد مسبق يعرضان التواريخ المحسوبة للقراءة فقط. تاريخ انتهاء يسبق تاريخ البداية أو حقل تاريخ فارغ يُميَّز
بالأحمر ولا يُطبَّق. عند العودة إلى إعداد مسبق تحلّ تواريخه محل نطاقك.

تظهر الفترة المختارة كعنوان فرعي للتقرير وفي ملف PDF؛ ويعرضها تقرير التقدّم في الملخّص.

### استشراف (Look-ahead)

قائمة اجتماع الموقع الأسبوعي: كل أنشطة الأسابيع الـ*N* القادمة (أربعة افتراضياً) — ما يبدأ وما يستمر وما
قائمة اجتماع الموقع الأسبوعي: كل أنشطة فترة التقرير (الشهر القادم افتراضياً) — ما يبدأ وما يستمر وما
ينتهي — إضافة إلى ما كان يجب أن يحدث بالفعل. في كل صف: WBS، الاسم، البداية والنهاية، المدة المتبقية،
الإنجاز، الفائض الكلي، حرج أو شبه حرج، الموارد المعيّنة وحالة: **يبدأ**، **قيد التنفيذ**، **كان يجب أن
يبدأ** أو **متأخر**. يظهر أيضاً النشاط الذي يمتد على النافذة كلها.
Expand All @@ -82,8 +98,10 @@
النظرة الدورية «أين نحن» عند تاريخ الحالة. يعطي الملخّص نهاية خط الأساس والنهاية المتوقعة مع الفرق
بأيام العمل، والتقدّم **المخطط** مقابل **الفعلي** (كلاهما موزون بمدة المهام الورقية؛ المخطط على تواريخ
خط الأساس النشط، وإلا على الجدول الحالي) والأعداد حسب الحالة. تحته خمسة أقسام: المكتمل في الفترة
الماضية، قيد التنفيذ، ما يبدأ في الفترة القادمة، المتأخر، والأنشطة الحرجة المفتوحة. الفترة (أسبوعان
افتراضياً) تنظر إلى الوراء بقدر ما تنظر إلى الأمام.
الماضية، قيد التنفيذ، ما يبدأ في الفترة القادمة، المتأخر، والأنشطة الحرجة المفتوحة. فترة التقرير (الشهر
الماضي افتراضياً) تحدد ما يُعدّ *مكتملاً في الفترة*؛ أما قسم *ما يبدأ في الفترة القادمة* فينظر إلى الأمام من
تاريخ الحالة — حتى نهاية الفترة إن كانت (جزئياً) بعد تاريخ الحالة، ومع إعداد مسبق *الماضي/الماضية …* إلى الأمام بقدر ما تنظر
الفترة إلى الوراء؛ ومع فترة مخصصة أو فترة المشروع بأكمله تقع كلها في الماضي يبقى القسم فارغاً. يعرض الملخّص كلا الحدّين.

### سلامة الجدول الزمني

Expand All @@ -93,16 +111,19 @@
تأخيرات طويلة). الحدود في الخيارات؛ افتراضياً وفق DCMA: 44 يوم عمل للفائض المرتفع والمدة الطويلة، و10
للتأخيرات. الجدول النظيف فيه صفر أخطاء.

### تحميل الموارد أسبوعياً
### تحميل الموارد

الصفوف مجمّعة حسب المورد (الاسم والنوع في الصف الأول من كل مجموعة فقط، كما في تعيينات الموارد)؛ ومن خلال *التجميع* تختار بين الأسابيع والأشهر التقويمية، وتحدد فترة التقرير أي الأسابيع أو الأشهر تظهر.

لكل مورد وأسبوع، المطلوب مقابل السعة المتاحة (بوحدة-يوم)، الفرق، ذروة اليوم، وهل الأسبوع محمّل بإفراط —
الحساب نفسه الذي يستخدمه المدرّج في علامة تبويب **الموارد**، في شكل جدول. تُدرج فقط الأسابيع التي فيها
طلب؛ ومع *الأسابيع المحمّلة بإفراط فقط* لا يبقى إلا الاختناقات.
لكل مورد وأسبوع أو شهر، المطلوب مقابل السعة المتاحة (بوحدة-يوم)، الفرق، ذروة اليوم، وهل الفترة محمّلة
بإفراط — الحساب نفسه الذي يستخدمه المدرّج في علامة تبويب **الموارد**، في شكل جدول. تُدرج فقط الفترات
التي فيها طلب؛ ومع *الفترات المحمّلة بإفراط فقط* لا يبقى إلا الاختناقات. إذا وقع فاصل صفحات في ملف PDF في
منتصف مجموعة، فلا يتكرر اسم المورد في الصفحة التالية.

### تعيينات الموارد

لكل مورد الأنشطة المعيّنة له: WBS، الاسم، البداية والنهاية، المدة المتبقية، الوحدات في اليوم، الإنجاز،
الحرج والحالة. تُستبعد المهام المكتملة افتراضياً. وبنافذة بالأسابيع يصبح *استشراف الموارد*. يعدّ الملخّص
الحرج والحالة. تُستبعد المهام المكتملة افتراضياً. وبفترة تقرير (المشروع بأكمله افتراضياً) يصبح *استشراف الموارد*. يعدّ الملخّص
أيضاً المهام بلا مورد.

### ملخّص هيكل تجزئة العمل
Expand Down
45 changes: 35 additions & 10 deletions public/docs/de/gids-rapporten-printen.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,28 @@ rechnet der Bericht mit heute und sagt das; Termine und Puffer stammen aus der l
jeder Bericht hat einen kleinen Block **Berichtsoptionen**, der zwischen Sitzungen gemerkt wird.
Arbeitstage werden mit *AT* abgekürzt.

### Berichtszeitraum

Vier Berichte arbeiten mit einem Zeitfenster: Vorschau, Fortschritt, Ressourcenauslastung und
Ressourcenzuweisungen. Sie teilen sich eine Auswahl *Berichtszeitraum* in den Berichtsoptionen, mit
einer eigenen gemerkten Einstellung pro Bericht:

- **Nächste / letzte Woche, 2, 4, 6, 8 oder 12 Wochen** und **nächster / letzter Monat** — gerechnet
ab dem Statusdatum des Projekts (oder heute, wenn keins gesetzt ist). Eine Vorgabe ist an beiden
Enden inklusiv: *nächste 4 Wochen* am Donnerstag, 10. September, läuft bis Mittwoch, 7. Oktober.
Ändern Sie das Statusdatum, wandert das Fenster mit.
- **Gesamtes Projekt** — vom frühesten Start bis zum spätesten Ende im Terminplan.
- **Benutzerdefiniert** — zwei eigene Datumsangaben. Die Felder *Von* und *Bis* werden bearbeitbar (tippen
oder Datumsauswahl); bei einer Vorgabe zeigen sie die berechneten Daten schreibgeschützt. Ein
Enddatum vor dem Startdatum oder ein leeres Datumsfeld wird rot markiert und nicht übernommen. Wählen Sie danach wieder eine
Vorgabe, ersetzen deren Daten Ihren eigenen Bereich.

Der gewählte Zeitraum steht als Untertitel im Bericht und im PDF; der Fortschrittsbericht zeigt ihn
in der Zusammenfassung.

### Vorschau (Look-ahead)

Die Liste für die wöchentliche Baubesprechung: alle Vorgänge der nächsten *N* Wochen (Standard vier)
Die Liste für die wöchentliche Baubesprechung: alle Vorgänge im Berichtszeitraum (Standard: nächster Monat)
— was beginnt, was weiterläuft, was endet — plus das, was bereits hätte passieren müssen. Je Zeile:
PSP, Name, Start und Ende, Restdauer, Fertigstellung, Gesamtpuffer, kritisch/fast kritisch, die
zugewiesenen Ressourcen und ein Status: **Beginnt**, **In Arbeit**, **Hätte starten müssen** oder
Expand All @@ -93,8 +112,11 @@ Prognose-Ende mit der Differenz in Arbeitstagen, **geplanten** gegenüber **tats
Fortschritt (beide dauergewichtet über die Blattvorgänge; geplant auf den Terminen des aktiven
Basisplans, sonst auf der aktuellen Planung) und die Zählungen je Zustand. Darunter fünf
Abschnitte: im vergangenen Zeitraum abgeschlossen, in Arbeit, Beginn im kommenden Zeitraum,
überfällig und offene kritische Vorgänge. Der Zeitraum (Standard zwei Wochen) blickt gleich weit
zurück wie voraus.
überfällig und offene kritische Vorgänge. Der Berichtszeitraum (Standard: letzter Monat) bestimmt, was als *im Zeitraum abgeschlossen*
zählt; der Abschnitt *Beginn im kommenden Zeitraum* blickt vom Statusdatum voraus — bis zum Ende
des Zeitraums, wenn dieser (teilweise) nach dem Statusdatum liegt, bei einer *Letzte …*-Vorgabe so weit
voraus, wie der Zeitraum zurückblickt; bei einem benutzerdefinierten oder Projekt-Zeitraum, der ganz
in der Vergangenheit liegt, bleibt der Abschnitt leer. Die Zusammenfassung zeigt beide Grenzen.

### Terminplan-Qualität

Expand All @@ -106,18 +128,21 @@ Reihenfolge) und **Hinweise** (fast kritisch, hoher Puffer, lange Verzögerungen
stehen in den Berichtsoptionen; Standard nach DCMA: 44 Arbeitstage für hohen Puffer und lange
Dauer, 10 Arbeitstage für Verzögerungen. Eine saubere Planung hat null Fehler.

### Ressourcenauslastung pro Woche
### Ressourcenauslastung

Die Zeilen sind pro Ressource gruppiert (Name und Typ nur in der ersten Zeile jeder Gruppe, wie bei den Ressourcenzuweisungen); mit *Aggregation* wählen Sie zwischen Kalenderwochen und Kalendermonaten, und der Berichtszeitraum bestimmt, welche Wochen oder Monate erscheinen.

Je Ressource und Woche der Bedarf gegenüber der verfügbaren Kapazität (in Einheiten-Tagen), die
Differenz, die Tagesspitze und ob die Woche überlastet ist — dieselbe Berechnung wie das Histogramm
auf der Registerkarte **Ressourcen**, aber als Tabelle. Nur Wochen mit Bedarf sind enthalten; mit
*Nur überlastete Wochen* bleiben nur die Engpässe.
Je Ressource und Woche oder Monat der Bedarf gegenüber der verfügbaren Kapazität (in Einheiten-Tagen),
die Differenz, die Tagesspitze und ob der Zeitraum überlastet ist — dieselbe Berechnung wie das
Histogramm auf der Registerkarte **Ressourcen**, aber als Tabelle. Nur Zeiträume mit Bedarf sind
enthalten; mit *Nur überlastete Zeiträume* bleiben nur die Engpässe. Fällt im PDF ein Seitenumbruch mitten
in eine Gruppe, wird der Ressourcenname auf der nächsten Seite nicht wiederholt.

### Ressourcenzuweisungen

Je Ressource die zugewiesenen Vorgänge: PSP, Name, Start und Ende, Restdauer, Einheiten pro Tag,
Fertigstellung, kritisch und Status. Abgeschlossene Vorgänge fehlen standardmäßig. Mit einem Fenster
in Wochen wird daraus die *Ressourcen-Vorschau*. Die Zusammenfassung zählt auch die Vorgänge ohne
Fertigstellung, kritisch und Status. Abgeschlossene Vorgänge fehlen standardmäßig. Mit einem
Berichtszeitraum (Standard: gesamtes Projekt) wird daraus die *Ressourcen-Vorschau*. Die Zusammenfassung zählt auch die Vorgänge ohne
Ressource.

### PSP-Zusammenfassung
Expand Down
54 changes: 41 additions & 13 deletions public/docs/en/gids-rapporten-printen.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,10 +153,29 @@ a few conventions:
- A task can appear in several sections of one report when those sections each answer a different
question (in progress and critical, for instance).

### Reporting period

Four reports work on a time window: look-ahead, progress, resource loading and resource
assignments. They share one *Reporting period* control in the report options, with its own
remembered setting per report:

- **Next / last week, 2, 4, 6, 8 or 12 weeks** and **next / last month** — counted from the
project's status date (or today if none is set). A preset is inclusive on both ends: *next 4
weeks* on Thursday 10 September runs through Wednesday 7 October. Change the status date and the
window moves with it.
- **Project duration** — from the earliest start to the latest finish in the schedule.
- **Custom** — two dates of your own. The *From* and *To* fields become editable (type or use the
date picker); with a preset they show the calculated dates read-only. An end date before the
start date, or an empty date field, is highlighted in red and not applied. Pick a preset again and the preset dates
replace your custom range.

The chosen period appears as the subtitle of the report and of the PDF; the progress report shows
it in its summary.

### Look-ahead

The list for the weekly site meeting: every activity that is on the agenda for the next *N* weeks
(four by default) — what starts, what continues, what finishes — plus what should already have
The list for the weekly site meeting: every activity in the reporting period (the next month by
default) — what starts, what continues, what finishes — plus what should already have
happened. Each row shows WBS, name, start and finish, remaining duration, completion, total float,
whether the task is critical or near-critical, the assigned resources and a status: **Starting**
(begins in the window), **In progress**, **Should have started** (start before the reference day,
Expand All @@ -179,9 +198,13 @@ forecast finish with the difference in working days, **planned** versus **actual
the counts per state. Both percentages are duration-weighted over the leaf tasks: a milestone
weighs nothing, a month of work weighs a lot. Planned is measured on the dates of the active
baseline (the agreement you measure against); without a baseline on the current schedule, and the
report says so. Below that, five sections: completed in the past period, in progress, starting in
the next period, overdue, and the open critical activities. The period (two weeks by default)
looks back as far as it looks ahead.
report says so. Below that, five sections: completed in the reporting period, in progress, starting in
the next period, overdue, and the open critical activities. The reporting period (the last
month by default) decides what counts as *completed in the period*; the *starting in the next
period* section looks ahead from the status date — to the end of the period when it lies (partly)
after the status date; for a *last …* preset as far ahead as the period looks back; for a custom or
project period that lies entirely in the past the section stays empty. The summary shows both
bounds.

### Schedule health

Expand All @@ -199,20 +222,25 @@ The thresholds are in the report options. By default they follow DCMA: high floa
duration above 44 working days; a lag above 10 working days. A clean schedule has zero errors;
warnings and information are a reason to look, not necessarily to change.

### Resource loading per week
### Resource loading

Per resource and per week the required effort against the available capacity (in unit-days), the
difference, the peak load on a single day and whether the week is overloaded. It is the same
calculation as the histogram on the **Resources** tab, but as a table to lay side by side in a
staffing meeting. Only weeks with demand are listed; with *Overloaded weeks only* you keep just the
bottlenecks.
Per resource and per week or month the required effort against the available capacity (in
unit-days), the difference, the peak load on a single day and whether the period is overloaded. It
is the same calculation as the histogram on the **Resources** tab, but as a table to lay side by
side in a staffing meeting. Rows are grouped per resource — name and type appear on the first row
of each group only, just like the resource assignments report. Use *Aggregation* to choose between
calendar weeks and calendar months; the reporting period decides which weeks or months are
included (every week or month that touches the period, as a whole — so always the same number as
the histogram). Only periods with demand are listed; with *Overloaded periods only* you keep just
the bottlenecks. When a page break in the PDF falls inside a group, the resource name is not
repeated on the next page.

### Resource assignments

Per resource which activities it is assigned to: WBS, name, start and finish, remaining duration,
units per day, completion, critical and status. Completed tasks are excluded by default. With a
window in weeks it becomes the *resource look-ahead*: only what this crew or piece of equipment has
to do in the coming weeks, plus what is still open. The summary also counts the tasks without a
reporting period (the whole project by default) it becomes the *resource look-ahead*: only what
this crew or piece of equipment has to do in that period, plus what is still open. The summary also counts the tasks without a
resource.

### WBS summary
Expand Down
Loading