Skip to content

Commit

Permalink
Merge pull request #127 from w3geo/feedback-update-round-4
Browse files Browse the repository at this point in the history
Feedback update round 4
  • Loading branch information
arnold-pichler authored Nov 25, 2024
2 parents 202a909 + a17b9c4 commit a467f4b
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 52 deletions.
39 changes: 28 additions & 11 deletions src/components/TheEntryForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -353,12 +353,15 @@
<v-row
no-gutters
v-if="
entry.cultures[i - 1].kultur != '' &&
tableAttribut(
'kulturen',
entry.cultures[i - 1].kultur,
'Ertragserfassungsart',
) !== 'Düngeverbot'
(i === 1 &&
lookup.aussaatTypeFilter.zwischenG.includes(entry.cultures[0].kultur)) ||
(i > 1 &&
entry.cultures[i - 1].kultur != '' &&
tableAttribut(
'kulturen',
entry.cultures[i - 1].kultur,
'Ertragserfassungsart',
) !== 'Düngeverbot')
"
>
<v-col cols="12" class="mb-2 pa-1 bg-brown-lighten-4">Düngungen</v-col>
Expand Down Expand Up @@ -650,12 +653,26 @@
</v-col>
</v-row>
<v-row no-gutters class="bg-grey-darken-2"
><v-col :cols="dataWindow === 1 ? 12 : 6" class="pa-2">
><v-col :cols="dataWindow === 1 ? 12 : 4" class="pa-2">
<v-btn density="compact" color="red" prepend-icon="mdi-close" block @click.stop="cancelData"
>Abbrechen</v-btn
> </v-col
><v-col cols="6" class="pa-2" v-if="dataWindow === 2">
<v-btn density="compact" color="green" prepend-icon="mdi-check" block @click.stop="saveData"
><v-col cols="4" class="pa-2" v-if="dataWindow === 2">
<v-btn
density="compact"
color="green"
prepend-icon="mdi-check"
block
@click.stop="saveData(true)"
>Kopie Speichern</v-btn
> </v-col
><v-col cols="4" class="pa-2" v-if="dataWindow === 2">
<v-btn
density="compact"
color="green-darken-2"
prepend-icon="mdi-check"
block
@click.stop="saveData(false)"
>Speichern</v-btn
>
</v-col></v-row
Expand Down Expand Up @@ -935,13 +952,13 @@ function FloatTrunc(input) {
return result;
}
async function saveData() {
async function saveData(copy) {
const validated = await entryform.value.validate();
if (!validated.valid) {
return;
}
if (currentSaved.value !== null) {
if (!copy && currentSaved.value !== null) {
savedData.value[currentSaved.value] = { ...entry.value };
} else {
savedData.value.push({ ...entry.value });
Expand Down
7 changes: 5 additions & 2 deletions src/components/TheFertilizerBalance.vue
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,10 @@

<v-sheet v-for="(kultur, index) in bilanz.bilanz" :key="`bilanztable${index}`">
<v-card
v-if="entry.cultures[index].kultur !== ''"
v-if="
entry.cultures[index].kultur !== '' &&
!lookup.aussaatTypeFilter.zwischenU.includes(entry.cultures[index].kultur)
"
class="ma-2 cardBorder"
:class="index == 0 ? 'zwischenfrucht' : 'hauptfrucht'"
elevation="0"
Expand Down Expand Up @@ -162,7 +165,7 @@ import { useLookup } from '../composables/useLookUps.js';
const winMaximize = ref(false);
const bilanz = computed(() => updateBilanz());
const { tableAttribut } = useLookup();
const { lookup, tableAttribut } = useLookup();
</script>

<style scoped>
Expand Down
100 changes: 61 additions & 39 deletions src/composables/useBalanceCalculator.js
Original file line number Diff line number Diff line change
Expand Up @@ -409,36 +409,59 @@ function calculateBilanz(retVal) {
if (zfungenutzt) {
retVal[c].nsaldo = entry.value.nsaldo * redfaktor;
}
if (entry.value.nsaldo <= retVal[c].nminman) {
retVal[c].nsaldo = 0;
if (vfgemüse && !zfungenutzt && !zfgenutzt) {
if (retVal[c].nsaldo > retVal[c].nminman) {
retVal[c].nminman = 0;
} else {
retVal[c].nsaldo = 0;
}
}
}

if (hfmanuell && vfgemüse && zfungenutzt && retVal[c].nsaldo > retVal[c].nminman) {
retVal[c].nminman = 0;
}
}
// 2. Vorfruchtwert der Vorfrucht
retVal[c].vfwert = vfnmin;
if (
(vfgemüse && hfgemüse && hfmanuell) ||
(vfgemüse && hfgemüse && !zfungenutzt && !zfgenutzt && entry.value.nsaldo > vfnmin) ||
(vfgemüse && hfgemüse && zfungenutzt && entry.value.nsaldo * redfaktor > vfnmin) ||
(vfgemüse && retVal[c].vfwert === retVal[c].nminman)
(vfgemüse && hfgemüse && !zfungenutzt && !zfgenutzt && !hfmanuell) ||
(vfgemüse && !hfgemüse && !zfgenutzt && !hfmanuell) ||
(!vfgemüse && !zfgenutzt)
) {
retVal[c].vfwert = 0;
if (entry.value.flaeche_grundwasserschutz > 0 && hfgemüse && retVal[c].nsaldo <= vfnmin) {
retVal[c].vfwert = vfnmin;
retVal[c].nminman = 0;
retVal[c].nsaldo = 0;
}
if (!vfgemüse) {
retVal[c].vfwert = vfnmin;
}
if (!hfgemüse) {
retVal[c].vfwert = vfnmin;
retVal[c].nminman = 0;
}
}

// Ungenutzte ZF
if (vfgemüse && hfgemüse && zfungenutzt) {
if (!hfmanuell && retVal[c].nsaldo < vfnmin) {
retVal[c].vfwert = vfnmin;
retVal[c].nminman = 0;
retVal[c].nsaldo = 0;
}
if (hfmanuell && retVal[c].nsaldo <= retVal[c].nminman) {
retVal[c].vfwert = 0;
retVal[c].nsaldo = 0;
}
if (!hfmanuell && retVal[c].nsaldo > retVal[c].nminman) {
retVal[c].vfwert = 0;
retVal[c].nminman = 0;
}
}

// 3. Vorfruchtwert der Zwischenfrucht
if (zfungenutzt) {
retVal[c].vfwertzf = zfnmin;
}

// 4. manueller NMin Wert
if (hfmanuell) {
if (
(zfungenutzt && entry.value.nsaldo * redfaktor > retVal[c].nminman) ||
(!zfungenutzt && !zfgenutzt && entry.value.nsaldo > retVal[c].nminman)
) {
retVal[c].nminman = 0;
}
}
}

// F ---------- ANRECHNUNG NSALDO FÜR ALLE ANDEREN FÄLLE AUF HAUPTFRUCHT 1 ----------------------------
Expand Down Expand Up @@ -476,12 +499,6 @@ function calculateBilanz(retVal) {
),
)
: 0;
const hf2nmin =
entry.value.cultures[c].kultur !== ''
? Number(
tableAttribut('kulturen', entry.value.cultures[c].kultur, 'VFW | Nmin selbes Jahr'),
)
: 0;

const hf2manuell =
Number(entry.value.cultures[c].nmin) !== Number(entry.value.cultures[c].nminvorgabe);
Expand All @@ -492,16 +509,19 @@ function calculateBilanz(retVal) {
entry.value.flaeche_grundwasserschutz > 0 &&
entry.value.teilnahme_grundwasserschutz_acker
) {
if (hf1gemüse && hf2gemüse) {
if (
(hf2manuell && retVal[c - 1].nbilanz * redfaktor > hf2manuellnmin) ||
(!hf2manuell && retVal[c - 1].nbilanz * redfaktor > hf2nmin)
) {
retVal[c].nsaldo = retVal[c - 1].nbilanz * redfaktor;
}
} else {
if (retVal[c - 1].nbilanz > 20) {
retVal[c].nsaldo = retVal[c - 1].nbilanz * redfaktor;
if (retVal[c - 1].nbilanz > 20) {
if (hf1gemüse && hf2gemüse) {
if (
(hf2manuell && retVal[c - 1].nbilanz * redfaktor > hf2manuellnmin) ||
(!hf2manuell && retVal[c - 1].nbilanz * redfaktor > hf1nmin)
) {
retVal[c].nsaldo = retVal[c - 1].nbilanz * redfaktor;
retVal[c].vfwert = 0;
}
} else {
if (retVal[c - 1].nbilanz > 20) {
retVal[c].nsaldo = retVal[c - 1].nbilanz * redfaktor;
}
}
}
}
Expand All @@ -526,11 +546,13 @@ function calculateBilanz(retVal) {
entry.value.flaeche_grundwasserschutz > 0 &&
entry.value.teilnahme_grundwasserschutz_acker &&
hf1gemüse &&
hf2gemüse &&
(retVal[c].nsaldo > 0 || retVal[c].nminman > 0 || retVal[c - 1].nbilanz <= 20)
hf2gemüse
) {
retVal[c].vfwert = 0;
if (hf2manuell || retVal[c].nsaldo > 0) {
retVal[c].vfwert = 0;
}
}

if (
entry.value.flaeche_grundwasserschutz > 0 &&
!entry.value.teilnahme_grundwasserschutz_acker &&
Expand All @@ -542,7 +564,7 @@ function calculateBilanz(retVal) {
if (entry.value.flaeche_grundwasserschutz === 0 && !hf2gemüse) {
retVal[c].vfwert = 0;
}
if (entry.value.flaeche_grundwasserschutz === 0 && hf2manuell) {
if (entry.value.flaeche_grundwasserschutz === 0 && hf2manuell && hf1gemüse) {
retVal[c].vfwert = 0;
}
}
Expand Down

0 comments on commit a467f4b

Please sign in to comment.