Files
online-energieausweis/src/components/Verbrauchsausweis/audits/VerbrauchAbweichung.ts
2025-02-17 11:24:07 +07:00

34 lines
1004 B
TypeScript

import { AufnahmeClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { AuditType, hidden } from "./hidden.js";
export function auditVerbrauchAbweichung(ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient): number[] {
if (aufnahme.leerstand && (aufnahme.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));
}