feat: financial data check for teamers, improved enforced checks logic

addresses #869at5rtp
This commit is contained in:
Björn Fromme
2026-08-10 18:06:25 +02:00
parent fd5d478a5c
commit 388ecf9603
22 changed files with 1196 additions and 195 deletions
+119
View File
@@ -0,0 +1,119 @@
<?php
namespace App\Model;
use App\Entity\Embeddable\BankAccount;
use App\Entity\Teamer;
use Symfony\Component\Validator\Constraints as Assert;
class FinancialDataDto
{
#[Assert\NotBlank(message: 'Bitte gib deine SteuerID an')]
private ?string $taxId = null;
#[Assert\NotBlank(message: 'Bitte gib die IBAN an')]
#[Assert\Iban(message: 'Bitte gib eine gültige IBAN an')]
private ?string $iban = null;
#[Assert\NotBlank(message: 'Bitte gib den BIC an')]
private ?string $bic = null;
#[Assert\NotBlank(message: 'Bitte gib den Namen deiner Bank an')]
private ?string $bank = null;
#[Assert\NotBlank(message: 'Bitte gib den Kontoinhaber an')]
private ?string $holder = null;
public static function fromTeamer(Teamer $teamer): self
{
$instance = (new self())->setTaxId($teamer->getTaxId());
if (null === $bankAccount = $teamer->getBankAccount()) {
return $instance;
}
return $instance
->setIban($bankAccount->getIban())
->setBic($bankAccount->getBic())
->setBank($bankAccount->getBank())
->setHolder($bankAccount->getHolder())
;
}
public function applyTo(Teamer $teamer): void
{
if (null === $bankAccount = $teamer->getBankAccount()) {
$bankAccount = new BankAccount();
$teamer->setBankAccount($bankAccount);
}
$bankAccount
->setIban($this->getIban())
->setBic($this->getBic())
->setBank($this->getBank())
->setHolder($this->getHolder())
;
$teamer->setTaxId($this->getTaxId());
}
public function getTaxId(): ?string
{
return $this->taxId;
}
public function setTaxId(?string $taxId): static
{
$this->taxId = $taxId;
return $this;
}
public function getIban(): ?string
{
return $this->iban;
}
public function setIban(?string $iban): static
{
$this->iban = $iban;
return $this;
}
public function getBic(): ?string
{
return $this->bic;
}
public function setBic(?string $bic): static
{
$this->bic = $bic;
return $this;
}
public function getBank(): ?string
{
return $this->bank;
}
public function setBank(?string $bank): static
{
$this->bank = $bank;
return $this;
}
public function getHolder(): ?string
{
return $this->holder;
}
public function setHolder(?string $holder): static
{
$this->holder = $holder;
return $this;
}
}
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Model;
use Symfony\Component\Validator\Constraints as Assert;
class PersonalDataConfirmationDto
{
#[Assert\IsTrue(message: 'Deine Bestätigung ist erforderlich')]
private ?bool $confirmed = false;
public function getConfirmed(): ?bool
{
return $this->confirmed;
}
public function setConfirmed(?bool $confirmed): static
{
$this->confirmed = $confirmed;
return $this;
}
}