summaryrefslogtreecommitdiff
path: root/merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-03-30 14:17:09 -0300
committerTorsten Grote <t@grobox.de>2020-03-30 14:17:09 -0300
commitdb0cf385fe707091f219cc61fb4e12b5b1fe64d0 (patch)
treec50aca48f996e0dec20315cde0ae4d278bdf0640 /merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt
parent1dbc22f1faba07331953d761097d5ad91ffff5ce (diff)
downloadtaler-android-db0cf385fe707091f219cc61fb4e12b5b1fe64d0.tar.gz
taler-android-db0cf385fe707091f219cc61fb4e12b5b1fe64d0.tar.bz2
taler-android-db0cf385fe707091f219cc61fb4e12b5b1fe64d0.zip
Fix amount serialization in PoS app
Diffstat (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt')
-rw-r--r--merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt15
1 files changed, 11 insertions, 4 deletions
diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt
index 609eadd..7652ca4 100644
--- a/merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt
+++ b/merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt
@@ -28,6 +28,8 @@ import androidx.navigation.fragment.findNavController
import com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_LONG
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.fragment_refund.*
+import net.taler.common.Amount
+import net.taler.common.AmountParserException
import net.taler.common.fadeIn
import net.taler.common.fadeOut
import net.taler.common.navigate
@@ -52,7 +54,7 @@ class RefundFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val item = refundManager.toBeRefunded ?: throw IllegalStateException()
- amountInputView.setText(item.amount.toString())
+ amountInputView.setText(item.amount.amountStr)
currencyView.text = item.amount.currency
abortButton.setOnClickListener { findNavController().navigateUp() }
refundButton.setOnClickListener { onRefundButtonClicked(item) }
@@ -63,12 +65,17 @@ class RefundFragment : Fragment() {
}
private fun onRefundButtonClicked(item: HistoryItem) {
- val inputAmount = amountInputView.text.toString().toDouble()
- if (inputAmount > item.amountStr.toDouble()) { // TODO real Amount comparision
+ val inputAmount = try {
+ Amount.fromString(item.amount.currency, amountInputView.text.toString())
+ } catch (e: AmountParserException) {
+ amountView.error = getString(R.string.refund_error_invalid_amount)
+ return
+ }
+ if (inputAmount > item.amount) {
amountView.error = getString(R.string.refund_error_max_amount, item.amountStr)
return
}
- if (inputAmount <= 0.0) {
+ if (inputAmount.isZero()) {
amountView.error = getString(R.string.refund_error_zero)
return
}