participantRefunds->getByToken($refundToken); return new InertiaProvider('ParticipantRefund/RefundPage', $this->props($refund))->render(); } /** * @return array */ private function props(?ParticipantRefund $refund): array { // Unbekannt und abgebrochen sind für den Teili derselbe Zustand: es gibt nichts zu tun. if ($refund === null || $refund->status === ParticipantRefund::STATUS_CANCELLED) { return [ 'state' => 'unavailable', 'message' => AcceptRefundCommand::NO_OPEN_REFUND, ]; } $participant = $refund->participant; $event = $refund->event; $common = [ 'token' => $refund->token, 'name' => $participant->getNicename(), 'eventTitle' => $event->name, 'eventEmail' => $event->email, 'amount' => $refund->amount?->toString() ?? '0,00 Euro', 'reason' => $refund->reasonLabel(), 'reasonNote' => $refund->reason_note, ]; if ($refund->isAccepted()) { return array_merge($common, [ 'state' => 'accepted', 'acceptedAt' => $refund->accepted_at?->format('d.m.Y'), // Wurde gespendet, darf der Abschlusstext keine Überweisung ankündigen, die nicht kommt. 'donation' => $refund->isDonation(), ]); } // Woher das Erstattungskonto kommt, entscheidet die Zahlungsart -- und damit, was die Seite // fragt: gar nichts (Konto liegt vor), die Herkunftsfrage (es gab ein Ursprungskonto) oder nur // die Felder (Barzahlung, es gab nie eines). $accountSource = $refund->account_iban !== null ? RefundAccountSource::Known : $participant->refundData()->source; return array_merge($common, [ 'state' => 'open', 'accountSource' => $accountSource->value, // Der Name des page_texts-Eintrags, nicht der Text: Welche Erklärung gilt, entscheidet der // Server -- sonst könnten Seite und Beleg auseinanderlaufen. 'accountDeclarationText' => $accountSource->accountDeclarationText(), // Ist das Konto bekannt (aus dem Zahlungseingang), braucht der Teili es nicht einzugeben -- // er soll es aber wiedererkennen können, um einen Fehler zu melden. Deshalb maskiert: // Die vollständige Bankverbindung verlässt diese Seite weiterhin nicht. 'knownAccount' => $refund->account_iban === null ? null : [ 'owner' => $refund->account_owner, 'ibanMasked' => Iban::mask($refund->account_iban), ], ]); } }