diff --git a/app/Http/Controllers/Bank/NordigenController.php b/app/Http/Controllers/Bank/NordigenController.php index b772a25e5b8c..8c1fc41b6663 100644 --- a/app/Http/Controllers/Bank/NordigenController.php +++ b/app/Http/Controllers/Bank/NordigenController.php @@ -18,6 +18,7 @@ use App\Http\Requests\Nordigen\ConnectNordigenBankIntegrationRequest; use App\Jobs\Bank\ProcessBankTransactionsNordigen; use App\Models\BankIntegration; use App\Models\Company; +use App\Models\User; use App\Utils\Ninja; use Cache; use Illuminate\Http\Request; @@ -31,9 +32,11 @@ class NordigenController extends BaseController { $data = $request->all(); $context = $request->getTokenContent(); + $lang = $data['lang'] ?? 'en'; if (!$context) return view('bank.nordigen.handler', [ + 'lang' => $lang, 'failed_reason' => "token-invalid", "redirectUrl" => config("ninja.app_url") . "?action=nordigen_connect&status=failed&reason=token-invalid", ]); @@ -41,6 +44,7 @@ class NordigenController extends BaseController $context["redirect"] = $data["redirect"]; if ($context["context"] != "nordigen" || array_key_exists("requisitionId", $context)) return view('bank.nordigen.handler', [ + 'lang' => $lang, 'failed_reason' => "token-invalid", "redirectUrl" => ($context["redirect"]) . "?action=nordigen_connect&status=failed&reason=token-invalid", ]); @@ -50,6 +54,7 @@ class NordigenController extends BaseController if (!(config('ninja.nordigen.secret_id') && config('ninja.nordigen.secret_key'))) return view('bank.nordigen.handler', [ + 'lang' => $lang, 'company' => $company, 'account' => $company->account, 'failed_reason' => "account-config-invalid", @@ -58,6 +63,7 @@ class NordigenController extends BaseController if (!(Ninja::isSelfHost() || (Ninja::isHosted() && $account->isPaid() && $account->plan == 'enterprise'))) return view('bank.nordigen.handler', [ + 'lang' => $lang, 'company' => $company, 'account' => $company->account, 'failed_reason' => "not-available", @@ -69,6 +75,7 @@ class NordigenController extends BaseController // show bank_selection_screen, when institution_id is not present if (!array_key_exists("institution_id", $data)) { $data = [ + 'lang' => $lang, 'company' => $company, 'account' => $company->account, 'institutions' => $nordigen->getInstitutions(), @@ -88,6 +95,7 @@ class NordigenController extends BaseController if (str_contains($responseBody, '"institution_id"')) // provided institution_id was wrong return view('bank.nordigen.handler', [ + 'lang' => $lang, 'company' => $company, 'account' => $company->account, 'failed_reason' => "institution-invalid", @@ -95,6 +103,7 @@ class NordigenController extends BaseController ]); else if (str_contains($responseBody, '"reference"')) // this error can occur, when a reference was used double or is invalid => therefor we suggest the frontend to use another token return view('bank.nordigen.handler', [ + 'lang' => $lang, 'company' => $company, 'account' => $company->account, 'failed_reason' => "token-invalid", @@ -102,6 +111,7 @@ class NordigenController extends BaseController ]); else return view('bank.nordigen.handler', [ + 'lang' => $lang, 'company' => $company, 'account' => $company->account, 'failed_reason' => "unknown", @@ -184,10 +194,12 @@ class NordigenController extends BaseController { $data = $request->all(); + $lang = $data['lang'] ?? 'en'; $context = Cache::get($data["ref"]); if (!$context || $context["context"] != "nordigen" || !array_key_exists("requisitionId", $context)) return view('bank.nordigen.handler', [ + 'lang' => $lang, 'failed_reason' => "ref-invalid", "redirectUrl" => ($context && array_key_exists("redirect", $context) ? $context["redirect"] : config('ninja.app_url')) . "?action=nordigen_connect&status=failed&reason=ref-invalid", ]); @@ -198,6 +210,7 @@ class NordigenController extends BaseController if (!(config('ninja.nordigen.secret_id') && config('ninja.nordigen.secret_key'))) return view('bank.nordigen.handler', [ + 'lang' => $lang, 'company' => $company, 'account' => $company->account, 'failed_reason' => "account-config-invalid", @@ -206,6 +219,7 @@ class NordigenController extends BaseController if (!(Ninja::isSelfHost() || (Ninja::isHosted() && $account->isPaid() && $account->plan == 'enterprise'))) return view('bank.nordigen.handler', [ + 'lang' => $lang, 'company' => $company, 'account' => $company->account, 'failed_reason' => "not-available", @@ -219,6 +233,7 @@ class NordigenController extends BaseController // check validity of requisition if (!$requisition) return view('bank.nordigen.handler', [ + 'lang' => $lang, 'company' => $company, 'account' => $company->account, 'failed_reason' => "requisition-not-found", @@ -226,6 +241,7 @@ class NordigenController extends BaseController ]); if ($requisition["status"] != "LN") return view('bank.nordigen.handler', [ + 'lang' => $lang, 'company' => $company, 'account' => $company->account, 'failed_reason' => "requisition-invalid-status", @@ -233,6 +249,7 @@ class NordigenController extends BaseController ]); if (sizeof($requisition["accounts"]) == 0) return view('bank.nordigen.handler', [ + 'lang' => $lang, 'company' => $company, 'account' => $company->account, 'failed_reason' => "requisition-no-accounts", diff --git a/app/Http/Requests/Nordigen/ConfirmNordigenBankIntegrationRequest.php b/app/Http/Requests/Nordigen/ConfirmNordigenBankIntegrationRequest.php index 879410bb8bbc..a529b46ed1cf 100644 --- a/app/Http/Requests/Nordigen/ConfirmNordigenBankIntegrationRequest.php +++ b/app/Http/Requests/Nordigen/ConfirmNordigenBankIntegrationRequest.php @@ -34,6 +34,7 @@ class ConfirmNordigenBankIntegrationRequest extends Request { return [ 'ref' => 'required|string', // nordigen redirects only with the ref-property + 'lang' => 'string', ]; } } diff --git a/app/Http/Requests/Nordigen/ConnectNordigenBankIntegrationRequest.php b/app/Http/Requests/Nordigen/ConnectNordigenBankIntegrationRequest.php index b68b1d76ce16..f4834d05d385 100644 --- a/app/Http/Requests/Nordigen/ConnectNordigenBankIntegrationRequest.php +++ b/app/Http/Requests/Nordigen/ConnectNordigenBankIntegrationRequest.php @@ -38,6 +38,7 @@ class ConnectNordigenBankIntegrationRequest extends Request public function rules() { return [ + 'lang' => 'string', 'institution_id' => 'string', 'redirect' => 'string', // TODO: @turbo124 @todo validate, that this is a url without / at the end ]; diff --git a/lang/de/texts.php b/lang/de/texts.php index 3bf53d2dbd76..9e0731882600 100644 --- a/lang/de/texts.php +++ b/lang/de/texts.php @@ -96,7 +96,7 @@ $lang = array( 'powered_by' => 'Unterstützt durch', 'no_items' => 'Keine Elemente', 'recurring_invoices' => 'Wiederkehrende Rechnungen', - 'recurring_help' => '

Senden Sie Ihren Kunden automatisch die gleichen Rechnungen wöchentlich, zweimonatlich, monatlich, vierteljährlich oder jährlich zu.

+ 'recurring_help' => '

Senden Sie Ihren Kunden automatisch die gleichen Rechnungen wöchentlich, zweimonatlich, monatlich, vierteljährlich oder jährlich zu.

Verwenden Sie :MONTH, :QUARTER oder :YEAR für dynamische Daten. Grundlegende Mathematik funktioniert auch, zum Beispiel :MONTH-1.

Beispiele für dynamische Rechnungsvariablen: