Add imports for facades

This commit is contained in:
James Cole
2025-02-23 12:47:04 +01:00
parent 0086a0ddc8
commit f7ad9c56c8
43 changed files with 132 additions and 94 deletions

View File

@@ -28,6 +28,7 @@ use FireflyIII\Console\Commands\ShowsFriendlyMessages;
use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\Repositories\User\UserRepositoryInterface;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
class CreatesFirstUser extends Command class CreatesFirstUser extends Command
{ {
@@ -61,11 +62,11 @@ class CreatesFirstUser extends Command
'email' => $this->argument('email'), 'email' => $this->argument('email'),
'role' => 'owner', 'role' => 'owner',
]; ];
$password = \Str::random(24); $password = Str::random(24);
$user = $this->repository->store($data); $user = $this->repository->store($data);
$user->password = Hash::make($password); $user->password = Hash::make($password);
$user->save(); $user->save();
$user->setRememberToken(\Str::random(60)); $user->setRememberToken(Str::random(60));
$this->friendlyInfo(sprintf('Created new admin user (ID #%d) with email address "%s" and password "%s".', $user->id, $user->email, $password)); $this->friendlyInfo(sprintf('Created new admin user (ID #%d) with email address "%s" and password "%s".', $user->id, $user->email, $password));
$this->friendlyWarning('Change this password.'); $this->friendlyWarning('Change this password.');

View File

@@ -28,6 +28,8 @@ use FireflyIII\Console\Commands\ShowsFriendlyMessages;
use FireflyIII\Models\Attachment; use FireflyIII\Models\Attachment;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Contracts\Encryption\DecryptException; use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\Storage;
class ScansAttachments extends Command class ScansAttachments extends Command
{ {
@@ -43,7 +45,7 @@ class ScansAttachments extends Command
public function handle(): int public function handle(): int
{ {
$attachments = Attachment::get(); $attachments = Attachment::get();
$disk = \Storage::disk('upload'); $disk = Storage::disk('upload');
/** @var Attachment $attachment */ /** @var Attachment $attachment */
foreach ($attachments as $attachment) { foreach ($attachments as $attachment) {
@@ -56,7 +58,7 @@ class ScansAttachments extends Command
} }
try { try {
$decryptedContent = \Crypt::decrypt($encryptedContent); // verified $decryptedContent = Crypt::decrypt($encryptedContent); // verified
} catch (DecryptException $e) { } catch (DecryptException $e) {
app('log')->error(sprintf('Could not decrypt data of attachment #%d: %s', $attachment->id, $e->getMessage())); app('log')->error(sprintf('Could not decrypt data of attachment #%d: %s', $attachment->id, $e->getMessage()));
$decryptedContent = $encryptedContent; $decryptedContent = $encryptedContent;

View File

@@ -27,6 +27,7 @@ namespace FireflyIII\Console\Commands\System;
use FireflyIII\Console\Commands\ShowsFriendlyMessages; use FireflyIII\Console\Commands\ShowsFriendlyMessages;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\Storage;
use League\Flysystem\FilesystemException; use League\Flysystem\FilesystemException;
class VerifySecurityAlerts extends Command class VerifySecurityAlerts extends Command
@@ -48,7 +49,7 @@ class VerifySecurityAlerts extends Command
// check for security advisories. // check for security advisories.
$version = config('firefly.version'); $version = config('firefly.version');
$disk = \Storage::disk('resources'); $disk = Storage::disk('resources');
// Next line is ignored because it's a Laravel Facade. // Next line is ignored because it's a Laravel Facade.
if (!$disk->has('alerts.json')) { // @phpstan-ignore-line if (!$disk->has('alerts.json')) { // @phpstan-ignore-line
app('log')->debug('No alerts.json file present.'); app('log')->debug('No alerts.json file present.');

View File

@@ -29,6 +29,7 @@ use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Preference; use FireflyIII\Models\Preference;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Contracts\Encryption\DecryptException; use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
class RemovesDatabaseDecryption extends Command class RemovesDatabaseDecryption extends Command
@@ -152,7 +153,7 @@ class RemovesDatabaseDecryption extends Command
private function tryDecrypt($value) private function tryDecrypt($value)
{ {
try { try {
$value = \Crypt::decrypt($value); $value = Crypt::decrypt($value);
} catch (DecryptException $e) { } catch (DecryptException $e) {
if ('The MAC is invalid.' === $e->getMessage()) { if ('The MAC is invalid.' === $e->getMessage()) {
throw new FireflyException($e->getMessage(), 0, $e); throw new FireflyException($e->getMessage(), 0, $e);

View File

@@ -31,6 +31,7 @@ use Illuminate\Contracts\Encryption\EncryptException;
use Illuminate\Contracts\Filesystem\Filesystem; use Illuminate\Contracts\Filesystem\Filesystem;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Illuminate\Support\MessageBag; use Illuminate\Support\MessageBag;
@@ -70,7 +71,7 @@ class AttachmentHelper implements AttachmentHelperInterface
$encryptedData = (string) $this->uploadDisk->get(sprintf('at-%d.data', $attachment->id)); $encryptedData = (string) $this->uploadDisk->get(sprintf('at-%d.data', $attachment->id));
try { try {
$unencryptedData = \Crypt::decrypt($encryptedData); // verified $unencryptedData = Crypt::decrypt($encryptedData); // verified
} catch (DecryptException $e) { } catch (DecryptException $e) {
Log::error(sprintf('Could not decrypt data of attachment #%d: %s', $attachment->id, $e->getMessage())); Log::error(sprintf('Could not decrypt data of attachment #%d: %s', $attachment->id, $e->getMessage()));
$unencryptedData = $encryptedData; $unencryptedData = $encryptedData;

View File

@@ -32,6 +32,7 @@ use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface;
use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait;
use Illuminate\Contracts\Encryption\DecryptException; use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use League\Flysystem\UnableToDeleteFile; use League\Flysystem\UnableToDeleteFile;
@@ -73,7 +74,7 @@ class AttachmentRepository implements AttachmentRepositoryInterface, UserGroupIn
$encryptedContent = (string) $disk->get($file); $encryptedContent = (string) $disk->get($file);
try { try {
$unencryptedContent = \Crypt::decrypt($encryptedContent); // verified $unencryptedContent = Crypt::decrypt($encryptedContent); // verified
} catch (DecryptException $e) { } catch (DecryptException $e) {
app('log')->debug(sprintf('Could not decrypt attachment #%d but this is fine: %s', $attachment->id, $e->getMessage())); app('log')->debug(sprintf('Could not decrypt attachment #%d but this is fine: %s', $attachment->id, $e->getMessage()));
$unencryptedContent = $encryptedContent; $unencryptedContent = $encryptedContent;

View File

@@ -45,6 +45,7 @@ use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
/** /**
* Class BillRepository. * Class BillRepository.
@@ -161,9 +162,7 @@ class BillRepository implements BillRepositoryInterface, UserGroupInterface
public function getAttachments(Bill $bill): Collection public function getAttachments(Bill $bill): Collection
{ {
$set = $bill->attachments()->get(); $set = $bill->attachments()->get();
$disk = Storage::disk('upload');
/** @var \Storage $disk */
$disk = \Storage::disk('upload');
return $set->each( return $set->each(
static function (Attachment $attachment) use ($disk) { // @phpstan-ignore-line static function (Attachment $attachment) use ($disk) { // @phpstan-ignore-line

View File

@@ -45,7 +45,9 @@ use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface;
use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
/** /**
* Class BudgetRepository. * Class BudgetRepository.
@@ -457,8 +459,8 @@ class BudgetRepository implements BudgetRepositoryInterface, UserGroupInterface
/** @var Budget $budget */ /** @var Budget $budget */
foreach ($budgets as $budget) { foreach ($budgets as $budget) {
\DB::table('budget_transaction')->where('budget_id', $budget->id)->delete(); DB::table('budget_transaction')->where('budget_id', $budget->id)->delete();
\DB::table('budget_transaction_journal')->where('budget_id', $budget->id)->delete(); DB::table('budget_transaction_journal')->where('budget_id', $budget->id)->delete();
RecurrenceTransactionMeta::where('name', 'budget_id')->where('value', (string) $budget->id)->delete(); RecurrenceTransactionMeta::where('name', 'budget_id')->where('value', (string) $budget->id)->delete();
RuleAction::where('action_type', 'set_budget')->where('action_value', (string) $budget->id)->delete(); RuleAction::where('action_type', 'set_budget')->where('action_value', (string) $budget->id)->delete();
$budget->delete(); $budget->delete();
@@ -530,8 +532,7 @@ class BudgetRepository implements BudgetRepositoryInterface, UserGroupInterface
{ {
$set = $budget->attachments()->get(); $set = $budget->attachments()->get();
/** @var \Storage $disk */ $disk = Storage::disk('upload');
$disk = \Storage::disk('upload');
return $set->each( return $set->each(
static function (Attachment $attachment) use ($disk) { // @phpstan-ignore-line static function (Attachment $attachment) use ($disk) { // @phpstan-ignore-line

View File

@@ -36,7 +36,9 @@ use FireflyIII\Services\Internal\Update\CategoryUpdateService;
use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface;
use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
/** /**
* Class CategoryRepository. * Class CategoryRepository.
@@ -83,8 +85,8 @@ class CategoryRepository implements CategoryRepositoryInterface, UserGroupInterf
/** @var Category $category */ /** @var Category $category */
foreach ($categories as $category) { foreach ($categories as $category) {
\DB::table('category_transaction')->where('category_id', $category->id)->delete(); DB::table('category_transaction')->where('category_id', $category->id)->delete();
\DB::table('category_transaction_journal')->where('category_id', $category->id)->delete(); DB::table('category_transaction_journal')->where('category_id', $category->id)->delete();
RecurrenceTransactionMeta::where('name', 'category_id')->where('value', $category->id)->delete(); RecurrenceTransactionMeta::where('name', 'category_id')->where('value', $category->id)->delete();
RuleAction::where('action_type', 'set_category')->where('action_value', $category->name)->delete(); RuleAction::where('action_type', 'set_category')->where('action_value', $category->name)->delete();
$category->delete(); $category->delete();
@@ -237,8 +239,7 @@ class CategoryRepository implements CategoryRepositoryInterface, UserGroupInterf
{ {
$set = $category->attachments()->get(); $set = $category->attachments()->get();
/** @var \Storage $disk */ $disk = Storage::disk('upload');
$disk = \Storage::disk('upload');
return $set->each( return $set->each(
static function (Attachment $attachment) use ($disk) { // @phpstan-ignore-line static function (Attachment $attachment) use ($disk) { // @phpstan-ignore-line

View File

@@ -32,6 +32,7 @@ use FireflyIII\Models\TransactionJournal;
use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface;
use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Storage;
/** /**
* Class JournalAPIRepository * Class JournalAPIRepository
@@ -61,8 +62,7 @@ class JournalAPIRepository implements JournalAPIRepositoryInterface, UserGroupIn
{ {
$set = $journal->attachments; $set = $journal->attachments;
/** @var \Storage $disk */ $disk = Storage::disk('upload');
$disk = \Storage::disk('upload');
return $set->each( return $set->each(
static function (Attachment $attachment) use ($disk) { static function (Attachment $attachment) use ($disk) {

View File

@@ -31,6 +31,7 @@ use FireflyIII\Support\CacheProperties;
use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface;
use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
/** /**
* Class JournalCLIRepository * Class JournalCLIRepository
@@ -180,7 +181,7 @@ class JournalCLIRepository implements JournalCLIRepositoryInterface, UserGroupIn
$query = TransactionJournal::leftJoin('transactions', 'transaction_journals.id', '=', 'transactions.transaction_journal_id') $query = TransactionJournal::leftJoin('transactions', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
->groupBy('transaction_journals.id') ->groupBy('transaction_journals.id')
; ;
$result = $query->get(['transaction_journals.id as id', \DB::raw('count(transactions.id) as transaction_count')]); // @phpstan-ignore-line $result = $query->get(['transaction_journals.id as id', DB::raw('count(transactions.id) as transaction_count')]); // @phpstan-ignore-line
$journalIds = []; $journalIds = [];
/** @var \stdClass $row */ /** @var \stdClass $row */

View File

@@ -29,6 +29,7 @@ use FireflyIII\Models\PiggyBank;
use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface;
use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
/** /**
* Class ObjectGroupRepository * Class ObjectGroupRepository
@@ -64,7 +65,7 @@ class ObjectGroupRepository implements ObjectGroupRepositoryInterface, UserGroup
/** @var ObjectGroup $group */ /** @var ObjectGroup $group */
foreach ($all as $group) { foreach ($all as $group) {
$count = \DB::table('object_groupables')->where('object_groupables.object_group_id', $group->id)->count(); $count = DB::table('object_groupables')->where('object_groupables.object_group_id', $group->id)->count();
if (0 === $count) { if (0 === $count) {
$group->delete(); $group->delete();
} }

View File

@@ -40,6 +40,7 @@ use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface;
use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
/** /**
* Class PiggyBankRepository. * Class PiggyBankRepository.
@@ -111,8 +112,7 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface, UserGroupInte
{ {
$set = $piggyBank->attachments()->get(); $set = $piggyBank->attachments()->get();
/** @var \Storage $disk */ $disk = Storage::disk('upload');
$disk = \Storage::disk('upload');
return $set->each( return $set->each(
static function (Attachment $attachment) use ($disk) { // @phpstan-ignore-line static function (Attachment $attachment) use ($disk) { // @phpstan-ignore-line

View File

@@ -34,7 +34,9 @@ use FireflyIII\Models\Tag;
use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface;
use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
/** /**
* Class TagRepository. * Class TagRepository.
@@ -53,7 +55,7 @@ class TagRepository implements TagRepositoryInterface, UserGroupInterface
*/ */
public function destroy(Tag $tag): bool public function destroy(Tag $tag): bool
{ {
\DB::table('tag_transaction_journal')->where('tag_id', $tag->id)->delete(); DB::table('tag_transaction_journal')->where('tag_id', $tag->id)->delete();
$tag->transactionJournals()->sync([]); $tag->transactionJournals()->sync([]);
$tag->delete(); $tag->delete();
@@ -70,7 +72,7 @@ class TagRepository implements TagRepositoryInterface, UserGroupInterface
/** @var Tag $tag */ /** @var Tag $tag */
foreach ($tags as $tag) { foreach ($tags as $tag) {
\DB::table('tag_transaction_journal')->where('tag_id', $tag->id)->delete(); DB::table('tag_transaction_journal')->where('tag_id', $tag->id)->delete();
$tag->delete(); $tag->delete();
} }
} }
@@ -112,9 +114,7 @@ class TagRepository implements TagRepositoryInterface, UserGroupInterface
public function getAttachments(Tag $tag): Collection public function getAttachments(Tag $tag): Collection
{ {
$set = $tag->attachments()->get(); $set = $tag->attachments()->get();
$disk = Storage::disk('upload');
/** @var \Storage $disk */
$disk = \Storage::disk('upload');
return $set->each( return $set->each(
static function (Attachment $attachment) use ($disk): void { // @phpstan-ignore-line static function (Attachment $attachment) use ($disk): void { // @phpstan-ignore-line

View File

@@ -47,6 +47,7 @@ use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface;
use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
/** /**
* Class TransactionGroupRepository * Class TransactionGroupRepository
@@ -294,7 +295,7 @@ class TransactionGroupRepository implements TransactionGroupRepositoryInterface,
*/ */
public function getMetaDateFields(int $journalId, array $fields): NullArrayObject public function getMetaDateFields(int $journalId, array $fields): NullArrayObject
{ {
$query = \DB::table('journal_meta') $query = DB::table('journal_meta')
->where('transaction_journal_id', $journalId) ->where('transaction_journal_id', $journalId)
->whereIn('name', $fields) ->whereIn('name', $fields)
->whereNull('deleted_at') ->whereNull('deleted_at')
@@ -314,7 +315,7 @@ class TransactionGroupRepository implements TransactionGroupRepositoryInterface,
*/ */
public function getMetaFields(int $journalId, array $fields): NullArrayObject public function getMetaFields(int $journalId, array $fields): NullArrayObject
{ {
$query = \DB::table('journal_meta') $query = DB::table('journal_meta')
->where('transaction_journal_id', $journalId) ->where('transaction_journal_id', $journalId)
->whereIn('name', $fields) ->whereIn('name', $fields)
->whereNull('deleted_at') ->whereNull('deleted_at')
@@ -383,7 +384,7 @@ class TransactionGroupRepository implements TransactionGroupRepositoryInterface,
*/ */
public function getTags(int $journalId): array public function getTags(int $journalId): array
{ {
$result = \DB::table('tag_transaction_journal') $result = DB::table('tag_transaction_journal')
->leftJoin('tags', 'tag_transaction_journal.tag_id', '=', 'tags.id') ->leftJoin('tags', 'tag_transaction_journal.tag_id', '=', 'tags.id')
->where('tag_transaction_journal.transaction_journal_id', $journalId) ->where('tag_transaction_journal.transaction_journal_id', $journalId)
->orderBy('tags.tag', 'ASC') ->orderBy('tags.tag', 'ASC')

View File

@@ -105,11 +105,11 @@ class AccountDestroyService
public function moveTransactions(Account $account, Account $moveTo): void public function moveTransactions(Account $account, Account $moveTo): void
{ {
app('log')->debug(sprintf('Move from account #%d to #%d', $account->id, $moveTo->id)); app('log')->debug(sprintf('Move from account #%d to #%d', $account->id, $moveTo->id));
\DB::table('transactions')->where('account_id', $account->id)->update(['account_id' => $moveTo->id]); DB::table('transactions')->where('account_id', $account->id)->update(['account_id' => $moveTo->id]);
$collection = Transaction::groupBy('transaction_journal_id', 'account_id') $collection = Transaction::groupBy('transaction_journal_id', 'account_id')
->where('account_id', $moveTo->id) ->where('account_id', $moveTo->id)
->get(['transaction_journal_id', 'account_id', \DB::raw('count(*) as the_count')]) // @phpstan-ignore-line ->get(['transaction_journal_id', 'account_id', DB::raw('count(*) as the_count')]) // @phpstan-ignore-line
; ;
if (0 === $collection->count()) { if (0 === $collection->count()) {
return; return;

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Services\Internal\Destroy; namespace FireflyIII\Services\Internal\Destroy;
use FireflyIII\Models\Budget; use FireflyIII\Models\Budget;
use Illuminate\Support\Facades\DB;
/** /**
* Class BudgetDestroyService * Class BudgetDestroyService
@@ -41,10 +42,10 @@ class BudgetDestroyService
} }
// also delete all relations between categories and transaction journals: // also delete all relations between categories and transaction journals:
\DB::table('budget_transaction_journal')->where('budget_id', $budget->id)->delete(); DB::table('budget_transaction_journal')->where('budget_id', $budget->id)->delete();
// also delete all relations between categories and transactions: // also delete all relations between categories and transactions:
\DB::table('budget_transaction')->where('budget_id', $budget->id)->delete(); DB::table('budget_transaction')->where('budget_id', $budget->id)->delete();
// also delete all budget limits // also delete all budget limits
foreach ($budget->budgetlimits()->get() as $limit) { foreach ($budget->budgetlimits()->get() as $limit) {

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Services\Internal\Destroy; namespace FireflyIII\Services\Internal\Destroy;
use FireflyIII\Models\Category; use FireflyIII\Models\Category;
use Illuminate\Support\Facades\DB;
/** /**
* Class CategoryDestroyService * Class CategoryDestroyService
@@ -36,12 +37,12 @@ class CategoryDestroyService
$category->delete(); $category->delete();
// also delete all relations between categories and transaction journals: // also delete all relations between categories and transaction journals:
\DB::table('category_transaction_journal')->where('category_id', $category->id)->delete(); DB::table('category_transaction_journal')->where('category_id', $category->id)->delete();
// also delete all relations between categories and transactions: // also delete all relations between categories and transactions:
\DB::table('category_transaction')->where('category_id', $category->id)->delete(); DB::table('category_transaction')->where('category_id', $category->id)->delete();
// delete references to category from recurring transactions. // delete references to category from recurring transactions.
\DB::table('rt_meta')->where('name', 'category_id')->where('value', $category->id)->delete(); DB::table('rt_meta')->where('name', 'category_id')->where('value', $category->id)->delete();
} }
} }

View File

@@ -29,6 +29,7 @@ use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionJournalLink; use FireflyIII\Models\TransactionJournalLink;
use FireflyIII\Models\TransactionJournalMeta; use FireflyIII\Models\TransactionJournalMeta;
use Illuminate\Support\Facades\DB;
/** /**
* Class JournalDestroyService * Class JournalDestroyService
@@ -59,17 +60,17 @@ class JournalDestroyService
} }
// delete all from 'budget_transaction_journal' // delete all from 'budget_transaction_journal'
\DB::table('budget_transaction_journal') DB::table('budget_transaction_journal')
->where('transaction_journal_id', $journal->id)->delete() ->where('transaction_journal_id', $journal->id)->delete()
; ;
// delete all from 'category_transaction_journal' // delete all from 'category_transaction_journal'
\DB::table('category_transaction_journal') DB::table('category_transaction_journal')
->where('transaction_journal_id', $journal->id)->delete() ->where('transaction_journal_id', $journal->id)->delete()
; ;
// delete all from 'tag_transaction_journal' // delete all from 'tag_transaction_journal'
\DB::table('tag_transaction_journal') DB::table('tag_transaction_journal')
->where('transaction_journal_id', $journal->id)->delete() ->where('transaction_journal_id', $journal->id)->delete()
; ;

View File

@@ -30,6 +30,7 @@ use FireflyIII\Models\Role;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Contracts\Auth\UserProvider; use Illuminate\Contracts\Auth\UserProvider;
use Illuminate\Support\Str;
/** /**
* Class RemoteUserProvider * Class RemoteUserProvider
@@ -72,7 +73,7 @@ class RemoteUserProvider implements UserProvider
'blocked' => false, 'blocked' => false,
'blocked_code' => null, 'blocked_code' => null,
'email' => $identifier, 'email' => $identifier,
'password' => bcrypt(\Str::random(64)), 'password' => bcrypt(Str::random(64)),
] ]
); );
// if this is the first user, give them admin as well. // if this is the first user, give them admin as well.

View File

@@ -33,6 +33,7 @@ use FireflyIII\Support\Http\Api\ExchangeRateConverter;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Str;
/** /**
* Class Steam. * Class Steam.
@@ -467,7 +468,7 @@ class Steam
$set = auth()->user()->transactions() $set = auth()->user()->transactions()
->whereIn('transactions.account_id', $accounts) ->whereIn('transactions.account_id', $accounts)
->groupBy(['transactions.account_id', 'transaction_journals.user_id']) ->groupBy(['transactions.account_id', 'transaction_journals.user_id'])
->get(['transactions.account_id', \DB::raw('MAX(transaction_journals.date) AS max_date')]) // @phpstan-ignore-line ->get(['transactions.account_id', DB::raw('MAX(transaction_journals.date) AS max_date')]) // @phpstan-ignore-line
; ;
/** @var Transaction $entry */ /** @var Transaction $entry */
@@ -557,7 +558,7 @@ class Steam
// URL must not lead to weird pages // URL must not lead to weird pages
$forbiddenWords = ['jscript', 'json', 'debug', 'serviceworker', 'offline', 'delete', '/login', '/attachments/view']; $forbiddenWords = ['jscript', 'json', 'debug', 'serviceworker', 'offline', 'delete', '/login', '/attachments/view'];
if (\Str::contains($returnUrl, $forbiddenWords)) { if (Str::contains($returnUrl, $forbiddenWords)) {
$returnUrl = $safeUrl; $returnUrl = $safeUrl;
} }

View File

@@ -26,6 +26,7 @@ namespace FireflyIII\Support\System;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use Illuminate\Contracts\Encryption\DecryptException; use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Support\Facades\Crypt;
use Laravel\Passport\Console\KeysCommand; use Laravel\Passport\Console\KeysCommand;
use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface; use Psr\Container\NotFoundExceptionInterface;
@@ -95,8 +96,8 @@ class OAuthKeys
{ {
$private = storage_path('oauth-private.key'); $private = storage_path('oauth-private.key');
$public = storage_path('oauth-public.key'); $public = storage_path('oauth-public.key');
app('fireflyconfig')->set(self::PRIVATE_KEY, \Crypt::encrypt(file_get_contents($private))); app('fireflyconfig')->set(self::PRIVATE_KEY, Crypt::encrypt(file_get_contents($private)));
app('fireflyconfig')->set(self::PUBLIC_KEY, \Crypt::encrypt(file_get_contents($public))); app('fireflyconfig')->set(self::PUBLIC_KEY, Crypt::encrypt(file_get_contents($public)));
} }
/** /**
@@ -108,8 +109,8 @@ class OAuthKeys
$publicKey = (string) app('fireflyconfig')->get(self::PUBLIC_KEY)?->data; $publicKey = (string) app('fireflyconfig')->get(self::PUBLIC_KEY)?->data;
try { try {
$privateContent = \Crypt::decrypt($privateKey); $privateContent = Crypt::decrypt($privateKey);
$publicContent = \Crypt::decrypt($publicKey); $publicContent = Crypt::decrypt($publicKey);
} catch (DecryptException $e) { } catch (DecryptException $e) {
app('log')->error('Could not decrypt pub/private keypair.'); app('log')->error('Could not decrypt pub/private keypair.');
app('log')->error($e->getMessage()); app('log')->error($e->getMessage());

View File

@@ -30,6 +30,7 @@ use FireflyIII\Enums\TransactionTypeEnum;
use FireflyIII\Models\Transaction; use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionJournalMeta; use FireflyIII\Models\TransactionJournalMeta;
use Illuminate\Support\Facades\DB;
use Twig\Extension\AbstractExtension; use Twig\Extension\AbstractExtension;
use Twig\TwigFunction; use Twig\TwigFunction;
@@ -225,7 +226,7 @@ class TransactionGroupTwig extends AbstractExtension
return new TwigFunction( return new TwigFunction(
'journalHasMeta', 'journalHasMeta',
static function (int $journalId, string $metaField) { static function (int $journalId, string $metaField) {
$count = \DB::table('journal_meta') $count = DB::table('journal_meta')
->where('name', $metaField) ->where('name', $metaField)
->where('transaction_journal_id', $journalId) ->where('transaction_journal_id', $journalId)
->whereNull('deleted_at') ->whereNull('deleted_at')
@@ -243,7 +244,7 @@ class TransactionGroupTwig extends AbstractExtension
'journalGetMetaDate', 'journalGetMetaDate',
static function (int $journalId, string $metaField) { static function (int $journalId, string $metaField) {
/** @var null|TransactionJournalMeta $entry */ /** @var null|TransactionJournalMeta $entry */
$entry = \DB::table('journal_meta') $entry = DB::table('journal_meta')
->where('name', $metaField) ->where('name', $metaField)
->where('transaction_journal_id', $journalId) ->where('transaction_journal_id', $journalId)
->whereNull('deleted_at') ->whereNull('deleted_at')
@@ -264,7 +265,7 @@ class TransactionGroupTwig extends AbstractExtension
'journalGetMetaField', 'journalGetMetaField',
static function (int $journalId, string $metaField) { static function (int $journalId, string $metaField) {
/** @var null|TransactionJournalMeta $entry */ /** @var null|TransactionJournalMeta $entry */
$entry = \DB::table('journal_meta') $entry = DB::table('journal_meta')
->where('name', $metaField) ->where('name', $metaField)
->where('transaction_journal_id', $journalId) ->where('transaction_journal_id', $journalId)
->whereNull('deleted_at') ->whereNull('deleted_at')

View File

@@ -29,6 +29,7 @@ use FireflyIII\Factory\TagFactory;
use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Support\Facades\DB;
/** /**
* Class AddTag. * Class AddTag.
@@ -64,14 +65,14 @@ class AddTag implements ActionInterface
return false; return false;
} }
$count = \DB::table('tag_transaction_journal') $count = DB::table('tag_transaction_journal')
->where('tag_id', $tag->id) ->where('tag_id', $tag->id)
->where('transaction_journal_id', $journal['transaction_journal_id']) ->where('transaction_journal_id', $journal['transaction_journal_id'])
->count() ->count()
; ;
if (0 === $count) { if (0 === $count) {
// add to journal: // add to journal:
\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']]);
app('log')->debug(sprintf('RuleAction AddTag. Added tag #%d ("%s") to journal %d.', $tag->id, $tag->tag, $journal['transaction_journal_id'])); app('log')->debug(sprintf('RuleAction AddTag. Added tag #%d ("%s") to journal %d.', $tag->id, $tag->tag, $journal['transaction_journal_id']));
/** @var TransactionJournal $object */ /** @var TransactionJournal $object */

View File

@@ -27,6 +27,7 @@ use FireflyIII\Events\TriggeredAuditLog;
use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\TransactionRules\Traits\RefreshNotesTrait; use FireflyIII\TransactionRules\Traits\RefreshNotesTrait;
use Illuminate\Support\Facades\DB;
/** /**
* Class AppendDescription. * Class AppendDescription.
@@ -51,7 +52,7 @@ class AppendDescription implements ActionInterface
$this->refreshNotes($journal); $this->refreshNotes($journal);
$append = $this->action->getValue($journal); $append = $this->action->getValue($journal);
$description = sprintf('%s %s', $journal['description'], $append); $description = sprintf('%s %s', $journal['description'], $append);
\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 // event for audit log entry
/** @var TransactionJournal $object */ /** @var TransactionJournal $object */

View File

@@ -27,6 +27,7 @@ use FireflyIII\Events\Model\Rule\RuleActionFailedOnArray;
use FireflyIII\Events\TriggeredAuditLog; use FireflyIII\Events\TriggeredAuditLog;
use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use Illuminate\Support\Facades\DB;
/** /**
* Class ClearBudget. * Class ClearBudget.
@@ -55,7 +56,7 @@ class ClearBudget implements ActionInterface
return false; 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();
event(new TriggeredAuditLog($this->action->rule, $object, 'clear_budget', $budget->name, null)); event(new TriggeredAuditLog($this->action->rule, $object, 'clear_budget', $budget->name, null));

View File

@@ -27,6 +27,7 @@ use FireflyIII\Events\Model\Rule\RuleActionFailedOnArray;
use FireflyIII\Events\TriggeredAuditLog; use FireflyIII\Events\TriggeredAuditLog;
use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use Illuminate\Support\Facades\DB;
/** /**
* Class ClearCategory. * Class ClearCategory.
@@ -55,7 +56,7 @@ class ClearCategory implements ActionInterface
return false; 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();
event(new TriggeredAuditLog($this->action->rule, $object, 'clear_category', $category->name, null)); event(new TriggeredAuditLog($this->action->rule, $object, 'clear_category', $category->name, null));

View File

@@ -28,6 +28,7 @@ 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;
use Illuminate\Support\Facades\DB;
/** /**
* Class ClearNotes. * Class ClearNotes.
@@ -59,7 +60,7 @@ class ClearNotes implements ActionInterface
} }
$before = $notes->text; $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()

View File

@@ -36,6 +36,7 @@ use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType; use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use Illuminate\Support\Facades\DB;
/** /**
* Class ConvertToDeposit * Class ConvertToDeposit
@@ -154,14 +155,14 @@ class ConvertToDeposit implements ActionInterface
app('log')->debug(sprintf('ConvertToDeposit. Action value is "%s", new opposing name is "%s"', $actionValue, $opposingAccount->name)); app('log')->debug(sprintf('ConvertToDeposit. Action value is "%s", new opposing name is "%s"', $actionValue, $opposingAccount->name));
// update the source transaction and put in the new revenue ID. // update the source transaction and put in the new revenue ID.
\DB::table('transactions') DB::table('transactions')
->where('transaction_journal_id', '=', $journal->id) ->where('transaction_journal_id', '=', $journal->id)
->where('amount', '<', 0) ->where('amount', '<', 0)
->update(['account_id' => $opposingAccount->id]) ->update(['account_id' => $opposingAccount->id])
; ;
// update the destination transaction and put in the original source account ID. // update the destination transaction and put in the original source account ID.
\DB::table('transactions') DB::table('transactions')
->where('transaction_journal_id', '=', $journal->id) ->where('transaction_journal_id', '=', $journal->id)
->where('amount', '>', 0) ->where('amount', '>', 0)
->update(['account_id' => $sourceAccount->id]) ->update(['account_id' => $sourceAccount->id])
@@ -170,7 +171,7 @@ class ConvertToDeposit implements ActionInterface
// change transaction type of journal: // change transaction type of journal:
$newType = TransactionType::whereType(TransactionTypeEnum::DEPOSIT->value)->first(); $newType = TransactionType::whereType(TransactionTypeEnum::DEPOSIT->value)->first();
\DB::table('transaction_journals') DB::table('transaction_journals')
->where('id', '=', $journal->id) ->where('id', '=', $journal->id)
->update(['transaction_type_id' => $newType->id, 'bill_id' => null]) ->update(['transaction_type_id' => $newType->id, 'bill_id' => null])
; ;
@@ -242,7 +243,7 @@ class ConvertToDeposit implements ActionInterface
app('log')->debug(sprintf('ConvertToDeposit. Action value is "%s", revenue name is "%s"', $actionValue, $opposingAccount->name)); app('log')->debug(sprintf('ConvertToDeposit. Action value is "%s", revenue name is "%s"', $actionValue, $opposingAccount->name));
// update source transaction(s) to be revenue account // update source transaction(s) to be revenue account
\DB::table('transactions') DB::table('transactions')
->where('transaction_journal_id', '=', $journal->id) ->where('transaction_journal_id', '=', $journal->id)
->where('amount', '<', 0) ->where('amount', '<', 0)
->update(['account_id' => $opposingAccount->id]) ->update(['account_id' => $opposingAccount->id])
@@ -251,7 +252,7 @@ class ConvertToDeposit implements ActionInterface
// change transaction type of journal: // change transaction type of journal:
$newType = TransactionType::whereType(TransactionTypeEnum::DEPOSIT->value)->first(); $newType = TransactionType::whereType(TransactionTypeEnum::DEPOSIT->value)->first();
\DB::table('transaction_journals') DB::table('transaction_journals')
->where('id', '=', $journal->id) ->where('id', '=', $journal->id)
->update(['transaction_type_id' => $newType->id, 'bill_id' => null]) ->update(['transaction_type_id' => $newType->id, 'bill_id' => null])
; ;

View File

@@ -35,6 +35,7 @@ use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType; use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use Illuminate\Support\Facades\DB;
/** /**
* Class ConvertToTransfer * Class ConvertToTransfer
@@ -209,7 +210,7 @@ class ConvertToTransfer implements ActionInterface
} }
// update destination transaction: // update destination transaction:
\DB::table('transactions') DB::table('transactions')
->where('transaction_journal_id', '=', $journal->id) ->where('transaction_journal_id', '=', $journal->id)
->where('amount', '>', 0) ->where('amount', '>', 0)
->update(['account_id' => $opposing->id]) ->update(['account_id' => $opposing->id])
@@ -218,7 +219,7 @@ class ConvertToTransfer implements ActionInterface
// change transaction type of journal: // change transaction type of journal:
$newType = TransactionType::whereType(TransactionTypeEnum::TRANSFER->value)->first(); $newType = TransactionType::whereType(TransactionTypeEnum::TRANSFER->value)->first();
\DB::table('transaction_journals') DB::table('transaction_journals')
->where('id', '=', $journal->id) ->where('id', '=', $journal->id)
->update(['transaction_type_id' => $newType->id, 'bill_id' => null]) ->update(['transaction_type_id' => $newType->id, 'bill_id' => null])
; ;
@@ -264,7 +265,7 @@ class ConvertToTransfer implements ActionInterface
} }
// update source transaction: // update source transaction:
\DB::table('transactions') DB::table('transactions')
->where('transaction_journal_id', '=', $journal->id) ->where('transaction_journal_id', '=', $journal->id)
->where('amount', '<', 0) ->where('amount', '<', 0)
->update(['account_id' => $opposing->id]) ->update(['account_id' => $opposing->id])
@@ -273,7 +274,7 @@ class ConvertToTransfer implements ActionInterface
// change transaction type of journal: // change transaction type of journal:
$newType = TransactionType::whereType(TransactionTypeEnum::TRANSFER->value)->first(); $newType = TransactionType::whereType(TransactionTypeEnum::TRANSFER->value)->first();
\DB::table('transaction_journals') DB::table('transaction_journals')
->where('id', '=', $journal->id) ->where('id', '=', $journal->id)
->update(['transaction_type_id' => $newType->id, 'bill_id' => null]) ->update(['transaction_type_id' => $newType->id, 'bill_id' => null])
; ;

View File

@@ -36,6 +36,7 @@ use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType; use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use Illuminate\Support\Facades\DB;
/** /**
* Class ConvertToWithdrawal * Class ConvertToWithdrawal
@@ -148,14 +149,14 @@ class ConvertToWithdrawal implements ActionInterface
app('log')->debug(sprintf('ConvertToWithdrawal. Action value is "%s", expense name is "%s"', $actionValue, $opposingName)); app('log')->debug(sprintf('ConvertToWithdrawal. Action value is "%s", expense name is "%s"', $actionValue, $opposingName));
// update source transaction(s) to be the original destination account // update source transaction(s) to be the original destination account
\DB::table('transactions') DB::table('transactions')
->where('transaction_journal_id', '=', $journal->id) ->where('transaction_journal_id', '=', $journal->id)
->where('amount', '<', 0) ->where('amount', '<', 0)
->update(['account_id' => $destAccount->id]) ->update(['account_id' => $destAccount->id])
; ;
// update destination transaction(s) to be new expense account. // update destination transaction(s) to be new expense account.
\DB::table('transactions') DB::table('transactions')
->where('transaction_journal_id', '=', $journal->id) ->where('transaction_journal_id', '=', $journal->id)
->where('amount', '>', 0) ->where('amount', '>', 0)
->update(['account_id' => $opposingAccount->id]) ->update(['account_id' => $opposingAccount->id])
@@ -163,7 +164,7 @@ class ConvertToWithdrawal implements ActionInterface
// change transaction type of journal: // change transaction type of journal:
$newType = TransactionType::whereType(TransactionTypeEnum::WITHDRAWAL->value)->first(); $newType = TransactionType::whereType(TransactionTypeEnum::WITHDRAWAL->value)->first();
\DB::table('transaction_journals') DB::table('transaction_journals')
->where('id', '=', $journal->id) ->where('id', '=', $journal->id)
->update(['transaction_type_id' => $newType->id]) ->update(['transaction_type_id' => $newType->id])
; ;
@@ -234,7 +235,7 @@ class ConvertToWithdrawal implements ActionInterface
app('log')->debug(sprintf('ConvertToWithdrawal. Action value is "%s", destination name is "%s"', $actionValue, $opposingName)); app('log')->debug(sprintf('ConvertToWithdrawal. Action value is "%s", destination name is "%s"', $actionValue, $opposingName));
// update destination transaction(s) to be new expense account. // update destination transaction(s) to be new expense account.
\DB::table('transactions') DB::table('transactions')
->where('transaction_journal_id', '=', $journal->id) ->where('transaction_journal_id', '=', $journal->id)
->where('amount', '>', 0) ->where('amount', '>', 0)
->update(['account_id' => $opposingAccount->id]) ->update(['account_id' => $opposingAccount->id])
@@ -242,7 +243,7 @@ class ConvertToWithdrawal implements ActionInterface
// change transaction type of journal: // change transaction type of journal:
$newType = TransactionType::whereType(TransactionTypeEnum::WITHDRAWAL->value)->first(); $newType = TransactionType::whereType(TransactionTypeEnum::WITHDRAWAL->value)->first();
\DB::table('transaction_journals') DB::table('transaction_journals')
->where('id', '=', $journal->id) ->where('id', '=', $journal->id)
->update(['transaction_type_id' => $newType->id]) ->update(['transaction_type_id' => $newType->id])
; ;

View File

@@ -30,6 +30,7 @@ use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Bill\BillRepositoryInterface; use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Support\Facades\DB;
/** /**
* Class LinkToBill. * Class LinkToBill.
@@ -58,7 +59,7 @@ class LinkToBill implements ActionInterface
$bill = $repository->findByName($billName); $bill = $repository->findByName($billName);
if (null !== $bill && TransactionTypeEnum::WITHDRAWAL->value === $journal['transaction_type_type']) { if (null !== $bill && TransactionTypeEnum::WITHDRAWAL->value === $journal['transaction_type_type']) {
$count = \DB::table('transaction_journals')->where('id', '=', $journal['transaction_journal_id']) $count = DB::table('transaction_journals')->where('id', '=', $journal['transaction_journal_id'])
->where('bill_id', $bill->id)->count() ->where('bill_id', $bill->id)->count()
; ;
if (0 !== $count) { if (0 !== $count) {
@@ -74,7 +75,7 @@ class LinkToBill implements ActionInterface
return false; return false;
} }
\DB::table('transaction_journals') DB::table('transaction_journals')
->where('id', '=', $journal['transaction_journal_id']) ->where('id', '=', $journal['transaction_journal_id'])
->update(['bill_id' => $bill->id]) ->update(['bill_id' => $bill->id])
; ;

View File

@@ -26,6 +26,7 @@ namespace FireflyIII\TransactionRules\Actions;
use FireflyIII\Events\TriggeredAuditLog; use FireflyIII\Events\TriggeredAuditLog;
use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use Illuminate\Support\Facades\DB;
/** /**
* Class PrependDescription. * Class PrependDescription.
@@ -47,7 +48,7 @@ class PrependDescription implements ActionInterface
{ {
$before = $journal['description']; $before = $journal['description'];
$after = sprintf('%s%s', $this->action->getValue($journal), $journal['description']); $after = sprintf('%s%s', $this->action->getValue($journal), $journal['description']);
\DB::table('transaction_journals')->where('id', $journal['transaction_journal_id'])->limit(1)->update(['description' => $after]); DB::table('transaction_journals')->where('id', $journal['transaction_journal_id'])->limit(1)->update(['description' => $after]);
// journal // journal
/** @var TransactionJournal $object */ /** @var TransactionJournal $object */

View File

@@ -27,6 +27,7 @@ use FireflyIII\Events\Model\Rule\RuleActionFailedOnArray;
use FireflyIII\Events\TriggeredAuditLog; use FireflyIII\Events\TriggeredAuditLog;
use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use Illuminate\Support\Facades\DB;
/** /**
* Class RemoveAllTags. * Class RemoveAllTags.
@@ -45,8 +46,8 @@ class RemoveAllTags implements ActionInterface
public function actOnArray(array $journal): bool public function actOnArray(array $journal): bool
{ {
\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();
$count = \DB::table('tag_transaction_journal')->where('transaction_journal_id', $journal['transaction_journal_id'])->count(); $count = DB::table('tag_transaction_journal')->where('transaction_journal_id', $journal['transaction_journal_id'])->count();
if (0 === $count) { if (0 === $count) {
app('log')->debug(sprintf('RuleAction RemoveAllTags, journal #%d has no tags.', $journal['transaction_journal_id'])); app('log')->debug(sprintf('RuleAction RemoveAllTags, journal #%d has no tags.', $journal['transaction_journal_id']));
event(new RuleActionFailedOnArray($this->action, $journal, trans('rules.no_tags_to_remove'))); event(new RuleActionFailedOnArray($this->action, $journal, trans('rules.no_tags_to_remove')));

View File

@@ -28,6 +28,7 @@ use FireflyIII\Events\TriggeredAuditLog;
use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Support\Facades\DB;
/** /**
* Class RemoveTag. * Class RemoveTag.
@@ -61,7 +62,7 @@ class RemoveTag implements ActionInterface
return false; return false;
} }
$count = \DB::table('tag_transaction_journal')->where('transaction_journal_id', $journal['transaction_journal_id'])->where('tag_id', $tag->id)->count(); $count = DB::table('tag_transaction_journal')->where('transaction_journal_id', $journal['transaction_journal_id'])->where('tag_id', $tag->id)->count();
if (0 === $count) { if (0 === $count) {
app('log')->debug( app('log')->debug(
sprintf('RuleAction RemoveTag tried to remove tag "%s" from journal #%d but no such tag is linked.', $name, $journal['transaction_journal_id']) sprintf('RuleAction RemoveTag tried to remove tag "%s" from journal #%d but no such tag is linked.', $name, $journal['transaction_journal_id'])
@@ -72,7 +73,7 @@ class RemoveTag implements ActionInterface
} }
app('log')->debug(sprintf('RuleAction RemoveTag removed tag #%d ("%s") from journal #%d.', $tag->id, $tag->tag, $journal['transaction_journal_id'])); app('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') DB::table('tag_transaction_journal')
->where('transaction_journal_id', $journal['transaction_journal_id']) ->where('transaction_journal_id', $journal['transaction_journal_id'])
->where('tag_id', $tag->id) ->where('tag_id', $tag->id)
->delete() ->delete()

View File

@@ -29,6 +29,7 @@ use FireflyIII\Events\TriggeredAuditLog;
use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Support\Facades\DB;
/** /**
* Class SetBudget. * Class SetBudget.
@@ -94,8 +95,8 @@ class SetBudget implements ActionInterface
sprintf('RuleAction SetBudget set the budget of journal #%d to budget #%d ("%s").', $journal['transaction_journal_id'], $budget->id, $budget->name) sprintf('RuleAction SetBudget set the budget of journal #%d to budget #%d ("%s").', $journal['transaction_journal_id'], $budget->id, $budget->name)
); );
\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 $object */ /** @var TransactionJournal $object */
$object = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']); $object = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);

View File

@@ -29,6 +29,7 @@ use FireflyIII\Factory\CategoryFactory;
use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Support\Facades\DB;
/** /**
* Class SetCategory. * Class SetCategory.
@@ -94,8 +95,8 @@ class SetCategory implements ActionInterface
return false; 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();
\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 $object */ /** @var TransactionJournal $object */
$object = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']); $object = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);

View File

@@ -27,6 +27,7 @@ use FireflyIII\Events\TriggeredAuditLog;
use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\TransactionRules\Traits\RefreshNotesTrait; use FireflyIII\TransactionRules\Traits\RefreshNotesTrait;
use Illuminate\Support\Facades\DB;
/** /**
* Class SetDescription. * Class SetDescription.
@@ -57,7 +58,7 @@ class SetDescription implements ActionInterface
// replace newlines. // replace newlines.
$after = str_replace(["\r", "\n", "\t", "\036", "\025"], '', $after); $after = str_replace(["\r", "\n", "\t", "\036", "\025"], '', $after);
\DB::table('transaction_journals') DB::table('transaction_journals')
->where('id', '=', $journal['transaction_journal_id']) ->where('id', '=', $journal['transaction_journal_id'])
->update(['description' => $after]) ->update(['description' => $after])
; ;

View File

@@ -32,6 +32,7 @@ use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Support\Facades\DB;
/** /**
* Class SetDestinationAccount. * Class SetDestinationAccount.
@@ -125,7 +126,7 @@ class SetDestinationAccount implements ActionInterface
event(new TriggeredAuditLog($this->action->rule, $object, 'set_destination', null, $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)
->where('amount', '>', 0) ->where('amount', '>', 0)
->update(['account_id' => $newAccount->id]) ->update(['account_id' => $newAccount->id])

View File

@@ -32,6 +32,7 @@ use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Support\Facades\DB;
/** /**
* Class SetDestinationToCashAccount * Class SetDestinationToCashAccount
@@ -108,7 +109,7 @@ class SetDestinationToCashAccount implements ActionInterface
event(new TriggeredAuditLog($this->action->rule, $object, 'set_destination', null, $cashAccount->name)); event(new TriggeredAuditLog($this->action->rule, $object, 'set_destination', null, $cashAccount->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)
->where('amount', '>', 0) ->where('amount', '>', 0)
->update(['account_id' => $cashAccount->id]) ->update(['account_id' => $cashAccount->id])

View File

@@ -32,6 +32,7 @@ use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Support\Facades\DB;
/** /**
* Class SetSourceAccount. * Class SetSourceAccount.
@@ -117,7 +118,7 @@ class SetSourceAccount implements ActionInterface
app('log')->debug(sprintf('New source account is #%d ("%s").', $newAccount->id, $newAccount->name)); app('log')->debug(sprintf('New source account is #%d ("%s").', $newAccount->id, $newAccount->name));
// update source transaction with new source account: // update source transaction with new source account:
\DB::table('transactions') DB::table('transactions')
->where('transaction_journal_id', '=', $object->id) ->where('transaction_journal_id', '=', $object->id)
->where('amount', '<', 0) ->where('amount', '<', 0)
->update(['account_id' => $newAccount->id]) ->update(['account_id' => $newAccount->id])

View File

@@ -32,6 +32,7 @@ use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Support\Facades\DB;
/** /**
* Class SetSourceToCashAccount * Class SetSourceToCashAccount
@@ -108,7 +109,7 @@ class SetSourceToCashAccount implements ActionInterface
event(new TriggeredAuditLog($this->action->rule, $object, 'set_source', null, $cashAccount->name)); event(new TriggeredAuditLog($this->action->rule, $object, 'set_source', null, $cashAccount->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)
->where('amount', '<', 0) ->where('amount', '<', 0)
->update(['account_id' => $cashAccount->id]) ->update(['account_id' => $cashAccount->id])

View File

@@ -38,6 +38,7 @@ use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface;
use FireflyIII\Services\Password\Verifier; use FireflyIII\Services\Password\Verifier;
use FireflyIII\Support\ParseDateString; use FireflyIII\Support\ParseDateString;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator; use Illuminate\Validation\Validator;
use PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException; use PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException;
@@ -95,7 +96,7 @@ class FireflyValidator extends Validator
if (0 === (int) $value) { if (0 === (int) $value) {
return true; return true;
} }
$count = \DB::table($parameters[0])->where('user_id', auth()->user()->id)->where($field, $value)->count(); $count = DB::table($parameters[0])->where('user_id', auth()->user()->id)->where($field, $value)->count();
return 1 === $count; return 1 === $count;
} }
@@ -269,7 +270,7 @@ class FireflyValidator extends Validator
if (0 === (int) $value) { if (0 === (int) $value) {
return true; return true;
} }
$count = \DB::table($parameters[0])->where($field, $value)->count(); $count = DB::table($parameters[0])->where($field, $value)->count();
return 1 === $count; return 1 === $count;
} }
@@ -686,7 +687,7 @@ class FireflyValidator extends Validator
*/ */
public function validateUniqueCurrency(string $field, string $attribute, string $value): bool public function validateUniqueCurrency(string $field, string $attribute, string $value): bool
{ {
return 0 === \DB::table('transaction_currencies')->where($field, $value)->whereNull('deleted_at')->count(); return 0 === DB::table('transaction_currencies')->where($field, $value)->whereNull('deleted_at')->count();
} }
public function validateUniqueCurrencyName(?string $attribute, ?string $value): bool public function validateUniqueCurrencyName(?string $attribute, ?string $value): bool
@@ -775,7 +776,7 @@ class FireflyValidator extends Validator
$exclude = (int) $data['id']; $exclude = (int) $data['id'];
} }
// get entries from table // get entries from table
$result = \DB::table($table)->where('user_id', auth()->user()->id)->whereNull('deleted_at') $result = DB::table($table)->where('user_id', auth()->user()->id)->whereNull('deleted_at')
->where('id', '!=', $exclude) ->where('id', '!=', $exclude)
->where($field, $value) ->where($field, $value)
->first([$field]) ->first([$field])
@@ -798,7 +799,7 @@ class FireflyValidator extends Validator
public function validateUniqueObjectGroup($attribute, $value, $parameters): bool public function validateUniqueObjectGroup($attribute, $value, $parameters): bool
{ {
$exclude = $parameters[0] ?? null; $exclude = $parameters[0] ?? null;
$query = \DB::table('object_groups') $query = DB::table('object_groups')
->whereNull('object_groups.deleted_at') ->whereNull('object_groups.deleted_at')
->where('object_groups.user_id', auth()->user()->id) ->where('object_groups.user_id', auth()->user()->id)
->where('object_groups.title', $value) ->where('object_groups.title', $value)