From e2763c5adc5fd99cd148b3b6697ffbceabeaa87e Mon Sep 17 00:00:00 2001 From: "martin.dietrich" Date: Fri, 13 Dec 2024 15:37:23 +0100 Subject: [PATCH 1/7] intersectsRange added --- frontend/src/util/DateUtils.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/frontend/src/util/DateUtils.ts b/frontend/src/util/DateUtils.ts index fafa162e..bc62671d 100644 --- a/frontend/src/util/DateUtils.ts +++ b/frontend/src/util/DateUtils.ts @@ -81,6 +81,16 @@ export function useDateUtils() { getDatumOfString(dateAfter) ); } + + function intersectsRange( + date1From: string, + date1To: string, + date2From: string, + date2To: string + ): boolean { + return getDatumOfString(date1From) <= getDatumOfString(date2To) && getDatumOfString(date2From) <= getDatumOfString(date1To); + } + function isDateBetween( dateToCheck: Date, dateBefore: Date, @@ -161,5 +171,6 @@ export function useDateUtils() { isDateRange, isValidDate, isValidIsoDate, + intersectsRange }; } From fbbe078af9e6cc8686e61326c151168780c3e50c Mon Sep 17 00:00:00 2001 From: "martin.dietrich" Date: Fri, 13 Dec 2024 15:38:27 +0100 Subject: [PATCH 2/7] MessfaehigkeitRanking added --- frontend/src/util/MessfaehigkeitRanking.ts | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 frontend/src/util/MessfaehigkeitRanking.ts diff --git a/frontend/src/util/MessfaehigkeitRanking.ts b/frontend/src/util/MessfaehigkeitRanking.ts new file mode 100644 index 00000000..f5512ff1 --- /dev/null +++ b/frontend/src/util/MessfaehigkeitRanking.ts @@ -0,0 +1,42 @@ +import Fahrzeugklasse from "@/types/enum/Fahrzeugklasse"; +import ZaehldatenIntervall from "@/types/enum/ZaehldatenIntervall"; + +export function useMessfaehigkeitRanking() { + + let rankingFahrzeugklassen: Fahrzeugklasse[] = [Fahrzeugklasse.SUMME_KFZ, Fahrzeugklasse.ZWEI_PLUS_EINS, Fahrzeugklasse.ACHT_PLUS_EINS]; + let rankingIntervall: ZaehldatenIntervall[] = [ZaehldatenIntervall.STUNDE_KOMPLETT, ZaehldatenIntervall.STUNDE_HALB, ZaehldatenIntervall.STUNDE_VIERTEL_EINGESCHRAENKT, ZaehldatenIntervall.STUNDE_VIERTEL]; + + function getMinFahrzeugklassen(fahrzeugklassen1: Fahrzeugklasse | null, fahrzeugklassen2: Fahrzeugklasse | null): Fahrzeugklasse { + if (!fahrzeugklassen1 && !fahrzeugklassen2) { + return Fahrzeugklasse.SUMME_KFZ; + } + if (!fahrzeugklassen1) { + return fahrzeugklassen2 as Fahrzeugklasse; + } + if (!fahrzeugklassen2) { + return fahrzeugklassen1 as Fahrzeugklasse; + } + if (fahrzeugklassen1 === Fahrzeugklasse.RAD || fahrzeugklassen2 === Fahrzeugklasse.RAD){ + return Fahrzeugklasse.RAD; + } + return rankingFahrzeugklassen.findIndex(fzklassen => fzklassen === fahrzeugklassen1) < rankingFahrzeugklassen.findIndex(fzklassen => fzklassen === fahrzeugklassen2) ? fahrzeugklassen1 : fahrzeugklassen2; + } + + function getMinIntervall(intervall1: ZaehldatenIntervall | null, intervall2: ZaehldatenIntervall | null) : ZaehldatenIntervall{ + if (!intervall1 && !intervall2) { + return ZaehldatenIntervall.STUNDE_KOMPLETT; + } + if (!intervall1) { + return intervall2 as ZaehldatenIntervall; + } + if (!intervall2) { + return intervall1 as ZaehldatenIntervall; + } + return rankingIntervall.findIndex(interv => interv === intervall1) < rankingIntervall.findIndex(interv => interv === intervall2) ? intervall1 : intervall2; + } + + return { + getMinFahrzeugklassen, + getMinIntervall + }; +} From b257161450be38665be899be601333f7b757f91e Mon Sep 17 00:00:00 2001 From: "martin.dietrich" Date: Fri, 13 Dec 2024 15:42:04 +0100 Subject: [PATCH 3/7] calculation actual messfaehigkeit added --- .../optionsmenue/OptionsmenueMessstelle.vue | 6 +- .../panels/FahrzeugPanelMessstelle.vue | 2 +- .../optionsmenue/panels/ZeitIntervall.vue | 12 ++-- .../optionsmenue/panels/ZeitPanel.vue | 7 +- .../FahrzeugPanelVerkehrsartenContent.vue | 2 +- frontend/src/store/MessstelleStore.ts | 70 +++++++++++++++---- frontend/src/util/FahrzeugPanelTools.ts | 6 +- 7 files changed, 75 insertions(+), 30 deletions(-) diff --git a/frontend/src/components/messstelle/optionsmenue/OptionsmenueMessstelle.vue b/frontend/src/components/messstelle/optionsmenue/OptionsmenueMessstelle.vue index 5ac70ce1..3f41d6a5 100644 --- a/frontend/src/components/messstelle/optionsmenue/OptionsmenueMessstelle.vue +++ b/frontend/src/components/messstelle/optionsmenue/OptionsmenueMessstelle.vue @@ -223,7 +223,7 @@ function setDefaultOptionsForMessstelle(): void { chosenOptions.value.stundensumme = true; chosenOptions.value.tagessumme = true; chosenOptions.value.spitzenstunde = true; - messstelleStore.calculateActiveMessfaehigkeit( + messstelleStore.calculateActualMessfaehigkeit( messstelle.value.datumLetztePlausibleMessung.toString() ); messstelleStore.setBelastungsplanChosenSize(1); @@ -235,7 +235,7 @@ function resetOptions(): void { } watch( - () => messstelleStore.getActiveMessfaehigkeit.fahrzeugklassen, + () => messstelleStore.getActualMessfaehigkeit.fahrzeugklassen, // TODO: why not watch actualMf.interval? () => { chosenOptions.value.fahrzeuge = DefaultObjectCreator.createDefaultFahrzeugOptions(); @@ -245,7 +245,7 @@ watch( !chosenOptions.value.fahrzeuge.kraftfahrzeugverkehr; snackbarStore.showWarning( - 'Durch die Änderung des Zeitraums wurden die Kategorie "Fahrzeuge" zurückgesetzt.' + 'Durch die Änderung des Zeitraums wurden die Kategorie "Fahrzeuge" zurückgesetzt.' // TODO: move to watch:zeitraum ); } ); diff --git a/frontend/src/components/messstelle/optionsmenue/panels/FahrzeugPanelMessstelle.vue b/frontend/src/components/messstelle/optionsmenue/panels/FahrzeugPanelMessstelle.vue index 0349ed87..5967f05d 100644 --- a/frontend/src/components/messstelle/optionsmenue/panels/FahrzeugPanelMessstelle.vue +++ b/frontend/src/components/messstelle/optionsmenue/panels/FahrzeugPanelMessstelle.vue @@ -38,7 +38,7 @@ const messstelleStore = useMessstelleStore(); const showFahrzeugkategorien = computed(() => { return ( messstelleStore.isKfzMessstelle && - messstelleStore.getActiveMessfaehigkeit.fahrzeugklassen === + messstelleStore.getActualMessfaehigkeit.fahrzeugklassen === Fahrzeugklasse.ACHT_PLUS_EINS && !( chosenOptionsCopy.value.intervall === diff --git a/frontend/src/components/messstelle/optionsmenue/panels/ZeitIntervall.vue b/frontend/src/components/messstelle/optionsmenue/panels/ZeitIntervall.vue index 79229362..6a0f29f2 100644 --- a/frontend/src/components/messstelle/optionsmenue/panels/ZeitIntervall.vue +++ b/frontend/src/components/messstelle/optionsmenue/panels/ZeitIntervall.vue @@ -57,9 +57,9 @@ const messstelleStore = useMessstelleStore(); const messdatenIntervalle = computed(() => { if ( - messstelleStore.getActiveMessfaehigkeit.intervall === + messstelleStore.getActualMessfaehigkeit.intervall === ZaehldatenIntervall.STUNDE_KOMPLETT || - (messstelleStore.getActiveMessfaehigkeit.intervall === + (messstelleStore.getActualMessfaehigkeit.intervall === ZaehldatenIntervall.STUNDE_VIERTEL_EINGESCHRAENKT && notOnlyKfzSelected.value) ) { @@ -113,20 +113,20 @@ const isZeitauswahlSpitzenstunde = computed(() => { const helpTextZeitintervall = computed(() => { if (hoverZeitintervall.value) { if ( - messstelleStore.getActiveMessfaehigkeit.intervall === + messstelleStore.getActualMessfaehigkeit.intervall === ZaehldatenIntervall.STUNDE_VIERTEL_EINGESCHRAENKT && notOnlyKfzSelected.value ) { return `Es sind Verkehrsarten und / oder Fahrzeugkategorien ausgewählt für die nur 60 Minuten Intervalle vorliegen.`; } if ( - messstelleStore.getActiveMessfaehigkeit.intervall === + messstelleStore.getActualMessfaehigkeit.intervall === ZaehldatenIntervall.STUNDE_VIERTEL_EINGESCHRAENKT ) { return `Nur für die Fahrzeugkategorie ${Fahrzeug.KFZ} liegen 15 und 30 Minuten Intervalle vor.`; } if ( - messstelleStore.getActiveMessfaehigkeit.intervall === + messstelleStore.getActualMessfaehigkeit.intervall === ZaehldatenIntervall.STUNDE_KOMPLETT ) { return `Auf Grund der Messfähigkeit der Messstelle können nur 60 Minuten als Intervallgröße ausgewählt werden.`; @@ -139,7 +139,7 @@ watch( () => chosenOptionsCopy.value.zeitauswahl, () => { if (isIntervallChangingLocked.value) { - let intervall = messstelleStore.getActiveMessfaehigkeit.intervall; + let intervall = messstelleStore.getActualMessfaehigkeit.intervall; if (intervall === ZaehldatenIntervall.STUNDE_VIERTEL_EINGESCHRAENKT) { intervall = ZaehldatenIntervall.STUNDE_VIERTEL; } diff --git a/frontend/src/components/messstelle/optionsmenue/panels/ZeitPanel.vue b/frontend/src/components/messstelle/optionsmenue/panels/ZeitPanel.vue index dfc85f51..91980b9f 100644 --- a/frontend/src/components/messstelle/optionsmenue/panels/ZeitPanel.vue +++ b/frontend/src/components/messstelle/optionsmenue/panels/ZeitPanel.vue @@ -192,13 +192,14 @@ watch([chosenOptionsCopyWochentag, chosenOptionsCopyZeitraum], () => { } }); -watch(chosenOptionsCopyZeitraum, () => { +watch(chosenOptionsCopyZeitraum, () => { // TODO: hier warnung für zurücksetzen calculateChoosableOptions(); }); function calculateChoosableOptions(): void { - messstelleStore.calculateActiveMessfaehigkeit( - chosenOptionsCopy.value.zeitraum[0] + messstelleStore.calculateActualMessfaehigkeit( + chosenOptionsCopy.value.zeitraum[0], + chosenOptionsCopy.value.zeitraum[1] ); } diff --git a/frontend/src/components/messstelle/optionsmenue/panels/content/FahrzeugPanelVerkehrsartenContent.vue b/frontend/src/components/messstelle/optionsmenue/panels/content/FahrzeugPanelVerkehrsartenContent.vue index 512e8177..77a67abd 100644 --- a/frontend/src/components/messstelle/optionsmenue/panels/content/FahrzeugPanelVerkehrsartenContent.vue +++ b/frontend/src/components/messstelle/optionsmenue/panels/content/FahrzeugPanelVerkehrsartenContent.vue @@ -565,7 +565,7 @@ function isTypeDisabled(type: string): boolean { ((chosenOptionsCopy.value.intervall === ZaehldatenIntervall.STUNDE_VIERTEL || chosenOptionsCopy.value.intervall === ZaehldatenIntervall.STUNDE_HALB) && - messstelleStore.getActiveMessfaehigkeit.intervall === + messstelleStore.getActualMessfaehigkeit.intervall === ZaehldatenIntervall.STUNDE_VIERTEL_EINGESCHRAENKT && Fahrzeug.KFZ !== type) ); diff --git a/frontend/src/store/MessstelleStore.ts b/frontend/src/store/MessstelleStore.ts index 06e222f7..bde6d62e 100644 --- a/frontend/src/store/MessstelleStore.ts +++ b/frontend/src/store/MessstelleStore.ts @@ -7,11 +7,15 @@ import { defineStore } from "pinia"; import { computed, ref } from "vue"; import DetektierteFahrzeugart from "@/types/enum/DetektierteFahrzeugart"; +import Fahrzeugklasse from "@/types/enum/Fahrzeugklasse"; +import ZaehldatenIntervall from "@/types/enum/ZaehldatenIntervall"; import { useDateUtils } from "@/util/DateUtils"; import DefaultObjectCreator from "@/util/DefaultObjectCreator"; +import { useMessfaehigkeitRanking } from "@/util/MessfaehigkeitRanking"; export const useMessstelleStore = defineStore("messstelleStore", () => { const dateUtils = useDateUtils(); + const messfaehigkeitRanking = useMessfaehigkeitRanking(); const messstelleInfo = ref({} as MessstelleInfoDTO); const activeTab = ref(0); @@ -23,7 +27,8 @@ export const useMessstelleStore = defineStore("messstelleStore", () => { const belastungsplanMinSize = ref(0); const belastungsplanMaxSize = ref(""); const belastungsplanChosenSize = ref(1); - const activeMessfaehigkeit = ref( + // Actual calculated values of Messfähigkeit for the selected day or time range + const actualMessfaehigkeit = ref( DefaultObjectCreator.createDefaultMessfaehigkeitDTO() ); const includedMeasuringDays = ref(0); @@ -44,7 +49,7 @@ export const useMessstelleStore = defineStore("messstelleStore", () => { const getBelastungsplanChosenSize = computed( () => belastungsplanChosenSize.value ); - const getActiveMessfaehigkeit = computed(() => activeMessfaehigkeit.value); + const getActualMessfaehigkeit = computed(() => actualMessfaehigkeit.value); const getIncludedMeasuringDays = computed(() => includedMeasuringDays.value); const getRequestedMeasuringDays = computed( () => requestedMeasuringDays.value @@ -79,17 +84,56 @@ export const useMessstelleStore = defineStore("messstelleStore", () => { function setBelastungsplanChosenSize(payload: number) { belastungsplanChosenSize.value = payload; } - function calculateActiveMessfaehigkeit(selectedDate: string): void { + function calculateActualMessfaehigkeit( + selectedAb: string, + selectedBis?: string + ): void { + actualMessfaehigkeit.value.gueltigAb = selectedAb; + actualMessfaehigkeit.value.gueltigBis = selectedBis + ? selectedBis + : selectedAb; + let minFahrzeugklassen: Fahrzeugklasse | null = null; + let minIntervall: ZaehldatenIntervall | null = null; + messstelleInfo.value.messfaehigkeiten.forEach( (faehigkeit: MessfaehigkeitDTO) => { - if ( - dateUtils.isDateBetweenAsStrings( - selectedDate, - faehigkeit.gueltigAb, - faehigkeit.gueltigBis - ) - ) { - activeMessfaehigkeit.value = faehigkeit; + if (selectedBis) { + if ( + dateUtils.intersectsRange( + selectedAb, + selectedBis, + faehigkeit.gueltigAb, + faehigkeit.gueltigBis + ) + ) { + minFahrzeugklassen = messfaehigkeitRanking.getMinFahrzeugklassen( + faehigkeit.fahrzeugklassen, + minFahrzeugklassen + ); + minIntervall = messfaehigkeitRanking.getMinIntervall( + faehigkeit.intervall, + minIntervall + ); + } + actualMessfaehigkeit.value.fahrzeugklassen = minFahrzeugklassen + ? minFahrzeugklassen + : Fahrzeugklasse.SUMME_KFZ; + actualMessfaehigkeit.value.intervall = minIntervall + ? minIntervall + : ZaehldatenIntervall.STUNDE_KOMPLETT; + } else { + // single day selected + if ( + dateUtils.isDateBetweenAsStrings( + selectedAb, + faehigkeit.gueltigAb, + faehigkeit.gueltigBis + ) + ) { + actualMessfaehigkeit.value.fahrzeugklassen = + faehigkeit.fahrzeugklassen; + actualMessfaehigkeit.value.intervall = faehigkeit.intervall; + } } } ); @@ -111,7 +155,7 @@ export const useMessstelleStore = defineStore("messstelleStore", () => { getBelastungsplanMinSize, getBelastungsplanMaxSize, getBelastungsplanChosenSize, - getActiveMessfaehigkeit, + getActualMessfaehigkeit, getIncludedMeasuringDays, getRequestedMeasuringDays, setActiveTab, @@ -123,7 +167,7 @@ export const useMessstelleStore = defineStore("messstelleStore", () => { setBelastungsplanMinSize, setBelastungsplanMaxSize, setBelastungsplanChosenSize, - calculateActiveMessfaehigkeit, + calculateActualMessfaehigkeit, setIncludedMeasuringDays, setRequestedMeasuringDays, }; diff --git a/frontend/src/util/FahrzeugPanelTools.ts b/frontend/src/util/FahrzeugPanelTools.ts index 2dc5d78b..2ee54ba6 100644 --- a/frontend/src/util/FahrzeugPanelTools.ts +++ b/frontend/src/util/FahrzeugPanelTools.ts @@ -11,8 +11,8 @@ export function useFahrzeugPanelTools() { return messstelleStore.isKfzMessstelle; }); - const activeFahrzeugklasse = computed(() => { - return messstelleStore.getActiveMessfaehigkeit.fahrzeugklassen; + const actualFahrzeugklasse = computed(() => { + return messstelleStore.getActualMessfaehigkeit.fahrzeugklassen; }); /** @@ -25,7 +25,7 @@ export function useFahrzeugPanelTools() { } if (isKfzMessstelle.value) { let result = true; - switch (activeFahrzeugklasse.value) { + switch (actualFahrzeugklasse.value) { case Fahrzeugklasse.ACHT_PLUS_EINS: result = Fahrzeug.RAD.toUpperCase() === type.toUpperCase(); break; From 597e33045dca5aefac3584a51ce9f7e8f0797477 Mon Sep 17 00:00:00 2001 From: "martin.dietrich" Date: Fri, 13 Dec 2024 15:43:37 +0100 Subject: [PATCH 4/7] SUMME_KFZ string adjusted --- frontend/src/types/enum/Fahrzeugklasse.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/types/enum/Fahrzeugklasse.ts b/frontend/src/types/enum/Fahrzeugklasse.ts index af520bd3..b39e9d35 100644 --- a/frontend/src/types/enum/Fahrzeugklasse.ts +++ b/frontend/src/types/enum/Fahrzeugklasse.ts @@ -1,6 +1,6 @@ enum Fahrzeugklasse { RAD = "RAD", - SUMME_KFZ = "Summe_KFZ", + SUMME_KFZ = "Summe_Kraftfahrzeugverkehr", ZWEI_PLUS_EINS = "2+1", ACHT_PLUS_EINS = "8+1", } From 5acbd8665d5db1f2a22024f19bd9c8e087012417 Mon Sep 17 00:00:00 2001 From: "martin.dietrich" Date: Fri, 13 Dec 2024 15:47:35 +0100 Subject: [PATCH 5/7] TODO rem. --- .../messstelle/optionsmenue/OptionsmenueMessstelle.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/components/messstelle/optionsmenue/OptionsmenueMessstelle.vue b/frontend/src/components/messstelle/optionsmenue/OptionsmenueMessstelle.vue index 3f41d6a5..1573e50f 100644 --- a/frontend/src/components/messstelle/optionsmenue/OptionsmenueMessstelle.vue +++ b/frontend/src/components/messstelle/optionsmenue/OptionsmenueMessstelle.vue @@ -235,7 +235,7 @@ function resetOptions(): void { } watch( - () => messstelleStore.getActualMessfaehigkeit.fahrzeugklassen, // TODO: why not watch actualMf.interval? + () => messstelleStore.getActualMessfaehigkeit.fahrzeugklassen, () => { chosenOptions.value.fahrzeuge = DefaultObjectCreator.createDefaultFahrzeugOptions(); From f69b154bd793604255239c84d018ea83720c2100 Mon Sep 17 00:00:00 2001 From: "martin.dietrich" Date: Mon, 16 Dec 2024 14:15:25 +0100 Subject: [PATCH 6/7] Ranking-Arrays moved to their enums --- frontend/src/types/enum/Fahrzeugklasse.ts | 2 ++ frontend/src/types/enum/ZaehldatenIntervall.ts | 2 ++ frontend/src/util/MessfaehigkeitRanking.ts | 10 ++++------ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/frontend/src/types/enum/Fahrzeugklasse.ts b/frontend/src/types/enum/Fahrzeugklasse.ts index b39e9d35..16f741a1 100644 --- a/frontend/src/types/enum/Fahrzeugklasse.ts +++ b/frontend/src/types/enum/Fahrzeugklasse.ts @@ -5,4 +5,6 @@ enum Fahrzeugklasse { ACHT_PLUS_EINS = "8+1", } +export const RankingFahrzeugklassen: Fahrzeugklasse[] = [Fahrzeugklasse.SUMME_KFZ, Fahrzeugklasse.ZWEI_PLUS_EINS, Fahrzeugklasse.ACHT_PLUS_EINS]; + export default Fahrzeugklasse; diff --git a/frontend/src/types/enum/ZaehldatenIntervall.ts b/frontend/src/types/enum/ZaehldatenIntervall.ts index 7b479eaa..c5f88f6a 100644 --- a/frontend/src/types/enum/ZaehldatenIntervall.ts +++ b/frontend/src/types/enum/ZaehldatenIntervall.ts @@ -21,4 +21,6 @@ export const BeschreibungToZaehldatenIntervall = new Map( [...ZaehldatenIntervallToBeschreibung].reverse() ); +export const RankingIntervall: ZaehldatenIntervall[] = [ZaehldatenIntervall.STUNDE_KOMPLETT, ZaehldatenIntervall.STUNDE_HALB, ZaehldatenIntervall.STUNDE_VIERTEL_EINGESCHRAENKT, ZaehldatenIntervall.STUNDE_VIERTEL]; + export default ZaehldatenIntervall; diff --git a/frontend/src/util/MessfaehigkeitRanking.ts b/frontend/src/util/MessfaehigkeitRanking.ts index f5512ff1..35488967 100644 --- a/frontend/src/util/MessfaehigkeitRanking.ts +++ b/frontend/src/util/MessfaehigkeitRanking.ts @@ -1,10 +1,8 @@ -import Fahrzeugklasse from "@/types/enum/Fahrzeugklasse"; -import ZaehldatenIntervall from "@/types/enum/ZaehldatenIntervall"; +import Fahrzeugklasse,{RankingFahrzeugklassen} from "@/types/enum/Fahrzeugklasse"; +import ZaehldatenIntervall,{RankingIntervall} from "@/types/enum/ZaehldatenIntervall"; export function useMessfaehigkeitRanking() { - let rankingFahrzeugklassen: Fahrzeugklasse[] = [Fahrzeugklasse.SUMME_KFZ, Fahrzeugklasse.ZWEI_PLUS_EINS, Fahrzeugklasse.ACHT_PLUS_EINS]; - let rankingIntervall: ZaehldatenIntervall[] = [ZaehldatenIntervall.STUNDE_KOMPLETT, ZaehldatenIntervall.STUNDE_HALB, ZaehldatenIntervall.STUNDE_VIERTEL_EINGESCHRAENKT, ZaehldatenIntervall.STUNDE_VIERTEL]; function getMinFahrzeugklassen(fahrzeugklassen1: Fahrzeugklasse | null, fahrzeugklassen2: Fahrzeugklasse | null): Fahrzeugklasse { if (!fahrzeugklassen1 && !fahrzeugklassen2) { @@ -19,7 +17,7 @@ export function useMessfaehigkeitRanking() { if (fahrzeugklassen1 === Fahrzeugklasse.RAD || fahrzeugklassen2 === Fahrzeugklasse.RAD){ return Fahrzeugklasse.RAD; } - return rankingFahrzeugklassen.findIndex(fzklassen => fzklassen === fahrzeugklassen1) < rankingFahrzeugklassen.findIndex(fzklassen => fzklassen === fahrzeugklassen2) ? fahrzeugklassen1 : fahrzeugklassen2; + return RankingFahrzeugklassen.findIndex(fzklassen => fzklassen === fahrzeugklassen1) < RankingFahrzeugklassen.findIndex(fzklassen => fzklassen === fahrzeugklassen2) ? fahrzeugklassen1 : fahrzeugklassen2; } function getMinIntervall(intervall1: ZaehldatenIntervall | null, intervall2: ZaehldatenIntervall | null) : ZaehldatenIntervall{ @@ -32,7 +30,7 @@ export function useMessfaehigkeitRanking() { if (!intervall2) { return intervall1 as ZaehldatenIntervall; } - return rankingIntervall.findIndex(interv => interv === intervall1) < rankingIntervall.findIndex(interv => interv === intervall2) ? intervall1 : intervall2; + return RankingIntervall.findIndex(interv => interv === intervall1) < RankingIntervall.findIndex(interv => interv === intervall2) ? intervall1 : intervall2; } return { From 950b934294140dea88e172f4986298eba365eec0 Mon Sep 17 00:00:00 2001 From: "martin.dietrich" Date: Fri, 20 Dec 2024 11:37:42 +0100 Subject: [PATCH 7/7] reset-warning moved --- .../optionsmenue/OptionsmenueMessstelle.vue | 3 --- .../messstelle/optionsmenue/panels/ZeitPanel.vue | 12 +++++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/messstelle/optionsmenue/OptionsmenueMessstelle.vue b/frontend/src/components/messstelle/optionsmenue/OptionsmenueMessstelle.vue index 2318a1d0..526c91b4 100644 --- a/frontend/src/components/messstelle/optionsmenue/OptionsmenueMessstelle.vue +++ b/frontend/src/components/messstelle/optionsmenue/OptionsmenueMessstelle.vue @@ -271,9 +271,6 @@ watch( chosenOptions.value.fahrzeuge.radverkehr = !chosenOptions.value.fahrzeuge.kraftfahrzeugverkehr; - snackbarStore.showWarning( - 'Durch die Änderung des Zeitraums wurden die Kategorie "Fahrzeuge" zurückgesetzt.' // TODO: move to watch:zeitraum - ); } ); diff --git a/frontend/src/components/messstelle/optionsmenue/panels/ZeitPanel.vue b/frontend/src/components/messstelle/optionsmenue/panels/ZeitPanel.vue index 2ee6ff38..1db7e90c 100644 --- a/frontend/src/components/messstelle/optionsmenue/panels/ZeitPanel.vue +++ b/frontend/src/components/messstelle/optionsmenue/panels/ZeitPanel.vue @@ -61,6 +61,7 @@ import ZeitauswahlRadiogroup from "@/components/messstelle/optionsmenue/panels/Z import ZeitauswahlStundeOrBlock from "@/components/messstelle/optionsmenue/panels/ZeitauswahlStundeOrBlock.vue"; import ZeitIntervall from "@/components/messstelle/optionsmenue/panels/ZeitIntervall.vue"; import { useMessstelleStore } from "@/store/MessstelleStore"; +import { useSnackbarStore } from "@/store/SnackbarStore"; import StartAndEndDate from "@/types/common/StartAndEndDate"; import { useDateUtils } from "@/util/DateUtils"; import { useOptionsmenuUtils } from "@/util/OptionsmenuUtils"; @@ -72,6 +73,7 @@ const chosenOptionsCopy = defineModel({ required: true }); const messstelleStore = useMessstelleStore(); const dateUtils = useDateUtils(); const isChosenTagesTypValid = ref(true); +const snackbarStore = useSnackbarStore(); const isDateRange = computed(() => { const chosenDates = [ @@ -194,16 +196,20 @@ watch( { deep: true } ); -watch( // TODO: hier warnung für zurücksetzen +watch( chosenOptionsCopyStartAndEndDatum, () => { const isoStartDate = dateUtils.formatDateToISO( chosenOptionsCopy.value.zeitraumStartAndEndDate.startDate ); const isoEndDate = dateUtils.formatDateToISO( - chosenOptionsCopy.value.zeitraumStartAndEndDate.endDate + chosenOptionsCopy.value.zeitraumStartAndEndDate.endDate + ); + messstelleStore.calculateActualMessfaehigkeit(isoStartDate, isoEndDate); + + snackbarStore.showWarning( + 'Durch die Änderung des Zeitraums wurden die Kategorie "Fahrzeuge" zurückgesetzt.' ); - messstelleStore.calculateActiveMessfaehigkeit(isoStartDate, isoEndDate); }, { deep: true } );