Auto commit for release 'develop' on 2024-12-30

This commit is contained in:
github-actions
2024-12-30 15:35:26 +01:00
parent 146e164f04
commit ec82105433
18 changed files with 96 additions and 93 deletions

View File

@@ -4,6 +4,7 @@ Over time, many people have contributed to Firefly III. Their efforts are not al
Please find below all the people who contributed to the Firefly III code. Their names are mentioned in the year of their first contribution. Please find below all the people who contributed to the Firefly III code. Their names are mentioned in the year of their first contribution.
## 2024 ## 2024
- TasneemTantawy
- Antônio Franco - Antônio Franco
- yparitcher - yparitcher
- Jhon Pedroza - Jhon Pedroza

View File

@@ -46,7 +46,7 @@ class AvailableBudgetObserver
private function updateNativeAmount(AvailableBudget $availableBudget): void private function updateNativeAmount(AvailableBudget $availableBudget): void
{ {
if (!Amount::convertToNative($availableBudget->user)) { if (!Amount::convertToNative($availableBudget->user)) {
//Log::debug('Do not update native available amount of the available budget.'); // Log::debug('Do not update native available amount of the available budget.');
return; return;
} }

View File

@@ -46,7 +46,7 @@ class BudgetLimitObserver
private function updateNativeAmount(BudgetLimit $budgetLimit): void private function updateNativeAmount(BudgetLimit $budgetLimit): void
{ {
if (!Amount::convertToNative($budgetLimit->budget->user)) { if (!Amount::convertToNative($budgetLimit->budget->user)) {
//Log::debug('Do not update native amount of the budget limit.'); // Log::debug('Do not update native amount of the budget limit.');
return; return;
} }

View File

@@ -30,7 +30,6 @@ use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Models\Account; use FireflyIII\Models\Account;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Facades\Steam; use FireflyIII\Support\Facades\Steam;
use FireflyIII\Support\Http\Controllers\PeriodOverview; use FireflyIII\Support\Http\Controllers\PeriodOverview;
use Illuminate\Contracts\View\Factory; use Illuminate\Contracts\View\Factory;

View File

@@ -78,7 +78,8 @@ class BoxController extends Controller
$incomes = []; $incomes = [];
$expenses = []; $expenses = [];
$sums = []; $sums = [];
$currency = $this->defaultCurrency; $currency = $this->defaultCurrency;
// collect income of user: // collect income of user:
/** @var GroupCollectorInterface $collector */ /** @var GroupCollectorInterface $collector */
$collector = app(GroupCollectorInterface::class); $collector = app(GroupCollectorInterface::class);
@@ -124,7 +125,7 @@ class BoxController extends Controller
$expenses[$currencyId] = app('amount')->formatAnything($currency, $expenses[$currencyId] ?? '0', false); $expenses[$currencyId] = app('amount')->formatAnything($currency, $expenses[$currencyId] ?? '0', false);
} }
if (0 === count($sums)) { if (0 === count($sums)) {
$currency = $this->defaultCurrency; $currency = $this->defaultCurrency;
$sums[$this->defaultCurrency->id] = app('amount')->formatAnything($this->defaultCurrency, '0', false); $sums[$this->defaultCurrency->id] = app('amount')->formatAnything($this->defaultCurrency, '0', false);
$incomes[$this->defaultCurrency->id] = app('amount')->formatAnything($this->defaultCurrency, '0', false); $incomes[$this->defaultCurrency->id] = app('amount')->formatAnything($this->defaultCurrency, '0', false);
$expenses[$this->defaultCurrency->id] = app('amount')->formatAnything($this->defaultCurrency, '0', false); $expenses[$this->defaultCurrency->id] = app('amount')->formatAnything($this->defaultCurrency, '0', false);

View File

@@ -260,7 +260,7 @@ class PreferencesController extends Controller
// convert native // convert native
$convertToNative = 1 === (int) $request->get('convertToNative'); $convertToNative = 1 === (int) $request->get('convertToNative');
if($convertToNative && !$this->convertToNative) { if ($convertToNative && !$this->convertToNative) {
// set to true! // set to true!
Log::debug('User sets convertToNative to true.'); Log::debug('User sets convertToNative to true.');
event(new UserGroupChangedDefaultCurrency(auth()->user()->userGroup)); event(new UserGroupChangedDefaultCurrency(auth()->user()->userGroup));

View File

@@ -216,8 +216,8 @@ class ConvertController extends Controller
private function getLiabilities(): array private function getLiabilities(): array
{ {
// make repositories // make repositories
$accountList = $this->accountRepository->getActiveAccountsByType([AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]); $accountList = $this->accountRepository->getActiveAccountsByType([AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]);
$grouped = []; $grouped = [];
// group accounts: // group accounts:
/** @var Account $account */ /** @var Account $account */
@@ -238,8 +238,8 @@ class ConvertController extends Controller
private function getAssetAccounts(): array private function getAssetAccounts(): array
{ {
// make repositories // make repositories
$accountList = $this->accountRepository->getActiveAccountsByType([AccountType::ASSET]); $accountList = $this->accountRepository->getActiveAccountsByType([AccountType::ASSET]);
$grouped = []; $grouped = [];
// group accounts: // group accounts:
/** @var Account $account */ /** @var Account $account */

View File

@@ -67,10 +67,10 @@ class AvailableBudget extends Model
$availableBudgetId = (int) $value; $availableBudgetId = (int) $value;
/** @var User $user */ /** @var User $user */
$user = auth()->user(); $user = auth()->user();
/** @var null|AvailableBudget $availableBudget */ /** @var null|AvailableBudget $availableBudget */
$availableBudget = $user->availableBudgets()->find($availableBudgetId); $availableBudget = $user->availableBudgets()->find($availableBudgetId);
if (null !== $availableBudget) { if (null !== $availableBudget) {
return $availableBudget; return $availableBudget;
} }
@@ -92,16 +92,17 @@ class AvailableBudget extends Model
protected function amount(): Attribute protected function amount(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string) $value, get: static fn ($value) => (string) $value,
); );
} }
protected function transactionCurrencyId(): Attribute protected function transactionCurrencyId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int) $value, get: static fn ($value) => (int) $value,
); );
} }
protected function startDate(): Attribute protected function startDate(): Attribute
{ {
return Attribute::make( return Attribute::make(

View File

@@ -64,7 +64,7 @@ class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface
*/ */
public function get(?Carbon $start = null, ?Carbon $end = null): Collection public function get(?Carbon $start = null, ?Carbon $end = null): Collection
{ {
$query = $this->user->availableBudgets()->with(['transactionCurrency']); $query = $this->user->availableBudgets()->with(['transactionCurrency']);
if (null !== $start && null !== $end) { if (null !== $start && null !== $end) {
$query->where( $query->where(
static function (Builder $q1) use ($start, $end): void { // @phpstan-ignore-line static function (Builder $q1) use ($start, $end): void { // @phpstan-ignore-line
@@ -75,6 +75,7 @@ class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface
} }
$result = $query->get(['available_budgets.*']); $result = $query->get(['available_budgets.*']);
Log::debug(sprintf('Found %d available budgets between %s and %s', $result->count(), $start->format('Y-m-d H:i:s'), $end->format('Y-m-d H:i:s'))); Log::debug(sprintf('Found %d available budgets between %s and %s', $result->count(), $start->format('Y-m-d H:i:s'), $end->format('Y-m-d H:i:s')));
return $result; return $result;
} }

View File

@@ -97,7 +97,7 @@ class TransactionSummarizer
'currency_decimal_places' => $currencyDecimalPlaces, 'currency_decimal_places' => $currencyDecimalPlaces,
]; ];
$array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], app('steam')->{$method}($amount)); $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], app('steam')->{$method}($amount));
//Log::debug(sprintf('Journal #%d adds amount %s %s', $journal['transaction_journal_id'], $currencyCode, $amount)); // Log::debug(sprintf('Journal #%d adds amount %s %s', $journal['transaction_journal_id'], $currencyCode, $amount));
} }
Log::debug('End of sumExpenses.', $array); Log::debug('End of sumExpenses.', $array);

40
composer.lock generated
View File

@@ -6364,16 +6364,16 @@
}, },
{ {
"name": "spatie/laravel-package-tools", "name": "spatie/laravel-package-tools",
"version": "1.17.0", "version": "1.18.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/spatie/laravel-package-tools.git", "url": "https://github.com/spatie/laravel-package-tools.git",
"reference": "9ab30fd24f677e5aa370ea4cf6b41c517d16cf85" "reference": "8332205b90d17164913244f4a8e13ab7e6761d29"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/9ab30fd24f677e5aa370ea4cf6b41c517d16cf85", "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/8332205b90d17164913244f4a8e13ab7e6761d29",
"reference": "9ab30fd24f677e5aa370ea4cf6b41c517d16cf85", "reference": "8332205b90d17164913244f4a8e13ab7e6761d29",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6412,7 +6412,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/spatie/laravel-package-tools/issues", "issues": "https://github.com/spatie/laravel-package-tools/issues",
"source": "https://github.com/spatie/laravel-package-tools/tree/1.17.0" "source": "https://github.com/spatie/laravel-package-tools/tree/1.18.0"
}, },
"funding": [ "funding": [
{ {
@@ -6420,7 +6420,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-12-09T16:29:14+00:00" "time": "2024-12-30T13:13:39+00:00"
}, },
{ {
"name": "spatie/period", "name": "spatie/period",
@@ -10287,20 +10287,20 @@
}, },
{ {
"name": "barryvdh/reflection-docblock", "name": "barryvdh/reflection-docblock",
"version": "v2.2.0", "version": "v2.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/barryvdh/ReflectionDocBlock.git", "url": "https://github.com/barryvdh/ReflectionDocBlock.git",
"reference": "db125e8df4329bd45f2da405aab007f502f38531" "reference": "818be8de6af4d16ef3ad51ea9234b3d37026ee5f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/db125e8df4329bd45f2da405aab007f502f38531", "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/818be8de6af4d16ef3ad51ea9234b3d37026ee5f",
"reference": "db125e8df4329bd45f2da405aab007f502f38531", "reference": "818be8de6af4d16ef3ad51ea9234b3d37026ee5f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": ">=7.1"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^8.5.14|^9" "phpunit/phpunit": "^8.5.14|^9"
@@ -10312,7 +10312,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.2.x-dev" "dev-master": "2.3.x-dev"
} }
}, },
"autoload": { "autoload": {
@@ -10333,9 +10333,9 @@
} }
], ],
"support": { "support": {
"source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.2.0" "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.3.0"
}, },
"time": "2024-12-28T10:00:03+00:00" "time": "2024-12-30T10:35:04+00:00"
}, },
{ {
"name": "cloudcreativity/json-api-testing", "name": "cloudcreativity/json-api-testing",
@@ -11147,16 +11147,16 @@
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v5.3.1", "version": "v5.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "8eea230464783aa9671db8eea6f8c6ac5285794b" "reference": "447a020a1f875a434d62f2a401f53b82a396e494"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494",
"reference": "8eea230464783aa9671db8eea6f8c6ac5285794b", "reference": "447a020a1f875a434d62f2a401f53b82a396e494",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -11199,9 +11199,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/nikic/PHP-Parser/issues", "issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1" "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0"
}, },
"time": "2024-10-08T18:51:32+00:00" "time": "2024-12-30T11:07:19+00:00"
}, },
{ {
"name": "phar-io/manifest", "name": "phar-io/manifest",

View File

@@ -21,7 +21,7 @@
"apply_rules_checkbox": "Regeln anwenden", "apply_rules_checkbox": "Regeln anwenden",
"fire_webhooks_checkbox": "Webhooks abfeuern", "fire_webhooks_checkbox": "Webhooks abfeuern",
"no_budget_pointer": "Sie scheinen noch keine Budgets festgelegt zu haben. Sie sollten einige davon auf der Seite <a href=\"budgets\">Budgets<\/a> anlegen. Budgets k\u00f6nnen Ihnen dabei helfen, den \u00dcberblick \u00fcber die Ausgaben zu behalten.", "no_budget_pointer": "Sie scheinen noch keine Budgets festgelegt zu haben. Sie sollten einige davon auf der Seite <a href=\"budgets\">Budgets<\/a> anlegen. Budgets k\u00f6nnen Ihnen dabei helfen, den \u00dcberblick \u00fcber die Ausgaben zu behalten.",
"no_bill_pointer": "Sie scheinen noch kein Abonnement zu haben. Sie sollten einige auf der Seite <a href=\"subscriptions\">Abonnement<\/a> erstellen. Abonnements k\u00f6nnen Ihnen helfen, den \u00dcberblick \u00fcber Ihre Ausgaben zu behalten.", "no_bill_pointer": "You seem to have no subscription yet. You should create some on the <a href=\"subscriptions\">subscription<\/a>-page. Subscriptions can help you keep track of expenses.",
"source_account": "Quellkonto", "source_account": "Quellkonto",
"hidden_fields_preferences": "Sie k\u00f6nnen weitere Buchungsoptionen in Ihren <a href=\"preferences\">Einstellungen<\/a> aktivieren.", "hidden_fields_preferences": "Sie k\u00f6nnen weitere Buchungsoptionen in Ihren <a href=\"preferences\">Einstellungen<\/a> aktivieren.",
"destination_account": "Zielkonto", "destination_account": "Zielkonto",
@@ -36,7 +36,7 @@
"is_reconciled_fields_dropped": "Da diese Buchung abgeglichen ist, k\u00f6nnen Sie weder die Konten noch den\/die Betrag\/Betr\u00e4ge aktualisieren.", "is_reconciled_fields_dropped": "Da diese Buchung abgeglichen ist, k\u00f6nnen Sie weder die Konten noch den\/die Betrag\/Betr\u00e4ge aktualisieren.",
"tags": "Schlagw\u00f6rter", "tags": "Schlagw\u00f6rter",
"no_budget": "(kein Budget)", "no_budget": "(kein Budget)",
"no_bill": "(kein Abonnement)", "no_bill": "(no subscription)",
"category": "Kategorie", "category": "Kategorie",
"attachments": "Anh\u00e4nge", "attachments": "Anh\u00e4nge",
"notes": "Notizen", "notes": "Notizen",
@@ -52,7 +52,7 @@
"destination_account_reconciliation": "Sie k\u00f6nnen das Zielkonto einer Kontenausgleichsbuchung nicht bearbeiten.", "destination_account_reconciliation": "Sie k\u00f6nnen das Zielkonto einer Kontenausgleichsbuchung nicht bearbeiten.",
"source_account_reconciliation": "Sie k\u00f6nnen das Quellkonto einer Kontenausgleichsbuchung nicht bearbeiten.", "source_account_reconciliation": "Sie k\u00f6nnen das Quellkonto einer Kontenausgleichsbuchung nicht bearbeiten.",
"budget": "Budget", "budget": "Budget",
"bill": "Abonnement", "bill": "Subscription",
"you_create_withdrawal": "Sie haben eine Ausgabe erstellt.", "you_create_withdrawal": "Sie haben eine Ausgabe erstellt.",
"you_create_transfer": "Sie erstellen eine Umbuchung.", "you_create_transfer": "Sie erstellen eine Umbuchung.",
"you_create_deposit": "Sie haben eine Einnahme erstellt.", "you_create_deposit": "Sie haben eine Einnahme erstellt.",
@@ -130,15 +130,15 @@
"response": "Antwort", "response": "Antwort",
"visit_webhook_url": "Webhook-URL besuchen", "visit_webhook_url": "Webhook-URL besuchen",
"reset_webhook_secret": "Webhook Secret zur\u00fccksetzen", "reset_webhook_secret": "Webhook Secret zur\u00fccksetzen",
"header_exchange_rates": "Wechselkurse", "header_exchange_rates": "Exchange rates",
"exchange_rates_intro": "Firefly III unterst\u00fctzt das Herunterladen und Verwenden von Wechselkursen. Lesen Sie mehr dar\u00fcber in <a href=\u201ehttps:\/\/docs.firefly-iii.org\/LOL_NOT_FINISHED_YET_TODO\u201c>der Dokumentation<\/a>.", "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in <a href=\"https:\/\/docs.firefly-iii.org\/LOL_NOT_FINISHED_YET_TODO\">the documentation<\/a>.",
"exchange_rates_from_to": "Zwischen {from} und {to} (und umgekehrt)", "exchange_rates_from_to": "Between {from} and {to} (and the other way around)",
"exchange_rates_intro_rates": "Firefly III verwendet die folgenden Wechselkurse. Der Kehrwert wird automatisch berechnet, wenn er nicht angegeben wurde. Wenn f\u00fcr das Datum der Transaktion kein Wechselkurs vorhanden ist, sucht Firefly III in der Vergangenheit nach einem Kurs. Wenn keine vorhanden sind, wird der Kurs \u201e1\u201c verwendet.", "exchange_rates_intro_rates": "Firefly III uses the following exchange rates. The inverse is automatically calculated when it is not provided. If no exchange rate exists for the date of the transaction, Firefly III will go back in time to find one. If none are present, the rate \"1\" will be used.",
"header_exchange_rates_rates": "Wechselkurse", "header_exchange_rates_rates": "Exchange rates",
"header_exchange_rates_table": "Tabelle mit Wechselkursen", "header_exchange_rates_table": "Table with exchange rates",
"help_rate_form": "An diesem Tag, wie viele {to} werden Sie f\u00fcr {from} bekommen?", "help_rate_form": "On this day, how many {to} will you get for one {from}?",
"add_new_rate": "Neuen Wechselkurs hinzuf\u00fcgen", "add_new_rate": "Add a new exchange rate",
"save_new_rate": "Neuen Kurs speichern" "save_new_rate": "Save new rate"
}, },
"form": { "form": {
"url": "URL", "url": "URL",
@@ -158,7 +158,7 @@
"webhook_delivery": "Zustellung", "webhook_delivery": "Zustellung",
"from_currency_to_currency": "{from} &rarr; {to}", "from_currency_to_currency": "{from} &rarr; {to}",
"to_currency_from_currency": "{to} &rarr; {from}", "to_currency_from_currency": "{to} &rarr; {from}",
"rate": "Kurs" "rate": "Rate"
}, },
"list": { "list": {
"active": "Aktiv?", "active": "Aktiv?",

View File

@@ -21,7 +21,7 @@
"apply_rules_checkbox": "Regels toepassen", "apply_rules_checkbox": "Regels toepassen",
"fire_webhooks_checkbox": "Webhooks starten", "fire_webhooks_checkbox": "Webhooks starten",
"no_budget_pointer": "Je hebt nog geen budgetten. Maak er een aantal op de <a href=\"budgets\">budgetten<\/a>-pagina. Met budgetten kan je je uitgaven beter bijhouden.", "no_budget_pointer": "Je hebt nog geen budgetten. Maak er een aantal op de <a href=\"budgets\">budgetten<\/a>-pagina. Met budgetten kan je je uitgaven beter bijhouden.",
"no_bill_pointer": "Je hebt nog geen abonnementen. Maak er een aantal op de <a href=\"subscriptions\">abonnementenpagina<\/a>. Met abonnementen kan je uitgaven bijhouden.", "no_bill_pointer": "You seem to have no subscription yet. You should create some on the <a href=\"subscriptions\">subscription<\/a>-page. Subscriptions can help you keep track of expenses.",
"source_account": "Bronrekening", "source_account": "Bronrekening",
"hidden_fields_preferences": "Je kan meer transactieopties inschakelen in je <a href=\"preferences\">instellingen<\/a>.", "hidden_fields_preferences": "Je kan meer transactieopties inschakelen in je <a href=\"preferences\">instellingen<\/a>.",
"destination_account": "Doelrekening", "destination_account": "Doelrekening",
@@ -36,7 +36,7 @@
"is_reconciled_fields_dropped": "Omdat deze transactie al is afgestemd, kan je het bedrag noch de rekeningen wijzigen.", "is_reconciled_fields_dropped": "Omdat deze transactie al is afgestemd, kan je het bedrag noch de rekeningen wijzigen.",
"tags": "Tags", "tags": "Tags",
"no_budget": "(geen budget)", "no_budget": "(geen budget)",
"no_bill": "(geen abonnement)", "no_bill": "(no subscription)",
"category": "Categorie", "category": "Categorie",
"attachments": "Bijlagen", "attachments": "Bijlagen",
"notes": "Notities", "notes": "Notities",
@@ -52,7 +52,7 @@
"destination_account_reconciliation": "Je kan de doelrekening van een afstemming niet wijzigen.", "destination_account_reconciliation": "Je kan de doelrekening van een afstemming niet wijzigen.",
"source_account_reconciliation": "Je kan de bronrekening van een afstemming niet wijzigen.", "source_account_reconciliation": "Je kan de bronrekening van een afstemming niet wijzigen.",
"budget": "Budget", "budget": "Budget",
"bill": "Abonnement", "bill": "Subscription",
"you_create_withdrawal": "Je maakt een uitgave.", "you_create_withdrawal": "Je maakt een uitgave.",
"you_create_transfer": "Je maakt een overschrijving.", "you_create_transfer": "Je maakt een overschrijving.",
"you_create_deposit": "Je maakt inkomsten.", "you_create_deposit": "Je maakt inkomsten.",
@@ -130,15 +130,15 @@
"response": "Reactie", "response": "Reactie",
"visit_webhook_url": "Bezoek URL van webhook", "visit_webhook_url": "Bezoek URL van webhook",
"reset_webhook_secret": "Reset webhook-geheim", "reset_webhook_secret": "Reset webhook-geheim",
"header_exchange_rates": "Wisselkoersen", "header_exchange_rates": "Exchange rates",
"exchange_rates_intro": "Firefly III kan wisselkoersen downloaden en gebruiken. Lees hier meer over in <a href=\"https:\/\/docs.firefly-iii.org\/LOL_NOT_FINISHED_YET_TODO\">de documentatie<\/a>.", "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in <a href=\"https:\/\/docs.firefly-iii.org\/LOL_NOT_FINISHED_YET_TODO\">the documentation<\/a>.",
"exchange_rates_from_to": "Tussen {from} en {to} (en andersom)", "exchange_rates_from_to": "Between {from} and {to} (and the other way around)",
"exchange_rates_intro_rates": "Firefly III gebruikt de volgende wisselkoersen. De inverse berekent zichzelf als deze niet is opgegeven. Als er geen wisselkoers bestaat voor de datum van de transactie, gaat Firefly III terug in de tijd om er een te vinden. Als er geen aanwezig is, zal de koers \"1\" gebruikt worden.", "exchange_rates_intro_rates": "Firefly III uses the following exchange rates. The inverse is automatically calculated when it is not provided. If no exchange rate exists for the date of the transaction, Firefly III will go back in time to find one. If none are present, the rate \"1\" will be used.",
"header_exchange_rates_rates": "Wisselkoersen", "header_exchange_rates_rates": "Exchange rates",
"header_exchange_rates_table": "Tabel met wisselkoersen", "header_exchange_rates_table": "Table with exchange rates",
"help_rate_form": "Hoeveel {to} krijg je op deze dag voor \u00e9\u00e9n {from}?", "help_rate_form": "On this day, how many {to} will you get for one {from}?",
"add_new_rate": "Nieuwe wisselkoers toevoegen", "add_new_rate": "Add a new exchange rate",
"save_new_rate": "Nieuwe wisselkoers opslaan" "save_new_rate": "Save new rate"
}, },
"form": { "form": {
"url": "URL", "url": "URL",
@@ -158,7 +158,7 @@
"webhook_delivery": "Bericht", "webhook_delivery": "Bericht",
"from_currency_to_currency": "{from} &rarr; {to}", "from_currency_to_currency": "{from} &rarr; {to}",
"to_currency_from_currency": "{to} &rarr; {from}", "to_currency_from_currency": "{to} &rarr; {from}",
"rate": "Wisselkoers" "rate": "Rate"
}, },
"list": { "list": {
"active": "Actief?", "active": "Actief?",

View File

@@ -46,16 +46,18 @@ final class BillControllerTest extends TestCase
protected function createAuthenticatedUser(): User protected function createAuthenticatedUser(): User
{ {
$userGroup = UserGroup::create(['title' => 'Test Group']); $userGroup = UserGroup::create(['title' => 'Test Group']);
$user= User::create([ $user = User::create([
'email' => 'test@email.com', 'email' => 'test@email.com',
'password' => 'password', 'password' => 'password',
]); ]);
$user->user_group_id = $userGroup->id; $user->user_group_id = $userGroup->id;
$user->save(); $user->save();
return $user; return $user;
} }
private function createTestBills(int $count, User $user): void private function createTestBills(int $count, User $user): void
{ {
for ($i = 1; $i <= $count; ++$i) { for ($i = 1; $i <= $count; ++$i) {

View File

@@ -46,14 +46,15 @@ final class BudgetControllerTest extends TestCase
protected function createAuthenticatedUser(): User protected function createAuthenticatedUser(): User
{ {
$userGroup = UserGroup::create(['title' => 'Test Group']); $userGroup = UserGroup::create(['title' => 'Test Group']);
$user= User::create([ $user = User::create([
'email' => 'test@email.com', 'email' => 'test@email.com',
'password' => 'password', 'password' => 'password',
]); ]);
$user->user_group_id = $userGroup->id; $user->user_group_id = $userGroup->id;
$user->save(); $user->save();
return $user; return $user;
} }

View File

@@ -46,14 +46,15 @@ final class CategoryControllerTest extends TestCase
protected function createAuthenticatedUser(): User protected function createAuthenticatedUser(): User
{ {
$userGroup = UserGroup::create(['title' => 'Test Group']); $userGroup = UserGroup::create(['title' => 'Test Group']);
$user= User::create([ $user = User::create([
'email' => 'test@email.com', 'email' => 'test@email.com',
'password' => 'password', 'password' => 'password',
]); ]);
$user->user_group_id = $userGroup->id; $user->user_group_id = $userGroup->id;
$user->save(); $user->save();
return $user; return $user;
} }

View File

@@ -30,7 +30,6 @@ use Tests\integration\TestCase;
use FireflyIII\User; use FireflyIII\User;
use FireflyIII\Models\UserGroup; use FireflyIII\Models\UserGroup;
/** /**
* Class CurrencyControllerTest * Class CurrencyControllerTest
* *
@@ -38,7 +37,8 @@ use FireflyIII\Models\UserGroup;
* *
* @coversNothing * @coversNothing
*/ */
final class CurrencyControllerTest extends TestCase { final class CurrencyControllerTest extends TestCase
{
/** /**
* @covers \FireflyIII\Api\V1\Controllers\Autocomplete\CurrencyController * @covers \FireflyIII\Api\V1\Controllers\Autocomplete\CurrencyController
*/ */
@@ -46,15 +46,16 @@ final class CurrencyControllerTest extends TestCase {
protected function createAuthenticatedUser(): User protected function createAuthenticatedUser(): User
{ {
$userGroup = UserGroup::create(['title' => 'Test Group']); $userGroup = UserGroup::create(['title' => 'Test Group']);
$user= User::create([ $user = User::create([
'email' => 'test@email.com', 'email' => 'test@email.com',
'password' => 'password', 'password' => 'password',
]); ]);
$user->user_group_id = $userGroup->id; $user->user_group_id = $userGroup->id;
$user->save(); $user->save();
return $user; return $user;
} }
@@ -62,11 +63,11 @@ final class CurrencyControllerTest extends TestCase {
{ {
for ($i = 1; $i <= $count; ++$i) { for ($i = 1; $i <= $count; ++$i) {
$currency = TransactionCurrency::create([ $currency = TransactionCurrency::create([
'name' => 'Currency '.$i, 'name' => 'Currency '.$i,
'code' => 'CUR'.$i, 'code' => 'CUR'.$i,
'symbol' => 'C'.$i, 'symbol' => 'C'.$i,
'decimal_places' => $i, 'decimal_places' => $i,
'enabled' => $enabled 'enabled' => $enabled,
]); ]);
} }
} }
@@ -162,13 +163,11 @@ final class CurrencyControllerTest extends TestCase {
$response->assertJsonCount(1); $response->assertJsonCount(1);
} }
public function testGivenAuthenticatedRequestWhenCallingTheCurrenciesEndpointWithQueryThenReturnsCurrenciesThatMatchQuery(): void public function testGivenAuthenticatedRequestWhenCallingTheCurrenciesEndpointWithQueryThenReturnsCurrenciesThatMatchQuery(): void
{ {
$user = $this->createAuthenticatedUser(); $user = $this->createAuthenticatedUser();
$this->actingAs($user); $this->actingAs($user);
$this->createTestCurrencies(20, true); $this->createTestCurrencies(20, true);
@@ -178,9 +177,7 @@ final class CurrencyControllerTest extends TestCase {
]), ['Accept' => 'application/json']); ]), ['Accept' => 'application/json']);
$response->assertStatus(200); $response->assertStatus(200);
$response->assertHeader('Content-Type', 'application/json'); $response->assertHeader('Content-Type', 'application/json');
// Currency 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 (11) // Currency 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 (11)
$response->assertJsonCount(11); $response->assertJsonCount(11);
} }
}
}

View File

@@ -37,26 +37,28 @@ use FireflyIII\Models\UserGroup;
* *
* @coversNothing * @coversNothing
*/ */
final class ObjectGroupControllerTest extends TestCase { final class ObjectGroupControllerTest extends TestCase
{
/** /**
* @covers \FireflyIII\Api\V1\Controllers\Autocomplete\ObjectGroupController * @covers \FireflyIII\Api\V1\Controllers\Autocomplete\ObjectGroupController
*/ */
use RefreshDatabase; use RefreshDatabase;
protected function createAuthenticatedUser(): User protected function createAuthenticatedUser(): User
{ {
$userGroup = UserGroup::create(['title' => 'Test Group']); $userGroup = UserGroup::create(['title' => 'Test Group']);
$user= User::create([ $user = User::create([
'email' => 'test@email.com', 'email' => 'test@email.com',
'password' => 'password', 'password' => 'password',
]); ]);
$user->user_group_id = $userGroup->id; $user->user_group_id = $userGroup->id;
$user->save(); $user->save();
return $user; return $user;
} }
private function createTestObjectGroups(int $count, User $user): void private function createTestObjectGroups(int $count, User $user): void
{ {
for ($i = 1; $i <= $count; ++$i) { for ($i = 1; $i <= $count; ++$i) {
@@ -89,7 +91,6 @@ final class ObjectGroupControllerTest extends TestCase {
$response->assertHeader('Content-Type', 'application/json'); $response->assertHeader('Content-Type', 'application/json');
} }
public function testGivenAuthenticatedRequestWhenCallingTheObjectGroupsEndpointThenReturnsObjectGroups(): void public function testGivenAuthenticatedRequestWhenCallingTheObjectGroupsEndpointThenReturnsObjectGroups(): void
{ {
$user = $this->createAuthenticatedUser(); $user = $this->createAuthenticatedUser();
@@ -105,7 +106,7 @@ final class ObjectGroupControllerTest extends TestCase {
'*' => [ '*' => [
'id', 'id',
'name', 'name',
'title' 'title',
], ],
]); ]);
} }
@@ -152,6 +153,4 @@ final class ObjectGroupControllerTest extends TestCase {
$response->assertJsonCount(11); $response->assertJsonCount(11);
$response->assertJsonMissing(['name' => 'Object Group 2']); $response->assertJsonMissing(['name' => 'Object Group 2']);
} }
}
}