. */ namespace FireflyIII\TransactionRules\Actions; use FireflyIII\Models\Note; use FireflyIII\Models\TransactionJournal; use Illuminate\Support\Facades\Log; class AppendDescriptionToNotes implements ActionInterface { /** * @inheritDoc */ public function actOnArray(array $journal): bool { /** @var TransactionJournal $journal */ $journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']); if (null === $journal) { Log::error(sprintf('No journal #%d belongs to user #%d.', $journal['transaction_journal_id'], $journal['user_id'])); return false; } $note = $journal->notes()->first(); if (null === $note) { $note = new Note; $note->noteable()->associate($journal); $note->text = ''; } if ('' !== $note->text) { $note->text = trim(sprintf("%s \n%s", $note->text, $journal->description)); } if ('' === $note->text) { $note->text = (string) $journal->description; } $note->save(); return true; } }