From 6326e1ffc319d29d6164ba1530e3d097212c2163 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Fri, 21 Mar 2025 16:26:49 +0100 Subject: [PATCH] fix: adopt travel info urls --- .env | 2 ++ config/services.yaml | 2 ++ src/BusProNet/Model/Booking.php | 1 + src/BusProNet/XmlLoader/TravelLoader.php | 20 +++++++++++++++++++- templates/booking/index.html.twig | 6 +++--- 5 files changed, 27 insertions(+), 4 deletions(-) diff --git a/.env b/.env index afcb185..e3eeaed 100644 --- a/.env +++ b/.env @@ -46,4 +46,6 @@ APP_BPN_IP= APP_BPN_PORT= APP_BPN_DEBUG=false +APP_TRAVEL_INFO_BASE_URL=https://www.ep-reisen.de/reiseinformationen/ + API_KEYS= diff --git a/config/services.yaml b/config/services.yaml index bb769ea..52d13e3 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -4,6 +4,7 @@ # Put parameters here that don't need to change on each machine where the app is deployed # https://symfony.com/doc/current/best_practices.html#use-parameters-for-application-configuration parameters: + travel_info_base_url: '%env(APP_TRAVEL_INFO_BASE_URL)%' services: # default configuration for services in *this* file @@ -12,6 +13,7 @@ services: autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. bind: $xmlPath: '%kernel.project_dir%/var/xmlexport' + $travelInfoBaseUrl: '%env(APP_TRAVEL_INFO_BASE_URL)%' $logger: '@monolog.logger.core' # makes classes in src/ available to be used as services diff --git a/src/BusProNet/Model/Booking.php b/src/BusProNet/Model/Booking.php index afa8dc3..2c13892 100644 --- a/src/BusProNet/Model/Booking.php +++ b/src/BusProNet/Model/Booking.php @@ -34,6 +34,7 @@ class Booking public array $surcharges = []; public ?int $invoiceNumber = null; public ?float $totalPrice = null; + public ?string $travelInfoUrl = null; public function getBalance(): float { diff --git a/src/BusProNet/XmlLoader/TravelLoader.php b/src/BusProNet/XmlLoader/TravelLoader.php index 756b0e0..c65dd2b 100644 --- a/src/BusProNet/XmlLoader/TravelLoader.php +++ b/src/BusProNet/XmlLoader/TravelLoader.php @@ -22,6 +22,7 @@ class TravelLoader extends AbstractLoader public function __construct( private readonly HotelLoader $hotelDataLoader, CacheInterface $cache, + private readonly string $travelInfoBaseUrl, ?string $xmlPath = null ) { parent::__construct($cache, $xmlPath); @@ -345,7 +346,24 @@ class TravelLoader extends AbstractLoader continue; } - $booking->travelData = $this->loadById($travelId); + $travelData = $this->loadById($travelId); + $booking->travelData = $travelData; + + if (null === $travelData || null === $travelData->dateFrom) { + continue; + } + + $now = new \DateTimeImmutable(); + $travelDate = $travelData->dateFrom; + $travelCode = $travelData->code; + + if ($travelDate->modify('-5 days') < $now) { + $booking->travelInfoUrl = sprintf( + '%s/%s', + rtrim($this->travelInfoBaseUrl, '/'), + str_replace('/', '-', $travelCode) + ); + } } } } diff --git a/templates/booking/index.html.twig b/templates/booking/index.html.twig index fe29b80..676557b 100644 --- a/templates/booking/index.html.twig +++ b/templates/booking/index.html.twig @@ -75,11 +75,11 @@ target="_blank"> Rechnung - {% if booking.hasDocuments %} - - Reisedokumente + Reiseinfos {% endif %}