diff options
author | Torsten Grote <t@grobox.de> | 2020-02-12 10:33:17 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-02-14 12:03:14 -0300 |
commit | 2cbfec1bdcc5ada8fb20094eb3a9d071316a13e2 (patch) | |
tree | 4708b14e14e5bbe257e0bda40120d3bb6f931c21 /app/src/main/java/net/taler/merchantpos/order/OrderManager.kt | |
parent | 0ea377bdfa3205d4c611e0dcc472125fe2de07cb (diff) | |
download | merchant-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.kt | 25 |
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()) -} |