summaryrefslogtreecommitdiff
path: root/app/src/main/java/net/taler/merchantpos/order/OrderManager.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-02-12 10:33:17 -0300
committerTorsten Grote <t@grobox.de>2020-02-14 12:03:14 -0300
commit2cbfec1bdcc5ada8fb20094eb3a9d071316a13e2 (patch)
tree4708b14e14e5bbe257e0bda40120d3bb6f931c21 /app/src/main/java/net/taler/merchantpos/order/OrderManager.kt
parent0ea377bdfa3205d4c611e0dcc472125fe2de07cb (diff)
downloadmerchant-terminal-android-2cbfec1bdcc5ada8fb20094eb3a9d071316a13e2.tar.gz
merchant-terminal-android-2cbfec1bdcc5ada8fb20094eb3a9d071316a13e2.tar.bz2
merchant-terminal-android-2cbfec1bdcc5ada8fb20094eb3a9d071316a13e2.zip
Use product categories for order summary
Diffstat (limited to 'app/src/main/java/net/taler/merchantpos/order/OrderManager.kt')
-rw-r--r--app/src/main/java/net/taler/merchantpos/order/OrderManager.kt25
1 files changed, 6 insertions, 19 deletions
diff --git a/app/src/main/java/net/taler/merchantpos/order/OrderManager.kt b/app/src/main/java/net/taler/merchantpos/order/OrderManager.kt
index 42a2060..55a3be6 100644
--- a/app/src/main/java/net/taler/merchantpos/order/OrderManager.kt
+++ b/app/src/main/java/net/taler/merchantpos/order/OrderManager.kt
@@ -25,8 +25,10 @@ class OrderManager(private val mapper: ObjectMapper) : ConfigurationReceiver {
private val productsByCategory = HashMap<Category, ArrayList<Product>>()
private val mOrder = MutableLiveData<Order>()
+ private val newOrder // an empty order containing only available categories
+ get() = Order(productsByCategory.keys.map { it.id to it }.toMap())
internal val order: LiveData<Order> = mOrder
- internal val orderTotal: LiveData<Double> = map(mOrder) { it.getTotal() }
+ internal val orderTotal: LiveData<Double> = map(mOrder) { it.total }
private val mProducts = MutableLiveData<List<Product>>()
internal val products: LiveData<List<Product>> = mProducts
@@ -97,10 +99,8 @@ class OrderManager(private val mapper: ObjectMapper) : ConfigurationReceiver {
@UiThread
internal fun addProduct(product: Product) {
- val map = mOrder.value ?: HashMap()
- val quantity = map[product] ?: 0
- map[product] = quantity + 1
- mOrder.value = map
+ val order = mOrder.value ?: newOrder
+ mOrder.value = order + product
mRestartState.value = ENABLED
}
@@ -112,22 +112,9 @@ class OrderManager(private val mapper: ObjectMapper) : ConfigurationReceiver {
undoOrder = null
} else {
undoOrder = mOrder.value
- mOrder.value = HashMap()
+ mOrder.value = newOrder
mRestartState.value = UNDO
}
}
}
-
-fun Order.getTotal(): Double {
- var total = 0.0
- forEach {
- val price = it.key.priceAsDouble
- total += price * it.value
- }
- return total
-}
-
-fun Order.getTotalAsString(): String {
- return String.format("%.2f", getTotal())
-}