Unify more event handlers.

This commit is contained in:
James Cole
2026-02-04 20:29:28 +01:00
parent d25283f193
commit 5c8204e963
8 changed files with 192 additions and 246 deletions

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\Transaction;
use FireflyIII\Events\Model\TransactionGroup\TransactionGroupEventFlags;
use FireflyIII\Events\Model\TransactionGroup\TransactionGroupEventObjects;
use FireflyIII\Events\Model\TransactionGroup\UpdatedSingleTransactionGroup;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\BulkEditJournalRequest;
@@ -57,7 +58,7 @@ class BulkController extends Controller
$this->middleware(function ($request, $next) {
$this->repository = app(JournalRepositoryInterface::class);
app('view')->share('title', (string) trans('firefly.transactions'));
app('view')->share('title', (string)trans('firefly.transactions'));
app('view')->share('mainTitleIcon', 'fa-exchange');
return $next($request);
@@ -71,9 +72,9 @@ class BulkController extends Controller
*
* @return Factory|View
*/
public function edit(array $journals): Factory|\Illuminate\Contracts\View\View
public function edit(array $journals): Factory | \Illuminate\Contracts\View\View
{
$subTitle = (string) trans('firefly.mass_bulk_journals');
$subTitle = (string)trans('firefly.mass_bulk_journals');
$this->rememberPreviousUrl('transactions.bulk-edit.url');
@@ -84,7 +85,7 @@ class BulkController extends Controller
$budgetRepos = app(BudgetRepositoryInterface::class);
$budgetList = app('expandedform')->makeSelectListWithEmpty($budgetRepos->getActiveBudgets());
return view('transactions.bulk.edit', ['journals' => $journals, 'subTitle' => $subTitle, 'budgetList' => $budgetList]);
return view('transactions.bulk.edit', ['journals' => $journals, 'subTitle' => $subTitle, 'budgetList' => $budgetList]);
}
/**
@@ -92,18 +93,18 @@ class BulkController extends Controller
*
* @return Application|Redirector|RedirectResponse
*/
public function update(BulkEditJournalRequest $request): Redirector|RedirectResponse
public function update(BulkEditJournalRequest $request): Redirector | RedirectResponse
{
$journalIds = $request->get('journals');
$journalIds = is_array($journalIds) ? $journalIds : [];
$ignoreCategory = 1 === (int) $request->get('ignore_category');
$ignoreBudget = 1 === (int) $request->get('ignore_budget');
$ignoreCategory = 1 === (int)$request->get('ignore_category');
$ignoreBudget = 1 === (int)$request->get('ignore_budget');
$tagsAction = $request->get('tags_action');
$collection = new Collection();
$count = 0;
foreach ($journalIds as $journalId) {
$journalId = (int) $journalId;
$journalId = (int)$journalId;
$journal = $this->repository->find($journalId);
if (null !== $journal) {
$resultA = $this->updateJournalBudget($journal, $ignoreBudget, $request->integer('budget_id'));
@@ -116,13 +117,15 @@ class BulkController extends Controller
}
}
$flags = new TransactionGroupEventFlags();
$flags = new TransactionGroupEventFlags();
$objects = new TransactionGroupEventObjects();
// run rules on changed journals:
/** @var TransactionJournal $journal */
foreach ($collection as $journal) {
event(new UpdatedSingleTransactionGroup($journal->transactionGroup, $flags));
$objects->appendFromTransactionGroup($journal->transactionGroup);
}
event(new UpdatedSingleTransactionGroup($flags, $objects));
Preferences::mark();
$request->session()->flash('success', trans_choice('firefly.mass_edited_transactions_success', $count));