diff --git a/app/Domains/Event/Views/Partials/ParticipantsList.vue b/app/Domains/Event/Views/Partials/ParticipantsList.vue index 72ffa32..bc85933 100644 --- a/app/Domains/Event/Views/Partials/ParticipantsList.vue +++ b/app/Domains/Event/Views/Partials/ParticipantsList.vue @@ -86,6 +86,16 @@ const retainedAmount = computed(() => { const hasRetention = computed(() => retainedAmount.value > 0); +/** + * Das Konto, das die Zahlungsart kennt -- bei der Überweisung das des Zahlungseingangs. + * + * Ist es da, wird es weder erfragt noch bearbeitet: Erstattet wird auf das Konto, von dem der Beitrag + * kam, und genau das steht hier. `null`, solange nichts bekannt ist (Barzahlung, Altbestand). + */ +const knownRefundAccount = computed( + () => showParticipant.value?.refundData?.available ? showParticipant.value.refundData : null +); + const retainedAmountReadable = computed( () => retainedAmount.value.toFixed(2).replace('.', ',') + ' Euro' ); @@ -121,7 +131,8 @@ const refundFormComplete = computed(() => { } } - if (refundForm.captureMode === 'management') { + // Beim bekannten Konto gibt es nichts einzugeben -- es steht fest. + if (refundForm.captureMode === 'management' && !knownRefundAccount.value) { return refundForm.accountOwner.trim() !== '' && refundForm.accountIban.trim() !== ''; } @@ -429,7 +440,7 @@ function validateRefund() { // Beim Direktweg wird sofort eingereicht -- danach gibt es keine Gelegenheit mehr zu berichtigen. // Ob die IBAN wirklich stimmt, prüft der Server mit Prüfziffer und länderabhängiger Länge. - if (refundForm.captureMode === 'management') { + if (refundForm.captureMode === 'management' && !knownRefundAccount.value) { if (!refundForm.accountOwner.trim()) { refundErrors.accountOwner = 'Bitte gib an, wem das Konto gehört.'; } @@ -456,9 +467,14 @@ async function execRefund() { amount: refundForm.amount, reason: refundForm.reason, reasonNote: refundForm.reasonNote, - // Leer beim Weg über den Teili -- dann verschickt der Server nur den Link. - accountOwner: refundForm.captureMode === 'management' ? refundForm.accountOwner : '', - accountIban: refundForm.captureMode === 'management' ? refundForm.accountIban : '', + // Leer beim Weg über den Teili -- dann verschickt der Server nur den Link. Beim + // Sofort-Einreichen mit bekanntem Konto geht dieses mit; eingegeben wurde nichts. + accountOwner: refundForm.captureMode === 'management' + ? (knownRefundAccount.value?.accountOwner ?? refundForm.accountOwner) + : '', + accountIban: refundForm.captureMode === 'management' + ? (knownRefundAccount.value?.accountIban ?? refundForm.accountIban) + : '', // Spende: kein Konto, trotzdem sofort eingereicht. donation: refundForm.captureMode === 'donation', // Leer bei voller Erstattung -- dann gibt es nichts zu begründen. @@ -805,14 +821,36 @@ function mailToGroup(groupKey) { Liegt die Bankverbindung schon vor oder will der Teili spenden, entfällt der Umweg über ihn: die Erstattung wird sofort eingereicht. Er bekommt den Beleg trotzdem. --> + +
+ Konto aus dem Zahlungseingang + {{ knownRefundAccount.accountOwner }} + {{ knownRefundAccount.accountIban }} + {{ knownRefundAccount.source }} +
+