From 7c605c9f24b6d046189621a2198e2d889d40aca7 Mon Sep 17 00:00:00 2001
From: lennartrommeiss <61516567+lenderom@users.noreply.github.com>
Date: Mon, 10 Aug 2026 22:37:16 +0200
Subject: [PATCH] fix: update fip validity oebb
---
content/application/oebb/index.de.md | 2 +-
content/application/oebb/validity.yaml | 220 ++++++++++++++++++++++++-
2 files changed, 213 insertions(+), 9 deletions(-)
diff --git a/content/application/oebb/index.de.md b/content/application/oebb/index.de.md
index b8f192415..ba565da06 100644
--- a/content/application/oebb/index.de.md
+++ b/content/application/oebb/index.de.md
@@ -4,7 +4,7 @@ title: "ÖBB"
## Versteuerung
-Pro Bestellung und Person wird der Sachbezug von € 39,42 in der 2.Klasse und € 62,69 in der 1.Klasse verrechnet.
+Pro Bestellung und Person wird der Sachbezug von 39,42 € in der 2. Klasse und 62,69 € in der 1. Klasse verrechnet.
## Nationale Vergünstigungen (kein FIP)
diff --git a/content/application/oebb/validity.yaml b/content/application/oebb/validity.yaml
index 619131ddd..84d8bef1c 100644
--- a/content/application/oebb/validity.yaml
+++ b/content/application/oebb/validity.yaml
@@ -13,6 +13,8 @@ _anchors:
en: "50 % discount"
fr: "50 % de réduction"
reduced-50-group: &reduced-50-group
+ active: *reduced-50
+ active-relatives: *reduced-50
retired: *reduced-50
retired-relatives: *reduced-50
widows: *reduced-50
@@ -22,6 +24,96 @@ _anchors:
de: "Kein Rabatt"
en: "No discount"
fr: "Pas de réduction"
+ coupon-1: &coupon-1
+ status: valid
+ text:
+ de: >
+ **1 Freifahrtschein**
+
+ nur Vollzeit
+
+ en: >
+ **1 coupon**
+
+ Full-time only
+
+ fr: >
+ **1 coupon**
+
+ Temps plein uniquement
+
+ coupon-1-1: &coupon-1-1
+ status: valid
+ text:
+ de: >
+ **1 Freifahrtschein**
+
+ Vollzeit
+
+ Teilzeit (mind. 50%): 1 Freifahrtschein
+
+ en: >
+ **1 coupon**
+
+ Full-time
+
+ Part-time (min. 50%): 1 coupon
+
+ fr: >
+ **1 coupon**
+
+ Temps plein
+
+ Temps partiel (min. 50%): 1 coupon
+
+ coupon-2-1: &coupon-2-1
+ status: valid
+ text:
+ de: >
+ **2 Freifahrtscheine**
+
+ Vollzeit
+
+ Teilzeit (mind. 50%): 1 Freifahrtschein
+
+ en: >
+ **2 coupons**
+
+ Full-time
+
+ Part-time (min. 50%): 1 coupon
+
+ fr: >
+ **2 coupons**
+
+ Temps plein
+
+ Temps partiel (min. 50%): 1 coupon
+
+ coupon-3-1: &coupon-3-1
+ status: valid
+ text:
+ de: >
+ **3 Freifahrtscheine**
+
+ Vollzeit
+
+ Teilzeit (mind. 50%): 1 Freifahrtschein
+
+ en: >
+ **3 coupons**
+
+ Full-time
+
+ Part-time (min. 50%): 1 coupon
+
+ fr: >
+ **3 coupons**
+
+ Temps plein
+
+ Temps partiel (min. 50%): 1 coupon
+
coupon-y1-9x1-45x0: &coupon-y1-9x1-45x0
status: valid
text:
@@ -174,213 +266,325 @@ _anchors:
attica:
fip-coupon:
+ active: *coupon-not-available
+ active-relatives: *coupon-not-available
retired: *coupon-not-available
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket:
+ active: *reduced-50
+ active-relatives: *reduced-50
retired: *reduced-no-discount
retired-relatives: *reduced-no-discount
bdz:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-not-available
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket: *reduced-50-group
bls:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x1-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
bsb:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
cd:
fip-coupon:
+ active: *coupon-3-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x3-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
cfl:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x1-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
cfr:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x1-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
cie:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x1-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
cp:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x1-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
db:
fip-coupon:
+ active: *coupon-2-1
+ active-relatives: *coupon-1
retired: *coupon-y0-9x2-45x1
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
dsb:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-not-available
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket: *reduced-50-group
eurostar:
fip-coupon:
+ active: *coupon-not-available
+ active-relatives: *coupon-not-available
retired: *coupon-not-available
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket: *reduced-50-group
euskotren:
fip-coupon:
+ active: *coupon-not-available
+ active-relatives: *coupon-not-available
retired: *coupon-not-available
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket: *reduced-50-group
fs:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x1-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
gb:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x1-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
-gb-en:
- fip-coupon:
- retired: *coupon-not-available
- retired-relatives: *coupon-not-available
- widows: *coupon-not-available
- fip-reduced-ticket: *reduced-50-group
gysev:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x1-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
ht:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x1-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
kd:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-not-available
+ retired: *coupon-y0-9x1-45x1
+ retired-relatives: *coupon-not-available
+ widows: *coupon-not-available
+ fip-reduced-ticket: *reduced-50-group
+kml:
+ fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-not-available
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket: *reduced-50-group
ks:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-not-available
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket: *reduced-50-group
kw:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-not-available
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket: *reduced-50-group
lka:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-not-available
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket: *reduced-50-group
ltg:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-not-available
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket: *reduced-50-group
+mav:
+ fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
+ retired: *coupon-y1-9x1-45x0
+ retired-relatives: *coupon-y0-9x1-45x1
+ widows: *coupon-y0-9x0-45x1
+ fip-reduced-ticket: *reduced-50-group
nir:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x1-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
ns:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x1-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
oebb:
fip-coupon:
+ active: *coupon-not-available
+ active-relatives: *coupon-not-available
retired: *coupon-not-available
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket: *reduced-50-group
pkp:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-not-available
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket: *reduced-50-group
renfe:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
sbb:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
sll:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x1-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
sncb:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y1-9x1-45x0
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
sncf:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-not-available
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket: *reduced-50-group
sp:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
stl:
fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-y0-9x1-45x1
widows: *coupon-y0-9x0-45x1
fip-reduced-ticket: *reduced-50-group
-zssk:
+sv:
fip-coupon:
- retired: *coupon-not-available
+ active: *coupon-1-1
+ active-relatives: *coupon-1
+ retired: *coupon-y1-9x1-45x0
+ retired-relatives: *coupon-y0-9x1-45x1
+ widows: *coupon-y0-9x0-45x1
+ fip-reduced-ticket: *reduced-50-group
+sz:
+ fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
+ retired: *coupon-y1-9x1-45x0
+ retired-relatives: *coupon-y0-9x1-45x1
+ widows: *coupon-y0-9x0-45x1
+ fip-reduced-ticket: *reduced-50-group
+vy:
+ fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-not-available
+ retired: *coupon-y0-9x1-45x1
retired-relatives: *coupon-not-available
widows: *coupon-not-available
fip-reduced-ticket: *reduced-50-group
+zssk:
+ fip-coupon:
+ active: *coupon-3-1
+ active-relatives: *coupon-1
+ retired: *coupon-y1-9x3-45x0
+ retired-relatives: *coupon-y0-9x1-45x1
+ widows: *coupon-y0-9x0-45x1
+ fip-reduced-ticket: *reduced-50-group
+zpcg:
+ fip-coupon:
+ active: *coupon-1-1
+ active-relatives: *coupon-1
+ retired: *coupon-y1-9x1-45x0
+ retired-relatives: *coupon-y0-9x1-45x1
+ widows: *coupon-y0-9x0-45x1
+ fip-reduced-ticket: *reduced-50-group