SourceInvoice.php
Pfad: src/Domain/Rechnung/SourceInvoice.php
Ext: php
Größe: 1367 Bytes
Geändert: 2026-07-16 16:54:17+02
<?php
declare(strict_types=1);
namespace Demo\Domain\Rechnung;
/**
* Im Quellportal entdeckte Rechnung.
*/
final class SourceInvoice
{
/**
* @param string $sourceId Technische Portal-ID.
* @param string $vendorName Lieferantenhinweis.
* @param string $downloadUrl Download-URL.
* @param string|null $invoiceDateHint Datumshinweis.
* @param string|null $invoiceNumberHint Nummernhinweis.
*/
public function __construct(
public readonly string $sourceId,
public readonly string $vendorName,
public readonly string $downloadUrl,
public readonly ?string $invoiceDateHint = null,
public readonly ?string $invoiceNumberHint = null
) {
}
/**
* Liefert eine URL-unabhaengige Identitaet, sobald Fachhinweise vorliegen.
*/
public function rechnungsschluessel(): string
{
if ($this->invoiceNumberHint === null || trim($this->invoiceNumberHint) === '') {
return 'pending-' . $this->sourceId;
}
$vendor = preg_replace('/[^a-z0-9]+/', '', strtolower($this->vendorName)) ?: 'unknown';
$number = strtoupper(preg_replace('/\s+/', '', $this->invoiceNumberHint) ?? '');
$date = $this->invoiceDateHint ?? 'unknown-date';
return $vendor . '-' . $number . '-' . $date;
}
}
Frühere Versionen
| Version | Zeitpunkt | Operation |
|---|---|---|
| 22 | 2026-07-16 19:01:40.813293+02 | UPDATE |