Merge origin/dev-4.7.0: Steuer-Feature (Preismodus + DB-gestützte Befreiungsgründe)
Konflikte in den Steuer-Dateien zugunsten der weiterentwickelten lokalen Version aufgelöst: vat_pricing_mode (Preismodus), DB-gestützte tax_exemption_reasons mit FK, typisierte Request-DTOs, Event-Steuer-Snapshot. origin/dev-4.7.0 enthielt eine frühere Teilmenge desselben Features. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enumerations;
|
||||
|
||||
/**
|
||||
* Preismodus bei bestehender Umsatzsteuerpflicht: entweder ist die USt bereits im konfigurierten Beitrag
|
||||
* enthalten (Brutto/„Supermarkt") oder sie wird bei der Preisermittlung aufgeschlagen (Netto). Gespeichert
|
||||
* wird immer der finale Brutto-Beitrag; der Modus beeinflusst nur die Preisermittlung im Anmeldeprozess.
|
||||
*/
|
||||
enum VatPricingMode: string
|
||||
{
|
||||
case Inclusive = 'inclusive';
|
||||
case AddOn = 'add_on';
|
||||
|
||||
public function label(): string
|
||||
{
|
||||
return match ($this) {
|
||||
self::Inclusive => 'Inklusive – Beiträge sind Endpreise (USt enthalten)',
|
||||
self::AddOn => 'Aufschlagen – USt wird auf die Beiträge aufgeschlagen',
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Optionen für das Frontend: [['value' => ..., 'label' => ...], ...].
|
||||
*
|
||||
* @return array<int, array{value: string, label: string}>
|
||||
*/
|
||||
public static function options(): array
|
||||
{
|
||||
return array_map(
|
||||
static fn (self $mode): array => [
|
||||
'value' => $mode->value,
|
||||
'label' => $mode->label(),
|
||||
],
|
||||
self::cases(),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user