mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-30 02:26:58 +00:00
🤖 Auto commit for release 'develop' on 2025-05-04
This commit is contained in:
65
.ci/php-cs-fixer/composer.lock
generated
65
.ci/php-cs-fixer/composer.lock
generated
@@ -1256,16 +1256,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/console",
|
"name": "symfony/console",
|
||||||
"version": "v7.2.5",
|
"version": "v7.2.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/console.git",
|
"url": "https://github.com/symfony/console.git",
|
||||||
"reference": "e51498ea18570c062e7df29d05a7003585b19b88"
|
"reference": "0e2e3f38c192e93e622e41ec37f4ca70cfedf218"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/console/zipball/e51498ea18570c062e7df29d05a7003585b19b88",
|
"url": "https://api.github.com/repos/symfony/console/zipball/0e2e3f38c192e93e622e41ec37f4ca70cfedf218",
|
||||||
"reference": "e51498ea18570c062e7df29d05a7003585b19b88",
|
"reference": "0e2e3f38c192e93e622e41ec37f4ca70cfedf218",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -1329,7 +1329,7 @@
|
|||||||
"terminal"
|
"terminal"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/console/tree/v7.2.5"
|
"source": "https://github.com/symfony/console/tree/v7.2.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -1345,7 +1345,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-03-12T08:11:12+00:00"
|
"time": "2025-04-07T19:09:28+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/deprecation-contracts",
|
"name": "symfony/deprecation-contracts",
|
||||||
@@ -1769,7 +1769,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-ctype",
|
"name": "symfony/polyfill-ctype",
|
||||||
"version": "v1.31.0",
|
"version": "v1.32.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||||
@@ -1828,7 +1828,7 @@
|
|||||||
"portable"
|
"portable"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
|
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -1848,7 +1848,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-intl-grapheme",
|
"name": "symfony/polyfill-intl-grapheme",
|
||||||
"version": "v1.31.0",
|
"version": "v1.32.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
|
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
|
||||||
@@ -1906,7 +1906,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
|
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -1926,7 +1926,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-intl-normalizer",
|
"name": "symfony/polyfill-intl-normalizer",
|
||||||
"version": "v1.31.0",
|
"version": "v1.32.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||||
@@ -1987,7 +1987,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
|
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -2007,19 +2007,20 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-mbstring",
|
"name": "symfony/polyfill-mbstring",
|
||||||
"version": "v1.31.0",
|
"version": "v1.32.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||||
"reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
|
"reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
|
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493",
|
||||||
"reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
|
"reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
"ext-iconv": "*",
|
||||||
"php": ">=7.2"
|
"php": ">=7.2"
|
||||||
},
|
},
|
||||||
"provide": {
|
"provide": {
|
||||||
@@ -2067,7 +2068,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
|
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -2083,20 +2084,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-09T11:45:10+00:00"
|
"time": "2024-12-23T08:48:59+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-php80",
|
"name": "symfony/polyfill-php80",
|
||||||
"version": "v1.31.0",
|
"version": "v1.32.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-php80.git",
|
"url": "https://github.com/symfony/polyfill-php80.git",
|
||||||
"reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
|
"reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
|
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
|
||||||
"reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
|
"reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -2147,7 +2148,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
|
"source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -2163,11 +2164,11 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-09T11:45:10+00:00"
|
"time": "2025-01-02T08:10:11+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-php81",
|
"name": "symfony/polyfill-php81",
|
||||||
"version": "v1.31.0",
|
"version": "v1.32.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-php81.git",
|
"url": "https://github.com/symfony/polyfill-php81.git",
|
||||||
@@ -2223,7 +2224,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0"
|
"source": "https://github.com/symfony/polyfill-php81/tree/v1.32.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -2449,16 +2450,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/string",
|
"name": "symfony/string",
|
||||||
"version": "v7.2.0",
|
"version": "v7.2.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/string.git",
|
"url": "https://github.com/symfony/string.git",
|
||||||
"reference": "446e0d146f991dde3e73f45f2c97a9faad773c82"
|
"reference": "a214fe7d62bd4df2a76447c67c6b26e1d5e74931"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82",
|
"url": "https://api.github.com/repos/symfony/string/zipball/a214fe7d62bd4df2a76447c67c6b26e1d5e74931",
|
||||||
"reference": "446e0d146f991dde3e73f45f2c97a9faad773c82",
|
"reference": "a214fe7d62bd4df2a76447c67c6b26e1d5e74931",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -2516,7 +2517,7 @@
|
|||||||
"utf8"
|
"utf8"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/string/tree/v7.2.0"
|
"source": "https://github.com/symfony/string/tree/v7.2.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -2532,7 +2533,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-13T13:31:26+00:00"
|
"time": "2025-04-20T20:18:16+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packages-dev": [],
|
"packages-dev": [],
|
||||||
|
@@ -29,6 +29,7 @@ use FireflyIII\Api\V1\Requests\Data\Export\ExportRequest;
|
|||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Support\Export\ExportDataGenerator;
|
use FireflyIII\Support\Export\ExportDataGenerator;
|
||||||
use Illuminate\Http\Response as LaravelResponse;
|
use Illuminate\Http\Response as LaravelResponse;
|
||||||
|
|
||||||
use function Safe\date;
|
use function Safe\date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -41,7 +41,5 @@ class InvitationCreated extends Event
|
|||||||
/**
|
/**
|
||||||
* Create a new event instance.
|
* Create a new event instance.
|
||||||
*/
|
*/
|
||||||
public function __construct(public InvitedUser $invitee)
|
public function __construct(public InvitedUser $invitee) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -37,7 +37,5 @@ class DestroyedTransactionLink extends Event
|
|||||||
/**
|
/**
|
||||||
* DestroyedTransactionLink constructor.
|
* DestroyedTransactionLink constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private TransactionJournalLink $link)
|
public function __construct(private TransactionJournalLink $link) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -37,7 +37,5 @@ class DetectedNewIPAddress extends Event
|
|||||||
/**
|
/**
|
||||||
* Create a new event instance. This event is triggered when a new user registers.
|
* Create a new event instance. This event is triggered when a new user registers.
|
||||||
*/
|
*/
|
||||||
public function __construct(public User $user)
|
public function __construct(public User $user) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -31,7 +31,5 @@ class Updated
|
|||||||
{
|
{
|
||||||
use SerializesModels;
|
use SerializesModels;
|
||||||
|
|
||||||
public function __construct(public Account $account)
|
public function __construct(public Account $account) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,5 @@ class Created extends Event
|
|||||||
{
|
{
|
||||||
use SerializesModels;
|
use SerializesModels;
|
||||||
|
|
||||||
public function __construct(public BudgetLimit $budgetLimit)
|
public function __construct(public BudgetLimit $budgetLimit) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,5 @@ class Deleted extends Event
|
|||||||
{
|
{
|
||||||
use SerializesModels;
|
use SerializesModels;
|
||||||
|
|
||||||
public function __construct(public BudgetLimit $budgetLimit)
|
public function __construct(public BudgetLimit $budgetLimit) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,5 @@ class Updated extends Event
|
|||||||
{
|
{
|
||||||
use SerializesModels;
|
use SerializesModels;
|
||||||
|
|
||||||
public function __construct(public BudgetLimit $budgetLimit)
|
public function __construct(public BudgetLimit $budgetLimit) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -38,7 +38,5 @@ class RegisteredUser extends Event
|
|||||||
/**
|
/**
|
||||||
* Create a new event instance. This event is triggered when a new user registers.
|
* Create a new event instance. This event is triggered when a new user registers.
|
||||||
*/
|
*/
|
||||||
public function __construct(public OwnerNotifiable $owner, public User $user)
|
public function __construct(public OwnerNotifiable $owner, public User $user) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -38,7 +38,5 @@ class RequestedVersionCheckStatus extends Event
|
|||||||
* Create a new event instance. This event is triggered when Firefly III wants to know
|
* Create a new event instance. This event is triggered when Firefly III wants to know
|
||||||
* what the deal is with the version checker.
|
* what the deal is with the version checker.
|
||||||
*/
|
*/
|
||||||
public function __construct(public User $user)
|
public function __construct(public User $user) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -30,7 +30,5 @@ class UnknownUserAttemptedLogin
|
|||||||
{
|
{
|
||||||
use SerializesModels;
|
use SerializesModels;
|
||||||
|
|
||||||
public function __construct(public string $address)
|
public function __construct(public string $address) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -37,7 +37,5 @@ class StoredAccount extends Event
|
|||||||
/**
|
/**
|
||||||
* Create a new event instance.
|
* Create a new event instance.
|
||||||
*/
|
*/
|
||||||
public function __construct(public Account $account)
|
public function __construct(public Account $account) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -37,7 +37,5 @@ class StoredTransactionGroup extends Event
|
|||||||
/**
|
/**
|
||||||
* Create a new event instance.
|
* Create a new event instance.
|
||||||
*/
|
*/
|
||||||
public function __construct(public TransactionGroup $transactionGroup, public bool $applyRules, public bool $fireWebhooks)
|
public function __construct(public TransactionGroup $transactionGroup, public bool $applyRules, public bool $fireWebhooks) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -39,7 +39,5 @@ class TriggeredAuditLog extends Event
|
|||||||
*
|
*
|
||||||
* @SuppressWarnings("PHPMD.ExcessiveParameterList")
|
* @SuppressWarnings("PHPMD.ExcessiveParameterList")
|
||||||
*/
|
*/
|
||||||
public function __construct(public Model $changer, public Model $auditable, public string $field, public mixed $before, public mixed $after)
|
public function __construct(public Model $changer, public Model $auditable, public string $field, public mixed $before, public mixed $after) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -37,7 +37,5 @@ class UpdatedAccount extends Event
|
|||||||
/**
|
/**
|
||||||
* Create a new event instance.
|
* Create a new event instance.
|
||||||
*/
|
*/
|
||||||
public function __construct(public Account $account)
|
public function __construct(public Account $account) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -37,7 +37,5 @@ class UpdatedTransactionGroup extends Event
|
|||||||
/**
|
/**
|
||||||
* Create a new event instance.
|
* Create a new event instance.
|
||||||
*/
|
*/
|
||||||
public function __construct(public TransactionGroup $transactionGroup, public bool $applyRules, public bool $fireWebhooks)
|
public function __construct(public TransactionGroup $transactionGroup, public bool $applyRules, public bool $fireWebhooks) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -37,7 +37,5 @@ class UserChangedEmail extends Event
|
|||||||
/**
|
/**
|
||||||
* UserChangedEmail constructor.
|
* UserChangedEmail constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(public User $user, public string $newEmail, public string $oldEmail)
|
public function __construct(public User $user, public string $newEmail, public string $oldEmail) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,5 @@ class WarnUserAboutBill extends Event
|
|||||||
{
|
{
|
||||||
use SerializesModels;
|
use SerializesModels;
|
||||||
|
|
||||||
public function __construct(public Bill $bill, public string $field, public int $diff)
|
public function __construct(public Bill $bill, public string $field, public int $diff) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -27,7 +27,6 @@ namespace FireflyIII\Handlers\Events;
|
|||||||
use FireflyIII\Enums\WebhookTrigger;
|
use FireflyIII\Enums\WebhookTrigger;
|
||||||
use FireflyIII\Events\DestroyedTransactionGroup;
|
use FireflyIII\Events\DestroyedTransactionGroup;
|
||||||
use FireflyIII\Events\RequestedSendWebhookMessages;
|
use FireflyIII\Events\RequestedSendWebhookMessages;
|
||||||
use FireflyIII\Events\UpdatedTransactionGroup;
|
|
||||||
use FireflyIII\Generator\Webhook\MessageGeneratorInterface;
|
use FireflyIII\Generator\Webhook\MessageGeneratorInterface;
|
||||||
use FireflyIII\Support\Models\AccountBalanceCalculator;
|
use FireflyIII\Support\Models\AccountBalanceCalculator;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
|
@@ -136,7 +136,8 @@ class UpdatedGroupEventHandler
|
|||||||
->orderBy('transaction_journals.order', 'ASC')
|
->orderBy('transaction_journals.order', 'ASC')
|
||||||
->orderBy('transaction_journals.id', 'DESC')
|
->orderBy('transaction_journals.id', 'DESC')
|
||||||
->orderBy('transaction_journals.description', 'DESC')
|
->orderBy('transaction_journals.description', 'DESC')
|
||||||
->first();
|
->first()
|
||||||
|
;
|
||||||
|
|
||||||
if (null === $first) {
|
if (null === $first) {
|
||||||
Log::warning(sprintf('Group #%d has no transaction journals.', $group->id));
|
Log::warning(sprintf('Group #%d has no transaction journals.', $group->id));
|
||||||
@@ -156,12 +157,14 @@ class UpdatedGroupEventHandler
|
|||||||
if (TransactionTypeEnum::TRANSFER->value === $type || TransactionTypeEnum::WITHDRAWAL->value === $type) {
|
if (TransactionTypeEnum::TRANSFER->value === $type || TransactionTypeEnum::WITHDRAWAL->value === $type) {
|
||||||
// set all source transactions to source account:
|
// set all source transactions to source account:
|
||||||
Transaction::whereIn('transaction_journal_id', $all)
|
Transaction::whereIn('transaction_journal_id', $all)
|
||||||
->where('amount', '<', 0)->update(['account_id' => $sourceAccount->id]);
|
->where('amount', '<', 0)->update(['account_id' => $sourceAccount->id])
|
||||||
|
;
|
||||||
}
|
}
|
||||||
if (TransactionTypeEnum::TRANSFER->value === $type || TransactionTypeEnum::DEPOSIT->value === $type) {
|
if (TransactionTypeEnum::TRANSFER->value === $type || TransactionTypeEnum::DEPOSIT->value === $type) {
|
||||||
// set all destination transactions to destination account:
|
// set all destination transactions to destination account:
|
||||||
Transaction::whereIn('transaction_journal_id', $all)
|
Transaction::whereIn('transaction_journal_id', $all)
|
||||||
->where('amount', '>', 0)->update(['account_id' => $destAccount->id]);
|
->where('amount', '>', 0)->update(['account_id' => $destAccount->id])
|
||||||
|
;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -34,6 +34,7 @@ use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
|
|||||||
use Illuminate\Database\Query\JoinClause;
|
use Illuminate\Database\Query\JoinClause;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Trait MetaCollection
|
* Trait MetaCollection
|
||||||
@@ -492,7 +493,7 @@ trait MetaCollection
|
|||||||
'notes',
|
'notes',
|
||||||
static function (JoinClause $join): void {
|
static function (JoinClause $join): void {
|
||||||
$join->on('notes.noteable_id', '=', 'transaction_journals.id');
|
$join->on('notes.noteable_id', '=', 'transaction_journals.id');
|
||||||
$join->where('notes.noteable_type', '=', \FireflyIII\Models\TransactionJournal::class);
|
$join->where('notes.noteable_type', '=', TransactionJournal::class);
|
||||||
$join->whereNull('notes.deleted_at');
|
$join->whereNull('notes.deleted_at');
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@@ -43,9 +43,7 @@ class Authenticate
|
|||||||
* The authentication factory instance.
|
* The authentication factory instance.
|
||||||
*/
|
*/
|
||||||
protected Auth $auth
|
protected Auth $auth
|
||||||
)
|
) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle an incoming request.
|
* Handle an incoming request.
|
||||||
|
@@ -45,7 +45,7 @@ class SecureHeaders
|
|||||||
// generate and share nonce.
|
// generate and share nonce.
|
||||||
$nonce = base64_encode(random_bytes(16));
|
$nonce = base64_encode(random_bytes(16));
|
||||||
Vite::useCspNonce($nonce);
|
Vite::useCspNonce($nonce);
|
||||||
if (class_exists(\Barryvdh\Debugbar\Facades\Debugbar::class)) {
|
if (class_exists(Debugbar::class)) {
|
||||||
Debugbar::getJavascriptRenderer()->setCspNonce($nonce);
|
Debugbar::getJavascriptRenderer()->setCspNonce($nonce);
|
||||||
}
|
}
|
||||||
app('view')->share('JS_NONCE', $nonce);
|
app('view')->share('JS_NONCE', $nonce);
|
||||||
|
@@ -45,9 +45,7 @@ class SendWebhookMessage implements ShouldQueue
|
|||||||
/**
|
/**
|
||||||
* Create a new job instance.
|
* Create a new job instance.
|
||||||
*/
|
*/
|
||||||
public function __construct(private WebhookMessage $message)
|
public function __construct(private WebhookMessage $message) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the job.
|
* Execute the job.
|
||||||
|
@@ -40,9 +40,7 @@ class BillWarningMail extends Mailable
|
|||||||
/**
|
/**
|
||||||
* ConfirmEmailChangeMail constructor.
|
* ConfirmEmailChangeMail constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(public Bill $bill, public string $field, public int $diff)
|
public function __construct(public Bill $bill, public string $field, public int $diff) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build the message.
|
* Build the message.
|
||||||
|
@@ -40,9 +40,7 @@ class ConfirmEmailChangeMail extends Mailable
|
|||||||
/**
|
/**
|
||||||
* ConfirmEmailChangeMail constructor.
|
* ConfirmEmailChangeMail constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(public string $newEmail, public string $oldEmail, public string $url)
|
public function __construct(public string $newEmail, public string $oldEmail, public string $url) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build the message.
|
* Build the message.
|
||||||
|
@@ -43,9 +43,7 @@ class NewIPAddressWarningMail extends Mailable
|
|||||||
/**
|
/**
|
||||||
* OAuthTokenCreatedMail constructor.
|
* OAuthTokenCreatedMail constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(public string $ipAddress)
|
public function __construct(public string $ipAddress) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build the message.
|
* Build the message.
|
||||||
|
@@ -40,9 +40,7 @@ class OAuthTokenCreatedMail extends Mailable
|
|||||||
/**
|
/**
|
||||||
* OAuthTokenCreatedMail constructor.
|
* OAuthTokenCreatedMail constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(public Client $client)
|
public function __construct(public Client $client) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build the message.
|
* Build the message.
|
||||||
|
@@ -40,9 +40,7 @@ class RegisteredUser extends Mailable
|
|||||||
/**
|
/**
|
||||||
* Create a new message instance.
|
* Create a new message instance.
|
||||||
*/
|
*/
|
||||||
public function __construct(public string $address)
|
public function __construct(public string $address) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build the message.
|
* Build the message.
|
||||||
|
@@ -45,9 +45,7 @@ class ReportNewJournalsMail extends Mailable
|
|||||||
/**
|
/**
|
||||||
* ConfirmEmailChangeMail constructor.
|
* ConfirmEmailChangeMail constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(public Collection $groups)
|
public function __construct(public Collection $groups) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build the message.
|
* Build the message.
|
||||||
|
@@ -39,9 +39,7 @@ class RequestedNewPassword extends Mailable
|
|||||||
/**
|
/**
|
||||||
* RequestedNewPassword constructor.
|
* RequestedNewPassword constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(public string $url)
|
public function __construct(public string $url) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build the message.
|
* Build the message.
|
||||||
|
@@ -38,9 +38,7 @@ class UndoEmailChangeMail extends Mailable
|
|||||||
/**
|
/**
|
||||||
* UndoEmailChangeMail constructor.
|
* UndoEmailChangeMail constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(public string $newEmail, public string $oldEmail, public string $url)
|
public function __construct(public string $newEmail, public string $oldEmail, public string $url) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build the message.
|
* Build the message.
|
||||||
|
@@ -41,9 +41,7 @@ class UnknownUserLoginAttempt extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private string $address)
|
public function __construct(private string $address) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -45,9 +45,7 @@ class UserInvitation extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private InvitedUser $invitee)
|
public function __construct(private InvitedUser $invitee) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -45,9 +45,7 @@ class UserRegistration extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private User $user)
|
public function __construct(private User $user) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -42,9 +42,7 @@ class VersionCheckResult extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private string $message)
|
public function __construct(private string $message) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -40,9 +40,7 @@ class DisabledMFANotification extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private User $user)
|
public function __construct(private User $user) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -40,9 +40,7 @@ class EnabledMFANotification extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private User $user)
|
public function __construct(private User $user) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -40,9 +40,7 @@ class MFABackupFewLeftNotification extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private User $user, private int $count)
|
public function __construct(private User $user, private int $count) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -40,9 +40,7 @@ class MFABackupNoLeftNotification extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private User $user)
|
public function __construct(private User $user) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -40,9 +40,7 @@ class MFAManyFailedAttemptsNotification extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private User $user, private int $count)
|
public function __construct(private User $user, private int $count) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function toArray(User $notifiable): array
|
public function toArray(User $notifiable): array
|
||||||
{
|
{
|
||||||
|
@@ -40,9 +40,7 @@ class MFAUsedBackupCodeNotification extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private User $user)
|
public function __construct(private User $user) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -40,9 +40,7 @@ class NewBackupCodesNotification extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private User $user)
|
public function __construct(private User $user) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -41,9 +41,7 @@ class UserFailedLoginAttempt extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private User $user)
|
public function __construct(private User $user) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function toArray(User $notifiable): array
|
public function toArray(User $notifiable): array
|
||||||
{
|
{
|
||||||
|
@@ -42,9 +42,7 @@ class BillReminder extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private Bill $bill, private string $field, private int $diff)
|
public function __construct(private Bill $bill, private string $field, private int $diff) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -36,9 +36,7 @@ class TransactionCreation extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private array $collection)
|
public function __construct(private array $collection) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -43,9 +43,7 @@ class UserNewPassword extends Notification
|
|||||||
{
|
{
|
||||||
use Queueable;
|
use Queueable;
|
||||||
|
|
||||||
public function __construct(private string $url)
|
public function __construct(private string $url) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -63,11 +63,11 @@ class FireflySessionProvider extends ServiceProvider
|
|||||||
{
|
{
|
||||||
$this->app->singleton(
|
$this->app->singleton(
|
||||||
'session.store',
|
'session.store',
|
||||||
static fn($app) =>
|
static fn ($app)
|
||||||
// First, we will create the session manager which is responsible for the
|
// First, we will create the session manager which is responsible for the
|
||||||
// creation of the various session drivers when they are needed by the
|
// creation of the various session drivers when they are needed by the
|
||||||
// application instance, and will resolve them on a lazy load basis.
|
// application instance, and will resolve them on a lazy load basis.
|
||||||
$app->make('session')->driver()
|
=> $app->make('session')->driver()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -79,9 +79,9 @@ class WebhookRepository implements WebhookRepositoryInterface, UserGroupInterfac
|
|||||||
->where('webhook_messages.errored', 0)
|
->where('webhook_messages.errored', 0)
|
||||||
->get(['webhook_messages.*'])
|
->get(['webhook_messages.*'])
|
||||||
->filter(
|
->filter(
|
||||||
static fn(WebhookMessage $message) =>
|
static fn (WebhookMessage $message)
|
||||||
// @phpstan-ignore-line
|
// @phpstan-ignore-line
|
||||||
$message->webhookAttempts()->count() <= 2
|
=> $message->webhookAttempts()->count() <= 2
|
||||||
)->splice(0, 3)
|
)->splice(0, 3)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
@@ -45,9 +45,7 @@ class BelongsUserGroup implements ValidationRule
|
|||||||
/**
|
/**
|
||||||
* Create a new rule instance.
|
* Create a new rule instance.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly UserGroup $userGroup)
|
public function __construct(private readonly UserGroup $userGroup) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function validate(string $attribute, mixed $value, \Closure $fail): void
|
public function validate(string $attribute, mixed $value, \Closure $fail): void
|
||||||
{
|
{
|
||||||
|
@@ -34,9 +34,7 @@ use Illuminate\Contracts\Validation\ValidationRule;
|
|||||||
*/
|
*/
|
||||||
class IsDefaultUserGroupName implements ValidationRule
|
class IsDefaultUserGroupName implements ValidationRule
|
||||||
{
|
{
|
||||||
public function __construct(private readonly UserGroup $userGroup)
|
public function __construct(private readonly UserGroup $userGroup) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -28,9 +28,7 @@ use Illuminate\Contracts\Validation\ValidationRule;
|
|||||||
|
|
||||||
class IsFilterValueIn implements ValidationRule
|
class IsFilterValueIn implements ValidationRule
|
||||||
{
|
{
|
||||||
public function __construct(private readonly string $key, private readonly array $values)
|
public function __construct(private readonly string $key, private readonly array $values) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -33,9 +33,7 @@ class IsValidZeroOrMoreAmount implements ValidationRule
|
|||||||
{
|
{
|
||||||
use ValidatesAmountsTrait;
|
use ValidatesAmountsTrait;
|
||||||
|
|
||||||
public function __construct(private bool $nullable = false)
|
public function __construct(private bool $nullable = false) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
|
@@ -78,7 +78,8 @@ class AccountBalanceCalculator
|
|||||||
->orderBy('transaction_journals.order', 'desc')
|
->orderBy('transaction_journals.order', 'desc')
|
||||||
->orderBy('transaction_journals.id', 'asc')
|
->orderBy('transaction_journals.id', 'asc')
|
||||||
->orderBy('transaction_journals.description', 'asc')
|
->orderBy('transaction_journals.description', 'asc')
|
||||||
->orderBy('transactions.amount', 'asc');
|
->orderBy('transactions.amount', 'asc')
|
||||||
|
;
|
||||||
if ($accounts->count() > 0) {
|
if ($accounts->count() > 0) {
|
||||||
$query->whereIn('transactions.account_id', $accounts->pluck('id')->toArray());
|
$query->whereIn('transactions.account_id', $accounts->pluck('id')->toArray());
|
||||||
}
|
}
|
||||||
@@ -137,7 +138,8 @@ class AccountBalanceCalculator
|
|||||||
->orderBy('transaction_journals.id', 'DESC')
|
->orderBy('transaction_journals.id', 'DESC')
|
||||||
->orderBy('transaction_journals.description', 'DESC')
|
->orderBy('transaction_journals.description', 'DESC')
|
||||||
->orderBy('transactions.amount', 'DESC')
|
->orderBy('transactions.amount', 'DESC')
|
||||||
->where('transactions.account_id', $accountId);
|
->where('transactions.account_id', $accountId)
|
||||||
|
;
|
||||||
$notBefore->startOfDay();
|
$notBefore->startOfDay();
|
||||||
$query->where('transaction_journals.date', '<', $notBefore);
|
$query->where('transaction_journals.date', '<', $notBefore);
|
||||||
|
|
||||||
|
@@ -39,9 +39,7 @@ class AddTag implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -40,9 +40,7 @@ class AppendDescription implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private RuleAction $action)
|
public function __construct(private RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -42,9 +42,7 @@ class AppendDescriptionToNotes implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private RuleAction $action)
|
public function __construct(private RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -40,9 +40,7 @@ class AppendNotes implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private RuleAction $action)
|
public function __construct(private RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -44,9 +44,7 @@ class AppendNotesToDescription implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private RuleAction $action)
|
public function __construct(private RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -37,9 +37,7 @@ class ClearBudget implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -37,9 +37,7 @@ class ClearCategory implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -38,9 +38,7 @@ class ClearNotes implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -46,9 +46,7 @@ class ConvertToDeposit implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -45,9 +45,7 @@ class ConvertToTransfer implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @SuppressWarnings("PHPMD.ExcessiveMethodLength")
|
* @SuppressWarnings("PHPMD.ExcessiveMethodLength")
|
||||||
|
@@ -46,9 +46,7 @@ class ConvertToWithdrawal implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -38,9 +38,7 @@ class DeleteTransaction implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -40,9 +40,7 @@ class LinkToBill implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -39,9 +39,7 @@ class MoveDescriptionToNotes implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -45,9 +45,7 @@ class MoveNotesToDescription implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private RuleAction $action)
|
public function __construct(private RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -37,9 +37,7 @@ class PrependDescription implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -37,9 +37,7 @@ class PrependNotes implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -37,9 +37,7 @@ class RemoveAllTags implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -38,9 +38,7 @@ class RemoveTag implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -38,9 +38,7 @@ class SetAmount implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private RuleAction $action)
|
public function __construct(private RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -39,9 +39,7 @@ class SetBudget implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -39,9 +39,7 @@ class SetCategory implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -39,9 +39,7 @@ class SetDescription implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private RuleAction $action)
|
public function __construct(private RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -44,9 +44,7 @@ class SetDestinationAccount implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -42,9 +42,7 @@ class SetDestinationToCashAccount implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -36,9 +36,7 @@ class SetNotes implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -44,9 +44,7 @@ class SetSourceAccount implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -42,9 +42,7 @@ class SetSourceToCashAccount implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -39,9 +39,7 @@ class SwitchAccounts implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -40,9 +40,7 @@ class UpdatePiggyBank implements ActionInterface
|
|||||||
/**
|
/**
|
||||||
* TriggerInterface constructor.
|
* TriggerInterface constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly RuleAction $action)
|
public function __construct(private readonly RuleAction $action) {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function actOnArray(array $journal): bool
|
public function actOnArray(array $journal): bool
|
||||||
{
|
{
|
||||||
|
@@ -78,7 +78,7 @@ return [
|
|||||||
'running_balance_column' => env('USE_RUNNING_BALANCE', false),
|
'running_balance_column' => env('USE_RUNNING_BALANCE', false),
|
||||||
// see cer.php for exchange rates feature flag.
|
// see cer.php for exchange rates feature flag.
|
||||||
],
|
],
|
||||||
'version' => 'develop/2025-04-28',
|
'version' => 'develop/2025-05-04',
|
||||||
'api_version' => '2.1.0', // field is no longer used.
|
'api_version' => '2.1.0', // field is no longer used.
|
||||||
'db_version' => 25,
|
'db_version' => 25,
|
||||||
|
|
||||||
|
@@ -21,6 +21,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
use Illuminate\Session\Store;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
/*
|
/*
|
||||||
@@ -114,8 +116,8 @@ return [
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
'extra' => [
|
'extra' => [
|
||||||
'Eloquent' => [\Illuminate\Database\Eloquent\Builder::class, \Illuminate\Database\Query\Builder::class],
|
'Eloquent' => [Builder::class, Illuminate\Database\Query\Builder::class],
|
||||||
'Session' => [\Illuminate\Session\Store::class],
|
'Session' => [Store::class],
|
||||||
],
|
],
|
||||||
|
|
||||||
'magic' => [
|
'magic' => [
|
||||||
|
1487
package-lock.json
generated
1487
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user