Fix budgets appearing multiple times
This commit is contained in:
parent
42b1bbd438
commit
facbc16bb2
@ -386,17 +386,10 @@ class BudgetsDao extends DatabaseAccessor<OkaneDatabase>
|
||||
BudgetsDao(OkaneDatabase db) : super(db);
|
||||
|
||||
Stream<List<BudgetsDto>> budgetsStream(Account account) {
|
||||
return (select(budgets)..where((b) => b.accountId.equals(account.id)))
|
||||
.join([
|
||||
leftOuterJoin(
|
||||
budgetItems,
|
||||
budgetItems.budgetId.equalsExp(budgets.id),
|
||||
),
|
||||
])
|
||||
.watch()
|
||||
.map((rows) {
|
||||
return (select(budgets)
|
||||
..where((b) => b.accountId.equals(account.id))).watch().map((rows) {
|
||||
return rows.map((row) {
|
||||
return BudgetsDto(budget: row.readTable(budgets));
|
||||
return BudgetsDto(budget: row);
|
||||
}).toList();
|
||||
});
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -135,7 +135,7 @@ class TransactionDetailsPage extends StatelessWidget {
|
||||
GetIt.I
|
||||
.get<CoreCubit>()
|
||||
.activeAccount!
|
||||
.name!,
|
||||
.name,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
@ -95,6 +95,7 @@ class CoreCubit extends Cubit<CoreState> {
|
||||
_budgetsStreamSubscription = db.budgetsDao
|
||||
.budgetsStream(activeAccount!)
|
||||
.listen((budgets) async {
|
||||
print("BUDGETS: $budgets");
|
||||
emit(state.copyWith(budgets: budgets));
|
||||
});
|
||||
_loanStreamSubscription?.cancel();
|
||||
@ -133,7 +134,7 @@ class CoreCubit extends Cubit<CoreState> {
|
||||
expenseCategories: await db.expenseCategoriesDao.getExpenseCategories(
|
||||
account,
|
||||
),
|
||||
budgets: await db.budgetsDao.getBudgets(account),
|
||||
//budgets: await db.budgetsDao.getBudgets(account),
|
||||
loans: await db.loansDao.getLoans(account),
|
||||
),
|
||||
);
|
||||
|
@ -12,7 +12,8 @@ part of 'core.dart';
|
||||
T _$identity<T>(T value) => value;
|
||||
|
||||
final _privateConstructorUsedError = UnsupportedError(
|
||||
'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models');
|
||||
'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models',
|
||||
);
|
||||
|
||||
/// @nodoc
|
||||
mixin _$CoreState {
|
||||
@ -45,8 +46,8 @@ abstract class $CoreStateCopyWith<$Res> {
|
||||
factory $CoreStateCopyWith(CoreState value, $Res Function(CoreState) then) =
|
||||
_$CoreStateCopyWithImpl<$Res, CoreState>;
|
||||
@useResult
|
||||
$Res call(
|
||||
{OkanePage activePage,
|
||||
$Res call({
|
||||
OkanePage activePage,
|
||||
int? activeAccountIndex,
|
||||
TransactionDto? activeTransaction,
|
||||
List<Account> accounts,
|
||||
@ -60,7 +61,8 @@ abstract class $CoreStateCopyWith<$Res> {
|
||||
BudgetsDto? activeBudget,
|
||||
List<LoanDto> loans,
|
||||
LoanDto? activeLoan,
|
||||
bool isDeletingAccount});
|
||||
bool isDeletingAccount,
|
||||
});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@ -92,68 +94,86 @@ class _$CoreStateCopyWithImpl<$Res, $Val extends CoreState>
|
||||
Object? activeLoan = freezed,
|
||||
Object? isDeletingAccount = null,
|
||||
}) {
|
||||
return _then(_value.copyWith(
|
||||
activePage: null == activePage
|
||||
return _then(
|
||||
_value.copyWith(
|
||||
activePage:
|
||||
null == activePage
|
||||
? _value.activePage
|
||||
: activePage // ignore: cast_nullable_to_non_nullable
|
||||
as OkanePage,
|
||||
activeAccountIndex: freezed == activeAccountIndex
|
||||
activeAccountIndex:
|
||||
freezed == activeAccountIndex
|
||||
? _value.activeAccountIndex
|
||||
: activeAccountIndex // ignore: cast_nullable_to_non_nullable
|
||||
as int?,
|
||||
activeTransaction: freezed == activeTransaction
|
||||
activeTransaction:
|
||||
freezed == activeTransaction
|
||||
? _value.activeTransaction
|
||||
: activeTransaction // ignore: cast_nullable_to_non_nullable
|
||||
as TransactionDto?,
|
||||
accounts: null == accounts
|
||||
accounts:
|
||||
null == accounts
|
||||
? _value.accounts
|
||||
: accounts // ignore: cast_nullable_to_non_nullable
|
||||
as List<Account>,
|
||||
recurringTransactions: null == recurringTransactions
|
||||
recurringTransactions:
|
||||
null == recurringTransactions
|
||||
? _value.recurringTransactions
|
||||
: recurringTransactions // ignore: cast_nullable_to_non_nullable
|
||||
as List<RecurringTransactionDto>,
|
||||
transactions: null == transactions
|
||||
transactions:
|
||||
null == transactions
|
||||
? _value.transactions
|
||||
: transactions // ignore: cast_nullable_to_non_nullable
|
||||
as List<TransactionDto>,
|
||||
transactionTemplates: null == transactionTemplates
|
||||
transactionTemplates:
|
||||
null == transactionTemplates
|
||||
? _value.transactionTemplates
|
||||
: transactionTemplates // ignore: cast_nullable_to_non_nullable
|
||||
as List<TransactionTemplateDto>,
|
||||
beneficiaries: null == beneficiaries
|
||||
beneficiaries:
|
||||
null == beneficiaries
|
||||
? _value.beneficiaries
|
||||
: beneficiaries // ignore: cast_nullable_to_non_nullable
|
||||
as List<Beneficiary>,
|
||||
expenseCategories: null == expenseCategories
|
||||
expenseCategories:
|
||||
null == expenseCategories
|
||||
? _value.expenseCategories
|
||||
: expenseCategories // ignore: cast_nullable_to_non_nullable
|
||||
as List<ExpenseCategory>,
|
||||
budgets: null == budgets
|
||||
budgets:
|
||||
null == budgets
|
||||
? _value.budgets
|
||||
: budgets // ignore: cast_nullable_to_non_nullable
|
||||
as List<BudgetsDto>,
|
||||
budgetItems: null == budgetItems
|
||||
budgetItems:
|
||||
null == budgetItems
|
||||
? _value.budgetItems
|
||||
: budgetItems // ignore: cast_nullable_to_non_nullable
|
||||
as List<BudgetItemDto>,
|
||||
activeBudget: freezed == activeBudget
|
||||
activeBudget:
|
||||
freezed == activeBudget
|
||||
? _value.activeBudget
|
||||
: activeBudget // ignore: cast_nullable_to_non_nullable
|
||||
as BudgetsDto?,
|
||||
loans: null == loans
|
||||
loans:
|
||||
null == loans
|
||||
? _value.loans
|
||||
: loans // ignore: cast_nullable_to_non_nullable
|
||||
as List<LoanDto>,
|
||||
activeLoan: freezed == activeLoan
|
||||
activeLoan:
|
||||
freezed == activeLoan
|
||||
? _value.activeLoan
|
||||
: activeLoan // ignore: cast_nullable_to_non_nullable
|
||||
as LoanDto?,
|
||||
isDeletingAccount: null == isDeletingAccount
|
||||
isDeletingAccount:
|
||||
null == isDeletingAccount
|
||||
? _value.isDeletingAccount
|
||||
: isDeletingAccount // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
) as $Val);
|
||||
)
|
||||
as $Val,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -161,12 +181,13 @@ class _$CoreStateCopyWithImpl<$Res, $Val extends CoreState>
|
||||
abstract class _$$CoreStateImplCopyWith<$Res>
|
||||
implements $CoreStateCopyWith<$Res> {
|
||||
factory _$$CoreStateImplCopyWith(
|
||||
_$CoreStateImpl value, $Res Function(_$CoreStateImpl) then) =
|
||||
__$$CoreStateImplCopyWithImpl<$Res>;
|
||||
_$CoreStateImpl value,
|
||||
$Res Function(_$CoreStateImpl) then,
|
||||
) = __$$CoreStateImplCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call(
|
||||
{OkanePage activePage,
|
||||
$Res call({
|
||||
OkanePage activePage,
|
||||
int? activeAccountIndex,
|
||||
TransactionDto? activeTransaction,
|
||||
List<Account> accounts,
|
||||
@ -180,7 +201,8 @@ abstract class _$$CoreStateImplCopyWith<$Res>
|
||||
BudgetsDto? activeBudget,
|
||||
List<LoanDto> loans,
|
||||
LoanDto? activeLoan,
|
||||
bool isDeletingAccount});
|
||||
bool isDeletingAccount,
|
||||
});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@ -188,8 +210,9 @@ class __$$CoreStateImplCopyWithImpl<$Res>
|
||||
extends _$CoreStateCopyWithImpl<$Res, _$CoreStateImpl>
|
||||
implements _$$CoreStateImplCopyWith<$Res> {
|
||||
__$$CoreStateImplCopyWithImpl(
|
||||
_$CoreStateImpl _value, $Res Function(_$CoreStateImpl) _then)
|
||||
: super(_value, _then);
|
||||
_$CoreStateImpl _value,
|
||||
$Res Function(_$CoreStateImpl) _then,
|
||||
) : super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
@ -210,76 +233,93 @@ class __$$CoreStateImplCopyWithImpl<$Res>
|
||||
Object? activeLoan = freezed,
|
||||
Object? isDeletingAccount = null,
|
||||
}) {
|
||||
return _then(_$CoreStateImpl(
|
||||
activePage: null == activePage
|
||||
return _then(
|
||||
_$CoreStateImpl(
|
||||
activePage:
|
||||
null == activePage
|
||||
? _value.activePage
|
||||
: activePage // ignore: cast_nullable_to_non_nullable
|
||||
as OkanePage,
|
||||
activeAccountIndex: freezed == activeAccountIndex
|
||||
activeAccountIndex:
|
||||
freezed == activeAccountIndex
|
||||
? _value.activeAccountIndex
|
||||
: activeAccountIndex // ignore: cast_nullable_to_non_nullable
|
||||
as int?,
|
||||
activeTransaction: freezed == activeTransaction
|
||||
activeTransaction:
|
||||
freezed == activeTransaction
|
||||
? _value.activeTransaction
|
||||
: activeTransaction // ignore: cast_nullable_to_non_nullable
|
||||
as TransactionDto?,
|
||||
accounts: null == accounts
|
||||
accounts:
|
||||
null == accounts
|
||||
? _value._accounts
|
||||
: accounts // ignore: cast_nullable_to_non_nullable
|
||||
as List<Account>,
|
||||
recurringTransactions: null == recurringTransactions
|
||||
recurringTransactions:
|
||||
null == recurringTransactions
|
||||
? _value._recurringTransactions
|
||||
: recurringTransactions // ignore: cast_nullable_to_non_nullable
|
||||
as List<RecurringTransactionDto>,
|
||||
transactions: null == transactions
|
||||
transactions:
|
||||
null == transactions
|
||||
? _value._transactions
|
||||
: transactions // ignore: cast_nullable_to_non_nullable
|
||||
as List<TransactionDto>,
|
||||
transactionTemplates: null == transactionTemplates
|
||||
transactionTemplates:
|
||||
null == transactionTemplates
|
||||
? _value._transactionTemplates
|
||||
: transactionTemplates // ignore: cast_nullable_to_non_nullable
|
||||
as List<TransactionTemplateDto>,
|
||||
beneficiaries: null == beneficiaries
|
||||
beneficiaries:
|
||||
null == beneficiaries
|
||||
? _value._beneficiaries
|
||||
: beneficiaries // ignore: cast_nullable_to_non_nullable
|
||||
as List<Beneficiary>,
|
||||
expenseCategories: null == expenseCategories
|
||||
expenseCategories:
|
||||
null == expenseCategories
|
||||
? _value._expenseCategories
|
||||
: expenseCategories // ignore: cast_nullable_to_non_nullable
|
||||
as List<ExpenseCategory>,
|
||||
budgets: null == budgets
|
||||
budgets:
|
||||
null == budgets
|
||||
? _value._budgets
|
||||
: budgets // ignore: cast_nullable_to_non_nullable
|
||||
as List<BudgetsDto>,
|
||||
budgetItems: null == budgetItems
|
||||
budgetItems:
|
||||
null == budgetItems
|
||||
? _value._budgetItems
|
||||
: budgetItems // ignore: cast_nullable_to_non_nullable
|
||||
as List<BudgetItemDto>,
|
||||
activeBudget: freezed == activeBudget
|
||||
activeBudget:
|
||||
freezed == activeBudget
|
||||
? _value.activeBudget
|
||||
: activeBudget // ignore: cast_nullable_to_non_nullable
|
||||
as BudgetsDto?,
|
||||
loans: null == loans
|
||||
loans:
|
||||
null == loans
|
||||
? _value._loans
|
||||
: loans // ignore: cast_nullable_to_non_nullable
|
||||
as List<LoanDto>,
|
||||
activeLoan: freezed == activeLoan
|
||||
activeLoan:
|
||||
freezed == activeLoan
|
||||
? _value.activeLoan
|
||||
: activeLoan // ignore: cast_nullable_to_non_nullable
|
||||
as LoanDto?,
|
||||
isDeletingAccount: null == isDeletingAccount
|
||||
isDeletingAccount:
|
||||
null == isDeletingAccount
|
||||
? _value.isDeletingAccount
|
||||
: isDeletingAccount // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
));
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
class _$CoreStateImpl implements _CoreState {
|
||||
const _$CoreStateImpl(
|
||||
{this.activePage = OkanePage.accounts,
|
||||
const _$CoreStateImpl({
|
||||
this.activePage = OkanePage.accounts,
|
||||
this.activeAccountIndex,
|
||||
this.activeTransaction = null,
|
||||
final List<Account> accounts = const [],
|
||||
@ -293,8 +333,8 @@ class _$CoreStateImpl implements _CoreState {
|
||||
this.activeBudget = null,
|
||||
final List<LoanDto> loans = const [],
|
||||
this.activeLoan = null,
|
||||
this.isDeletingAccount = false})
|
||||
: _accounts = accounts,
|
||||
this.isDeletingAccount = false,
|
||||
}) : _accounts = accounts,
|
||||
_recurringTransactions = recurringTransactions,
|
||||
_transactions = transactions,
|
||||
_transactionTemplates = transactionTemplates,
|
||||
@ -423,19 +463,31 @@ class _$CoreStateImpl implements _CoreState {
|
||||
(identical(other.activeTransaction, activeTransaction) ||
|
||||
other.activeTransaction == activeTransaction) &&
|
||||
const DeepCollectionEquality().equals(other._accounts, _accounts) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other._recurringTransactions, _recurringTransactions) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other._transactions, _transactions) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other._transactionTemplates, _transactionTemplates) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other._beneficiaries, _beneficiaries) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other._expenseCategories, _expenseCategories) &&
|
||||
const DeepCollectionEquality().equals(
|
||||
other._recurringTransactions,
|
||||
_recurringTransactions,
|
||||
) &&
|
||||
const DeepCollectionEquality().equals(
|
||||
other._transactions,
|
||||
_transactions,
|
||||
) &&
|
||||
const DeepCollectionEquality().equals(
|
||||
other._transactionTemplates,
|
||||
_transactionTemplates,
|
||||
) &&
|
||||
const DeepCollectionEquality().equals(
|
||||
other._beneficiaries,
|
||||
_beneficiaries,
|
||||
) &&
|
||||
const DeepCollectionEquality().equals(
|
||||
other._expenseCategories,
|
||||
_expenseCategories,
|
||||
) &&
|
||||
const DeepCollectionEquality().equals(other._budgets, _budgets) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other._budgetItems, _budgetItems) &&
|
||||
const DeepCollectionEquality().equals(
|
||||
other._budgetItems,
|
||||
_budgetItems,
|
||||
) &&
|
||||
(identical(other.activeBudget, activeBudget) ||
|
||||
other.activeBudget == activeBudget) &&
|
||||
const DeepCollectionEquality().equals(other._loans, _loans) &&
|
||||
@ -462,7 +514,8 @@ class _$CoreStateImpl implements _CoreState {
|
||||
activeBudget,
|
||||
const DeepCollectionEquality().hash(_loans),
|
||||
activeLoan,
|
||||
isDeletingAccount);
|
||||
isDeletingAccount,
|
||||
);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@ -472,8 +525,8 @@ class _$CoreStateImpl implements _CoreState {
|
||||
}
|
||||
|
||||
abstract class _CoreState implements CoreState {
|
||||
const factory _CoreState(
|
||||
{final OkanePage activePage,
|
||||
const factory _CoreState({
|
||||
final OkanePage activePage,
|
||||
final int? activeAccountIndex,
|
||||
final TransactionDto? activeTransaction,
|
||||
final List<Account> accounts,
|
||||
@ -487,7 +540,8 @@ abstract class _CoreState implements CoreState {
|
||||
final BudgetsDto? activeBudget,
|
||||
final List<LoanDto> loans,
|
||||
final LoanDto? activeLoan,
|
||||
final bool isDeletingAccount}) = _$CoreStateImpl;
|
||||
final bool isDeletingAccount,
|
||||
}) = _$CoreStateImpl;
|
||||
|
||||
@override
|
||||
OkanePage get activePage;
|
||||
|
@ -65,7 +65,7 @@ class AccountSwitcher extends StatelessWidget {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Text(
|
||||
bloc.activeAccount!.name!,
|
||||
bloc.activeAccount!.name,
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
Icon(Icons.arrow_drop_down),
|
||||
|
Loading…
Reference in New Issue
Block a user