Merge branch 'release/v6.1.0'

This commit is contained in:
James Cole
2023-12-16 19:43:31 +01:00
33 changed files with 263 additions and 209 deletions

View File

@@ -226,16 +226,16 @@
},
{
"name": "friendsofphp/php-cs-fixer",
"version": "v3.41.0",
"version": "v3.41.1",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
"reference": "7d8d18e19095a939b8a3b8046f57108feaad6134"
"reference": "8b6ae8dcbaf23f09680643ab832a4a3a260265f6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/7d8d18e19095a939b8a3b8046f57108feaad6134",
"reference": "7d8d18e19095a939b8a3b8046f57108feaad6134",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/8b6ae8dcbaf23f09680643ab832a4a3a260265f6",
"reference": "8b6ae8dcbaf23f09680643ab832a4a3a260265f6",
"shasum": ""
},
"require": {
@@ -305,7 +305,7 @@
],
"support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.41.0"
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.41.1"
},
"funding": [
{
@@ -313,7 +313,7 @@
"type": "github"
}
],
"time": "2023-12-08T22:54:33+00:00"
"time": "2023-12-10T19:59:27+00:00"
},
{
"name": "psr/container",

View File

@@ -146,16 +146,16 @@
},
{
"name": "pdepend/pdepend",
"version": "2.16.0",
"version": "2.16.1",
"source": {
"type": "git",
"url": "https://github.com/pdepend/pdepend.git",
"reference": "8dfc0c46529e2073fa97986552f80646eedac562"
"reference": "66ceb05eaa8bf358574143c974b04463911bc700"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/pdepend/pdepend/zipball/8dfc0c46529e2073fa97986552f80646eedac562",
"reference": "8dfc0c46529e2073fa97986552f80646eedac562",
"url": "https://api.github.com/repos/pdepend/pdepend/zipball/66ceb05eaa8bf358574143c974b04463911bc700",
"reference": "66ceb05eaa8bf358574143c974b04463911bc700",
"shasum": ""
},
"require": {
@@ -168,7 +168,6 @@
"require-dev": {
"easy-doc/easy-doc": "0.0.0|^1.2.3",
"gregwar/rst": "^1.0",
"phpunit/phpunit": "^4.8.36|^5.7.27",
"squizlabs/php_codesniffer": "^2.0.0"
},
"bin": [
@@ -198,7 +197,7 @@
],
"support": {
"issues": "https://github.com/pdepend/pdepend/issues",
"source": "https://github.com/pdepend/pdepend/tree/2.16.0"
"source": "https://github.com/pdepend/pdepend/tree/2.16.1"
},
"funding": [
{
@@ -206,26 +205,26 @@
"type": "tidelift"
}
],
"time": "2023-11-29T08:52:35+00:00"
"time": "2023-12-10T18:38:19+00:00"
},
{
"name": "phpmd/phpmd",
"version": "2.14.1",
"version": "2.15.0",
"source": {
"type": "git",
"url": "https://github.com/phpmd/phpmd.git",
"reference": "442fc2c34edcd5198b442d8647c7f0aec3afabe8"
"reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpmd/phpmd/zipball/442fc2c34edcd5198b442d8647c7f0aec3afabe8",
"reference": "442fc2c34edcd5198b442d8647c7f0aec3afabe8",
"url": "https://api.github.com/repos/phpmd/phpmd/zipball/74a1f56e33afad4128b886e334093e98e1b5e7c0",
"reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0",
"shasum": ""
},
"require": {
"composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0",
"ext-xml": "*",
"pdepend/pdepend": "^2.15.1",
"pdepend/pdepend": "^2.16.1",
"php": ">=5.3.9"
},
"require-dev": {
@@ -234,7 +233,6 @@
"ext-simplexml": "*",
"gregwar/rst": "^1.0",
"mikey179/vfsstream": "^1.6.8",
"phpunit/phpunit": "^4.8.36 || ^5.7.27",
"squizlabs/php_codesniffer": "^2.9.2 || ^3.7.2"
},
"bin": [
@@ -282,7 +280,7 @@
"support": {
"irc": "irc://irc.freenode.org/phpmd",
"issues": "https://github.com/phpmd/phpmd/issues",
"source": "https://github.com/phpmd/phpmd/tree/2.14.1"
"source": "https://github.com/phpmd/phpmd/tree/2.15.0"
},
"funding": [
{
@@ -290,7 +288,7 @@
"type": "tidelift"
}
],
"time": "2023-09-28T13:07:44+00:00"
"time": "2023-12-11T08:22:20+00:00"
},
{
"name": "psr/container",

View File

@@ -26,11 +26,15 @@ namespace FireflyIII\Console\Commands\Correction;
use FireflyIII\Console\Commands\ShowsFriendlyMessages;
use FireflyIII\Models\AccountMeta;
use FireflyIII\Models\BudgetLimit;
use FireflyIII\Models\GroupMembership;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\UserGroup;
use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepositoryInterface;
use Illuminate\Console\Command;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
use Symfony\Component\Console\Command\Command as CommandAlias;
/**
* Class EnableCurrencies
@@ -49,35 +53,68 @@ class EnableCurrencies extends Command
*/
public function handle(): int
{
$found = [];
$userGroups = UserGroup::get();
foreach ($userGroups as $userGroup) {
$this->correctCurrencies($userGroup);
}
return CommandAlias::SUCCESS;
}
/**
* @param UserGroup $userGroup
*
* @return void
*/
private function correctCurrencies(UserGroup $userGroup): void
{
/** @var CurrencyRepositoryInterface $repos */
$repos = app(CurrencyRepositoryInterface::class);
// first check if the user has any default currency (not necessarily the case, so can be forced).
$defaultCurrency = app('amount')->getDefaultCurrencyByUserGroup($userGroup);
Log::debug(sprintf('Now correcting currencies for user group #%d', $userGroup->id));
$found = [$defaultCurrency->id];
// get all meta entries
/** @var Collection $meta */
$meta = AccountMeta::where('name', 'currency_id')->groupBy('data')->get(['data']);
$meta = AccountMeta
::leftJoin('accounts', 'accounts.id', '=', 'account_meta.account_id')
->where('accounts.user_group_id', $userGroup->id)
->where('account_meta.name', 'currency_id')->groupBy('data')->get(['data']);
foreach ($meta as $entry) {
$found[] = (int)$entry->data;
}
// get all from journals:
$journals = TransactionJournal::groupBy('transaction_currency_id')->get(['transaction_currency_id']);
$journals = TransactionJournal
::where('user_group_id', $userGroup->id)
->groupBy('transaction_currency_id')->get(['transaction_currency_id']);
foreach ($journals as $entry) {
$found[] = (int)$entry->transaction_currency_id;
}
// get all from transactions
$transactions = Transaction::groupBy('transaction_currency_id', 'foreign_currency_id')->get(['transaction_currency_id', 'foreign_currency_id']);
$transactions = Transaction
::leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
->where('transaction_journals.user_group_id', $userGroup->id)
->groupBy('transactions.transaction_currency_id', 'transactions.foreign_currency_id')
->get(['transactions.transaction_currency_id', 'transactions.foreign_currency_id']);
foreach ($transactions as $entry) {
$found[] = (int)$entry->transaction_currency_id;
$found[] = (int)$entry->foreign_currency_id;
}
// get all from budget limits
$limits = BudgetLimit::groupBy('transaction_currency_id')->get(['transaction_currency_id']);
$limits = BudgetLimit
::leftJoin('budgets', 'budgets.id', '=', 'budget_limits.budget_id')
->groupBy('transaction_currency_id')
->get(['budget_limits.transaction_currency_id']);
foreach ($limits as $entry) {
$found[] = $entry->transaction_currency_id;
}
$found = array_values(array_unique($found));
$found = array_values(
$found = array_values(array_unique($found));
$found = array_values(
array_filter(
$found,
static function (int $currencyId) {
@@ -85,15 +122,24 @@ class EnableCurrencies extends Command
}
)
);
$disabled = TransactionCurrency::whereIn('id', $found)->where('enabled', false)->count();
if ($disabled > 0) {
$this->friendlyInfo(sprintf('%d currencies were (was) disabled while in use by transactions. This has been corrected.', $disabled));
}
if (0 === $disabled) {
$this->friendlyPositive('All currencies are correctly enabled or disabled.');
}
TransactionCurrency::whereIn('id', $found)->update(['enabled' => true]);
return 0;
$valid = new Collection();
/** @var int $currencyId */
foreach ($found as $currencyId) {
$currency = $repos->find($currencyId);
if (null !== $currency) {
$valid->push($currency);
}
}
$ids = $valid->pluck('id')->toArray();
Log::debug(sprintf('Found currencies for user group #%d: %s', $userGroup->id, implode(', ', $ids)));
$userGroup->currencies()->sync($ids);
/** @var GroupMembership $membership */
foreach ($userGroup->groupMemberships()->get() as $membership) {
// make sure no individual different preferences.
$membership->user->currencies()->sync([]);
}
}
}

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\Budget;
use FireflyIII\Models\BudgetLimit;
/**
* Class BudgetObserver
@@ -41,11 +42,18 @@ class BudgetObserver
foreach ($budget->attachments()->get() as $attachment) {
$attachment->delete();
}
$budget->budgetlimits()->delete();
$budgetLimits = $budget->budgetlimits()->get();
/** @var BudgetLimit $budgetLimit */
foreach($budgetLimits as $budgetLimit) {
// this loop exists so several events are fired.
$budgetLimit->delete();
}
$budget->notes()->delete();
$budget->autoBudgets()->delete();
// recalculate available budgets.
}
}

View File

@@ -85,8 +85,8 @@ class IndexController extends Controller
// order so default is on top:
$collection = $collection->sortBy(
static function (TransactionCurrency $currency) {
$default = true === $currency->userDefault ? 0 : 1;
$enabled = true === $currency->userEnabled ? 0 : 1;
$default = true === $currency->userGroupDefault ? 0 : 1;
$enabled = true === $currency->userGroupEnabled ? 0 : 1;
return sprintf('%s-%s-%s', $default, $enabled, $currency->code);
}
);

View File

@@ -44,8 +44,8 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
* @property Carbon|null $updated_at
* @property Carbon|null $deleted_at
* @property bool $enabled
* @property bool|null $userDefault
* @property bool|null $userEnabled
* @property bool|null $userGroupDefault
* @property bool|null $userGroupEnabled
* @property string $code
* @property string $name
* @property string $symbol
@@ -82,8 +82,8 @@ class TransactionCurrency extends Model
use ReturnsIntegerIdTrait;
use SoftDeletes;
public ?bool $userDefault;
public ?bool $userEnabled;
public ?bool $userGroupDefault;
public ?bool $userGroupEnabled;
protected $casts
= [
'created_at' => 'datetime',
@@ -123,10 +123,10 @@ class TransactionCurrency extends Model
*/
public function refreshForUser(User $user)
{
$current = $user->userGroup->currencies()->where('transaction_currencies.id', $this->id)->first();
$default = app('amount')->getDefaultCurrencyByUserGroup($user->userGroup);
$this->userDefault = $default->id === $this->id;
$this->userEnabled = null !== $current;
$current = $user->userGroup->currencies()->where('transaction_currencies.id', $this->id)->first();
$default = app('amount')->getDefaultCurrencyByUserGroup($user->userGroup);
$this->userGroupDefault = $default->id === $this->id;
$this->userGroupEnabled = null !== $current;
}
/**

View File

@@ -186,8 +186,8 @@ class CurrencyRepository implements CurrencyRepositoryInterface
$isDefault = $local->contains(static function (TransactionCurrency $entry) use ($current) {
return 1 === (int)$entry->pivot->group_default && $entry->id === $current->id;
});
$current->userEnabled = $hasId;
$current->userDefault = $isDefault;
$current->userGroupEnabled = $hasId;
$current->userGroupDefault = $isDefault;
return $current;
});
}
@@ -199,8 +199,8 @@ class CurrencyRepository implements CurrencyRepositoryInterface
{
$all = $this->userGroup->currencies()->orderBy('code', 'ASC')->withPivot(['group_default'])->get();
$all->map(static function (TransactionCurrency $current) {
$current->userEnabled = true;
$current->userDefault = 1 === (int)$current->pivot->group_default;
$current->userGroupEnabled = true;
$current->userGroupDefault = 1 === (int)$current->pivot->group_default;
return $current;
});
return $all;

View File

@@ -57,8 +57,8 @@ class CurrencyUpdateService
if (array_key_exists('decimal_places', $data) && is_int($data['decimal_places'])) {
$currency->decimal_places = $data['decimal_places'];
}
$currency->userEnabled = null;
$currency->userDefault = null;
$currency->userGroupEnabled = null;
$currency->userGroupDefault = null;
$currency->save();
return $currency;

View File

@@ -43,8 +43,8 @@ class CurrencyTransformer extends AbstractTransformer
'id' => $currency->id,
'created_at' => $currency->created_at->toAtomString(),
'updated_at' => $currency->updated_at->toAtomString(),
'default' => $currency->userDefault,
'enabled' => $currency->userEnabled,
'default' => $currency->userGroupDefault,
'enabled' => $currency->userGroupEnabled,
'name' => $currency->name,
'code' => $currency->code,
'symbol' => $currency->symbol,

View File

@@ -49,8 +49,8 @@ class CurrencyTransformer extends AbstractTransformer
'id' => $currency->id,
'created_at' => $currency->created_at->toAtomString(),
'updated_at' => $currency->updated_at->toAtomString(),
'default' => $currency->userDefault,
'enabled' => $currency->userEnabled,
'default' => $currency->userGroupDefault,
'enabled' => $currency->userGroupEnabled,
'name' => $currency->name,
'code' => $currency->code,
'symbol' => $currency->symbol,

View File

@@ -3,9 +3,9 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## 6.1.0 - 2023-12-xx
## 6.1.0 - 2023-12-17
> This release required **PHP 8.3.0** and will not work on earlier releases of PHP
> ⚠️⚠️ This release required **PHP 8.3.0** and will not work on earlier releases of PHP ⚠️⚠️
### Added
@@ -15,13 +15,14 @@ This project adheres to [Semantic Versioning](http://semver.org/).
### Changed
- Requires PHP8.3
- ⚠️⚠️ Requires PHP8.3 ⚠️⚠️
- [Issue 8148](https://github.com/firefly-iii/firefly-iii/issues/8148) Slovenian language updates
- [Issue 8023](https://github.com/firefly-iii/firefly-iii/issues/8023) Top bar is now fixed in place
- Completely rewrote the documentation.
### Deprecated
- Support for PHP 8.2
- ⚠️⚠️ Removed support for PHP 8.2 ⚠️⚠️
### Fixed
@@ -31,6 +32,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- [Issue 8207](https://github.com/firefly-iii/firefly-iii/issues/8207) Broken links, thanks @Maxco10!
- [Issue 8138](https://github.com/firefly-iii/firefly-iii/issues/8138) Reconciled transactions can't be "store(d) as new"
- [Issue 7716](https://github.com/firefly-iii/firefly-iii/issues/7716) Removed bar in budget overview
- [Issue 8251](https://github.com/firefly-iii/firefly-iii/issues/8251) Removing a budget would not remove available budget
### API
@@ -329,7 +331,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- 🇰🇷 Korean translations!
- A new "adjusted" auto-budget type that will correct itself after
spending. [Read more](https://docs.firefly-iii.org/firefly-iii/financial-concepts/organizing/#adjusted-and-correct-for-overspending)
spending. [Read more](https://docs.firefly-iii.org/xfirefly-iii/financial-concepts/organizing/#adjusted-and-correct-for-overspending)
- [Issue 6631](https://github.com/firefly-iii/firefly-iii/issues/6631) Can now link withdrawals and deposits to piggy
banks, thanks @ChrisWin22!
@@ -1119,7 +1121,7 @@ https://api-docs.firefly-iii.org/.
- ⚠️ This is the last release that supports PHP 8.0
- 👍 Want to try the new v3 layout? At your own risk, browse to `/v3/`.
Please refer to the [documentation](https://docs.firefly-iii.org/firefly-iii/) and support channels if you run into
Please refer to the [documentation](https://docs.firefly-iii.org/xfirefly-iii/) and support channels if you run into
problems:
- [Gitter.im](https://gitter.im/firefly-iii/firefly-iii)
@@ -1197,6 +1199,6 @@ problems:
# Full change log
Can be found here: https://docs.firefly-iii.org/firefly-iii/about-firefly-iii/changelog/
Can be found here: https://docs.firefly-iii.org/references/firefly-iii/changelog/

104
composer.lock generated
View File

@@ -117,16 +117,16 @@
},
{
"name": "carbonphp/carbon-doctrine-types",
"version": "2.0.0",
"version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
"reference": "67a77972b9f398ae7068dabacc39c08aeee170d5"
"reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/67a77972b9f398ae7068dabacc39c08aeee170d5",
"reference": "67a77972b9f398ae7068dabacc39c08aeee170d5",
"url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb",
"reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb",
"shasum": ""
},
"require": {
@@ -166,7 +166,7 @@
],
"support": {
"issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
"source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.0.0"
"source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0"
},
"funding": [
{
@@ -182,7 +182,7 @@
"type": "tidelift"
}
],
"time": "2023-10-01T14:29:01+00:00"
"time": "2023-12-11T17:09:12+00:00"
},
{
"name": "dasprid/enum",
@@ -2014,16 +2014,16 @@
},
{
"name": "laravel/framework",
"version": "v10.35.0",
"version": "v10.37.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "91ec2d92d2f6007e9084fe06438b99c91845da69"
"reference": "996375dd61f8c6e4ac262b57ed485655d71fcbdc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/91ec2d92d2f6007e9084fe06438b99c91845da69",
"reference": "91ec2d92d2f6007e9084fe06438b99c91845da69",
"url": "https://api.github.com/repos/laravel/framework/zipball/996375dd61f8c6e4ac262b57ed485655d71fcbdc",
"reference": "996375dd61f8c6e4ac262b57ed485655d71fcbdc",
"shasum": ""
},
"require": {
@@ -2212,7 +2212,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2023-12-05T14:50:33+00:00"
"time": "2023-12-13T20:10:58+00:00"
},
{
"name": "laravel/passport",
@@ -2929,16 +2929,16 @@
},
{
"name": "league/csv",
"version": "9.12.0",
"version": "9.13.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/csv.git",
"reference": "c1dc31e23eb3cd0f7b537ee1a669d5f58d5cfe21"
"reference": "3690cc71bfe8dc3b6daeef356939fac95348f0a8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/csv/zipball/c1dc31e23eb3cd0f7b537ee1a669d5f58d5cfe21",
"reference": "c1dc31e23eb3cd0f7b537ee1a669d5f58d5cfe21",
"url": "https://api.github.com/repos/thephpleague/csv/zipball/3690cc71bfe8dc3b6daeef356939fac95348f0a8",
"reference": "3690cc71bfe8dc3b6daeef356939fac95348f0a8",
"shasum": ""
},
"require": {
@@ -2953,11 +2953,11 @@
"ext-xdebug": "*",
"friendsofphp/php-cs-fixer": "^v3.22.0",
"phpbench/phpbench": "^1.2.15",
"phpstan/phpstan": "^1.10.46",
"phpstan/phpstan": "^1.10.50",
"phpstan/phpstan-deprecation-rules": "^1.1.4",
"phpstan/phpstan-phpunit": "^1.3.15",
"phpstan/phpstan-strict-rules": "^1.5.2",
"phpunit/phpunit": "^10.4.2",
"phpunit/phpunit": "^10.5.3",
"symfony/var-dumper": "^6.4.0"
},
"suggest": {
@@ -3014,7 +3014,7 @@
"type": "github"
}
],
"time": "2023-12-01T17:54:07+00:00"
"time": "2023-12-16T11:03:20+00:00"
},
{
"name": "league/event",
@@ -5879,16 +5879,16 @@
},
{
"name": "spatie/laravel-ignition",
"version": "2.3.1",
"version": "2.3.2",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-ignition.git",
"reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8"
"reference": "4800661a195e15783477d99f7f8f669a49793996"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/bf21cd15aa47fa4ec5d73bbc932005c70261efc8",
"reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8",
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/4800661a195e15783477d99f7f8f669a49793996",
"reference": "4800661a195e15783477d99f7f8f669a49793996",
"shasum": ""
},
"require": {
@@ -5967,7 +5967,7 @@
"type": "github"
}
],
"time": "2023-10-09T12:55:26+00:00"
"time": "2023-12-15T13:44:49+00:00"
},
{
"name": "spatie/period",
@@ -9739,16 +9739,16 @@
},
{
"name": "nikic/php-parser",
"version": "v4.17.1",
"version": "v4.18.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d"
"reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
"reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999",
"reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999",
"shasum": ""
},
"require": {
@@ -9789,9 +9789,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1"
"source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0"
},
"time": "2023-08-13T19:53:39+00:00"
"time": "2023-12-10T21:03:43+00:00"
},
{
"name": "phar-io/manifest",
@@ -10148,16 +10148,16 @@
},
{
"name": "phpstan/phpdoc-parser",
"version": "1.24.4",
"version": "1.24.5",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
"reference": "6bd0c26f3786cd9b7c359675cb789e35a8e07496"
"reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/6bd0c26f3786cd9b7c359675cb789e35a8e07496",
"reference": "6bd0c26f3786cd9b7c359675cb789e35a8e07496",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fedf211ff14ec8381c9bf5714e33a7a552dd1acc",
"reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc",
"shasum": ""
},
"require": {
@@ -10189,22 +10189,22 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.4"
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.5"
},
"time": "2023-11-26T18:29:22+00:00"
"time": "2023-12-16T09:33:33+00:00"
},
{
"name": "phpstan/phpstan",
"version": "1.10.48",
"version": "1.10.50",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
"reference": "087ed4b5f4a7a6e8f3bbdfbfe98ce5c181380bc6"
"reference": "06a98513ac72c03e8366b5a0cb00750b487032e4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/087ed4b5f4a7a6e8f3bbdfbfe98ce5c181380bc6",
"reference": "087ed4b5f4a7a6e8f3bbdfbfe98ce5c181380bc6",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/06a98513ac72c03e8366b5a0cb00750b487032e4",
"reference": "06a98513ac72c03e8366b5a0cb00750b487032e4",
"shasum": ""
},
"require": {
@@ -10253,7 +10253,7 @@
"type": "tidelift"
}
],
"time": "2023-12-08T14:34:28+00:00"
"time": "2023-12-13T10:59:42+00:00"
},
{
"name": "phpstan/phpstan-deprecation-rules",
@@ -10354,16 +10354,16 @@
},
{
"name": "phpunit/php-code-coverage",
"version": "10.1.9",
"version": "10.1.10",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "a56a9ab2f680246adcf3db43f38ddf1765774735"
"reference": "599109c8ca6bae97b23482d557d2874c25a65e59"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/a56a9ab2f680246adcf3db43f38ddf1765774735",
"reference": "a56a9ab2f680246adcf3db43f38ddf1765774735",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/599109c8ca6bae97b23482d557d2874c25a65e59",
"reference": "599109c8ca6bae97b23482d557d2874c25a65e59",
"shasum": ""
},
"require": {
@@ -10420,7 +10420,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.9"
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.10"
},
"funding": [
{
@@ -10428,7 +10428,7 @@
"type": "github"
}
],
"time": "2023-11-23T12:23:20+00:00"
"time": "2023-12-11T06:28:43+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -10675,16 +10675,16 @@
},
{
"name": "phpunit/phpunit",
"version": "10.5.2",
"version": "10.5.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "5aedff46afba98dddecaa12349ec044d9103d4fe"
"reference": "6fce887c71076a73f32fd3e0774a6833fc5c7f19"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5aedff46afba98dddecaa12349ec044d9103d4fe",
"reference": "5aedff46afba98dddecaa12349ec044d9103d4fe",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6fce887c71076a73f32fd3e0774a6833fc5c7f19",
"reference": "6fce887c71076a73f32fd3e0774a6833fc5c7f19",
"shasum": ""
},
"require": {
@@ -10756,7 +10756,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.2"
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.3"
},
"funding": [
{
@@ -10772,7 +10772,7 @@
"type": "tidelift"
}
],
"time": "2023-12-05T14:54:33+00:00"
"time": "2023-12-13T07:25:23+00:00"
},
{
"name": "sebastian/cli-parser",

View File

@@ -114,7 +114,7 @@ return [
'handle_debts' => true,
// see cer.php for exchange rates feature flag.
],
'version' => '6.1.0-alpha.1',
'version' => '6.1.0',
'api_version' => '2.0.12',
'db_version' => 22,

View File

@@ -48,7 +48,7 @@ echo '<!DOCTYPE HTML>
Leaving your web server configured like this is a <span style="color:red;">huge</span> security risk.
</p>
<p>
Please <a href="https://docs.firefly-iii.org/firefly-iii/faq/self_hosted/#i-have-to-visit-firefly-iii-through-public-and-it-gives-me-a-warning">read more on the Github help pages</a>.
Please <a href="https://docs.firefly-iii.org/references/faq/install/#i-have-to-visit-firefly-iii-through-public-and-it-gives-me-a-warning">read more on the Github help pages</a>.
</p>
</body>
</html>

12
package-lock.json generated
View File

@@ -26,9 +26,9 @@
}
},
"node_modules/@babel/runtime": {
"version": "7.23.5",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz",
"integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==",
"version": "7.23.6",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz",
"integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -911,9 +911,9 @@
}
},
"node_modules/regenerator-runtime": {
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
"integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
"version": "0.14.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
"node_modules/rollup": {
"version": "3.29.4",

View File

@@ -14,7 +14,7 @@ Hash: SHA256
Contact: mailto:james@firefly-iii.org
Expires: 2024-12-31T23:00:00.000Z
Preferred-Languages: en, nl
Policy: https://docs.firefly-iii.org/firefly-iii/support/
Policy: https://docs.firefly-iii.org/explanation/support/
#
# Thank you for your time!
@@ -24,18 +24,18 @@ Policy: https://docs.firefly-iii.org/firefly-iii/support/
#
-----BEGIN PGP SIGNATURE-----
iQJKBAABCAA0FiEEAvQEbEsjbgYJVxYStJoyS36tbYAFAmUGj9gWHGphbWVzQGZp
cmVmbHktaWlpLm9yZwAKCRC0mjJLfq1tgA0WD/9cHNSphMqPx05Tkak5kNKsmyYW
YXZ4kcw5haLwcxk4ipudCzYLWejcXI7z/WVdYQrZVMw6Kaz6Z/ZgJQk6mQXTeb3L
WcmxmiKGQk5twnmIy7vpoBgt2QH70lhP/x+FH0w1j22RM5b66gj/BZBYowtmUI1L
HIwsTvtjBGZA8aJSPmtRGULJ45/GDZYi/Hjx49hPPLjIE8VP53Wa7L284i4R+gG9
IEle9kqb2OUUp0+CmIXSKAvtFpDHt9Yc0AE6PU0WpSg3LI6NqyUiM2CdKvyKvtIV
Y15LoJTkTuORzudP1HCImfcQUdJgrMe1DGz2siHqxTJVDUwzEVc6mOkGnefhIpFy
jN0ik6pCSkLNsSYImQZq9H6d9yiPPYSR3JFjTDtEVnANjlT08ywPdsyWgvNaHHh1
eMRy9+X24g9cQ7MqU77Y8p2/v3IudWbEsi+M1FUm4W0TE/MsNv9xydRvB6M41eVc
raYnk8cVmEzpjsyxi9lAqpk4+qYD04JecYCPxkX6XxkFxzswS20LR4VVOamfKgv1
yIzg1sCMArHeq0OC1k6lskB8DTXvw5+838iw4h8I0T6MAqXj4RKv8C45w7+uSlG9
oXhpUweiiRzyZPWbWXU7jC9BvDyqfuxq9jn4LFDzAOV0raLz6QThiUcR3f7h2Rvo
KiDjx3KprWU+swTosw==
=1jlJ
iQJKBAABCAA0FiEEAvQEbEsjbgYJVxYStJoyS36tbYAFAmV37E8WHGphbWVzQGZp
cmVmbHktaWlpLm9yZwAKCRC0mjJLfq1tgFtzD/4lrhVkCi4mRAroSMbz7ZHbLwLi
RAgiaFmnDI48LqkX/jJJTWSy8czl9gkKO9uVJzXwmjVzFg5vJTkRfjvNlTyOpL/l
gB+REFYGadp8ulMCZcBlFgLbyAWtvHKV3UW//G8fzrASAEe+2eiuPQooLmwaKows
X+ty2zZEH282uAiR36otlGR2UpUcYAy0XcAuE7hIxfHA8bsh5uqzAkm74OsynC8E
6vBEi1QzarE+cfoZqBtriWELyownM9Z5a/cIzm47RfBkFUKXaQBL3pYN1kX2TAi5
1//0WLrDiotkIwPmdYiYFmVmaJDjcapcAkDoD/wAv8BxxjPZ900RCTF4jzMTxIu0
t6umbm3SaA/vaINv8ilmMMj6ep49GE8EssHvRBUaGnv7JjHe+XCZrOsk3a5+Z4zQ
Sd9nuryLCX/G3Bz63rU/V1evuCT7ouNEWKUlwtYCqU+6BfumTdbJCPEH/4szxoi2
cPvIw5Y5sA9ue5Wm4RIX7G0DyIRJJf3CB0PJWuujzF548hn60MPBLDw7xSraTQNX
v1GRwTHIOo6e1U47naz9U3Dv3pK2J5aibL4K6pjyZG1bTqfE/0uY0hEXVFuNqAxT
B6LSAcrP4j+bU4oZlWRx99yHv1ComWZzi/JvRKp9Y0aTcWbAeT+oz3PFw8K5lff/
eweJG/H9BuHgDXdYQg==
=Z9Gk
-----END PGP SIGNATURE-----

View File

@@ -1,17 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJKBAABCAA0FiEEAvQEbEsjbgYJVxYStJoyS36tbYAFAmUGj9gWHGphbWVzQGZp
cmVmbHktaWlpLm9yZwAKCRC0mjJLfq1tgA0WD/9cHNSphMqPx05Tkak5kNKsmyYW
YXZ4kcw5haLwcxk4ipudCzYLWejcXI7z/WVdYQrZVMw6Kaz6Z/ZgJQk6mQXTeb3L
WcmxmiKGQk5twnmIy7vpoBgt2QH70lhP/x+FH0w1j22RM5b66gj/BZBYowtmUI1L
HIwsTvtjBGZA8aJSPmtRGULJ45/GDZYi/Hjx49hPPLjIE8VP53Wa7L284i4R+gG9
IEle9kqb2OUUp0+CmIXSKAvtFpDHt9Yc0AE6PU0WpSg3LI6NqyUiM2CdKvyKvtIV
Y15LoJTkTuORzudP1HCImfcQUdJgrMe1DGz2siHqxTJVDUwzEVc6mOkGnefhIpFy
jN0ik6pCSkLNsSYImQZq9H6d9yiPPYSR3JFjTDtEVnANjlT08ywPdsyWgvNaHHh1
eMRy9+X24g9cQ7MqU77Y8p2/v3IudWbEsi+M1FUm4W0TE/MsNv9xydRvB6M41eVc
raYnk8cVmEzpjsyxi9lAqpk4+qYD04JecYCPxkX6XxkFxzswS20LR4VVOamfKgv1
yIzg1sCMArHeq0OC1k6lskB8DTXvw5+838iw4h8I0T6MAqXj4RKv8C45w7+uSlG9
oXhpUweiiRzyZPWbWXU7jC9BvDyqfuxq9jn4LFDzAOV0raLz6QThiUcR3f7h2Rvo
KiDjx3KprWU+swTosw==
=1jlJ
iQJKBAABCAA0FiEEAvQEbEsjbgYJVxYStJoyS36tbYAFAmV37E8WHGphbWVzQGZp
cmVmbHktaWlpLm9yZwAKCRC0mjJLfq1tgFtzD/4lrhVkCi4mRAroSMbz7ZHbLwLi
RAgiaFmnDI48LqkX/jJJTWSy8czl9gkKO9uVJzXwmjVzFg5vJTkRfjvNlTyOpL/l
gB+REFYGadp8ulMCZcBlFgLbyAWtvHKV3UW//G8fzrASAEe+2eiuPQooLmwaKows
X+ty2zZEH282uAiR36otlGR2UpUcYAy0XcAuE7hIxfHA8bsh5uqzAkm74OsynC8E
6vBEi1QzarE+cfoZqBtriWELyownM9Z5a/cIzm47RfBkFUKXaQBL3pYN1kX2TAi5
1//0WLrDiotkIwPmdYiYFmVmaJDjcapcAkDoD/wAv8BxxjPZ900RCTF4jzMTxIu0
t6umbm3SaA/vaINv8ilmMMj6ep49GE8EssHvRBUaGnv7JjHe+XCZrOsk3a5+Z4zQ
Sd9nuryLCX/G3Bz63rU/V1evuCT7ouNEWKUlwtYCqU+6BfumTdbJCPEH/4szxoi2
cPvIw5Y5sA9ue5Wm4RIX7G0DyIRJJf3CB0PJWuujzF548hn60MPBLDw7xSraTQNX
v1GRwTHIOo6e1U47naz9U3Dv3pK2J5aibL4K6pjyZG1bTqfE/0uY0hEXVFuNqAxT
B6LSAcrP4j+bU4oZlWRx99yHv1ComWZzi/JvRKp9Y0aTcWbAeT+oz3PFw8K5lff/
eweJG/H9BuHgDXdYQg==
=Z9Gk
-----END PGP SIGNATURE-----

File diff suppressed because one or more lines are too long

View File

@@ -34,13 +34,13 @@
"integrity": "sha384-YxWlWCDksuL6Ljn1HkJNPH8l+jSRIWPpMpPw3pFa0QnmLXjwV/uPwpDm/b9vn/o1"
},
"resources/assets/v2/pages/dashboard/dashboard.js": {
"file": "assets/dashboard-bfc72cdb.js",
"file": "assets/dashboard-8ab291b1.js",
"imports": [
"_load-translations-85b093de.js"
],
"isEntry": true,
"src": "resources/assets/v2/pages/dashboard/dashboard.js",
"integrity": "sha384-kE37MWn3DWfTheoMqJM1SS56PGlwlaaoJEIf66eW+ROFo88rAWyrwX52Jy0Q/0yU"
"integrity": "sha384-a7EK1Hlv+X5I367qMl06ETSq3vMG4MAIcUFpnK+6FJJSHPeAoKEkqod4CsBkcAwO"
},
"resources/assets/v2/pages/transactions/create.js": {
"file": "assets/create-46a6e026.js",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -24,9 +24,9 @@
"expense_account": "Crediteur",
"revenue_account": "Debiteur",
"budget": "Budget",
"account_type_Asset account": "Asset account",
"account_type_Expense account": "Expense account",
"account_type_Revenue account": "Revenue account",
"account_type_Asset account": "Betaalrekening",
"account_type_Expense account": "Crediteur",
"account_type_Revenue account": "Debiteur",
"account_type_Debt": "Schuld",
"account_type_Loan": "Lening",
"account_type_Mortgage": "Hypotheek"

View File

@@ -90,20 +90,20 @@ Firefly III is pretty feature packed. Some important stuff first:
The most exciting features are:
* Create [recurring transactions to manage your money](https://docs.firefly-iii.org/firefly-iii/financial-concepts/recurring/).
* [Rule based transaction handling](https://docs.firefly-iii.org/firefly-iii/features/rules/) with the ability to create your own rules.
* Create [recurring transactions to manage your money](https://docs.firefly-iii.org/explanation/financial-concepts/recurring/).
* [Rule based transaction handling](https://docs.firefly-iii.org/how-to/firefly-iii/features/rules/) with the ability to create your own rules.
Then the things that make you go "yeah OK, makes sense".
* A [double-entry](https://en.wikipedia.org/wiki/Double-entry_bookkeeping_system) bookkeeping system.
* Save towards a goal using [piggy banks](https://docs.firefly-iii.org/firefly-iii/financial-concepts/piggies/).
* View [income and expense reports](https://docs.firefly-iii.org/firefly-iii/features/reports/).
* Save towards a goal using [piggy banks](https://docs.firefly-iii.org/explanation/financial-concepts/piggies/).
* View [income and expense reports](https://docs.firefly-iii.org/how-to/firefly-iii/finances/reports/).
And the things you would hope for but not expect:
* 2 factor authentication for extra security 🔒.
* Supports [any currency you want](https://docs.firefly-iii.org/firefly-iii/financial-concepts/currencies/).
* There is a [Docker image](https://docs.firefly-iii.org/firefly-iii/installation/docker/).
* Supports [any currency you want](https://docs.firefly-iii.org/how-to/firefly-iii/features/currencies/).
* There is a [Docker image](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/).
And to organise everything:
@@ -111,7 +111,7 @@ And to organise everything:
* Easy navigation through your records.
* Lots of charts because we all love them.
Many more features are listed in the [documentation](https://docs.firefly-iii.org/firefly-iii/about-firefly-iii/introduction/).
Many more features are listed in the [documentation](https://docs.firefly-iii.org/explanation/firefly-iii/about/introduction/).
## Who's it for?
<img src="https://raw.githubusercontent.com/firefly-iii/firefly-iii/develop/.github/assets/img/iphone-complete.png" alt="Firefly III on iPhone" align="left" width="250">
@@ -122,14 +122,14 @@ Many more features are listed in the [documentation](https://docs.firefly-iii.or
## The Firefly III eco-system
Several users have built pretty awesome stuff around the Firefly III API. [Check out these tools in the documentation](https://docs.firefly-iii.org/firefly-iii/more-information/3rdparty/).
Several users have built pretty awesome stuff around the Firefly III API. [Check out these tools in the documentation](https://docs.firefly-iii.org/references/firefly-iii/third-parties/apps/).
## Getting Started
There are many ways to run Firefly III
1. There is a [demo site](https://demo.firefly-iii.org) with an example financial administration already present.
2. You can [install it on your server](https://docs.firefly-iii.org/firefly-iii/installation/self-hosted/).
3. You can [run it using Docker](https://docs.firefly-iii.org/firefly-iii/installation/docker/).
2. You can [install it on your server](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/).
3. You can [run it using Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/).
4. You can [deploy via Kubernetes](https://firefly-iii.github.io/kubernetes/).
5. You can [install it using Softaculous](https://www.softaculous.com/softaculous/apps/others/Firefly_III).
6. You can [install it using AMPPS](https://www.ampps.com/).
@@ -141,9 +141,9 @@ There are many ways to run Firefly III
You can contact me at [james@firefly-iii.org](mailto:james@firefly-iii.org), you may open an issue in the [main repository](https://github.com/firefly-iii/firefly-iii) or contact me through [gitter](https://gitter.im/firefly-iii/firefly-iii) and [Mastodon](https://fosstodon.org/@ff3).
Of course, there are some [contributing guidelines](https://docs.firefly-iii.org/firefly-iii/support/#contributing-code) and a [code of conduct](https://github.com/firefly-iii/firefly-iii/blob/main/.github/code_of_conduct.md), which I invite you to check out.
Of course, there are some [contributing guidelines](https://docs.firefly-iii.org/references/support/#contributing-code) and a [code of conduct](https://github.com/firefly-iii/firefly-iii/blob/main/.github/code_of_conduct.md), which I invite you to check out.
I can always use your help [squashing bugs](https://docs.firefly-iii.org/data-importer/support/issues/), thinking about [new features](https://docs.firefly-iii.org/data-importer/support/issues/) or [translating Firefly III](https://docs.firefly-iii.org/firefly-iii/faq/translate/) into other languages.
I can always use your help [squashing bugs](https://docs.firefly-iii.org/references/support/), thinking about [new features](https://docs.firefly-iii.org/references/support/) or [translating Firefly III](https://docs.firefly-iii.org/how-to/firefly-iii/development/translations/) into other languages.
[Sonarcloud][sc-project-url] scans the code of Firefly III. If you want to help improve Firefly III, check out the latest reports and take your pick!

View File

@@ -30,7 +30,7 @@
"submit": "Invoeren",
"amount": "Bedrag",
"date": "Datum",
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
"is_reconciled_fields_dropped": "Omdat deze transactie al is afgestemd, kan je het bedrag noch de rekeningen wijzigen.",
"tags": "Tags",
"no_budget": "(geen budget)",
"no_bill": "(geen contract)",

View File

@@ -43,7 +43,7 @@ return [
'split' => 'Splitsen',
'single_split' => 'Split',
'clone' => 'Dupliceren',
'clone_and_edit' => 'Clone and edit',
'clone_and_edit' => 'Dupliceren en wijzigen',
'confirm_action' => 'Actie bevestigen',
'last_seven_days' => 'Laatste zeven dagen',
'last_thirty_days' => 'Laatste dertig dagen',
@@ -469,10 +469,10 @@ return [
'search_modifier_transaction_type' => 'Transactietype is ":value"',
'search_modifier_not_transaction_type' => 'Transactietype is niet ":value"',
'search_modifier_tag_is' => 'Tag is ":value"',
'search_modifier_tag_contains' => 'Tag contains ":value"',
'search_modifier_not_tag_contains' => 'Tag does not contain ":value"',
'search_modifier_tag_ends' => 'Tag ends with ":value"',
'search_modifier_tag_starts' => 'Tag starts with ":value"',
'search_modifier_tag_contains' => 'Tag bevat ":value"',
'search_modifier_not_tag_contains' => 'Tag bevat niet ":value"',
'search_modifier_tag_ends' => 'Tag eindigt op ":value"',
'search_modifier_tag_starts' => 'Tag begint met ":value"',
'search_modifier_not_tag_is' => 'Geen tag is ":value"',
'search_modifier_date_on_year' => 'Transactie is in jaar ":value"',
'search_modifier_not_date_on_year' => 'Transactie is niet in jaar ":value"',
@@ -1282,8 +1282,8 @@ return [
'rule_action_append_notes_to_descr' => 'Voeg notitie toe aan beschrijving',
'rule_action_move_descr_to_notes' => 'Notitie vervangen door beschrijving',
'rule_action_move_notes_to_descr' => 'Beschrijving vervangen door notitie',
'rule_action_set_destination_to_cash_choice' => 'Set destination account to (cash)',
'rule_action_set_source_to_cash_choice' => 'Set source account to (cash)',
'rule_action_set_destination_to_cash_choice' => 'Verander doelrekening naar (cash)-rekening',
'rule_action_set_source_to_cash_choice' => 'Verander bronrekening naar (cash)-rekening',
'rulegroup_for_bills_title' => 'Regelgroep voor contracten',
'rulegroup_for_bills_description' => 'Een speciale regelgroep voor alle regels die betrekking hebben op contracten.',
'rule_for_bill_title' => 'Automatisch gegenereerde regel voor contract ":name"',
@@ -1572,7 +1572,7 @@ return [
'list_all_attachments' => 'Lijst van alle bijlagen',
// transaction index
'is_reconciled_fields_dropped' => 'Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).',
'is_reconciled_fields_dropped' => 'Omdat deze transactie al is afgestemd, kan je het bedrag noch de rekeningen wijzigen.',
'title_expenses' => 'Uitgaven',
'title_withdrawal' => 'Uitgaven',
'title_revenue' => 'Inkomsten',
@@ -1640,8 +1640,8 @@ return [
'create_currency' => 'Voeg nieuwe valuta toe',
'store_currency' => 'Sla nieuwe valuta op',
'update_currency' => 'Wijzig valuta',
'new_default_currency' => '":name" is now the default currency.',
'default_currency_failed' => 'Could not make ":name" the default currency. Please check the logs.',
'new_default_currency' => '":name" is nu de standaardvaluta.',
'default_currency_failed' => 'Kan ":name" niet de standaardvaluta maken. Check de logs.',
'cannot_delete_currency' => 'Kan ":name" niet verwijderen, want deze is in gebruik.',
'cannot_delete_fallback_currency' => ':naam is de systeemvaluta en kan niet verwijderd worden.',
'cannot_disable_currency_journals' => 'Je kan :name niet uitschakelen, er zijn nog transacties die deze valuta gebruiken.',
@@ -1667,9 +1667,9 @@ return [
'disable_currency' => 'Uitschakelen',
'currencies_default_disabled' => 'De meeste van deze valuta zijn standaard uitgeschakeld. Om ze te gebruiken, moet je ze eerst inschakelen.',
'currency_is_now_enabled' => 'Valuta ":name" is ingeschakeld',
'could_not_enable_currency' => 'Could not enable currency ":name". Please review the logs.',
'could_not_enable_currency' => 'Kon valuta ":name" niet inschakelen. Check de logs',
'currency_is_now_disabled' => 'Valuta ":name" is uitgeschakeld',
'could_not_disable_currency' => 'Could not disable currency ":name". Perhaps it is still in use?',
'could_not_disable_currency' => 'Kon valuta ":name" niet uitschakelen. Misschien is deze nog steeds in gebruik?',
// forms:
'mandatoryFields' => 'Verplichte velden',
@@ -1955,7 +1955,7 @@ return [
// transactions:
'unreconcile' => 'Undo reconciliation',
'unreconcile' => 'Ongedaan maken van afstemming',
'update_withdrawal' => 'Wijzig uitgave',
'update_deposit' => 'Wijzig inkomsten',
'update_transaction' => 'Update transactie',
@@ -2120,9 +2120,9 @@ return [
'Expense account' => 'Crediteur',
'Revenue account' => 'Debiteur',
'Initial balance account' => 'Startbalansrekening',
'account_type_Asset account' => 'Asset account',
'account_type_Expense account' => 'Expense account',
'account_type_Revenue account' => 'Revenue account',
'account_type_Asset account' => 'Betaalrekening',
'account_type_Expense account' => 'Crediteur',
'account_type_Revenue account' => 'Debiteur',
'account_type_Debt' => 'Schuld',
'account_type_Loan' => 'Lening',
'account_type_Mortgage' => 'Hypotheek',

View File

@@ -56,8 +56,8 @@ return [
'cannot_find_subscription' => 'Firefly III kan geen abonnement met naam ":name" vinden',
'no_notes_to_move' => 'De transactie heeft geen notities om te verplaatsen naar het omschrijvingsveld',
'no_tags_to_remove' => 'De transactie heeft geen tags om te verwijderen',
'not_withdrawal' => 'The transaction is not a withdrawal',
'not_deposit' => 'The transaction is not a deposit',
'not_withdrawal' => 'Deze transactie is niet een uitgave',
'not_deposit' => 'Deze transactie is geen inkomsten',
'cannot_find_tag' => 'Firefly III kan tag ":tag" niet vinden',
'cannot_find_asset' => 'Firefly III kan geen betaalrekening met naam ":name" vinden',
'cannot_find_accounts' => 'Firefly III kan de bron- of doelrekening niet vinden',

View File

@@ -44,12 +44,12 @@ return [
'invalid_query_currency' => 'Je query bevat account met verschillende valuta-instellingen, wat niet is toegestaan.',
'iban' => 'Dit is niet een geldige IBAN.',
'zero_or_more' => 'De waarde mag niet negatief zijn.',
'no_asset_account' => 'This is not an asset account.',
'no_asset_account' => 'Dit is geen betaalrekening.',
'date_or_time' => 'De waarde moet een geldige datum of tijdwaarde zijn (ISO 8601).',
'source_equals_destination' => 'De bronrekening is gelijk aan de doelrekening.',
'unique_account_number_for_user' => 'Het lijkt erop dat dit rekeningnummer al in gebruik is.',
'unique_iban_for_user' => 'Het lijkt erop dat deze IBAN al in gebruik is.',
'reconciled_forbidden_field' => 'This transaction is already reconciled, you cannot change the ":field"',
'reconciled_forbidden_field' => 'Deze transactie is al afgestemd, dus je kan ":field" niet wijzigen',
'deleted_user' => 'Je kan je niet registreren met dit e-mailadres.',
'rule_trigger_value' => 'Deze waarde is niet geldig voor de geselecteerde trigger.',
'rule_action_value' => 'Deze waarde is niet geldig voor de geselecteerde actie.',
@@ -61,8 +61,8 @@ return [
'transaction_types_equal' => 'Alle splits moeten van hetzelfde type zijn.',
'invalid_transaction_type' => 'Ongeldig transactietype.',
'invalid_selection' => 'Ongeldige selectie.',
'belongs_user' => 'This value is linked to an object that does not seem to exist.',
'belongs_user_or_user_group' => 'This value is linked to an object that does not seem to exist in your current financial administration.',
'belongs_user' => 'Deze waarde hoort bij een object dat niet lijkt te bestaan.',
'belongs_user_or_user_group' => 'Deze waarde hoort bij een object dat niet bij deze financiële administratie hoort.',
'at_least_one_transaction' => 'Er is op zijn minst één transactie nodig.',
'recurring_transaction_id' => 'Er is op zijn minst één transactie nodig.',
'need_id_to_match' => 'Je moet dit item met een ID versturen, zodat de API het kan matchen.',

View File

@@ -43,7 +43,7 @@
class="fa fa-fw fa-trash"></span></a>
{% endif %}
{# Disable the currency. #}
{% if currency.userEnabled %}
{% if currency.userGroupEnabled %}
<a class="btn btn-default disable-currency" data-code="{{ currency.code }}"
href="#">
<span class="fa fa-fw fa-square-o"></span>
@@ -51,7 +51,7 @@
{% endif %}
{# Enable the currency. #}
{% if not currency.userEnabled %}
{% if not currency.userGroupEnabled %}
<a class="btn btn-default enable-currency" data-code="{{ currency.code }}"
href="#">
<span class="fa fa-fw fa-check-square-o"></span>
@@ -66,19 +66,19 @@
</div>
</td>
<td>
{% if currency.userEnabled == false %}
{% if currency.userGroupEnabled == false %}
<span class="text-muted">
{% endif %}
{{ currency.name }} ({{ currency.code }}) ({{ currency.symbol|raw }})
{% if currency.id == defaultCurrency.id %}
<span class="label label-success" id="default-currency">{{ 'default_currency'|_ }}</span>
{% endif %}
{% if currency.userEnabled == false %}
{% if currency.userGroupEnabled == false %}
<span class="label label-default">{{ 'currency_is_disabled'|_ }}</span>
{% endif %}
{% if currency.userEnabled == false %}
{% if currency.userGroupEnabled == false %}
</span>
{% endif %}
</td>