From db0cf385fe707091f219cc61fb4e12b5b1fe64d0 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Mon, 30 Mar 2020 14:17:09 -0300 Subject: Fix amount serialization in PoS app --- .../java/net/taler/merchantpos/history/RefundManager.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundManager.kt') diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundManager.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundManager.kt index 270b3b8..910116e 100644 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundManager.kt +++ b/merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundManager.kt @@ -24,6 +24,7 @@ import com.android.volley.Request.Method.POST import com.android.volley.RequestQueue import com.android.volley.Response.ErrorListener import com.android.volley.Response.Listener +import net.taler.common.Amount import net.taler.merchantpos.config.ConfigManager import net.taler.merchantpos.config.MerchantRequest import org.json.JSONObject @@ -34,7 +35,7 @@ sealed class RefundResult { class Success( val refundUri: String, val item: HistoryItem, - val amount: Double, + val amount: Amount, val reason: String ) : RefundResult() } @@ -44,6 +45,10 @@ class RefundManager( private val queue: RequestQueue ) { + companion object { + val TAG = RefundManager::class.java.simpleName + } + var toBeRefunded: HistoryItem? = null private set @@ -57,14 +62,15 @@ class RefundManager( } @UiThread - internal fun refund(item: HistoryItem, amount: Double, reason: String) { + internal fun refund(item: HistoryItem, amount: Amount, reason: String) { val merchantConfig = configManager.merchantConfig!! val refundRequest = mapOf( "order_id" to item.orderId, - "refund" to "${item.amount.currency}:$amount", + "refund" to amount.toJSONString(), "reason" to reason ) val body = JSONObject(refundRequest) + Log.d(TAG, body.toString(4)) val req = MerchantRequest(POST, merchantConfig, "refund", null, body, Listener { onRefundResponse(it, item, amount, reason) }, ErrorListener { onRefundError() } @@ -76,7 +82,7 @@ class RefundManager( private fun onRefundResponse( json: JSONObject, item: HistoryItem, - amount: Double, + amount: Amount, reason: String ) { if (!json.has("contract_terms")) { -- cgit v1.2.3