From b43d167ee01d813f1a4dd29602e0cbb314e7baff Mon Sep 17 00:00:00 2001 From: Niklas Opiela Date: Wed, 29 May 2024 09:26:15 +0200 Subject: [PATCH 1/7] feat(shared): 255 Impl of Quarries --- .../chart_of_accounts.dart | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart index 2e29112..1e0925c 100644 --- a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart +++ b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart @@ -1,6 +1,14 @@ import 'package:cashcompass_hook/src/accounts/active_account/active_account.dart'; import 'package:cashcompass_hook/src/accounts/category/category.dart'; import 'package:cashcompass_hook/src/data_storage/accout_manager.dart'; +import 'package:cashcompass_hook/src/transactions/transactions/transaction.dart'; + +class CategoryAndTransactions { + final Category category; + final List soll, haben; + CategoryAndTransactions( + {required this.category, required this.haben, required this.soll}); +} class ChartOfAccounts { final Accountmanager _accountmanager; @@ -13,11 +21,13 @@ class ChartOfAccounts { .toList(); } - List getActiveAccounts( - {bool Function(ActiveAccount)? matcher}) { - return _accountmanager - .getAllActiveAccounts() - .where((acc) => matcher != null ? matcher(acc) : true) - .toList(); + List getCategoriesAndTransaktions() { + var cates = _accountmanager.getAllCategories(); + var ret = []; + for (Category i in cates) { + ret.add( + CategoryAndTransactions(category: i, haben: i.habenT, soll: i.sollT)); + } + return ret; } } From 26a6f9b70bfd68becb25878b2d983dde5e816fea Mon Sep 17 00:00:00 2001 From: Niklas Opiela Date: Tue, 18 Jun 2024 14:33:18 +0200 Subject: [PATCH 2/7] feat(shared): 255 added expenses and income per category querry --- .../chart_of_accounts.dart | 31 +++++++++++++++++++ .../lib/src/chart_of_accounts.dart/data.dart | 18 +++++++++++ 2 files changed, 49 insertions(+) create mode 100644 client/cashcompass_hook/lib/src/chart_of_accounts.dart/data.dart diff --git a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart index 1e0925c..4ac9f9c 100644 --- a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart +++ b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart @@ -1,5 +1,6 @@ import 'package:cashcompass_hook/src/accounts/active_account/active_account.dart'; import 'package:cashcompass_hook/src/accounts/category/category.dart'; +import 'package:cashcompass_hook/src/chart_of_accounts.dart/data.dart'; import 'package:cashcompass_hook/src/data_storage/accout_manager.dart'; import 'package:cashcompass_hook/src/transactions/transactions/transaction.dart'; @@ -30,4 +31,34 @@ class ChartOfAccounts { } return ret; } + + Map> getExpencesPerCategory(Category? category) { + Map> ret = {}; + Iterable categories = _accountmanager + .getAllCategories() + .where((cate) => category == null ? true : cate == category); + + for (var category in categories) { + var e = category.sollT.map((elem) => Expense(elem, category)); + if (e.isNotEmpty) { + ret[category] = e; + } + } + return ret; + } + + Map> getIncomePerCategory(Category? category) { + Map> ret = {}; + Iterable categories = _accountmanager + .getAllCategories() + .where((cate) => category == null ? true : cate == category); + + for (var category in categories) { + var e = category.sollT.map((elem) => Income(elem, category)); + if (e.isNotEmpty) { + ret[category] = e; + } + } + return ret; + } } diff --git a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/data.dart b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/data.dart new file mode 100644 index 0000000..53584c0 --- /dev/null +++ b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/data.dart @@ -0,0 +1,18 @@ +import 'package:cashcompass_hook/src/accounts/category/category.dart'; +import 'package:cashcompass_hook/src/transactions/transactions/transaction.dart'; + +class Income { + final Transaction transaction; + final Category category; + Income(this.transaction, this.category); + String get icon => category.iconString; + DateTime get timestamp => transaction.timestamp; +} + +class Expense { + final Transaction transaction; + final Category category; + Expense(this.transaction, this.category); + String get icon => category.iconString; + DateTime get timestamp => transaction.timestamp; +} From d1fea9bbac8feb3028724b67b19a9c7a380f1043 Mon Sep 17 00:00:00 2001 From: Niklas Opiela Date: Tue, 18 Jun 2024 14:50:38 +0200 Subject: [PATCH 3/7] feat(shared): 255 Added quarry for issue 87 --- .../chart_of_accounts.dart | 12 ++++++++++++ .../lib/src/chart_of_accounts.dart/data.dart | 17 +++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart index 4ac9f9c..333b557 100644 --- a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart +++ b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart @@ -61,4 +61,16 @@ class ChartOfAccounts { } return ret; } + + List getAllTransactionsRealtedToCategories() { + List ret = []; + ret.addAll(_accountmanager.getAllCategories().expand((cate) => cate.habenT + .map((transaction) => + TransactionInfo(TransactionTypes.expense, transaction, cate)))); + + ret.addAll(_accountmanager.getAllCategories().expand((cate) => cate.sollT + .map((transaction) => + TransactionInfo(TransactionTypes.income, transaction, cate)))); + return ret; + } } diff --git a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/data.dart b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/data.dart index 53584c0..8b97eec 100644 --- a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/data.dart +++ b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/data.dart @@ -1,5 +1,6 @@ import 'package:cashcompass_hook/src/accounts/category/category.dart'; import 'package:cashcompass_hook/src/transactions/transactions/transaction.dart'; +import 'package:flutter/cupertino.dart'; class Income { final Transaction transaction; @@ -16,3 +17,19 @@ class Expense { String get icon => category.iconString; DateTime get timestamp => transaction.timestamp; } + +enum TransactionTypes { + expense, + income; +} + +class TransactionInfo { + final TransactionTypes transactionType; + final Transaction transcation; + final Category category; + TransactionInfo(this.transactionType, this.transcation, this.category); + double get amount => transcation.amount; + String get label => transcation.label; + String get walletName => category.name; + String get icon => category.iconString; +} From c7d32c85920e0ce2278c05beca5b7303615f17fc Mon Sep 17 00:00:00 2001 From: Niklas Opiela Date: Wed, 29 May 2024 09:26:15 +0200 Subject: [PATCH 4/7] feat(shared): 255 Impl of Quarries --- .../chart_of_accounts.dart | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart index 333b557..6bf2882 100644 --- a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart +++ b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart @@ -73,4 +73,22 @@ class ChartOfAccounts { TransactionInfo(TransactionTypes.income, transaction, cate)))); return ret; } + + List getActiveAccounts( + {bool Function(ActiveAccount)? matcher}) { + return _accountmanager + .getAllActiveAccounts() + .where((acc) => matcher != null ? matcher(acc) : true) + .toList(); + } + + List getCategoriesAndTransaktions() { + var cates = _accountmanager.getAllCategories(); + var ret = []; + for (Category i in cates) { + ret.add( + CategoryAndTransactions(category: i, haben: i.habenT, soll: i.sollT)); + } + return ret; + } } From dea9169135a303dfca71fefb44c05467386ba5f1 Mon Sep 17 00:00:00 2001 From: Niklas Opiela Date: Tue, 18 Jun 2024 14:33:18 +0200 Subject: [PATCH 5/7] feat(shared): 255 added expenses and income per category querry --- .../chart_of_accounts.dart | 30 +++++++++++++++++++ .../lib/src/chart_of_accounts.dart/data.dart | 1 - 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart index 6bf2882..55ce449 100644 --- a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart +++ b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart @@ -91,4 +91,34 @@ class ChartOfAccounts { } return ret; } + + Map> getExpencesPerCategory(Category? category) { + Map> ret = {}; + Iterable categories = _accountmanager + .getAllCategories() + .where((cate) => category == null ? true : cate == category); + + for (var category in categories) { + var e = category.sollT.map((elem) => Expense(elem, category)); + if (e.isNotEmpty) { + ret[category] = e; + } + } + return ret; + } + + Map> getIncomePerCategory(Category? category) { + Map> ret = {}; + Iterable categories = _accountmanager + .getAllCategories() + .where((cate) => category == null ? true : cate == category); + + for (var category in categories) { + var e = category.sollT.map((elem) => Income(elem, category)); + if (e.isNotEmpty) { + ret[category] = e; + } + } + return ret; + } } diff --git a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/data.dart b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/data.dart index 8b97eec..cf1f9cc 100644 --- a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/data.dart +++ b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/data.dart @@ -1,6 +1,5 @@ import 'package:cashcompass_hook/src/accounts/category/category.dart'; import 'package:cashcompass_hook/src/transactions/transactions/transaction.dart'; -import 'package:flutter/cupertino.dart'; class Income { final Transaction transaction; From 82f741a21fa3553d4f8a72285ed4e08576872165 Mon Sep 17 00:00:00 2001 From: Niklas Opiela Date: Tue, 18 Jun 2024 14:50:38 +0200 Subject: [PATCH 6/7] feat(shared): 255 Added quarry for issue 87 --- .../chart_of_accounts.dart/chart_of_accounts.dart | 12 ++++++++++++ .../lib/src/connector/sync_controller.dart | 5 +++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart index 55ce449..279f302 100644 --- a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart +++ b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart @@ -121,4 +121,16 @@ class ChartOfAccounts { } return ret; } + + List getAllTransactionsRealtedToCategories() { + List ret = []; + ret.addAll(_accountmanager.getAllCategories().expand((cate) => cate.habenT + .map((transaction) => + TransactionInfo(TransactionTypes.expense, transaction, cate)))); + + ret.addAll(_accountmanager.getAllCategories().expand((cate) => cate.sollT + .map((transaction) => + TransactionInfo(TransactionTypes.income, transaction, cate)))); + return ret; + } } diff --git a/client/cashcompass_hook/lib/src/connector/sync_controller.dart b/client/cashcompass_hook/lib/src/connector/sync_controller.dart index 18b94ef..52876d5 100644 --- a/client/cashcompass_hook/lib/src/connector/sync_controller.dart +++ b/client/cashcompass_hook/lib/src/connector/sync_controller.dart @@ -26,8 +26,9 @@ class SyncController implements DataAdapter { @override Future getInitialPull(Accountmanager accountmanager) async { - var remote = - _remoteStorage.getInitialPull(accountmanager).timeout(const Duration(seconds: 5)); + var remote = _remoteStorage + .getInitialPull(accountmanager) + .timeout(const Duration(seconds: 5)); var local = _localStorage.getInitialPull(accountmanager); InitialPullData? localData, remoteData; try { From 68ecdfeeb799b1256c7f21b13702bf35f2c80f93 Mon Sep 17 00:00:00 2001 From: Niklas Opiela Date: Tue, 18 Jun 2024 14:50:38 +0200 Subject: [PATCH 7/7] feat(shared): 255 Added quarry for issue 87 --- .../chart_of_accounts.dart | 52 ------------------- 1 file changed, 52 deletions(-) diff --git a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart index 279f302..0b1ee1d 100644 --- a/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart +++ b/client/cashcompass_hook/lib/src/chart_of_accounts.dart/chart_of_accounts.dart @@ -81,56 +81,4 @@ class ChartOfAccounts { .where((acc) => matcher != null ? matcher(acc) : true) .toList(); } - - List getCategoriesAndTransaktions() { - var cates = _accountmanager.getAllCategories(); - var ret = []; - for (Category i in cates) { - ret.add( - CategoryAndTransactions(category: i, haben: i.habenT, soll: i.sollT)); - } - return ret; - } - - Map> getExpencesPerCategory(Category? category) { - Map> ret = {}; - Iterable categories = _accountmanager - .getAllCategories() - .where((cate) => category == null ? true : cate == category); - - for (var category in categories) { - var e = category.sollT.map((elem) => Expense(elem, category)); - if (e.isNotEmpty) { - ret[category] = e; - } - } - return ret; - } - - Map> getIncomePerCategory(Category? category) { - Map> ret = {}; - Iterable categories = _accountmanager - .getAllCategories() - .where((cate) => category == null ? true : cate == category); - - for (var category in categories) { - var e = category.sollT.map((elem) => Income(elem, category)); - if (e.isNotEmpty) { - ret[category] = e; - } - } - return ret; - } - - List getAllTransactionsRealtedToCategories() { - List ret = []; - ret.addAll(_accountmanager.getAllCategories().expand((cate) => cate.habenT - .map((transaction) => - TransactionInfo(TransactionTypes.expense, transaction, cate)))); - - ret.addAll(_accountmanager.getAllCategories().expand((cate) => cate.sollT - .map((transaction) => - TransactionInfo(TransactionTypes.income, transaction, cate)))); - return ret; - } }