Files
myep/src/BusProNet/XmlParser/PromoVoucherParser.php
T

33 lines
1.1 KiB
PHP

<?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
);
}
}