Automatischer Zahlungsparser
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enumerations;
|
||||
|
||||
use App\Domains\ParticipantRefund\Actions\CreateRefundDocument\CreateRefundDocumentCommand;
|
||||
|
||||
/**
|
||||
* Woher das Konto kommt, auf das eine Erstattung geht -- die Antwort hängt an der Zahlungsart.
|
||||
*
|
||||
* Die Unterscheidung trägt eine Kontrolle: Erstattet wird auf das Konto, von dem der Beitrag kam, damit
|
||||
* sich über eine Erstattung kein Geld auf ein fremdes Konto umleiten lässt. Wo es nie ein solches Konto
|
||||
* gab (Barzahlung), kann diese Kontrolle nicht greifen -- dort tritt an ihre Stelle die Erklärung, dass
|
||||
* das angegebene Konto auf den eigenen Namen läuft.
|
||||
*
|
||||
* Reines Code-Enum wie {@see VatPricingMode}: Es wird zur Laufzeit aus der Zahlungsart abgeleitet und
|
||||
* nirgends gespeichert.
|
||||
*/
|
||||
enum RefundAccountSource: string
|
||||
{
|
||||
/** Das Konto liegt vor -- aus dem Zahlungseingang übernommen. Es wird nicht mehr erfragt. */
|
||||
case Known = 'known';
|
||||
|
||||
/** Es gab ein Ursprungskonto, wir kennen es nicht. Der Teili gibt es an und bestätigt die Herkunft. */
|
||||
case Origin = 'origin';
|
||||
|
||||
/** Es gab nie ein Konto (Barzahlung). Der Teili gibt eines an, das auf seinen Namen läuft. */
|
||||
case None = 'none';
|
||||
|
||||
/** Ob die Kontoangaben vom Teili erfragt werden müssen. */
|
||||
public function needsInput(): bool
|
||||
{
|
||||
return $this !== self::Known;
|
||||
}
|
||||
|
||||
/**
|
||||
* Der `page_texts`-Eintrag mit der zweiten Erklärung des Auszahlungswegs.
|
||||
*
|
||||
* Hier und nicht in Seite bzw. Beleg getrennt, damit beide denselben Wortlaut zeigen: Was der Teili
|
||||
* gelesen hat, muss wörtlich das sein, was das PDF ihm zuschreibt.
|
||||
*/
|
||||
public function accountDeclarationText(): string
|
||||
{
|
||||
return $this === self::None
|
||||
? CreateRefundDocumentCommand::OWN_ACCOUNT_DECLARATION_TEXT
|
||||
: CreateRefundDocumentCommand::ACCOUNT_DECLARATION_TEXT;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user