diff --git a/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/AsyncCheckProvider.kt b/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/AsyncCheckProvider.kt index ff1f993f..99dbc848 100644 --- a/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/AsyncCheckProvider.kt +++ b/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/AsyncCheckProvider.kt @@ -540,6 +540,7 @@ class AsyncCheckProvider(private val config: ConfigStore, private val dataStore: type: TicketCheckProvider.CheckInType, nonce: String?, allowQuestions: Boolean, + useOrderLocale: Boolean ): TicketCheckProvider.CheckResult { val ticketid_cleaned = cleanInput(ticketid, source_type) @@ -680,6 +681,7 @@ class AsyncCheckProvider(private val config: ConfigStore, private val dataStore: res.variation = variation.stringValue } + res.locale = position.getOrder().locale res.attendee_name = position.attendee_name res.seat = position.seatName res.orderCode = position.getOrder().getCode() diff --git a/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/OnlineCheckProvider.kt b/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/OnlineCheckProvider.kt index a76277c8..37ff72ce 100644 --- a/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/OnlineCheckProvider.kt +++ b/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/OnlineCheckProvider.kt @@ -49,7 +49,8 @@ class OnlineCheckProvider( with_badge_data: Boolean, type: TicketCheckProvider.CheckInType, nonce: String?, - allowQuestions: Boolean + allowQuestions: Boolean, + useOrderLocale: Boolean ): TicketCheckProvider.CheckResult { val ticketid_cleaned = cleanInput(ticketid, source_type) val nonce_cleaned = nonce ?: NonceGenerator.nextNonce() @@ -187,6 +188,9 @@ class OnlineCheckProvider( } res.orderCode = posjson.optString("order") res.positionId = posjson.optLong("positionid") + if (posjson.has("order__locale")) { + res.locale = posjson.getString("order__locale") + } res.position = posjson val checkins = posjson.getJSONArray("checkins") for (i in 0 until checkins.length()) { diff --git a/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/ProxyCheckProvider.kt b/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/ProxyCheckProvider.kt index 77bfb3de..3e10ca84 100644 --- a/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/ProxyCheckProvider.kt +++ b/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/ProxyCheckProvider.kt @@ -104,7 +104,8 @@ class ProxyCheckProvider(private val config: ConfigStore, httpClientFactory: Htt with_badge_data: Boolean, type: TicketCheckProvider.CheckInType, nonce: String?, - allowQuestions: Boolean + allowQuestions: Boolean, + useOrderLocale: Boolean ): TicketCheckProvider.CheckResult { val data: MutableMap = HashMap() data["events_and_checkin_lists"] = eventsAndCheckinLists @@ -115,6 +116,7 @@ class ProxyCheckProvider(private val config: ConfigStore, httpClientFactory: Htt data["source_type"] = source_type data["type"] = type data["allowQuestions"] = allowQuestions + data["useOrderLocale"] = useOrderLocale if (nonce != null) { data["nonce"] = nonce } diff --git a/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/TicketCheckProvider.kt b/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/TicketCheckProvider.kt index 08b81cfe..7d30d6f0 100644 --- a/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/TicketCheckProvider.kt +++ b/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/TicketCheckProvider.kt @@ -54,6 +54,7 @@ interface TicketCheckProvider { var position: JSONObject? = null var eventSlug: String? = null var offline: Boolean = false + var locale: String? = null constructor(type: Type?, message: String?, offline: Boolean = false) { this.type = type @@ -131,7 +132,7 @@ interface TicketCheckProvider { class StatusResult(var eventName: String?, var totalTickets: Int, var alreadyScanned: Int, var currentlyInside: Int?, var items: List?) { } - fun check(eventsAndCheckinLists: Map, ticketid: String, source_type: String, answers: List?, ignore_unpaid: Boolean, with_badge_data: Boolean, type: CheckInType, nonce: String? = null, allowQuestions: Boolean = true): CheckResult + fun check(eventsAndCheckinLists: Map, ticketid: String, source_type: String, answers: List?, ignore_unpaid: Boolean, with_badge_data: Boolean, type: CheckInType, nonce: String? = null, allowQuestions: Boolean = true, useOrderLocale: Boolean = false): CheckResult fun check(eventsAndCheckinLists: Map, ticketid: String): CheckResult @Throws(CheckException::class) fun search(eventsAndCheckinLists: Map, query: String, page: Int): List diff --git a/libpretixsync/src/main/java/eu/pretix/libpretixsync/db/AbstractOrder.java b/libpretixsync/src/main/java/eu/pretix/libpretixsync/db/AbstractOrder.java index d3acc54a..e4b4882e 100644 --- a/libpretixsync/src/main/java/eu/pretix/libpretixsync/db/AbstractOrder.java +++ b/libpretixsync/src/main/java/eu/pretix/libpretixsync/db/AbstractOrder.java @@ -70,6 +70,15 @@ public boolean isValidStatus() { return false; } + public String getLocale() { + try { + return getJSON().getString("locale"); + } catch (JSONException e) { + e.printStackTrace(); + return null; + } + } + public String getPaymentProvider() { try { return getJSON().getString("payment_provider");