Commit 7aede689 authored by Volker Krause's avatar Volker Krause
Browse files

Merge branch 'release/19.12'

parents c8b9c3d6 40e7abdc
......@@ -11,6 +11,7 @@
<name xml:lang="fi">KItineraryn komentorivijäsennin</name>
<name xml:lang="fr">Extracteur KItinerary en ligne de commande</name>
<name xml:lang="gl">Extractor de liña de ordes de KItinerary</name>
<name xml:lang="ia">KItinerary extractor de commando in linea</name>
<name xml:lang="id">KItinerary Command Line Extractor</name>
<name xml:lang="it">Estrattore a riga di comando di KItinerary</name>
<name xml:lang="nl">Extractor van opdrachtregel van KItinerary</name>
......@@ -30,6 +31,7 @@
<summary xml:lang="fi">Komentorivin varaustietojäsennin.</summary>
<summary xml:lang="fr">Extracteur de données de réservation en ligne de commande.</summary>
<summary xml:lang="gl">Extractor de datos de reservas de liña de ordes.</summary>
<summary xml:lang="ia">Extractor de datos de reservation como commando in linea</summary>
<summary xml:lang="id">Pengekstrak data reservasi baris perintah.</summary>
<summary xml:lang="it">Estrattore di dati di prenotazioni a riga di comando.</summary>
<summary xml:lang="nl">Gegevensextractor van reservering op de opdrachtregel.</summary>
......@@ -51,6 +53,7 @@
<p xml:lang="fi">Komentorivijäsennin varaustiedoille kolmannen osapuolen sovelluksia varten.</p>
<p xml:lang="fr">Extracteur en ligne de commande pour les données d'itinéraires, afin de les intégrer à des applications tierces.</p>
<p xml:lang="gl">Extractor de liña de ordes de datos de itinerarios, para integrar con aplicacións de terceiros.</p>
<p xml:lang="ia">Commando de linea extractor per datos de itinerario, de integrar in applications de tertie partes.</p>
<p xml:lang="id">Pengekstrak baris data untuk data rencana perjalanan, untuk pengintegrasian ke dalam aplikasi pihak ketiga.</p>
<p xml:lang="it">Estrattore a riga di comando per dati di itinerari, per l'integrazione con applicazioni di terze parti.</p>
<p xml:lang="nl">Extractor van reisgegevens op de opdrachtregel, voor integratie in toepassingen van derden.</p>
......
......@@ -8,6 +8,7 @@ Name[et]=KItinerary hankija
Name[fi]=KItinerary-jäsennin
Name[fr]=Extracteur KItinerary
Name[gl]=Extractor de KItinerary
Name[ia]=KItinerary Extractor
Name[it]=Estrattore di KItinerary
Name[ko]=KItinerary 추출기
Name[nl]=Extractor van KItinerary
......@@ -26,6 +27,7 @@ GenericName[et]=KItinerary käsurea hankija
GenericName[fi]=KItineraryn komentorivijäsennin
GenericName[fr]=Extracteur KItinerary en ligne de commande
GenericName[gl]=Extractor de liña de ordes de KItinerary
GenericName[ia]=KItinerary extractor de commando in linea
GenericName[it]=Estrattore a riga di comando di KItinerary
GenericName[ko]=KItinerary 명령행 추출기
GenericName[nl]=Extractor van opdrachtregel van KItinerary
......@@ -47,6 +49,7 @@ Comment[et]=Käsurea puhkuseandmete hankija.
Comment[fi]=Komentorivin varaustietojäsennin.
Comment[fr]=Extracteur de données de réservation en ligne de commande.
Comment[gl]=Extractor de datos de reservas de liña de ordes.
Comment[ia]=Extractor de datos de reservation como commando in linea
Comment[it]=Estrattore di dati di prenotazioni a riga di comando.
Comment[ko]=명령행 예약 데이터 추출기입니다.
Comment[nl]=Gegevensextractor van reservering op de opdrachtregel.
......
......@@ -30,18 +30,18 @@ function parsePdf(pdf) {
res.reservationNumber = pnr[1];
}
var train = text.match(/(?:Train|Treno): (.*)\n/);
var train = text.match(/(?:Train|Treno|Zug): (.*)\n/);
if (!train) {
break;
}
res.reservationFor.trainNumber = train[1];
var departure_time = text.match(/(?:Hours|Ore(?:\/Time)?) (\d{2}:\d{2}) - (\d{2}\/\d{2}\/\d{4})/)
var arrival_time = text.substr(departure_time.index + departure_time[0].length).match(/(?:Hours|Ore(?:\/Time)?) (\d{2}:\d{2}) - (\d{2}\/\d{2}\/\d{4})/)
var departure_time = text.match(/(?:Hours|Ore|Stunden)(?:\/Time)? (\d{2}:\d{2}) - (\d{2}\/\d{2}\/\d{4})/)
var arrival_time = text.substr(departure_time.index + departure_time[0].length).match(/(?:Hours|Ore|Stunden)(?:\/Time)? (\d{2}:\d{2}) - (\d{2}\/\d{2}\/\d{4})/)
res.reservationFor.departureTime = JsonLd.toDateTime(departure_time[2] + departure_time[1], "dd/MM/yyyyhh:mm", "it");
res.reservationFor.arrivalTime = JsonLd.toDateTime(arrival_time[2] + arrival_time[1], "dd/MM/yyyyhh:mm", "it");
var header = text.match(/(?:Stazione di Arrivo|Arrival station)/);
var header = text.match(/(?:Stazione di Arrivo|Arrival station|Ankunft Bahnhof)/);
var dest = text.substr(header.index + header[0].length).match(/\n *((?:\w+\.? )*\w+\.?) +((?:\w+\.? )*\w+\.?)(?: |\n)/);
res.reservationFor.departureStation.name = dest[1];
res.reservationFor.arrivalStation.name = dest[2];
......@@ -87,7 +87,7 @@ function parsePdf(pdf) {
personalRes.reservedTicket.ticketedSeat.seatNumber += seatCol.toString(16).toUpperCase();
}
var coach = text.match(/(?:Coaches|Carrozza(?:\/Coach)?): +(\S+)/);
var coach = text.match(/(?:Coaches|Carrozza|Wagen)(?:\/Coach)?: +(\S+)/);
personalRes.reservedTicket.ticketedSeat.seatSection = coach[1];
}
......
......@@ -102,7 +102,10 @@ bool MergeUtil::isSame(const QVariant& lhs, const QVariant& rhs)
if (conflictIfPresent(lhsTicket.ticketedSeat().seatNumber(), rhsTicket.ticketedSeat().seatNumber(), Qt::CaseInsensitive)) {
return false;
}
if (conflictIfPresent(lhsTicket.ticketTokenData(), rhsTicket.ticketTokenData())) {
// flight ticket tokens (IATA BCBP) can differ, so we need to compare the relevant bits in them manually
// this however happens automatically as they are unpacked to other fields by post-processing
// so we can simply skip this here for flights
if (!JsonLd::isA<FlightReservation>(lhs) && conflictIfPresent(lhsTicket.ticketTokenData(), rhsTicket.ticketTokenData())) {
return false;
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment