fix category delete

This commit is contained in:
xds
2025-03-18 12:54:37 +03:00
parent 4d5b89b08c
commit 711348b386

View File

@@ -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()
}
}