Files
online-energieausweis/src/components/Verbrauchsausweis/audits/VerbrauchAbweichung.ts
2024-11-24 13:12:58 +11:00

34 lines
957 B
TypeScript

import { GebaeudeAufnahmeClient, GebaeudeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { AuditType, hidden } from "./hidden.js";
export function auditVerbrauchAbweichung(ausweis: VerbrauchsausweisWohnenClient, gebaeude: GebaeudeAufnahmeClient): number[] {
if (gebaeude.leerstand && (gebaeude.leerstand > 0)) {
return [];
}
if (hidden.has(AuditType.VERBRAUCH_ABWEICHUNG)) {
return [];
}
if (getAbweichung(ausweis.verbrauch_1 || 0, ausweis.verbrauch_2 || 0) > 0.30) {
return [1, 2];
}
if (getAbweichung(ausweis.verbrauch_2 || 0, ausweis.verbrauch_3 || 0) > 0.30) {
return [2, 3];
}
if (getAbweichung(ausweis.verbrauch_4 || 0, ausweis.verbrauch_5 || 0) > 0.30) {
return [4, 5];
}
if (getAbweichung(ausweis.verbrauch_5 || 0, ausweis.verbrauch_6 || 0) > 0.30) {
return [5, 6];
}
return [];
}
function getAbweichung(x: number, y: number): number {
return Math.abs((x - y) / ((x + y) / 2));
}