mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-15 08:35:00 +00:00
Compare commits
4 Commits
7c4ada458e
...
75aa2d99fd
Author | SHA1 | Date | |
---|---|---|---|
|
75aa2d99fd | ||
|
f52bc0e242 | ||
|
55cf924794 | ||
|
df3e4a6554 |
@@ -221,10 +221,26 @@ class TransactionJournalFactory
|
|||||||
];
|
];
|
||||||
Log::debug('Source info:', $sourceInfo);
|
Log::debug('Source info:', $sourceInfo);
|
||||||
Log::debug('Destination info:', $destInfo);
|
Log::debug('Destination info:', $destInfo);
|
||||||
$sourceAccount = $this->getAccount($type->type, 'source', $sourceInfo);
|
$destinationAccount = null;
|
||||||
$destinationAccount = $this->getAccount($type->type, 'destination', $destInfo, $sourceAccount);
|
$sourceAccount = null;
|
||||||
|
if (TransactionTypeEnum::DEPOSIT->value === $type->type) {
|
||||||
|
Log::debug('Transaction type is deposit, start with destination first.');
|
||||||
|
$destinationAccount = $this->getAccount($type->type, 'destination', $destInfo);
|
||||||
|
$sourceAccount = $this->getAccount($type->type, 'source', $sourceInfo, $destinationAccount);
|
||||||
|
}
|
||||||
|
if (TransactionTypeEnum::DEPOSIT->value !== $type->type) {
|
||||||
|
Log::debug('Transaction type is not deposit, start with source first.');
|
||||||
|
$sourceAccount = $this->getAccount($type->type, 'source', $sourceInfo);
|
||||||
|
$destinationAccount = $this->getAccount($type->type, 'destination', $destInfo, $sourceAccount);
|
||||||
|
}
|
||||||
|
|
||||||
Log::debug('Done with getAccount(2x)');
|
Log::debug('Done with getAccount(2x)');
|
||||||
|
|
||||||
|
// there is a safety catch here. If either account is NULL, they will be replaced with the cash account.
|
||||||
|
if (null === $destinationAccount) {
|
||||||
|
Log::warning('Destination account is NULL, will replace with cash account.');
|
||||||
|
$destinationAccount = $this->accountRepository->getCashAccount();
|
||||||
|
}
|
||||||
|
|
||||||
// this is the moment for a reconciliation sanity check (again).
|
// this is the moment for a reconciliation sanity check (again).
|
||||||
if (TransactionTypeEnum::RECONCILIATION->value === $type->type) {
|
if (TransactionTypeEnum::RECONCILIATION->value === $type->type) {
|
||||||
|
@@ -88,6 +88,7 @@ trait JournalServiceTrait
|
|||||||
|
|
||||||
// the account that Firefly III creates must be "creatable", aka select the one we can create from the list just in case
|
// the account that Firefly III creates must be "creatable", aka select the one we can create from the list just in case
|
||||||
$creatableType = $this->getCreatableType($expectedTypes[$transactionType]);
|
$creatableType = $this->getCreatableType($expectedTypes[$transactionType]);
|
||||||
|
Log::debug(sprintf('Creatable type is "%s"', $creatableType), $expectedTypes[$transactionType]);
|
||||||
|
|
||||||
// if the result is NULL but the ID is set, an account could exist of the wrong type.
|
// if the result is NULL but the ID is set, an account could exist of the wrong type.
|
||||||
// that data can be used to create a new account of the right type.
|
// that data can be used to create a new account of the right type.
|
||||||
@@ -227,9 +228,11 @@ trait JournalServiceTrait
|
|||||||
}
|
}
|
||||||
|
|
||||||
// find by preferred type.
|
// find by preferred type.
|
||||||
|
Log::debug('Find by preferred type.');
|
||||||
$result = $this->accountRepository->findByName($data['name'], [$types[0]]);
|
$result = $this->accountRepository->findByName($data['name'], [$types[0]]);
|
||||||
|
|
||||||
// or any expected type.
|
// or any expected type.
|
||||||
|
Log::debug('Find by any expected type.');
|
||||||
$result ??= $this->accountRepository->findByName($data['name'], $types);
|
$result ??= $this->accountRepository->findByName($data['name'], $types);
|
||||||
|
|
||||||
if (null !== $result) {
|
if (null !== $result) {
|
||||||
|
12
composer.lock
generated
12
composer.lock
generated
@@ -11920,16 +11920,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "rector/rector",
|
"name": "rector/rector",
|
||||||
"version": "2.2.2",
|
"version": "2.2.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/rectorphp/rector.git",
|
"url": "https://github.com/rectorphp/rector.git",
|
||||||
"reference": "5b353f7457b9a0c63fc91ef340f5d119a40991ed"
|
"reference": "d27f976a332a87b5d03553c2e6f04adbe5da034f"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/rectorphp/rector/zipball/5b353f7457b9a0c63fc91ef340f5d119a40991ed",
|
"url": "https://api.github.com/repos/rectorphp/rector/zipball/d27f976a332a87b5d03553c2e6f04adbe5da034f",
|
||||||
"reference": "5b353f7457b9a0c63fc91ef340f5d119a40991ed",
|
"reference": "d27f976a332a87b5d03553c2e6f04adbe5da034f",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -11968,7 +11968,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/rectorphp/rector/issues",
|
"issues": "https://github.com/rectorphp/rector/issues",
|
||||||
"source": "https://github.com/rectorphp/rector/tree/2.2.2"
|
"source": "https://github.com/rectorphp/rector/tree/2.2.3"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -11976,7 +11976,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-10-09T19:50:20+00:00"
|
"time": "2025-10-11T21:50:23+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/cli-parser",
|
"name": "sebastian/cli-parser",
|
||||||
|
@@ -78,8 +78,8 @@ 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-10-11',
|
'version' => 'develop/2025-10-12',
|
||||||
'build_time' => 1760188898,
|
'build_time' => 1760277899,
|
||||||
'api_version' => '2.1.0', // field is no longer used.
|
'api_version' => '2.1.0', // field is no longer used.
|
||||||
'db_version' => 28, // field is no longer used.
|
'db_version' => 28, // field is no longer used.
|
||||||
|
|
||||||
|
12
package-lock.json
generated
12
package-lock.json
generated
@@ -3173,9 +3173,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "24.7.1",
|
"version": "24.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.2.tgz",
|
||||||
"integrity": "sha512-CmyhGZanP88uuC5GpWU9q+fI61j2SkhO3UGMUdfYRE6Bcy0ccyzn1Rqj9YAB/ZY4kOXmNf0ocah5GtphmLMP6Q==",
|
"integrity": "sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -4521,9 +4521,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/caniuse-lite": {
|
"node_modules/caniuse-lite": {
|
||||||
"version": "1.0.30001749",
|
"version": "1.0.30001750",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001749.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001750.tgz",
|
||||||
"integrity": "sha512-0rw2fJOmLfnzCRbkm8EyHL8SvI2Apu5UbnQuTsJ0ClgrH8hcwFooJ1s5R0EP8o8aVrFu8++ae29Kt9/gZAZp/Q==",
|
"integrity": "sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@@ -28,7 +28,6 @@ namespace Tests\integration\Api\Models\Account;
|
|||||||
use FireflyIII\Enums\AccountTypeEnum;
|
use FireflyIII\Enums\AccountTypeEnum;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Override;
|
|
||||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||||
use Tests\integration\TestCase;
|
use Tests\integration\TestCase;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user