Datenschutz vollmacht fixed, two time counter added
This commit is contained in:
+33
-11
@@ -351,7 +351,14 @@ async function getMeterReadings(req, res) {
|
||||
}
|
||||
async function addMeterReading(req, res) {
|
||||
try {
|
||||
const reading = await customerService.addMeterReading(parseInt(req.params.meterId), req.body);
|
||||
const { readingDate, value, valueNt, unit, notes } = req.body;
|
||||
const reading = await customerService.addMeterReading(parseInt(req.params.meterId), {
|
||||
readingDate: new Date(readingDate),
|
||||
value: parseFloat(value),
|
||||
valueNt: valueNt !== undefined && valueNt !== null && valueNt !== '' ? parseFloat(valueNt) : undefined,
|
||||
unit,
|
||||
notes,
|
||||
});
|
||||
res.status(201).json({ success: true, data: reading });
|
||||
}
|
||||
catch (error) {
|
||||
@@ -363,7 +370,19 @@ async function addMeterReading(req, res) {
|
||||
}
|
||||
async function updateMeterReading(req, res) {
|
||||
try {
|
||||
const reading = await customerService.updateMeterReading(parseInt(req.params.meterId), parseInt(req.params.readingId), req.body);
|
||||
const { readingDate, value, valueNt, unit, notes } = req.body;
|
||||
const updateData = {};
|
||||
if (readingDate !== undefined)
|
||||
updateData.readingDate = new Date(readingDate);
|
||||
if (value !== undefined)
|
||||
updateData.value = parseFloat(value);
|
||||
if (valueNt !== undefined)
|
||||
updateData.valueNt = valueNt !== null && valueNt !== '' ? parseFloat(valueNt) : null;
|
||||
if (unit !== undefined)
|
||||
updateData.unit = unit;
|
||||
if (notes !== undefined)
|
||||
updateData.notes = notes;
|
||||
const reading = await customerService.updateMeterReading(parseInt(req.params.meterId), parseInt(req.params.readingId), updateData);
|
||||
res.json({ success: true, data: reading });
|
||||
}
|
||||
catch (error) {
|
||||
@@ -404,15 +423,18 @@ async function reportMeterReading(req, res) {
|
||||
res.status(403).json({ success: false, error: 'Kein Zugriff auf diesen Zähler' });
|
||||
return;
|
||||
}
|
||||
const reading = await prisma.meterReading.create({
|
||||
data: {
|
||||
meterId,
|
||||
value: parseFloat(value),
|
||||
readingDate: readingDate ? new Date(readingDate) : new Date(),
|
||||
notes,
|
||||
reportedBy: user.email,
|
||||
status: 'REPORTED',
|
||||
},
|
||||
const parsedDate = readingDate ? new Date(readingDate) : new Date();
|
||||
const parsedValue = parseFloat(value);
|
||||
// Validierung über den Service (monoton steigend)
|
||||
const reading = await customerService.addMeterReading(meterId, {
|
||||
readingDate: parsedDate,
|
||||
value: parsedValue,
|
||||
notes,
|
||||
});
|
||||
// Status auf REPORTED setzen
|
||||
await prisma.meterReading.update({
|
||||
where: { id: reading.id },
|
||||
data: { reportedBy: user.email, status: 'REPORTED' },
|
||||
});
|
||||
res.status(201).json({ success: true, data: reading });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user