50 lines
1.9 KiB
PHP
50 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Domains\Rechnung\Actions\GeneratePdf;
|
|
|
|
class GeneratePdfRequest
|
|
{
|
|
public function __construct(
|
|
public readonly string $organisation,
|
|
public readonly string $anrede,
|
|
public readonly string $vorname,
|
|
public readonly string $nachname,
|
|
public readonly string $adresse,
|
|
public readonly string $plz,
|
|
public readonly string $ort,
|
|
public readonly string $email,
|
|
public readonly string $rechnungsnummer,
|
|
public readonly string $rechnungsdatum,
|
|
public readonly string $zahlungsziel,
|
|
public readonly string $bic,
|
|
public readonly string $iban,
|
|
public readonly array $positionen,
|
|
public readonly int $mwstSatz,
|
|
public readonly string $absenderEmail,
|
|
public readonly string $absenderTelefon,
|
|
) {}
|
|
|
|
public static function fromArray(array $data): self
|
|
{
|
|
return new self(
|
|
organisation: $data['organisation'] ?? '',
|
|
anrede: $data['anrede'] ?? '',
|
|
vorname: $data['vorname'] ?? '',
|
|
nachname: $data['nachname'] ?? '',
|
|
adresse: $data['adresse'] ?? '',
|
|
plz: $data['plz'] ?? '',
|
|
ort: $data['ort'] ?? '',
|
|
email: $data['email'] ?? '',
|
|
rechnungsnummer: $data['rechnungsnummer'] ?? '',
|
|
rechnungsdatum: $data['rechnungsdatum'] ?? '',
|
|
zahlungsziel: $data['zahlungsziel'] ?? '',
|
|
bic: $data['bic'] ?? '',
|
|
iban: $data['iban'] ?? '',
|
|
positionen: $data['positionen'] ?? [],
|
|
mwstSatz: (int) ($data['mwstSatz'] ?? 19),
|
|
absenderEmail: $data['absenderEmail'] ?? 'finanzen@sachsen.pfadfinden.de',
|
|
absenderTelefon: $data['absenderTelefon'] ?? '',
|
|
);
|
|
}
|
|
}
|