diff --git a/app/Helpers/Report/BalanceReportHelper.php b/app/Helpers/Report/BalanceReportHelper.php index 4210cc66fe..acd623a2a9 100644 --- a/app/Helpers/Report/BalanceReportHelper.php +++ b/app/Helpers/Report/BalanceReportHelper.php @@ -51,13 +51,13 @@ class BalanceReportHelper implements BalanceReportHelperInterface /** + * @param Collection $accounts * @param Carbon $start * @param Carbon $end - * @param Collection $accounts * * @return Balance */ - public function getBalanceReport(Carbon $start, Carbon $end, Collection $accounts): Balance + public function getBalanceReport(Collection $accounts, Carbon $start, Carbon $end): Balance { $balance = new Balance; $header = new BalanceHeader; diff --git a/app/Helpers/Report/BalanceReportHelperInterface.php b/app/Helpers/Report/BalanceReportHelperInterface.php index 5aa14d09cb..6687eb6cf6 100644 --- a/app/Helpers/Report/BalanceReportHelperInterface.php +++ b/app/Helpers/Report/BalanceReportHelperInterface.php @@ -26,11 +26,11 @@ use Illuminate\Support\Collection; interface BalanceReportHelperInterface { /** + * @param Collection $accounts * @param Carbon $start * @param Carbon $end - * @param Collection $accounts * * @return Balance */ - public function getBalanceReport(Carbon $start, Carbon $end, Collection $accounts): Balance; + public function getBalanceReport(Collection $accounts, Carbon $start, Carbon $end): Balance; } diff --git a/app/Helpers/Report/ReportHelper.php b/app/Helpers/Report/ReportHelper.php index e75c49ae79..4644407497 100644 --- a/app/Helpers/Report/ReportHelper.php +++ b/app/Helpers/Report/ReportHelper.php @@ -118,7 +118,7 @@ class ReportHelper implements ReportHelperInterface * * @return CategoryCollection */ - public function getCategoryReport(Carbon $start, Carbon $end, Collection $accounts): CategoryCollection + public function getCategoryReport(Collection $accounts, Carbon $start, Carbon $end): CategoryCollection { $object = new CategoryCollection; /** @var CategoryRepositoryInterface $repository */ diff --git a/app/Helpers/Report/ReportHelperInterface.php b/app/Helpers/Report/ReportHelperInterface.php index a4ec6ad874..6e7343629d 100644 --- a/app/Helpers/Report/ReportHelperInterface.php +++ b/app/Helpers/Report/ReportHelperInterface.php @@ -49,7 +49,7 @@ interface ReportHelperInterface * * @return CategoryCollection */ - public function getCategoryReport(Carbon $start, Carbon $end, Collection $accounts): CategoryCollection; + public function getCategoryReport(Collection $accounts, Carbon $start, Carbon $end): CategoryCollection; /** * @param Carbon $date diff --git a/app/Http/Controllers/Report/AccountController.php b/app/Http/Controllers/Report/AccountController.php index 85da130558..c36c6c7aea 100644 --- a/app/Http/Controllers/Report/AccountController.php +++ b/app/Http/Controllers/Report/AccountController.php @@ -29,13 +29,13 @@ class AccountController extends Controller { /** + * @param Collection $accounts * @param Carbon $start * @param Carbon $end - * @param Collection $accounts * - * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @return mixed|string */ - public function accountReport(Carbon $start, Carbon $end, Collection $accounts) + public function general(Collection $accounts, Carbon $start, Carbon $end) { // chart properties for cache: $cache = new CacheProperties; @@ -47,9 +47,9 @@ class AccountController extends Controller return $cache->get(); } - + /** @var AccountTaskerInterface $accountTasker */ $accountTasker = app(AccountTaskerInterface::class); - $accountReport = $accountTasker->getAccountReport($start, $end, $accounts); + $accountReport = $accountTasker->getAccountReport($accounts, $start, $end); $result = view('reports.partials.accounts', compact('accountReport'))->render(); $cache->store($result); diff --git a/app/Http/Controllers/Report/BalanceController.php b/app/Http/Controllers/Report/BalanceController.php index 74c1d393fb..905aa429c4 100644 --- a/app/Http/Controllers/Report/BalanceController.php +++ b/app/Http/Controllers/Report/BalanceController.php @@ -30,13 +30,13 @@ class BalanceController extends Controller /** * @param BalanceReportHelperInterface $helper + * @param Collection $accounts * @param Carbon $start * @param Carbon $end - * @param Collection $accounts * - * @return string + * @return mixed|string */ - public function balanceReport(BalanceReportHelperInterface $helper, Carbon $start, Carbon $end, Collection $accounts) + public function general(BalanceReportHelperInterface $helper,Collection $accounts, Carbon $start, Carbon $end) { @@ -50,7 +50,7 @@ class BalanceController extends Controller return $cache->get(); } - $balance = $helper->getBalanceReport($start, $end, $accounts); + $balance = $helper->getBalanceReport($accounts, $start, $end); $result = view('reports.partials.balance', compact('balance'))->render(); $cache->store($result); diff --git a/app/Http/Controllers/Report/CategoryController.php b/app/Http/Controllers/Report/CategoryController.php index 7d6405d494..fd56bead5f 100644 --- a/app/Http/Controllers/Report/CategoryController.php +++ b/app/Http/Controllers/Report/CategoryController.php @@ -31,34 +31,6 @@ use Navigation; */ class CategoryController extends Controller { - /** - * @param ReportHelperInterface $helper - * @param Carbon $start - * @param Carbon $end - * @param Collection $accounts - * - * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View - */ - public function categoryReport(ReportHelperInterface $helper, Carbon $start, Carbon $end, Collection $accounts) - { - // chart properties for cache: - $cache = new CacheProperties; - $cache->addProperty($start); - $cache->addProperty($end); - $cache->addProperty('category-report'); - $cache->addProperty($accounts->pluck('id')->toArray()); - if ($cache->has()) { - return $cache->get(); - } - - $categories = $helper->getCategoryReport($start, $end, $accounts); - - $result = view('reports.partials.categories', compact('categories'))->render(); - $cache->store($result); - - return $result; - } - /** * @param Collection $accounts * @param Carbon $start @@ -75,6 +47,7 @@ class CategoryController extends Controller $cache->addProperty($accounts->pluck('id')->toArray()); if ($cache->has()) { Log::debug('Return report from cache'); + return $cache->get(); } /** @var CategoryRepositoryInterface $repository */ @@ -84,7 +57,7 @@ class CategoryController extends Controller $data[0] = $repository->periodExpensesNoCategory($accounts, $start, $end); $report = $this->filterReport($data); $periods = Navigation::listOfPeriods($start, $end); - $result = view('reports.partials.category-period', compact('report', 'periods'))->render(); + $result = view('reports.partials.category-period', compact('report', 'periods'))->render(); $cache->store($result); @@ -108,6 +81,7 @@ class CategoryController extends Controller $cache->addProperty($accounts->pluck('id')->toArray()); if ($cache->has()) { Log::debug('Return report from cache'); + return $cache->get(); } /** @var CategoryRepositoryInterface $repository */ @@ -117,13 +91,48 @@ class CategoryController extends Controller $data[0] = $repository->periodIncomeNoCategory($accounts, $start, $end); $report = $this->filterReport($data); $periods = Navigation::listOfPeriods($start, $end); - $result = view('reports.partials.category-period', compact('report', 'periods'))->render(); + $result = view('reports.partials.category-period', compact('report', 'periods'))->render(); $cache->store($result); return $result; } + /** + * @param ReportHelperInterface $helper + * @param Collection $accounts + * @param Carbon $start + * @param Carbon $end + * + * @return mixed|string + */ + public function operations(Collection $accounts, Carbon $start, Carbon $end) + { + // chart properties for cache: + $cache = new CacheProperties; + $cache->addProperty($start); + $cache->addProperty($end); + $cache->addProperty('category-report'); + $cache->addProperty($accounts->pluck('id')->toArray()); + if ($cache->has()) { + return $cache->get(); + } + + /** @var CategoryRepositoryInterface $repository */ + $repository = app(CategoryRepositoryInterface::class); + $categories = $repository->getCategories(); + $report = []; + /** @var Category $category */ + foreach ($categories as $category) { + $spent = $repository->spentInPeriod(new Collection([$category]), $accounts, $start, $end); + $report[$category->id] = ['name' => $category->name, 'spent' => $spent]; + } + + $result = view('reports.partials.categories', compact('report'))->render(); + $cache->store($result); + + return $result; + } /** * Filters empty results from category period report diff --git a/app/Http/Controllers/Report/InOutController.php b/app/Http/Controllers/Report/OperationsController.php similarity index 87% rename from app/Http/Controllers/Report/InOutController.php rename to app/Http/Controllers/Report/OperationsController.php index 7e5ee6bc95..817d008001 100644 --- a/app/Http/Controllers/Report/InOutController.php +++ b/app/Http/Controllers/Report/OperationsController.php @@ -1,6 +1,6 @@ render(); + $result = view('reports.partials.operations', compact('incomeSum', 'expensesSum'))->render(); $cache->store($result); return $result; @@ -103,14 +102,13 @@ class InOutController extends Controller } /** - * @param ReportHelperInterface $helper - * @param Carbon $start - * @param Carbon $end - * @param Collection $accounts + * @param Collection $accounts + * @param Carbon $start + * @param Carbon $end * - * @return \Illuminate\Http\JsonResponse + * @return string */ - public function incomeReport(ReportHelperInterface $helper, Carbon $start, Carbon $end, Collection $accounts) + public function income(Collection $accounts, Carbon $start, Carbon $end) { // chart properties for cache: $cache = new CacheProperties; diff --git a/app/Http/Controllers/Transaction/ConvertController.php b/app/Http/Controllers/Transaction/ConvertController.php index 434300face..c06fa91ff4 100644 --- a/app/Http/Controllers/Transaction/ConvertController.php +++ b/app/Http/Controllers/Transaction/ConvertController.php @@ -62,7 +62,7 @@ class ConvertController extends Controller * * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|View */ - public function convert(TransactionType $destinationType, TransactionJournal $journal) + public function index(TransactionType $destinationType, TransactionJournal $journal) { if ($this->isOpeningBalance($journal)) { return $this->redirectToAccount($journal); @@ -115,7 +115,7 @@ class ConvertController extends Controller * * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ - public function submit(Request $request, JournalRepositoryInterface $repository, TransactionType $destinationType, TransactionJournal $journal) + public function postIndex(Request $request, JournalRepositoryInterface $repository, TransactionType $destinationType, TransactionJournal $journal) { if ($this->isOpeningBalance($journal)) { return $this->redirectToAccount($journal); diff --git a/app/Http/Controllers/Transaction/SingleController.php b/app/Http/Controllers/Transaction/SingleController.php index ae3481bfcd..ddf9115e9a 100644 --- a/app/Http/Controllers/Transaction/SingleController.php +++ b/app/Http/Controllers/Transaction/SingleController.php @@ -179,7 +179,7 @@ class SingleController extends Controller $count = $journal->transactions()->count(); if ($count > 2) { - return redirect(route('transactions.edit-split', [$journal->id])); + return redirect(route('transactions.split.edit', [$journal->id])); } $what = strtolower(TransactionJournal::transactionTypeStr($journal)); @@ -286,7 +286,7 @@ class SingleController extends Controller if ($doSplit === true) { // redirect to edit screen: - return redirect(route('transactions.edit-split', [$journal->id])); + return redirect(route('transactions.split.edit', [$journal->id])); } diff --git a/app/Http/Controllers/Transaction/SplitController.php b/app/Http/Controllers/Transaction/SplitController.php index 38c40f3f40..595fb2ddbe 100644 --- a/app/Http/Controllers/Transaction/SplitController.php +++ b/app/Http/Controllers/Transaction/SplitController.php @@ -157,7 +157,7 @@ class SplitController extends Controller // set value so edit routine will not overwrite URL: Session::put('transactions.edit-split.fromUpdate', true); - return redirect(route('transactions.edit-split', [$journal->id]))->withInput(['return_to_edit' => 1]); + return redirect(route('transactions.split.edit', [$journal->id]))->withInput(['return_to_edit' => 1]); } // redirect to previous URL. diff --git a/app/Http/Controllers/TransactionController.php b/app/Http/Controllers/TransactionController.php index 36214cf76c..3a1c4415e7 100644 --- a/app/Http/Controllers/TransactionController.php +++ b/app/Http/Controllers/TransactionController.php @@ -146,7 +146,7 @@ class TransactionController extends Controller * * @return View */ - public function indexDate(Request $request, string $what, string $date) + public function indexByDate(Request $request, string $what, string $date) { $carbon = new Carbon($date); $range = Preferences::get('viewRange', '1M')->data; diff --git a/app/Repositories/Account/AccountTasker.php b/app/Repositories/Account/AccountTasker.php index b485fed700..0a892dd5b2 100644 --- a/app/Repositories/Account/AccountTasker.php +++ b/app/Repositories/Account/AccountTasker.php @@ -106,13 +106,13 @@ class AccountTasker implements AccountTaskerInterface } /** + * @param Collection $accounts * @param Carbon $start * @param Carbon $end - * @param Collection $accounts * * @return AccountCollection */ - public function getAccountReport(Carbon $start, Carbon $end, Collection $accounts): AccountCollection + public function getAccountReport(Collection $accounts, Carbon $start, Carbon $end): AccountCollection { $startAmount = '0'; $endAmount = '0'; diff --git a/app/Repositories/Account/AccountTaskerInterface.php b/app/Repositories/Account/AccountTaskerInterface.php index 4e023abeac..67ab246ed9 100644 --- a/app/Repositories/Account/AccountTaskerInterface.php +++ b/app/Repositories/Account/AccountTaskerInterface.php @@ -50,12 +50,12 @@ interface AccountTaskerInterface public function amountOutInPeriod(Collection $accounts, Collection $excluded, Carbon $start, Carbon $end): string; /** + * @param Collection $accounts * @param Carbon $start * @param Carbon $end - * @param Collection $accounts * * @return AccountCollection */ - public function getAccountReport(Carbon $start, Carbon $end, Collection $accounts): AccountCollection; + public function getAccountReport(Collection $accounts, Carbon $start, Carbon $end): AccountCollection; } diff --git a/resources/views/reports/partials/income-vs-expenses.twig b/resources/views/reports/partials/operations.twig similarity index 100% rename from resources/views/reports/partials/income-vs-expenses.twig rename to resources/views/reports/partials/operations.twig diff --git a/resources/views/rules/rule-group/create.twig b/resources/views/rules/rule-group/create.twig index e8243d4d4c..bdd99103d2 100644 --- a/resources/views/rules/rule-group/create.twig +++ b/resources/views/rules/rule-group/create.twig @@ -5,7 +5,7 @@ {% endblock %} {% block content %} -