处理数量、单价、金额之间的计算
This commit is contained in:
@@ -113,31 +113,23 @@ class SelfProcurementViewModel @Inject constructor(
|
||||
val finalPrice =
|
||||
if (count == 0.0) {
|
||||
0.0
|
||||
} else if (!_countUserInput.value && !_priceUserInput.value) {
|
||||
if (info.goodsPriceTemp.isNotEmpty()) {
|
||||
info.goodsPrice.div(count).toSafeDouble()
|
||||
} else {
|
||||
0.0
|
||||
}
|
||||
} else info.goodsUnitPrice
|
||||
} else if (_amountUserInput.value && !_priceUserInput.value) {
|
||||
info.goodsPrice.div(count).toSafeDouble()
|
||||
} else 0.0
|
||||
|
||||
// 计算金额 单价不为空,不是数量输入 也不是金额输入
|
||||
val finalAmount =
|
||||
if (count == 0.0) {
|
||||
0.0
|
||||
} else if (!_countUserInput.value && !_amountUserInput.value) {
|
||||
if (info.goodsUnitPriceTemp.isNotEmpty()) {
|
||||
count.times(info.goodsUnitPrice).toSafeDouble()
|
||||
} else {
|
||||
0.0
|
||||
}
|
||||
} else info.goodsPrice
|
||||
} else if (_priceUserInput.value && !_amountUserInput.value) {
|
||||
count.times(info.goodsUnitPrice).toSafeDouble()
|
||||
} else 0.0
|
||||
Timber.d("startSensorScale finalPrice = $finalPrice, finalAmount = $finalAmount ")
|
||||
_selectedItem.value = info.copy(
|
||||
goodsWeight = weight.toSafeBigDecimal(),
|
||||
// 数量
|
||||
goodsCountTemp = if (_countUserInput.value) info.goodsCountTemp else finalCount.toFormattedString(),
|
||||
goodsCount = if (_countUserInput.value) info.goodsCount else finalCount,
|
||||
goodsCountTemp = finalCount.toFormattedString(),
|
||||
goodsCount = finalCount,
|
||||
// 单价
|
||||
goodsUnitPrice = if (_priceUserInput.value) info.goodsUnitPrice else finalPrice,
|
||||
goodsUnitPriceTemp = if (_priceUserInput.value) info.goodsUnitPriceTemp else finalPrice.toFormattedString(),
|
||||
@@ -160,25 +152,28 @@ class SelfProcurementViewModel @Inject constructor(
|
||||
|
||||
fun updateSelectedItem(purchaseOrder: PurchaseWarehouseParam?) {
|
||||
if (purchaseOrder != null) {
|
||||
purchaseOrder.goodsCount.takeIf { it != 0.0 }?.let { receivedNum ->
|
||||
// 计算金额 单价不为空,并且金额没有手动输入
|
||||
// if (purchaseOrder.goodsUnitPrice == 0.0 && !_amountUserInput.value) {
|
||||
if (!_amountUserInput.value) {
|
||||
if (purchaseOrder.goodsCount != 0.0) {
|
||||
if (purchaseOrder.goodsUnitPriceTemp.isNotEmpty()) { // 计算金额 单价不为空,并且金额没有手动输入
|
||||
Timber.d("updateSelectedItem 计算金额")
|
||||
val result =
|
||||
receivedNum.times(purchaseOrder.goodsUnitPrice)
|
||||
purchaseOrder.goodsCount.times(purchaseOrder.goodsUnitPrice)
|
||||
purchaseOrder.goodsPrice = result.toSafeDouble()
|
||||
purchaseOrder.goodsPriceTemp = result.toFormattedString()
|
||||
}
|
||||
// 计算单价 金额不为空,并且单价没有手动输入
|
||||
// if (purchaseOrder.goodsPrice == 0.0 && !_priceUserInput.value) {
|
||||
if (!_priceUserInput.value) {
|
||||
} else if (purchaseOrder.goodsPriceTemp.isNotEmpty()) { // 计算单价 金额不为空,并且单价没有手动输入
|
||||
Timber.d("updateSelectedItem 计算单价")
|
||||
val result =
|
||||
purchaseOrder.goodsPrice.div(receivedNum)
|
||||
purchaseOrder.goodsPrice.div(purchaseOrder.goodsCount)
|
||||
purchaseOrder.goodsUnitPrice = result.toSafeDouble()
|
||||
purchaseOrder.goodsUnitPriceTemp = result.toFormattedString()
|
||||
}
|
||||
} else {
|
||||
if (_priceUserInput.value) {
|
||||
purchaseOrder.goodsPrice = 0.0
|
||||
purchaseOrder.goodsPriceTemp = ""
|
||||
} else if (_amountUserInput.value) {
|
||||
purchaseOrder.goodsUnitPrice = 0.0
|
||||
purchaseOrder.goodsUnitPriceTemp = ""
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 重置输入状态
|
||||
|
||||
Reference in New Issue
Block a user