Make budgets work again
This commit is contained in:
@@ -56,9 +56,8 @@ class Budgets extends Table {
|
||||
|
||||
class BudgetsDto {
|
||||
final Budget budget;
|
||||
final List<BudgetItemDto> budgetItems;
|
||||
|
||||
BudgetsDto({required this.budget, required this.budgetItems});
|
||||
BudgetsDto({required this.budget});
|
||||
}
|
||||
|
||||
class Loans extends Table {
|
||||
@@ -373,6 +372,12 @@ class ExpenseCategoriesDao extends DatabaseAccessor<OkaneDatabase>
|
||||
|
||||
return select(expenseCategories).get();
|
||||
}
|
||||
|
||||
Future<ExpenseCategory> upsertCategory(ExpenseCategoriesCompanion category) {
|
||||
return into(
|
||||
expenseCategories,
|
||||
).insertReturning(category, mode: InsertMode.insertOrReplace);
|
||||
}
|
||||
}
|
||||
|
||||
@DriftAccessor(tables: [Budgets, BudgetItems])
|
||||
@@ -391,11 +396,7 @@ class BudgetsDao extends DatabaseAccessor<OkaneDatabase>
|
||||
.watch()
|
||||
.map((rows) {
|
||||
return rows.map((row) {
|
||||
return BudgetsDto(
|
||||
budget: row.readTable(budgets),
|
||||
// TODO
|
||||
budgetItems: List.empty(),
|
||||
);
|
||||
return BudgetsDto(budget: row.readTable(budgets));
|
||||
}).toList();
|
||||
});
|
||||
}
|
||||
@@ -405,20 +406,28 @@ class BudgetsDao extends DatabaseAccessor<OkaneDatabase>
|
||||
return Future.value(List.empty());
|
||||
}
|
||||
|
||||
return (select(budgets)..where((b) => b.accountId.equals(account.id)))
|
||||
return (select(budgets)
|
||||
..where((b) => b.accountId.equals(account.id))).get().then((rows) {
|
||||
return rows.map((row) {
|
||||
return BudgetsDto(budget: row);
|
||||
}).toList();
|
||||
});
|
||||
}
|
||||
|
||||
Stream<List<BudgetItemDto>> watchBudgetItems(Budget budget) {
|
||||
return (select(budgetItems)..where((b) => b.budgetId.equals(budget.id)))
|
||||
.join([
|
||||
leftOuterJoin(
|
||||
budgetItems,
|
||||
budgetItems.budgetId.equalsExp(budgets.id),
|
||||
expenseCategories,
|
||||
expenseCategories.id.equalsExp(budgetItems.expenseCategoryId),
|
||||
),
|
||||
])
|
||||
.get()
|
||||
.then((rows) {
|
||||
.watch()
|
||||
.map((rows) {
|
||||
return rows.map((row) {
|
||||
return BudgetsDto(
|
||||
budget: row.readTable(budgets),
|
||||
// TODO
|
||||
budgetItems: List.empty(),
|
||||
return BudgetItemDto(
|
||||
expenseCategory: row.readTable(expenseCategories),
|
||||
item: row.readTable(budgetItems),
|
||||
);
|
||||
}).toList();
|
||||
});
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user