feat: promotional and purchase vouchers

This commit is contained in:
Björn Fromme committed 2026-03-16 11:59:11 +01:00
1 parent a8c0a1aa61
commit 7df99521c4
21 files changed
+847 -6

No files matched your search

@@ -0,0 +1,32 @@
<?php
declare(strict_types=1);
namespace App\BusProNet\XmlParser;
use App\BusProNet\Model\PromoVoucher;
use Symfony\Component\DomCrawler\Crawler;
final class PromoVoucherParser extends AbstractParser
{
public function parse(Crawler $node): PromoVoucher
{
$voucherNode = $node->filterXPath('//aktionsgutschein');
$code = trim($voucherNode->attr('code') ?? '');
$description = trim($voucherNode->attr('text') ?? '');
$applicability = $voucherNode->attr('pro_buchung_person') ?? '';
$discountAmount = $this->stringToFloat($voucherNode->attr('wert_betrag') ?? '0,00');
$discountPercentage = $this->stringToFloat($voucherNode->attr('wert_prozent') ?? '0,00');
$minimumPrice = $this->stringToFloat($voucherNode->attr('ab_preis') ?? '0,00');
return new PromoVoucher(
code: $code,
description: $description,
applicability: $applicability,
discountAmount: $discountAmount,
discountPercentage: $discountPercentage,
minimumPrice: $minimumPrice
);
}
}