Dashboard, Types und Formular

This commit is contained in:
Moritz Utcke
2024-02-27 12:52:45 +07:00
parent 982a739346
commit 1db59c3792
16 changed files with 267 additions and 238 deletions

View File

@@ -1,18 +1,7 @@
import { GebaeudeAufnahmeClient } from "#components/Ausweis/types";
import { VerbrauchsausweisWohnen, Benutzer, GebaeudeStammdaten, Rechnungen, GebaeudeBilder } from "@ibcornelsen/database/client";
export type AusweisData = VerbrauchsausweisWohnen & {
benutzer: Benutzer;
gebaeude_aufnahme_allgemein: GebaeudeAufnahmeClient & {
gebaeude_stammdaten: GebaeudeStammdaten & {
gebaeude_bilder: GebaeudeBilder[];
}
}
rechnungen: Rechnungen;
};
import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
export function convertAusweisData(
inputs: AusweisData
inputs: VerbrauchsausweisWohnenClient
): Record<string, string> {
return {
"gebaeude_stammdaten.adresse": inputs.gebaeude_aufnahme_allgemein.adresse || "",

View File

@@ -0,0 +1,64 @@
import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
type AusweisError = {
title: string,
description: string,
severity: "error" | "warning",
resolvehref?: string
}
/**
* Berechnet den Fortschritt im Formular anhand bestimmter Faktoren
* Gibt den Fortschritt in Prozent zurück.
* @param ausweis Der Verbrauchsausweis
* @returns Der Fortschritt in Prozent sowie ein Array mit gefundenen Fehlern
*/
export function verbrauchsausweisWohnenCalculateFormProgress(ausweis: VerbrauchsausweisWohnenClient): {
progress: number;
errors: AusweisError[];
} {
let progress = 0;
const errors: AusweisError[] = [];
if (ausweis.erledigt) {
// Der Ausweis wurde ausgestellt, also ist der Fortschritt 100%
return {
progress: 100,
errors: []
};
} else if (ausweis.gebaeude_aufnahme_allgemein.storniert) {
// Der Ausweis wurde storniert, also ist der Fortschritt 0%
return {
progress: 0,
errors: []
};
}
if (ausweis.gebaeude_aufnahme_allgemein.baujahr_gebaeude.length === 0) {
errors.push({
title: "Fehlendes Baujahr",
description: "Eines ihrer Gebäude hat noch kein Baujahr angegeben. Beheben sie dies indem sie auf den untenstehenden Link klicken.",
severity: "warning",
resolvehref: `/energieausweis-erstellen/verbrauchsausweis-wohnen?uid=${ausweis.uid}`
});
}
if (ausweis.gebaeude_aufnahme_allgemein.adresse) {
progress += 5;
}
if (ausweis.gebaeude_aufnahme_allgemein.ort) {
progress += 5;
}
if (ausweis.verbrauch_1 && ausweis.verbrauch_2 && ausweis.verbrauch_3) {
progress += 5;
}
return {
progress,
errors
};
}