From 9921c5a9254905e1d9a6e9c9f52f53db7c54361f Mon Sep 17 00:00:00 2001 From: James Cole Date: Fri, 21 Feb 2025 06:18:11 +0100 Subject: [PATCH] Fix #9882 --- .../Models/Transaction/StoreController.php | 1 + .../Model/Transaction/StoreController.php | 1 + .../Commands/Upgrade/UpgradesToGroups.php | 3 +- .../Account/ReconcileController.php | 29 ++++++++++--------- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/app/Api/V1/Controllers/Models/Transaction/StoreController.php b/app/Api/V1/Controllers/Models/Transaction/StoreController.php index b9148c2ee1..03cbd54dab 100644 --- a/app/Api/V1/Controllers/Models/Transaction/StoreController.php +++ b/app/Api/V1/Controllers/Models/Transaction/StoreController.php @@ -90,6 +90,7 @@ class StoreController extends Controller $data['user'] = auth()->user(); $data['user_group'] = $this->userGroup; + Log::channel('audit')->info('Store new transaction over API.', $data); try { diff --git a/app/Api/V2/Controllers/Model/Transaction/StoreController.php b/app/Api/V2/Controllers/Model/Transaction/StoreController.php index 70988387b1..570313010c 100644 --- a/app/Api/V2/Controllers/Model/Transaction/StoreController.php +++ b/app/Api/V2/Controllers/Model/Transaction/StoreController.php @@ -73,6 +73,7 @@ class StoreController extends Controller $userGroup = $request->getUserGroup(); $data['user_group'] = $userGroup; + // overrule user group and see where we end up. // what happens when we refer to a budget that is not in this user group? diff --git a/app/Console/Commands/Upgrade/UpgradesToGroups.php b/app/Console/Commands/Upgrade/UpgradesToGroups.php index f847ca57f3..d1c0625efe 100644 --- a/app/Console/Commands/Upgrade/UpgradesToGroups.php +++ b/app/Console/Commands/Upgrade/UpgradesToGroups.php @@ -238,7 +238,8 @@ class UpgradesToGroups extends Command return [ 'type' => strtolower($journal->transactionType->type), 'date' => $journal->date, - 'user' => $journal->user_id, + 'user' => $journal->user, + 'user_group' => $journal->user->userGroup, 'currency_id' => $transaction->transaction_currency_id, 'foreign_currency_id' => $transaction->foreign_currency_id, 'amount' => $transaction->amount, diff --git a/app/Http/Controllers/Account/ReconcileController.php b/app/Http/Controllers/Account/ReconcileController.php index ee018d8bf2..095bfb6c34 100644 --- a/app/Http/Controllers/Account/ReconcileController.php +++ b/app/Http/Controllers/Account/ReconcileController.php @@ -87,10 +87,10 @@ class ReconcileController extends Controller return redirect(route('accounts.index', [config(sprintf('firefly.shortNamesByFullName.%s', $account->accountType->type))])); } - $currency = $this->accountRepos->getAccountCurrency($account) ?? $this->defaultCurrency; + $currency = $this->accountRepos->getAccountCurrency($account) ?? $this->defaultCurrency; // no start or end: - $range = app('navigation')->getViewRange(false); + $range = app('navigation')->getViewRange(false); // get start and end @@ -99,7 +99,7 @@ class ReconcileController extends Controller $start = clone session('start', app('navigation')->startOfPeriod(new Carbon(), $range)); /** @var Carbon $end */ - $end = clone session('end', app('navigation')->endOfPeriod(new Carbon(), $range)); + $end = clone session('end', app('navigation')->endOfPeriod(new Carbon(), $range)); } if (null === $end) { /** @var Carbon $end */ @@ -113,15 +113,15 @@ class ReconcileController extends Controller $start->startOfDay(); $end->endOfDay(); - $startDate = clone $start; + $startDate = clone $start; $startDate->subDay()->endOfDay(); // this is correct, subday endofday ends at 23:59:59 // both are validated and are correct. Log::debug(sprintf('reconcile: Call finalAccountBalance with date/time "%s"', $startDate->toIso8601String())); Log::debug(sprintf('reconcile2: Call finalAccountBalance with date/time "%s"', $end->toIso8601String())); - $startBalance = Steam::bcround(Steam::finalAccountBalance($account, $startDate)['balance'], $currency->decimal_places); - $endBalance = Steam::bcround(Steam::finalAccountBalance($account, $end)['balance'], $currency->decimal_places); - $subTitleIcon = config(sprintf('firefly.subIconsByIdentifier.%s', $account->accountType->type)); - $subTitle = (string) trans('firefly.reconcile_account', ['account' => $account->name]); + $startBalance = Steam::bcround(Steam::finalAccountBalance($account, $startDate)['balance'], $currency->decimal_places); + $endBalance = Steam::bcround(Steam::finalAccountBalance($account, $end)['balance'], $currency->decimal_places); + $subTitleIcon = config(sprintf('firefly.subIconsByIdentifier.%s', $account->accountType->type)); + $subTitle = (string) trans('firefly.reconcile_account', ['account' => $account->name]); // various links $transactionsUrl = route('accounts.reconcile.transactions', [$account->id, '%start%', '%end%']); @@ -162,7 +162,7 @@ class ReconcileController extends Controller } app('log')->debug('In ReconcileController::submit()'); - $data = $request->getAll(); + $data = $request->getAll(); /** @var string $journalId */ foreach ($data['journals'] as $journalId) { @@ -217,19 +217,20 @@ class ReconcileController extends Controller } // title: - $description = trans( + $description = trans( 'firefly.reconciliation_transaction_title', [ 'from' => $start->isoFormat($this->monthAndDayFormat), 'to' => $end->isoFormat($this->monthAndDayFormat), ] ); - $submission = [ + $submission = [ 'user' => auth()->user()->id, 'group_title' => null, 'transactions' => [ [ - 'user' => auth()->user()->id, + 'user' => auth()->user(), + 'user_group' => auth()->user()->userGroup, 'type' => strtolower(TransactionTypeEnum::RECONCILIATION->value), 'date' => $end, 'order' => 0, @@ -246,10 +247,10 @@ class ReconcileController extends Controller ]; /** @var TransactionGroupFactory $factory */ - $factory = app(TransactionGroupFactory::class); + $factory = app(TransactionGroupFactory::class); /** @var User $user */ - $user = auth()->user(); + $user = auth()->user(); $factory->setUser($user); try {