Folgezähler-Forms: Checkbox "Alten Zähler deaktivieren" (default an)
Beide Folgezähler-Forms (Kundenakte MeterModal + Vertragsansicht SuccessorMeterForm) bekommen eine Checkbox, die standardmäßig angehakt ist. Beim Speichern wird der Vorgänger automatisch auf isActive=false gesetzt – ein-klick-fähiger Zählerwechsel. Backend: createMeter mit successorOf und addSuccessorMeter akzeptieren deactivatePredecessor (Default true). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -539,7 +539,7 @@ export async function getCockpit(req: AuthRequest, res: Response): Promise<void>
|
||||
export async function addSuccessorMeter(req: AuthRequest, res: Response): Promise<void> {
|
||||
try {
|
||||
const contractId = parseInt(req.params.id);
|
||||
const { meterId, installedAt, finalReadingPrevious } = req.body;
|
||||
const { meterId, installedAt, finalReadingPrevious, deactivatePredecessor } = req.body;
|
||||
|
||||
const contract = await prisma.contract.findUnique({
|
||||
where: { id: contractId },
|
||||
@@ -648,6 +648,15 @@ export async function addSuccessorMeter(req: AuthRequest, res: Response): Promis
|
||||
);
|
||||
}
|
||||
|
||||
// Alten Zähler deaktivieren (Default), sofern der Aufrufer das nicht
|
||||
// explizit auf false setzt – ein-klick-fähiger Zählerwechsel.
|
||||
if (predecessorMeterId && deactivatePredecessor !== false) {
|
||||
await prisma.meter.update({
|
||||
where: { id: predecessorMeterId },
|
||||
data: { isActive: false },
|
||||
});
|
||||
}
|
||||
|
||||
await logChange({
|
||||
req, action: 'CREATE', resourceType: 'ContractMeter',
|
||||
resourceId: contractMeter.id.toString(),
|
||||
|
||||
@@ -488,6 +488,10 @@ export async function createMeter(
|
||||
predecessorMeterId: number;
|
||||
installedAt?: string;
|
||||
finalReadingPrevious?: number;
|
||||
// Default true im UI: alter Zähler wird nach dem Wechsel auf
|
||||
// isActive=false gesetzt. Kann ausgeschaltet werden, wenn der alte
|
||||
// Zähler aus irgendeinem Grund noch aktiv bleiben soll.
|
||||
deactivatePredecessor?: boolean;
|
||||
};
|
||||
}
|
||||
) {
|
||||
@@ -622,6 +626,16 @@ export async function createMeter(
|
||||
data.successorOf.finalReadingPrevious,
|
||||
);
|
||||
}
|
||||
|
||||
// Alten Zähler deaktivieren (Default), sofern der Aufrufer das nicht
|
||||
// explizit auf false setzt. Macht den typischen Zählerwechsel-Workflow
|
||||
// ein-klick-fähig.
|
||||
if (data.successorOf.deactivatePredecessor !== false) {
|
||||
await prisma.meter.update({
|
||||
where: { id: predecessor.id },
|
||||
data: { isActive: false },
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return created;
|
||||
|
||||
Reference in New Issue
Block a user