diff --git a/VERSION.txt b/VERSION.txt
index 57ebcacf2c5b..097c041f2526 100644
--- a/VERSION.txt
+++ b/VERSION.txt
@@ -1 +1 @@
-5.7.34
\ No newline at end of file
+5.7.35
\ No newline at end of file
diff --git a/app/Console/Commands/MobileLocalization.php b/app/Console/Commands/MobileLocalization.php
index 482cf9042ade..ddc8c4e3b409 100644
--- a/app/Console/Commands/MobileLocalization.php
+++ b/app/Console/Commands/MobileLocalization.php
@@ -63,10 +63,12 @@ class MobileLocalization extends Command
{
$resources = $this->getResources();
- foreach ($resources as $key => $val) {
- $transKey = "texts.{$key}";
- if (trans($transKey) == $transKey) {
- echo "'$key' => '$val',\n";
+ if(is_iterable($resources)){
+ foreach ($resources as $key => $val) {
+ $transKey = "texts.{$key}";
+ if (trans($transKey) == $transKey) {
+ echo "'$key' => '$val',\n";
+ }
}
}
}
diff --git a/app/Helpers/Invoice/InvoiceItemSum.php b/app/Helpers/Invoice/InvoiceItemSum.php
index c7d444b9c522..4f95d5c7a2ae 100644
--- a/app/Helpers/Invoice/InvoiceItemSum.php
+++ b/app/Helpers/Invoice/InvoiceItemSum.php
@@ -399,8 +399,8 @@ class InvoiceItemSum
$item_tax = 0;
- //$amount = $this->item->line_total - ($this->item->line_total * ($this->invoice->discount / $this->sub_total));
- $amount = ($this->sub_total > 0) ? $this->item->line_total - ($this->invoice->discount * ($this->item->line_total / $this->sub_total)) : 0;
+ $amount = $this->item->line_total - ($this->item->line_total * ($this->invoice->discount / $this->sub_total));
+ //$amount = ($this->sub_total > 0) ? $this->item->line_total - ($this->invoice->discount * ($this->item->line_total / $this->sub_total)) : 0;
$item_tax_rate1_total = $this->calcAmountLineTax($this->item->tax_rate1, $amount);
diff --git a/app/Helpers/Invoice/InvoiceItemSumInclusive.php b/app/Helpers/Invoice/InvoiceItemSumInclusive.php
index 7ca6fb5e2717..af7e98b382ba 100644
--- a/app/Helpers/Invoice/InvoiceItemSumInclusive.php
+++ b/app/Helpers/Invoice/InvoiceItemSumInclusive.php
@@ -353,7 +353,7 @@ class InvoiceItemSumInclusive
if ($this->sub_total == 0) {
$amount = $this->item->line_total;
} else {
- $amount = ($this->sub_total > 0) ? $this->item->line_total - ($this->invoice->discount * ($this->item->line_total / $this->sub_total)) : 0;
+ $amount = $this->item->line_total - ($this->invoice->discount * ($this->item->line_total / $this->sub_total));
// $amount = $this->item->line_total - ($this->item->line_total * ($this->invoice->discount / $this->sub_total));
}
diff --git a/app/Http/Controllers/Bank/YodleeController.php b/app/Http/Controllers/Bank/YodleeController.php
index 30e322a74891..e17769be4eb4 100644
--- a/app/Http/Controllers/Bank/YodleeController.php
+++ b/app/Http/Controllers/Bank/YodleeController.php
@@ -51,6 +51,8 @@ class YodleeController extends BaseController
$this->getAccounts($company, $token);
}
+ $redirect_url = isset($request->getTokenContent()['is_react']) && $request->getTokenContent()['is_react'] ? 'https://app.invoicing.co/#/' : 'https://invoicing.co/';
+
$data = [
'access_token' => $yodlee->getAccessToken(),
'fasttrack_url' => $yodlee->getFastTrackUrl(),
@@ -59,6 +61,7 @@ class YodleeController extends BaseController
'company' => $company,
'account' => $company->account,
'completed' => $request->has('window_closed') ? true : false,
+ 'redirect_url' => $redirect_url,
];
return view('bank.yodlee.auth', $data);
diff --git a/app/Http/Controllers/Reports/ARDetailReportController.php b/app/Http/Controllers/Reports/ARDetailReportController.php
index 1d3784822299..1d3183a41d29 100644
--- a/app/Http/Controllers/Reports/ARDetailReportController.php
+++ b/app/Http/Controllers/Reports/ARDetailReportController.php
@@ -11,11 +11,12 @@
namespace App\Http\Controllers\Reports;
+use App\Utils\Traits\MakesHash;
+use App\Jobs\Report\SendToAdmin;
+use App\Jobs\Report\PreviewReport;
+use App\Services\Report\ARDetailReport;
use App\Http\Controllers\BaseController;
use App\Http\Requests\Report\GenericReportRequest;
-use App\Jobs\Report\SendToAdmin;
-use App\Services\Report\ARDetailReport;
-use App\Utils\Traits\MakesHash;
class ARDetailReportController extends BaseController
{
@@ -61,24 +62,21 @@ class ARDetailReportController extends BaseController
*/
public function __invoke(GenericReportRequest $request)
{
+
+ /** @var \App\Models\User $user */
+ $user = auth()->user();
+
if ($request->has('send_email') && $request->get('send_email')) {
- SendToAdmin::dispatch(auth()->user()->company(), $request->all(), ARDetailReport::class, $this->filename);
+ SendToAdmin::dispatch($user->company(), $request->all(), ARDetailReport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);
}
- // expect a list of visible fields, or use the default
- $export = new ARDetailReport(auth()->user()->company(), $request->all());
+ $hash = \Illuminate\Support\Str::uuid();
- $csv = $export->run();
+ PreviewReport::dispatch($user->company(), $request->all(), ARDetailReport::class, $hash);
- $headers = [
- 'Content-Disposition' => 'attachment',
- 'Content-Type' => 'text/csv',
- ];
+ return response()->json(['message' => $hash], 200);
- return response()->streamDownload(function () use ($csv) {
- echo $csv;
- }, $this->filename, $headers);
}
}
diff --git a/app/Http/Controllers/Reports/ARSummaryReportController.php b/app/Http/Controllers/Reports/ARSummaryReportController.php
index cde4779451e3..0898c9e408ae 100644
--- a/app/Http/Controllers/Reports/ARSummaryReportController.php
+++ b/app/Http/Controllers/Reports/ARSummaryReportController.php
@@ -11,11 +11,12 @@
namespace App\Http\Controllers\Reports;
-use App\Http\Controllers\BaseController;
-use App\Http\Requests\Report\GenericReportRequest;
-use App\Jobs\Report\SendToAdmin;
-use App\Services\Report\ARSummaryReport;
use App\Utils\Traits\MakesHash;
+use App\Jobs\Report\SendToAdmin;
+use App\Jobs\Report\PreviewReport;
+use App\Http\Controllers\BaseController;
+use App\Services\Report\ARSummaryReport;
+use App\Http\Requests\Report\GenericReportRequest;
class ARSummaryReportController extends BaseController
{
@@ -71,17 +72,11 @@ class ARSummaryReportController extends BaseController
}
// expect a list of visible fields, or use the default
- $export = new ARSummaryReport($user->company(), $request->all());
+ $hash = \Illuminate\Support\Str::uuid();
- $csv = $export->run();
+ PreviewReport::dispatch($user->company(), $request->all(), ARSummaryReport::class, $hash);
- $headers = [
- 'Content-Disposition' => 'attachment',
- 'Content-Type' => 'text/csv',
- ];
+ return response()->json(['message' => $hash], 200);
- return response()->streamDownload(function () use ($csv) {
- echo $csv;
- }, $this->filename, $headers);
}
}
diff --git a/app/Http/Controllers/Reports/ClientBalanceReportController.php b/app/Http/Controllers/Reports/ClientBalanceReportController.php
index c29b0a213a10..d3b1859dd07c 100644
--- a/app/Http/Controllers/Reports/ClientBalanceReportController.php
+++ b/app/Http/Controllers/Reports/ClientBalanceReportController.php
@@ -11,11 +11,12 @@
namespace App\Http\Controllers\Reports;
-use App\Http\Controllers\BaseController;
-use App\Http\Requests\Report\GenericReportRequest;
-use App\Jobs\Report\SendToAdmin;
-use App\Services\Report\ClientBalanceReport;
use App\Utils\Traits\MakesHash;
+use App\Jobs\Report\SendToAdmin;
+use App\Jobs\Report\PreviewReport;
+use App\Http\Controllers\BaseController;
+use App\Services\Report\ClientBalanceReport;
+use App\Http\Requests\Report\GenericReportRequest;
class ClientBalanceReportController extends BaseController
{
@@ -61,24 +62,20 @@ class ClientBalanceReportController extends BaseController
*/
public function __invoke(GenericReportRequest $request)
{
+ /** @var \App\Models\User $user */
+ $user = auth()->user();
+
if ($request->has('send_email') && $request->get('send_email')) {
- SendToAdmin::dispatch(auth()->user()->company(), $request->all(), ClientBalanceReport::class, $this->filename);
+ SendToAdmin::dispatch($user->company(), $request->all(), ClientBalanceReport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);
}
- // expect a list of visible fields, or use the default
- $export = new ClientBalanceReport(auth()->user()->company(), $request->all());
+ $hash = \Illuminate\Support\Str::uuid();
- $csv = $export->run();
+ PreviewReport::dispatch($user->company(), $request->all(), ClientBalanceReport::class, $hash);
- $headers = [
- 'Content-Disposition' => 'attachment',
- 'Content-Type' => 'text/csv',
- ];
+ return response()->json(['message' => $hash], 200);
- return response()->streamDownload(function () use ($csv) {
- echo $csv;
- }, $this->filename, $headers);
}
}
diff --git a/app/Http/Controllers/Reports/ClientSalesReportController.php b/app/Http/Controllers/Reports/ClientSalesReportController.php
index 63c0ac69fe3c..612986f42123 100644
--- a/app/Http/Controllers/Reports/ClientSalesReportController.php
+++ b/app/Http/Controllers/Reports/ClientSalesReportController.php
@@ -11,11 +11,12 @@
namespace App\Http\Controllers\Reports;
-use App\Http\Controllers\BaseController;
-use App\Http\Requests\Report\GenericReportRequest;
-use App\Jobs\Report\SendToAdmin;
-use App\Services\Report\ClientSalesReport;
use App\Utils\Traits\MakesHash;
+use App\Jobs\Report\SendToAdmin;
+use App\Jobs\Report\PreviewReport;
+use App\Http\Controllers\BaseController;
+use App\Services\Report\ClientSalesReport;
+use App\Http\Requests\Report\GenericReportRequest;
class ClientSalesReportController extends BaseController
{
@@ -61,24 +62,20 @@ class ClientSalesReportController extends BaseController
*/
public function __invoke(GenericReportRequest $request)
{
+ /** @var \App\Models\User $user */
+ $user = auth()->user();
+
if ($request->has('send_email') && $request->get('send_email')) {
- SendToAdmin::dispatch(auth()->user()->company(), $request->all(), ClientSalesReport::class, $this->filename);
+ SendToAdmin::dispatch($user->company(), $request->all(), ClientSalesReport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);
}
- // expect a list of visible fields, or use the default
- $export = new ClientSalesReport(auth()->user()->company(), $request->all());
+ $hash = \Illuminate\Support\Str::uuid();
- $csv = $export->run();
+ PreviewReport::dispatch($user->company(), $request->all(), ClientSalesReport::class, $hash);
- $headers = [
- 'Content-Disposition' => 'attachment',
- 'Content-Type' => 'text/csv',
- ];
+ return response()->json(['message' => $hash], 200);
- return response()->streamDownload(function () use ($csv) {
- echo $csv;
- }, $this->filename, $headers);
}
}
diff --git a/app/Http/Controllers/Reports/ProductSalesReportController.php b/app/Http/Controllers/Reports/ProductSalesReportController.php
index f27de4b19343..a2b8902db852 100644
--- a/app/Http/Controllers/Reports/ProductSalesReportController.php
+++ b/app/Http/Controllers/Reports/ProductSalesReportController.php
@@ -11,13 +11,14 @@
namespace App\Http\Controllers\Reports;
+use App\Models\Client;
+use Illuminate\Http\Response;
+use App\Utils\Traits\MakesHash;
+use App\Jobs\Report\SendToAdmin;
+use App\Jobs\Report\PreviewReport;
use App\Export\CSV\ProductSalesExport;
use App\Http\Controllers\BaseController;
use App\Http\Requests\Report\ProductSalesReportRequest;
-use App\Jobs\Report\SendToAdmin;
-use App\Models\Client;
-use App\Utils\Traits\MakesHash;
-use Illuminate\Http\Response;
class ProductSalesReportController extends BaseController
{
@@ -63,24 +64,20 @@ class ProductSalesReportController extends BaseController
*/
public function __invoke(ProductSalesReportRequest $request)
{
+ /** @var \App\Models\User $user */
+ $user = auth()->user();
+
if ($request->has('send_email') && $request->get('send_email')) {
- SendToAdmin::dispatch(auth()->user()->company(), $request->all(), ProductSalesExport::class, $this->filename);
+ SendToAdmin::dispatch($user->company(), $request->all(), ProductSalesExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);
}
- // expect a list of visible fields, or use the default
- $export = new ProductSalesExport(auth()->user()->company(), $request->all());
+ $hash = \Illuminate\Support\Str::uuid();
- $csv = $export->run();
+ PreviewReport::dispatch($user->company(), $request->all(), ProductSalesExport::class, $hash);
- $headers = [
- 'Content-Disposition' => 'attachment',
- 'Content-Type' => 'text/csv',
- ];
+ return response()->json(['message' => $hash], 200);
- return response()->streamDownload(function () use ($csv) {
- echo $csv;
- }, $this->filename, $headers);
}
}
diff --git a/app/Http/Controllers/Reports/ProfitAndLossController.php b/app/Http/Controllers/Reports/ProfitAndLossController.php
index 26e860f16bd5..18e575dd8d7c 100644
--- a/app/Http/Controllers/Reports/ProfitAndLossController.php
+++ b/app/Http/Controllers/Reports/ProfitAndLossController.php
@@ -11,13 +11,14 @@
namespace App\Http\Controllers\Reports;
+use App\Models\Client;
+use Illuminate\Http\Response;
+use App\Utils\Traits\MakesHash;
+use App\Jobs\Report\SendToAdmin;
+use App\Jobs\Report\PreviewReport;
+use App\Services\Report\ProfitLoss;
use App\Http\Controllers\BaseController;
use App\Http\Requests\Report\ProfitLossRequest;
-use App\Jobs\Report\SendToAdmin;
-use App\Models\Client;
-use App\Services\Report\ProfitLoss;
-use App\Utils\Traits\MakesHash;
-use Illuminate\Http\Response;
class ProfitAndLossController extends BaseController
{
@@ -71,18 +72,13 @@ class ProfitAndLossController extends BaseController
return response()->json(['message' => 'working...'], 200);
}
- // expect a list of visible fields, or use the default
- $pnl = new ProfitLoss($user->company(), $request->all());
- $csv = $pnl->run();
+ $hash = \Illuminate\Support\Str::uuid();
+
+ PreviewReport::dispatch($user->company(), $request->all(), ProfitLoss::class, $hash);
+
+ return response()->json(['message' => $hash], 200);
- $headers = [
- 'Content-Disposition' => 'attachment',
- 'Content-Type' => 'text/csv',
- ];
- return response()->streamDownload(function () use ($csv) {
- echo $csv;
- }, $this->filename, $headers);
}
}
diff --git a/app/Http/Controllers/Reports/TaxSummaryReportController.php b/app/Http/Controllers/Reports/TaxSummaryReportController.php
index b199eadcc1f2..08b978a0037d 100644
--- a/app/Http/Controllers/Reports/TaxSummaryReportController.php
+++ b/app/Http/Controllers/Reports/TaxSummaryReportController.php
@@ -11,11 +11,12 @@
namespace App\Http\Controllers\Reports;
-use App\Http\Controllers\BaseController;
-use App\Http\Requests\Report\GenericReportRequest;
-use App\Jobs\Report\SendToAdmin;
-use App\Services\Report\TaxSummaryReport;
use App\Utils\Traits\MakesHash;
+use App\Jobs\Report\SendToAdmin;
+use App\Jobs\Report\PreviewReport;
+use App\Http\Controllers\BaseController;
+use App\Services\Report\TaxSummaryReport;
+use App\Http\Requests\Report\GenericReportRequest;
class TaxSummaryReportController extends BaseController
{
@@ -61,24 +62,21 @@ class TaxSummaryReportController extends BaseController
*/
public function __invoke(GenericReportRequest $request)
{
+
+ /** @var \App\Models\User $user */
+ $user = auth()->user();
+
if ($request->has('send_email') && $request->get('send_email')) {
- SendToAdmin::dispatch(auth()->user()->company(), $request->all(), TaxSummaryReport::class, $this->filename);
+ SendToAdmin::dispatch($user->company(), $request->all(), TaxSummaryReport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);
}
- // expect a list of visible fields, or use the default
- $export = new TaxSummaryReport(auth()->user()->company(), $request->all());
+ $hash = \Illuminate\Support\Str::uuid();
- $csv = $export->run();
+ PreviewReport::dispatch($user->company(), $request->all(), TaxSummaryReport::class, $hash);
- $headers = [
- 'Content-Disposition' => 'attachment',
- 'Content-Type' => 'text/csv',
- ];
+ return response()->json(['message' => $hash], 200);
- return response()->streamDownload(function () use ($csv) {
- echo $csv;
- }, $this->filename, $headers);
}
}
diff --git a/app/Http/Controllers/Reports/UserSalesReportController.php b/app/Http/Controllers/Reports/UserSalesReportController.php
index 2d80995791aa..c26e7dd35d3e 100644
--- a/app/Http/Controllers/Reports/UserSalesReportController.php
+++ b/app/Http/Controllers/Reports/UserSalesReportController.php
@@ -11,11 +11,12 @@
namespace App\Http\Controllers\Reports;
-use App\Http\Controllers\BaseController;
-use App\Http\Requests\Report\GenericReportRequest;
-use App\Jobs\Report\SendToAdmin;
-use App\Services\Report\UserSalesReport;
use App\Utils\Traits\MakesHash;
+use App\Jobs\Report\SendToAdmin;
+use App\Jobs\Report\PreviewReport;
+use App\Http\Controllers\BaseController;
+use App\Services\Report\UserSalesReport;
+use App\Http\Requests\Report\GenericReportRequest;
class UserSalesReportController extends BaseController
{
@@ -61,24 +62,20 @@ class UserSalesReportController extends BaseController
*/
public function __invoke(GenericReportRequest $request)
{
+ /** @var \App\Models\User $user */
+ $user = auth()->user();
+
if ($request->has('send_email') && $request->get('send_email')) {
- SendToAdmin::dispatch(auth()->user()->company(), $request->all(), UserSalesReport::class, $this->filename);
+ SendToAdmin::dispatch($user->company(), $request->all(), UserSalesReport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);
}
- // expect a list of visible fields, or use the default
- $export = new UserSalesReport(auth()->user()->company(), $request->all());
+ $hash = \Illuminate\Support\Str::uuid();
- $csv = $export->run();
+ PreviewReport::dispatch($user->company(), $request->all(), UserSalesReport::class, $hash);
- $headers = [
- 'Content-Disposition' => 'attachment',
- 'Content-Type' => 'text/csv',
- ];
+ return response()->json(['message' => $hash], 200);
- return response()->streamDownload(function () use ($csv) {
- echo $csv;
- }, $this->filename, $headers);
}
}
diff --git a/app/Http/Middleware/Locale.php b/app/Http/Middleware/Locale.php
index cea5b9b8f7b6..5f7f2006f3e5 100644
--- a/app/Http/Middleware/Locale.php
+++ b/app/Http/Middleware/Locale.php
@@ -27,8 +27,8 @@ class Locale
public function handle($request, Closure $next)
{
/*LOCALE SET */
- if ($request->has('lang')) {
- $locale = $request->input('lang');
+ if ($request->has('lang') && is_string($request->input('lang'))) {
+ $locale = $request->string('lang','en');
App::setLocale($locale);
} elseif (auth()->guard('contact')->user()) {
App::setLocale(auth()->guard('contact')->user()->client()->setEagerLoads([])->first()->locale());
diff --git a/app/Http/Middleware/SetEmailDb.php b/app/Http/Middleware/SetEmailDb.php
index d2dd3190c246..fa02b2c7592b 100644
--- a/app/Http/Middleware/SetEmailDb.php
+++ b/app/Http/Middleware/SetEmailDb.php
@@ -32,7 +32,7 @@ class SetEmailDb
'errors' => new stdClass,
];
- if ($request->input('email') && config('ninja.db.multi_db_enabled')) {
+ if ($request->input('email') && is_string($request->input('email')) && config('ninja.db.multi_db_enabled')) {
if (! MultiDB::userFindAndSetDb($request->input('email'))) {
return response()->json($error, 400);
}
diff --git a/app/Http/Middleware/VendorLocale.php b/app/Http/Middleware/VendorLocale.php
index abca08b9e3d7..17ae99c62e3f 100644
--- a/app/Http/Middleware/VendorLocale.php
+++ b/app/Http/Middleware/VendorLocale.php
@@ -32,7 +32,7 @@ class VendorLocale
}
/*LOCALE SET */
- if ($request->has('lang')) {
+ if ($request->has('lang') && is_string($request->input('lang'))) {
$locale = $request->input('lang');
App::setLocale($locale);
} elseif (auth()->guard('vendor')->user()) {
diff --git a/app/PaymentDrivers/GoCardless/DirectDebit.php b/app/PaymentDrivers/GoCardless/DirectDebit.php
index f27696d8627d..c99ef060d10f 100644
--- a/app/PaymentDrivers/GoCardless/DirectDebit.php
+++ b/app/PaymentDrivers/GoCardless/DirectDebit.php
@@ -108,7 +108,8 @@ class DirectDebit implements MethodInterface
$response = $this->go_cardless->gateway->billingRequests()->create([
"params" => [
"mandate_request" => [
- "currency" => auth()->guard('contact')->user()->client->currency()->code
+ "currency" => auth()->guard('contact')->user()->client->currency()->code,
+ "verify" => "recommended"
]
]
]);
diff --git a/app/PaymentDrivers/GoCardlessPaymentDriver.php b/app/PaymentDrivers/GoCardlessPaymentDriver.php
index 3201890465bc..c91cd68d1fea 100644
--- a/app/PaymentDrivers/GoCardlessPaymentDriver.php
+++ b/app/PaymentDrivers/GoCardlessPaymentDriver.php
@@ -144,11 +144,18 @@ class GoCardlessPaymentDriver extends BaseDriver
$this->init();
+ if ($payment_hash->fee_invoice) {
+ $description = "Invoice {$payment_hash->fee_invoice->number} for {$amount} for client {$this->client->present()->name()}";
+ } else {
+ $description = "Amount {$amount} from client {$this->client->present()->name()}";
+ }
+
try {
$payment = $this->gateway->payments()->create([
'params' => [
'amount' => $converted_amount,
'currency' => $this->client->getCurrencyCode(),
+ 'description' => $description,
'metadata' => [
'payment_hash' => $this->payment_hash->hash,
],
diff --git a/app/Services/Pdf/PdfBuilder.php b/app/Services/Pdf/PdfBuilder.php
index 7a496e17578b..d6df412c4213 100644
--- a/app/Services/Pdf/PdfBuilder.php
+++ b/app/Services/Pdf/PdfBuilder.php
@@ -652,7 +652,7 @@ class PdfBuilder
/**
* Formats the line items for display.
*
- * @param array<\App\DataMapper\InvoiceItem> $items
+ * @param array $items
* @param string $table_type
*
* @return array
@@ -662,10 +662,10 @@ class PdfBuilder
$data = [];
$locale_info = localeconv();
-
- // $this->service->config->entity_currency = $this->service->config->currency;
-
+
foreach ($items as $key => $item) {
+ /** @var \App\DataMapper\InvoiceItem $item */
+
if ($table_type == '$product' && $item->type_id != 1) {
if ($item->type_id != 4 && $item->type_id != 6 && $item->type_id != 5) {
continue;
@@ -980,7 +980,7 @@ class PdfBuilder
return [
['element' => 'div', 'properties' => ['style' => 'display: flex; flex-direction: column;'], 'elements' => [
['element' => 'div', 'properties' => ['style' => 'margin-top: 1.5rem; display: block; align-items: flex-start; page-break-inside: avoid; visible !important;'], 'elements' => [
- ['element' => 'img', 'properties' => ['src' => '$invoiceninja.whitelabel', 'style' => 'height: 2.5rem;', 'hidden' => 'false', 'id' => 'invoiceninja-whitelabel-logo']],
+ ['element' => 'img', 'properties' => ['src' => '$invoiceninja.whitelabel', 'style' => 'height: 2.5rem;', 'hidden' => $this->service->company->account->isPaid() ? 'true' : 'false', 'id' => 'invoiceninja-whitelabel-logo']],
]],
]],
];
@@ -1052,7 +1052,7 @@ class PdfBuilder
]],
['element' => 'img', 'properties' => ['style' => 'max-width: 50%; height: auto;', 'src' => '$contact.signature', 'id' => 'contact-signature']],
['element' => 'div', 'properties' => ['style' => 'margin-top: 1.5rem; display: flex; align-items: flex-start; page-break-inside: auto;'], 'elements' => [
- ['element' => 'img', 'properties' => ['src' => '$invoiceninja.whitelabel', 'style' => 'height: 2.5rem;', 'hidden' => 'false', 'id' => 'invoiceninja-whitelabel-logo']],
+ ['element' => 'img', 'properties' => ['src' => '$invoiceninja.whitelabel', 'style' => 'height: 2.5rem;', 'hidden' => $this->service->company->account->isPaid() ? 'true' : 'false', 'id' => 'invoiceninja-whitelabel-logo']],
]],
]],
['element' => 'div', 'properties' => ['class' => 'totals-table-right-side', 'dir' => '$dir'], 'elements' => []],
diff --git a/app/Services/Report/TaxSummaryReport.php b/app/Services/Report/TaxSummaryReport.php
index aaf313eaf23a..3f1b67512e7f 100644
--- a/app/Services/Report/TaxSummaryReport.php
+++ b/app/Services/Report/TaxSummaryReport.php
@@ -113,12 +113,15 @@ class TaxSummaryReport extends BaseExport
if(in_array($invoice->status_id, [Invoice::STATUS_PARTIAL,Invoice::STATUS_PAID])) {
- if($invoice->status_id == Invoice::STATUS_PAID) {
- $cash_map[$key]['tax_amount'] += $tax['total'];
- } else {
- $cash_map[$key]['tax_amount'] += (($invoice->amount - $invoice->balance) / $invoice->balance) * $tax['total'] ?? 0;
+ try {
+ if($invoice->status_id == Invoice::STATUS_PAID) {
+ $cash_map[$key]['tax_amount'] += $tax['total'];
+ } else {
+ $cash_map[$key]['tax_amount'] += (($invoice->amount - $invoice->balance) / $invoice->balance) * $tax['total'] ?? 0;
+ }
+ } catch(\DivisionByZeroError $e) {
+ $cash_map[$key]['tax_amount'] += 0;
}
-
}
}
diff --git a/config/ninja.php b/config/ninja.php
index b6801e5f61f6..52bcd06fbdd7 100644
--- a/config/ninja.php
+++ b/config/ninja.php
@@ -15,8 +15,8 @@ return [
'require_https' => env('REQUIRE_HTTPS', true),
'app_url' => rtrim(env('APP_URL', ''), '/'),
'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
- 'app_version' => env('APP_VERSION','5.7.34'),
- 'app_tag' => env('APP_TAG','5.7.34'),
+ 'app_version' => env('APP_VERSION','5.7.35'),
+ 'app_tag' => env('APP_TAG','5.7.35'),
'minimum_client_version' => '5.0.16',
'terms_version' => '1.0.1',
'api_secret' => env('API_SECRET', ''),
diff --git a/lang/de/texts.php b/lang/de/texts.php
index 51496ae6b371..c1b62d6a1b69 100644
--- a/lang/de/texts.php
+++ b/lang/de/texts.php
@@ -203,7 +203,7 @@ $LANG = array(
'limit_clients' => 'Entschuldigung aber das wird das Limit von :count Kunden überschreiten. Bitte führen Sie ein kostenpflichtiges Upgrade durch.',
'payment_error' => 'Es ist ein Fehler während der Zahlung aufgetreten. Bitte versuche es später noch einmal.',
'registration_required' => 'Registrierung erforderlich',
- 'confirmation_required' => 'Bitte verifiziere deine E-Mail Adresse, :link um die E-Mail Bestätigung erneut zu senden.',
+ 'confirmation_required' => 'Bitte verifiziern Sie Ihre E-Mail-Adresse, :link um die E-Mail-Bestätigung erneut zu senden.',
'updated_client' => 'Kunde erfolgreich aktualisiert',
'archived_client' => 'Kunde erfolgreich archiviert',
'archived_clients' => ':count Kunden erfolgreich archiviert',
@@ -239,7 +239,7 @@ $LANG = array(
'deleted_vendors' => ':count Lieferanten erfolgreich gelöscht',
'confirmation_subject' => 'Kontobestätigung',
'confirmation_header' => 'Kontobestätigung',
- 'confirmation_message' => 'Bitte klicke auf den folgenden Link um dein Konto zu bestätigen.',
+ 'confirmation_message' => 'Bitte klicken Sie auf den folgenden Link, um Ihr Konto zu bestätigen.',
'invoice_subject' => 'Neue Rechnung :number von :account',
'invoice_message' => 'Um Ihre Rechnung über :amount einzusehen, klicken Sie bitte auf den folgenden Link:',
'payment_subject' => 'Zahlungseingang',
@@ -247,7 +247,7 @@ $LANG = array(
'email_salutation' => 'Sehr geehrte/r :name,',
'email_signature' => 'Mit freundlichen Grüßen',
'email_from' => 'Das InvoiceNinja Team',
- 'invoice_link_message' => 'Um deine Kundenrechnung anzuschauen, klicke auf den folgenden Link:',
+ 'invoice_link_message' => 'Um die Rechnung anzuschauen, bitte auf den folgenden Link klicken:',
'notification_invoice_paid_subject' => 'Die Rechnung :invoice wurde von :client bezahlt.',
'notification_invoice_sent_subject' => 'Rechnung :invoice wurde an :client versendet.',
'notification_invoice_viewed_subject' => 'Die Rechnung :invoice wurde von :client angeschaut.',
@@ -256,20 +256,20 @@ $LANG = array(
'notification_invoice_viewed' => 'Der Kunde :client hat sich die Rechnung :invoice über :amount angesehen.',
'stripe_payment_text' => 'Rechnung :invoicenumber in Höhe von :amount für Kunde :client',
'stripe_payment_text_without_invoice' => 'Zahlung ohne Rechnung in Höhe von :amount für Kunde :client',
- 'reset_password' => 'Du kannst dein Passwort zurücksetzen, indem du auf den folgenden Link klickst:',
+ 'reset_password' => 'Sie können Ihr Passwort zurücksetzen, indem Sie auf den folgenden Link klicken:',
'secure_payment' => 'Sichere Zahlung',
'card_number' => 'Kartennummer',
'expiration_month' => 'Ablaufmonat',
'expiration_year' => 'Ablaufjahr',
'cvv' => 'Kartenprüfziffer',
'logout' => 'Abmelden',
- 'sign_up_to_save' => 'Melde dich an, um deine Arbeit zu speichern',
+ 'sign_up_to_save' => 'Melden Sie sich an, um Ihre Arbeit zu speichern',
'agree_to_terms' => 'Ich stimme den :terms zu',
'terms_of_service' => 'Service-Bedingungen',
'email_taken' => 'Diese E-Mail-Adresse ist bereits registriert',
'working' => 'Wird bearbeitet',
'success' => 'Erfolg',
- 'success_message' => 'Du hast dich erfolgreich registriert. Bitte besuche den Link in deiner Bestätigungsmail um deine E-Mail-Adresse zu verifizieren.',
+ 'success_message' => 'Sie haben sich erfolgreich registriert. Bitte rufen Sie den Link in der Bestätigungs-Mail auf, um Ihre E-Mail-Adresse zu verifizieren.',
'erase_data' => 'Ihr Konto ist nicht registriert, diese Aktion wird Ihre Daten unwiderruflich löschen.',
'password' => 'Passwort',
'pro_plan_product' => 'Pro Plan',
@@ -343,12 +343,12 @@ $LANG = array(
'converted_to_invoice' => 'Angebot erfolgreich in Rechnung umgewandelt',
'quote_subject' => 'Neues Angebot :number von :account',
'quote_message' => 'Klicken Sie auf den folgenden Link um das Angebot über :amount anzuschauen.',
- 'quote_link_message' => 'Klicke auf den folgenden Link um das Angebot deines Kunden anzuschauen:',
+ 'quote_link_message' => 'Um das Angebot anzuschauen, bitte auf den folgenden Link klicken:',
'notification_quote_sent_subject' => 'Angebot :invoice wurde an :client versendet',
'notification_quote_viewed_subject' => 'Angebot :invoice wurde von :client angeschaut',
'notification_quote_sent' => 'Der folgende Kunde :client erhielt das Angebot :invoice über :amount.',
'notification_quote_viewed' => 'Der folgende Kunde :client hat sich das Angebot :client über :amount angesehen.',
- 'session_expired' => 'Deine Sitzung ist abgelaufen.',
+ 'session_expired' => 'Ihre Sitzung ist abgelaufen.',
'invoice_fields' => 'Rechnungsfelder',
'invoice_options' => 'Rechnungsoptionen',
'hide_paid_to_date' => '"Bereits gezahlt" ausblenden',
@@ -372,7 +372,7 @@ $LANG = array(
'confirm_recurring_email_invoice' => 'Wiederkehrende Rechnung ist aktiv. Bis du sicher, dass du diese Rechnung weiterhin als E-Mail verschicken möchtest?',
'confirm_recurring_email_invoice_not_sent' => 'Sind Sie sicher, dass Sie diese wiederkehrende Rechnung aktivieren wollen?',
'cancel_account' => 'Konto kündigen',
- 'cancel_account_message' => 'Warnung: Diese Aktion wird dein Konto unwiderruflich löschen.',
+ 'cancel_account_message' => 'Warnung: Diese Aktion wird Ihr Konto unwiderruflich löschen.',
'go_back' => 'Zurück',
'data_visualizations' => 'Datenvisualisierungen',
'sample_data' => 'Beispieldaten werden angezeigt',
@@ -591,7 +591,7 @@ $LANG = array(
'pro_plan_call_to_action' => 'Jetzt Upgraden!',
'pro_plan_feature1' => 'Unlimitierte Anzahl Kunden erstellen',
'pro_plan_feature2' => 'Zugriff auf 10 schöne Rechnungsdesigns',
- 'pro_plan_feature3' => 'Benutzerdefinierte URLs - "DeineFirma.InvoiceNinja.com"',
+ 'pro_plan_feature3' => 'Benutzerdefinierte URLs - "IhreFirma.InvoiceNinja.com"',
'pro_plan_feature4' => '"Erstellt durch Invoice Ninja" entfernen',
'pro_plan_feature5' => 'Multi-Benutzer Zugriff & Aktivitätstracking',
'pro_plan_feature6' => 'Angebote & pro-forma Rechnungen erstellen',
@@ -601,7 +601,7 @@ $LANG = array(
'break_duration' => 'Pause',
'edit_details' => 'Details bearbeiten',
'work' => 'Arbeiten',
- 'timezone_unset' => 'Bitte :link um deine Zeitzone zu setzen',
+ 'timezone_unset' => 'Bitte :link um Ihre Zeitzone zu setzen',
'click_here' => 'hier klicken',
'email_receipt' => 'Zahlungsbestätigung an Kunden per E-Mail senden',
'created_payment_emailed_client' => 'Zahlung erfolgreich erstellt und Kunde per E-Mail benachrichtigt',
@@ -659,7 +659,7 @@ $LANG = array(
'primary_user' => 'Primärer Benutzer',
'help' => 'Hilfe',
'playground' => 'Spielplatz',
- 'support_forum' => 'Support Forums',
+ 'support_forum' => 'Support-Foren',
'invoice_due_date' => 'Fälligkeitsdatum',
'quote_due_date' => 'Gültig bis',
'valid_until' => 'Gültig bis',
@@ -676,7 +676,7 @@ $LANG = array(
'status_all' => 'Alle',
'show_line_item_tax' => 'Steuern für Belegpositionen in der jeweiligen Zeile anzeigen',
'iframe_url' => 'Webseite',
- 'iframe_url_help1' => 'Kopiere den folgenden Code in eine Seite auf deiner Website.',
+ 'iframe_url_help1' => 'Kopieren Sie den folgenden Code auf eine Seite Ihrer Website.',
'iframe_url_help2' => 'Du kannst diese Funktion testen, in dem du für eine Rechnung \'Als Empfänger betrachten\'. anklickst.',
'auto_bill' => 'Automatische Verrechnung',
'military_time' => '24-Stunden-Zeit',
@@ -753,7 +753,7 @@ $LANG = array(
'activity_7' => ':contact schaute Rechnung :invoice für :client an',
'activity_8' => ':user archivierte Rechnung :invoice',
'activity_9' => ':user löschte Rechnung :invoice',
- 'activity_10' => ':user entered payment :payment for :payment_amount on invoice :invoice for :client',
+ 'activity_10' => ':user hat die Zahlung :payment für :payment _amount der Rechnung :invoice für Kunde :client eingegeben',
'activity_11' => ':user aktualisierte Zahlung :payment',
'activity_12' => ':user archivierte Zahlung :payment',
'activity_13' => ':user löschte Zahlung :payment',
@@ -866,13 +866,13 @@ $LANG = array(
'template_help_title' => 'Vorlagen Hilfe',
'template_help_1' => 'Verfügbare Variablen:',
'email_design_id' => 'E-Mail-Stil',
- 'email_design_help' => 'Lass deine E-Mails durch die Verwendung von HTML Layouts professioneller aussehen.',
+ 'email_design_help' => 'Lassen Sie Ihre E-Mails durch die Verwendung von HTML-Layouts professioneller aussehen.',
'plain' => 'Einfach',
'light' => 'Hell',
'dark' => 'Dunkel',
'industry_help' => 'Wird genutzt um Vergleiche zwischen den Durchschnittswerten von Firmen ähnlicher Größe und Branche ermitteln zu können.',
'subdomain_help' => 'Passen Sie die Rechnungslink-Subdomäne an oder stellen Sie die Rechnung auf Ihrer eigenen Webseite zur Verfügung.',
- 'website_help' => 'Zeige die Rechnung als iFrame auf deiner eigenen Webseite an',
+ 'website_help' => 'Zeigt die Rechnung als Iframe auf Ihrer eigenen Webseite an',
'invoice_number_help' => 'Geben Sie einen Präfix oder ein benutzerdefiniertes Schema an, um die Rechnungsnummer dynamisch zu erzeugen.',
'quote_number_help' => 'Geben Sie einen Präfix oder ein benutzerdefiniertes Schema an, um die Angebotsnummer dynamisch zu erzeugen.',
'custom_client_fields_helps' => 'Füge ein Kundenfeld hinzu. Optional kann die Feldbezeichnung und der Feldwert auch in PDF-Dokumenten ausgegeben werden.',
@@ -881,7 +881,7 @@ $LANG = array(
'custom_invoice_charges_helps' => 'Füge ein Rechnungsgebührenfeld hinzu. Erfasse die Kosten, wenn eine neue Rechnung erstellt wird und addiere sie in den Zwischensummen der Rechnung.',
'token_expired' => 'Validierungstoken ist abgelaufen. Bitte probieren Sie es erneut.',
'invoice_link' => 'Link zur Rechnung',
- 'button_confirmation_message' => 'Bestätige deine E-Mail-Adresse.',
+ 'button_confirmation_message' => 'Bestätigen Sie Ihre E-Mail-Adresse.',
'confirm' => 'Bestätigen',
'email_preferences' => 'E-Mail-Einstellungen',
'created_invoices' => ':count Rechnung(en) erfolgreich erstellt',
@@ -1013,9 +1013,9 @@ $LANG = array(
'enable_https' => 'Wir empfehlen dringend HTTPS zu verwenden, um Kreditkarten online zu akzeptieren.',
'quote_issued_to' => 'Angebot ausgefertigt an',
'show_currency_code' => 'Währungscode',
- 'free_year_message' => 'Dein Account wurde für ein Jahr kostenlos auf den PRO-Tarif hochgestuft.',
+ 'free_year_message' => 'Ihr Account wurde für ein Jahr kostenlos auf den Pro-Tarif hochgestuft.',
'trial_message' => 'Ihr Account erhält zwei Wochen Probemitgliedschaft für unseren Pro-Plan.',
- 'trial_footer' => 'Die Testversion deines Pro-Tarifs endet in :count Tagen. :link jetzt hochstufen.',
+ 'trial_footer' => 'Die Testversion Ihres Pro-Tarifs endet in :count Tagen. :link jetzt upgraden.',
'trial_footer_last_day' => 'Heute ist der letzte Tag Ihrer kostenlosen Probezeit, :link um das Upgrade jetzt durchzuführen.',
'trial_call_to_action' => 'Kostenlose Probezeit starten',
'trial_success' => 'Erfolgreich eine 2-Wochen Testversion aktiviert',
@@ -1023,7 +1023,7 @@ $LANG = array(
'white_label_text' => 'Kaufen Sie eine Ein-Jahres-"White Label"-Lizenz für $:price um das Invoice Ninja Branding von den Rechnungen und dem Kundenportal zu entfernen.',
- 'user_email_footer' => 'Um deine E-Mail-Benachrichtigungen anzupassen besuche bitte :link',
+ 'user_email_footer' => 'Um Ihre E-Mail-Benachrichtigungen anzupassen, klicken Sie bitte auf :link',
'reset_password_footer' => 'Wenn du das Zurücksetzen des Passworts nicht beantragt hast, benachrichtige bitte unseren Support: :email',
'limit_users' => 'Entschuldige, das würde das Limit von :limit Benutzern überschreiten',
'more_designs_self_host_header' => 'Erhalte 6 zusätzliche Rechnungsdesigns für nur $:price',
@@ -1149,7 +1149,7 @@ $LANG = array(
'plan_status' => 'Plan Status',
'plan_upgrade' => 'Upgraden',
- 'plan_change' => 'Manage Plan',
+ 'plan_change' => 'Tarif verwalten',
'pending_change_to' => 'Änderungen zu',
'plan_changes_to' => ':plan am :date',
'plan_term_changes_to' => ':plan (:term) am :date',
@@ -1821,8 +1821,8 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'bot_emailed_notify_paid' => 'Ich schicke Ihnen nach der Zahlung eine E-Mail.',
'add_product_to_invoice' => 'Füge 1 :product hinzu',
'not_authorized' => 'Du bist nicht autorisiert',
- 'bot_get_code' => 'Danke! Ich habe dir eine E-Mail mit deinem Sicherheitscode geschickt.',
- 'bot_welcome' => 'Das war es schon, dein Account ist verifiziert.
',
+ 'bot_get_code' => 'Danke! Ich habe Ihnen eine E-Mail mit Ihrem Sicherheitscode gesendet.',
+ 'bot_welcome' => 'Das war es schon, Ihr Account ist verifiziert.
',
'email_not_found' => 'Ich konnte keinen verfügbaren Account für :email finden',
'invalid_code' => 'Der Code ist nicht korrekt',
'security_code_email_subject' => 'Sicherheitscode für Invoice Ninja Bot',
@@ -1968,7 +1968,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'realtime_preview' => 'Echtzeit Vorschau',
'realtime_preview_help' => 'Echtzeit Aktualisierung der PDF Vorschau während der Rechnungs-Bearbeitung.
Deaktivieren um die Performance während des Bearbeitens zu verbessern.',
'live_preview_help' => 'Live PDF Vorschau auf Rechnungsseite anzeigen.',
- 'force_pdfjs_help' => 'Ersetze den eingebauten PDF-Viewer in :chrome_link und :firefox_link.
Aktiviere dies, wenn dein Browser die PDFs automatisch herunterlädt.',
+ 'force_pdfjs_help' => 'Ersetze den eingebauten PDF-Viewer in :chrome_link und :firefox_link.
Aktivieren Sie dies, wenn Ihr Browser die PDFs automatisch herunterlädt.',
'force_pdfjs' => 'Verhindere Download',
'redirect_url' => 'Umleitungs-URL',
'redirect_url_help' => 'Gebe optional eine URL an, zu der umgeleitet werden soll, wenn eine Zahlung getätigt wurde.',
@@ -2003,8 +2003,8 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'https' => 'HTTPS',
'require' => 'Benötigt',
'license_expiring' => 'Anmerkung: Ihre Lizenz läuftin :count Tagen ab, :link um sie zu erneuern.',
- 'security_confirmation' => 'Deine E-Mail Adresse wurde bestätigt.',
- 'white_label_expired' => 'Deine White Label Lizenz ist ausgelaufen, bitte denke darüber nach diese zu verlängern um unser Projekt zu unterstützen.',
+ 'security_confirmation' => 'Ihre E-Mail Adresse wurde bestätigt.',
+ 'white_label_expired' => 'Ihre White-Label-Lizenz ist ausgelaufen. Bitte denken Sie darüber nach, diese zu verlängern, um unser Projekt zu unterstützen.',
'renew_license' => 'Verlängere die Lizenz',
'iphone_app_message' => 'Berücksichtigen Sie unsere :link herunterzuladen',
'iphone_app' => 'iPhone-App',
@@ -2094,7 +2094,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'profile' => 'Profil',
'payment_type_help' => 'Setze die Standard manuelle Zahlungsmethode.',
'industry_Construction' => 'Bauwesen',
- 'your_statement' => 'Deine Abrechnung',
+ 'your_statement' => 'Ihre Abrechnung',
'statement_issued_to' => 'Abrechnung ausgestellt für',
'statement_to' => 'Abrechnung für',
'customize_options' => 'Optionen anpassen',
@@ -2269,7 +2269,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'product_notes' => 'Produktnotizen',
'app_version' => 'App-Version',
'ofx_version' => 'OFX-Version',
- 'error_app_key_set_to_default' => 'Fehler: APP_KEY ist auf einen Standardwert gesetzt. Um ihn zu aktualisieren, sichere deine Datenbank und führe dann php artisan ninja:update-key
aus',
+ 'error_app_key_set_to_default' => 'Fehler: APP_KEY ist auf einen Standardwert gesetzt. Um ihn zu aktualisieren, sicheren Sie Ihre Datenbank und führen dann php artisan ninja:update-key
aus',
'charge_late_fee' => 'Verspätungszuschlag berechnen',
'late_fee_amount' => 'Höhe des Verspätungszuschlags',
'late_fee_percent' => 'Verspätungszuschlag Prozent',
@@ -2401,8 +2401,11 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'currency_cuban_peso' => 'Kubanischer Peso',
'currency_bz_dollar' => 'Belize-Dollar',
'currency_libyan_dinar' => 'Libyscher Dinar',
- 'currency_silver_troy_ounce' => 'Silver Troy Ounce',
- 'currency_gold_troy_ounce' => 'Gold Troy Ounce',
+ 'currency_silver_troy_ounce' => 'Silberne Feinunze',
+ 'currency_gold_troy_ounce' => 'Goldene Feinunze',
+ 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba',
+ 'currency_malagasy_ariary' => 'Malagasy ariary',
+ "currency_tongan_pa_anga" => "Tongan Pa'anga",
'review_app_help' => 'Wir hoffen, dass Ihnen die App gefällt. Wenn Sie :link in Betracht ziehen würden, wären wir Ihnen sehr dankbar!',
'writing_a_review' => 'Schreiben einer Rezension',
@@ -2426,10 +2429,10 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'item_notes' => 'Beschreibung',
'item_cost' => 'Preis',
'item_quantity' => 'Menge',
- 'item_tax_rate' => 'Steuern für Position',
- 'item_tax_name' => 'Steuern',
- 'item_tax1' => 'Position Steuern 1',
- 'item_tax2' => 'Position Steuern 2',
+ 'item_tax_rate' => 'Steuersatz für Position',
+ 'item_tax_name' => 'Name der Steuer für Position',
+ 'item_tax1' => 'Positions-Steuer 1',
+ 'item_tax2' => 'Positions-Steuer 2',
'delete_company' => 'Firma löschen',
'delete_company_help' => 'Die Firma unwiderruflich mit allen Daten löschen.',
@@ -2451,7 +2454,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'deleted_company' => 'Unternehmen erfolgreich gelöscht',
'deleted_account' => 'Konto erfolgreich gelöscht',
'deleted_company_details' => 'Ihre Firma (:account) wurde erfolgreich gelöscht.',
- 'deleted_account_details' => 'Dein Konto (:account) wurde erfolgreich gelöscht.',
+ 'deleted_account_details' => 'Ihr Konto (:account) wurde erfolgreich gelöscht.',
'alipay' => 'Alipay',
'sofort' => 'SOFORT-Überweisung',
@@ -2517,7 +2520,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'custom_value1' => 'Benutzerdefinierter Wert 1',
'custom_value2' => 'Benutzerdefinierter Wert 2',
'enable_two_factor' => 'Zwei-Faktor-Authentifizierung',
- 'enable_two_factor_help' => 'Bestätige beim Anmelden mit deinem Telefon deine Identität',
+ 'enable_two_factor_help' => 'Bestätigen Sie beim Anmelden mit Ihrem Telefon Ihre Identität',
'two_factor_setup' => 'Zwei-Faktor Einrichtung',
'two_factor_setup_help' => 'Barcode mit :link kompatibler App scannen.',
'one_time_password' => 'Einmaliges Passwort',
@@ -2529,7 +2532,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'self_host_login' => 'Eigenes-Hosting Anmeldung',
'set_self_hoat_url' => 'Eigenes-Hosting URL',
'local_storage_required' => 'Fehler: Lokaler Speicherplatz ist nicht verfügbar.',
- 'your_password_reset_link' => 'Dein Passwort zurücksetzen Link',
+ 'your_password_reset_link' => 'Ihr Passwort-zurücksetzen-Link',
'subdomain_taken' => 'Die Subdomäne wird bereits verwendet',
'client_login' => 'Kundenanmeldung',
'converted_amount' => 'Umgerechneter Betrag',
@@ -2744,7 +2747,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'purging' => 'Bereinigung',
'warning_local_refund' => 'Die Rückerstattung wird in der App erfasst, aber NICHT vom Zahlungs-Gateway verarbeitet.',
'email_address_changed' => 'E-Mail Adresse wurde geändert',
- 'email_address_changed_message' => 'Die E-Mail-Adresse für dein Konto wurde von :old_email auf :new_email geändert.',
+ 'email_address_changed_message' => 'Die E-Mail-Adresse für Ihr Konto wurde von :old_email auf :new_email geändert.',
'test' => 'Test',
'beta' => 'Beta',
'gmp_required' => 'Exportieren zu ZIP benötigt die GMP Erweiterung',
@@ -3210,7 +3213,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'welcome_to_the_new_version' => 'Herzlich willkommen zur neuen Version von Invoice Ninja',
'next_step_data_download' => 'Im nächsten Schritt können Sie Ihre Daten für die Migration herunterladen.',
'download_data' => 'Drücke den Button darunter, um die Daten herunterzuladen.',
- 'migration_import' => 'Fantastisch! Jetzt bist du bereit, die Migrationsdaten zu importieren. Gehe zu deiner neuen Installation, um deine Daten zu importieren.',
+ 'migration_import' => 'Fantastisch! Jetzt sind Sie bereit, die Migrationsdaten zu importieren. Gehen Sie zu Ihrer neuen Installation, um Ihre Daten zu importieren.',
'continue' => 'Weiter',
'company1' => 'Benutzerdefinierte Firma 1',
'company2' => 'Benutzerdefinierte Firma 2',
@@ -3321,7 +3324,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'three_tax_rates' => 'Drei Steuersätze',
'default_tax_rate' => 'Standard-Steuersatz',
'invoice_tax' => 'Rechnungssteuer',
- 'line_item_tax' => 'Belegposition Steuer',
+ 'line_item_tax' => 'Belegpositions-Steuer',
'inclusive_taxes' => 'Inklusive Steuern',
'invoice_tax_rates' => 'Rechnungs-Steuersätze',
'item_tax_rates' => 'Element-Steuersätze',
@@ -3681,9 +3684,9 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'send_date' => 'Versanddatum',
'auto_bill_on' => 'Automatische Rechnungsstellung zum',
'minimum_under_payment_amount' => 'Minimaler Unterzahlungsbetrag',
- 'allow_over_payment' => 'Überzahlung zulassen',
+ 'allow_over_payment' => 'Überbezahlung erlauben',
'allow_over_payment_help' => 'Überzahlungen zulassen, beispielsweise Trinkgelder',
- 'allow_under_payment' => 'Unterzahlung zulassen',
+ 'allow_under_payment' => 'Unterbezahlung erlauben',
'allow_under_payment_help' => 'Teilzahlungen zulassen',
'test_mode' => 'Test Modus',
'calculated_rate' => 'Berechneter Satz',
@@ -3748,12 +3751,12 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'activity_66' => ':user mailte endlose Mahnung für Rechnung :invoice an :contact',
'expense_category_id' => 'Ausgabenkategorie ID',
'view_licenses' => 'Lizenzen anzeigen',
- 'fullscreen_editor' => 'Vollbild Editor',
- 'sidebar_editor' => 'Seitenmenü Editor',
+ 'fullscreen_editor' => 'Vollbild-Editor',
+ 'sidebar_editor' => 'Seitenmenü-Editor',
'please_type_to_confirm' => 'Bitte geben Sie ":value" zur Bestätigung ein',
'purge' => 'Bereinigen',
'clone_to' => 'Duplizieren zu',
- 'clone_to_other' => 'Zu anderen duplizieren',
+ 'clone_to_other' => 'Als anderen Typ duplizieren',
'labels' => 'Beschriftung',
'add_custom' => 'Beschriftung hinzufügen',
'payment_tax' => 'Steuer-Zahlung',
@@ -3762,9 +3765,9 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'paid_invoices_are_locked' => 'Bezahlte Rechnungen sind gesperrt',
'source_code' => 'Quellcode',
'app_platforms' => 'App-Plattformen',
- 'archived_task_statuses' => ' :value Aufgaben Stati erfolgreich archiviert',
- 'deleted_task_statuses' => ' :value Aufgaben Stati erfolgreich gelöscht',
- 'restored_task_statuses' => ' :value Aufgaben Stati erfolgreich wiederhergestellt',
+ 'archived_task_statuses' => ' :value Aufgaben-Status erfolgreich archiviert',
+ 'deleted_task_statuses' => ' :value Aufgaben-Status erfolgreich gelöscht',
+ 'restored_task_statuses' => ' :value Aufgaben-Status erfolgreich wiederhergestellt',
'deleted_expense_categories' => ' :value Ausgabenkategorien erfolgreich gelöscht',
'restored_expense_categories' => ':value Ausgabenkategorien erfolgreich wiederhergestellt',
'archived_recurring_invoices' => ':value Wiederkehrende Rechnung erfolgreich archiviert',
@@ -4070,7 +4073,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'self_update_not_available' => 'Integrierter Updater auf diesem System nicht verfügbar.',
'user_detached' => 'Nutzer wurden vom Unternehmen entkoppelt',
'create_webhook_failure' => 'Webhook konnte nicht erstellt werden',
- 'payment_message_extended' => 'Vielen Dank für deine Zahlung von :amount für die Rechnung :invoice',
+ 'payment_message_extended' => 'Vielen Dank für Ihre Zahlung von :amount für die Rechnung :invoice',
'online_payments_minimum_note' => 'Hinweis: Online-Zahlungen werden nur unterstützt, wenn der Betrag größer als 1€ oder der entsprechende Währungsbetrag ist.',
'payment_token_not_found' => 'Zahlungstoken nicht gefunden, bitte versuchen Sie es erneut. Wenn das Problem weiterhin besteht, versuchen Sie es mit einer anderen Zahlungsmethode',
'vendor_address1' => 'Straße Lieferant',
@@ -4121,7 +4124,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'activate_company_help' => 'E-Mails, wiederkehrende Rechnungen und Benachrichtigungen aktivieren',
'an_error_occurred_try_again' => 'Ein Fehler ist aufgetreten, bitte versuchen Sie es erneut.',
'please_first_set_a_password' => 'Bitte vergeben Sie zuerst ein Passwort.',
- 'changing_phone_disables_two_factor' => 'Achtung: Das Ändern deiner Telefonnummer wird die Zwei-Faktor-Authentifizierung deaktivieren',
+ 'changing_phone_disables_two_factor' => 'Achtung: Das Ändern Ihrer Telefonnummer wird die Zwei-Faktor-Authentifizierung deaktivieren',
'help_translate' => 'Hilf mit beim Übersetzen',
'please_select_a_country' => 'Bitte wählen Sie ein Land',
'disabled_two_factor' => '2FA erfolgreich deaktiviert',
@@ -4327,7 +4330,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'include_drafts' => 'Entwürfe einschließen',
'include_drafts_help' => 'Entwürfe von Aufzeichnungen in Berichte einbeziehen',
'is_invoiced' => 'Ist in Rechnung gestellt',
- 'change_plan' => 'Manage Plan',
+ 'change_plan' => 'Tarif verwalten',
'persist_data' => 'Daten aufbewahren',
'customer_count' => 'Kundenzahl',
'verify_customers' => 'Kunden überprüfen',
@@ -4488,17 +4491,17 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'client_currency' => 'Kundenwährung',
'company_currency' => 'Firmenwährung',
'custom_emails_disabled_help' => 'Um Spam zu verhindern braucht es ein Upgrade zu einem bezahlten Account um das E-Mail anzupassen.',
- 'upgrade_to_add_company' => 'Upgrade deinen Tarif um weitere Firmen hinzuzufügen',
+ 'upgrade_to_add_company' => 'Wechseln Sie Ihren Tarif, um weitere Firmen hinzufügen zu können',
'file_saved_in_downloads_folder' => 'Die Datei wurde im Downloads-Ordner gespeichert',
'small' => 'Klein',
- 'quotes_backup_subject' => 'Deine Angebote stehen zum Download bereit',
+ 'quotes_backup_subject' => 'Ihre Angebote stehen zum Download bereit',
'credits_backup_subject' => 'Die Gutschriften stehen zum Download bereit',
- 'document_download_subject' => 'Deine Dokumente stehen zum Download bereit',
+ 'document_download_subject' => 'Ihre Dokumente stehen zum Download bereit',
'reminder_message' => 'Mahnung für Rechnung :number über :balance',
'gmail_credentials_invalid_subject' => 'Senden mit ungültigen GMail-Anmeldedaten',
'gmail_credentials_invalid_body' => 'Ihre GMail-Anmeldedaten sind nicht korrekt. Bitte melden Sie sich im Administratorportal an und navigieren Sie zu Einstellungen > Benutzerdetails und trennen Sie Ihr GMail-Konto und verbinden Sie es erneut. Wir werden Ihnen diese Benachrichtigung täglich senden, bis das Problem behoben ist',
'total_columns' => 'Felder insgesamt',
- 'view_task' => 'Aufgabe anzeugen',
+ 'view_task' => 'Aufgabe anzeigen',
'cancel_invoice' => 'Stornieren',
'changed_status' => 'Erfolgreich Aufgabenstatus geändert',
'change_status' => 'Status ändern',
@@ -4511,7 +4514,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'enable_pdf_markdown' => 'Markdown in PDFs verwenden',
'json_help' => 'Achtung: JSON-Dateien, die mit v4 der App erstellt wurden, werden nicht unterstützt',
'release_notes' => 'Versionshinweise',
- 'upgrade_to_view_reports' => 'Upgrade deinen Tarif um Berichte anzusehen',
+ 'upgrade_to_view_reports' => 'Wechseln Sie Ihren Tarif, um Berichte ansehen zu können',
'started_tasks' => ':value Aufgaben erfolgreich gestartet',
'stopped_tasks' => ':value Aufgaben erfolgreich angehalten',
'approved_quote' => 'Angebot erfolgreich angenommen',
@@ -4656,8 +4659,8 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'search_purchase_order' => 'Bestellung suchen',
'search_purchase_orders' => 'Bestellungen suchen',
'login_url' => 'Login-URL',
- 'enable_applying_payments' => 'Aktivieren Sie die Anwendung von Zahlungen',
- 'enable_applying_payments_help' => 'Unterstützung bei der separaten Erstellung und Anwendung von Zahlungen',
+ 'enable_applying_payments' => 'Manuelle Überbezahlungen',
+ 'enable_applying_payments_help' => 'Erlaubt das manuellen Hinzufügen eines Betrags, der über dem Betrag zur Zahlung liegt',
'stock_quantity' => 'Lagerbestand',
'notification_threshold' => 'Mindesbestandsmeldung',
'track_inventory' => 'Inventar verwalten',
@@ -4714,7 +4717,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'enter_phone_number' => 'Bitte geben Sie eine Telefonnummer an',
'invalid_phone_number' => 'Ungültige Telefonnummer',
'verify_phone_number' => 'Telefonnummer verifizieren',
- 'verify_phone_number_help' => 'Bitte verifiziere deine Telefonnummer, um E-Mails versenden zu können.',
+ 'verify_phone_number_help' => 'Bitte verifizieren Sie Ihre Telefonnummer, um E-Mails versenden zu können.',
'merged_clients' => 'Erfolgreich Kunden zusammengefasst',
'merge_into' => 'Zusammenführen in',
'php81_required' => 'Hinweis: v5.5 benötigt PHP 8.1',
@@ -4952,7 +4955,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'sync_from' => 'Synchronisieren von',
'gateway_payment_text' => 'Rechnungen: :invoices über :amount für Kunde :client',
'gateway_payment_text_no_invoice' => 'Zahlung ohne Rechnung für Kunde :client über :amount',
- 'click_to_variables' => 'Click here to see all variables.',
+ 'click_to_variables' => 'Hier klicken, um alle Variablen zu sehen.',
'ship_to' => 'Liefern an',
'stripe_direct_debit_details' => 'Bitte überweisen Sie den Betrag an obenstehende Bankverbindung',
'branch_name' => 'Zweigstelle',
@@ -5076,7 +5079,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'e_invoice' => 'E-Rechnung',
'light_dark_mode' => 'Tag-/Nachtmodus',
'activities' => 'Aktivitäten',
- 'recent_transactions' => "Here are your company's most recent transactions:",
+ 'recent_transactions' => "Hier sind die aktuellsten Transaktionen Ihrer Firma:",
'country_Palestine' => "Palestinensa",
'country_Taiwan' => 'Taiwan',
'duties' => 'Aufgaben',
@@ -5087,7 +5090,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'enable_auto_bill' => 'Automatische Bezahlung aktivieren',
'email_count_invoices' => ':count Rechnungen versenden',
'invoice_task_item_description' => 'Rechnungspositionsbeschreibung',
- 'invoice_task_item_description_help' => 'Add the item description to the invoice line items',
+ 'invoice_task_item_description_help' => 'Element-Beschreibung zu den Rechnungs-Positionen hinzufügen',
'next_send_time' => 'Nächster Versandzeitpunkt',
'uploaded_certificate' => 'Das Zertifikat wurde erfolgreich hochgeladen',
'certificate_set' => 'Zertifikat hochgeladen',
@@ -5097,8 +5100,8 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'upload_certificate' => 'Zertifikat hochladen',
'certificate_passphrase' => 'Zertifikat Passwort',
'valid_vat_number' => 'Gültige USt-ID',
- 'react_notification_link' => 'React Notification Links',
- 'react_notification_link_help' => 'Admin emails will contain links to the react application',
+ 'react_notification_link' => 'React-Benachrichtigungslinks',
+ 'react_notification_link_help' => 'Admin-E-Mails werden Links zur React-Applikation beinhalten',
'show_task_billable' => 'Abrechenbare Aufgaben anzeigen',
'credit_item' => 'Gutschriftsposition',
'drop_file_here' => 'Datei hier hineinziehen',
@@ -5106,38 +5109,38 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'camera' => 'Kamera',
'gallery' => 'Gallerie',
'project_location' => 'Projektstandort',
- 'add_gateway_help_message' => 'Add a payment gateway (ie. Stripe, WePay or PayPal) to accept online payments',
+ 'add_gateway_help_message' => 'Payment-Gateway hinzufügen (z. B. Stripe, WePay oder PayPal), um Online-Zahlungen anbieten zu können',
'lang_Hungarian' => 'Ungarisch',
- 'use_mobile_to_manage_plan' => 'Use your phone subscription settings to manage your plan',
- 'item_tax3' => 'Item Tax3',
- 'item_tax_rate1' => 'Item Tax Rate 1',
- 'item_tax_rate2' => 'Item Tax Rate 2',
- 'item_tax_rate3' => 'Item Tax Rate 3',
+ 'use_mobile_to_manage_plan' => 'Verwenden der Telefon-Abonnementeinstellungen, um Ihren Tarif zu verwalten',
+ 'item_tax3' => 'Positions-Steuer 3',
+ 'item_tax_rate1' => 'Positions-Steuersatz 1',
+ 'item_tax_rate2' => 'Positions-Steuersatz 2',
+ 'item_tax_rate3' => 'Positions-Steuersatz 3',
'buy_price' => 'Einkaufspreis',
'country_Macedonia' => 'Mazedonien',
- 'admin_initiated_payments' => 'Admin Initiated Payments',
- 'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
- 'paid_date' => 'Paid Date',
- 'downloaded_entities' => 'An email will be sent with the PDFs',
+ 'admin_initiated_payments' => 'Administrator-initiierte Zahlungen',
+ 'admin_initiated_payments_help' => 'Aktivieren von Zahlungen ohne Rechnung im Admin-Portal',
+ 'paid_date' => 'Zahlungsdatum',
+ 'downloaded_entities' => 'Die PDFs werden per E-Mail versendet',
'lang_French - Swiss' => 'Französisch - Schweiz',
'currency_swazi_lilangeni' => 'Lilangeni',
- 'income' => 'Income',
+ 'income' => 'Einnahmen',
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
'vendor_phone' => 'Lieferanten-Telefonnummer',
'mercado_pago' => 'Mercado Pago',
- 'mybank' => 'MyBank',
- 'paypal_paylater' => 'Pay in 4',
- 'paid_date' => 'Paid Date',
- 'district' => 'District',
+ 'mybank' => 'MeineBank',
+ 'paypal_paylater' => 'In vier Schritten bezahlen',
+ 'paid_date' => 'Zahlungsdatum',
+ 'district' => 'Bezirk',
'region' => 'Region',
- 'county' => 'County',
+ 'county' => 'Landkreis',
'tax_details' => 'Steuerdetails',
- 'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
- 'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
+ 'activity_10_online' => ':contact hat die Zahlung :payment für die Rechnung :invoice des Kunden :client eingegeben',
+ 'activity_10_manual' => ':user hat die Zahlung :payment für die Rechnung :invoice des Kunden :client eingegeben',
'default_payment_type' => 'Standard Zahlungsart',
- 'number_precision' => 'Number precision',
- 'number_precision_help' => 'Controls the number of decimals supported in the interface',
- 'is_tax_exempt' => 'Tax Exempt',
+ 'number_precision' => 'Genauigkeit der Nummern',
+ 'number_precision_help' => 'Steuert die Anzahl Dezimalstellen in der Schnittstelle',
+ 'is_tax_exempt' => 'Steuerbefreit',
'drop_files_here' => 'Datei hier hineinziehen',
'upload_files' => 'Dateien hochladen',
'download_e_invoice' => 'E-Rechnung herunterladen',
@@ -5149,28 +5152,47 @@ Leistungsempfängers',
'currency_nicaraguan_cordoba' => 'Córdoba Oro',
'public' => 'Öffentlich',
'private' => 'Privat',
- 'image' => 'Image',
+ 'image' => 'Bild',
'other' => 'Andere',
- 'linked_to' => 'Linked To',
- 'file_saved_in_path' => 'The file has been saved in :path',
- 'unlinked_transactions' => 'Successfully unlinked :count transactions',
- 'unlinked_transaction' => 'Successfully unlinked transaction',
- 'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
- 'marked_sent_credits' => 'Successfully marked credits sent',
- 'show_document_preview' => 'Show Document Preview',
- 'cash_accounting' => 'Cash accounting',
- 'click_or_drop_files_here' => 'Click or drop files here',
- 'set_public' => 'Set public',
- 'set_private' => 'Set private',
- 'individual' => 'Individual',
+ 'linked_to' => 'Verknüpft mit',
+ 'file_saved_in_path' => 'Die Datei wurde unter :path gespeichert',
+ 'unlinked_transactions' => 'Verknüpfung zu :count Transaktionen wurde erfolgreich entfernt',
+ 'unlinked_transaction' => 'Verknüpfung zu einer Transaktion wurde erfolgreich entfernt',
+ 'view_dashboard_permission' => 'Nutzern erlauben, auf das Dashboard zuzugreifen. Die Berechtigungen der Nutzer limitieren die angezeigten Daten.',
+ 'marked_sent_credits' => 'Gutschrift erfolgreich als versendet markiert',
+ 'show_document_preview' => 'Dokumentenvorschau anzeigen',
+ 'cash_accounting' => 'Kassenbuchführung',
+ 'click_or_drop_files_here' => 'Hier klicken oder Dateien ablegen',
+ 'set_public' => 'Als "öffentlich" setzen',
+ 'set_private' => 'Als "privat" setzen',
+ 'individual' => 'Indiviuell',
'business' => 'Business',
- 'partnership' => 'partnership',
- 'trust' => 'Trust',
+ 'partnership' => 'Partnerschaft',
+ 'trust' => 'Vertrauen',
'charity' => 'Charity',
- 'government' => 'Government',
- 'in_stock_quantity' => 'Stock quantity',
- 'vendor_contact' => 'Vendor Contact',
-
+ 'government' => 'Regierung',
+ 'in_stock_quantity' => 'Lagerbestand',
+ 'vendor_contact' => 'Lieferantenkontakt',
+ 'expense_status_4' => 'Unbezahlt',
+ 'expense_status_5' => 'Bezahlt',
+ 'ziptax_help' => 'Note: this feature requires a Zip-Tax API key to lookup US sales tax by address',
+ 'cache_data' => 'Cache Data',
+ 'unknown' => 'Unbekannt',
+ 'webhook_failure' => 'Webhook-Fehler',
+ 'email_opened' => 'E-Mail geöffnet',
+ 'email_delivered' => 'E-Mail zugestellt',
+ 'log' => 'Log',
+ 'classification' => 'Klassifizierung',
+ 'stock_quantity_number' => 'Stock :quantity',
+ 'upcoming' => 'Bevorstehend',
+ 'client_contact' => 'Kundenkontakt',
+ 'uncategorized' => 'Unkategorisiert',
+ 'login_notification' => 'Login Notification',
+ 'login_notification_help' => 'Sends an email notifying that a login has taken place.',
+ 'payment_refund_receipt' => 'Payment Refund Receipt # :number',
+ 'payment_receipt' => 'Payment Receipt # :number',
+ 'load_template_description' => 'The template will be applied to following:',
+ 'run_template' => 'Run template',
);
return $LANG;
diff --git a/lang/es_ES/texts.php b/lang/es_ES/texts.php
index 0246635c8928..8b8904e3f243 100644
--- a/lang/es_ES/texts.php
+++ b/lang/es_ES/texts.php
@@ -652,7 +652,7 @@ $LANG = array(
'primary_user' => 'Usuario Principal',
'help' => 'Ayuda',
'playground' => 'playground',
- 'support_forum' => 'Support Forums',
+ 'support_forum' => 'Foros de soporte',
'invoice_due_date' => 'Fecha Límite de Pago',
'quote_due_date' => 'Válido hasta',
'valid_until' => 'Válido hasta',
@@ -1138,7 +1138,7 @@ $LANG = array(
'plan_status' => 'Estado del Plan',
'plan_upgrade' => 'Mejorar',
- 'plan_change' => 'Manage Plan',
+ 'plan_change' => 'Gestionar plan',
'pending_change_to' => 'Cambios para',
'plan_changes_to' => ':plan en :date',
'plan_term_changes_to' => ':plan (:term) el :date',
@@ -2392,6 +2392,9 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c
'currency_libyan_dinar' => 'dinar libio',
'currency_silver_troy_ounce' => 'Onza troy de plata',
'currency_gold_troy_ounce' => 'Onza troy de oro',
+ 'currency_nicaraguan_córdoba' => 'Córdoba nicaragüense',
+ 'currency_malagasy_ariary' => 'Ariary malgache',
+ "currency_tongan_pa_anga" => "Pa'anga tongano",
'review_app_help' => 'Esperamos que estés disfrutando con la app.
Si consideras :link ¡te lo agraderemos enormemente!',
'writing_a_review' => 'escribir una reseña',
@@ -3669,9 +3672,9 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c
'send_date' => 'Fecha de Envío',
'auto_bill_on' => 'Facturación Automática Activa',
'minimum_under_payment_amount' => 'Cantidad Mínima de Pago',
- 'allow_over_payment' => 'Permitir Sobrepago',
+ 'allow_over_payment' => 'Permitir pago en exceso',
'allow_over_payment_help' => 'Permitir pagos extra para aceptar propinas',
- 'allow_under_payment' => 'Permitir Pago de Menos',
+ 'allow_under_payment' => 'Permitir pago insuficiente',
'allow_under_payment_help' => 'Permitir pagar como mínimo la cantidad parcial/depósito',
'test_mode' => 'Modo Test',
'calculated_rate' => 'Tasa Calculada',
@@ -3968,8 +3971,8 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c
'account_balance' => 'Saldo de cuenta',
'thanks' => 'Gracias',
'minimum_required_payment' => 'El mínimo pago requerido es :amount',
- 'under_payments_disabled' => 'La compañía no permite pagar por debajo.',
- 'over_payments_disabled' => 'La compañía no permite sobrepagos.',
+ 'under_payments_disabled' => 'La empresa no admite pagos insuficientes.',
+ 'over_payments_disabled' => 'La empresa no admite pagos en exceso.',
'saved_at' => 'Guardado el :time',
'credit_payment' => 'Crédito aplicado a la factura :invoice_number',
'credit_subject' => 'Nuevo crédito :number de :account',
@@ -4315,7 +4318,7 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c
'include_drafts' => 'Incluir borradores',
'include_drafts_help' => 'Incluir borradores de registros en informes',
'is_invoiced' => 'Es facturado',
- 'change_plan' => 'Manage Plan',
+ 'change_plan' => 'Gestionar plan',
'persist_data' => 'Persistir datos',
'customer_count' => 'Número de clientes',
'verify_customers' => 'Verificar clientes',
@@ -4644,8 +4647,8 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c
'search_purchase_order' => 'Buscar orden de compra',
'search_purchase_orders' => 'Buscar órdenes de compra',
'login_url' => 'URL de acceso',
- 'enable_applying_payments' => 'Habilitar la aplicación de pagos',
- 'enable_applying_payments_help' => 'Admite la creación y aplicación de pagos por separado',
+ 'enable_applying_payments' => 'Sobrepagos manuales',
+ 'enable_applying_payments_help' => 'Admite agregar un monto de sobrepago manualmente en un pago',
'stock_quantity' => 'Cantidad de stock',
'notification_threshold' => 'Umbral de notificación',
'track_inventory' => 'Seguimiento de inventario',
@@ -5144,20 +5147,39 @@ De lo contrario, este campo deberá dejarse en blanco.',
'unlinked_transaction' => 'Transacción desvinculada exitosamente',
'view_dashboard_permission' => 'Permitir que el usuario acceda al panel, los datos están limitados a los permisos disponibles',
'marked_sent_credits' => 'Créditos enviados, marcados con éxito',
- 'show_document_preview' => 'Show Document Preview',
- 'cash_accounting' => 'Cash accounting',
- 'click_or_drop_files_here' => 'Click or drop files here',
- 'set_public' => 'Set public',
- 'set_private' => 'Set private',
+ 'show_document_preview' => 'Mostrar vista previa del documento',
+ 'cash_accounting' => 'Contabilidad de caja',
+ 'click_or_drop_files_here' => 'Haga clic o suelte archivos aquí',
+ 'set_public' => 'Establecer público',
+ 'set_private' => 'Establecer privado',
'individual' => 'Individual',
- 'business' => 'Business',
- 'partnership' => 'partnership',
- 'trust' => 'Trust',
- 'charity' => 'Charity',
- 'government' => 'Government',
- 'in_stock_quantity' => 'Stock quantity',
- 'vendor_contact' => 'Vendor Contact',
-
+ 'business' => 'Negocio',
+ 'partnership' => 'asociación',
+ 'trust' => 'Confianza',
+ 'charity' => 'Caridad',
+ 'government' => 'Gobierno',
+ 'in_stock_quantity' => 'Cantidad de stock',
+ 'vendor_contact' => 'Contacto del proveedor',
+ 'expense_status_4' => 'No pagado',
+ 'expense_status_5' => 'Pagado',
+ 'ziptax_help' => 'Nota: esta función requiere una clave API Zip-Tax para buscar impuestos sobre las ventas de EE. UU. por dirección',
+ 'cache_data' => 'Datos de caché',
+ 'unknown' => 'Desconocido',
+ 'webhook_failure' => 'Fallo del webhook',
+ 'email_opened' => 'Email abierto',
+ 'email_delivered' => 'Email entregado',
+ 'log' => 'Registro',
+ 'classification' => 'Clasificación',
+ 'stock_quantity_number' => 'Stock :quantity',
+ 'upcoming' => 'Próximo',
+ 'client_contact' => 'Contacto del cliente',
+ 'uncategorized' => 'Sin categoría',
+ 'login_notification' => 'Notificación de inicio de sesión',
+ 'login_notification_help' => 'Envía un correo electrónico notificando que se ha realizado un inicio de sesión.',
+ 'payment_refund_receipt' => 'Recibo de reembolso de pago Nº :number',
+ 'payment_receipt' => 'Recibo de pago Nº :number',
+ 'load_template_description' => 'La plantilla se aplicará a lo siguiente:',
+ 'run_template' => 'Ejecutar plantilla',
);
return $LANG;
diff --git a/lang/fr_CA/texts.php b/lang/fr_CA/texts.php
index fa47b7c1da3f..2dcde6905751 100644
--- a/lang/fr_CA/texts.php
+++ b/lang/fr_CA/texts.php
@@ -651,8 +651,6 @@ $LANG = array(
'created_by_invoice' => 'Créée par :invoice',
'primary_user' => 'Utilisateur principal',
'help' => 'Aide',
- 'customize_help' => '
Nous utilisons :pdfmake_link pour définir la présentation graphique des factures de manière déclarative. Pdfmake playground_link fournit une excellente façon de voir la librairie en action.
-Si vous avez besoin d\'aide à ce sujet, vous pouvez publier une question sur notre :forum_link avec la présentation graphique que vous utilisez.
', 'playground' => 'environnement', 'support_forum' => 'Forums de support', 'invoice_due_date' => 'Échéance', @@ -1813,7 +1811,6 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'bot_emailed_notify_paid' => 'Recevez un courriel lorsqu\'elle sera payée.', 'add_product_to_invoice' => 'Ajouter 1 :product', 'not_authorized' => 'Vous n\'êtes pas autorisé', - 'bot_get_email' => 'Bonjour! (wave)