wip: booking process

This commit is contained in:
Björn Fromme
2025-07-14 17:15:15 +02:00
parent a55e30e12d
commit bef18971c3
45 changed files with 688 additions and 270 deletions
+4 -3
View File
@@ -2,6 +2,7 @@
namespace App\BusProNet\XmlParser;
use App\BusProNet\Constants;
use App\BusProNet\Model\Address;
use App\BusProNet\Model\BankAccount;
use App\BusProNet\Model\Booking;
@@ -38,7 +39,7 @@ class BookingParser extends AbstractParser
$travelData = $node->filterXPath('//reise');
$booking->travel = $travelData->attr('bezeichnung');
$booking->travelName = $travelData->attr('bezeichnung');
$booking->travelId = $this->getIntOrNullValue($node->filterXPath('//idreise'));
$booking->travelCode = $travelData->attr('code');
$booking->travelDate = $this->stringToDate($travelData->attr('termin'));
@@ -72,14 +73,14 @@ class BookingParser extends AbstractParser
if (0 < $transportationData->count()) {
$booking->transportationServices = $this
->servicesParser
->parse($transportationData, Service::CATEGORY_TRANSPORTATION, Service::SOURCE_BOOKING);
->parse($transportationData, Constants::CATEGORY_TRANSPORTATION, Constants::SOURCE_BOOKING);
}
$additionalServicesData = $node->filterXPath('//zusatzleistungen/zusatzleistung');
if (0 < $additionalServicesData->count()) {
$booking->additionalServices = $this
->servicesParser
->parse($additionalServicesData, Service::CATEGORY_ADDITIONAL, Service::SOURCE_BOOKING);
->parse($additionalServicesData, Constants::CATEGORY_ADDITIONAL, Constants::SOURCE_BOOKING);
}
$roomsData = $node->filterXPath('//ferienzielunterbringungen/ferienzielunterbringung');
+1 -1
View File
@@ -26,7 +26,7 @@ class BookingsParser extends AbstractParser
$booking->participantCount = $this->getIntOrNullValue($node->filterXPath('//personen'));
$booking->price = $this->getFloatOrNullValue($node->filterXPath('//preis'));
$booking->bookingDate = $this->getDateTimeOrNullValue($node->filterXPath('//buchungsdatum'));
$booking->travel = $this->getStringOrNullValue($node->filterXPath('//reise'));
$booking->travelName = $this->getStringOrNullValue($node->filterXPath('//reise'));
$booking->travelId = $this->getIntOrNullValue($node->filterXPath('//idreise'));
$booking->travelDate = $this->getDateOrNullValue($node->filterXPath('//reisedatum'));
$booking->hasDocuments = $this->getBoolValue($node->filterXPath('//reisedokument'));
+2 -1
View File
@@ -2,6 +2,7 @@
namespace App\BusProNet\XmlParser;
use App\BusProNet\Constants;
use App\BusProNet\Model\Service;
use Symfony\Component\DomCrawler\Crawler;
@@ -30,7 +31,7 @@ class ServicesParser extends AbstractParser
}, $this->stringToArray($node->attr('einzelpreis', ''), '/')
);
$service->individualPrice = array_combine($mapping, $individualPrices);
if (Service::CATEGORY_TRANSPORTATION === $category) {
if (Constants::CATEGORY_TRANSPORTATION === $category) {
$service->direction = $node->attr('richtung');
}