Allow deleting templates
This commit is contained in:
@@ -15,4 +15,18 @@ class RecurringTransaction {
|
||||
final template = IsarLink<TransactionTemplate>();
|
||||
|
||||
final account = IsarLink<Account>();
|
||||
|
||||
bool isDue(DateTime now) {
|
||||
if (lastExecution == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
final expectedNextExecution = lastExecution!.add(Duration(days: days));
|
||||
if (now.isAfter(expectedNextExecution)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return now.difference(expectedNextExecution).inDays.abs() <=
|
||||
(days * 0.5).toInt();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,9 +83,7 @@ Stream<void> watchRecurringTransactions(Account account) {
|
||||
Future<void> upsertAccount(Account account) async {
|
||||
final db = GetIt.I.get<Isar>();
|
||||
return db.writeTxn(() async {
|
||||
print("Before account insert");
|
||||
final id = await db.accounts.put(account);
|
||||
print("After account insert: $id");
|
||||
await db.accounts.put(account);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -116,6 +114,14 @@ Future<void> upsertTransactionTemplate(TransactionTemplate template) async {
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> deleteRecurringTransactionTemplate(RecurringTransaction template) {
|
||||
final db = GetIt.I.get<Isar>();
|
||||
return db.writeTxn(() async {
|
||||
await db.transactionTemplates.delete(template.template.value!.id);
|
||||
await db.recurringTransactions.delete(template.id);
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> upsertRecurringTransaction(RecurringTransaction template) async {
|
||||
final db = GetIt.I.get<Isar>();
|
||||
return db.writeTxn(() async {
|
||||
@@ -148,22 +154,24 @@ Stream<void> watchTransactionTemplates(Account account) {
|
||||
.watchLazy(fireImmediately: true);
|
||||
}
|
||||
|
||||
Future<List<TransactionTemplate>> getTransactionTemplates(
|
||||
Account? account,
|
||||
) async {
|
||||
Future<void> deleteTransactionTemplate(TransactionTemplate template) {
|
||||
final db = GetIt.I.get<Isar>();
|
||||
return db.writeTxn(() async {
|
||||
await db.transactionTemplates.delete(template.id);
|
||||
});
|
||||
}
|
||||
|
||||
Future<List<TransactionTemplate>> getTransactionTemplates(Account? account) {
|
||||
if (account == null) {
|
||||
return Future.value([]);
|
||||
}
|
||||
|
||||
final a =
|
||||
await GetIt.I
|
||||
.get<Isar>()
|
||||
.transactionTemplates
|
||||
.filter()
|
||||
.account((q) => q.idEqualTo(account.id))
|
||||
.findAll();
|
||||
|
||||
return a;
|
||||
return GetIt.I
|
||||
.get<Isar>()
|
||||
.transactionTemplates
|
||||
.filter()
|
||||
.account((q) => q.idEqualTo(account.id))
|
||||
.findAll();
|
||||
}
|
||||
|
||||
Stream<void> watchTransactions(Account account) {
|
||||
|
||||
Reference in New Issue
Block a user