Basic support for creating invoices

This commit is contained in:
2026-07-02 23:39:47 +02:00
parent 872972ea48
commit 56b603aba0
15 changed files with 2147 additions and 29 deletions
@@ -0,0 +1,49 @@
<?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'] ?? '',
);
}
}