34 lines
1004 B
TypeScript
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));
|
|
} |