Schuldnerauswahlmöglichkeit

This commit is contained in:
Lordmau5 2023-06-26 16:53:52 +02:00
parent 02b38cbd8b
commit f04d75e7c0

View File

@ -86,9 +86,12 @@
</template>
<template #body-cell-geblecht="props">
<q-td
v-if="props.row.geblecht.length && witzigeEffekte"
v-if="props.row.geblecht.length"
:props="props"
class="cursor-pointer ichGehInDieDisko"
class="cursor-pointer"
:class="{
ichGehInDieDisko: witzigeEffekte
}"
@click="blechGesprächÖffnen(props.key)"
>
{{ props.value }}
@ -139,6 +142,16 @@
counter
outlined
/>
<q-select
v-model="schuldnerAuswähler"
multiple
class="q-my-md"
label="Schuldnerauswahl"
outlined
use-chips
:options="personenAuswahlMöglichkeitenMinusDerBlechner"
/>
</q-card-section>
<q-card-actions vertical>
@ -172,12 +185,14 @@
:rows-per-page-options="[0]"
virtual-scroll
>
<!-- ZÜRLEDIGEN: Gespräch / Platzen-Hoch mit den einzelnen Blechwerten -->
<template #body-cell-geblecht="props">
<q-td
v-if="props.row.geblecht.length && witzigeEffekte"
v-if="props.row.geblecht.length"
:props="props"
class="cursor-pointer ichGehInDieDisko"
class="cursor-pointer"
:class="{
ichGehInDieDisko: witzigeEffekte
}"
@click="blechGesprächÖffnen(props.key)"
>
{{ props.value }}
@ -199,7 +214,7 @@
v-model="blechGespräch"
full-width
>
<q-card>
<q-card full-width>
<q-card-section class="row items-center q-pb-none">
<q-space />
<q-btn
@ -219,7 +234,24 @@
row-key="grund"
:rows-per-page-options="[0]"
virtual-scroll
/>
>
<template #body-cell-grund="props">
<q-td
:props="props"
>
<q-btn
flat
color="red"
size="small"
padding="xs"
icon="delete"
:disabled="!wirdDieShiftTasteGehalten"
@click="blechungLöschen(props.rowIndex)"
/>
{{ props.value }}
</q-td>
</template>
</q-table>
</q-card>
</q-dialog>
</template>
@ -227,13 +259,32 @@
<script setup>
// TODO: Multiselect wenn Geld blechen um nur bestimmte Personen mit einzubeziehen
import { computed, onMounted, ref } from 'vue';
import { computed, onMounted, ref, watch } from 'vue';
const personen = ref({});
const personenNamensEingabeFeld = ref('');
const personenAuswähler = ref(null);
const schuldnerAuswähler = ref(null);
const personenAuswahlMöglichkeitenMinusDerBlechner = computed(() => {
return personenAuswahlMöglichkeiten.value.filter(nameDerPerson => nameDerPerson !== personenAuswähler.value);
});
watch(personenAuswähler, () => {
schuldnerAuswähler.value = personenAuswahlMöglichkeitenMinusDerBlechner.value;
});
const blechungLöschen = (reihenNummerDerBlechung) => {
const person = personen.value[blechGesprächPerson.value];
person.geblecht.splice(reihenNummerDerBlechung, 1);
if (!person.geblecht.length) {
blechGespräch.value = false;
}
};
const geldEingabeFeld = ref(0.0);
const grundEingabeFeld = ref('');
@ -252,10 +303,10 @@ const schuldenDiskoGeschwindigkeit = computed(() => {
return `${DISKORUTSCHER.value}ms`;
});
function blechGesprächÖffnen (nameDerPerson) {
const blechGesprächÖffnen = (nameDerPerson) => {
blechGespräch.value = true;
blechGesprächPerson.value = nameDerPerson;
}
};
const blechGesprächZeilen = computed(() => {
if (!blechGesprächPerson.value) return [];
@ -312,6 +363,7 @@ function geldBlechen () {
p.geblecht.push({
grund: grundEingabeFeld.value,
geld: geldEingabeFeld.value,
schuldner: schuldnerAuswähler.value,
});
grundEingabeFeld.value = '';
@ -320,10 +372,22 @@ function geldBlechen () {
speicherLeute();
}
function blechSumme (gesamtBlech) {
function blechSumme (blechListe, nameDerPerson = false) {
let gesamtBlechGeld = 0;
for (const blech of gesamtBlech) gesamtBlechGeld += blech.geld;
// / Object.keys(personen.value).length;
for (const blech of blechListe) {
if (!nameDerPerson) {
gesamtBlechGeld += blech.geld;
continue;
}
if (!blech.schuldner.includes(nameDerPerson)) continue;
// + 1, da wir uns selber ja auch mit einbeziehen
gesamtBlechGeld += blech.geld / (blech.schuldner.length + 1);
}
return gesamtBlechGeld;
}
@ -344,6 +408,13 @@ const blechGesprächSpalten = [
sortable: true,
format: (reihenWert) => reihenWert ? `${gleitzahlenAnalysierer(reihenWert) || '0.00'}` : '',
},
{
name: 'schuldner',
label: 'Schuldner',
field: 'schuldner',
sortable: false,
format: (reihenWert) => reihenWert.join(', '),
},
];
const tabellenSpalten = computed(() => {
@ -370,12 +441,6 @@ const tabellenSpalten = computed(() => {
name: `an-${name}`,
label: `An ${name}`,
classes: reihe => witzigeEffekte.value && reihe.an[name] ? 'duMusstNochGeldZahlenDuLackaffe' : '',
// classes: reihe => {
// if (!witzigeEffekte.value) return '';
// if (!reihe.an[name]) return '';
// return DISKOMODUS.value ? 'ZAHLMIRENDLICHDASGELDDUAFFE' : 'duMusstNochGeldZahlenDuLackaffe';
// },
field: reihe => reihe.an[name],
format: (reihenWert) => reihenWert ? `${gleitzahlenAnalysierer(reihenWert) || '0.00'}` : '',
});
@ -402,7 +467,7 @@ function reihenRechner () {
for(const [nameDerAnderenPerson, datenDerAnderenPerson] of personenEinträge) {
if (name === nameDerAnderenPerson) continue;
const blechTeiler = blechSumme(datenDerAnderenPerson.geblecht) / Object.keys(personen.value).length;
const blechTeiler = blechSumme(datenDerAnderenPerson.geblecht, name); // / Object.keys(personen.value).length;
personenObjekt.an[nameDerAnderenPerson] = blechTeiler;
}