fix category delete
This commit is contained in:
@@ -3,6 +3,7 @@ package space.luminic.budgerapp.services
|
||||
|
||||
import kotlinx.coroutines.reactive.awaitFirstOrNull
|
||||
import kotlinx.coroutines.reactive.awaitSingle
|
||||
import kotlinx.coroutines.reactor.awaitSingleOrNull
|
||||
import org.bson.Document
|
||||
import org.bson.types.ObjectId
|
||||
import org.slf4j.LoggerFactory
|
||||
@@ -135,6 +136,7 @@ class CategoryService(
|
||||
suspend fun deleteCategory(space: Space, categoryId: String) {
|
||||
findCategory(space, categoryId)
|
||||
val transactions = financialService.getTransactions(space.id!!, categoryId = categoryId).awaitSingle()
|
||||
if (transactions.isNotEmpty()) {
|
||||
val otherCategory = try {
|
||||
findCategory(space, name = "Другое")
|
||||
} catch (nfe: NotFoundException) {
|
||||
@@ -148,10 +150,13 @@ class CategoryService(
|
||||
)
|
||||
).awaitSingle()
|
||||
}
|
||||
|
||||
|
||||
transactions.map { transaction ->
|
||||
transaction.category = otherCategory
|
||||
financialService.editTransaction(transaction)
|
||||
}
|
||||
}
|
||||
val budgets = financialService.findProjectedBudgets(
|
||||
ObjectId(space.id),
|
||||
projectKeys = arrayOf(
|
||||
@@ -171,7 +176,7 @@ class CategoryService(
|
||||
budget.categories.removeIf { it.category.id == categoryId }
|
||||
budgetRepo.save(budget)
|
||||
}
|
||||
categoryRepo.deleteById(categoryId).awaitSingle()
|
||||
categoryRepo.deleteById(categoryId).awaitSingleOrNull()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user