mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-19 19:01:58 +00:00
Migrate actions
This commit is contained in:
@@ -74,8 +74,8 @@ class AddTag implements ActionInterface
|
|||||||
DB::table('tag_transaction_journal')->insert(['tag_id' => $tag->id, 'transaction_journal_id' => $journal['transaction_journal_id']]);
|
DB::table('tag_transaction_journal')->insert(['tag_id' => $tag->id, 'transaction_journal_id' => $journal['transaction_journal_id']]);
|
||||||
Log::debug(sprintf('RuleAction AddTag. Added tag #%d ("%s") to journal %d.', $tag->id, $tag->tag, $journal['transaction_journal_id']));
|
Log::debug(sprintf('RuleAction AddTag. Added tag #%d ("%s") to journal %d.', $tag->id, $tag->tag, $journal['transaction_journal_id']));
|
||||||
$journal = TransactionJournal::find($journal['transaction_journal_id']);
|
$journal = TransactionJournal::find($journal['transaction_journal_id']);
|
||||||
|
|
||||||
// event for audit log entry
|
// event for audit log entry
|
||||||
//// changer, auditable, field, value before, value after
|
|
||||||
event(new TriggeredAuditLog($this->action->rule, $journal, 'add_tag', null, $tag->tag));
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'add_tag', null, $tag->tag));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@@ -23,7 +23,9 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class AppendDescription.
|
* Class AppendDescription.
|
||||||
@@ -50,6 +52,11 @@ class AppendDescription implements ActionInterface
|
|||||||
$description = sprintf('%s%s', $journal['description'], $this->action->action_value);
|
$description = sprintf('%s%s', $journal['description'], $this->action->action_value);
|
||||||
DB::table('transaction_journals')->where('id', $journal['transaction_journal_id'])->limit(1)->update(['description' => $description]);
|
DB::table('transaction_journals')->where('id', $journal['transaction_journal_id'])->limit(1)->update(['description' => $description]);
|
||||||
|
|
||||||
|
// event for audit log entry
|
||||||
|
/** @var TransactionJournal $journal */
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'update_description', null, $description));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -22,12 +22,26 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\Note;
|
use FireflyIII\Models\Note;
|
||||||
|
use FireflyIII\Models\RuleAction;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class AppendDescriptionToNotes implements ActionInterface
|
class AppendDescriptionToNotes implements ActionInterface
|
||||||
{
|
{
|
||||||
|
private RuleAction $action;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TriggerInterface constructor.
|
||||||
|
*
|
||||||
|
* @param RuleAction $action
|
||||||
|
*/
|
||||||
|
public function __construct(RuleAction $action)
|
||||||
|
{
|
||||||
|
$this->action = $action;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
@@ -45,12 +59,17 @@ class AppendDescriptionToNotes implements ActionInterface
|
|||||||
$note->noteable()->associate($journal);
|
$note->noteable()->associate($journal);
|
||||||
$note->text = '';
|
$note->text = '';
|
||||||
}
|
}
|
||||||
|
$before = $note->text;
|
||||||
if ('' !== $note->text) {
|
if ('' !== $note->text) {
|
||||||
$note->text = trim(sprintf("%s \n%s", $note->text, $journal->description));
|
$note->text = trim(sprintf("%s \n%s", $note->text, $journal->description));
|
||||||
}
|
}
|
||||||
if ('' === $note->text) {
|
if ('' === $note->text) {
|
||||||
$note->text = (string) $journal->description;
|
$note->text = (string) $journal->description;
|
||||||
}
|
}
|
||||||
|
$after = $note->text;
|
||||||
|
|
||||||
|
// event for audit log entry
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'update_notes', $before, $after));
|
||||||
|
|
||||||
$note->save();
|
$note->save();
|
||||||
return true;
|
return true;
|
||||||
|
@@ -22,6 +22,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\Note;
|
use FireflyIII\Models\Note;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
@@ -32,8 +33,7 @@ use Log;
|
|||||||
*/
|
*/
|
||||||
class AppendNotes implements ActionInterface
|
class AppendNotes implements ActionInterface
|
||||||
{
|
{
|
||||||
/** @var RuleAction The rule action */
|
private RuleAction $action;
|
||||||
private $action;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
@@ -62,10 +62,16 @@ class AppendNotes implements ActionInterface
|
|||||||
$dbNote->text = '';
|
$dbNote->text = '';
|
||||||
}
|
}
|
||||||
Log::debug(sprintf('RuleAction AppendNotes appended "%s" to "%s".', $this->action->action_value, $dbNote->text));
|
Log::debug(sprintf('RuleAction AppendNotes appended "%s" to "%s".', $this->action->action_value, $dbNote->text));
|
||||||
|
$before = $dbNote->text;
|
||||||
$text = sprintf('%s%s', $dbNote->text, $this->action->action_value);
|
$text = sprintf('%s%s', $dbNote->text, $this->action->action_value);
|
||||||
$dbNote->text = $text;
|
$dbNote->text = $text;
|
||||||
$dbNote->save();
|
$dbNote->save();
|
||||||
|
|
||||||
|
/** @var TransactionJournal $journal */
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'update_notes', $before, $text));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -22,10 +22,11 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\Note;
|
use FireflyIII\Models\Note;
|
||||||
|
use FireflyIII\Models\RuleAction;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\Support\Request\ConvertsDataTypes;
|
use FireflyIII\Support\Request\ConvertsDataTypes;
|
||||||
use FireflyIII\Support\Steam;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -34,6 +35,19 @@ use Illuminate\Support\Facades\Log;
|
|||||||
class AppendNotesToDescription implements ActionInterface
|
class AppendNotesToDescription implements ActionInterface
|
||||||
{
|
{
|
||||||
use ConvertsDataTypes;
|
use ConvertsDataTypes;
|
||||||
|
|
||||||
|
private RuleAction $action;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TriggerInterface constructor.
|
||||||
|
*
|
||||||
|
* @param RuleAction $action
|
||||||
|
*/
|
||||||
|
public function __construct(RuleAction $action)
|
||||||
|
{
|
||||||
|
$this->action = $action;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
@@ -55,9 +69,13 @@ class AppendNotesToDescription implements ActionInterface
|
|||||||
}
|
}
|
||||||
// only append if there is something to append
|
// only append if there is something to append
|
||||||
if ('' !== $note->text) {
|
if ('' !== $note->text) {
|
||||||
|
$before = $journal->description;
|
||||||
$journal->description = trim(sprintf("%s %s", $journal->description, (string) $this->clearString($note->text, false)));
|
$journal->description = trim(sprintf("%s %s", $journal->description, (string) $this->clearString($note->text, false)));
|
||||||
$journal->save();
|
$journal->save();
|
||||||
Log::debug(sprintf('Journal description is updated to "%s".', $journal->description));
|
Log::debug(sprintf('Journal description is updated to "%s".', $journal->description));
|
||||||
|
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'update_description', $before, $journal->description));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@@ -23,6 +23,9 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
|
use FireflyIII\Models\RuleAction;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use Log;
|
use Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -30,14 +33,37 @@ use Log;
|
|||||||
*/
|
*/
|
||||||
class ClearBudget implements ActionInterface
|
class ClearBudget implements ActionInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private RuleAction $action;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TriggerInterface constructor.
|
||||||
|
*
|
||||||
|
* @param RuleAction $action
|
||||||
|
*/
|
||||||
|
public function __construct(RuleAction $action)
|
||||||
|
{
|
||||||
|
$this->action = $action;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
/** @var TransactionJournal $journal */
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
$budget = $journal->budgets()->first();
|
||||||
|
if (null === $budget) {
|
||||||
|
Log::debug(sprintf('RuleAction ClearBudget, no budget in journal #%d.', $journal['transaction_journal_id']));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
DB::table('budget_transaction_journal')->where('transaction_journal_id', '=', $journal['transaction_journal_id'])->delete();
|
DB::table('budget_transaction_journal')->where('transaction_journal_id', '=', $journal['transaction_journal_id'])->delete();
|
||||||
|
|
||||||
Log::debug(sprintf('RuleAction ClearBudget removed all budgets from journal %d.', $journal['transaction_journal_id']));
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'remove_budget', $budget->name, null));
|
||||||
|
|
||||||
|
Log::debug(sprintf('RuleAction ClearBudget removed all budgets from journal #%d.', $journal['transaction_journal_id']));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -23,6 +23,9 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
|
use FireflyIII\Models\RuleAction;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use Log;
|
use Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -30,14 +33,36 @@ use Log;
|
|||||||
*/
|
*/
|
||||||
class ClearCategory implements ActionInterface
|
class ClearCategory implements ActionInterface
|
||||||
{
|
{
|
||||||
|
private RuleAction $action;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TriggerInterface constructor.
|
||||||
|
*
|
||||||
|
* @param RuleAction $action
|
||||||
|
*/
|
||||||
|
public function __construct(RuleAction $action)
|
||||||
|
{
|
||||||
|
$this->action = $action;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
/** @var TransactionJournal $journal */
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
$category = $journal->categories()->first();
|
||||||
|
if (null === $category) {
|
||||||
|
Log::debug(sprintf('RuleAction ClearCategory, no category in journal #%d.', $journal['transaction_journal_id']));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
DB::table('category_transaction_journal')->where('transaction_journal_id', '=', $journal['transaction_journal_id'])->delete();
|
DB::table('category_transaction_journal')->where('transaction_journal_id', '=', $journal['transaction_journal_id'])->delete();
|
||||||
|
|
||||||
Log::debug(sprintf('RuleAction ClearCategory removed all categories from journal %d.', $journal['transaction_journal_id']));
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'removed_category', $category->name, null));
|
||||||
|
|
||||||
|
Log::debug(sprintf('RuleAction ClearCategory removed all categories from journal #%d.', $journal['transaction_journal_id']));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -23,6 +23,8 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
|
use FireflyIII\Models\RuleAction;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use Log;
|
use Log;
|
||||||
|
|
||||||
@@ -31,16 +33,38 @@ use Log;
|
|||||||
*/
|
*/
|
||||||
class ClearNotes implements ActionInterface
|
class ClearNotes implements ActionInterface
|
||||||
{
|
{
|
||||||
|
private RuleAction $action;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TriggerInterface constructor.
|
||||||
|
*
|
||||||
|
* @param RuleAction $action
|
||||||
|
*/
|
||||||
|
public function __construct(RuleAction $action)
|
||||||
|
{
|
||||||
|
$this->action = $action;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
$notes = $journal->notes()->first();
|
||||||
|
if (null === $notes) {
|
||||||
|
Log::debug(sprintf('RuleAction ClearNotes, journal #%d has no notes.', $journal['transaction_journal_id']));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$before = $notes->text;
|
||||||
|
|
||||||
DB::table('notes')
|
DB::table('notes')
|
||||||
->where('noteable_id', $journal['transaction_journal_id'])
|
->where('noteable_id', $journal['transaction_journal_id'])
|
||||||
->where('noteable_type', TransactionJournal::class)
|
->where('noteable_type', TransactionJournal::class)
|
||||||
->delete();
|
->delete();
|
||||||
Log::debug('RuleAction ClearNotes removed all notes.');
|
Log::debug(sprintf('RuleAction ClearNotes removed all notes from journal #%d.', $journal['transaction_journal_id']));
|
||||||
|
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'remove_notes', $before, null));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -24,6 +24,7 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Factory\AccountFactory;
|
use FireflyIII\Factory\AccountFactory;
|
||||||
use FireflyIII\Models\AccountType;
|
use FireflyIII\Models\AccountType;
|
||||||
@@ -58,7 +59,7 @@ class ConvertToDeposit implements ActionInterface
|
|||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
$groupCount = TransactionJournal::where('transaction_group_id', $journal['transaction_group_id'])->count();
|
$groupCount = TransactionJournal::where('transaction_group_id', $journal['transaction_group_id'])->count();
|
||||||
if($groupCount > 1) {
|
if ($groupCount > 1) {
|
||||||
Log::error(sprintf('Group #%d has more than one transaction in it, cannot convert to deposit.', $journal['transaction_group_id']));
|
Log::error(sprintf('Group #%d has more than one transaction in it, cannot convert to deposit.', $journal['transaction_group_id']));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -73,10 +74,14 @@ class ConvertToDeposit implements ActionInterface
|
|||||||
|
|
||||||
if (TransactionType::WITHDRAWAL === $type) {
|
if (TransactionType::WITHDRAWAL === $type) {
|
||||||
Log::debug('Going to transform a withdrawal to a deposit.');
|
Log::debug('Going to transform a withdrawal to a deposit.');
|
||||||
|
$object = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $object, 'change_transaction_type', TransactionType::WITHDRAWAL, TransactionType::DEPOSIT));
|
||||||
|
|
||||||
return $this->convertWithdrawalArray($journal);
|
return $this->convertWithdrawalArray($journal);
|
||||||
}
|
}
|
||||||
if (TransactionType::TRANSFER === $type) {
|
if (TransactionType::TRANSFER === $type) {
|
||||||
|
$object = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $object, 'change_transaction_type', TransactionType::TRANSFER, TransactionType::DEPOSIT));
|
||||||
Log::debug('Going to transform a transfer to a deposit.');
|
Log::debug('Going to transform a transfer to a deposit.');
|
||||||
|
|
||||||
return $this->convertTransferArray($journal);
|
return $this->convertTransferArray($journal);
|
||||||
|
@@ -24,6 +24,7 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\AccountType;
|
use FireflyIII\Models\AccountType;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
@@ -57,7 +58,7 @@ class ConvertToTransfer implements ActionInterface
|
|||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
$groupCount = TransactionJournal::where('transaction_group_id', $journal['transaction_group_id'])->count();
|
$groupCount = TransactionJournal::where('transaction_group_id', $journal['transaction_group_id'])->count();
|
||||||
if($groupCount > 1) {
|
if ($groupCount > 1) {
|
||||||
Log::error(sprintf('Group #%d has more than one transaction in it, cannot convert to transfer.', $journal['transaction_group_id']));
|
Log::error(sprintf('Group #%d has more than one transaction in it, cannot convert to transfer.', $journal['transaction_group_id']));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -90,12 +91,17 @@ class ConvertToTransfer implements ActionInterface
|
|||||||
}
|
}
|
||||||
if (TransactionType::WITHDRAWAL === $type) {
|
if (TransactionType::WITHDRAWAL === $type) {
|
||||||
Log::debug('Going to transform a withdrawal to a transfer.');
|
Log::debug('Going to transform a withdrawal to a transfer.');
|
||||||
|
$object = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $object, 'change_transaction_type', TransactionType::WITHDRAWAL, TransactionType::TRANSFER));
|
||||||
|
|
||||||
return $this->convertWithdrawalArray($journal, $asset);
|
return $this->convertWithdrawalArray($journal, $asset);
|
||||||
}
|
}
|
||||||
if (TransactionType::DEPOSIT === $type) {
|
if (TransactionType::DEPOSIT === $type) {
|
||||||
Log::debug('Going to transform a deposit to a transfer.');
|
Log::debug('Going to transform a deposit to a transfer.');
|
||||||
|
|
||||||
|
$object = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $object, 'change_transaction_type', TransactionType::DEPOSIT, TransactionType::TRANSFER));
|
||||||
|
|
||||||
return $this->convertDepositArray($journal, $asset);
|
return $this->convertDepositArray($journal, $asset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -24,6 +24,7 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Factory\AccountFactory;
|
use FireflyIII\Factory\AccountFactory;
|
||||||
use FireflyIII\Models\AccountType;
|
use FireflyIII\Models\AccountType;
|
||||||
@@ -57,7 +58,7 @@ class ConvertToWithdrawal implements ActionInterface
|
|||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
$groupCount = TransactionJournal::where('transaction_group_id', $journal['transaction_group_id'])->count();
|
$groupCount = TransactionJournal::where('transaction_group_id', $journal['transaction_group_id'])->count();
|
||||||
if($groupCount > 1) {
|
if ($groupCount > 1) {
|
||||||
Log::error(sprintf('Group #%d has more than one transaction in it, cannot convert to withdrawal.', $journal['transaction_group_id']));
|
Log::error(sprintf('Group #%d has more than one transaction in it, cannot convert to withdrawal.', $journal['transaction_group_id']));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -71,11 +72,15 @@ class ConvertToWithdrawal implements ActionInterface
|
|||||||
|
|
||||||
if (TransactionType::DEPOSIT === $type) {
|
if (TransactionType::DEPOSIT === $type) {
|
||||||
Log::debug('Going to transform a deposit to a withdrawal.');
|
Log::debug('Going to transform a deposit to a withdrawal.');
|
||||||
|
$object = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $object, 'change_transaction_type', TransactionType::DEPOSIT, TransactionType::WITHDRAWAL));
|
||||||
|
|
||||||
return $this->convertDepositArray($journal);
|
return $this->convertDepositArray($journal);
|
||||||
}
|
}
|
||||||
if (TransactionType::TRANSFER === $type) {
|
if (TransactionType::TRANSFER === $type) {
|
||||||
Log::debug('Going to transform a transfer to a withdrawal.');
|
Log::debug('Going to transform a transfer to a withdrawal.');
|
||||||
|
$object = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $object, 'change_transaction_type', TransactionType::TRANSFER, TransactionType::WITHDRAWAL));
|
||||||
|
|
||||||
return $this->convertTransferArray($journal);
|
return $this->convertTransferArray($journal);
|
||||||
}
|
}
|
||||||
|
@@ -22,6 +22,8 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
|
use FireflyIII\Models\RuleAction;
|
||||||
use FireflyIII\Models\TransactionGroup;
|
use FireflyIII\Models\TransactionGroup;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\Services\Internal\Destroy\JournalDestroyService;
|
use FireflyIII\Services\Internal\Destroy\JournalDestroyService;
|
||||||
@@ -33,6 +35,18 @@ use Log;
|
|||||||
*/
|
*/
|
||||||
class DeleteTransaction implements ActionInterface
|
class DeleteTransaction implements ActionInterface
|
||||||
{
|
{
|
||||||
|
private RuleAction $action;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TriggerInterface constructor.
|
||||||
|
*
|
||||||
|
* @param RuleAction $action
|
||||||
|
*/
|
||||||
|
public function __construct(RuleAction $action)
|
||||||
|
{
|
||||||
|
$this->action = $action;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
@@ -52,6 +66,8 @@ class DeleteTransaction implements ActionInterface
|
|||||||
$service = app(TransactionGroupDestroyService::class);
|
$service = app(TransactionGroupDestroyService::class);
|
||||||
$service->destroy($group);
|
$service->destroy($group);
|
||||||
|
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $group, 'delete_group', null, null));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
Log::debug(
|
Log::debug(
|
||||||
@@ -64,6 +80,7 @@ class DeleteTransaction implements ActionInterface
|
|||||||
/** @var JournalDestroyService $service */
|
/** @var JournalDestroyService $service */
|
||||||
$service = app(JournalDestroyService::class);
|
$service = app(JournalDestroyService::class);
|
||||||
$service->destroy($journal);
|
$service->destroy($journal);
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'delete_journal', null, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@@ -23,7 +23,9 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\Models\TransactionType;
|
use FireflyIII\Models\TransactionType;
|
||||||
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
|
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
@@ -34,8 +36,7 @@ use Log;
|
|||||||
*/
|
*/
|
||||||
class LinkToBill implements ActionInterface
|
class LinkToBill implements ActionInterface
|
||||||
{
|
{
|
||||||
/** @var RuleAction The rule action */
|
private RuleAction $action;
|
||||||
private $action;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
@@ -69,6 +70,9 @@ class LinkToBill implements ActionInterface
|
|||||||
sprintf('RuleAction LinkToBill set the bill of journal #%d to bill #%d ("%s").', $journal['transaction_journal_id'], $bill->id, $bill->name)
|
sprintf('RuleAction LinkToBill set the bill of journal #%d to bill #%d ("%s").', $journal['transaction_journal_id'], $bill->id, $bill->name)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'change_bill', null, $bill->id));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -22,7 +22,9 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\Note;
|
use FireflyIII\Models\Note;
|
||||||
|
use FireflyIII\Models\RuleAction;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
@@ -31,6 +33,20 @@ use Illuminate\Support\Facades\Log;
|
|||||||
*/
|
*/
|
||||||
class MoveDescriptionToNotes implements ActionInterface
|
class MoveDescriptionToNotes implements ActionInterface
|
||||||
{
|
{
|
||||||
|
private RuleAction $action;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TriggerInterface constructor.
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
|
* @param RuleAction $action
|
||||||
|
*/
|
||||||
|
public function __construct(RuleAction $action)
|
||||||
|
{
|
||||||
|
$this->action = $action;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
@@ -48,14 +64,20 @@ class MoveDescriptionToNotes implements ActionInterface
|
|||||||
$note->noteable()->associate($journal);
|
$note->noteable()->associate($journal);
|
||||||
$note->text = '';
|
$note->text = '';
|
||||||
}
|
}
|
||||||
|
$before = $note->text;
|
||||||
|
$beforeDescription = $journal->description;
|
||||||
if ('' !== $note->text) {
|
if ('' !== $note->text) {
|
||||||
$note->text = trim(sprintf("%s \n%s", $note->text, $journal->description));
|
$note->text = trim(sprintf("%s \n%s", $note->text, $journal->description));
|
||||||
$journal->description = '(no description)';
|
$journal->description = '(no description)';
|
||||||
}
|
}
|
||||||
if ('' === $note->text) {
|
if ('' === $note->text) {
|
||||||
$note->text = (string) $journal->description;
|
$note->text = (string) $journal->description;
|
||||||
$journal->description = '(no description)';
|
$journal->description = '(no description)';
|
||||||
}
|
}
|
||||||
|
$after = $note->text;
|
||||||
|
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'update_description', $beforeDescription, $journal->description));
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'update_notes', $before, $after));
|
||||||
|
|
||||||
$note->save();
|
$note->save();
|
||||||
$journal->save();
|
$journal->save();
|
||||||
|
@@ -22,6 +22,8 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
|
use FireflyIII\Models\RuleAction;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\Support\Request\ConvertsDataTypes;
|
use FireflyIII\Support\Request\ConvertsDataTypes;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
@@ -30,6 +32,20 @@ class MoveNotesToDescription implements ActionInterface
|
|||||||
{
|
{
|
||||||
use ConvertsDataTypes;
|
use ConvertsDataTypes;
|
||||||
|
|
||||||
|
private RuleAction $action;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TriggerInterface constructor.
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
|
* @param RuleAction $action
|
||||||
|
*/
|
||||||
|
public function __construct(RuleAction $action)
|
||||||
|
{
|
||||||
|
$this->action = $action;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
@@ -51,10 +67,15 @@ class MoveNotesToDescription implements ActionInterface
|
|||||||
$note->delete();
|
$note->delete();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
$before = $journal->description;
|
||||||
|
$beforeNote = $note->text;
|
||||||
$journal->description = (string) $this->clearString($note->text, false);
|
$journal->description = (string) $this->clearString($note->text, false);
|
||||||
$journal->save();
|
$journal->save();
|
||||||
$note->delete();
|
$note->delete();
|
||||||
|
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'update_description', $before, $journal->description));
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'remove_notes', $beforeNote, null));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,15 +23,16 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class PrependDescription.
|
* Class PrependDescription.
|
||||||
*/
|
*/
|
||||||
class PrependDescription implements ActionInterface
|
class PrependDescription implements ActionInterface
|
||||||
{
|
{
|
||||||
/** @var RuleAction The rule action */
|
private RuleAction $action;
|
||||||
private $action;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
@@ -48,8 +49,16 @@ class PrependDescription implements ActionInterface
|
|||||||
*/
|
*/
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
$description = sprintf('%s%s', $this->action->action_value, $journal['description']);
|
$before = $journal['description'];
|
||||||
DB::table('transaction_journals')->where('id', $journal['transaction_journal_id'])->limit(1)->update(['description' => $description]);
|
$after = sprintf('%s%s', $this->action->action_value, $journal['description']);
|
||||||
|
DB::table('transaction_journals')->where('id', $journal['transaction_journal_id'])->limit(1)->update(['description' => $after]);
|
||||||
|
|
||||||
|
// journal
|
||||||
|
/** @var TransactionJournal $journal */
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
|
||||||
|
// audit log
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'update_description', $before, $after));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -22,6 +22,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\Note;
|
use FireflyIII\Models\Note;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
@@ -32,8 +33,7 @@ use Log;
|
|||||||
*/
|
*/
|
||||||
class PrependNotes implements ActionInterface
|
class PrependNotes implements ActionInterface
|
||||||
{
|
{
|
||||||
/** @var RuleAction The rule action */
|
private RuleAction $action;
|
||||||
private $action;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
@@ -61,11 +61,19 @@ class PrependNotes implements ActionInterface
|
|||||||
$dbNote->noteable_type = TransactionJournal::class;
|
$dbNote->noteable_type = TransactionJournal::class;
|
||||||
$dbNote->text = '';
|
$dbNote->text = '';
|
||||||
}
|
}
|
||||||
|
$before = $dbNote->text;
|
||||||
Log::debug(sprintf('RuleAction PrependNotes prepended "%s" to "%s".', $this->action->action_value, $dbNote->text));
|
Log::debug(sprintf('RuleAction PrependNotes prepended "%s" to "%s".', $this->action->action_value, $dbNote->text));
|
||||||
$text = sprintf('%s%s', $this->action->action_value, $dbNote->text);
|
$text = sprintf('%s%s', $this->action->action_value, $dbNote->text);
|
||||||
$dbNote->text = $text;
|
$dbNote->text = $text;
|
||||||
$dbNote->save();
|
$dbNote->save();
|
||||||
|
|
||||||
|
// journal
|
||||||
|
/** @var TransactionJournal $journal */
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
|
||||||
|
// audit log
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'update_notes', $before, $text));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,6 +23,9 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
|
use FireflyIII\Models\RuleAction;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use Log;
|
use Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -30,6 +33,18 @@ use Log;
|
|||||||
*/
|
*/
|
||||||
class RemoveAllTags implements ActionInterface
|
class RemoveAllTags implements ActionInterface
|
||||||
{
|
{
|
||||||
|
private RuleAction $action;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TriggerInterface constructor.
|
||||||
|
*
|
||||||
|
* @param RuleAction $action
|
||||||
|
*/
|
||||||
|
public function __construct(RuleAction $action)
|
||||||
|
{
|
||||||
|
$this->action = $action;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
@@ -38,6 +53,12 @@ class RemoveAllTags implements ActionInterface
|
|||||||
Log::debug(sprintf('RuleAction ClearCategory removed all tags from journal %d.', $journal['transaction_journal_id']));
|
Log::debug(sprintf('RuleAction ClearCategory removed all tags from journal %d.', $journal['transaction_journal_id']));
|
||||||
DB::table('tag_transaction_journal')->where('transaction_journal_id', $journal['transaction_journal_id'])->delete();
|
DB::table('tag_transaction_journal')->where('transaction_journal_id', $journal['transaction_journal_id'])->delete();
|
||||||
|
|
||||||
|
/** @var TransactionJournal $journal */
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
|
||||||
|
// audit log
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'remove_all_tags', null, null));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -23,7 +23,9 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Log;
|
use Log;
|
||||||
|
|
||||||
@@ -54,18 +56,22 @@ class RemoveTag implements ActionInterface
|
|||||||
$user = User::find($journal['user_id']);
|
$user = User::find($journal['user_id']);
|
||||||
$tag = $user->tags()->where('tag', $name)->first();
|
$tag = $user->tags()->where('tag', $name)->first();
|
||||||
|
|
||||||
if (null !== $tag) {
|
if (null === $tag) {
|
||||||
Log::debug(sprintf('RuleAction RemoveTag removed tag #%d ("%s") from journal #%d.', $tag->id, $tag->tag, $journal['transaction_journal_id']));
|
Log::debug(
|
||||||
DB::table('tag_transaction_journal')
|
sprintf('RuleAction RemoveTag tried to remove tag "%s" from journal #%d but no such tag exists.', $name, $journal['transaction_journal_id'])
|
||||||
->where('transaction_journal_id', $journal['transaction_journal_id'])
|
);
|
||||||
->where('tag_id', $tag->id)
|
return false;
|
||||||
->delete();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
Log::debug(
|
|
||||||
sprintf('RuleAction RemoveTag tried to remove tag "%s" from journal #%d but no such tag exists.', $name, $journal['transaction_journal_id'])
|
Log::debug(sprintf('RuleAction RemoveTag removed tag #%d ("%s") from journal #%d.', $tag->id, $tag->tag, $journal['transaction_journal_id']));
|
||||||
);
|
DB::table('tag_transaction_journal')
|
||||||
|
->where('transaction_journal_id', $journal['transaction_journal_id'])
|
||||||
|
->where('tag_id', $tag->id)
|
||||||
|
->delete();
|
||||||
|
|
||||||
|
/** @var TransactionJournal $journal */
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'remove_tag', $tag->tag, null));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -23,7 +23,9 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\Models\TransactionType;
|
use FireflyIII\Models\TransactionType;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Log;
|
use Log;
|
||||||
@@ -75,7 +77,7 @@ class SetBudget implements ActionInterface
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log::debug(
|
Log::debug(
|
||||||
@@ -85,6 +87,10 @@ class SetBudget implements ActionInterface
|
|||||||
DB::table('budget_transaction_journal')->where('transaction_journal_id', '=', $journal['transaction_journal_id'])->delete();
|
DB::table('budget_transaction_journal')->where('transaction_journal_id', '=', $journal['transaction_journal_id'])->delete();
|
||||||
DB::table('budget_transaction_journal')->insert(['transaction_journal_id' => $journal['transaction_journal_id'], 'budget_id' => $budget->id]);
|
DB::table('budget_transaction_journal')->insert(['transaction_journal_id' => $journal['transaction_journal_id'], 'budget_id' => $budget->id]);
|
||||||
|
|
||||||
|
/** @var TransactionJournal $journal */
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'set_budget', null, $budget->name));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,8 +23,10 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Factory\CategoryFactory;
|
use FireflyIII\Factory\CategoryFactory;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Log;
|
use Log;
|
||||||
|
|
||||||
@@ -83,6 +85,10 @@ class SetCategory implements ActionInterface
|
|||||||
DB::table('category_transaction_journal')->where('transaction_journal_id', '=', $journal['transaction_journal_id'])->delete();
|
DB::table('category_transaction_journal')->where('transaction_journal_id', '=', $journal['transaction_journal_id'])->delete();
|
||||||
DB::table('category_transaction_journal')->insert(['transaction_journal_id' => $journal['transaction_journal_id'], 'category_id' => $category->id]);
|
DB::table('category_transaction_journal')->insert(['transaction_journal_id' => $journal['transaction_journal_id'], 'category_id' => $category->id]);
|
||||||
|
|
||||||
|
/** @var TransactionJournal $journal */
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'set_category', null, $category->name));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,7 +23,9 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use Log;
|
use Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -48,6 +50,10 @@ class SetDescription implements ActionInterface
|
|||||||
*/
|
*/
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
/** @var TransactionJournal $journal */
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
$before = $journal->description;
|
||||||
|
|
||||||
DB::table('transaction_journals')
|
DB::table('transaction_journals')
|
||||||
->where('id', '=', $journal['transaction_journal_id'])
|
->where('id', '=', $journal['transaction_journal_id'])
|
||||||
->update(['description' => $this->action->action_value]);
|
->update(['description' => $this->action->action_value]);
|
||||||
@@ -61,6 +67,8 @@ class SetDescription implements ActionInterface
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'update_description', $before, $this->action->action_value));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,6 +23,7 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
use FireflyIII\Models\Transaction;
|
use FireflyIII\Models\Transaction;
|
||||||
@@ -89,7 +90,7 @@ class SetDestinationAccount implements ActionInterface
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// account must not be deleted (in the mean time):
|
// account must not be deleted (in the meantime):
|
||||||
if (null === $source->account) {
|
if (null === $source->account) {
|
||||||
Log::error('Could not find source transaction account.');
|
Log::error('Could not find source transaction account.');
|
||||||
|
|
||||||
@@ -114,6 +115,8 @@ class SetDestinationAccount implements ActionInterface
|
|||||||
|
|
||||||
Log::debug(sprintf('New destination account is #%d ("%s").', $newAccount->id, $newAccount->name));
|
Log::debug(sprintf('New destination account is #%d ("%s").', $newAccount->id, $newAccount->name));
|
||||||
|
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $object, 'set_destination', null, $newAccount->name));
|
||||||
|
|
||||||
// update destination transaction with new destination account:
|
// update destination transaction with new destination account:
|
||||||
DB::table('transactions')
|
DB::table('transactions')
|
||||||
->where('transaction_journal_id', '=', $object->id)
|
->where('transaction_journal_id', '=', $object->id)
|
||||||
|
@@ -22,6 +22,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\Note;
|
use FireflyIII\Models\Note;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
@@ -68,6 +69,11 @@ class SetNotes implements ActionInterface
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/** @var TransactionJournal $journal */
|
||||||
|
$journal = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
|
||||||
|
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journal, 'update_notes', $oldNotes, $this->action->action_value));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,6 +23,7 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
use FireflyIII\Models\Transaction;
|
use FireflyIII\Models\Transaction;
|
||||||
@@ -86,7 +87,7 @@ class SetSourceAccount implements ActionInterface
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// account must not be deleted (in the mean time):
|
// account must not be deleted (in the meantime):
|
||||||
if (null === $destination->account) {
|
if (null === $destination->account) {
|
||||||
Log::error('Could not find destination transaction account.');
|
Log::error('Could not find destination transaction account.');
|
||||||
|
|
||||||
@@ -117,6 +118,8 @@ class SetSourceAccount implements ActionInterface
|
|||||||
->where('amount', '<', 0)
|
->where('amount', '<', 0)
|
||||||
->update(['account_id' => $newAccount->id]);
|
->update(['account_id' => $newAccount->id]);
|
||||||
|
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $object, 'set_source', null, $newAccount->name));
|
||||||
|
|
||||||
Log::debug(sprintf('Updated journal #%d (group #%d) and gave it new source account ID.', $object->id, $object->transaction_group_id));
|
Log::debug(sprintf('Updated journal #%d (group #%d) and gave it new source account ID.', $object->id, $object->transaction_group_id));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@@ -24,6 +24,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\TransactionRules\Actions;
|
namespace FireflyIII\TransactionRules\Actions;
|
||||||
|
|
||||||
|
use FireflyIII\Events\TriggeredAuditLog;
|
||||||
use FireflyIII\Models\PiggyBank;
|
use FireflyIII\Models\PiggyBank;
|
||||||
use FireflyIII\Models\RuleAction;
|
use FireflyIII\Models\RuleAction;
|
||||||
use FireflyIII\Models\Transaction;
|
use FireflyIII\Models\Transaction;
|
||||||
@@ -90,12 +91,16 @@ class UpdatePiggybank implements ActionInterface
|
|||||||
Log::debug('Piggy bank account is linked to source, so remove amount.');
|
Log::debug('Piggy bank account is linked to source, so remove amount.');
|
||||||
$this->removeAmount($journal, $piggyBank, $destination->amount);
|
$this->removeAmount($journal, $piggyBank, $destination->amount);
|
||||||
|
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journalObj, 'remove_from_piggy', null, ['amount' => $destination->amount, 'piggy' => $piggyBank->name]));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if ((int) $destination->account_id === (int) $piggyBank->account_id) {
|
if ((int) $destination->account_id === (int) $piggyBank->account_id) {
|
||||||
Log::debug('Piggy bank account is linked to source, so add amount.');
|
Log::debug('Piggy bank account is linked to source, so add amount.');
|
||||||
$this->addAmount($journal, $piggyBank, $destination->amount);
|
$this->addAmount($journal, $piggyBank, $destination->amount);
|
||||||
|
|
||||||
|
event(new TriggeredAuditLog($this->action->rule, $journalObj, 'add_to_piggy', null, ['amount' => $destination->amount, 'piggy' => $piggyBank->name]));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
Log::info(
|
Log::info(
|
||||||
|
Reference in New Issue
Block a user