. */ declare(strict_types=1); namespace FireflyIII\TransactionRules\Actions; use FireflyIII\Models\RuleAction; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionJournal; use Log; /** * Class ClearBudget. */ class ClearBudget implements ActionInterface { /** * TriggerInterface constructor. * * @param RuleAction $action */ public function __construct(RuleAction $action) { } /** * Clear all budgets * * @param TransactionJournal $journal * * @return bool */ public function act(TransactionJournal $journal): bool { $journal->budgets()->detach(); $journal->touch(); // also remove budgets from transactions (although no longer necessary) /** @var Transaction $transaction */ foreach ($journal->transactions as $transaction) { $transaction->budgets()->detach(); } Log::debug(sprintf('RuleAction ClearBudget removed all budgets from journal %d.', $journal->id)); return true; } }