L14 Abrechnungsübersicht: Demo-Seed auf frischer Datenbank lauffähig
Seit L12 darf ein Nutzer nur eine laufende Uhr haben. DEMO-06/DEMO-07 (laufende Uhren) werden deshalb nach den vergangenen Einsätzen derselben Monteure angelegt; Inhalte unverändert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+18
-14
@@ -273,20 +273,8 @@ export async function seedDemoTenant(tenantId: string, users: DemoUsers): Promis
|
|||||||
await assign(id, nord, [users.tech2]);
|
await assign(id, nord, [users.tech2]);
|
||||||
await transitionWorkOrder(tech2, { workOrderId: id, to: "accepted" });
|
await transitionWorkOrder(tech2, { workOrderId: id, to: "accepted" });
|
||||||
});
|
});
|
||||||
await order({ ext: "DEMO-06", customer: "K-D006", site: "Halle 1 – Kühllager", title: "Störung Kältemittelleitung", orderTypeId: type("stoerung"), priority: "urgent", plannedStart: day(0, 9), plannedEnd: day(0, 13) }, async (id) => {
|
// DEMO-06/DEMO-07 (laufende Uhren von Sven Südfeld und Max Monteur) werden erst nach DEMO-19 angelegt: seit
|
||||||
await assign(id, sued, [users.tech3]);
|
// L12 darf ein Nutzer nur eine laufende Uhr haben – spätere Einsätze derselben Monteure würden sonst kollidieren.
|
||||||
await travel(tech3, id, day(0, 8, 30));
|
|
||||||
});
|
|
||||||
await order({ ext: "DEMO-07", customer: "K-D003", site: "Quartier Poppenbüttel – Block 3", title: "Montage Gas-Brennwerttherme", orderTypeId: type("montage"), plannedStart: day(0, 7), plannedEnd: day(0, 17), materials: heating, scope: "Demontage Altgerät, Montage Neugerät, Abgasanschluss, Inbetriebnahme." }, async (id) => {
|
|
||||||
await assign(id, nord, [users.tech]);
|
|
||||||
await travel(tech, id, day(0, 6, 45));
|
|
||||||
await work(tech, id, day(0, 7, 10));
|
|
||||||
await photo(tech, id, { phase: "before", requirementKey: "ausgangszustand", comment: "Altgerät vor Demontage" });
|
|
||||||
await note(tech, id, "work_done", "Altgerät demontiert, Anschlüsse verschlossen.");
|
|
||||||
await note(tech, id, "deviation", "Abgasrohr muss um 30 cm verlängert werden.");
|
|
||||||
await planMaterial(tech, id, 1, 14, "fully_used", "Leitungsführung um den Schacht");
|
|
||||||
await material(tech, id, { clientId: randomUUID(), name: "Abgasrohr-Verlängerung DN80", articleNumber: "AG-80-05", quantity: 1, unit: "Stk", usageStatus: "additional", deviationReason: "Abgasrohr zu kurz" });
|
|
||||||
});
|
|
||||||
await order({ ext: "DEMO-08", customer: "K-D002", site: "Filiale Eppendorf", title: "Undichte Leitung unter der Theke", orderTypeId: type("reparatur"), plannedStart: day(0, 7), plannedEnd: day(0, 11) }, async (id) => {
|
await order({ ext: "DEMO-08", customer: "K-D002", site: "Filiale Eppendorf", title: "Undichte Leitung unter der Theke", orderTypeId: type("reparatur"), plannedStart: day(0, 7), plannedEnd: day(0, 11) }, async (id) => {
|
||||||
await assign(id, sued, [users.tech3]);
|
await assign(id, sued, [users.tech3]);
|
||||||
await work(tech3, id, day(0, 7, 5));
|
await work(tech3, id, day(0, 7, 5));
|
||||||
@@ -376,6 +364,22 @@ export async function seedDemoTenant(tenantId: string, users: DemoUsers): Promis
|
|||||||
await markBilled(bo, { workOrderId: id });
|
await markBilled(bo, { workOrderId: id });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Heute laufende Uhren (nach allen vergangenen Einsätzen derselben Monteure, s. o.)
|
||||||
|
await order({ ext: "DEMO-06", customer: "K-D006", site: "Halle 1 – Kühllager", title: "Störung Kältemittelleitung", orderTypeId: type("stoerung"), priority: "urgent", plannedStart: day(0, 9), plannedEnd: day(0, 13) }, async (id) => {
|
||||||
|
await assign(id, sued, [users.tech3]);
|
||||||
|
await travel(tech3, id, day(0, 8, 30));
|
||||||
|
});
|
||||||
|
await order({ ext: "DEMO-07", customer: "K-D003", site: "Quartier Poppenbüttel – Block 3", title: "Montage Gas-Brennwerttherme", orderTypeId: type("montage"), plannedStart: day(0, 7), plannedEnd: day(0, 17), materials: heating, scope: "Demontage Altgerät, Montage Neugerät, Abgasanschluss, Inbetriebnahme." }, async (id) => {
|
||||||
|
await assign(id, nord, [users.tech]);
|
||||||
|
await travel(tech, id, day(0, 6, 45));
|
||||||
|
await work(tech, id, day(0, 7, 10));
|
||||||
|
await photo(tech, id, { phase: "before", requirementKey: "ausgangszustand", comment: "Altgerät vor Demontage" });
|
||||||
|
await note(tech, id, "work_done", "Altgerät demontiert, Anschlüsse verschlossen.");
|
||||||
|
await note(tech, id, "deviation", "Abgasrohr muss um 30 cm verlängert werden.");
|
||||||
|
await planMaterial(tech, id, 1, 14, "fully_used", "Leitungsführung um den Schacht");
|
||||||
|
await material(tech, id, { clientId: randomUUID(), name: "Abgasrohr-Verlängerung DN80", articleNumber: "AG-80-05", quantity: 1, unit: "Stk", usageStatus: "additional", deviationReason: "Abgasrohr zu kurz" });
|
||||||
|
});
|
||||||
|
|
||||||
// Notdienst mit vorläufigem Kunden (feste Client-IDs → idempotent)
|
// Notdienst mit vorläufigem Kunden (feste Client-IDs → idempotent)
|
||||||
const emergencyExisting = await bo.db.workSession.findFirst({ where: { clientId: "7c1d6a0e-3b1f-4c55-9d2a-00000000d020" }, select: { workOrderId: true } });
|
const emergencyExisting = await bo.db.workSession.findFirst({ where: { clientId: "7c1d6a0e-3b1f-4c55-9d2a-00000000d020" }, select: { workOrderId: true } });
|
||||||
if (!emergencyExisting) {
|
if (!emergencyExisting) {
|
||||||
|
|||||||
Reference in New Issue
Block a user