diff options
Diffstat (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt')
-rw-r--r-- | merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt index ff6e6b7..bb75362 100644 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt +++ b/merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt @@ -17,8 +17,13 @@ package net.taler.merchantpos.order import net.taler.common.Amount +import net.taler.common.ContractTerms +import net.taler.common.now import net.taler.merchantpos.config.Category import net.taler.merchantpos.config.ConfigProduct +import java.net.URLEncoder + +private const val FULFILLMENT_PREFIX = "taler://fulfillment-success/" data class Order(val id: Int, val currency: String, val availableCategories: Map<Int, Category>) { val products = ArrayList<ConfigProduct>() @@ -103,4 +108,20 @@ data class Order(val id: Int, val currency: String, val availableCategories: Map }.toMap() } + private val fulfillmentUri: String + get() { + val fulfillmentId = "${now()}-${hashCode()}" + return "$FULFILLMENT_PREFIX${URLEncoder.encode(summary, "UTF-8")}#$fulfillmentId" + } + + fun toContractTerms(): ContractTerms { + return ContractTerms( + summary = summary, + summaryI18n = summaryI18n, + amount = total, + fulfillmentUrl = fulfillmentUri, + products = products.map { it.toContractProduct() } + ) + } + } |