diff --git a/VERSION.txt b/VERSION.txt index e5cce47b3049..d315f4df7571 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -5.10.8 \ No newline at end of file +5.10.13 \ No newline at end of file diff --git a/app/Console/Commands/CreateSingleAccount.php b/app/Console/Commands/CreateSingleAccount.php index 50d915cca2a4..4a2146a334f3 100644 --- a/app/Console/Commands/CreateSingleAccount.php +++ b/app/Console/Commands/CreateSingleAccount.php @@ -385,6 +385,9 @@ class CreateSingleAccount extends Command }); + + $this->countryClients($company, $user); + $this->info("finished"); } @@ -1109,4 +1112,44 @@ class CreateSingleAccount extends Command event(new RecurringInvoiceWasCreated($invoice, $invoice->company, Ninja::eventVars())); } + + + private function countryClients($company, $user) + { + + Client::unguard(); + + Client::create([ + 'company_id' => $company->id, + 'user_id' => $user->id, + 'name' => 'Swiss Company AG', + 'website' => 'https://www.testcompany.ch', + 'private_notes' => 'These are some private notes about the test client.', + 'balance' => 0, + 'paid_to_date' => 0, + 'vat_number' => '654321987', + 'id_number' => 'CH9300762011623852957', // Sample Swiss IBAN + 'custom_value1' => '2024-07-22 10:00:00', + 'custom_value2' => 'blue', + 'custom_value3' => 'sampleword', + 'custom_value4' => 'test@example.com', + 'address1' => '123', + 'address2' => 'Test Street 45', + 'city' => 'Zurich', + 'state' => 'Zurich', + 'postal_code' => '8001', + 'country_id' => '756', // Switzerland + 'shipping_address1' => '123', + 'shipping_address2' => 'Test Street 45', + 'shipping_city' => 'Zurich', + 'shipping_state' => 'Zurich', + 'shipping_postal_code' => '8001', + 'shipping_country_id' => '756', // Switzerland + 'settings' => ClientSettings::Defaults(), + 'client_hash' => \Illuminate\Support\Str::random(32), + 'routing_id' => '', + ]); + + } + } diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 228878b3b4e7..878721fbc88e 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -97,11 +97,6 @@ class Handler extends ExceptionHandler { if (Ninja::isHosted()) { - // if($exception instanceof ThrottleRequestsException && class_exists(\Modules\Admin\Events\ThrottledExceptionRaised::class)) { - // $uri = urldecode(request()->getRequestUri()); - // event(new \Modules\Admin\Events\ThrottledExceptionRaised(auth()->user()?->account?->key, $uri, request()->ip())); - // } - Integration::configureScope(function (Scope $scope): void { $name = 'hosted@invoiceninja.com'; diff --git a/app/Export/CSV/ActivityExport.php b/app/Export/CSV/ActivityExport.php index fea9ba8722cd..b148c9806daf 100644 --- a/app/Export/CSV/ActivityExport.php +++ b/app/Export/CSV/ActivityExport.php @@ -57,6 +57,7 @@ class ActivityExport extends BaseExport $report = $query->cursor() ->map(function ($resource) { + /** @var \App\Models\Activity $resource */ $row = $this->buildActivityRow($resource); return $this->processMetaData($row, $resource); })->toArray(); @@ -128,6 +129,9 @@ class ActivityExport extends BaseExport $query->cursor() ->each(function ($entity) { + + /** @var \App\Models\Activity $entity */ + $this->buildRow($entity); }); diff --git a/app/Export/CSV/ClientExport.php b/app/Export/CSV/ClientExport.php index f0a5314f76e6..ec4374948cd8 100644 --- a/app/Export/CSV/ClientExport.php +++ b/app/Export/CSV/ClientExport.php @@ -102,6 +102,8 @@ class ClientExport extends BaseExport $report = $query->cursor() ->map(function ($client) { + + /** @var \App\Models\Client $client */ $row = $this->buildRow($client); return $this->processMetaData($row, $client); })->toArray(); @@ -154,6 +156,8 @@ class ClientExport extends BaseExport $query->cursor() ->each(function ($client) { + + /** @var \App\Models\Client $client */ $this->csv->insertOne($this->buildRow($client)); }); diff --git a/app/Export/CSV/ContactExport.php b/app/Export/CSV/ContactExport.php index 21c673b49d96..74d0b00bdce8 100644 --- a/app/Export/CSV/ContactExport.php +++ b/app/Export/CSV/ContactExport.php @@ -82,6 +82,7 @@ class ContactExport extends BaseExport $this->csv->insertOne($this->buildHeader()); $query->cursor()->each(function ($contact) { + /** @var \App\Models\ClientContact $contact */ $this->csv->insertOne($this->buildRow($contact)); }); @@ -101,6 +102,7 @@ class ContactExport extends BaseExport $report = $query->cursor() ->map(function ($contact) { + /** @var \App\Models\ClientContact $contact */ $row = $this->buildRow($contact); return $this->processMetaData($row, $contact); })->toArray(); diff --git a/app/Export/CSV/CreditExport.php b/app/Export/CSV/CreditExport.php index 5f1e8b56d19d..7450b4114611 100644 --- a/app/Export/CSV/CreditExport.php +++ b/app/Export/CSV/CreditExport.php @@ -52,6 +52,8 @@ class CreditExport extends BaseExport $report = $query->cursor() ->map(function ($credit) { + + /** @var \App\Models\Credit $credit */ $row = $this->buildRow($credit); return $this->processMetaData($row, $credit); })->toArray(); @@ -139,6 +141,7 @@ class CreditExport extends BaseExport $query->cursor() ->each(function ($credit) { + /** @var \App\Models\Credit $credit */ $this->csv->insertOne($this->buildRow($credit)); }); diff --git a/app/Export/CSV/DocumentExport.php b/app/Export/CSV/DocumentExport.php index 8adfe57a0525..cfcebbc062a6 100644 --- a/app/Export/CSV/DocumentExport.php +++ b/app/Export/CSV/DocumentExport.php @@ -54,6 +54,8 @@ class DocumentExport extends BaseExport $report = $query->cursor() ->map(function ($document) { + + /** @var \App\Models\Document $document */ $row = $this->buildRow($document); return $this->processMetaData($row, $document); })->toArray(); @@ -99,6 +101,7 @@ class DocumentExport extends BaseExport $query->cursor() ->each(function ($entity) { + /** @var mixed $entity */ $this->csv->insertOne($this->buildRow($entity)); }); diff --git a/app/Export/CSV/ExpenseExport.php b/app/Export/CSV/ExpenseExport.php index 0af4d3faf74d..67894954638b 100644 --- a/app/Export/CSV/ExpenseExport.php +++ b/app/Export/CSV/ExpenseExport.php @@ -52,6 +52,8 @@ class ExpenseExport extends BaseExport $report = $query->cursor() ->map(function ($resource) { + + /** @var \App\Models\Expense $resource */ $row = $this->buildRow($resource); return $this->processMetaData($row, $resource); })->toArray(); @@ -132,6 +134,8 @@ class ExpenseExport extends BaseExport $query->cursor() ->each(function ($expense) { + + /** @var \App\Models\Expense $expense */ $this->csv->insertOne($this->buildRow($expense)); }); diff --git a/app/Export/CSV/InvoiceExport.php b/app/Export/CSV/InvoiceExport.php index d0839d03d6fb..d87c49ff943c 100644 --- a/app/Export/CSV/InvoiceExport.php +++ b/app/Export/CSV/InvoiceExport.php @@ -99,6 +99,8 @@ class InvoiceExport extends BaseExport $report = $query->cursor() ->map(function ($resource) { + + /** @var \App\Models\Invoice $resource */ $row = $this->buildRow($resource); return $this->processMetaData($row, $resource); })->toArray(); @@ -119,6 +121,8 @@ class InvoiceExport extends BaseExport $query->cursor() ->each(function ($invoice) { + + /** @var \App\Models\Invoice $invoice */ $this->csv->insertOne($this->buildRow($invoice)); }); diff --git a/app/Export/CSV/InvoiceItemExport.php b/app/Export/CSV/InvoiceItemExport.php index 0e5efcac0b6d..14a38aebee27 100644 --- a/app/Export/CSV/InvoiceItemExport.php +++ b/app/Export/CSV/InvoiceItemExport.php @@ -113,6 +113,8 @@ class InvoiceItemExport extends BaseExport $query->cursor() ->each(function ($resource) { + + /** @var \App\Models\Invoice $resource */ $this->iterateItems($resource); foreach($this->storage_array as $row) { @@ -141,6 +143,8 @@ class InvoiceItemExport extends BaseExport $query->cursor() ->each(function ($invoice) { + + /** @var \App\Models\Invoice $invoice */ $this->iterateItems($invoice); }); diff --git a/app/Export/CSV/PaymentExport.php b/app/Export/CSV/PaymentExport.php index d427b3ebe1d6..167514781277 100644 --- a/app/Export/CSV/PaymentExport.php +++ b/app/Export/CSV/PaymentExport.php @@ -92,6 +92,8 @@ class PaymentExport extends BaseExport $report = $query->cursor() ->map(function ($resource) { + + /** @var \App\Models\Payment $resource */ $row = $this->buildRow($resource); return $this->processMetaData($row, $resource); })->toArray(); @@ -112,6 +114,8 @@ class PaymentExport extends BaseExport $query->cursor() ->each(function ($entity) { + + /** @var \App\Models\Payment $entity */ $this->csv->insertOne($this->buildRow($entity)); }); diff --git a/app/Export/CSV/ProductExport.php b/app/Export/CSV/ProductExport.php index 69bdca55cffb..dba1b8622833 100644 --- a/app/Export/CSV/ProductExport.php +++ b/app/Export/CSV/ProductExport.php @@ -51,6 +51,8 @@ class ProductExport extends BaseExport $report = $query->cursor() ->map(function ($resource) { + + /** @var \App\Models\Product $resource */ $row = $this->buildRow($resource); return $this->processMetaData($row, $resource); })->toArray(); @@ -103,7 +105,9 @@ class ProductExport extends BaseExport $query->cursor() ->each(function ($entity) { - $this->csv->insertOne($this->buildRow($entity)); + + /** @var \App\Models\Product $entity */ + $this->csv->insertOne($this->buildRow($entity)); }); return $this->csv->toString(); diff --git a/app/Export/CSV/PurchaseOrderExport.php b/app/Export/CSV/PurchaseOrderExport.php index e1091dd6672f..1e60e26424c6 100644 --- a/app/Export/CSV/PurchaseOrderExport.php +++ b/app/Export/CSV/PurchaseOrderExport.php @@ -98,6 +98,8 @@ class PurchaseOrderExport extends BaseExport $report = $query->cursor() ->map(function ($resource) { + + /** @var \App\Models\PurchaseOrder $resource */ $row = $this->buildRow($resource); return $this->processMetaData($row, $resource); })->toArray(); @@ -119,7 +121,9 @@ class PurchaseOrderExport extends BaseExport $query->cursor() ->each(function ($purchase_order) { - $this->csv->insertOne($this->buildRow($purchase_order)); + + /** @var \App\Models\PurchaseOrder $purchase_order */ + $this->csv->insertOne($this->buildRow($purchase_order)); }); return $this->csv->toString(); diff --git a/app/Export/CSV/PurchaseOrderItemExport.php b/app/Export/CSV/PurchaseOrderItemExport.php index bf39cc26efe7..4892436a6015 100644 --- a/app/Export/CSV/PurchaseOrderItemExport.php +++ b/app/Export/CSV/PurchaseOrderItemExport.php @@ -101,13 +101,15 @@ class PurchaseOrderItemExport extends BaseExport $query->cursor() ->each(function ($resource) { - $this->iterateItems($resource); + + /** @var \App\Models\PurchaseOrder $resource */ + $this->iterateItems($resource); - foreach($this->storage_array as $row) { - $this->storage_item_array[] = $this->processItemMetaData($row, $resource); - } + foreach($this->storage_array as $row) { + $this->storage_item_array[] = $this->processItemMetaData($row, $resource); + } - $this->storage_array = []; + $this->storage_array = []; }); @@ -127,7 +129,9 @@ class PurchaseOrderItemExport extends BaseExport $query->cursor() ->each(function ($purchase_order) { - $this->iterateItems($purchase_order); + + /** @var \App\Models\PurchaseOrder $purchase_order */ + $this->iterateItems($purchase_order); }); $this->csv->insertAll($this->storage_array); diff --git a/app/Export/CSV/QuoteExport.php b/app/Export/CSV/QuoteExport.php index 7c77fd990595..4d404d4ca3e8 100644 --- a/app/Export/CSV/QuoteExport.php +++ b/app/Export/CSV/QuoteExport.php @@ -103,6 +103,8 @@ class QuoteExport extends BaseExport $report = $query->cursor() ->map(function ($resource) { + + /** @var \App\Models\Quote $resource */ $row = $this->buildRow($resource); return $this->processMetaData($row, $resource); })->toArray(); @@ -125,6 +127,8 @@ class QuoteExport extends BaseExport $query->cursor() ->each(function ($quote) { + + /** @var \App\Models\Quote $quote */ $this->csv->insertOne($this->buildRow($quote)); }); diff --git a/app/Export/CSV/QuoteItemExport.php b/app/Export/CSV/QuoteItemExport.php index ddc7279605f9..2e8e5a008939 100644 --- a/app/Export/CSV/QuoteItemExport.php +++ b/app/Export/CSV/QuoteItemExport.php @@ -104,6 +104,8 @@ class QuoteItemExport extends BaseExport $query->cursor() ->each(function ($resource) { + + /** @var \App\Models\Quote $resource */ $this->iterateItems($resource); foreach($this->storage_array as $row) { @@ -134,6 +136,8 @@ class QuoteItemExport extends BaseExport $query->cursor() ->each(function ($quote) { + + /** @var \App\Models\Quote $quote */ $this->iterateItems($quote); }); diff --git a/app/Export/CSV/RecurringInvoiceExport.php b/app/Export/CSV/RecurringInvoiceExport.php index d6d26e283422..62a2c78364ca 100644 --- a/app/Export/CSV/RecurringInvoiceExport.php +++ b/app/Export/CSV/RecurringInvoiceExport.php @@ -93,6 +93,8 @@ class RecurringInvoiceExport extends BaseExport $query->cursor() ->each(function ($invoice) { + + /** @var \App\Models\RecurringInvoice $invoice */ $this->csv->insertOne($this->buildRow($invoice)); }); @@ -112,6 +114,8 @@ class RecurringInvoiceExport extends BaseExport $report = $query->cursor() ->map(function ($resource) { + + /** @var \App\Models\RecurringInvoice $resource */ $row = $this->buildRow($resource); return $this->processMetaData($row, $resource); })->toArray(); diff --git a/app/Export/CSV/TaskExport.php b/app/Export/CSV/TaskExport.php index f630517a2c81..2acd8faa64cc 100644 --- a/app/Export/CSV/TaskExport.php +++ b/app/Export/CSV/TaskExport.php @@ -106,7 +106,9 @@ class TaskExport extends BaseExport $query->cursor() ->each(function ($entity) { - $this->buildRow($entity); + + /** @var \App\Models\Task $entity*/ + $this->buildRow($entity); }); $this->csv->insertAll($this->storage_array); @@ -128,6 +130,7 @@ class TaskExport extends BaseExport $query->cursor() ->each(function ($resource) { + /** @var \App\Models\Task $resource*/ $this->buildRow($resource); foreach($this->storage_array as $row) { @@ -161,7 +164,7 @@ class TaskExport extends BaseExport } - if (is_null($task->time_log) || (is_array(json_decode($task->time_log, 1)) && count(json_decode($task->time_log, 1)) == 0)) { + if (is_null($task->time_log) || (is_array(json_decode($task->time_log, true)) && count(json_decode($task->time_log, true)) == 0)) { $this->storage_array[] = $entity; } else { $this->iterateLogs($task, $entity); @@ -178,7 +181,7 @@ class TaskExport extends BaseExport $timezone_name = $timezone->name; } - $logs = json_decode($task->time_log, 1); + $logs = json_decode($task->time_log, true); $date_format_default = $this->date_format; diff --git a/app/Export/CSV/VendorExport.php b/app/Export/CSV/VendorExport.php index abb682f655eb..799fca7a075f 100644 --- a/app/Export/CSV/VendorExport.php +++ b/app/Export/CSV/VendorExport.php @@ -90,6 +90,8 @@ class VendorExport extends BaseExport $report = $query->cursor() ->map(function ($resource) { + + /** @var \App\Models\Vendor $resource */ $row = $this->buildRow($resource); return $this->processMetaData($row, $resource); })->toArray(); @@ -107,7 +109,9 @@ class VendorExport extends BaseExport $query->cursor() ->each(function ($vendor) { - $this->csv->insertOne($this->buildRow($vendor)); + + /** @var \App\Models\Vendor $vendor */ + $this->csv->insertOne($this->buildRow($vendor)); }); return $this->csv->toString(); diff --git a/app/Export/Decorators/TaskDecorator.php b/app/Export/Decorators/TaskDecorator.php index 0b48e1cdc613..05f7c2e69690 100644 --- a/app/Export/Decorators/TaskDecorator.php +++ b/app/Export/Decorators/TaskDecorator.php @@ -48,7 +48,7 @@ class TaskDecorator extends Decorator implements DecoratorInterface $timezone_name = $timezone->name; } - $logs = json_decode($task->time_log, 1); + $logs = json_decode($task->time_log, true); $date_format_default = 'Y-m-d'; @@ -77,7 +77,7 @@ class TaskDecorator extends Decorator implements DecoratorInterface $timezone_name = $timezone->name; } - $logs = json_decode($task->time_log, 1); + $logs = json_decode($task->time_log, true); $date_format_default = 'Y-m-d'; diff --git a/app/Factory/RecurringExpenseToExpenseFactory.php b/app/Factory/RecurringExpenseToExpenseFactory.php index d1903408409b..e6699e1fb77c 100644 --- a/app/Factory/RecurringExpenseToExpenseFactory.php +++ b/app/Factory/RecurringExpenseToExpenseFactory.php @@ -175,7 +175,7 @@ class RecurringExpenseToExpenseFactory $_value = explode($_operation, $right); // [MONTHYEAR, 4] - $_right = Carbon::createFromDate(now()->year, now()->month)->addMonths($_value[1])->translatedFormat('F Y'); + $_right = Carbon::createFromDate(now()->year, now()->month)->addMonths($_value[1])->translatedFormat('F Y'); //@phpstan-ignore-line } $replacement = sprintf('%s to %s', $_left, $_right); diff --git a/app/Filters/CreditFilters.php b/app/Filters/CreditFilters.php index 2306139c13d5..54ba0fb05c21 100644 --- a/app/Filters/CreditFilters.php +++ b/app/Filters/CreditFilters.php @@ -97,7 +97,8 @@ class CreditFilters extends QueryFilters $q->where('first_name', 'like', '%'.$filter.'%') ->orWhere('last_name', 'like', '%'.$filter.'%') ->orWhere('email', 'like', '%'.$filter.'%'); - }); + }) + ->orWhereRaw("JSON_UNQUOTE(JSON_EXTRACT(line_items, '$[*].notes')) LIKE ?", ['%'.$filter.'%']); }); } diff --git a/app/Filters/InvoiceFilters.php b/app/Filters/InvoiceFilters.php index 6d76a1352de4..2d2ef7cd06b8 100644 --- a/app/Filters/InvoiceFilters.php +++ b/app/Filters/InvoiceFilters.php @@ -124,7 +124,8 @@ class InvoiceFilters extends QueryFilters $q->where('first_name', 'like', '%'.$filter.'%') ->orWhere('last_name', 'like', '%'.$filter.'%') ->orWhere('email', 'like', '%'.$filter.'%'); - }); + }) + ->orWhereRaw("JSON_UNQUOTE(JSON_EXTRACT(line_items, '$[*].notes')) LIKE ?", ['%'.$filter.'%']); }); } diff --git a/app/Filters/QuoteFilters.php b/app/Filters/QuoteFilters.php index 60cc597bb365..048669db927a 100644 --- a/app/Filters/QuoteFilters.php +++ b/app/Filters/QuoteFilters.php @@ -45,7 +45,8 @@ class QuoteFilters extends QueryFilters $q->where('first_name', 'like', '%'.$filter.'%') ->orWhere('last_name', 'like', '%'.$filter.'%') ->orWhere('email', 'like', '%'.$filter.'%'); - }); + }) + ->orWhereRaw("JSON_UNQUOTE(JSON_EXTRACT(line_items, '$[*].notes')) LIKE ?", ['%'.$filter.'%']); }); } diff --git a/app/Filters/RecurringInvoiceFilters.php b/app/Filters/RecurringInvoiceFilters.php index ef7f78c5c029..983582cb9a4e 100644 --- a/app/Filters/RecurringInvoiceFilters.php +++ b/app/Filters/RecurringInvoiceFilters.php @@ -48,7 +48,8 @@ class RecurringInvoiceFilters extends QueryFilters $q->where('first_name', 'like', '%'.$filter.'%') ->orWhere('last_name', 'like', '%'.$filter.'%') ->orWhere('email', 'like', '%'.$filter.'%'); - }); + }) + ->orWhereRaw("JSON_UNQUOTE(JSON_EXTRACT(line_items, '$[*].notes')) LIKE ?", ['%'.$filter.'%']); }); } diff --git a/app/Helpers/Generic.php b/app/Helpers/Generic.php index 33c5b4ba801f..65846b786792 100644 --- a/app/Helpers/Generic.php +++ b/app/Helpers/Generic.php @@ -27,7 +27,7 @@ function nlog($output, $context = []): void } if (gettype($output) == 'object') { - $output = print_r($output, 1); + $output = print_r($output, true); } // $trace = debug_backtrace(); @@ -53,7 +53,7 @@ function nrlog($output, $context = []): void } if (gettype($output) == 'object') { - $output = print_r($output, 1); + $output = print_r($output, true); } // $trace = debug_backtrace(); diff --git a/app/Helpers/Invoice/InvoiceItemSumInclusive.php b/app/Helpers/Invoice/InvoiceItemSumInclusive.php index eacb13afb9e5..da4c3e1f3aa4 100644 --- a/app/Helpers/Invoice/InvoiceItemSumInclusive.php +++ b/app/Helpers/Invoice/InvoiceItemSumInclusive.php @@ -411,7 +411,7 @@ class InvoiceItemSumInclusive $this->rule = new $class(); - if($this->rule->regionWithNoTaxCoverage($this->client->country->iso_3166_2)) { + if($this->rule->regionWithNoTaxCoverage($this->client->country->iso_3166_2 ?? false)) { return $this; } diff --git a/app/Helpers/Mail/GmailTransport.php b/app/Helpers/Mail/GmailTransport.php index 1be44af73641..5dd8492191b2 100644 --- a/app/Helpers/Mail/GmailTransport.php +++ b/app/Helpers/Mail/GmailTransport.php @@ -31,7 +31,7 @@ class GmailTransport extends AbstractTransport protected function doSend(SentMessage $message): void { nlog("In Do Send"); - $message = MessageConverter::toEmail($message->getOriginalMessage()); + $message = MessageConverter::toEmail($message->getOriginalMessage()); //@phpstan-ignore-line /** @phpstan-ignore-next-line **/ $token = $message->getHeaders()->get('gmailtoken')->getValue(); // @phpstan-ignore-line diff --git a/app/Helpers/Mail/Office365MailTransport.php b/app/Helpers/Mail/Office365MailTransport.php index c5cf6fa91235..4a6f49a70b65 100644 --- a/app/Helpers/Mail/Office365MailTransport.php +++ b/app/Helpers/Mail/Office365MailTransport.php @@ -25,7 +25,8 @@ class Office365MailTransport extends AbstractTransport protected function doSend(SentMessage $message): void { - $symfony_message = MessageConverter::toEmail($message->getOriginalMessage()); + $symfony_message = MessageConverter::toEmail($message->getOriginalMessage()); //@phpstan-ignore-line + $graph = new Graph(); diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index fdad07677017..3f8201c75a6c 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -376,6 +376,7 @@ class LoginController extends BaseController /** @var \App\Models\User $user */ $user = auth()->user(); + /** @var Builder $cu */ $cu = CompanyUser::query()->where('user_id', $user->id); if ($cu->count() == 0) { @@ -398,18 +399,15 @@ class LoginController extends BaseController $truth->setCompany($set_company); //21-03-2024 + + $cu->each(function ($cu) { - if(CompanyToken::where('company_id', $cu->company_id)->where('user_id', $cu->user_id)->where('is_system', true)->doesntExist()) { + /** @var \App\Models\CompanyUser $cu */ + if(CompanyToken::query()->where('company_id', $cu->company_id)->where('user_id', $cu->user_id)->where('is_system', true)->doesntExist()) { (new CreateCompanyToken($cu->company, $cu->user, request()->server('HTTP_USER_AGENT')))->handle(); } }); - // $user->account->companies->each(function ($company) use ($user) { - // if ($company->tokens()->where('user_id',$user->id)->where('is_system', true)->count() == 0) { - // (new CreateCompanyToken($company, $user, request()->server('HTTP_USER_AGENT')))->handle(); - // } - // }); - $truth->setCompanyToken(CompanyToken::where('user_id', $user->id)->where('company_id', $set_company->id)->where('is_system', true)->first()); return CompanyUser::query()->where('user_id', $user->id); diff --git a/app/Http/Controllers/Bank/YodleeController.php b/app/Http/Controllers/Bank/YodleeController.php index 84dae2618aff..d7057848eb1f 100644 --- a/app/Http/Controllers/Bank/YodleeController.php +++ b/app/Http/Controllers/Bank/YodleeController.php @@ -97,7 +97,7 @@ class YodleeController extends BaseController } $company->account->bank_integrations->where("integration_type", BankIntegration::INTEGRATION_TYPE_YODLEE)->where('auto_sync', true)->each(function ($bank_integration) use ($company) { // TODO: filter to yodlee only - ProcessBankTransactionsYodlee::dispatch($company->account->id, $bank_integration); + ProcessBankTransactionsYodlee::dispatch($company->account->bank_integration_account_id, $bank_integration); }); } diff --git a/app/Http/Controllers/BankIntegrationController.php b/app/Http/Controllers/BankIntegrationController.php index 1cc7e3a21916..6701f1e65fd9 100644 --- a/app/Http/Controllers/BankIntegrationController.php +++ b/app/Http/Controllers/BankIntegrationController.php @@ -197,6 +197,7 @@ class BankIntegrationController extends BaseController /** @var \App\Models\User $user */ $user = auth()->user(); + /** @var \App\Models\Account $user_account */ $user_account = $user->account; $this->refreshAccountsYodlee($user); @@ -210,12 +211,14 @@ class BankIntegrationController extends BaseController // Processing transactions for each bank account if (Ninja::isHosted() && $user->account->bank_integration_account_id) { $user_account->bank_integrations->where("integration_type", BankIntegration::INTEGRATION_TYPE_YODLEE)->each(function ($bank_integration) use ($user_account) { - ProcessBankTransactionsYodlee::dispatch($user_account->id, $bank_integration); + /** @var \App\Models\BankIntegration $bank_integration */ + ProcessBankTransactionsYodlee::dispatch($user_account->bank_integration_account_id, $bank_integration); }); } if (config('ninja.nordigen.secret_id') && config('ninja.nordigen.secret_key') && (Ninja::isSelfHost() || (Ninja::isHosted() && $user_account->isEnterprisePaidClient()))) { - $user_account->bank_integrations->where("integration_type", BankIntegration::INTEGRATION_TYPE_NORDIGEN)->each(function ($bank_integration) { + $user_account->bank_integrations->where("integration_type", BankIntegration::INTEGRATION_TYPE_NORDIGEN)->each(function ($bank_integration) { + /** @var \App\Models\BankIntegration $bank_integration */ ProcessBankTransactionsNordigen::dispatch($bank_integration); }); } @@ -345,7 +348,7 @@ class BankIntegrationController extends BaseController if (Ninja::isHosted() && $account->isPaid() && $account->plan == 'enterprise') { $account->bank_integrations()->where('integration_type', BankIntegration::INTEGRATION_TYPE_YODLEE)->where('auto_sync', true)->cursor()->each(function ($bank_integration) use ($account) { - (new ProcessBankTransactionsYodlee($account->id, $bank_integration))->handle(); + (new ProcessBankTransactionsYodlee($account->bank_integration_account_id, $bank_integration))->handle(); }); } diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index 93a55c6adf6f..01f3d8973d97 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -654,7 +654,7 @@ class BaseController extends Controller /** * Passes back the miniloaded data response * - * @param Builder $query + * @param mixed $query * */ protected function timeConstrainedResponse($query) @@ -895,11 +895,7 @@ class BaseController extends Controller $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); } - // else { - // $resource = new Collection($query, $transformer, $this->entity_type); - // } - - return $this->response($this->manager->createData($resource)->toArray()); + return $this->response($this->manager->createData($resource)->toArray()); //@phpstan-ignore-line } /** diff --git a/app/Http/Controllers/ClientPortal/PaymentController.php b/app/Http/Controllers/ClientPortal/PaymentController.php index 7efd13510a56..728df5eb1de1 100644 --- a/app/Http/Controllers/ClientPortal/PaymentController.php +++ b/app/Http/Controllers/ClientPortal/PaymentController.php @@ -209,7 +209,7 @@ class PaymentController extends Controller if (property_exists($payment_hash->data, 'billing_context')) { $billing_subscription = \App\Models\Subscription::find($this->decodePrimaryKey($payment_hash->data->billing_context->subscription_id)); - + /** @var \App\Models\Subscription $billing_subscription */ return (new SubscriptionService($billing_subscription))->completePurchase($payment_hash); } diff --git a/app/Http/Controllers/DocumentController.php b/app/Http/Controllers/DocumentController.php index 2a66c150f3d7..776390a4016a 100644 --- a/app/Http/Controllers/DocumentController.php +++ b/app/Http/Controllers/DocumentController.php @@ -183,7 +183,7 @@ class DocumentController extends BaseController } if ($action == 'download') { - ZipDocuments::dispatch($documents->pluck('id'), $user->company(), auth()->user()); + ZipDocuments::dispatch($documents->pluck('id'), $user->company(), auth()->user()); //@phpstan-ignore-line return response()->json(['message' => ctrans('texts.sent_message')], 200); } diff --git a/app/Http/Controllers/MigrationController.php b/app/Http/Controllers/MigrationController.php index 11123bf830d7..d51eb417fb6a 100644 --- a/app/Http/Controllers/MigrationController.php +++ b/app/Http/Controllers/MigrationController.php @@ -267,7 +267,7 @@ class MigrationController extends BaseController if ($request->companies) { //handle Laravel 5.5 UniHTTP - $companies = json_decode($request->companies, 1); + $companies = json_decode($request->companies, true); } else { //handle Laravel 6 Guzzle $companies = []; @@ -275,7 +275,7 @@ class MigrationController extends BaseController foreach ($request->all() as $input) { if ($input instanceof UploadedFile) { } else { - $companies[] = json_decode($input, 1); + $companies[] = json_decode($input, true); } } } diff --git a/app/Http/Controllers/PaymentNotificationWebhookController.php b/app/Http/Controllers/PaymentNotificationWebhookController.php index 2eb637d5e1ee..a7ab8b0c3cba 100644 --- a/app/Http/Controllers/PaymentNotificationWebhookController.php +++ b/app/Http/Controllers/PaymentNotificationWebhookController.php @@ -24,8 +24,9 @@ class PaymentNotificationWebhookController extends Controller public function __invoke(PaymentNotificationWebhookRequest $request, string $company_key, string $company_gateway_id, string $client_hash) { /** @var \App\Models\CompanyGateway $company_gateway */ - $company_gateway = CompanyGateway::find($this->decodePrimaryKey($company_gateway_id)); + + /** @var \App\Models\Client $client */ $client = Client::find($this->decodePrimaryKey($client_hash)); return $company_gateway diff --git a/app/Http/Controllers/PreviewController.php b/app/Http/Controllers/PreviewController.php index bbfa9b150368..db7b705898f3 100644 --- a/app/Http/Controllers/PreviewController.php +++ b/app/Http/Controllers/PreviewController.php @@ -125,7 +125,7 @@ class PreviewController extends BaseController $response = Response::make($pdf, 200); $response->header('Content-Type', 'application/pdf'); - $response->header('Server-Timing', microtime(true) - $start); + $response->header('Server-Timing', (string) (microtime(true) - $start)); return $response; } @@ -288,7 +288,7 @@ class PreviewController extends BaseController /** @var \App\Models\Company $company */ $company = $user->company(); - $design_object = json_decode(json_encode(request()->input('design')), 1); + $design_object = json_decode(json_encode(request()->input('design')), true); $ts = (new TemplateService()); diff --git a/app/Http/Controllers/SetupController.php b/app/Http/Controllers/SetupController.php index 6b5c908ccd51..889e117d0daf 100644 --- a/app/Http/Controllers/SetupController.php +++ b/app/Http/Controllers/SetupController.php @@ -145,8 +145,8 @@ class SetupController extends Controller Artisan::call('config:clear'); - Artisan::call('key:generate', ['--force' => true]); + Artisan::call('migrate', ['--force' => true]); Artisan::call('db:seed', ['--force' => true]); Artisan::call('config:clear'); diff --git a/app/Http/Requests/Client/UpdateClientRequest.php b/app/Http/Requests/Client/UpdateClientRequest.php index 81da5af205f0..ad8944c2dfbd 100644 --- a/app/Http/Requests/Client/UpdateClientRequest.php +++ b/app/Http/Requests/Client/UpdateClientRequest.php @@ -11,13 +11,14 @@ namespace App\Http\Requests\Client; -use App\DataMapper\CompanySettings; use App\Http\Requests\Request; -use App\Http\ValidationRules\ValidClientGroupSettingsRule; -use App\Utils\Traits\ChecksEntityStatus; use App\Utils\Traits\MakesHash; -use Illuminate\Support\Facades\Cache; use Illuminate\Validation\Rule; +use App\DataMapper\CompanySettings; +use Illuminate\Support\Facades\Cache; +use App\Utils\Traits\ChecksEntityStatus; +use App\Http\ValidationRules\EInvoice\ValidClientScheme; +use App\Http\ValidationRules\ValidClientGroupSettingsRule; class UpdateClientRequest extends Request { @@ -66,6 +67,8 @@ class UpdateClientRequest extends Request $rules['id_number'] = ['sometimes', 'bail', 'nullable', Rule::unique('clients')->where('company_id', $user->company()->id)->ignore($this->client->id)]; $rules['number'] = ['sometimes', 'bail', Rule::unique('clients')->where('company_id', $user->company()->id)->ignore($this->client->id)]; + $rules['e_invoice'] = ['sometimes','nullable', new ValidClientScheme()]; + $rules['settings'] = new ValidClientGroupSettingsRule(); $rules['contacts'] = 'array'; $rules['contacts.*.email'] = 'bail|nullable|distinct|sometimes|email'; diff --git a/app/Http/Requests/ClientPortal/PaymentMethod/CreatePaymentMethodRequest.php b/app/Http/Requests/ClientPortal/PaymentMethod/CreatePaymentMethodRequest.php index 272e8e1bf2e2..a50352b9b05d 100644 --- a/app/Http/Requests/ClientPortal/PaymentMethod/CreatePaymentMethodRequest.php +++ b/app/Http/Requests/ClientPortal/PaymentMethod/CreatePaymentMethodRequest.php @@ -29,7 +29,7 @@ class CreatePaymentMethodRequest extends FormRequest $available_methods = []; collect($client->service()->getPaymentMethods(-1)) - ->filter(function ($method) use (&$available_methods) { + ->filter(function ($method) use (&$available_methods) { //@phpstan-ignore-line $available_methods[] = $method['gateway_type_id']; }); diff --git a/app/Http/Requests/CompanyGateway/StoreCompanyGatewayRequest.php b/app/Http/Requests/CompanyGateway/StoreCompanyGatewayRequest.php index d182cb52b3fd..c010614953c9 100644 --- a/app/Http/Requests/CompanyGateway/StoreCompanyGatewayRequest.php +++ b/app/Http/Requests/CompanyGateway/StoreCompanyGatewayRequest.php @@ -48,7 +48,7 @@ class StoreCompanyGatewayRequest extends Request { $input = $this->all(); - if ($gateway = Gateway::where('key', $input['gateway_key'])->first()) { + if ($gateway = Gateway::query()->where('key', $input['gateway_key'])->first()) { $default_gateway_fields = json_decode($gateway->fields); /*Force gateway properties */ diff --git a/app/Http/Requests/CompanyGateway/UpdateCompanyGatewayRequest.php b/app/Http/Requests/CompanyGateway/UpdateCompanyGatewayRequest.php index 61feb38b7dbb..1aafecd7099c 100644 --- a/app/Http/Requests/CompanyGateway/UpdateCompanyGatewayRequest.php +++ b/app/Http/Requests/CompanyGateway/UpdateCompanyGatewayRequest.php @@ -48,7 +48,7 @@ class UpdateCompanyGatewayRequest extends Request /*Force gateway properties */ if (isset($input['config']) && is_object(json_decode($input['config'])) && array_key_exists('gateway_key', $input)) { - $gateway = Gateway::where('key', $input['gateway_key'])->first(); + $gateway = Gateway::query()->where('key', $input['gateway_key'])->first(); $default_gateway_fields = json_decode($gateway->fields); foreach (json_decode($input['config']) as $key => $value) { diff --git a/app/Http/Requests/Email/SendEmailRequest.php b/app/Http/Requests/Email/SendEmailRequest.php index c9ab8aff95f5..60d82aec59a6 100644 --- a/app/Http/Requests/Email/SendEmailRequest.php +++ b/app/Http/Requests/Email/SendEmailRequest.php @@ -94,7 +94,7 @@ class SendEmailRequest extends Request $this->entity_plural = Str::plural($input['entity']) ?? ''; - if (isset($input['entity'])) { + if (isset($input['entity']) && in_array($input['entity'], ['invoice','quote','credit','recurring_invoice','purchase_order','payment'])) { $input['entity'] = "App\Models\\".ucfirst(Str::camel($input['entity'])); } diff --git a/app/Http/Requests/Payment/StorePaymentRequest.php b/app/Http/Requests/Payment/StorePaymentRequest.php index ea28645765f6..67d472836f49 100644 --- a/app/Http/Requests/Payment/StorePaymentRequest.php +++ b/app/Http/Requests/Payment/StorePaymentRequest.php @@ -46,7 +46,7 @@ class StorePaymentRequest extends Request $rules = [ 'client_id' => ['bail','required',Rule::exists('clients', 'id')->where('company_id', $user->company()->id)->where('is_deleted', 0)], - 'invoices' => ['bail','sometimes', 'nullable', 'array', new ValidPayableInvoicesRule()], + 'invoices' => ['bail', 'sometimes', 'nullable', 'array', new ValidPayableInvoicesRule()], 'invoices.*.amount' => ['bail','required'], 'invoices.*.invoice_id' => ['bail','required','distinct', new ValidInvoicesRules($this->all()),Rule::exists('invoices', 'id')->where('company_id', $user->company()->id)->where('client_id', $this->client_id)], 'credits.*.credit_id' => ['bail','required','distinct', new ValidCreditsRules($this->all()),Rule::exists('credits', 'id')->where('company_id', $user->company()->id)->where('client_id', $this->client_id)], diff --git a/app/Http/Requests/RecurringExpense/BulkRecurringExpenseRequest.php b/app/Http/Requests/RecurringExpense/BulkRecurringExpenseRequest.php index 9dffb4f4373e..2c2cdc9e7d0e 100644 --- a/app/Http/Requests/RecurringExpense/BulkRecurringExpenseRequest.php +++ b/app/Http/Requests/RecurringExpense/BulkRecurringExpenseRequest.php @@ -34,7 +34,10 @@ class BulkRecurringExpenseRequest extends Request return false; } - return auth()->user()->can(auth()->user()->isAdmin(), RecurringExpense::class); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + return $user->can('edit', RecurringExpense::class); } /** diff --git a/app/Http/Requests/Task/StoreTaskRequest.php b/app/Http/Requests/Task/StoreTaskRequest.php index f61bc4267a23..9c5462add8c9 100644 --- a/app/Http/Requests/Task/StoreTaskRequest.php +++ b/app/Http/Requests/Task/StoreTaskRequest.php @@ -69,7 +69,7 @@ class StoreTaskRequest extends Request foreach ($values as $k) { if (!is_int($k[0]) || !is_int($k[1])) { - return $fail('The '.$attribute.' - '.print_r($k, 1).' is invalid. Unix timestamps only.'); + return $fail('The '.$attribute.' - '.print_r($k, true).' is invalid. Unix timestamps only.'); } } diff --git a/app/Http/Requests/Task/UpdateTaskRequest.php b/app/Http/Requests/Task/UpdateTaskRequest.php index 85b2c4de955b..0944fb4eee1e 100644 --- a/app/Http/Requests/Task/UpdateTaskRequest.php +++ b/app/Http/Requests/Task/UpdateTaskRequest.php @@ -75,7 +75,7 @@ class UpdateTaskRequest extends Request foreach ($values as $k) { if (!is_int($k[0]) || !is_int($k[1])) { - return $fail('The '.$attribute.' - '.print_r($k, 1).' is invalid. Unix timestamps only.'); + return $fail('The '.$attribute.' - '.print_r($k, true).' is invalid. Unix timestamps only.'); } } diff --git a/app/Http/Requests/Vendor/BulkVendorRequest.php b/app/Http/Requests/Vendor/BulkVendorRequest.php index fb0dd93ef9b9..5f9d01e56a3e 100644 --- a/app/Http/Requests/Vendor/BulkVendorRequest.php +++ b/app/Http/Requests/Vendor/BulkVendorRequest.php @@ -34,7 +34,11 @@ class BulkVendorRequest extends Request return false; } - return auth()->user()->can(auth()->user()->isAdmin(), Vendor::class); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + return $user->can('edit', Vendor::class); + } /** diff --git a/app/Http/ValidationRules/EInvoice/ValidClientScheme.php b/app/Http/ValidationRules/EInvoice/ValidClientScheme.php new file mode 100644 index 000000000000..f21582559e4b --- /dev/null +++ b/app/Http/ValidationRules/EInvoice/ValidClientScheme.php @@ -0,0 +1,63 @@ +validateRequest($value['Invoice'], ClientLevel::class); + + foreach ($errors as $key => $msg) { + + $this->validator->errors()->add( + "e_invoice.{$key}", + "{$key} - {$msg}" + ); + + } + } + } + + /** + * Set the current validator. + */ + public function setValidator(Validator $validator): static + { + $this->validator = $validator; + return $this; + } + + +} diff --git a/app/Http/ValidationRules/EInvoice/ValidCompanyScheme.php b/app/Http/ValidationRules/EInvoice/ValidCompanyScheme.php index bd5777bf30ea..6c3975d11c3e 100644 --- a/app/Http/ValidationRules/EInvoice/ValidCompanyScheme.php +++ b/app/Http/ValidationRules/EInvoice/ValidCompanyScheme.php @@ -35,18 +35,21 @@ class ValidCompanyScheme implements ValidationRule, ValidatorAwareRule public function validate(string $attribute, mixed $value, Closure $fail): void { - $r = new EInvoice(); - $errors = $r->validateRequest($value['Invoice'], CompanyLevel::class); - - foreach ($errors as $key => $msg) { + if(isset($value['Invoice'])) + { + $r = new EInvoice(); + $errors = $r->validateRequest($value['Invoice'], CompanyLevel::class); + + foreach ($errors as $key => $msg) { - $this->validator->errors()->add( - "e_invoice.{$key}", - "{$key} - {$msg}" - ); + $this->validator->errors()->add( + "e_invoice.{$key}", + "{$key} - {$msg}" + ); + } } - + } /** diff --git a/app/Http/ValidationRules/Payment/ValidInvoicesRules.php b/app/Http/ValidationRules/Payment/ValidInvoicesRules.php index 6e40a6e91ae6..043a2419efbb 100644 --- a/app/Http/ValidationRules/Payment/ValidInvoicesRules.php +++ b/app/Http/ValidationRules/Payment/ValidInvoicesRules.php @@ -85,11 +85,12 @@ class ValidInvoicesRules implements Rule //catch here nothing to do - we need this to prevent the last elseif triggering } elseif ($inv->status_id == Invoice::STATUS_DRAFT && floatval($invoice['amount']) > floatval($inv->amount)) { $this->error_msg = 'Amount cannot be greater than invoice balance'; - return false; } elseif (floatval($invoice['amount']) > floatval($inv->balance)) { $this->error_msg = ctrans('texts.amount_greater_than_balance_v5'); - + return false; + } elseif($inv->is_deleted){ + $this->error_msg = 'One or more invoices in this request have since been deleted'; return false; } } diff --git a/app/Http/ValidationRules/ValidPayableInvoicesRule.php b/app/Http/ValidationRules/ValidPayableInvoicesRule.php index be422be947ce..1473be96fc3b 100644 --- a/app/Http/ValidationRules/ValidPayableInvoicesRule.php +++ b/app/Http/ValidationRules/ValidPayableInvoicesRule.php @@ -35,7 +35,7 @@ class ValidPayableInvoicesRule implements Rule $invoices = []; if (is_array($value)) { - $invoices = Invoice::query()->whereIn('id', array_column($value, 'invoice_id'))->company()->get(); + $invoices = Invoice::query()->withTrashed()->whereIn('id', array_column($value, 'invoice_id'))->company()->get(); } foreach ($invoices as $invoice) { diff --git a/app/Import/Definitions/ProductMap.php b/app/Import/Definitions/ProductMap.php index 5f4e636ad12c..199434642be5 100644 --- a/app/Import/Definitions/ProductMap.php +++ b/app/Import/Definitions/ProductMap.php @@ -31,7 +31,10 @@ class ProductMap 12 => 'product.custom_value2', 13 => 'product.custom_value3', 14 => 'product.custom_value4', - 15 => 'product.image_url' + 15 => 'product.image_url', + 16 => 'product.in_stock_quantity', + 17 => 'product.tax_category', + 18 => 'product.max_quantity', ]; } @@ -54,6 +57,9 @@ class ProductMap 13 => 'texts.custom_value', 14 => 'texts.custom_value', 15 => 'texts.image_url', + 16 => 'texts.in_stock_quantity', + 17 => 'texts.tax_category', + 18 => 'texts.max_quantity', ]; } } diff --git a/app/Import/Transformer/Csv/ExpenseTransformer.php b/app/Import/Transformer/Csv/ExpenseTransformer.php index c641662b41f8..d69fa4ca68d1 100644 --- a/app/Import/Transformer/Csv/ExpenseTransformer.php +++ b/app/Import/Transformer/Csv/ExpenseTransformer.php @@ -42,7 +42,7 @@ class ExpenseTransformer extends BaseTransformer 'client_id' => isset($data['expense.client']) ? $this->getClientId($data['expense.client']) : null, - 'date' => strlen($this->getString($data, 'expense.date') > 1) ? $this->parseDate($data['expense.date']) : now()->format('Y-m-d'), + 'date' => strlen($this->getString($data, 'expense.date')) > 1 ? $this->parseDate($data['expense.date']) : now()->format('Y-m-d'), 'public_notes' => $this->getString($data, 'expense.public_notes'), 'private_notes' => $this->getString($data, 'expense.private_notes'), 'category_id' => isset($data['expense.category']) diff --git a/app/Import/Transformer/Csv/ProductTransformer.php b/app/Import/Transformer/Csv/ProductTransformer.php index a1829df41912..da871c0d9ae6 100644 --- a/app/Import/Transformer/Csv/ProductTransformer.php +++ b/app/Import/Transformer/Csv/ProductTransformer.php @@ -43,6 +43,7 @@ class ProductTransformer extends BaseTransformer 'custom_value3' => $this->getString($data, 'product.custom_value3'), 'custom_value4' => $this->getString($data, 'product.custom_value4'), 'product_image' => $this->getString($data, 'product.image_url'), + 'in_stock_quantity' => $this->getFloat($data, 'product.in_stock_quantity'), ]; } } diff --git a/app/Jobs/Bank/MatchBankTransactions.php b/app/Jobs/Bank/MatchBankTransactions.php index c377a9c05dce..326d9952583d 100644 --- a/app/Jobs/Bank/MatchBankTransactions.php +++ b/app/Jobs/Bank/MatchBankTransactions.php @@ -448,6 +448,6 @@ class MatchBankTransactions implements ShouldQueue public function middleware() { - return [new WithoutOverlapping($this->company_id)]; + return [new WithoutOverlapping($this->company->account->bank_integration_account_id)]; } } diff --git a/app/Jobs/Bank/ProcessBankTransactionsYodlee.php b/app/Jobs/Bank/ProcessBankTransactionsYodlee.php index 3b651fc9a0d4..7ffb7791fa9c 100644 --- a/app/Jobs/Bank/ProcessBankTransactionsYodlee.php +++ b/app/Jobs/Bank/ProcessBankTransactionsYodlee.php @@ -35,10 +35,6 @@ class ProcessBankTransactionsYodlee implements ShouldQueue use Queueable; use SerializesModels; - private string $bank_integration_account_id; - - private BankIntegration $bank_integration; - private ?string $from_date; private bool $stop_loop = true; @@ -50,10 +46,8 @@ class ProcessBankTransactionsYodlee implements ShouldQueue /** * Create a new job instance. */ - public function __construct(string $bank_integration_account_id, BankIntegration $bank_integration) + public function __construct(private string $bank_integration_account_id, private BankIntegration $bank_integration) { - $this->bank_integration_account_id = $bank_integration_account_id; - $this->bank_integration = $bank_integration; $this->from_date = $bank_integration->from_date; $this->company = $this->bank_integration->company; } diff --git a/app/Jobs/Brevo/ProcessBrevoWebhook.php b/app/Jobs/Brevo/ProcessBrevoWebhook.php index e6ef60a7522d..b81772fd2c0a 100644 --- a/app/Jobs/Brevo/ProcessBrevoWebhook.php +++ b/app/Jobs/Brevo/ProcessBrevoWebhook.php @@ -93,8 +93,7 @@ class ProcessBrevoWebhook implements ShouldQueue { MultiDB::findAndSetDbByCompanyKey($this->request['tags'][0]); - /** @phpstan-ignore-next-line */ - $this->company = Company::where('company_key', $this->request['tags'][0])->first(); + $this->company = Company::query()->where('company_key', $this->request['tags'][0])->first(); $this->invitation = $this->discoverInvitation($this->request['message-id']); diff --git a/app/Jobs/Client/CheckVat.php b/app/Jobs/Client/CheckVat.php index d8637b9f6ab9..ed35f1eaf25c 100644 --- a/app/Jobs/Client/CheckVat.php +++ b/app/Jobs/Client/CheckVat.php @@ -58,7 +58,7 @@ class CheckVat implements ShouldQueue public function middleware() { - return [new WithoutOverlapping($this->client->id)]; + return [new WithoutOverlapping($this->client->client_hash)]; } } diff --git a/app/Jobs/Company/CompanyExport.php b/app/Jobs/Company/CompanyExport.php index 4f7c571ec4ed..3885c05e7df3 100644 --- a/app/Jobs/Company/CompanyExport.php +++ b/app/Jobs/Company/CompanyExport.php @@ -108,7 +108,8 @@ class CompanyExport implements ShouldQueue $this->export_data['users'] = $this->company->users()->withTrashed()->cursor()->map(function ($user) { - $user->account_id = $this->encodePrimaryKey($user->account_id); + /** @var \App\Models\User $user */ + $user->account_id = $this->encodePrimaryKey($user->account_id); //@phpstan-ignore-line return $user; })->all(); diff --git a/app/Jobs/Company/CompanyTaxRate.php b/app/Jobs/Company/CompanyTaxRate.php index ec659ed05288..684065952a5e 100644 --- a/app/Jobs/Company/CompanyTaxRate.php +++ b/app/Jobs/Company/CompanyTaxRate.php @@ -94,7 +94,7 @@ class CompanyTaxRate implements ShouldQueue public function middleware() { - return [new WithoutOverlapping($this->company->id)]; + return [new WithoutOverlapping($this->company->company_key)]; } public function failed($e) diff --git a/app/Jobs/Cron/AutoBillCron.php b/app/Jobs/Cron/AutoBillCron.php index ddd8e6ca2bb8..9f708d95c7cd 100644 --- a/app/Jobs/Cron/AutoBillCron.php +++ b/app/Jobs/Cron/AutoBillCron.php @@ -65,7 +65,7 @@ class AutoBillCron $auto_bill_partial_invoices->chunk(400, function ($invoices) { foreach ($invoices as $invoice) { - AutoBill::dispatch($invoice->id, false); + AutoBill::dispatch($invoice->id, null); } sleep(2); @@ -87,7 +87,7 @@ class AutoBillCron $auto_bill_invoices->chunk(400, function ($invoices) { foreach ($invoices as $invoice) { - AutoBill::dispatch($invoice->id, false); + AutoBill::dispatch($invoice->id, null); } sleep(2); diff --git a/app/Jobs/Document/CopyDocs.php b/app/Jobs/Document/CopyDocs.php index e0f091b3012c..5cbe9e6d6179 100644 --- a/app/Jobs/Document/CopyDocs.php +++ b/app/Jobs/Document/CopyDocs.php @@ -47,10 +47,12 @@ class CopyDocs implements ShouldQueue { MultiDB::setDb($this->db); - Document::whereIn('id', $this->document_ids) + Document::query() + ->whereIn('id', $this->document_ids) ->where('company_id', $this->entity->company_id) ->each(function ($document) { + /** @var \App\Models\Document $document */ $file = $document->getFile(); $extension = pathinfo($document->name, PATHINFO_EXTENSION); diff --git a/app/Jobs/Invoice/CreateUbl.php b/app/Jobs/Invoice/CreateUbl.php index cd018b4ed965..b98c3e91ab7a 100644 --- a/app/Jobs/Invoice/CreateUbl.php +++ b/app/Jobs/Invoice/CreateUbl.php @@ -63,7 +63,7 @@ class CreateUbl implements ShouldQueue // invoice $ubl_invoice->setId($invoice->number); $ubl_invoice->setIssueDate(date_create($invoice->date)); - $ubl_invoice->setInvoiceTypeCode($invoice->amount < 0 ? self::INVOICE_TYPE_CREDIT : self::INVOICE_TYPE_STANDARD); + $ubl_invoice->setInvoiceTypeCode($invoice->amount < 0 ? (string)self::INVOICE_TYPE_CREDIT : (string)self::INVOICE_TYPE_STANDARD); $supplier_party = $this->createParty($company, $invoice->user); $ubl_invoice->setAccountingSupplierParty($supplier_party); diff --git a/app/Jobs/Ledger/ClientLedgerBalanceUpdate.php b/app/Jobs/Ledger/ClientLedgerBalanceUpdate.php index a8171e517e5f..628344fe16a7 100644 --- a/app/Jobs/Ledger/ClientLedgerBalanceUpdate.php +++ b/app/Jobs/Ledger/ClientLedgerBalanceUpdate.php @@ -75,6 +75,6 @@ class ClientLedgerBalanceUpdate implements ShouldQueue public function middleware() { - return [(new WithoutOverlapping($this->client->id))->dontRelease()]; + return [(new WithoutOverlapping($this->client->client_hash))->dontRelease()]; } } diff --git a/app/Jobs/Mailgun/ProcessMailgunWebhook.php b/app/Jobs/Mailgun/ProcessMailgunWebhook.php index 62f400a2bf04..73d32f39e9f7 100644 --- a/app/Jobs/Mailgun/ProcessMailgunWebhook.php +++ b/app/Jobs/Mailgun/ProcessMailgunWebhook.php @@ -94,7 +94,7 @@ class ProcessMailgunWebhook implements ShouldQueue } MultiDB::findAndSetDbByCompanyKey($this->request['event-data']['tags'][0]); - $company = Company::where('company_key', $this->request['event-data']['tags'][0])->first(); + $company = Company::query()->where('company_key', $this->request['event-data']['tags'][0])->first(); if ($company && $this->request['event-data']['event'] == 'complained' && config('ninja.notification.slack')) { $company->notification(new EmailSpamNotification($company))->ninja(); diff --git a/app/Jobs/PostMark/ProcessPostmarkWebhook.php b/app/Jobs/PostMark/ProcessPostmarkWebhook.php index 5f56945a2dbd..9e489bb6b6d2 100644 --- a/app/Jobs/PostMark/ProcessPostmarkWebhook.php +++ b/app/Jobs/PostMark/ProcessPostmarkWebhook.php @@ -87,7 +87,7 @@ class ProcessPostmarkWebhook implements ShouldQueue public function handle() { MultiDB::findAndSetDbByCompanyKey($this->request['Tag']); - $this->company = Company::where('company_key', $this->request['Tag'])->first(); /** @phpstan-ignore-line */ + $this->company = Company::query()->where('company_key', $this->request['Tag'])->first(); /** @phpstan-ignore-line */ $this->invitation = $this->discoverInvitation($this->request['MessageID']); diff --git a/app/Jobs/Product/UpdateOrCreateProduct.php b/app/Jobs/Product/UpdateOrCreateProduct.php index fbfc1e8853cb..82fc0c06dda4 100644 --- a/app/Jobs/Product/UpdateOrCreateProduct.php +++ b/app/Jobs/Product/UpdateOrCreateProduct.php @@ -140,6 +140,6 @@ class UpdateOrCreateProduct implements ShouldQueue public function failed($exception = null) { info('update create failed with = '); - info(print_r($exception->getMessage(), 1)); + nlog($exception->getMessage()); } } diff --git a/app/Jobs/RecurringInvoice/SendRecurring.php b/app/Jobs/RecurringInvoice/SendRecurring.php index 6a57330f1eca..a856539a642a 100644 --- a/app/Jobs/RecurringInvoice/SendRecurring.php +++ b/app/Jobs/RecurringInvoice/SendRecurring.php @@ -202,6 +202,6 @@ class SendRecurring implements ShouldQueue LightLogs::create($job_failure) ->send(); - nlog(print_r($exception->getMessage(), 1)); + nlog($exception->getMessage()); } } diff --git a/app/Jobs/Util/Import.php b/app/Jobs/Util/Import.php index 696b37bee891..f4961b19fc43 100644 --- a/app/Jobs/Util/Import.php +++ b/app/Jobs/Util/Import.php @@ -212,7 +212,7 @@ class Import implements ShouldQueue $user->setCompany($this->company); - $array = json_decode(file_get_contents($this->file_path), 1); + $array = json_decode(file_get_contents($this->file_path), true); $data = $array['data']; foreach ($this->available_imports as $import) { @@ -253,7 +253,7 @@ class Import implements ShouldQueue $this->setInitialCompanyLedgerBalances(); // $this->fixClientBalances(); - $check_data = (new CheckCompanyData($this->company, md5(time())))->handle(); + $check_data = (new CheckCompanyData($this->company, md5(time())))->handle(); //@phpstan-ignore-line // if(Ninja::isHosted() && array_key_exists('ninja_tokens', $data)) $this->processNinjaTokens($data['ninja_tokens']); @@ -1545,7 +1545,6 @@ class Import implements ShouldQueue $file_path, $file_name, $file_info, - filesize($file_path), 0, false ); @@ -2010,7 +2009,7 @@ class Import implements ShouldQueue public function transformId($resource, string $old): int { if (! array_key_exists($resource, $this->ids)) { - info(print_r($resource, 1)); + nlog($resource); throw new Exception("Resource {$resource} not available."); } @@ -2067,11 +2066,10 @@ class Import implements ShouldQueue LightLogs::create($job_failure) ->queue(); - nlog(print_r($exception->getMessage(), 1)); + nlog($exception->getMessage()); - // if (Ninja::isHosted()) { app('sentry')->captureException($exception); - // } + } diff --git a/app/Jobs/Util/StartMigration.php b/app/Jobs/Util/StartMigration.php index 3d28465d2c30..77b9ed9f7abd 100644 --- a/app/Jobs/Util/StartMigration.php +++ b/app/Jobs/Util/StartMigration.php @@ -168,6 +168,6 @@ class StartMigration implements ShouldQueue public function failed($exception = null) { - info(print_r($exception->getMessage(), 1)); + nlog($exception->getMessage()); } } diff --git a/app/Jobs/Util/UploadAvatar.php b/app/Jobs/Util/UploadAvatar.php index d010eebef926..e4bd904373f6 100644 --- a/app/Jobs/Util/UploadAvatar.php +++ b/app/Jobs/Util/UploadAvatar.php @@ -38,7 +38,7 @@ class UploadAvatar implements ShouldQueue public function handle(): ?string { - $tmp_file = sha1(time()).'.png'; + $tmp_file = sha1(time()).'.png'; //@phpstan-ignore-line $im = imagecreatefromstring(file_get_contents($this->file)); imagealphablending($im, false); diff --git a/app/Jobs/Util/VersionCheck.php b/app/Jobs/Util/VersionCheck.php index 9e604ab030de..e829c41f5518 100644 --- a/app/Jobs/Util/VersionCheck.php +++ b/app/Jobs/Util/VersionCheck.php @@ -94,7 +94,7 @@ class VersionCheck implements ShouldQueue Client::doesntHave('contacts') ->cursor() - ->each(function (Client $client) { + ->each(function (Client $client) { //@phpstan-ignore-line $new_contact = ClientContactFactory::create($client->company_id, $client->user_id); $new_contact->client_id = $client->id; @@ -107,7 +107,7 @@ class VersionCheck implements ShouldQueue Vendor::doesntHave('contacts') ->cursor() - ->each(function (Vendor $vendor) { + ->each(function (Vendor $vendor) { //@phpstan-ignore-line $new_contact = VendorContactFactory::create($vendor->company_id, $vendor->user_id); $new_contact->vendor_id = $vendor->id; diff --git a/app/Jobs/Vendor/CreatePurchaseOrderPdf.php b/app/Jobs/Vendor/CreatePurchaseOrderPdf.php index 824ac6424f5b..d40765b560d9 100644 --- a/app/Jobs/Vendor/CreatePurchaseOrderPdf.php +++ b/app/Jobs/Vendor/CreatePurchaseOrderPdf.php @@ -199,7 +199,7 @@ class CreatePurchaseOrderPdf implements ShouldQueue } } } catch (\Exception $e) { - nlog(print_r($e->getMessage(), 1)); + nlog($e->getMessage()); } if (config('ninja.log_pdf_html')) { diff --git a/app/Libraries/InApp/StoreKit/Apple.php b/app/Libraries/InApp/StoreKit/Apple.php index 7416c8aa171e..72a280b44d88 100644 --- a/app/Libraries/InApp/StoreKit/Apple.php +++ b/app/Libraries/InApp/StoreKit/Apple.php @@ -58,7 +58,7 @@ class Apple 'bid' => $this->bundle_id, ]; - $jwt = JWT::encode($payload, $this->private_key, $this->alg, $header); + $jwt = JWT::encode($payload, $this->private_key, $this->alg, null, $header); $decoded = JWT::decode($jwt, new Key($this->private_key, $this->alg)); diff --git a/app/Listeners/Mail/MailSentListener.php b/app/Listeners/Mail/MailSentListener.php index 3db2aba09b5c..18a01585b834 100644 --- a/app/Listeners/Mail/MailSentListener.php +++ b/app/Listeners/Mail/MailSentListener.php @@ -46,7 +46,7 @@ class MailSentListener implements ShouldQueue try { $message_id = $event->sent->getMessageId(); - $message = MessageConverter::toEmail($event->sent->getOriginalMessage()); + $message = MessageConverter::toEmail($event->sent->getOriginalMessage()); //@phpstan-ignore-line if (!$message->getHeaders()->get('x-invitation')) { return; diff --git a/app/Mail/Ninja/StripeConnectFailed.php b/app/Mail/Ninja/StripeConnectFailed.php index 3508fbc9edbd..bee93bd114fb 100644 --- a/app/Mail/Ninja/StripeConnectFailed.php +++ b/app/Mail/Ninja/StripeConnectFailed.php @@ -39,7 +39,7 @@ class StripeConnectFailed extends Mailable return new Envelope( subject: "Stripe Connect not configured, please login and connect.", from: config('ninja.contact.email'), - to: $this->user->email, + to: $this->user->email, //@phpstan-ignore-line ); } diff --git a/app/Mail/TemplateEmail.php b/app/Mail/TemplateEmail.php index 2eaa14389dae..78f45c372d1d 100644 --- a/app/Mail/TemplateEmail.php +++ b/app/Mail/TemplateEmail.php @@ -24,12 +24,17 @@ class TemplateEmail extends Mailable { private $build_email; - private $client; + /** @var \App\Models\Client $client */ + private $client; + + /** @var \App\Models\ClientContact | \App\Models\VendorContact $contact */ private $contact; + /** @var \App\Models\Company $company */ private $company; + /** @var \App\Models\InvoiceInvitation | \App\Models\QuoteInvitation | \App\Models\CreditInvitation | \App\Models\PurchaseOrderInvitation | \App\Models\RecurringInvoiceInvitation | null $invitation */ private $invitation; public function __construct($build_email, ClientContact $contact, $invitation = null) @@ -158,7 +163,7 @@ class TemplateEmail extends Mailable return $this; } - if ($this->invitation->invoice && $settings->ubl_email_attachment && $this->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) { + if ($this->invitation->invoice && $settings->ubl_email_attachment && !$this->invitation->invoice->client->getSetting('enable_e_invoice') && $this->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) { $ubl_string = (new CreateUbl($this->invitation->invoice))->handle(); if ($ubl_string) { @@ -167,8 +172,8 @@ class TemplateEmail extends Mailable } - if ($this->invitation->invoice) { - if ($this->invitation->invoice->client->getSetting('enable_e_invoice') && $this->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) { + if ($this->invitation->invoice) { //@phpstan-ignore-line + if ($this->invitation->invoice->client->getSetting('enable_e_invoice') && $this->invitation->invoice->client->getSetting('ubl_email_attachment') && $this->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) { $xml_string = $this->invitation->invoice->service()->getEInvoice($this->invitation->contact); if ($xml_string) { @@ -176,8 +181,8 @@ class TemplateEmail extends Mailable } } - } elseif ($this->invitation->credit) { - if ($this->invitation->credit->client->getSetting('enable_e_invoice') && $this->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) { + } elseif ($this->invitation->credit) {//@phpstan-ignore-line + if ($this->invitation->credit->client->getSetting('enable_e_invoice') && $this->invitation->invoice->client->getSetting('ubl_email_attachment') && $this->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) { $xml_string = $this->invitation->credit->service()->getECredit($this->invitation->contact); if ($xml_string) { @@ -185,8 +190,8 @@ class TemplateEmail extends Mailable } } - } elseif ($this->invitation->quote) { - if ($this->invitation->quote->client->getSetting('enable_e_invoice') && $this->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) { + } elseif ($this->invitation->quote) {//@phpstan-ignore-line + if ($this->invitation->quote->client->getSetting('enable_e_invoice') && $this->invitation->invoice->client->getSetting('ubl_email_attachment') && $this->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) { $xml_string = $this->invitation->quote->service()->getEQuote($this->invitation->contact); if ($xml_string) { @@ -195,7 +200,7 @@ class TemplateEmail extends Mailable } } elseif ($this->invitation->purchase_order) { - if ($this->invitation->purchase_order->vendor->getSetting('enable_e_invoice') && $this->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) { + if ($this->invitation->purchase_order->vendor->getSetting('enable_e_invoice') && $this->invitation->invoice->client->getSetting('ubl_email_attachment') && $this->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) { $xml_string = $this->invitation->purchase_order->service()->getEPurchaseOrder($this->invitation->contact); if ($xml_string) { diff --git a/app/Models/Activity.php b/app/Models/Activity.php index 13e52f5619ac..560ff07a11c5 100644 --- a/app/Models/Activity.php +++ b/app/Models/Activity.php @@ -431,11 +431,11 @@ class Activity extends StaticModel } if($this->client) { - $replacements['client'] = ['label' => $this?->client?->present()->name() ?? '', 'hashed_id' => $this->client->hashed_id ?? '']; + $replacements['client'] = ['label' => $this->client?->present()->name() ?? '', 'hashed_id' => $this->client->hashed_id ?? '']; } if($this->vendor) { - $replacements['vendor'] = ['label' => $this?->vendor?->present()->name() ?? '', 'hashed_id' => $this->vendor->hashed_id ?? '']; + $replacements['vendor'] = ['label' => $this->vendor?->present()->name() ?? '', 'hashed_id' => $this->vendor->hashed_id ?? '']; } if($this->activity_type_id == 4 && $this->recurring_invoice) { @@ -449,10 +449,41 @@ class Activity extends StaticModel $replacements['created_at'] = $this->created_at ?? ''; $replacements['ip'] = $this->ip ?? ''; + if($this->activity_type_id == 141) + $replacements = $this->harvestNoteEntities($replacements); + return $replacements; } + private function harvestNoteEntities(array $replacements): array + { + $entities = [ + ':invoice', + ':quote', + ':credit', + ':payment', + ':task', + ':expense', + ':purchase_order', + ':recurring_invoice', + ':recurring_expense', + ':client', + + ]; + + foreach($entities as $entity) + { + $entity_key = substr($entity, 1); + + if($this?->{$entity_key}) + $replacements = array_merge($replacements, $this->matchVar($entity)); + + } + + return $replacements; + } + private function matchVar(string $variable) { $system = ctrans('texts.system'); diff --git a/app/Models/Backup.php b/app/Models/Backup.php index 409399ce916d..62a393d7cfe8 100644 --- a/app/Models/Backup.php +++ b/app/Models/Backup.php @@ -61,7 +61,7 @@ class Backup extends BaseModel } $path = $client_or_vendor->backup_path().'/'; - $filename = now()->format('Y_m_d').'_'.md5(time()).'.html'; + $filename = now()->format('Y_m_d').'_'.md5(time()).'.html'; //@phpstan-ignore-line $file_path = $path.$filename; Storage::disk(config('filesystems.default'))->put($file_path, $html); diff --git a/app/Models/BankTransaction.php b/app/Models/BankTransaction.php index 77f2219f9067..8dd87d8834fd 100644 --- a/app/Models/BankTransaction.php +++ b/app/Models/BankTransaction.php @@ -38,7 +38,7 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @property string|null $participant * @property string|null $participant_name * @property string $invoice_ids - * @property int|null $expense_id + * @property string|null $expense_id * @property int|null $vendor_id * @property int $status_id * @property bool $is_deleted diff --git a/app/Models/Client.php b/app/Models/Client.php index f9a68fbe8ffc..3aa29455c3ac 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -573,7 +573,7 @@ class Client extends BaseModel implements HasLocalePreference if ($pm['gateway_type_id'] == GatewayType::BACS) { $cg = CompanyGateway::query()->find($pm['company_gateway_id']); - if ($cg && ! property_exists($cg->fees_and_limits, GatewayType::BACS)) { + if ($cg && ! property_exists($cg->fees_and_limits, GatewayType::BACS)) { //@phpstan-ignore-line $fees_and_limits = $cg->fees_and_limits; $fees_and_limits->{GatewayType::BACS} = new FeesAndLimits(); $cg->fees_and_limits = $fees_and_limits; @@ -597,7 +597,7 @@ class Client extends BaseModel implements HasLocalePreference if ($pm['gateway_type_id'] == GatewayType::ACSS) { $cg = CompanyGateway::query()->find($pm['company_gateway_id']); - if ($cg && ! property_exists($cg->fees_and_limits, GatewayType::ACSS)) { + if ($cg && ! property_exists($cg->fees_and_limits, GatewayType::ACSS)) { //@phpstan-ignore-line $fees_and_limits = $cg->fees_and_limits; $fees_and_limits->{GatewayType::ACSS} = new FeesAndLimits(); $cg->fees_and_limits = $fees_and_limits; @@ -624,7 +624,7 @@ class Client extends BaseModel implements HasLocalePreference if ($pm['gateway_type_id'] == GatewayType::BANK_TRANSFER) { $cg = CompanyGateway::query()->find($pm['company_gateway_id']); - if ($cg && ! property_exists($cg->fees_and_limits, GatewayType::BANK_TRANSFER)) { + if ($cg && ! property_exists($cg->fees_and_limits, GatewayType::BANK_TRANSFER)) { //@phpstan-ignore-line $fees_and_limits = $cg->fees_and_limits; $fees_and_limits->{GatewayType::BANK_TRANSFER} = new FeesAndLimits(); $cg->fees_and_limits = $fees_and_limits; @@ -822,6 +822,20 @@ class Client extends BaseModel implements HasLocalePreference } + public function utc_offset(): int + { + + $offset = 0; + $timezone = $this->timezone(); + + date_default_timezone_set('GMT'); + $date = new \DateTime("now", new \DateTimeZone($timezone->name)); + $offset = $date->getOffset(); + + return $offset; + + } + public function timezone_offset(): int { $offset = 0; diff --git a/app/Models/DateFormat.php b/app/Models/DateFormat.php index 3801e1146a97..3df85c65010d 100644 --- a/app/Models/DateFormat.php +++ b/app/Models/DateFormat.php @@ -59,7 +59,7 @@ class DateFormat extends StaticModel */ public function __toString() { - $date = mktime(0, 0, 0, 12, 31, date('Y')); + $date = mktime(0, 0, 0, 12, 31, date('Y')); //@phpstan-ignore-line return date($this->format, $date); } diff --git a/app/Models/DatetimeFormat.php b/app/Models/DatetimeFormat.php index 0c9e88c2238a..7c031b00d4d3 100644 --- a/app/Models/DatetimeFormat.php +++ b/app/Models/DatetimeFormat.php @@ -32,7 +32,7 @@ class DatetimeFormat extends StaticModel */ public function __toString() { - $date = mktime(0, 0, 0, 12, 31, date('Y')); + $date = mktime(0, 0, 0, 12, 31, date('Y')); //@phpstan-ignore-line return date($this->format, $date); } diff --git a/app/Models/Document.php b/app/Models/Document.php index 73e5a22ca5d3..140c98cdf656 100644 --- a/app/Models/Document.php +++ b/app/Models/Document.php @@ -245,9 +245,9 @@ class Document extends BaseModel try { $file = base64_encode($image); - $img = new \Imagick(); + $img = new \Imagick(); //@phpstan-ignore-line $img->readImageBlob($file); - $img->setImageCompression(true); + $img->setImageCompression(true); //@phpstan-ignore-line $img->setImageCompressionQuality(40); return $img->getImageBlob(); diff --git a/app/Models/Gateway.php b/app/Models/Gateway.php index 1b259197c0f5..b950e07165e7 100644 --- a/app/Models/Gateway.php +++ b/app/Models/Gateway.php @@ -24,7 +24,7 @@ namespace App\Models; * @property string|null $site_url * @property bool $is_offsite * @property bool $is_secure - * @property object|null $fields + * @property object|null|string $fields * @property string $default_gateway_type_id * @property int|null $created_at * @property int|null $updated_at diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 07ef8532baee..2383c0f42af0 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -371,6 +371,14 @@ class Invoice extends BaseModel return $this->hasOne(Task::class); } + /** + * @return \Illuminate\Database\Eloquent\Relations\HasOne + */ + public function quote(): \Illuminate\Database\Eloquent\Relations\HasOne + { + return $this->hasOne(Quote::class); + } + public function expenses(): \Illuminate\Database\Eloquent\Relations\HasMany { return $this->hasMany(Expense::class); @@ -423,7 +431,9 @@ class Invoice extends BaseModel public function isPayable(): bool { - if ($this->status_id == self::STATUS_DRAFT && $this->is_deleted == false) { + if($this->is_deleted) + return false; + elseif ($this->status_id == self::STATUS_DRAFT && $this->is_deleted == false) { return true; } elseif ($this->status_id == self::STATUS_SENT && $this->is_deleted == false) { return true; diff --git a/app/PaymentDrivers/BaseDriver.php b/app/PaymentDrivers/BaseDriver.php index e3720e0a3db7..3b134ba355d3 100644 --- a/app/PaymentDrivers/BaseDriver.php +++ b/app/PaymentDrivers/BaseDriver.php @@ -375,6 +375,7 @@ class BaseDriver extends AbstractPaymentDriver // To access campaign data => Cache::get(CAMPAIGN_HASH) // To access utm data => session()->get('utm-' . CAMPAIGN_HASH); + /** @var \App\Models\Subscription $billing_subscription */ (new SubscriptionService($billing_subscription))->completePurchase($this->payment_hash); } diff --git a/app/PaymentDrivers/Braintree/CreditCard.php b/app/PaymentDrivers/Braintree/CreditCard.php index 8ba6e0154f58..3ab0fdbe3de7 100644 --- a/app/PaymentDrivers/Braintree/CreditCard.php +++ b/app/PaymentDrivers/Braintree/CreditCard.php @@ -83,7 +83,7 @@ class CreditCard if ($this->braintree->company_gateway->getConfigField('merchantAccountId')) { /** https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#merchant_account_id */ - $data['client_token'] = $this->braintree->gateway->clientToken()->generate([ + $data['client_token'] = $this->braintree->gateway->clientToken()->generate([ //@phpstan-ignore-line 'merchantAccountId' => $this->braintree->company_gateway->getConfigField('merchantAccountId'), ]); } @@ -118,7 +118,7 @@ class CreditCard $token = $this->getPaymentToken($request->all(), $customer->id); $data = [ - 'amount' => $this->braintree->payment_hash->data->amount_with_fee, + 'amount' => $this->braintree->payment_hash->data->amount_with_fee, //@phpstan-ignore-line 'paymentMethodToken' => $token, 'deviceData' => $state['client-data'], 'options' => [ diff --git a/app/PaymentDrivers/BraintreePaymentDriver.php b/app/PaymentDrivers/BraintreePaymentDriver.php index 74a7e7813e64..2e95394fe56e 100644 --- a/app/PaymentDrivers/BraintreePaymentDriver.php +++ b/app/PaymentDrivers/BraintreePaymentDriver.php @@ -387,7 +387,7 @@ class BraintreePaymentDriver extends BaseDriver foreach($cards as $card) { - if($this->getToken($card->token, $card->customerId) || Carbon::createFromDate($card->expirationYear, $card->expirationMonth, '1')->lt(now())) { + if($this->getToken($card->token, $card->customerId) || Carbon::createFromDate($card->expirationYear, $card->expirationMonth, '1')->lt(now())) { //@phpstan-ignore-line continue; } diff --git a/app/PaymentDrivers/CheckoutComPaymentDriver.php b/app/PaymentDrivers/CheckoutComPaymentDriver.php index 03b161d076af..b90ce372264d 100644 --- a/app/PaymentDrivers/CheckoutComPaymentDriver.php +++ b/app/PaymentDrivers/CheckoutComPaymentDriver.php @@ -592,7 +592,7 @@ class CheckoutComPaymentDriver extends BaseDriver foreach($customer['instruments'] as $card) { if( $card['type'] != 'card' || - Carbon::createFromDate($card['expiry_year'], $card['expiry_month'], '1')->lt(now()) || + Carbon::createFromDate($card['expiry_year'], $card['expiry_month'], '1')->lt(now()) || //@phpstan-ignore-line $this->getToken($card['id'], $customer['id']) ) { continue; diff --git a/app/PaymentDrivers/PayPal/PayPalBasePaymentDriver.php b/app/PaymentDrivers/PayPal/PayPalBasePaymentDriver.php index 4e01c7582c0b..56824c840269 100644 --- a/app/PaymentDrivers/PayPal/PayPalBasePaymentDriver.php +++ b/app/PaymentDrivers/PayPal/PayPalBasePaymentDriver.php @@ -525,61 +525,74 @@ class PayPalBasePaymentDriver extends BaseDriver $this->init(); PayPalWebhook::dispatch($request->all(), $request->headers->all(), $this->access_token); + } public function createNinjaPayment($request, $response) { - $data = [ - 'payment_type' => $this->getPaymentMethod($request->gateway_type_id), - 'amount' => $response['purchase_units'][0]['payments']['captures'][0]['amount']['value'], - 'transaction_reference' => $response['purchase_units'][0]['payments']['captures'][0]['id'], - 'gateway_type_id' => GatewayType::PAYPAL, - ]; + if(isset($response['purchase_units'][0]['payments']['captures'][0]['status']) && in_array($response['purchase_units'][0]['payments']['captures'][0]['status'], ['COMPLETED', 'PENDING'])) + { - $payment = $this->createPayment($data, \App\Models\Payment::STATUS_COMPLETED); + $payment_status = $response['purchase_units'][0]['payments']['captures'][0]['status'] == 'COMPLETED' ? \App\Models\Payment::STATUS_COMPLETED : \App\Models\Payment::STATUS_PENDING; - if ($request->has('store_card') && $request->input('store_card') === true) { - $payment_source = $response->json()['payment_source'] ?? false; + $data = [ + 'payment_type' => $this->getPaymentMethod($request->gateway_type_id), + 'amount' => $response['purchase_units'][0]['payments']['captures'][0]['amount']['value'], + 'transaction_reference' => $response['purchase_units'][0]['payments']['captures'][0]['id'], + 'gateway_type_id' => GatewayType::PAYPAL, + ]; - if(isset($payment_source['card']) && ($payment_source['card']['attributes']['vault']['status'] ?? false) && $payment_source['card']['attributes']['vault']['status'] == 'VAULTED') { + $payment = $this->createPayment($data, $payment_status); - $last4 = $payment_source['card']['last_digits']; - $expiry = $payment_source['card']['expiry']; //'2025-01' - $expiry_meta = explode('-', $expiry); - $brand = $payment_source['card']['brand']; + if ($request->has('store_card') && $request->input('store_card') === true) { + $payment_source = $response->json()['payment_source'] ?? false; - $payment_meta = new \stdClass(); - $payment_meta->exp_month = $expiry_meta[1] ?? ''; - $payment_meta->exp_year = $expiry_meta[0] ?? $expiry; - $payment_meta->brand = $brand; - $payment_meta->last4 = $last4; - $payment_meta->type = GatewayType::CREDIT_CARD; + if(isset($payment_source['card']) && ($payment_source['card']['attributes']['vault']['status'] ?? false) && $payment_source['card']['attributes']['vault']['status'] == 'VAULTED') { - $token = $payment_source['card']['attributes']['vault']['id']; // 09f28652d01257021 - $gateway_customer_reference = $payment_source['card']['attributes']['vault']['customer']['id']; //rbTHnLsZqE; + $last4 = $payment_source['card']['last_digits']; + $expiry = $payment_source['card']['expiry']; //'2025-01' + $expiry_meta = explode('-', $expiry); + $brand = $payment_source['card']['brand']; - $data['token'] = $token; - $data['payment_method_id'] = GatewayType::PAYPAL_ADVANCED_CARDS; - $data['payment_meta'] = $payment_meta; + $payment_meta = new \stdClass(); + $payment_meta->exp_month = $expiry_meta[1] ?? ''; + $payment_meta->exp_year = $expiry_meta[0] ?? $expiry; + $payment_meta->brand = $brand; + $payment_meta->last4 = $last4; + $payment_meta->type = GatewayType::CREDIT_CARD; - $additional['gateway_customer_reference'] = $gateway_customer_reference; + $token = $payment_source['card']['attributes']['vault']['id']; // 09f28652d01257021 + $gateway_customer_reference = $payment_source['card']['attributes']['vault']['customer']['id']; //rbTHnLsZqE; - $this->storeGatewayToken($data, $additional); + $data['token'] = $token; + $data['payment_method_id'] = GatewayType::PAYPAL_ADVANCED_CARDS; + $data['payment_meta'] = $payment_meta; + $additional['gateway_customer_reference'] = $gateway_customer_reference; + + $this->storeGatewayToken($data, $additional); + + } } + + SystemLogger::dispatch( + ['response' => $response->json(), 'data' => $data], + SystemLog::CATEGORY_GATEWAY_RESPONSE, + SystemLog::EVENT_GATEWAY_SUCCESS, + SystemLog::TYPE_PAYPAL, + $this->client, + $this->client->company, + ); + + return response()->json(['redirect' => route('client.payments.show', ['payment' => $this->encodePrimaryKey($payment->id)], false)]); } - SystemLogger::dispatch( - ['response' => $response->json(), 'data' => $data], - SystemLog::CATEGORY_GATEWAY_RESPONSE, - SystemLog::EVENT_GATEWAY_SUCCESS, - SystemLog::TYPE_PAYPAL, - $this->client, - $this->client->company, - ); - - return response()->json(['redirect' => route('client.payments.show', ['payment' => $this->encodePrimaryKey($payment->id)], false)]); + SystemLogger::dispatch($response, SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, SystemLog::TYPE_PAYPAL, $this->client, $this->client->company); + + $error = isset($response['purchase_units'][0]['payments']['captures'][0]['status_details'][0]) ? $response['purchase_units'][0]['payments']['captures'][0]['status_details'][0] : $response['purchase_units'][0]['payments']['captures'][0]['status']; + + return response()->json(['message' => $error], 400); } diff --git a/app/PaymentDrivers/PayPal/PayPalWebhook.php b/app/PaymentDrivers/PayPal/PayPalWebhook.php index 701f2817c315..3a42bdf97c09 100644 --- a/app/PaymentDrivers/PayPal/PayPalWebhook.php +++ b/app/PaymentDrivers/PayPal/PayPalWebhook.php @@ -297,8 +297,7 @@ class PayPalWebhook implements ShouldQueue $gateway = CompanyGateway::query() ->where('company_id', $company->id) ->where('gateway_key', $this->gateway_key) - ->cursor() - ->first(function ($cg) use ($merchant_id) { + ->first(function ($cg) use ($merchant_id) { //@phpstan-ignore-line $config = $cg->getConfig(); if($config->merchantId == $merchant_id) { diff --git a/app/PaymentDrivers/PayPalPPCPPaymentDriver.php b/app/PaymentDrivers/PayPalPPCPPaymentDriver.php index 14fd0ace2dcb..4cb22ad728b7 100644 --- a/app/PaymentDrivers/PayPalPPCPPaymentDriver.php +++ b/app/PaymentDrivers/PayPalPPCPPaymentDriver.php @@ -306,7 +306,6 @@ class PayPalPPCPPaymentDriver extends PayPalBasePaymentDriver * * @param mixed $request * @param array $response - * @return void */ public function processTokenPayment($request, array $response) { @@ -362,26 +361,32 @@ class PayPalPPCPPaymentDriver extends PayPalBasePaymentDriver } $response = $r->json(); + + if(isset($response['purchase_units'][0]['payments']['captures'][0]['status']) && $response['purchase_units'][0]['payments']['captures'][0]['status'] == 'COMPLETED') + { - $data = [ - 'payment_type' => $this->getPaymentMethod($request->gateway_type_id), - 'amount' => $response['purchase_units'][0]['payments']['captures'][0]['amount']['value'], - 'transaction_reference' => $response['purchase_units'][0]['payments']['captures'][0]['id'], - 'gateway_type_id' => $this->gateway_type_id, - ]; + $data = [ + 'payment_type' => $this->getPaymentMethod($request->gateway_type_id), + 'amount' => $response['purchase_units'][0]['payments']['captures'][0]['amount']['value'], + 'transaction_reference' => $response['purchase_units'][0]['payments']['captures'][0]['id'], + 'gateway_type_id' => $this->gateway_type_id, + ]; - $payment = $this->createPayment($data, \App\Models\Payment::STATUS_COMPLETED); + $payment = $this->createPayment($data, \App\Models\Payment::STATUS_COMPLETED); - SystemLogger::dispatch( - ['response' => $response, 'data' => $data], - SystemLog::CATEGORY_GATEWAY_RESPONSE, - SystemLog::EVENT_GATEWAY_SUCCESS, - SystemLog::TYPE_PAYPAL_PPCP, - $this->client, - $this->client->company, - ); + SystemLogger::dispatch( + ['response' => $response, 'data' => $data], + SystemLog::CATEGORY_GATEWAY_RESPONSE, + SystemLog::EVENT_GATEWAY_SUCCESS, + SystemLog::TYPE_PAYPAL_PPCP, + $this->client, + $this->client->company, + ); - return redirect()->route('client.payments.show', ['payment' => $this->encodePrimaryKey($payment->id)]); + return redirect()->route('client.payments.show', ['payment' => $this->encodePrimaryKey($payment->id)]); + } + + return response()->json(['message' => 'Error processing token payment'], 400); } @@ -431,26 +436,36 @@ class PayPalPPCPPaymentDriver extends PayPalBasePaymentDriver } $response = $r->json(); + if(isset($response['purchase_units'][0]['payments']['captures'][0]['status']) && $response['purchase_units'][0]['payments']['captures'][0]['status'] == 'COMPLETED') + { - $data = [ - 'payment_type' => $this->getPaymentMethod((string)$cgt->gateway_type_id), - 'amount' => $response['purchase_units'][0]['payments']['captures'][0]['amount']['value'], - 'transaction_reference' => $response['purchase_units'][0]['payments']['captures'][0]['id'], - 'gateway_type_id' => $this->gateway_type_id, - ]; + $data = [ + 'payment_type' => $this->getPaymentMethod((string)$cgt->gateway_type_id), + 'amount' => $response['purchase_units'][0]['payments']['captures'][0]['amount']['value'], + 'transaction_reference' => $response['purchase_units'][0]['payments']['captures'][0]['id'], + 'gateway_type_id' => $this->gateway_type_id, + ]; - $payment = $this->createPayment($data, \App\Models\Payment::STATUS_COMPLETED); + $payment = $this->createPayment($data, \App\Models\Payment::STATUS_COMPLETED); - SystemLogger::dispatch( - ['response' => $response, 'data' => $data], - SystemLog::CATEGORY_GATEWAY_RESPONSE, - SystemLog::EVENT_GATEWAY_SUCCESS, - SystemLog::TYPE_PAYPAL_PPCP, - $this->client, - $this->client->company, - ); + SystemLogger::dispatch( + ['response' => $response, 'data' => $data], + SystemLog::CATEGORY_GATEWAY_RESPONSE, + SystemLog::EVENT_GATEWAY_SUCCESS, + SystemLog::TYPE_PAYPAL_PPCP, + $this->client, + $this->client->company, + ); + } + + $this->processInternallyFailedPayment($this, new \Exception('Auto billing failed.', 400)); + + SystemLogger::dispatch($response, SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, SystemLog::TYPE_PAYPAL, $this->client, $this->client->company); } + + + } diff --git a/app/PaymentDrivers/PayPalRestPaymentDriver.php b/app/PaymentDrivers/PayPalRestPaymentDriver.php index d6e8dbadcf5c..ba1cbc62e7f2 100644 --- a/app/PaymentDrivers/PayPalRestPaymentDriver.php +++ b/app/PaymentDrivers/PayPalRestPaymentDriver.php @@ -288,8 +288,6 @@ class PayPalRestPaymentDriver extends PayPalBasePaymentDriver $orderId = $this->createOrder($data); - // $r = $this->gatewayRequest("/v2/checkout/orders/{$orderId}", 'get', ['body' => '']); - try { $r = $this->gatewayRequest("/v2/checkout/orders/{$orderId}", 'get', ['body' => '']); @@ -318,25 +316,31 @@ class PayPalRestPaymentDriver extends PayPalBasePaymentDriver $response = $r->json(); - $data = [ - 'payment_type' => $this->getPaymentMethod($request->gateway_type_id), - 'amount' => $response['purchase_units'][0]['payments']['captures'][0]['amount']['value'], - 'transaction_reference' => $response['purchase_units'][0]['payments']['captures'][0]['id'], - 'gateway_type_id' => $this->gateway_type_id, - ]; + if(isset($response['purchase_units'][0]['payments']['captures'][0]['status']) && $response['purchase_units'][0]['payments']['captures'][0]['status'] == 'COMPLETED') + { + $data = [ + 'payment_type' => $this->getPaymentMethod($request->gateway_type_id), + 'amount' => $response['purchase_units'][0]['payments']['captures'][0]['amount']['value'], + 'transaction_reference' => $response['purchase_units'][0]['payments']['captures'][0]['id'], + 'gateway_type_id' => $this->gateway_type_id, + ]; - $payment = $this->createPayment($data, \App\Models\Payment::STATUS_COMPLETED); + $payment = $this->createPayment($data, \App\Models\Payment::STATUS_COMPLETED); - SystemLogger::dispatch( - ['response' => $response, 'data' => $data], - SystemLog::CATEGORY_GATEWAY_RESPONSE, - SystemLog::EVENT_GATEWAY_SUCCESS, - SystemLog::TYPE_PAYPAL, - $this->client, - $this->client->company, - ); + SystemLogger::dispatch( + ['response' => $response, 'data' => $data], + SystemLog::CATEGORY_GATEWAY_RESPONSE, + SystemLog::EVENT_GATEWAY_SUCCESS, + SystemLog::TYPE_PAYPAL, + $this->client, + $this->client->company, + ); - return redirect()->route('client.payments.show', ['payment' => $this->encodePrimaryKey($payment->id)]); + return redirect()->route('client.payments.show', ['payment' => $this->encodePrimaryKey($payment->id)]); + + } + + return response()->json(['message' => 'Error processing token payment'], 400); } @@ -387,24 +391,32 @@ class PayPalRestPaymentDriver extends PayPalBasePaymentDriver $response = $r->json(); - $data = [ - 'payment_type' => $this->getPaymentMethod((string)$cgt->gateway_type_id), - 'amount' => $response['purchase_units'][0]['payments']['captures'][0]['amount']['value'], - 'transaction_reference' => $response['purchase_units'][0]['payments']['captures'][0]['id'], - 'gateway_type_id' => $this->gateway_type_id, - ]; + if(isset($response['purchase_units'][0]['payments']['captures'][0]['status']) && $response['purchase_units'][0]['payments']['captures'][0]['status'] == 'COMPLETED') + { - $payment = $this->createPayment($data, \App\Models\Payment::STATUS_COMPLETED); + $data = [ + 'payment_type' => $this->getPaymentMethod((string)$cgt->gateway_type_id), + 'amount' => $response['purchase_units'][0]['payments']['captures'][0]['amount']['value'], + 'transaction_reference' => $response['purchase_units'][0]['payments']['captures'][0]['id'], + 'gateway_type_id' => $this->gateway_type_id, + ]; - SystemLogger::dispatch( - ['response' => $response, 'data' => $data], - SystemLog::CATEGORY_GATEWAY_RESPONSE, - SystemLog::EVENT_GATEWAY_SUCCESS, - SystemLog::TYPE_PAYPAL_PPCP, - $this->client, - $this->client->company, - ); + $payment = $this->createPayment($data, \App\Models\Payment::STATUS_COMPLETED); + SystemLogger::dispatch( + ['response' => $response, 'data' => $data], + SystemLog::CATEGORY_GATEWAY_RESPONSE, + SystemLog::EVENT_GATEWAY_SUCCESS, + SystemLog::TYPE_PAYPAL_PPCP, + $this->client, + $this->client->company, + ); + + } + + $this->processInternallyFailedPayment($this, new \Exception('Auto billing failed.', 400)); + + SystemLogger::dispatch($response, SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, SystemLog::TYPE_PAYPAL, $this->client, $this->client->company); } } diff --git a/app/PaymentDrivers/SquarePaymentDriver.php b/app/PaymentDrivers/SquarePaymentDriver.php index 8e590059e515..456d69586e72 100644 --- a/app/PaymentDrivers/SquarePaymentDriver.php +++ b/app/PaymentDrivers/SquarePaymentDriver.php @@ -188,7 +188,7 @@ class SquarePaymentDriver extends BaseDriver } else { /** @var \Square\Models\Error $error */ - $error = end($apiResponse->getErrors()); + $error = end($apiResponse->getErrors()); //@phpstan-ignore-line $data = [ 'transaction_reference' => $payment->transaction_reference, diff --git a/app/PaymentDrivers/Stripe/ACSS.php b/app/PaymentDrivers/Stripe/ACSS.php index 38e3a8162c9e..7ef4fa2dde2b 100644 --- a/app/PaymentDrivers/Stripe/ACSS.php +++ b/app/PaymentDrivers/Stripe/ACSS.php @@ -267,6 +267,7 @@ class ACSS $gateway_response = json_decode($request->gateway_response); + /** @var \App\Models\ClientGatewayToken $cgt */ $cgt = ClientGatewayToken::find($this->decodePrimaryKey($request->token)); /** @var \Stripe\PaymentIntent $intent */ diff --git a/app/PaymentDrivers/Stripe/ImportCustomers.php b/app/PaymentDrivers/Stripe/ImportCustomers.php index 3f96dd97d9aa..7eef0391e652 100644 --- a/app/PaymentDrivers/Stripe/ImportCustomers.php +++ b/app/PaymentDrivers/Stripe/ImportCustomers.php @@ -208,7 +208,7 @@ class ImportCustomers if (! $cgt) { nlog('customer '.$searchResults->data[0]->id.' does not exist.'); - $this->update_payment_methods->updateMethods($searchResults->data[0], $client); + $this->update_payment_methods->updateMethods($searchResults->data[0], $client); //@phpstan-ignore-line } } } diff --git a/app/PaymentDrivers/Stripe/Jobs/PaymentIntentWebhook.php b/app/PaymentDrivers/Stripe/Jobs/PaymentIntentWebhook.php index 367a99c24206..1cde9a8fffd2 100644 --- a/app/PaymentDrivers/Stripe/Jobs/PaymentIntentWebhook.php +++ b/app/PaymentDrivers/Stripe/Jobs/PaymentIntentWebhook.php @@ -313,4 +313,13 @@ class PaymentIntentWebhook implements ShouldQueue $client->company, ); } + + public function failed($exception = null) + { + if ($exception) { + nlog($exception->getMessage()); + } + + config(['queue.failed.driver' => null]); + } } diff --git a/app/PaymentDrivers/Stripe/UpdatePaymentMethods.php b/app/PaymentDrivers/Stripe/UpdatePaymentMethods.php index 7777da7b7e17..244be05bfc1d 100644 --- a/app/PaymentDrivers/Stripe/UpdatePaymentMethods.php +++ b/app/PaymentDrivers/Stripe/UpdatePaymentMethods.php @@ -147,7 +147,7 @@ class UpdatePaymentMethods { $sources = $customer->sources ?? false; - if (!$customer || is_null($sources) || !property_exists($sources, 'data')) { + if (!$customer || is_null($sources) || !$sources || !property_exists($sources, 'data')) { return; } diff --git a/app/Repositories/ActivityRepository.php b/app/Repositories/ActivityRepository.php index 035faa5efa6a..81874524b1d2 100644 --- a/app/Repositories/ActivityRepository.php +++ b/app/Repositories/ActivityRepository.php @@ -41,7 +41,7 @@ class ActivityRepository extends BaseRepository * Save the Activity. * * @param \stdClass $fields The fields - * @param \App\Models\Invoice | \App\Models\Quote | \App\Models\Credit | \App\Models\PurchaseOrder | \App\Models\Expense $entity + * @param \App\Models\Invoice | \App\Models\Quote | \App\Models\Credit | \App\Models\PurchaseOrder | \App\Models\Expense | \App\Models\Payment $entity * @param array $event_vars */ public function save($fields, $entity, $event_vars) diff --git a/app/Repositories/DesignRepository.php b/app/Repositories/DesignRepository.php index e9c979e5e4a5..f63e54b45ec3 100644 --- a/app/Repositories/DesignRepository.php +++ b/app/Repositories/DesignRepository.php @@ -11,6 +11,7 @@ namespace App\Repositories; +use App\Utils\Ninja; use App\Models\Design; use Illuminate\Support\Str; @@ -54,4 +55,20 @@ class DesignRepository extends BaseRepository return $design; } + + /** + * @param $entity + */ + public function restore($design) + { + + $design->name = str_ireplace("_deleted_", "_restored_", $design->name); + + parent::restore($design); + + return $design; + + } + + } diff --git a/app/Repositories/Migration/PaymentMigrationRepository.php b/app/Repositories/Migration/PaymentMigrationRepository.php index 51bcdb51b826..0ece566f2e08 100644 --- a/app/Repositories/Migration/PaymentMigrationRepository.php +++ b/app/Repositories/Migration/PaymentMigrationRepository.php @@ -87,7 +87,7 @@ class PaymentMigrationRepository extends BaseRepository if (! array_key_exists('status_id', $data)) { info('payment with no status id?'); - info(print_r($data, 1)); + info(print_r($data, true)); } $payment->status_id = $data['status_id']; diff --git a/app/Repositories/SubscriptionRepository.php b/app/Repositories/SubscriptionRepository.php index e340b0e78d51..eb53fc6e03be 100644 --- a/app/Repositories/SubscriptionRepository.php +++ b/app/Repositories/SubscriptionRepository.php @@ -124,13 +124,13 @@ class SubscriptionRepository extends BaseRepository * * Removing the nested keys of the items array * - * @param array $bundle + * @param mixed $bundle * @return array */ private function convertV3Bundle($bundle): array { if(is_object($bundle)) { - $bundle = json_decode(json_encode($bundle), 1); + $bundle = json_decode(json_encode($bundle), true); } $items = []; diff --git a/app/Services/Client/ClientService.php b/app/Services/Client/ClientService.php index e2a4eddfa44a..b7ba322a2b3c 100644 --- a/app/Services/Client/ClientService.php +++ b/app/Services/Client/ClientService.php @@ -180,10 +180,12 @@ class ClientService public function updatePaymentBalance() { - $amount = Payment::query()->where('client_id', $this->client->id) + $amount = Payment::query() + ->withTrashed() + ->where('client_id', $this->client->id) ->where('is_deleted', 0) ->whereIn('status_id', [Payment::STATUS_COMPLETED, Payment::STATUS_PENDING, Payment::STATUS_PARTIALLY_REFUNDED, Payment::STATUS_REFUNDED]) - ->selectRaw('SUM(payments.amount - payments.applied) as amount')->first()->amount ?? 0; + ->selectRaw('SUM(payments.amount - payments.applied - payments.refunded) as amount')->first()->amount ?? 0; DB::connection(config('database.default'))->transaction(function () use ($amount) { $this->client = Client::withTrashed()->where('id', $this->client->id)->lockForUpdate()->first(); diff --git a/app/Services/Client/PaymentMethod.php b/app/Services/Client/PaymentMethod.php index 492f907e13b9..de5e1622585d 100644 --- a/app/Services/Client/PaymentMethod.php +++ b/app/Services/Client/PaymentMethod.php @@ -166,10 +166,10 @@ class PaymentMethod //note we have to use GatewayType::CREDIT_CARD as alias for CUSTOM foreach ($this->gateways as $gateway) { foreach ($gateway->driver($this->client)->gatewayTypes() as $type) { - if (isset($gateway->fees_and_limits) && is_object($gateway->fees_and_limits) && property_exists($gateway->fees_and_limits, GatewayType::CREDIT_CARD)) { + if (isset($gateway->fees_and_limits) && is_object($gateway->fees_and_limits) && property_exists($gateway->fees_and_limits, GatewayType::CREDIT_CARD)) { //@phpstan-ignore-line if ($this->validGatewayForAmount($gateway->fees_and_limits->{GatewayType::CREDIT_CARD}, $this->amount)) { // $this->payment_methods[] = [$gateway->id => $type]; - //@15-06-2024 + // @15-06-2024 $this->buildUrl($gateway, $type); } } else { diff --git a/app/Services/Client/Statement.php b/app/Services/Client/Statement.php index 9b574e0674dd..d001103885e7 100644 --- a/app/Services/Client/Statement.php +++ b/app/Services/Client/Statement.php @@ -187,7 +187,7 @@ class Statement $pdf = $this->makePdf(null, null, $html); } } catch (\Exception $e) { - nlog(print_r($e->getMessage(), 1)); + nlog(print_r($e->getMessage(), true)); } @@ -385,7 +385,6 @@ class Statement /** * Get correct invitation ID. * - * @return int|bool */ protected function getInvitation() { diff --git a/app/Services/EDocument/Gateway/Storecove/Storecove.php b/app/Services/EDocument/Gateway/Storecove/Storecove.php new file mode 100644 index 000000000000..a56ea37000e3 --- /dev/null +++ b/app/Services/EDocument/Gateway/Storecove/Storecove.php @@ -0,0 +1,304 @@ + ["invoice"], + "network" => "peppol", + "metaScheme" => "iso6523-actorid-upis", + "scheme" => "de:lwid", + "identifier" => "DE:VAT" + ]; + + private array $dbn_discovery = [ + "documentTypes" => ["invoice"], + "network" => "dbnalliance", + "metaScheme" => "iso6523-actorid-upis", + "scheme" => "gln", + "identifier" => "1200109963131" + ]; + + + public function __construct(){} + + //config('ninja.storecove_api_key'); + + //https://app.storecove.com/en/docs#_test_identifiers + //check if identifier is able to send on the network. + + //response = { "code": "OK", "email": false} + public function discovery($identifier, $scheme, $network = 'peppol') + { + $network_data = []; + + match ($network) { + 'peppol' => $network_data = array_merge($this->peppol_discovery, ['scheme' => $scheme, 'identifier' => $identifier]), + 'dbn' => $network_data = array_merge($this->dbn_discovery, ['scheme' => $scheme, 'identifier' => $identifier]), + default => $network_data = array_merge($this->peppol_discovery, ['scheme' => $scheme, 'identifier' => $identifier]), + }; + + $uri = "api/v2/discovery/receives"; + + $r = $this->httpClient($uri, (HttpVerb::POST)->value, $network_data, $this->getHeaders()); + + return ($r->successful() && $r->json()['code'] == 'OK') ? true : false; + + } + + //response = "guid" : "xx", + + /** + * If the receiver cannot be found, then an + * email is sent to that user if a appropriate + * email is included in the document payload + * + * { + "routing": { + "emails": [ + "test@example.com" + ], + "eIdentifiers": [] + } + } + * + * + * + // documentType : invoice/invoice_response/order + // rawDocumentData : { + // document: base64_encode($ubl) + // parse: true + // parseStrategy: ubl + // } + */ + public function sendDocument($document) + { + + $payload = [ + "legalEntityId"=> 290868, + "idempotencyGuid"=> \Illuminate\Support\Str::uuid(), + "routing" => [ + "eIdentifiers" => [], + "emails" => ["david@invoiceninja.com"] + ], + "document"=> [ + 'documentType' => 'invoice', + "rawDocumentData"=> [ + "document" => base64_encode($document), + "parse" => true, + "parseStrategy"=> "ubl", + ], + ], + ]; + + $uri = "document_submissions"; + + nlog($payload); + + $r = $this->httpClient($uri, (HttpVerb::POST)->value, $payload, $this->getHeaders()); + + nlog($r->body()); + nlog($r->json()); + + if($r->successful()) + return $r->json()['guid']; + + return false; + + } + + //document submission sending evidence + public function getSendingEvidence(string $guid) + { + $uri = "document_submissions/{$guid}"; + $r = $this->httpClient($uri, (HttpVerb::GET)->value, [], $this->getHeaders()); + + } + + // { + // "party_name": "", + // "line1": "", + // "city": "", + // "zip": "", + // "country": "EH", + // "line2": "", + // "county": "", + // "tenant_id": "", + // "public": true, + // "advertisements": [ + // "invoice" + // ], + // "third_party_username": "", + // "third_party_password": "", + // "rea": { + // "province": "AR", + // "identifier": "", + // "capital": "", + // "partners": "SM", + // "liquidation_status": "LN" + // }, + // "acts_as_sender": true, + // "acts_as_receiver": true, + // "tax_registered": true + // } + + // acts_as_receiver - optional - Default : true + // acts_as_sender - optional - Default : true + // advertisements - optional < enum (invoice, invoice_response, order, ordering, order_response, selfbilling) > array + // city - required - Length : 2 - 64 + // country - required - ISO 3166-1 alpha-2 + // county - optional - Maximal length : 64 + // line1 - required - The first address line - Length : 2 - 192 + // line2 - optional - The second address line, if applicable Maximal length : 192 + // party_name - required - The name of the company. Length : 2 - 64 + // public - optional - Whether or not this LegalEntity is public. Public means it will be entered into the PEPPOL directory at https://directory.peppol.eu/ Default : true + // rea - optional - The REA details for the LegalEntity. Only applies to IT (Italian) LegalEntities. - https://www.storecove.com/docs/#_openapi_rea (schema) + + // capital - optional - The captial for the company. - number + // identifier - optional - The identifier. Length : 2 - 20 + // liquidation_status - optional - The liquidation status of the company. enum (LN, LS) + // partners - optional - The number of partners. enum (SU, SM) + // province - optional - The provincia of the ufficio that issued the identifier.enum (AG, AL, AN, AO, AQ, AR, AP, AT, AV, BA, BT, BL, BN, BG, BI, BO, BZ, BS, BR, CA, CL, CB, CI, CE, CT, CZ, CH, CO, CS, CR, KR, CN, EN, FM, FE, FI, FG, FC, FR, GE, GO, GR, IM, IS, SP, LT, LE, LC, LI, LO, LU, MC, MN, MS, MT, VS, ME, MI, MO, MB, NA, NO, NU, OG, OT, OR, PD, PA, PR, PV, PG, PU, PE, PC, PI, PT, PN, PZ, PO, RG, RA, RC, RE, RI, RN, RO, SA, SS, SV, SI, SR, SO, TA, TE, TR, TO, TP, TN, TV, TS, UD, VA, VE, VB, VC, VR, VV, VI, VT) + + // tax_registered - optional - Whether or not this LegalEntity is tax registered. This influences the validation of the data presented when sending documents. Default : true + // tenant_id - optional - The id of the tenant, to be used in case of single-tenant solutions that share webhook URLs. This property will included in webhook events. Maximal length : 64 + // third_party_password - optional - The password to use to authenticate to a system through which to send the document, or to obtain tax authority approval to send it. This field is currently relevant only for India and mandatory when creating an IN LegalEntity. Length : 2 - 64 + // third_party_username - optional - The username to use to authenticate to a system through which to send the document, or to obtain tax authority approval to send it. This field is currently relevant only for India and mandatory when creating an IN LegalEntity. Length : 2 - 64 + // zip - required - The zipcode. Length : 2 - 32 + + /** + * CreateLegalEntity + * + * @url https://www.storecove.com/docs/#_openapi_legalentitycreate + * @return mixed + */ + public function createLegalEntity(array $data, Company $company) + { + $uri = 'legal_entities'; + + $company_defaults = [ + 'acts_as_receiver' => true, + 'acts_as_sender' => true, + 'advertisements' => ['invoice'], + 'city' => $company->settings->city, + 'country' => $company->country()->iso_3166_2, + 'county' => $company->settings->state, + 'line1' => $company->settings->address1, + 'line2' => $company->settings->address2, + 'party_name' => $company->settings->name, + 'tax_registered' => true, + 'tenant_id' => $company->company_key, + 'zip' => $company->settings->postal_code, + ]; + + $payload = array_merge($company_defaults, $data); + + $r = $this->httpClient($uri, (HttpVerb::POST)->value, $payload); + + if($r->successful()) + return $r->json(); + + return $r; + + } + + public function getLegalEntity($id) + { + + $uri = "legal_entities/{$id}"; + + $r = $this->httpClient($uri, (HttpVerb::GET)->value, []); + + if($r->successful()) { + return $r->json(); + } + + return $r; + + } + + public function updateLegalEntity($id, array $data) + { + + $uri = "legal_entities/{$id}"; + + $r = $this->httpClient($uri, (HttpVerb::PATCH)->value, $data); + + if($r->successful()) { + return $r->json(); + } + + return $r; + + } + + + + public function addIdentifier(int $legal_entity_id, string $identifier, string $scheme) + { + $uri = "legal_entities/{$legal_entity_id}/peppol_identifiers"; + + $data = [ + "identifier" => $identifier, + "scheme" => $scheme, + "superscheme" => "iso6523-actorid-upis", + ]; + + $r = $this->httpClient($uri, (HttpVerb::POST)->value, $data); + + if($r->successful()) { + return $r->json(); + } + + return $r; + + } + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + private function getHeaders(array $headers = []) + { + + return array_merge([ + 'Accept' => 'application/json', + 'Content-type' => 'application/json', + ], $headers); + + } + + private function httpClient(string $uri, string $verb, array $data, ?array $headers = []) + { + + $r = Http::withToken(config('ninja.storecove_api_key')) + ->withHeaders($this->getHeaders($headers)) + ->{$verb}("{$this->base_url}{$uri}", $data); + + return $r; + } + + +} \ No newline at end of file diff --git a/app/Services/EDocument/Standards/Peppol.php b/app/Services/EDocument/Standards/Peppol.php index fca7ac0ecedb..0fe4cf5d18b7 100644 --- a/app/Services/EDocument/Standards/Peppol.php +++ b/app/Services/EDocument/Standards/Peppol.php @@ -11,10 +11,14 @@ namespace App\Services\EDocument\Standards; +use App\Models\Company; use App\Models\Invoice; use App\Services\AbstractService; use App\Helpers\Invoice\InvoiceSum; +use InvoiceNinja\EInvoice\EInvoice; use App\Helpers\Invoice\InvoiceSumInclusive; +use App\Helpers\Invoice\Taxer; +use InvoiceNinja\EInvoice\Models\Peppol\PaymentMeans; use InvoiceNinja\EInvoice\Models\Peppol\ItemType\Item; use InvoiceNinja\EInvoice\Models\Peppol\PartyType\Party; use InvoiceNinja\EInvoice\Models\Peppol\PriceType\Price; @@ -23,9 +27,14 @@ use InvoiceNinja\EInvoice\Models\Peppol\ContactType\Contact; use InvoiceNinja\EInvoice\Models\Peppol\CountryType\Country; use InvoiceNinja\EInvoice\Models\Peppol\AmountType\TaxAmount; use InvoiceNinja\EInvoice\Models\Peppol\TaxTotalType\TaxTotal; +use App\Services\EDocument\Standards\Settings\PropertyResolver; +use App\Utils\Traits\NumberFormatter; +use InvoiceNinja\EInvoice\Models\Peppol\AmountType\PriceAmount; use InvoiceNinja\EInvoice\Models\Peppol\PartyNameType\PartyName; use InvoiceNinja\EInvoice\Models\Peppol\TaxSchemeType\TaxScheme; use InvoiceNinja\EInvoice\Models\Peppol\AmountType\PayableAmount; +use InvoiceNinja\EInvoice\Models\Peppol\AmountType\TaxableAmount; +use InvoiceNinja\EInvoice\Models\Peppol\TaxTotal as PeppolTaxTotal; use InvoiceNinja\EInvoice\Models\Peppol\InvoiceLineType\InvoiceLine; use InvoiceNinja\EInvoice\Models\Peppol\TaxCategoryType\TaxCategory; use InvoiceNinja\EInvoice\Models\Peppol\TaxSubtotalType\TaxSubtotal; @@ -33,16 +42,95 @@ use InvoiceNinja\EInvoice\Models\Peppol\TaxScheme as PeppolTaxScheme; use InvoiceNinja\EInvoice\Models\Peppol\AmountType\TaxExclusiveAmount; use InvoiceNinja\EInvoice\Models\Peppol\AmountType\TaxInclusiveAmount; use InvoiceNinja\EInvoice\Models\Peppol\AmountType\LineExtensionAmount; -use InvoiceNinja\EInvoice\Models\Peppol\AmountType\PriceAmount; -use InvoiceNinja\EInvoice\Models\Peppol\AmountType\TaxableAmount; use InvoiceNinja\EInvoice\Models\Peppol\MonetaryTotalType\LegalMonetaryTotal; use InvoiceNinja\EInvoice\Models\Peppol\TaxCategoryType\ClassifiedTaxCategory; use InvoiceNinja\EInvoice\Models\Peppol\CustomerPartyType\AccountingCustomerParty; use InvoiceNinja\EInvoice\Models\Peppol\SupplierPartyType\AccountingSupplierParty; -use InvoiceNinja\EInvoice\Models\Peppol\TaxTotal as PeppolTaxTotal; +use InvoiceNinja\EInvoice\Models\Peppol\FinancialAccountType\PayeeFinancialAccount; +use InvoiceNinja\EInvoice\Models\Peppol\IdentifierType\ID; +use InvoiceNinja\EInvoice\Models\Peppol\PartyIdentification; class Peppol extends AbstractService { + use Taxer; + use NumberFormatter; + + /** + * used as a proxy for + * the schemeID of partyidentification + * property - for Storecove only: + * + * Used in the format key:value + * + * ie. IT:IVA / DE:VAT + * + * Note there are multiple options for the following countries: + * + * US (EIN/SSN) employer identification number / social security number + * IT (CF/IVA) Codice Fiscale (person/company identifier) / company vat number + * + * @var array + */ + private array $schemeIdIdentifiers = [ + 'US' => 'EIN', + 'US' => 'SSN', + 'NZ' => 'GST', + 'CH' => 'VAT', // VAT number = CHE - 999999999 - MWST|IVA|VAT + 'IS' => 'VAT', + 'LI' => 'VAT', + 'NO' => 'VAT', + 'AD' => 'VAT', + 'AL' => 'VAT', + 'AT' => 'VAT', + 'BA' => 'VAT', + 'BE' => 'VAT', + 'BG' => 'VAT', + 'AU' => 'ABN', //Australia + 'CA' => 'CBN', //Canada + 'MX' => 'RFC', //Mexico + 'NZ' => 'GST', //Nuuu zulund + 'GB' => 'VAT', //Great Britain + 'SA' => 'TIN', //South Africa + 'CY' => 'VAT', + 'CZ' => 'VAT', + 'DE' => 'VAT', //tested - requires Payment Means to be defined. + 'DK' => 'ERST', + 'EE' => 'VAT', + 'ES' => 'VAT', + 'FI' => 'VAT', + 'FR' => 'VAT', + 'GR' => 'VAT', + 'HR' => 'VAT', + 'HU' => 'VAT', + 'IE' => 'VAT', + 'IT' => 'IVA', //tested - Requires a Customer Party Identification (VAT number) + 'IT' => 'CF', //tested - Requires a Customer Party Identification (VAT number) + 'LT' => 'VAT', + 'LU' => 'VAT', + 'LV' => 'VAT', + 'MC' => 'VAT', + 'ME' => 'VAT', + 'MK' => 'VAT', + 'MT' => 'VAT', + 'NL' => 'VAT', + 'PL' => 'VAT', + 'PT' => 'VAT', + 'RO' => 'VAT', + 'RS' => 'VAT', + 'SE' => 'VAT', + 'SI' => 'VAT', + 'SK' => 'VAT', + 'SM' => 'VAT', + 'TR' => 'VAT', + 'VA' => 'VAT', + 'IN' => 'GSTIN', + 'JP' => 'IIN', + 'MY' => 'TIN', + 'SG' => 'GST', + 'GB' => 'VAT', + 'SA' => 'TIN', + ]; + private array $InvoiceTypeCodes = [ "380" => "Commercial invoice", "381" => "Credit note", @@ -58,16 +146,17 @@ class Peppol extends AbstractService "896" => "Debit note related to self-billed invoice" ]; - private \InvoiceNinja\EInvoice\Models\Peppol\Invoice $p_invoice; + private Company $company; private InvoiceSum | InvoiceSumInclusive $calc; /** * @param Invoice $invoice */ - public function __construct(public Invoice $invoice) + public function __construct(public Invoice $invoice, public ?\InvoiceNinja\EInvoice\Models\Peppol\Invoice $p_invoice = null) { - $this->p_invoice = new \InvoiceNinja\EInvoice\Models\Peppol\Invoice(); + $this->p_invoice = $p_invoice ?? new \InvoiceNinja\EInvoice\Models\Peppol\Invoice(); + $this->company = $invoice->company; $this->calc = $this->invoice->calc(); } @@ -78,6 +167,12 @@ class Peppol extends AbstractService } + public function toXml(): string + { + $e = new EInvoice(); + return $e->encode($this->p_invoice, 'xml'); + } + public function run() { $this->p_invoice->ID = $this->invoice->number; @@ -86,9 +181,12 @@ class Peppol extends AbstractService $this->p_invoice->AccountingSupplierParty = $this->getAccountingSupplierParty(); $this->p_invoice->AccountingCustomerParty = $this->getAccountingCustomerParty(); $this->p_invoice->InvoiceLine = $this->getInvoiceLines(); + $this->p_invoice->TaxTotal = $this->getTotalTaxes(); $this->p_invoice->LegalMonetaryTotal = $this->getLegalMonetaryTotal(); + // $this->p_invoice->PaymentMeans = $this->getPaymentMeans(); + // $payeeFinancialAccount = (new PayeeFinancialAccount()) // ->setBankId($company->settings->custom_value1) // ->setBankName($company->settings->custom_value2); @@ -97,9 +195,21 @@ class Peppol extends AbstractService // ->setPaymentMeansCode($invoice->custom_value1) // ->setPayeeFinancialAccount($payeeFinancialAccount); // $ubl_invoice->setPaymentMeans($paymentMeans); + return $this; } + // private function getPaymentMeans(): PaymentMeans + // { + // $payeeFinancialAccount = new PayeeFinancialAccount() + // $payeeFinancialAccount-> + + // $ppm = new PaymentMeans(); + // $ppm->PayeeFinancialAccount = $payeeFinancialAccount; + + // return $ppm; + // } + private function getLegalMonetaryTotal(): LegalMonetaryTotal { $taxable = $this->getTaxable(); @@ -108,12 +218,12 @@ class Peppol extends AbstractService $lea = new LineExtensionAmount(); $lea->currencyID = $this->invoice->client->currency()->code; - $lea->amount = $taxable; + $lea->amount = $this->invoice->uses_inclusive_taxes ? round($this->invoice->amount - $this->invoice->total_taxes, 2) : $taxable; $lmt->LineExtensionAmount = $lea; $tea = new TaxExclusiveAmount(); $tea->currencyID = $this->invoice->client->currency()->code; - $tea->amount = $taxable; + $tea->amount = $this->invoice->uses_inclusive_taxes ? round($this->invoice->amount - $this->invoice->total_taxes,2) : $taxable; $lmt->TaxExclusiveAmount = $tea; $tia = new TaxInclusiveAmount(); @@ -129,57 +239,65 @@ class Peppol extends AbstractService return $lmt; } + private function getTotalTaxAmount(): float + { + if(!$this->invoice->total_taxes) + return 0; + elseif($this->invoice->uses_inclusive_taxes) + return $this->invoice->total_taxes; + + return $this->calcAmountLineTax($this->invoice->tax_rate1, $this->invoice->amount) ?? 0; + } + private function getTotalTaxes(): array { $taxes = []; $type_id = $this->invoice->line_items[0]->type_id; - if(strlen($this->invoice->tax_name1 ?? '') > 1) { + // if(strlen($this->invoice->tax_name1 ?? '') > 1) { $tax_amount = new TaxAmount(); $tax_amount->currencyID = $this->invoice->client->currency()->code; - $tax_amount->amount = round($this->invoice->amount * (1 / $this->invoice->tax_rate1), 2); + $tax_amount->amount = $this->getTotalTaxAmount(); $tax_subtotal = new TaxSubtotal(); $tax_subtotal->TaxAmount = $tax_amount; - $taxable_amount = new TaxableAmount(); $taxable_amount->currencyID = $this->invoice->client->currency()->code; - $taxable_amount->amount = $this->invoice->amount; + $taxable_amount->amount = $this->invoice->uses_inclusive_taxes ? $this->invoice->amount - $this->invoice->total_taxes : $this->invoice->amount; $tax_subtotal->TaxableAmount = $taxable_amount; - - $tc = new TaxCategory(); $tc->ID = $type_id == '2' ? 'HUR' : 'C62'; $tc->Percent = $this->invoice->tax_rate1; $ts = new PeppolTaxScheme(); - $ts->ID = $this->invoice->tax_name1; + $ts->ID = strlen($this->invoice->tax_name1 ?? '') > 1 ? $this->invoice->tax_name1 : '0'; $tc->TaxScheme = $ts; $tax_subtotal->TaxCategory = $tc; $tax_total = new TaxTotal(); $tax_total->TaxAmount = $tax_amount; - $tax_total->TaxSubtotal = $tax_subtotal; + $tax_total->TaxSubtotal[] = $tax_subtotal; $taxes[] = $tax_total; - } + // } if(strlen($this->invoice->tax_name2 ?? '') > 1) { $tax_amount = new TaxAmount(); $tax_amount->currencyID = $this->invoice->client->currency()->code; - $tax_amount->amount = round($this->invoice->amount * (1 / $this->invoice->tax_rate2), 2); + + $tax_amount->amount = $this->invoice->uses_inclusive_taxes ? $this->calcInclusiveLineTax($this->invoice->tax_rate2, $this->invoice->amount) : $this->calcAmountLineTax($this->invoice->tax_rate2, $this->invoice->amount); $tax_subtotal = new TaxSubtotal(); $tax_subtotal->TaxAmount = $tax_amount; $taxable_amount = new TaxableAmount(); $taxable_amount->currencyID = $this->invoice->client->currency()->code; - $taxable_amount->amount = $this->invoice->amount; + $taxable_amount->amount = $this->invoice->uses_inclusive_taxes ? $this->invoice->amount- $this->invoice->total_taxes : $this->invoice->amount; $tax_subtotal->TaxableAmount = $taxable_amount; @@ -204,14 +322,14 @@ class Peppol extends AbstractService $tax_amount = new TaxAmount(); $tax_amount->currencyID = $this->invoice->client->currency()->code; - $tax_amount->amount = round($this->invoice->amount * (1 / $this->invoice->tax_rate1), 2); + $tax_amount->amount = $this->invoice->uses_inclusive_taxes ? $this->calcInclusiveLineTax($this->invoice->tax_rate3, $this->invoice->amount) : $this->calcAmountLineTax($this->invoice->tax_rate3, $this->invoice->amount); $tax_subtotal = new TaxSubtotal(); $tax_subtotal->TaxAmount = $tax_amount; $taxable_amount = new TaxableAmount(); $taxable_amount->currencyID = $this->invoice->client->currency()->code; - $taxable_amount->amount = $this->invoice->amount; + $taxable_amount->amount = $this->invoice->uses_inclusive_taxes ? $this->invoice->amount - $this->invoice->total_taxes : $this->invoice->amount; $tax_subtotal->TaxableAmount = $taxable_amount; @@ -252,24 +370,24 @@ class Peppol extends AbstractService $lea = new LineExtensionAmount(); $lea->currencyID = $this->invoice->client->currency()->code; - $lea->amount = $item->line_total; + // $lea->amount = $item->line_total; + $lea->amount = $this->invoice->uses_inclusive_taxes ? $item->line_total - $this->calcInclusiveLineTax($item->tax_rate1, $item->line_total) : $item->line_total; $line->LineExtensionAmount = $lea; $line->Item = $_item; - // $ta = new TaxAmount; - // $ta->amount = $this->getItemTaxes($item); - // $ta->currencyID = $this->invoice->client->currency()->Code; - // $tt->TaxAmount = $ta; $item_taxes = $this->getItemTaxes($item); if(count($item_taxes) > 0) { $line->TaxTotal = $item_taxes; } + // else { + // $line->TaxTotal = $this->zeroTaxAmount(); + // } $price = new Price(); $pa = new PriceAmount(); $pa->currencyID = $this->invoice->client->currency()->code; - $pa->amount = $this->costWithDiscount($item); + $pa->amount = $this->costWithDiscount($item) - ( $this->invoice->uses_inclusive_taxes ? ($this->calcInclusiveLineTax($item->tax_rate1, $item->line_total)/$item->quantity) : 0); $price->PriceAmount = $pa; $line->Price = $price; @@ -295,6 +413,37 @@ class Peppol extends AbstractService return $cost; } + private function zeroTaxAmount(): array + { + $blank_tax = []; + + $tax_amount = new TaxAmount(); + $tax_amount->currencyID = $this->invoice->client->currency()->code; + $tax_amount->amount = '0'; + $tax_subtotal = new TaxSubtotal(); + $tax_subtotal->TaxAmount = $tax_amount; + + $taxable_amount = new TaxableAmount(); + $taxable_amount->currencyID = $this->invoice->client->currency()->code; + $taxable_amount->amount = '0'; + $tax_subtotal->TaxableAmount = $taxable_amount; + $tc = new TaxCategory(); + $tc->ID = 'Z'; + $tc->Percent = 0; + $ts = new PeppolTaxScheme(); + $ts->ID = '0'; + $tc->TaxScheme = $ts; + $tax_subtotal->TaxCategory = $tc; + + $tax_total = new TaxTotal(); + $tax_total->TaxAmount = $tax_amount; + $tax_total->TaxSubtotal[] = $tax_subtotal; + $blank_tax[] = $tax_total; + + + return $blank_tax; + } + private function getItemTaxes(object $item): array { $item_taxes = []; @@ -303,13 +452,13 @@ class Peppol extends AbstractService $tax_amount = new TaxAmount(); $tax_amount->currencyID = $this->invoice->client->currency()->code; - $tax_amount->amount = round(($item->line_total * (1 / $item->tax_rate1)), 2); + $tax_amount->amount = $this->invoice->uses_inclusive_taxes ? $this->calcInclusiveLineTax($item->tax_rate1, $item->line_total) : $this->calcAmountLineTax($item->tax_rate1, $item->line_total); $tax_subtotal = new TaxSubtotal(); $tax_subtotal->TaxAmount = $tax_amount; $taxable_amount = new TaxableAmount(); $taxable_amount->currencyID = $this->invoice->client->currency()->code; - $taxable_amount->amount = $item->line_total; + $taxable_amount->amount = $this->invoice->uses_inclusive_taxes ? $item->line_total - $tax_amount->amount : $item->line_total; $tax_subtotal->TaxableAmount = $taxable_amount; $tc = new TaxCategory(); $tc->ID = $item->type_id == '2' ? 'HUR' : 'C62'; @@ -332,7 +481,8 @@ class Peppol extends AbstractService $tax_amount = new TaxAmount(); $tax_amount->currencyID = $this->invoice->client->currency()->code; - $tax_amount->amount = round(($item->line_total * (1 / $item->tax_rate2)), 2); + +$tax_amount->amount = $this->invoice->uses_inclusive_taxes ? $this->calcInclusiveLineTax($item->tax_rate2, $item->line_total) : $this->calcAmountLineTax($item->tax_rate2, $item->line_total); $tax_subtotal = new TaxSubtotal(); $tax_subtotal->TaxAmount = $tax_amount; @@ -365,7 +515,8 @@ class Peppol extends AbstractService $tax_amount = new TaxAmount(); $tax_amount->currencyID = $this->invoice->client->currency()->code; - $tax_amount->amount = round(($item->line_total * (1 / $item->tax_rate3)), 2); + +$tax_amount->amount = $this->invoice->uses_inclusive_taxes ? $this->calcInclusiveLineTax($item->tax_rate3, $item->line_total) : $this->calcAmountLineTax($item->tax_rate3, $item->line_total); $tax_subtotal = new TaxSubtotal(); $tax_subtotal->TaxAmount = $tax_amount; @@ -437,6 +588,19 @@ class Peppol extends AbstractService $party = new Party(); + if(strlen($this->invoice->client->vat_number ?? '') > 1) { + + $pi = new PartyIdentification; + $vatID = new ID; + $vatID->schemeID = 'CH:MWST'; + $vatID->value = $this->invoice->client->vat_number; + + $pi->ID = $vatID; + + $party->PartyIdentification[] = $pi; + + } + $party_name = new PartyName(); $party_name->Name = $this->invoice->client->present()->name(); $party->PartyName[] = $party_name; @@ -513,4 +677,34 @@ class Peppol extends AbstractService return $total; } + public function setInvoiceDefaults(): self + { + $settings = [ + 'AccountingCostCode' => 7, + 'AccountingCost' => 7, + 'BuyerReference' => 6, + 'AccountingSupplierParty' => 1, + 'AccountingCustomerParty' => 2, + 'PayeeParty' => 1, + 'BuyerCustomerParty' => 2, + 'SellerSupplierParty' => 1, + 'TaxRepresentativeParty' => 1, + 'Delivery' => 1, + 'DeliveryTerms' => 7, + 'PaymentMeans' => 7, + 'PaymentTerms' => 7, + ]; + + foreach($settings as $prop => $visibility){ + + if($prop_value = PropertyResolver::resolve($this->invoice->client->e_invoice, $prop)) + $this->p_invoice->{$prop} = $prop_value; + elseif($prop_value = PropertyResolver::resolve($this->invoice->company->e_invoice, $prop)) { + $this->p_invoice->{$prop} = $prop_value; + } + + } + + return $this; + } } diff --git a/app/Services/EDocument/Standards/RoEInvoice.php b/app/Services/EDocument/Standards/RoEInvoice.php index 016f810d4e9c..a82f45224a0f 100644 --- a/app/Services/EDocument/Standards/RoEInvoice.php +++ b/app/Services/EDocument/Standards/RoEInvoice.php @@ -188,7 +188,7 @@ class RoEInvoice extends AbstractService $ubl_invoice->setCustomizationID("urn:cen.eu:en16931:2017#compliant#urn:efactura.mfinante.ro:CIUS-RO:1.0.1"); // invoice - $ubl_invoice->setId($invoice->number); + $ubl_invoice->setId($invoice->number); //@phpstan-ignore-line $ubl_invoice->setIssueDate(date_create($invoice->date)); $ubl_invoice->setDueDate(date_create($invoice->due_date)); $ubl_invoice->setInvoiceTypeCode("380"); diff --git a/app/Services/EDocument/Standards/Settings/PropertyResolver.php b/app/Services/EDocument/Standards/Settings/PropertyResolver.php new file mode 100644 index 000000000000..2476a70b39a0 --- /dev/null +++ b/app/Services/EDocument/Standards/Settings/PropertyResolver.php @@ -0,0 +1,44 @@ +{$currentProperty})) { + $nextObject = $object->{$currentProperty}; + } elseif (is_array($object) && array_key_exists($currentProperty, $object)) { + $nextObject = $object[$currentProperty]; + } else { + return null; + } + + if (empty($pathSegments)) { + return $nextObject; + } + + return self::traverse($nextObject, $pathSegments); + } +} \ No newline at end of file diff --git a/app/Services/EDocument/Standards/Validation/Peppol/ClientLevel.php b/app/Services/EDocument/Standards/Validation/Peppol/ClientLevel.php new file mode 100644 index 000000000000..e83383388afc --- /dev/null +++ b/app/Services/EDocument/Standards/Validation/Peppol/ClientLevel.php @@ -0,0 +1,303 @@ + 'Y-m-d'])] + // #[SerializedName('cbc:IssueDate')] + // public ?DateTime $IssueDate; + + // /** @var ?\DateTime */ + // #[Context([DateTimeNormalizer::FORMAT_KEY => 'Y-m-d\TH:i:s.uP'])] + // #[SerializedName('cbc:IssueTime')] + // public ?DateTime $IssueTime; + + // /** @var ?\DateTime */ + // #[Context([DateTimeNormalizer::FORMAT_KEY => 'Y-m-d'])] + // #[SerializedName('cbc:DueDate')] + // public ?DateTime $DueDate; + + /** @var InvoiceTypeCode */ + #[SerializedName('cbc:InvoiceTypeCode')] + public $InvoiceTypeCode; + + /** @var string */ + #[SerializedName('cbc:Note')] + public string $Note; + + /** @var ?\DateTime */ + #[Context([DateTimeNormalizer::FORMAT_KEY => 'Y-m-d'])] + #[SerializedName('cbc:TaxPointDate')] + public ?DateTime $TaxPointDate; + + /** @var DocumentCurrencyCode */ + #[SerializedName('cbc:DocumentCurrencyCode')] + public $DocumentCurrencyCode; + + /** @var TaxCurrencyCode */ + #[SerializedName('cbc:TaxCurrencyCode')] + public $TaxCurrencyCode; + + /** @var PricingCurrencyCode */ + #[SerializedName('cbc:PricingCurrencyCode')] + public $PricingCurrencyCode; + + /** @var PaymentCurrencyCode */ + #[SerializedName('cbc:PaymentCurrencyCode')] + public $PaymentCurrencyCode; + + /** @var PaymentAlternativeCurrencyCode */ + #[SerializedName('cbc:PaymentAlternativeCurrencyCode')] + public $PaymentAlternativeCurrencyCode; + + // /** @var AccountingCostCode */ + // #[SerializedName('cbc:AccountingCostCode')] + // public $AccountingCostCode; + + /** @var string */ + #[SerializedName('cbc:AccountingCost')] + public string $AccountingCost; + + // /** @var LineCountNumeric */ + // #[SerializedName('cbc:LineCountNumeric')] + // public $LineCountNumeric; + + // /** @var string */ + // #[SerializedName('cbc:BuyerReference')] + // public string $BuyerReference; + + // /** @var InvoicePeriod[] */ + // #[SerializedName('cac:InvoicePeriod')] + // public array $InvoicePeriod; + + // /** @var OrderReference */ + // #[SerializedName('cac:OrderReference')] + // public $OrderReference; + + // /** @var BillingReference[] */ + // #[SerializedName('cac:BillingReference')] + // public array $BillingReference; + + /** @var DespatchDocumentReference[] */ + #[SerializedName('cac:DespatchDocumentReference')] + public array $DespatchDocumentReference; + + /** @var ReceiptDocumentReference[] */ + #[SerializedName('cac:ReceiptDocumentReference')] + public array $ReceiptDocumentReference; + + /** @var StatementDocumentReference[] */ + #[SerializedName('cac:StatementDocumentReference')] + public array $StatementDocumentReference; + + /** @var OriginatorDocumentReference[] */ + #[SerializedName('cac:OriginatorDocumentReference')] + public array $OriginatorDocumentReference; + + /** @var ContractDocumentReference[] */ + #[SerializedName('cac:ContractDocumentReference')] + public array $ContractDocumentReference; + + /** @var AdditionalDocumentReference[] */ + #[SerializedName('cac:AdditionalDocumentReference')] + public array $AdditionalDocumentReference; + + /** @var ProjectReference[] */ + #[SerializedName('cac:ProjectReference')] + public array $ProjectReference; + + // /** @var Signature[] */ + // #[SerializedName('cac:Signature')] + // public array $Signature; + + // /** @var AccountingSupplierParty */ + // #[NotNull] + // #[NotBlank] + // #[Valid] + // #[SerializedName('cac:AccountingSupplierParty')] + // public $AccountingSupplierParty; + + // /** @var AccountingCustomerParty */ + // #[NotNull] + // #[NotBlank] + // #[Valid] + // #[SerializedName('cac:AccountingCustomerParty')] + // public $AccountingCustomerParty; + + /** @var PayeeParty */ + #[SerializedName('cac:PayeeParty')] + public $PayeeParty; + + /** @var BuyerCustomerParty */ + #[SerializedName('cac:BuyerCustomerParty')] + public $BuyerCustomerParty; + + // /** @var SellerSupplierParty */ + // #[SerializedName('cac:SellerSupplierParty')] + // public $SellerSupplierParty; + + /** @var TaxRepresentativeParty */ + #[SerializedName('cac:TaxRepresentativeParty')] + public $TaxRepresentativeParty; + + /** @var Delivery[] */ + #[SerializedName('cac:Delivery')] + public array $Delivery; + + /** @var DeliveryTerms */ + #[SerializedName('cac:DeliveryTerms')] + public $DeliveryTerms; + + /** @var PaymentMeans[] */ + #[SerializedName('cac:PaymentMeans')] + public array $PaymentMeans; + + /** @var PaymentTerms[] */ + #[SerializedName('cac:PaymentTerms')] + public array $PaymentTerms; + + // /** @var PrepaidPayment[] */ + // #[SerializedName('cac:PrepaidPayment')] + // public array $PrepaidPayment; + + // /** @var AllowanceCharge[] */ + // #[SerializedName('cac:AllowanceCharge')] + // public array $AllowanceCharge; + + // /** @var TaxExchangeRate */ + // #[SerializedName('cac:TaxExchangeRate')] + // public $TaxExchangeRate; + + // /** @var PricingExchangeRate */ + // #[SerializedName('cac:PricingExchangeRate')] + // public $PricingExchangeRate; + + // /** @var PaymentExchangeRate */ + // #[SerializedName('cac:PaymentExchangeRate')] + // public $PaymentExchangeRate; + + // /** @var PaymentAlternativeExchangeRate */ + // #[SerializedName('cac:PaymentAlternativeExchangeRate')] + // public $PaymentAlternativeExchangeRate; + + // /** @var TaxTotal[] */ + // #[SerializedName('cac:TaxTotal')] + // public array $TaxTotal; + + // /** @var WithholdingTaxTotal[] */ + // #[SerializedName('cac:WithholdingTaxTotal')] + // public array $WithholdingTaxTotal; + + // /** @var LegalMonetaryTotal */ + // #[NotNull] + // #[NotBlank] + // #[Valid] + // #[SerializedName('cac:LegalMonetaryTotal')] + // public $LegalMonetaryTotal; + + // /** @var InvoiceLine[] */ + // #[NotNull] + // #[NotBlank] + // #[Valid] + // #[SerializedName('cac:InvoiceLine')] + // public array $InvoiceLine; +} diff --git a/app/Services/EDocument/Standards/Validation/Peppol/CompanyLevel.php b/app/Services/EDocument/Standards/Validation/Peppol/CompanyLevel.php index 9de7f548e714..d78d526b1ab1 100644 --- a/app/Services/EDocument/Standards/Validation/Peppol/CompanyLevel.php +++ b/app/Services/EDocument/Standards/Validation/Peppol/CompanyLevel.php @@ -153,9 +153,9 @@ class CompanyLevel // #[SerializedName('cbc:AccountingCostCode')] // public $AccountingCostCode; - // /** @var string */ - // #[SerializedName('cbc:AccountingCost')] - // public string $AccountingCost; + /** @var string */ + #[SerializedName('cbc:AccountingCost')] + public string $AccountingCost; // /** @var LineCountNumeric */ // #[SerializedName('cbc:LineCountNumeric')] @@ -231,9 +231,9 @@ class CompanyLevel // #[SerializedName('cac:BuyerCustomerParty')] // public $BuyerCustomerParty; - // /** @var SellerSupplierParty */ - // #[SerializedName('cac:SellerSupplierParty')] - // public $SellerSupplierParty; + /** @var SellerSupplierParty */ + #[SerializedName('cac:SellerSupplierParty')] + public $SellerSupplierParty; /** @var TaxRepresentativeParty */ #[SerializedName('cac:TaxRepresentativeParty')] diff --git a/app/Services/EDocument/Standards/ZugferdEDokument.php b/app/Services/EDocument/Standards/ZugferdEDokument.php index e650372b98ba..537d39694400 100644 --- a/app/Services/EDocument/Standards/ZugferdEDokument.php +++ b/app/Services/EDocument/Standards/ZugferdEDokument.php @@ -144,7 +144,7 @@ class ZugferdEDokument extends AbstractService foreach ($this->document->line_items as $index => $item) { /** @var InvoiceItem $item **/ $this->xdocument->addNewPosition($index) - ->setDocumentPositionGrossPrice($item->gross_line_total + $item->discount) + ->setDocumentPositionGrossPrice($item->gross_line_total) ->setDocumentPositionNetPrice($item->line_total); if (!empty($item->product_key)) { if (!empty($item->notes)) { diff --git a/app/Services/Email/EmailDefaults.php b/app/Services/Email/EmailDefaults.php index 25a7d0204b32..1c27b83ee483 100644 --- a/app/Services/Email/EmailDefaults.php +++ b/app/Services/Email/EmailDefaults.php @@ -318,7 +318,7 @@ class EmailDefaults } /** UBL xml file */ - if ($this->email->email_object->settings->ubl_email_attachment && $this->email->email_object->entity instanceof Invoice) { + if ($this->email->email_object->settings->ubl_email_attachment && !$this->email->email_object->settings->enable_e_invoice && $this->email->email_object->entity instanceof Invoice) { $ubl_string = (new CreateUbl($this->email->email_object->entity))->handle(); if ($ubl_string) { @@ -326,12 +326,14 @@ class EmailDefaults } } /** E-Invoice xml file */ - if ($this->email->email_object->settings->enable_e_invoice) { - $xml_string = $this->email->email_object->entity->service()->getEDocument(); + if ($this->email->email_object->settings->enable_e_invoice && $this->email->email_object->settings->enable_e_invoice) { + + $xml_string = $this->email->email_object->entity->service()->getEDocument(); - if($xml_string) { - $this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [['file' => base64_encode($xml_string), 'name' => explode(".", $this->email->email_object->entity->getFileName('xml'))[0]."-e_invoice.xml"]]); - } + if($xml_string) { + $this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [['file' => base64_encode($xml_string), 'name' => explode(".", $this->email->email_object->entity->getFileName('xml'))[0]."-e_invoice.xml"]]); + } + } if (!$this->email->email_object->settings->document_email_attachment || !$this->email->company->account->hasFeature(Account::FEATURE_DOCUMENTS)) { diff --git a/app/Services/Invoice/AutoBillInvoice.php b/app/Services/Invoice/AutoBillInvoice.php index 782b0fac9a76..a9c9f415396d 100644 --- a/app/Services/Invoice/AutoBillInvoice.php +++ b/app/Services/Invoice/AutoBillInvoice.php @@ -62,7 +62,7 @@ class AutoBillInvoice extends AbstractService $this->invoice = $this->invoice->service()->markSent()->save(); /* Mark the invoice as paid if there is no balance */ - if ((int) $this->invoice->balance == 0) { + if (floatval($this->invoice->balance) == 0) { return $this->invoice->service()->markPaid()->save(); } @@ -433,7 +433,7 @@ class AutoBillInvoice extends AbstractService $company_gateway = $gateway_token->gateway; //check if fees and limits are set - if (isset($company_gateway->fees_and_limits) && ! is_array($company_gateway->fees_and_limits) && property_exists($company_gateway->fees_and_limits, $gateway_token->gateway_type_id)) { + if (isset($company_gateway->fees_and_limits) && ! is_array($company_gateway->fees_and_limits) && property_exists($company_gateway->fees_and_limits, $gateway_token->gateway_type_id)) { //@phpstan-ignore-line //if valid we keep this gateway_token if ($this->invoice->client->validGatewayForAmount($company_gateway->fees_and_limits->{$gateway_token->gateway_type_id}, $amount)) { return true; diff --git a/app/Services/Invoice/MarkInvoiceDeleted.php b/app/Services/Invoice/MarkInvoiceDeleted.php index 22860d97259d..65125740d0cb 100644 --- a/app/Services/Invoice/MarkInvoiceDeleted.php +++ b/app/Services/Invoice/MarkInvoiceDeleted.php @@ -13,6 +13,7 @@ namespace App\Services\Invoice; use App\Jobs\Inventory\AdjustProductInventory; use App\Models\Invoice; +use App\Models\Quote; use App\Services\AbstractService; use App\Utils\Traits\GeneratesCounter; @@ -45,7 +46,8 @@ class MarkInvoiceDeleted extends AbstractService ->deletePaymentables() ->adjustPayments() ->adjustPaidToDateAndBalance() - ->adjustLedger(); + ->adjustLedger() + ->triggeredActions(); return $this->invoice; } @@ -182,4 +184,15 @@ class MarkInvoiceDeleted extends AbstractService return $this; } + + private function triggeredActions(): self + { + if($this->invoice->quote){ + $this->invoice->quote->invoice_id = null; + $this->invoice->quote->status_id = Quote::STATUS_SENT; + $this->invoice->pushQuietly(); + } + + return $this; + } } diff --git a/app/Services/Pdf/PdfConfiguration.php b/app/Services/Pdf/PdfConfiguration.php index fddbc0766ae2..2adc2d1105d4 100644 --- a/app/Services/Pdf/PdfConfiguration.php +++ b/app/Services/Pdf/PdfConfiguration.php @@ -306,7 +306,7 @@ class PdfConfiguration $decimal = $this->country->decimal_separator; } - if (isset($this->country->swap_currency_symbol) && strlen($this->country->swap_currency_symbol) >= 1) { + if (isset($this->country->swap_currency_symbol) && $this->country->swap_currency_symbol) { $swapSymbol = $this->country->swap_currency_symbol; } @@ -386,7 +386,7 @@ class PdfConfiguration $decimal = $this->country->decimal_separator; } - if (isset($this->country->swap_currency_symbol) && strlen($this->country->swap_currency_symbol) >= 1) { + if (isset($this->country->swap_currency_symbol) && $this->country->swap_currency_symbol == 1) { $swapSymbol = $this->country->swap_currency_symbol; } @@ -410,7 +410,7 @@ class PdfConfiguration $precision = 0; } - $value = number_format($v, $precision, $decimal, $thousand); + $value = number_format($v, $precision, $decimal, $thousand); //@phpstan-ignore-line $symbol = $this->currency->symbol; if ($this->settings->show_currency_code === true && $this->currency->code == 'CHF') { @@ -427,7 +427,7 @@ class PdfConfiguration return "{$symbol}{$value}"; } else { - return $this->formatValue($value); + return $this->formatValue($value); // @phpstan-ignore-line } } diff --git a/app/Services/Pdf/PdfService.php b/app/Services/Pdf/PdfService.php index 4a579db80c52..85d115e8a476 100644 --- a/app/Services/Pdf/PdfService.php +++ b/app/Services/Pdf/PdfService.php @@ -102,7 +102,7 @@ class PdfService } } catch (\Exception $e) { - nlog(print_r($e->getMessage(), 1)); + nlog($e->getMessage()); throw new \Exception($e->getMessage(), $e->getCode()); } diff --git a/app/Services/PdfMaker/Designs/Utilities/DesignHelpers.php b/app/Services/PdfMaker/Designs/Utilities/DesignHelpers.php index 7c00cfb1871e..9a8fece5de4a 100644 --- a/app/Services/PdfMaker/Designs/Utilities/DesignHelpers.php +++ b/app/Services/PdfMaker/Designs/Utilities/DesignHelpers.php @@ -174,7 +174,7 @@ trait DesignHelpers // evaluating the variable. if (in_array(sprintf('%s%s.tax', '$', $type), (array) $this->context['pdf_variables']["{$column_type}_columns"])) { - $line_items = collect($this->entity->line_items)->filter(function ($item) use ($type_id) { + $line_items = collect($this->entity->line_items)->filter(function ($item) use ($type_id) { //@phpstan-ignore-line return $item->type_id = $type_id; }); diff --git a/app/Services/Subscription/SubscriptionService.php b/app/Services/Subscription/SubscriptionService.php index 9e97aee3c990..da88156c8d70 100644 --- a/app/Services/Subscription/SubscriptionService.php +++ b/app/Services/Subscription/SubscriptionService.php @@ -428,7 +428,7 @@ class SubscriptionService /** * We refund unused days left. * - * @param Invoice $invoice + * @param \App\Models\Invoice | \App\Models\Credit $invoice * @return float */ private function calculateProRataRefund($invoice, $subscription = null): float diff --git a/app/Services/Template/TemplateService.php b/app/Services/Template/TemplateService.php index a286d05bbb9b..5a033c2f5383 100644 --- a/app/Services/Template/TemplateService.php +++ b/app/Services/Template/TemplateService.php @@ -124,7 +124,7 @@ class TemplateService $this->twig->addFilter($filter); $allowedTags = ['if', 'for', 'set', 'filter']; - $allowedFilters = ['escape', 'e', 'upper', 'lower', 'capitalize', 'filter', 'length', 'merge','format_currency', 'format_number','format_percent_number','map', 'join', 'first', 'date','sum']; + $allowedFilters = ['escape', 'e', 'upper', 'lower', 'capitalize', 'filter', 'length', 'merge','format_currency', 'format_number','format_percent_number','map', 'join', 'first', 'date', 'sum', 'number_format']; $allowedFunctions = ['range', 'cycle', 'constant', 'date',]; $allowedProperties = ['type_id']; $allowedMethods = ['img','t']; @@ -654,7 +654,7 @@ class TemplateService 'updated_at' => $this->translateDate($invoice->pivot->updated_at, $payment->client->date_format(), $payment->client->locale()), 'timestamp' => $invoice->pivot->created_at->timestamp, ]; - })->merge($credits)->sortBy('timestamp')->toArray(); + })->concat($credits)->sortBy('timestamp')->toArray(); return [ 'status' => $payment->stringStatus($payment->status_id), diff --git a/app/Transformers/AccountTransformer.php b/app/Transformers/AccountTransformer.php index bd813cf71d21..4ad93a2598bc 100644 --- a/app/Transformers/AccountTransformer.php +++ b/app/Transformers/AccountTransformer.php @@ -93,7 +93,7 @@ class AccountTransformer extends EntityTransformer 'has_iap_plan' => (bool)$account->inapp_transaction_id, 'tax_api_enabled' => (bool) config('services.tax.zip_tax.key') ? true : false, 'nordigen_enabled' => (bool) (config('ninja.nordigen.secret_id') && config('ninja.nordigen.secret_key')) ? true : false, - 'upload_extensions' => (string) config('ninja.upload_extensions'), + 'upload_extensions' => (string) "png,ai,jpeg,tiff,pdf,gif,psd,txt,doc,xls,ppt,xlsx,docx,pptx,webp,xml,zip,csv,ods,odt,odp,".config('ninja.upload_extensions'), ]; } diff --git a/app/Transformers/CompanyTransformer.php b/app/Transformers/CompanyTransformer.php index 97710a2b92a5..f13090bb63de 100644 --- a/app/Transformers/CompanyTransformer.php +++ b/app/Transformers/CompanyTransformer.php @@ -211,7 +211,7 @@ class CompanyTransformer extends EntityTransformer 'smtp_password' => $company->smtp_password ? '********' : '', 'smtp_local_domain' => (string)$company->smtp_local_domain ?? '', 'smtp_verify_peer' => (bool)$company->smtp_verify_peer, - // 'e_invoice' => $company->e_invoice ?: new \stdClass(), + 'e_invoice' => $company->e_invoice ?: new \stdClass(), ]; } diff --git a/app/Utils/Helpers.php b/app/Utils/Helpers.php index 4d5fd38d486d..e0e7d9e64e21 100644 --- a/app/Utils/Helpers.php +++ b/app/Utils/Helpers.php @@ -279,7 +279,7 @@ class Helpers $_value = explode($_operation, $right); // [MONTHYEAR, 4] - $_right = Carbon::createFromDate($currentDateTime->year, $currentDateTime->month)->addMonths($_value[1])->translatedFormat('F Y'); + $_right = Carbon::createFromDate($currentDateTime->year, $currentDateTime->month)->addMonths($_value[1])->translatedFormat('F Y'); //@phpstan-ignore-line } $replacement = sprintf('%s to %s', $_left, $_right); diff --git a/app/Utils/HtmlEngine.php b/app/Utils/HtmlEngine.php index c0aa8f563fbb..69a782ea02a3 100644 --- a/app/Utils/HtmlEngine.php +++ b/app/Utils/HtmlEngine.php @@ -130,6 +130,8 @@ class HtmlEngine $data = []; + $data['$date_client_now'] = ['value' => now()->setTimezone($this->client->timezone()->name)->addSeconds($this->client->utc_offset())->format($this->client->date_format()), 'label' => '']; + $data['$date_company_now'] = ['value' => now()->setTimezone($this->company->timezone()->name)->addSeconds($this->company->utc_offset())->format($this->company->date_format()), 'label' => '']; $data['$global_margin'] = ['value' => '6.35mm', 'label' => '']; $data['$company_logo_size'] = ['value' => $this->resolveCompanyLogoSize(), 'label' => '']; $data['$show_shipping_address'] = ['value' => $this->settings->show_shipping_address ? 'flex' : 'none', 'label' => '']; diff --git a/app/Utils/Number.php b/app/Utils/Number.php index 2a8b592a6a99..84394be04ea4 100644 --- a/app/Utils/Number.php +++ b/app/Utils/Number.php @@ -255,7 +255,7 @@ class Number $decimal = $country->decimal_separator; } - if (isset($country->swap_currency_symbol) && strlen($country->swap_currency_symbol) >= 1) { + if (isset($country->swap_currency_symbol) && $country->swap_currency_symbol == 1) { $swapSymbol = $country->swap_currency_symbol; } @@ -277,7 +277,7 @@ class Number return "{$symbol}{$value}"; } else { - return self::formatValue($value, $currency); + return self::formatValue($value, $currency); //@phpstan-ignore-line } } @@ -339,7 +339,7 @@ class Number $precision = 0; } - $value = number_format($v, $precision, $decimal, $thousand); + $value = number_format($v, $precision, $decimal, $thousand);//@phpstan-ignore-line $symbol = $currency->symbol; if ($entity->getSetting('show_currency_code') === true && $currency->code == 'CHF') { @@ -356,7 +356,7 @@ class Number return "{$symbol}{$value}"; } else { - return self::formatValue($value, $currency); + return self::formatValue($value, $currency); //@phpstan-ignore-line } } } diff --git a/app/Utils/SystemHealth.php b/app/Utils/SystemHealth.php index f9505c22796a..429503c4f8c7 100644 --- a/app/Utils/SystemHealth.php +++ b/app/Utils/SystemHealth.php @@ -89,7 +89,7 @@ class SystemHealth 'exchange_rate_api_not_configured' => (bool)self::checkCurrencySanity(), 'api_version' => (string) config('ninja.app_version'), 'is_docker' => (bool) config('ninja.is_docker'), - 'pending_migrations' => self::checkPendingMigrations(), + 'pending_migrations' => (bool) ($check_file_system ? self::checkPendingMigrations() : false), ]; } @@ -202,7 +202,7 @@ class SystemHealth public static function checkOpenBaseDir() { - if (strlen(ini_get('open_basedir') == 0)) { + if (strlen(ini_get('open_basedir')) == 0) { return true; } diff --git a/app/Utils/TempFile.php b/app/Utils/TempFile.php index 16b1dc1a932a..58cd8a942c17 100644 --- a/app/Utils/TempFile.php +++ b/app/Utils/TempFile.php @@ -17,7 +17,7 @@ class TempFile { public static function path($url): string { - $temp_path = @tempnam(sys_get_temp_dir().'/'.sha1(time()), basename($url)); + $temp_path = @tempnam(sys_get_temp_dir().'/'.sha1((string)time()), basename($url)); copy($url, $temp_path); return $temp_path; diff --git a/app/Utils/Traits/CompanySettingsSaver.php b/app/Utils/Traits/CompanySettingsSaver.php index e9fd86e49289..1b3c304071d4 100644 --- a/app/Utils/Traits/CompanySettingsSaver.php +++ b/app/Utils/Traits/CompanySettingsSaver.php @@ -39,7 +39,7 @@ trait CompanySettingsSaver * Saves a setting object. * * Works for groups|clients|companies - * @param array $settings The request input settings array + * @param mixed $settings The request input settings array * @param object $entity The entity which the settings belongs to * @return void */ diff --git a/app/Utils/Traits/GeneratesCounter.php b/app/Utils/Traits/GeneratesCounter.php index f67288de6734..82e93c6afd08 100644 --- a/app/Utils/Traits/GeneratesCounter.php +++ b/app/Utils/Traits/GeneratesCounter.php @@ -441,7 +441,7 @@ trait GeneratesCounter /** * Formats the entity number according to pattern, prefix and padding. * - * @param Collection $entity The entity ie App\Models\Client, Invoice, Quote etc + * @param mixed $entity The entity ie App\Models\Client, Invoice, Quote etc * @param int $counter The counter * @param int $padding The padding * @param string $pattern diff --git a/app/Utils/Traits/MakesReminders.php b/app/Utils/Traits/MakesReminders.php index 119351ba4d00..ca8d2b14d151 100644 --- a/app/Utils/Traits/MakesReminders.php +++ b/app/Utils/Traits/MakesReminders.php @@ -82,10 +82,12 @@ trait MakesReminders private function checkEndlessReminder($last_sent_date, $endless_reminder_frequency_id): bool { - if(is_null($last_sent_date) || !$last_sent_date) + $interval = $this->addTimeInterval($last_sent_date, $endless_reminder_frequency_id); + + if(is_null($interval)) return false; - if (Carbon::now()->startOfDay()->eq($this->addTimeInterval($last_sent_date, $endless_reminder_frequency_id))) { + if (Carbon::now()->startOfDay()->eq($interval)) { return true; } diff --git a/app/Utils/Traits/Pdf/PdfMaker.php b/app/Utils/Traits/Pdf/PdfMaker.php index 112570272f4a..fa3c70f6b872 100644 --- a/app/Utils/Traits/Pdf/PdfMaker.php +++ b/app/Utils/Traits/Pdf/PdfMaker.php @@ -20,8 +20,8 @@ trait PdfMaker /** * Returns a PDF stream. * - * @param string $header Header to be included in PDF - * @param string $footer Footer to be included in PDF + * @param string|null $header Header to be included in PDF + * @param string|null $footer Footer to be included in PDF * @param string $html The HTML object to be converted into PDF * * @return string The PDF string diff --git a/app/Utils/TranslationHelper.php b/app/Utils/TranslationHelper.php index 19793aad897f..6a7f80300180 100644 --- a/app/Utils/TranslationHelper.php +++ b/app/Utils/TranslationHelper.php @@ -34,9 +34,9 @@ class TranslationHelper { /** @var \Illuminate\Support\Collection<\App\Models\Country> */ - $countries = app('countries'); + // $countries = app('countries'); - return $countries->each(function ($country) { + return \App\Models\Country::all()->each(function ($country) { $country->name = ctrans('texts.country_'.$country->name); })->sortBy(function ($country) { return $country->iso_3166_2; @@ -47,9 +47,9 @@ class TranslationHelper { /** @var \Illuminate\Support\Collection<\App\Models\PaymentType> */ - $payment_types = app('payment_types'); + // $payment_types = app('payment_types'); - return $payment_types->each(function ($pType) { + return \App\Models\PaymentType::all()->each(function ($pType) { $pType->name = ctrans('texts.payment_type_'.$pType->name); })->sortBy(function ($pType) { return $pType->name; @@ -60,9 +60,9 @@ class TranslationHelper { /** @var \Illuminate\Support\Collection<\App\Models\Language> */ - $languages = app('languages'); + // $languages = app('languages'); - return $languages->each(function ($lang) { + return \App\Models\Language::all()->each(function ($lang) { $lang->name = ctrans('texts.lang_'.$lang->name); })->sortBy(function ($lang) { return $lang->name; @@ -73,9 +73,9 @@ class TranslationHelper { /** @var \Illuminate\Support\Collection<\App\Models\Currency> */ - $currencies = app('currencies'); + // $currencies = app('currencies'); - return $currencies->each(function ($currency) { + return \App\Models\Currency::all()->each(function ($currency) { $currency->name = ctrans('texts.currency_'.Str::slug($currency->name, '_')); })->sortBy(function ($currency) { return $currency->name; diff --git a/composer.json b/composer.json index 64f214a13a0b..e3b795c88121 100644 --- a/composer.json +++ b/composer.json @@ -41,7 +41,7 @@ "authorizenet/authorizenet": "^2.0", "awobaz/compoships": "^2.1", "bacon/bacon-qr-code": "^2.0", - "beganovich/snappdf": "^5", + "beganovich/snappdf": "dev-master", "braintree/braintree_php": "^6.0", "btcpayserver/btcpayserver-greenfield-php": "^2.6", "checkout/checkout-sdk-php": "^3.0", @@ -195,6 +195,10 @@ { "type": "vcs", "url": "https://github.com/beganovich/php-ansible" + }, + { + "type": "vcs", + "url": "https://github.com/turbo124/snappdf" } ], "minimum-stability": "dev", diff --git a/composer.lock b/composer.lock index 3a62ab2f9a94..541f0c04527b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "7c67ca71986b97fc72bba5eba530e878", + "content-hash": "edc6905124cb32fef6a13befb3d5a4e1", "packages": [ { "name": "adrienrn/php-mimetyper", @@ -100,16 +100,16 @@ }, { "name": "apimatic/core", - "version": "0.3.10", + "version": "0.3.11", "source": { "type": "git", "url": "https://github.com/apimatic/core-lib-php.git", - "reference": "8c111790b8d6f67812ba651ebb9513b5233863d0" + "reference": "2274f103f9f210664f546f504e4559d772a81fee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/apimatic/core-lib-php/zipball/8c111790b8d6f67812ba651ebb9513b5233863d0", - "reference": "8c111790b8d6f67812ba651ebb9513b5233863d0", + "url": "https://api.github.com/repos/apimatic/core-lib-php/zipball/2274f103f9f210664f546f504e4559d772a81fee", + "reference": "2274f103f9f210664f546f504e4559d772a81fee", "shasum": "" }, "require": { @@ -148,9 +148,9 @@ ], "support": { "issues": "https://github.com/apimatic/core-lib-php/issues", - "source": "https://github.com/apimatic/core-lib-php/tree/0.3.10" + "source": "https://github.com/apimatic/core-lib-php/tree/0.3.11" }, - "time": "2024-05-30T06:32:24+00:00" + "time": "2024-07-08T11:50:08+00:00" }, { "name": "apimatic/core-interfaces", @@ -535,16 +535,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.315.1", + "version": "3.316.3", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "13871330833e167d098240dab74b8b069b9b07e3" + "reference": "e832e594b3c213760e067e15ef2739f77505e832" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/13871330833e167d098240dab74b8b069b9b07e3", - "reference": "13871330833e167d098240dab74b8b069b9b07e3", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/e832e594b3c213760e067e15ef2739f77505e832", + "reference": "e832e594b3c213760e067e15ef2739f77505e832", "shasum": "" }, "require": { @@ -624,9 +624,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.315.1" + "source": "https://github.com/aws/aws-sdk-php/tree/3.316.3" }, - "time": "2024-06-27T18:03:53+00:00" + "time": "2024-07-12T18:07:23+00:00" }, { "name": "bacon/bacon-qr-code", @@ -684,16 +684,16 @@ }, { "name": "beganovich/snappdf", - "version": "v5.0", + "version": "dev-master", "source": { "type": "git", - "url": "https://github.com/beganovich/snappdf.git", - "reference": "3b21c7a88a4d05b01a606bc74f1950b0e9e820b1" + "url": "https://github.com/turbo124/snappdf.git", + "reference": "adadaf593dca174db46efa139bdff844b3a64da8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/beganovich/snappdf/zipball/3b21c7a88a4d05b01a606bc74f1950b0e9e820b1", - "reference": "3b21c7a88a4d05b01a606bc74f1950b0e9e820b1", + "url": "https://api.github.com/repos/turbo124/snappdf/zipball/adadaf593dca174db46efa139bdff844b3a64da8", + "reference": "adadaf593dca174db46efa139bdff844b3a64da8", "shasum": "" }, "require": { @@ -708,6 +708,7 @@ "friendsofphp/php-cs-fixer": "^3.6", "phpunit/phpunit": "^11.0" }, + "default-branch": true, "bin": [ "snappdf" ], @@ -717,7 +718,11 @@ "Beganovich\\Snappdf\\": "src/" } }, - "notification-url": "https://packagist.org/downloads/", + "autoload-dev": { + "psr-4": { + "Test\\Snappdf\\": "tests/" + } + }, "license": [ "MIT" ], @@ -729,10 +734,9 @@ ], "description": "Convert webpages or HTML into the PDF file using Chromium or Google Chrome.", "support": { - "issues": "https://github.com/beganovich/snappdf/issues", - "source": "https://github.com/beganovich/snappdf/tree/v5.0" + "source": "https://github.com/turbo124/snappdf/tree/master" }, - "time": "2024-03-20T22:03:41+00:00" + "time": "2024-07-22T09:26:26+00:00" }, { "name": "braintree/braintree_php", @@ -968,16 +972,16 @@ }, { "name": "checkout/checkout-sdk-php", - "version": "3.2.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/checkout/checkout-sdk-php.git", - "reference": "99a01786fa44c3e0b1d6d2b207ab0c1ba4f742d3" + "reference": "91797beb18fd9b1581b1cfe5b96a551c0009417c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/checkout/checkout-sdk-php/zipball/99a01786fa44c3e0b1d6d2b207ab0c1ba4f742d3", - "reference": "99a01786fa44c3e0b1d6d2b207ab0c1ba4f742d3", + "url": "https://api.github.com/repos/checkout/checkout-sdk-php/zipball/91797beb18fd9b1581b1cfe5b96a551c0009417c", + "reference": "91797beb18fd9b1581b1cfe5b96a551c0009417c", "shasum": "" }, "require": { @@ -1030,9 +1034,9 @@ ], "support": { "issues": "https://github.com/checkout/checkout-sdk-php/issues", - "source": "https://github.com/checkout/checkout-sdk-php/tree/3.2.0" + "source": "https://github.com/checkout/checkout-sdk-php/tree/3.2.1" }, - "time": "2024-05-09T10:39:29+00:00" + "time": "2024-07-09T16:07:18+00:00" }, { "name": "clue/stream-filter", @@ -1102,16 +1106,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.5.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99" + "reference": "063d9aa8696582f5a41dffbbaf3c81024f0a604a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/0c5ccfcfea312b5c5a190a21ac5cef93f74baf99", - "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/063d9aa8696582f5a41dffbbaf3c81024f0a604a", + "reference": "063d9aa8696582f5a41dffbbaf3c81024f0a604a", "shasum": "" }, "require": { @@ -1121,7 +1125,7 @@ }, "require-dev": { "phpstan/phpstan": "^1.10", - "psr/log": "^1.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", "symfony/phpunit-bridge": "^4.2 || ^5", "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, @@ -1158,7 +1162,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.5.0" + "source": "https://github.com/composer/ca-bundle/tree/1.5.1" }, "funding": [ { @@ -1174,7 +1178,7 @@ "type": "tidelift" } ], - "time": "2024-03-15T14:00:32+00:00" + "time": "2024-07-08T15:28:20+00:00" }, { "name": "dasprid/enum", @@ -1287,16 +1291,16 @@ }, { "name": "dflydev/dot-access-data", - "version": "v3.0.2", + "version": "v3.0.3", "source": { "type": "git", "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "f41715465d65213d644d3141a6a93081be5d3549" + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", - "reference": "f41715465d65213d644d3141a6a93081be5d3549", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f", "shasum": "" }, "require": { @@ -1356,9 +1360,9 @@ ], "support": { "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", - "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3" }, - "time": "2022-10-27T11:44:00+00:00" + "time": "2024-07-08T12:26:09+00:00" }, { "name": "doctrine/dbal", @@ -2512,34 +2516,34 @@ }, { "name": "google/apiclient", - "version": "v2.16.0", + "version": "v2.17.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-api-php-client.git", - "reference": "017400f609c1fb71ab5ad824c50eabd4c3eaf779" + "reference": "b1f63d72c44307ec8ef7bf18f1012de35d8944ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/017400f609c1fb71ab5ad824c50eabd4c3eaf779", - "reference": "017400f609c1fb71ab5ad824c50eabd4c3eaf779", + "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/b1f63d72c44307ec8ef7bf18f1012de35d8944ed", + "reference": "b1f63d72c44307ec8ef7bf18f1012de35d8944ed", "shasum": "" }, "require": { - "firebase/php-jwt": "~6.0", + "firebase/php-jwt": "^6.0", "google/apiclient-services": "~0.350", "google/auth": "^1.37", - "guzzlehttp/guzzle": "^6.5.8||^7.4.5", - "guzzlehttp/psr7": "^1.9.1||^2.2.1", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.6", "monolog/monolog": "^2.9||^3.0", - "php": "^7.4|^8.0", + "php": "^8.0", "phpseclib/phpseclib": "^3.0.36" }, "require-dev": { "cache/filesystem-adapter": "^1.1", "composer/composer": "^1.10.23", "phpcompatibility/php-compatibility": "^9.2", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5", + "phpspec/prophecy-phpunit": "^2.1", + "phpunit/phpunit": "^9.6", "squizlabs/php_codesniffer": "^3.8", "symfony/css-selector": "~2.1", "symfony/dom-crawler": "~2.1" @@ -2575,22 +2579,22 @@ ], "support": { "issues": "https://github.com/googleapis/google-api-php-client/issues", - "source": "https://github.com/googleapis/google-api-php-client/tree/v2.16.0" + "source": "https://github.com/googleapis/google-api-php-client/tree/v2.17.0" }, - "time": "2024-04-24T00:59:47+00:00" + "time": "2024-07-10T14:57:54+00:00" }, { "name": "google/apiclient-services", - "version": "v0.361.0", + "version": "v0.365.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-api-php-client-services.git", - "reference": "f90e9a059ce5a6076b4fc8571a4fac6564012782" + "reference": "edc08087aa3ca63d3b74f24d59f1d2caab39b5d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/f90e9a059ce5a6076b4fc8571a4fac6564012782", - "reference": "f90e9a059ce5a6076b4fc8571a4fac6564012782", + "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/edc08087aa3ca63d3b74f24d59f1d2caab39b5d9", + "reference": "edc08087aa3ca63d3b74f24d59f1d2caab39b5d9", "shasum": "" }, "require": { @@ -2619,22 +2623,22 @@ ], "support": { "issues": "https://github.com/googleapis/google-api-php-client-services/issues", - "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.361.0" + "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.365.0" }, - "time": "2024-06-23T01:02:19+00:00" + "time": "2024-07-11T01:08:44+00:00" }, { "name": "google/auth", - "version": "v1.40.0", + "version": "v1.41.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-auth-library-php.git", - "reference": "bff9f2d01677e71a98394b5ac981b99523df5178" + "reference": "1043ea18fe7f5dfbf5b208ce3ee6d6b6ab8cb038" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/bff9f2d01677e71a98394b5ac981b99523df5178", - "reference": "bff9f2d01677e71a98394b5ac981b99523df5178", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/1043ea18fe7f5dfbf5b208ce3ee6d6b6ab8cb038", + "reference": "1043ea18fe7f5dfbf5b208ce3ee6d6b6ab8cb038", "shasum": "" }, "require": { @@ -2679,30 +2683,30 @@ "support": { "docs": "https://googleapis.github.io/google-auth-library-php/main/", "issues": "https://github.com/googleapis/google-auth-library-php/issues", - "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.40.0" + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.41.0" }, - "time": "2024-05-31T19:16:15+00:00" + "time": "2024-07-10T15:21:07+00:00" }, { "name": "graham-campbell/result-type", - "version": "v1.1.2", + "version": "v1.1.3", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862" + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862", - "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.2" + "phpoption/phpoption": "^1.9.3" }, "require-dev": { - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" }, "type": "library", "autoload": { @@ -2731,7 +2735,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" }, "funding": [ { @@ -2743,7 +2747,7 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:16:48+00:00" + "time": "2024-07-20T21:45:45+00:00" }, { "name": "graylog2/gelf-php", @@ -2800,22 +2804,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.8.1", + "version": "7.9.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" + "reference": "a629e5b69db96eb4939c1b34114130077dd4c6fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a629e5b69db96eb4939c1b34114130077dd4c6fc", + "reference": "a629e5b69db96eb4939c1b34114130077dd4c6fc", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.1", - "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "guzzlehttp/promises": "^1.5.3 || ^2.0.3", + "guzzlehttp/psr7": "^2.7.0", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -2826,9 +2830,9 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "guzzle/client-integration-tests": "3.0.2", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -2906,7 +2910,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.1" + "source": "https://github.com/guzzle/guzzle/tree/7.9.1" }, "funding": [ { @@ -2922,20 +2926,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:35:24+00:00" + "time": "2024-07-19T16:19:57+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" + "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", + "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", "shasum": "" }, "require": { @@ -2943,7 +2947,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "type": "library", "extra": { @@ -2989,7 +2993,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.2" + "source": "https://github.com/guzzle/promises/tree/2.0.3" }, "funding": [ { @@ -3005,20 +3009,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:19:20+00:00" + "time": "2024-07-18T10:29:17+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.6.2", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", "shasum": "" }, "require": { @@ -3033,8 +3037,8 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -3105,7 +3109,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6.2" + "source": "https://github.com/guzzle/psr7/tree/2.7.0" }, "funding": [ { @@ -3121,7 +3125,7 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:05:35+00:00" + "time": "2024-07-18T11:15:46+00:00" }, { "name": "guzzlehttp/uri-template", @@ -3609,16 +3613,16 @@ }, { "name": "horstoeko/zugferd", - "version": "v1.0.56", + "version": "v1.0.57", "source": { "type": "git", "url": "https://github.com/horstoeko/zugferd.git", - "reference": "ae34e6450d125850c5c001100b459d46e9b37150" + "reference": "272e9baf94156496e0d7119616a9449b71f329d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/horstoeko/zugferd/zipball/ae34e6450d125850c5c001100b459d46e9b37150", - "reference": "ae34e6450d125850c5c001100b459d46e9b37150", + "url": "https://api.github.com/repos/horstoeko/zugferd/zipball/272e9baf94156496e0d7119616a9449b71f329d6", + "reference": "272e9baf94156496e0d7119616a9449b71f329d6", "shasum": "" }, "require": { @@ -3678,9 +3682,9 @@ ], "support": { "issues": "https://github.com/horstoeko/zugferd/issues", - "source": "https://github.com/horstoeko/zugferd/tree/v1.0.56" + "source": "https://github.com/horstoeko/zugferd/tree/v1.0.57" }, - "time": "2024-06-15T05:49:47+00:00" + "time": "2024-07-10T03:39:20+00:00" }, { "name": "horstoeko/zugferdvisualizer", @@ -3788,16 +3792,16 @@ }, { "name": "imdhemy/appstore-iap", - "version": "1.6.1", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/imdhemy/appstore-iap.git", - "reference": "025d176a097b864f306dad7dc3506598aa6e5990" + "reference": "c82aa2ad083c8029121ca4062c0bd494c09746c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/imdhemy/appstore-iap/zipball/025d176a097b864f306dad7dc3506598aa6e5990", - "reference": "025d176a097b864f306dad7dc3506598aa6e5990", + "url": "https://api.github.com/repos/imdhemy/appstore-iap/zipball/c82aa2ad083c8029121ca4062c0bd494c09746c1", + "reference": "c82aa2ad083c8029121ca4062c0bd494c09746c1", "shasum": "" }, "require": { @@ -3805,9 +3809,10 @@ "ext-openssl": "*", "ext-sodium": "*", "guzzlehttp/guzzle": "^7.6.0", - "lcobucci/jwt": "^4.3", + "lcobucci/clock": "^3.0", + "lcobucci/jwt": "^5.3", "nesbot/carbon": "^2.66|^3.1", - "php": ">=8.0" + "php": ">=8.1" }, "require-dev": { "fakerphp/faker": "^1.22", @@ -3835,9 +3840,9 @@ "description": "PHP Appstore In-App Purchase implementation", "support": { "issues": "https://github.com/imdhemy/appstore-iap/issues", - "source": "https://github.com/imdhemy/appstore-iap/tree/1.6.1" + "source": "https://github.com/imdhemy/appstore-iap/tree/1.7.0" }, - "time": "2024-03-27T09:17:17+00:00" + "time": "2024-06-30T18:08:57+00:00" }, { "name": "imdhemy/google-play-billing", @@ -3892,16 +3897,16 @@ }, { "name": "imdhemy/laravel-purchases", - "version": "1.12.1", + "version": "1.13.0", "source": { "type": "git", "url": "https://github.com/imdhemy/laravel-in-app-purchases.git", - "reference": "487cc34363a598f18a6db89b3b3eebb97974e337" + "reference": "ec62ab94727b22b262f79e05ece0bd92a919e9d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/imdhemy/laravel-in-app-purchases/zipball/487cc34363a598f18a6db89b3b3eebb97974e337", - "reference": "487cc34363a598f18a6db89b3b3eebb97974e337", + "url": "https://api.github.com/repos/imdhemy/laravel-in-app-purchases/zipball/ec62ab94727b22b262f79e05ece0bd92a919e9d4", + "reference": "ec62ab94727b22b262f79e05ece0bd92a919e9d4", "shasum": "" }, "require": { @@ -3910,7 +3915,7 @@ "imdhemy/appstore-iap": "^1.6", "imdhemy/google-play-billing": "^1.5", "laravel/framework": ">=8.0", - "php": ">=8.0" + "php": ">=8.1" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.14", @@ -3957,7 +3962,7 @@ ], "support": { "issues": "https://github.com/imdhemy/laravel-in-app-purchases/issues", - "source": "https://github.com/imdhemy/laravel-in-app-purchases/tree/1.12.1" + "source": "https://github.com/imdhemy/laravel-in-app-purchases/tree/1.13.0" }, "funding": [ { @@ -3965,7 +3970,7 @@ "type": "github" } ], - "time": "2024-06-11T12:40:12+00:00" + "time": "2024-06-30T11:32:33+00:00" }, { "name": "intervention/image", @@ -4057,12 +4062,12 @@ "source": { "type": "git", "url": "https://github.com/invoiceninja/einvoice.git", - "reference": "468a2a3696e76b1216a129e79177eb7c16ea9bdb" + "reference": "d4f80316744bbd31245900ec9799a6f66a663ed6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/invoiceninja/einvoice/zipball/468a2a3696e76b1216a129e79177eb7c16ea9bdb", - "reference": "468a2a3696e76b1216a129e79177eb7c16ea9bdb", + "url": "https://api.github.com/repos/invoiceninja/einvoice/zipball/d4f80316744bbd31245900ec9799a6f66a663ed6", + "reference": "d4f80316744bbd31245900ec9799a6f66a663ed6", "shasum": "" }, "require": { @@ -4104,7 +4109,7 @@ "source": "https://github.com/invoiceninja/einvoice/tree/main", "issues": "https://github.com/invoiceninja/einvoice/issues" }, - "time": "2024-06-19T00:29:39+00:00" + "time": "2024-07-22T02:40:27+00:00" }, { "name": "invoiceninja/inspector", @@ -4609,16 +4614,16 @@ }, { "name": "laravel/framework", - "version": "v11.13.0", + "version": "v11.16.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "92deaa4f037ff100e36809443811301819a8cf84" + "reference": "bd4808aaf103ccb5cb4b00bcee46140c070c0ec4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/92deaa4f037ff100e36809443811301819a8cf84", - "reference": "92deaa4f037ff100e36809443811301819a8cf84", + "url": "https://api.github.com/repos/laravel/framework/zipball/bd4808aaf103ccb5cb4b00bcee46140c070c0ec4", + "reference": "bd4808aaf103ccb5cb4b00bcee46140c070c0ec4", "shasum": "" }, "require": { @@ -4671,6 +4676,7 @@ }, "provide": { "psr/container-implementation": "1.1|2.0", + "psr/log-implementation": "1.0|2.0|3.0", "psr/simple-cache-implementation": "1.0|2.0|3.0" }, "replace": { @@ -4723,7 +4729,7 @@ "nyholm/psr7": "^1.2", "orchestra/testbench-core": "^9.1.5", "pda/pheanstalk": "^5.0", - "phpstan/phpstan": "^1.4.7", + "phpstan/phpstan": "^1.11.5", "phpunit/phpunit": "^10.5|^11.0", "predis/predis": "^2.0.2", "resend/resend-php": "^0.10.0", @@ -4810,20 +4816,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-06-27T09:04:50+00:00" + "time": "2024-07-16T14:33:07+00:00" }, { "name": "laravel/pint", - "version": "v1.16.1", + "version": "v1.16.2", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "9266a47f1b9231b83e0cfd849009547329d871b1" + "reference": "51f1ba679a6afe0315621ad143d788bd7ded0eca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/9266a47f1b9231b83e0cfd849009547329d871b1", - "reference": "9266a47f1b9231b83e0cfd849009547329d871b1", + "url": "https://api.github.com/repos/laravel/pint/zipball/51f1ba679a6afe0315621ad143d788bd7ded0eca", + "reference": "51f1ba679a6afe0315621ad143d788bd7ded0eca", "shasum": "" }, "require": { @@ -4876,7 +4882,7 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2024-06-18T16:50:05+00:00" + "time": "2024-07-09T15:58:08+00:00" }, { "name": "laravel/prompts", @@ -5063,16 +5069,16 @@ }, { "name": "laravel/socialite", - "version": "v5.15.0", + "version": "v5.15.1", "source": { "type": "git", "url": "https://github.com/laravel/socialite.git", - "reference": "c8234bfb286a8210df8d62f94562c71bfda4a446" + "reference": "cc02625f0bd1f95dc3688eb041cce0f1e709d029" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/socialite/zipball/c8234bfb286a8210df8d62f94562c71bfda4a446", - "reference": "c8234bfb286a8210df8d62f94562c71bfda4a446", + "url": "https://api.github.com/repos/laravel/socialite/zipball/cc02625f0bd1f95dc3688eb041cce0f1e709d029", + "reference": "cc02625f0bd1f95dc3688eb041cce0f1e709d029", "shasum": "" }, "require": { @@ -5131,7 +5137,7 @@ "issues": "https://github.com/laravel/socialite/issues", "source": "https://github.com/laravel/socialite" }, - "time": "2024-06-11T13:33:20+00:00" + "time": "2024-06-28T20:09:34+00:00" }, { "name": "laravel/tinker", @@ -5328,39 +5334,38 @@ }, { "name": "lcobucci/jwt", - "version": "4.3.0", + "version": "5.3.0", "source": { "type": "git", "url": "https://github.com/lcobucci/jwt.git", - "reference": "4d7de2fe0d51a96418c0d04004986e410e87f6b4" + "reference": "08071d8d2c7f4b00222cc4b1fb6aa46990a80f83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/jwt/zipball/4d7de2fe0d51a96418c0d04004986e410e87f6b4", - "reference": "4d7de2fe0d51a96418c0d04004986e410e87f6b4", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/08071d8d2c7f4b00222cc4b1fb6aa46990a80f83", + "reference": "08071d8d2c7f4b00222cc4b1fb6aa46990a80f83", "shasum": "" }, "require": { - "ext-hash": "*", - "ext-json": "*", - "ext-mbstring": "*", "ext-openssl": "*", "ext-sodium": "*", - "lcobucci/clock": "^2.0 || ^3.0", - "php": "^7.4 || ^8.0" + "php": "~8.1.0 || ~8.2.0 || ~8.3.0", + "psr/clock": "^1.0" }, "require-dev": { - "infection/infection": "^0.21", - "lcobucci/coding-standard": "^6.0", - "mikey179/vfsstream": "^1.6.7", - "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-phpunit": "^1.0", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/php-invoker": "^3.1", - "phpunit/phpunit": "^9.5" + "infection/infection": "^0.27.0", + "lcobucci/clock": "^3.0", + "lcobucci/coding-standard": "^11.0", + "phpbench/phpbench": "^1.2.9", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.10.7", + "phpstan/phpstan-deprecation-rules": "^1.1.3", + "phpstan/phpstan-phpunit": "^1.3.10", + "phpstan/phpstan-strict-rules": "^1.5.0", + "phpunit/phpunit": "^10.2.6" + }, + "suggest": { + "lcobucci/clock": ">= 3.0" }, "type": "library", "autoload": { @@ -5386,7 +5391,7 @@ ], "support": { "issues": "https://github.com/lcobucci/jwt/issues", - "source": "https://github.com/lcobucci/jwt/tree/4.3.0" + "source": "https://github.com/lcobucci/jwt/tree/5.3.0" }, "funding": [ { @@ -5398,7 +5403,7 @@ "type": "patreon" } ], - "time": "2023-01-02T13:28:00+00:00" + "time": "2024-04-11T23:07:54+00:00" }, { "name": "league/commonmark", @@ -6130,16 +6135,16 @@ }, { "name": "livewire/livewire", - "version": "v3.5.1", + "version": "v3.5.4", "source": { "type": "git", "url": "https://github.com/livewire/livewire.git", - "reference": "da044261bb5c5449397f18fda3409f14acf47c0a" + "reference": "b158c6386a892efc6c5e4682e682829baac1f933" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/da044261bb5c5449397f18fda3409f14acf47c0a", - "reference": "da044261bb5c5449397f18fda3409f14acf47c0a", + "url": "https://api.github.com/repos/livewire/livewire/zipball/b158c6386a892efc6c5e4682e682829baac1f933", + "reference": "b158c6386a892efc6c5e4682e682829baac1f933", "shasum": "" }, "require": { @@ -6194,7 +6199,7 @@ "description": "A front-end framework for Laravel.", "support": { "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v3.5.1" + "source": "https://github.com/livewire/livewire/tree/v3.5.4" }, "funding": [ { @@ -6202,7 +6207,7 @@ "type": "github" } ], - "time": "2024-06-18T11:10:42+00:00" + "time": "2024-07-15T18:27:32+00:00" }, { "name": "maennchen/zipstream-php", @@ -6513,16 +6518,16 @@ }, { "name": "mollie/mollie-api-php", - "version": "v2.69.0", + "version": "v2.71.0", "source": { "type": "git", "url": "https://github.com/mollie/mollie-api-php.git", - "reference": "9a53f8bd6c89ae3e62982921a2f9d8ed68f9900d" + "reference": "dff324f0621ff134fbefffa42ee511833a58578f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mollie/mollie-api-php/zipball/9a53f8bd6c89ae3e62982921a2f9d8ed68f9900d", - "reference": "9a53f8bd6c89ae3e62982921a2f9d8ed68f9900d", + "url": "https://api.github.com/repos/mollie/mollie-api-php/zipball/dff324f0621ff134fbefffa42ee511833a58578f", + "reference": "dff324f0621ff134fbefffa42ee511833a58578f", "shasum": "" }, "require": { @@ -6599,9 +6604,9 @@ ], "support": { "issues": "https://github.com/mollie/mollie-api-php/issues", - "source": "https://github.com/mollie/mollie-api-php/tree/v2.69.0" + "source": "https://github.com/mollie/mollie-api-php/tree/v2.71.0" }, - "time": "2024-06-24T11:52:46+00:00" + "time": "2024-07-17T08:02:14+00:00" }, { "name": "moneyphp/money", @@ -6693,16 +6698,16 @@ }, { "name": "monolog/monolog", - "version": "3.6.0", + "version": "3.7.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654" + "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", - "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f4393b648b78a5408747de94fca38beb5f7e9ef8", + "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8", "shasum": "" }, "require": { @@ -6778,7 +6783,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.6.0" + "source": "https://github.com/Seldaek/monolog/tree/3.7.0" }, "funding": [ { @@ -6790,7 +6795,7 @@ "type": "tidelift" } ], - "time": "2024-04-12T21:02:21+00:00" + "time": "2024-06-28T09:40:51+00:00" }, { "name": "mpdf/mpdf", @@ -7166,16 +7171,16 @@ }, { "name": "nesbot/carbon", - "version": "3.6.0", + "version": "3.7.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "39c8ef752db6865717cc3fba63970c16f057982c" + "reference": "cb4374784c87d0a0294e8513a52eb63c0aff3139" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/39c8ef752db6865717cc3fba63970c16f057982c", - "reference": "39c8ef752db6865717cc3fba63970c16f057982c", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/cb4374784c87d0a0294e8513a52eb63c0aff3139", + "reference": "cb4374784c87d0a0294e8513a52eb63c0aff3139", "shasum": "" }, "require": { @@ -7268,7 +7273,7 @@ "type": "tidelift" } ], - "time": "2024-06-20T15:52:59+00:00" + "time": "2024-07-16T22:29:20+00:00" }, { "name": "nette/schema", @@ -7420,16 +7425,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.0.2", + "version": "v5.1.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" + "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/683130c2ff8c2739f4822ff7ac5c873ec529abd1", + "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1", "shasum": "" }, "require": { @@ -7440,7 +7445,7 @@ }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -7472,9 +7477,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.1.0" }, - "time": "2024-03-05T20:51:40+00:00" + "time": "2024-07-01T20:03:41+00:00" }, { "name": "nordigen/nordigen-php", @@ -8947,16 +8952,16 @@ }, { "name": "phpoption/phpoption", - "version": "1.9.2", + "version": "1.9.3", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820" + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820", - "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", "shasum": "" }, "require": { @@ -8964,13 +8969,13 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" }, "type": "library", "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { "dev-master": "1.9-dev" @@ -9006,7 +9011,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.2" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" }, "funding": [ { @@ -9018,7 +9023,7 @@ "type": "tidelift" } ], - "time": "2023-11-12T21:59:55+00:00" + "time": "2024-07-20T21:41:07+00:00" }, { "name": "phpseclib/phpseclib", @@ -10183,16 +10188,16 @@ }, { "name": "rmccue/requests", - "version": "v2.0.11", + "version": "v2.0.12", "source": { "type": "git", "url": "https://github.com/WordPress/Requests.git", - "reference": "31435a468e2357e68df743f2527bda32556a0818" + "reference": "fb67e3d392ff6b89a90e96f19745662f4ecd62b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/Requests/zipball/31435a468e2357e68df743f2527bda32556a0818", - "reference": "31435a468e2357e68df743f2527bda32556a0818", + "url": "https://api.github.com/repos/WordPress/Requests/zipball/fb67e3d392ff6b89a90e96f19745662f4ecd62b1", + "reference": "fb67e3d392ff6b89a90e96f19745662f4ecd62b1", "shasum": "" }, "require": { @@ -10266,20 +10271,20 @@ "issues": "https://github.com/WordPress/Requests/issues", "source": "https://github.com/WordPress/Requests" }, - "time": "2024-03-25T10:48:46+00:00" + "time": "2024-07-08T08:10:42+00:00" }, { "name": "sabberworm/php-css-parser", - "version": "v8.5.1", + "version": "v8.6.0", "source": { "type": "git", "url": "https://github.com/MyIntervals/PHP-CSS-Parser.git", - "reference": "4a3d572b0f8b28bb6fd016ae8bbfc445facef152" + "reference": "d2fb94a9641be84d79c7548c6d39bbebba6e9a70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/4a3d572b0f8b28bb6fd016ae8bbfc445facef152", - "reference": "4a3d572b0f8b28bb6fd016ae8bbfc445facef152", + "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/d2fb94a9641be84d79c7548c6d39bbebba6e9a70", + "reference": "d2fb94a9641be84d79c7548c6d39bbebba6e9a70", "shasum": "" }, "require": { @@ -10329,9 +10334,9 @@ ], "support": { "issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues", - "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.5.1" + "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.6.0" }, - "time": "2024-02-15T16:41:13+00:00" + "time": "2024-07-01T07:33:21+00:00" }, { "name": "sabre/uri", @@ -10464,16 +10469,16 @@ }, { "name": "sentry/sentry", - "version": "4.8.0", + "version": "4.8.1", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-php.git", - "reference": "3cf5778ff425a23f2d22ed41b423691d36f47163" + "reference": "61770efd8b7888e0bdd7d234f0ba67b066e47d04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/3cf5778ff425a23f2d22ed41b423691d36f47163", - "reference": "3cf5778ff425a23f2d22ed41b423691d36f47163", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/61770efd8b7888e0bdd7d234f0ba67b066e47d04", + "reference": "61770efd8b7888e0bdd7d234f0ba67b066e47d04", "shasum": "" }, "require": { @@ -10537,7 +10542,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-php/issues", - "source": "https://github.com/getsentry/sentry-php/tree/4.8.0" + "source": "https://github.com/getsentry/sentry-php/tree/4.8.1" }, "funding": [ { @@ -10549,20 +10554,20 @@ "type": "custom" } ], - "time": "2024-06-05T13:18:43+00:00" + "time": "2024-07-16T13:45:27+00:00" }, { "name": "sentry/sentry-laravel", - "version": "4.6.1", + "version": "4.7.1", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-laravel.git", - "reference": "7f5fd9f362e440c4c0c492f386b93095321f9101" + "reference": "d70415f19f35806acee5bcbc7403e9cb8fb5252c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/7f5fd9f362e440c4c0c492f386b93095321f9101", - "reference": "7f5fd9f362e440c4c0c492f386b93095321f9101", + "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/d70415f19f35806acee5bcbc7403e9cb8fb5252c", + "reference": "d70415f19f35806acee5bcbc7403e9cb8fb5252c", "shasum": "" }, "require": { @@ -10626,7 +10631,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-laravel/issues", - "source": "https://github.com/getsentry/sentry-laravel/tree/4.6.1" + "source": "https://github.com/getsentry/sentry-laravel/tree/4.7.1" }, "funding": [ { @@ -10638,7 +10643,7 @@ "type": "custom" } ], - "time": "2024-06-18T15:06:09+00:00" + "time": "2024-07-17T13:27:43+00:00" }, { "name": "setasign/fpdf", @@ -10960,16 +10965,16 @@ }, { "name": "socialiteproviders/microsoft", - "version": "4.3.0", + "version": "4.5.1", "source": { "type": "git", "url": "https://github.com/SocialiteProviders/Microsoft.git", - "reference": "9cda621d75b8681b9c0a015a766f05aa5d29d1d0" + "reference": "9f55e544f183c36096a14b2e61b5d6c9dc23961e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/SocialiteProviders/Microsoft/zipball/9cda621d75b8681b9c0a015a766f05aa5d29d1d0", - "reference": "9cda621d75b8681b9c0a015a766f05aa5d29d1d0", + "url": "https://api.github.com/repos/SocialiteProviders/Microsoft/zipball/9f55e544f183c36096a14b2e61b5d6c9dc23961e", + "reference": "9f55e544f183c36096a14b2e61b5d6c9dc23961e", "shasum": "" }, "require": { @@ -11006,7 +11011,7 @@ "issues": "https://github.com/socialiteproviders/providers/issues", "source": "https://github.com/socialiteproviders/providers" }, - "time": "2024-05-13T22:57:35+00:00" + "time": "2024-07-12T02:43:55+00:00" }, { "name": "sprain/swiss-qr-bill", @@ -11337,16 +11342,16 @@ }, { "name": "symfony/console", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "9b008f2d7b21c74ef4d0c3de6077a642bc55ece3" + "reference": "0aa29ca177f432ab68533432db0de059f39c92ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/9b008f2d7b21c74ef4d0c3de6077a642bc55ece3", - "reference": "9b008f2d7b21c74ef4d0c3de6077a642bc55ece3", + "url": "https://api.github.com/repos/symfony/console/zipball/0aa29ca177f432ab68533432db0de059f39c92ae", + "reference": "0aa29ca177f432ab68533432db0de059f39c92ae", "shasum": "" }, "require": { @@ -11410,7 +11415,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.1" + "source": "https://github.com/symfony/console/tree/v7.1.2" }, "funding": [ { @@ -11426,7 +11431,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-06-28T10:03:55+00:00" }, { "name": "symfony/css-selector", @@ -11562,16 +11567,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "e9b8bbce0b4f322939332ab7b6b81d8c11da27dd" + "reference": "2412d3dddb5c9ea51a39cfbff1c565fc9844ca32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/e9b8bbce0b4f322939332ab7b6b81d8c11da27dd", - "reference": "e9b8bbce0b4f322939332ab7b6b81d8c11da27dd", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/2412d3dddb5c9ea51a39cfbff1c565fc9844ca32", + "reference": "2412d3dddb5c9ea51a39cfbff1c565fc9844ca32", "shasum": "" }, "require": { @@ -11617,7 +11622,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.1.1" + "source": "https://github.com/symfony/error-handler/tree/v7.1.2" }, "funding": [ { @@ -11633,7 +11638,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-06-25T19:55:06+00:00" }, { "name": "symfony/event-dispatcher", @@ -11793,16 +11798,16 @@ }, { "name": "symfony/filesystem", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "802e87002f919296c9f606457d9fa327a0b3d6b2" + "reference": "92a91985250c251de9b947a14bb2c9390b1a562c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/802e87002f919296c9f606457d9fa327a0b3d6b2", - "reference": "802e87002f919296c9f606457d9fa327a0b3d6b2", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/92a91985250c251de9b947a14bb2c9390b1a562c", + "reference": "92a91985250c251de9b947a14bb2c9390b1a562c", "shasum": "" }, "require": { @@ -11839,7 +11844,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.1.1" + "source": "https://github.com/symfony/filesystem/tree/v7.1.2" }, "funding": [ { @@ -11855,7 +11860,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-06-28T10:03:55+00:00" }, { "name": "symfony/finder", @@ -11923,16 +11928,16 @@ }, { "name": "symfony/http-client", - "version": "v6.4.8", + "version": "v6.4.9", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05" + "reference": "6e9db0025db565bcf8f1d46ed734b549e51e6045" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05", - "reference": "61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05", + "url": "https://api.github.com/repos/symfony/http-client/zipball/6e9db0025db565bcf8f1d46ed734b549e51e6045", + "reference": "6e9db0025db565bcf8f1d46ed734b549e51e6045", "shasum": "" }, "require": { @@ -11996,7 +12001,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.4.8" + "source": "https://github.com/symfony/http-client/tree/v6.4.9" }, "funding": [ { @@ -12012,7 +12017,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-06-28T07:59:05+00:00" }, { "name": "symfony/http-client-contracts", @@ -12171,16 +12176,16 @@ }, { "name": "symfony/http-kernel", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "fa8d1c75b5f33b1302afccf81811f93976c6e26f" + "reference": "ae3fa717db4d41a55d14c2bd92399e37cf5bc0f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fa8d1c75b5f33b1302afccf81811f93976c6e26f", - "reference": "fa8d1c75b5f33b1302afccf81811f93976c6e26f", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ae3fa717db4d41a55d14c2bd92399e37cf5bc0f6", + "reference": "ae3fa717db4d41a55d14c2bd92399e37cf5bc0f6", "shasum": "" }, "require": { @@ -12265,7 +12270,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.1.1" + "source": "https://github.com/symfony/http-kernel/tree/v7.1.2" }, "funding": [ { @@ -12281,7 +12286,7 @@ "type": "tidelift" } ], - "time": "2024-06-04T06:52:15+00:00" + "time": "2024-06-28T13:13:31+00:00" }, { "name": "symfony/intl", @@ -12371,16 +12376,16 @@ }, { "name": "symfony/mailer", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "2eaad2e167cae930f25a3d731fec8b2ded5e751e" + "reference": "8fcff0af9043c8f8a8e229437cea363e282f9aee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/2eaad2e167cae930f25a3d731fec8b2ded5e751e", - "reference": "2eaad2e167cae930f25a3d731fec8b2ded5e751e", + "url": "https://api.github.com/repos/symfony/mailer/zipball/8fcff0af9043c8f8a8e229437cea363e282f9aee", + "reference": "8fcff0af9043c8f8a8e229437cea363e282f9aee", "shasum": "" }, "require": { @@ -12431,7 +12436,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.1.1" + "source": "https://github.com/symfony/mailer/tree/v7.1.2" }, "funding": [ { @@ -12447,20 +12452,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-06-28T08:00:31+00:00" }, { "name": "symfony/mailgun-mailer", - "version": "v6.4.8", + "version": "v6.4.9", "source": { "type": "git", "url": "https://github.com/symfony/mailgun-mailer.git", - "reference": "748e534d760f9a9318319cbd2adec7c05055ee3c" + "reference": "c4917eb14f31fb5c21442375c6baf7f51bd924e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/748e534d760f9a9318319cbd2adec7c05055ee3c", - "reference": "748e534d760f9a9318319cbd2adec7c05055ee3c", + "url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/c4917eb14f31fb5c21442375c6baf7f51bd924e8", + "reference": "c4917eb14f31fb5c21442375c6baf7f51bd924e8", "shasum": "" }, "require": { @@ -12500,7 +12505,7 @@ "description": "Symfony Mailgun Mailer Bridge", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailgun-mailer/tree/v6.4.8" + "source": "https://github.com/symfony/mailgun-mailer/tree/v6.4.9" }, "funding": [ { @@ -12516,20 +12521,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-06-28T07:59:05+00:00" }, { "name": "symfony/mime", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "21027eaacc1a8a20f5e616c25c3580f5dd3a15df" + "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/21027eaacc1a8a20f5e616c25c3580f5dd3a15df", - "reference": "21027eaacc1a8a20f5e616c25c3580f5dd3a15df", + "url": "https://api.github.com/repos/symfony/mime/zipball/26a00b85477e69a4bab63b66c5dce64f18b0cbfc", + "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc", "shasum": "" }, "require": { @@ -12584,7 +12589,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.1.1" + "source": "https://github.com/symfony/mime/tree/v7.1.2" }, "funding": [ { @@ -12600,7 +12605,7 @@ "type": "tidelift" } ], - "time": "2024-06-04T06:40:14+00:00" + "time": "2024-06-28T10:03:55+00:00" }, { "name": "symfony/options-resolver", @@ -13672,16 +13677,16 @@ }, { "name": "symfony/property-info", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "0f80f818c6728f15de30a4f89866d68e4912ae84" + "reference": "d7b91e4aa07e822a9b935fc29a7254c12d502f16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/0f80f818c6728f15de30a4f89866d68e4912ae84", - "reference": "0f80f818c6728f15de30a4f89866d68e4912ae84", + "url": "https://api.github.com/repos/symfony/property-info/zipball/d7b91e4aa07e822a9b935fc29a7254c12d502f16", + "reference": "d7b91e4aa07e822a9b935fc29a7254c12d502f16", "shasum": "" }, "require": { @@ -13736,7 +13741,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v7.1.1" + "source": "https://github.com/symfony/property-info/tree/v7.1.2" }, "funding": [ { @@ -13752,7 +13757,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-06-26T07:21:35+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -13920,16 +13925,16 @@ }, { "name": "symfony/serializer", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "74817ee48e37cce1a1b33c66ffdb750e7e048c3c" + "reference": "d2077674aaaff02a95f290de512aa358947e6bbe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/74817ee48e37cce1a1b33c66ffdb750e7e048c3c", - "reference": "74817ee48e37cce1a1b33c66ffdb750e7e048c3c", + "url": "https://api.github.com/repos/symfony/serializer/zipball/d2077674aaaff02a95f290de512aa358947e6bbe", + "reference": "d2077674aaaff02a95f290de512aa358947e6bbe", "shasum": "" }, "require": { @@ -13997,7 +14002,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v7.1.1" + "source": "https://github.com/symfony/serializer/tree/v7.1.2" }, "funding": [ { @@ -14013,7 +14018,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-06-28T07:42:43+00:00" }, { "name": "symfony/service-contracts", @@ -14100,16 +14105,16 @@ }, { "name": "symfony/string", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "60bc311c74e0af215101235aa6f471bcbc032df2" + "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/60bc311c74e0af215101235aa6f471bcbc032df2", - "reference": "60bc311c74e0af215101235aa6f471bcbc032df2", + "url": "https://api.github.com/repos/symfony/string/zipball/14221089ac66cf82e3cf3d1c1da65de305587ff8", + "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8", "shasum": "" }, "require": { @@ -14167,7 +14172,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.1" + "source": "https://github.com/symfony/string/tree/v7.1.2" }, "funding": [ { @@ -14183,7 +14188,7 @@ "type": "tidelift" } ], - "time": "2024-06-04T06:40:14+00:00" + "time": "2024-06-28T09:27:18+00:00" }, { "name": "symfony/translation", @@ -14515,16 +14520,16 @@ }, { "name": "symfony/validator", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "fcab7598968b21c361becc930fcae8846638c4c0" + "reference": "bed12b7d5bd4dac452db5fa6203331c876b489e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/fcab7598968b21c361becc930fcae8846638c4c0", - "reference": "fcab7598968b21c361becc930fcae8846638c4c0", + "url": "https://api.github.com/repos/symfony/validator/zipball/bed12b7d5bd4dac452db5fa6203331c876b489e7", + "reference": "bed12b7d5bd4dac452db5fa6203331c876b489e7", "shasum": "" }, "require": { @@ -14592,7 +14597,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v7.1.1" + "source": "https://github.com/symfony/validator/tree/v7.1.2" }, "funding": [ { @@ -14608,20 +14613,20 @@ "type": "tidelift" } ], - "time": "2024-06-04T05:58:56+00:00" + "time": "2024-06-25T19:55:06+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "deb2c2b506ff6fdbb340e00b34e9901e1605f293" + "reference": "5857c57c6b4b86524c08cf4f4bc95327270a816d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/deb2c2b506ff6fdbb340e00b34e9901e1605f293", - "reference": "deb2c2b506ff6fdbb340e00b34e9901e1605f293", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/5857c57c6b4b86524c08cf4f4bc95327270a816d", + "reference": "5857c57c6b4b86524c08cf4f4bc95327270a816d", "shasum": "" }, "require": { @@ -14675,7 +14680,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.1.1" + "source": "https://github.com/symfony/var-dumper/tree/v7.1.2" }, "funding": [ { @@ -14691,7 +14696,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-06-28T08:00:31+00:00" }, { "name": "symfony/yaml", @@ -15078,23 +15083,23 @@ }, { "name": "vlucas/phpdotenv", - "version": "v5.6.0", + "version": "v5.6.1", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4" + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", - "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2", + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.1.2", + "graham-campbell/result-type": "^1.1.3", "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.2", + "phpoption/phpoption": "^1.9.3", "symfony/polyfill-ctype": "^1.24", "symfony/polyfill-mbstring": "^1.24", "symfony/polyfill-php80": "^1.24" @@ -15111,7 +15116,7 @@ "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { "dev-master": "5.6-dev" @@ -15146,7 +15151,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1" }, "funding": [ { @@ -15158,7 +15163,7 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:43:29+00:00" + "time": "2024-07-20T21:52:34+00:00" }, { "name": "voku/portable-ascii", @@ -15474,16 +15479,16 @@ }, { "name": "barryvdh/laravel-ide-helper", - "version": "v3.0.0", + "version": "v3.1.0", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-ide-helper.git", - "reference": "bc1d67f01ce8c77e3f97d48ba51fa1d81874f622" + "reference": "591e7d665fbab8a3b682e451641706341573eb80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/bc1d67f01ce8c77e3f97d48ba51fa1d81874f622", - "reference": "bc1d67f01ce8c77e3f97d48ba51fa1d81874f622", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/591e7d665fbab8a3b682e451641706341573eb80", + "reference": "591e7d665fbab8a3b682e451641706341573eb80", "shasum": "" }, "require": { @@ -15515,7 +15520,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1-dev" }, "laravel": { "providers": [ @@ -15552,7 +15557,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", - "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.0.0" + "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.1.0" }, "funding": [ { @@ -15564,7 +15569,7 @@ "type": "github" } ], - "time": "2024-03-01T12:53:18+00:00" + "time": "2024-07-12T14:20:51+00:00" }, { "name": "barryvdh/reflection-docblock", @@ -15922,16 +15927,16 @@ }, { "name": "composer/semver", - "version": "3.4.0", + "version": "3.4.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "url": "https://api.github.com/repos/composer/semver/zipball/c51258e759afdb17f1fd1fe83bc12baaef6309d6", + "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6", "shasum": "" }, "require": { @@ -15983,7 +15988,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.0" + "source": "https://github.com/composer/semver/tree/3.4.2" }, "funding": [ { @@ -15999,7 +16004,7 @@ "type": "tidelift" } ], - "time": "2023-08-31T09:50:34+00:00" + "time": "2024-07-12T11:35:52+00:00" }, { "name": "composer/xdebug-handler", @@ -16461,16 +16466,16 @@ }, { "name": "larastan/larastan", - "version": "v2.9.7", + "version": "v2.9.8", "source": { "type": "git", "url": "https://github.com/larastan/larastan.git", - "reference": "5c805f636095cc2e0b659e3954775cf8f1dad1bb" + "reference": "340badd89b0eb5bddbc503a4829c08cf9a2819d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/larastan/larastan/zipball/5c805f636095cc2e0b659e3954775cf8f1dad1bb", - "reference": "5c805f636095cc2e0b659e3954775cf8f1dad1bb", + "url": "https://api.github.com/repos/larastan/larastan/zipball/340badd89b0eb5bddbc503a4829c08cf9a2819d7", + "reference": "340badd89b0eb5bddbc503a4829c08cf9a2819d7", "shasum": "" }, "require": { @@ -16484,7 +16489,7 @@ "illuminate/support": "^9.52.16 || ^10.28.0 || ^11.0", "php": "^8.0.2", "phpmyadmin/sql-parser": "^5.9.0", - "phpstan/phpstan": "^1.11.1" + "phpstan/phpstan": "^1.11.2" }, "require-dev": { "doctrine/coding-standard": "^12.0", @@ -16539,7 +16544,7 @@ ], "support": { "issues": "https://github.com/larastan/larastan/issues", - "source": "https://github.com/larastan/larastan/tree/v2.9.7" + "source": "https://github.com/larastan/larastan/tree/v2.9.8" }, "funding": [ { @@ -16559,7 +16564,7 @@ "type": "patreon" } ], - "time": "2024-05-27T18:33:26+00:00" + "time": "2024-07-06T17:46:02+00:00" }, { "name": "maximebf/debugbar", @@ -16714,38 +16719,38 @@ }, { "name": "nunomaduro/collision", - "version": "v8.1.1", + "version": "v8.3.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "13e5d538b95a744d85f447a321ce10adb28e9af9" + "reference": "b49f5b2891ce52726adfd162841c69d4e4c84229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/13e5d538b95a744d85f447a321ce10adb28e9af9", - "reference": "13e5d538b95a744d85f447a321ce10adb28e9af9", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/b49f5b2891ce52726adfd162841c69d4e4c84229", + "reference": "b49f5b2891ce52726adfd162841c69d4e4c84229", "shasum": "" }, "require": { "filp/whoops": "^2.15.4", "nunomaduro/termwind": "^2.0.1", "php": "^8.2.0", - "symfony/console": "^7.0.4" + "symfony/console": "^7.1.2" }, "conflict": { "laravel/framework": "<11.0.0 || >=12.0.0", "phpunit/phpunit": "<10.5.1 || >=12.0.0" }, "require-dev": { - "larastan/larastan": "^2.9.2", - "laravel/framework": "^11.0.0", - "laravel/pint": "^1.14.0", - "laravel/sail": "^1.28.2", - "laravel/sanctum": "^4.0.0", + "larastan/larastan": "^2.9.8", + "laravel/framework": "^11.16.0", + "laravel/pint": "^1.16.2", + "laravel/sail": "^1.30.2", + "laravel/sanctum": "^4.0.2", "laravel/tinker": "^2.9.0", - "orchestra/testbench-core": "^9.0.0", - "pestphp/pest": "^2.34.1 || ^3.0.0", - "sebastian/environment": "^6.0.1 || ^7.0.0" + "orchestra/testbench-core": "^9.2.1", + "pestphp/pest": "^2.34.9 || ^3.0.0", + "sebastian/environment": "^6.1.0 || ^7.0.0" }, "type": "library", "extra": { @@ -16807,7 +16812,7 @@ "type": "patreon" } ], - "time": "2024-03-06T16:20:09+00:00" + "time": "2024-07-16T22:41:01+00:00" }, { "name": "phar-io/manifest", @@ -17017,16 +17022,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.11.5", + "version": "1.11.7", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "490f0ae1c92b082f154681d7849aee776a7c1443" + "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/490f0ae1c92b082f154681d7849aee776a7c1443", - "reference": "490f0ae1c92b082f154681d7849aee776a7c1443", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/52d2bbfdcae7f895915629e4694e9497d0f8e28d", + "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d", "shasum": "" }, "require": { @@ -17071,20 +17076,20 @@ "type": "github" } ], - "time": "2024-06-17T15:10:54+00:00" + "time": "2024-07-06T11:17:41+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "10.1.14", + "version": "10.1.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b" + "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", - "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", + "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", "shasum": "" }, "require": { @@ -17141,7 +17146,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.15" }, "funding": [ { @@ -17149,7 +17154,7 @@ "type": "github" } ], - "time": "2024-03-12T15:33:41+00:00" + "time": "2024-06-29T08:25:15+00:00" }, { "name": "phpunit/php-file-iterator", @@ -17396,16 +17401,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.24", + "version": "10.5.28", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "5f124e3e3e561006047b532fd0431bf5bb6b9015" + "reference": "ff7fb85cdf88131b83e721fb2a327b664dbed275" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f124e3e3e561006047b532fd0431bf5bb6b9015", - "reference": "5f124e3e3e561006047b532fd0431bf5bb6b9015", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ff7fb85cdf88131b83e721fb2a327b664dbed275", + "reference": "ff7fb85cdf88131b83e721fb2a327b664dbed275", "shasum": "" }, "require": { @@ -17415,26 +17420,26 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", + "myclabs/deep-copy": "^1.12.0", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=8.1", - "phpunit/php-code-coverage": "^10.1.5", - "phpunit/php-file-iterator": "^4.0", - "phpunit/php-invoker": "^4.0", - "phpunit/php-text-template": "^3.0", - "phpunit/php-timer": "^6.0", - "sebastian/cli-parser": "^2.0", - "sebastian/code-unit": "^2.0", - "sebastian/comparator": "^5.0", - "sebastian/diff": "^5.0", - "sebastian/environment": "^6.0", - "sebastian/exporter": "^5.1", - "sebastian/global-state": "^6.0.1", - "sebastian/object-enumerator": "^5.0", - "sebastian/recursion-context": "^5.0", - "sebastian/type": "^4.0", - "sebastian/version": "^4.0" + "phpunit/php-code-coverage": "^10.1.15", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-invoker": "^4.0.0", + "phpunit/php-text-template": "^3.0.1", + "phpunit/php-timer": "^6.0.0", + "sebastian/cli-parser": "^2.0.1", + "sebastian/code-unit": "^2.0.0", + "sebastian/comparator": "^5.0.1", + "sebastian/diff": "^5.1.1", + "sebastian/environment": "^6.1.0", + "sebastian/exporter": "^5.1.2", + "sebastian/global-state": "^6.0.2", + "sebastian/object-enumerator": "^5.0.0", + "sebastian/recursion-context": "^5.0.0", + "sebastian/type": "^4.0.0", + "sebastian/version": "^4.0.1" }, "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" @@ -17477,7 +17482,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.24" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.28" }, "funding": [ { @@ -17493,7 +17498,7 @@ "type": "tidelift" } ], - "time": "2024-06-20T13:09:54+00:00" + "time": "2024-07-18T14:54:16+00:00" }, { "name": "react/cache", @@ -18943,16 +18948,16 @@ }, { "name": "spatie/backtrace", - "version": "1.6.1", + "version": "1.6.2", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23" + "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/8373b9d51638292e3bfd736a9c19a654111b4a23", - "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/1a9a145b044677ae3424693f7b06479fc8c137a9", + "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9", "shasum": "" }, "require": { @@ -18990,7 +18995,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/backtrace/tree/1.6.1" + "source": "https://github.com/spatie/backtrace/tree/1.6.2" }, "funding": [ { @@ -19002,20 +19007,20 @@ "type": "other" } ], - "time": "2024-04-24T13:22:11+00:00" + "time": "2024-07-22T08:21:24+00:00" }, { "name": "spatie/error-solutions", - "version": "1.0.3", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/spatie/error-solutions.git", - "reference": "55ea4117e0fde89d520883734ab9b71064c48876" + "reference": "a014da18f2675ea15af0ba97f7e9aee59e13964f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/error-solutions/zipball/55ea4117e0fde89d520883734ab9b71064c48876", - "reference": "55ea4117e0fde89d520883734ab9b71064c48876", + "url": "https://api.github.com/repos/spatie/error-solutions/zipball/a014da18f2675ea15af0ba97f7e9aee59e13964f", + "reference": "a014da18f2675ea15af0ba97f7e9aee59e13964f", "shasum": "" }, "require": { @@ -19068,7 +19073,7 @@ ], "support": { "issues": "https://github.com/spatie/error-solutions/issues", - "source": "https://github.com/spatie/error-solutions/tree/1.0.3" + "source": "https://github.com/spatie/error-solutions/tree/1.1.0" }, "funding": [ { @@ -19076,7 +19081,7 @@ "type": "github" } ], - "time": "2024-06-27T12:22:48+00:00" + "time": "2024-07-22T08:18:22+00:00" }, { "name": "spatie/flare-client-php", @@ -19323,16 +19328,16 @@ }, { "name": "spaze/phpstan-stripe", - "version": "v3.1.0", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/spaze/phpstan-stripe.git", - "reference": "ebe8d3a7ae99f45ec024767453a09c93dedec030" + "reference": "f79b07804af61006473c453b83879a7d0dd6fef0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spaze/phpstan-stripe/zipball/ebe8d3a7ae99f45ec024767453a09c93dedec030", - "reference": "ebe8d3a7ae99f45ec024767453a09c93dedec030", + "url": "https://api.github.com/repos/spaze/phpstan-stripe/zipball/f79b07804af61006473c453b83879a7d0dd6fef0", + "reference": "f79b07804af61006473c453b83879a7d0dd6fef0", "shasum": "" }, "require": { @@ -19379,9 +19384,9 @@ ], "support": { "issues": "https://github.com/spaze/phpstan-stripe/issues", - "source": "https://github.com/spaze/phpstan-stripe/tree/v3.1.0" + "source": "https://github.com/spaze/phpstan-stripe/tree/v3.2.0" }, - "time": "2023-10-28T14:16:00+00:00" + "time": "2024-07-21T01:46:03+00:00" }, { "name": "symfony/polyfill-php81", @@ -19576,6 +19581,7 @@ "minimum-stability": "dev", "stability-flags": { "asm/php-ansible": 20, + "beganovich/snappdf": 20, "horstoeko/orderx": 20, "invoiceninja/einvoice": 20, "socialiteproviders/apple": 20 diff --git a/config/ninja.php b/config/ninja.php index e6bd9d75ae72..c832656df1e2 100644 --- a/config/ninja.php +++ b/config/ninja.php @@ -17,8 +17,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.10.8'), - 'app_tag' => env('APP_TAG', '5.10.8'), + 'app_version' => env('APP_VERSION', '5.10.13'), + 'app_tag' => env('APP_TAG', '5.10.13'), 'minimum_client_version' => '5.0.16', 'terms_version' => '1.0.1', 'api_secret' => env('API_SECRET', false), @@ -240,5 +240,5 @@ return [ 'private_key' => env('NINJA_PRIVATE_KEY', false), ], 'upload_extensions' => env('ADDITIONAL_UPLOAD_EXTENSIONS', ''), - + 'storecove_api_key' => env('STORECOVE_API_KEY', false), ]; diff --git a/database/migrations/2024_07_16_231556_2024_07_17_add_dubai_timezone.php b/database/migrations/2024_07_16_231556_2024_07_17_add_dubai_timezone.php new file mode 100644 index 000000000000..8b2740484f54 --- /dev/null +++ b/database/migrations/2024_07_16_231556_2024_07_17_add_dubai_timezone.php @@ -0,0 +1,37 @@ + 1){ + + $t = new Timezone(); + $t->id = 115; + $t->name = 'Asia/Dubai'; + $t->location = '(GMT+04:00) Dubai'; + $t->utc_offset = 14400; + $t->save(); + + } + + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // + } +}; diff --git a/database/seeders/ConstantsSeeder.php b/database/seeders/ConstantsSeeder.php index a1e4410367f0..eb5e99cc573b 100644 --- a/database/seeders/ConstantsSeeder.php +++ b/database/seeders/ConstantsSeeder.php @@ -151,6 +151,7 @@ class ConstantsSeeder extends Seeder $timezones[] = ['name'=>'Asia/Magadan', 'location' => '(GMT+12:00) Magadan', 'utc_offset' => 43200]; $timezones[] = ['name'=>'Pacific/Auckland', 'location' => '(GMT+12:00) Auckland', 'utc_offset' => 43200]; $timezones[] = ['name'=>'Pacific/Fiji', 'location' => '(GMT+12:00) Fiji', 'utc_offset' => 43200]; + $timezones[] = ['name' => 'Asia/Dubai', 'location' => '(GMT+04:00) Dubai', 'utc_offset' => 14400]; $x = 1; foreach ($timezones as $timezone) { diff --git a/lang/ar/texts.php b/lang/ar/texts.php index b5f08b03cf2c..0b567ad130f4 100644 --- a/lang/ar/texts.php +++ b/lang/ar/texts.php @@ -1080,7 +1080,7 @@ $lang = array( 'invoice_embed_documents' => 'تضمين المستندات', 'invoice_embed_documents_help' => 'تضمين الصور المرفقة في الفاتورة.', 'document_email_attachment' => 'ارفاق المستندات', - 'ubl_email_attachment' => 'إرفاق UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'تنزيل الملفات (:حجم)', 'documents_from_expenses' => 'من المصروفات:', 'dropzone_default_message' => 'قم بإسقاط الملفات أو انقر للتحميل', @@ -2345,7 +2345,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'أونصة تروي ذهبية', 'currency_nicaraguan_córdoba' => 'قرطبة نيكاراغوا', 'currency_malagasy_ariary' => 'أرياري مدغشقر', - "currency_tongan_pa_anga" => "تونجا بانجا", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'نأمل أن تستمتع باستخدام التطبيق.
إذا كنت تفكر في :link فإننا نقدر ذلك كثيرًا!', 'writing_a_review' => 'كتابة مراجعة', @@ -2861,19 +2861,6 @@ $lang = array( 'refunded' => 'معاد', 'marked_quote_as_sent' => 'نجح وضع علامة على الاقتباس على أنه تم الإرسال', 'custom_module_settings' => 'إعدادات الوحدة النمطية المخصصة', - 'ticket' => 'تذكرة', - 'tickets' => 'تذاكر', - 'ticket_number' => 'تذكرة #', - 'new_ticket' => 'تذكرة جديدة', - 'edit_ticket' => 'تحرير التذكرة', - 'view_ticket' => 'عرض التذكرة', - 'archive_ticket' => 'أرشفة التذكرة', - 'restore_ticket' => 'استعادة التذكرة', - 'delete_ticket' => 'حذف التذكرة', - 'archived_ticket' => 'تمت أرشفة التذكرة بنجاح', - 'archived_tickets' => 'تم أرشفة التذاكر بنجاح', - 'restored_ticket' => 'تمت استعادة التذكرة بنجاح', - 'deleted_ticket' => 'تم حذف التذكرة بنجاح', 'open' => 'يفتح', 'new' => 'جديد', 'closed' => 'مغلق', @@ -2890,14 +2877,6 @@ $lang = array( 'assigned_to' => 'مخصص ل', 'reply' => 'رد', 'awaiting_reply' => 'في انتظار الرد', - 'ticket_close' => 'إغلاق التذكرة', - 'ticket_reopen' => 'إعادة فتح التذكرة', - 'ticket_open' => 'تذكرة مفتوحة', - 'ticket_split' => 'تقسيم التذكرة', - 'ticket_merge' => 'دمج التذكرة', - 'ticket_update' => 'تحديث التذكرة', - 'ticket_settings' => 'إعدادات التذكرة', - 'updated_ticket' => 'تم تحديث التذكرة', 'mark_spam' => 'علامة كدعاية', 'local_part' => 'الجزء المحلي', 'local_part_unavailable' => 'الاسم مأخوذ', @@ -2915,31 +2894,23 @@ $lang = array( 'mime_types' => 'أنواع التمثيل الصامت', 'mime_types_placeholder' => '.pdf ، .docx ، .jpg', 'mime_types_help' => 'قائمة مفصولة بفواصل لأنواع التمثيل الصامت المسموح بها ، اتركها فارغة للجميع', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'الأولوية الافتراضية', 'alert_new_comment_id' => 'تعليق جديد', - 'alert_comment_ticket_help' => 'سيؤدي تحديد قالب إلى إرسال إشعار (إلى الوكيل) عند إجراء تعليق.', - 'alert_comment_ticket_email_help' => 'رسائل بريد إلكتروني مفصولة بفواصل إلى نسخة مخفية الوجهة عند التعليق الجديد.', - 'new_ticket_notification_list' => 'إخطارات تذكرة جديدة إضافية', 'update_ticket_notification_list' => 'إخطارات تعليق إضافية جديدة', 'comma_separated_values' => 'admin@example.com ، supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'احالة تذكرة', - 'alert_ticket_assign_agent_id_hel' => 'سيؤدي تحديد قالب إلى إرسال إشعار (إلى الوكيل) عند تعيين تذكرة.', - 'alert_ticket_assign_agent_id_notifications' => 'تذكرة إضافية مخصصة الإخطارات', - 'alert_ticket_assign_agent_id_help' => 'رسائل بريد إلكتروني مفصولة بفاصلة إلى نسخة مخفية الوجهة عند تخصيص التذكرة.', - 'alert_ticket_transfer_email_help' => 'رسائل بريد إلكتروني مفصولة بفواصل إلى نسخة مخفية الوجهة عند تحويل التذكرة.', - 'alert_ticket_overdue_agent_id' => 'تأخرت التذكرة', - 'alert_ticket_overdue_email' => 'إشعارات إضافية بشأن التذاكر المتأخرة', - 'alert_ticket_overdue_email_help' => 'رسائل بريد إلكتروني مفصولة بفاصلة لإرسالها إلى نسخة مخفية الوجهة عند التأخر في تقديم التذكرة.', - 'alert_ticket_overdue_agent_id_help' => 'سيؤدي تحديد قالب إلى إرسال إشعار (إلى الوكيل) عندما تصبح التذكرة متأخرة.', 'default_agent' => 'الوكيل الافتراضي', 'default_agent_help' => 'إذا تم تحديده فسيتم تخصيصه تلقائيًا لجميع التذاكر الواردة', 'show_agent_details' => 'إظهار تفاصيل الوكيل في الردود', 'avatar' => 'الصورة الرمزية', 'remove_avatar' => 'إزالة الصورة الرمزية', - 'ticket_not_found' => 'لم يتم العثور على التذكرة', 'add_template' => 'أضف قالبًا', - 'updated_ticket_template' => 'نموذج تذكرة محدث', - 'created_ticket_template' => 'تم إنشاء نموذج تذكرة', 'archive_ticket_template' => 'قالب الأرشيف', 'restore_ticket_template' => 'استعادة النموذج', 'archived_ticket_template' => 'تمت أرشفة النموذج بنجاح', @@ -3055,7 +3026,7 @@ $lang = array( 'portal_mode' => 'وضع البوابة', 'attach_pdf' => 'إرفاق ملف PDF', 'attach_documents' => 'ارفاق مستندات', - 'attach_ubl' => 'إرفاق UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'نمط البريد الإلكتروني', 'processed' => 'معالجتها', 'fee_amount' => 'مبلغ الرسوم', @@ -3796,7 +3767,7 @@ $lang = array( 'entity_number_placeholder' => 'رقم :entity :entity_number', 'email_link_not_working' => 'إذا كان الزر أعلاه لا يعمل من أجلك ، فيرجى النقر فوق الارتباط', 'display_log' => 'عرض السجل', - 'send_fail_logs_to_our_server' => 'إرسال الأخطاء مباشرةً', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'الإعداد', 'quick_overview_statistics' => 'نظرة عامة وإحصاءات سريعة', 'update_your_personal_info' => 'قم بتحديث معلوماتك الشخصية', @@ -5284,6 +5255,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'بوتان نغولتروم', 'end_of_month' => 'نهاية الشهر', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'نهاية الشهر', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/bg/texts.php b/lang/bg/texts.php index 716ec93c7cc0..ffdf66653f5f 100644 --- a/lang/bg/texts.php +++ b/lang/bg/texts.php @@ -1100,7 +1100,7 @@ $lang = array( 'invoice_embed_documents' => 'Свързани документи', 'invoice_embed_documents_help' => 'Включване на прикачените изображения във фактурата.', 'document_email_attachment' => 'Прикачване на Документи', - 'ubl_email_attachment' => 'Прикачване на UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Документи за изтегляне (:size)', 'documents_from_expenses' => 'От разходи:', 'dropzone_default_message' => 'Пуснете тук флайловете или кликнете за качване', @@ -2365,7 +2365,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Надяваме се, че използвате приложението с удоволствие.
Ще се радваме, ако решите да :link!', 'writing_a_review' => 'напишете оценка', @@ -2881,19 +2881,6 @@ $lang = array( 'refunded' => 'Възстановена', 'marked_quote_as_sent' => 'Офертата е успешно маркирана като изпратена', 'custom_module_settings' => 'Настройки на персонален модул', - 'ticket' => 'Ticket', - 'tickets' => 'Tickets', - 'ticket_number' => 'Ticket #', - 'new_ticket' => 'Нов Ticket', - 'edit_ticket' => 'Редакция на Ticket', - 'view_ticket' => 'Преглед на Ticket', - 'archive_ticket' => 'Архивиране на Ticket', - 'restore_ticket' => 'Възстановяване на Ticket', - 'delete_ticket' => 'Изтриване на Ticket', - 'archived_ticket' => 'Успешно архивиран Ticket', - 'archived_tickets' => 'Успешно архивирани Tickets', - 'restored_ticket' => 'Успешно възстановен Ticket', - 'deleted_ticket' => 'Успешно изтрит Ticket', 'open' => 'Open', 'new' => 'Нов', 'closed' => 'Closed', @@ -2910,14 +2897,6 @@ $lang = array( 'assigned_to' => 'Присвоен на', 'reply' => 'Отговор', 'awaiting_reply' => 'Очаква отговор', - 'ticket_close' => 'Затваряне на Ticket', - 'ticket_reopen' => 'Повторно отваряне на Ticket', - 'ticket_open' => 'Отваряне на Ticket', - 'ticket_split' => 'Разделяне на Ticket', - 'ticket_merge' => 'Обединяване на Ticket', - 'ticket_update' => 'Актуализация на Ticket', - 'ticket_settings' => 'Настройки Ticket', - 'updated_ticket' => 'Актуализиран Ticket', 'mark_spam' => 'Маркирай като спам', 'local_part' => 'Local Part', 'local_part_unavailable' => 'Името е заето', @@ -2935,31 +2914,23 @@ $lang = array( 'mime_types' => 'Mime типове', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Разделен със запетая списък на разрешените mime типове. Оставете празно, за да разрешите всички.', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Приоритет по подразбиране', 'alert_new_comment_id' => 'Нов коментар', - 'alert_comment_ticket_help' => 'С избора на шаблон ще бъде изпращано известие (към агента), когато бъде направен коментар.', - 'alert_comment_ticket_email_help' => 'Разделени със запетая имей адреси за bcc при нов коментар.', - 'new_ticket_notification_list' => 'Допълнителни известия за нов Ticket', 'update_ticket_notification_list' => 'Допълнителни известия за нов коментар', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Присвояване на Ticket', - 'alert_ticket_assign_agent_id_hel' => 'Изборът на шаблон ще активира изпращането на известие (към агента), когато тикетът е присвоен.', - 'alert_ticket_assign_agent_id_notifications' => 'Допълнителни известия при присвояване на Ticket', - 'alert_ticket_assign_agent_id_help' => 'Разделени със запетая имей адреси за bcc при присвояване на Ticket.', - 'alert_ticket_transfer_email_help' => 'Разделени със запетая имей адреси за bcc при трансфер на Ticket.', - 'alert_ticket_overdue_agent_id' => 'Просрочие на Ticket', - 'alert_ticket_overdue_email' => 'Допълнителни известия за просрочен Ticket', - 'alert_ticket_overdue_email_help' => 'Разделени със запетая имей адреси за bcc при просрочие на Ticket.', - 'alert_ticket_overdue_agent_id_help' => 'С избора на шаблон ще бъде изпращано известие (към агента), когато тикетът стане просрочен.', 'default_agent' => 'Агент по подразбиране', 'default_agent_help' => 'Ако е избран, ще бъде присвоен на всички входящи тикет-и', 'show_agent_details' => 'Показване на детайлите на агента при отговор', 'avatar' => 'Аватар', 'remove_avatar' => 'Премахване на аватар', - 'ticket_not_found' => 'Тикетът не е намерен', 'add_template' => 'Добавяне на шаблон', - 'updated_ticket_template' => 'Актуализиран шаблон за Ticket', - 'created_ticket_template' => 'Създаден шаблон за Ticket', 'archive_ticket_template' => 'Архивиране на шаблон', 'restore_ticket_template' => 'Възстановяване на шаблон', 'archived_ticket_template' => 'Успешно архивиран шаблон', @@ -3075,7 +3046,7 @@ $lang = array( 'portal_mode' => 'Портален режим', 'attach_pdf' => 'Прикачване на PDF', 'attach_documents' => 'Прикачване на Документи', - 'attach_ubl' => 'Прикачване на UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Стилове на имейла', 'processed' => 'Обработен', 'fee_amount' => 'Сума на таксата', @@ -3816,7 +3787,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', 'display_log' => 'Display Log', - 'send_fail_logs_to_our_server' => 'Report errors in realtime', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Setup', 'quick_overview_statistics' => 'Quick overview & statistics', 'update_your_personal_info' => 'Update your personal information', @@ -5304,6 +5275,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/ca/texts.php b/lang/ca/texts.php index ef7b8ccbb261..182be60bc3f3 100644 --- a/lang/ca/texts.php +++ b/lang/ca/texts.php @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'Embed Documents', 'invoice_embed_documents_help' => 'Include attached images in the invoice.', 'document_email_attachment' => 'Attach Documents', - 'ubl_email_attachment' => 'Attach UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', 'dropzone_default_message' => 'Drop files or click to upload', @@ -2364,7 +2364,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'Unça Troia d'or', 'currency_nicaraguan_córdoba' => 'Còrdova nicaragüenca', 'currency_malagasy_ariary' => 'ariary malgaix', - "currency_tongan_pa_anga" => "Pa'anga de Tonga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'We hope you\'re enjoying using the app.
If you\'d consider :link we\'d greatly appreciate it!', 'writing_a_review' => 'escriu una ressenya', @@ -2880,19 +2880,6 @@ $lang = array( 'refunded' => 'Refunded', 'marked_quote_as_sent' => 'Successfully marked quote as sent', 'custom_module_settings' => 'Custom Module Settings', - 'ticket' => 'Ticket', - 'tickets' => 'Tickets', - 'ticket_number' => 'Ticket #', - 'new_ticket' => 'New Ticket', - 'edit_ticket' => 'Edit Ticket', - 'view_ticket' => 'View Ticket', - 'archive_ticket' => 'Archive Ticket', - 'restore_ticket' => 'Restore Ticket', - 'delete_ticket' => 'Delete Ticket', - 'archived_ticket' => 'Successfully archived ticket', - 'archived_tickets' => 'Successfully archived tickets', - 'restored_ticket' => 'Successfully restored ticket', - 'deleted_ticket' => 'Successfully deleted ticket', 'open' => 'Obre', 'new' => 'Nou', 'closed' => 'Tancat', @@ -2909,14 +2896,6 @@ $lang = array( 'assigned_to' => 'Assignat a', 'reply' => 'Respon', 'awaiting_reply' => 'Awaiting reply', - 'ticket_close' => 'Close Ticket', - 'ticket_reopen' => 'Reopen Ticket', - 'ticket_open' => 'Open Ticket', - 'ticket_split' => 'Split Ticket', - 'ticket_merge' => 'Fusiona tiquets', - 'ticket_update' => 'Actualitza tiquet', - 'ticket_settings' => 'Ticket Settings', - 'updated_ticket' => 'Tiquet actualitzat', 'mark_spam' => 'Marca com a SPAM', 'local_part' => 'Local Part', 'local_part_unavailable' => 'Name taken', @@ -2934,31 +2913,23 @@ $lang = array( 'mime_types' => 'Mime types', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Comma separated list of allowed mime types, leave blank for all', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Default priority', 'alert_new_comment_id' => 'Nou comentari', - 'alert_comment_ticket_help' => 'Selecting a template will send a notification (to agent) when a comment is made.', - 'alert_comment_ticket_email_help' => 'Comma separated emails to bcc on new comment.', - 'new_ticket_notification_list' => 'Additional new ticket notifications', 'update_ticket_notification_list' => 'Additional new comment notifications', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Ticket assignment', - 'alert_ticket_assign_agent_id_hel' => 'Selecting a template will send a notification (to agent) when a ticket is assigned.', - 'alert_ticket_assign_agent_id_notifications' => 'Additional ticket assigned notifications', - 'alert_ticket_assign_agent_id_help' => 'Comma separated emails to bcc on ticket assignment.', - 'alert_ticket_transfer_email_help' => 'Comma separated emails to bcc on ticket transfer.', - 'alert_ticket_overdue_agent_id' => 'Tiquet vençut', - 'alert_ticket_overdue_email' => 'Additional overdue ticket notifications', - 'alert_ticket_overdue_email_help' => 'Comma separated emails to bcc on ticket overdue.', - 'alert_ticket_overdue_agent_id_help' => 'Selecting a template will send a notification (to agent) when a ticket becomes overdue.', 'default_agent' => 'Default Agent', 'default_agent_help' => 'If selected will automatically be assigned to all inbound tickets', 'show_agent_details' => 'Show agent details on responses', 'avatar' => 'Avatar', 'remove_avatar' => 'Remove avatar', - 'ticket_not_found' => 'Ticket not found', 'add_template' => 'Add Template', - 'updated_ticket_template' => 'Plantilla de tiquet actualitzada', - 'created_ticket_template' => 'Plantilla de tiquet creada', 'archive_ticket_template' => 'Arxiva plantilla', 'restore_ticket_template' => 'Restaura plantilla', 'archived_ticket_template' => 'Successfully archived template', @@ -3074,7 +3045,7 @@ $lang = array( 'portal_mode' => 'Portal Mode', 'attach_pdf' => 'Attach PDF', 'attach_documents' => 'Attach Documents', - 'attach_ubl' => 'Attach UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Email Style', 'processed' => 'Processed', 'fee_amount' => 'Fee Amount', @@ -3815,7 +3786,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', 'display_log' => 'Display Log', - 'send_fail_logs_to_our_server' => 'Report errors in realtime', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Setup', 'quick_overview_statistics' => 'Quick overview & statistics', 'update_your_personal_info' => 'Update your personal information', @@ -5303,6 +5274,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/da/texts.php b/lang/da/texts.php index 4f9e288f350f..4654f71c16c7 100644 --- a/lang/da/texts.php +++ b/lang/da/texts.php @@ -21,7 +21,7 @@ $lang = array( 'payment_terms' => 'Betalingsvilkår', 'currency_id' => 'Valuta', 'size_id' => 'Virksomhedens størrelse', - 'industry_id' => 'Sektor', + 'industry_id' => 'Branche', 'private_notes' => 'Private notater', 'invoice' => 'Faktura', 'client' => 'Kunde', @@ -275,7 +275,7 @@ $lang = array( 'unsaved_changes' => 'Du har ændringer som ikke er gemt', 'custom_fields' => 'Brugerdefineret felt', 'company_fields' => 'Selskabets felt', - 'client_fields' => 'Kundefelt', + 'client_fields' => 'Kunde felter', 'field_label' => 'Felt-etikette', 'field_value' => 'Feltets værdi', 'edit' => 'Rediger', @@ -397,7 +397,7 @@ $lang = array( 'white_label_header' => 'Hvidmærket', 'bought_white_label' => 'Hvidmærket licens accepteret', 'white_labeled' => 'Hvidmærke', - 'restore' => 'Genskab', + 'restore' => 'Gendanne', 'restore_invoice' => 'Genskab faktura', 'restore_quote' => 'Genskab tilbud', 'restore_client' => 'Genskab kunde', @@ -880,7 +880,7 @@ $lang = array( 'email_designs' => 'Email Designs', 'assigned_when_sent' => 'Assigned when sent', 'white_label_purchase_link' => 'Erhvérv et hvidmærket license', - 'expense' => 'Expense', + 'expense' => 'Udgift', 'expenses' => 'Udgifter', 'new_expense' => 'Indtast udgift', 'new_vendor' => 'Ny sælger', @@ -890,14 +890,14 @@ $lang = array( 'archive_vendor' => 'Arkivér sælger', 'delete_vendor' => 'Slet sælger', 'view_vendor' => 'Vis sælger', - 'deleted_expense' => 'Successfully deleted expense', - 'archived_expense' => 'Successfully archived expense', - 'deleted_expenses' => 'Successfully deleted expenses', - 'archived_expenses' => 'Successfully archived expenses', - 'expense_amount' => 'Expense Amount', - 'expense_balance' => 'Expense Balance', - 'expense_date' => 'Expense Date', - 'expense_should_be_invoiced' => 'Should this expense be invoiced?', + 'deleted_expense' => 'Udgift slettet succesfuldt', + 'archived_expense' => 'Udgift arkiveret succesfuldt', + 'deleted_expenses' => 'Udgifter slettet succesfuldt', + 'archived_expenses' => 'Udgifter arkiveret succesfuldt', + 'expense_amount' => 'Udgifts Beløb', + 'expense_balance' => 'Udgifts Balance', + 'expense_date' => 'Udgifts Dato', + 'expense_should_be_invoiced' => 'Skal denne udgift faktureres?', 'public_notes' => 'Public Notes', 'invoice_amount' => 'Invoice Amount', 'exchange_rate' => 'Exchange Rate', @@ -905,18 +905,18 @@ $lang = array( 'no' => 'No', 'should_be_invoiced' => 'Should be invoiced', 'view_expense' => 'View expense # :expense', - 'edit_expense' => 'Edit Expense', - 'archive_expense' => 'Archive Expense', - 'delete_expense' => 'Delete Expense', - 'view_expense_num' => 'Expense # :expense', - 'updated_expense' => 'Successfully updated expense', - 'created_expense' => 'Successfully created expense', - 'enter_expense' => 'Enter Expense', + 'edit_expense' => 'Redigér Udgift', + 'archive_expense' => 'Arkiver Udgift', + 'delete_expense' => 'Slet Udgift', + 'view_expense_num' => 'Udgift # :expense', + 'updated_expense' => 'Udgift opdateret succesfuldt', + 'created_expense' => 'Udgift oprettet succesfuldt', + 'enter_expense' => 'Indtast Udgift', 'view' => 'View', - 'restore_expense' => 'Restore Expense', - 'invoice_expense' => 'Invoice Expense', + 'restore_expense' => 'Gendan Udgift', + 'invoice_expense' => 'Fakturer Udgift', 'expense_error_multiple_clients' => 'The expenses can\'t belong to different clients', - 'expense_error_invoiced' => 'Expense has already been invoiced', + 'expense_error_invoiced' => 'Udgiftsbilag er allerede faktureret', 'convert_currency' => 'Convert currency', 'num_days' => 'Antal dage', 'create_payment_term' => 'Create Payment Term', @@ -962,7 +962,7 @@ $lang = array( 'bank_accounts' => 'Bank Accounts', 'add_bank_account' => 'Add Bank Account', 'setup_account' => 'Setup Account', - 'import_expenses' => 'Import Expenses', + 'import_expenses' => 'Importer Udgifter', 'bank_id' => 'bank', 'integration_type' => 'Integration Type', 'updated_bank_account' => 'Successfully updated bank account', @@ -1005,7 +1005,7 @@ $lang = array( 'trial_call_to_action' => 'Start Free Trial', 'trial_success' => 'Successfully enabled two week free pro plan trial', 'overdue' => 'Overdue', - 'white_label_text' => 'Køb et ET-ÅRIGT hvidmærket licens til $:price for at fjerne Invoice Ninja-brandingen fra fakturaen og klientportalen.', + 'white_label_text' => 'Køb et ET-ÅRIGT hvidmærket licens til $:price for at fjerne Invoice Ninja-brandingen fra fakturaen og Kundeportalen.', 'user_email_footer' => 'For at justere varslings indstillingene besøg venligst :link', 'reset_password_footer' => 'Hvis du ikke bad om at få nulstillet din adgangskode kontakt venligst kundeservice: :email', 'limit_users' => 'Desværre, dette vil overstige grænsen på :limit brugere', @@ -1018,7 +1018,7 @@ $lang = array( 'invitation_status_sent' => 'Sendt', 'invitation_status_opened' => 'Åbnet', 'invitation_status_viewed' => 'Set', - 'email_error_inactive_client' => 'Emails can not be sent to inactive clients', + 'email_error_inactive_client' => 'Emails kan ikke sendes til inaktive kunder', 'email_error_inactive_contact' => 'Emails can not be sent to inactive contacts', 'email_error_inactive_invoice' => 'Emails can not be sent to inactive invoices', 'email_error_inactive_proposal' => 'Emails kan ikke sendes til inaktive forslag', @@ -1027,7 +1027,7 @@ $lang = array( 'email_error_invalid_contact_email' => 'Invalid contact email', 'navigation' => 'Navigation', 'list_invoices' => 'List Invoices', - 'list_clients' => 'List Clients', + 'list_clients' => 'Vis Kunder', 'list_quotes' => 'List Quotes', 'list_tasks' => 'List Tasks', 'list_expenses' => 'List Expenses', @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'Embed Documents', 'invoice_embed_documents_help' => 'Include attached images in the invoice.', 'document_email_attachment' => 'Attach Documents', - 'ubl_email_attachment' => 'Vedhæft UBL', + 'ubl_email_attachment' => 'Vedhæft UBL/E-Faktura', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', 'dropzone_default_message' => 'Drop files or click to upload', @@ -1216,7 +1216,7 @@ $lang = array( 'ach_disabled' => 'En anden gateway er allerede konfigureret til direkte debitering.', 'plaid' => 'Betalt', - 'client_id' => 'Klients ID', + 'client_id' => 'Kunde ID', 'secret' => 'Hemmelighed', 'public_key' => 'Offentlig nøgle', 'plaid_optional' => '(valgfrit)', @@ -1821,7 +1821,7 @@ $lang = array( 'facebook_and_twitter' => 'Facebook og Twitter', 'facebook_and_twitter_help' => 'Følg vores feeds for at hjælpe med at støtte vores projekt', 'reseller_text' => 'Bemærk: Et hvidmærket licens er beregnet til personlig brug, så send en e-mail til os på :email, hvis du gerne vil videresælge appen.', - 'unnamed_client' => 'Ukendt klient', + 'unnamed_client' => 'Ukendt kunde', 'day' => 'Dag', 'week' => 'Uge', @@ -1890,13 +1890,13 @@ $lang = array( 'checkbox' => 'Afkrydsningsfelt', 'invoice_signature' => 'Underskrift', 'show_accept_invoice_terms' => 'Afkrydsningsfelt for fakturavilkår', - 'show_accept_invoice_terms_help' => 'Bed kunden om at bekræfte, at de accepterer fakturavilkårene.', + 'show_accept_invoice_terms_help' => 'Kunden skal acceptere fakturabetingelserne.', 'show_accept_quote_terms' => 'Tilbuds Betingelser Afkrydsningsfelt', - 'show_accept_quote_terms_help' => 'Bed kunden om at bekræfte, at de accepterer tilbudsbetingelserne.', + 'show_accept_quote_terms_help' => 'Kunden skal acceptere tilbudsbetingelserne.', 'require_invoice_signature' => 'Fakturasignatur', - 'require_invoice_signature_help' => 'Kræv at klienten giver deres underskrift.', + 'require_invoice_signature_help' => 'Kunden skal bekræfte med sin underskrift.', 'require_quote_signature' => 'Tilbuds underskrift', - 'require_quote_signature_help' => 'Kræv at klienten giver deres underskrift.', + 'require_quote_signature_help' => 'Kunden skal bekræfte med sin underskrift.', 'i_agree' => 'Jeg accepterer betingelserne', 'sign_here' => 'Underskriv venligst her (Denne underskrift er juridisk bindende):', 'sign_here_ux_tip' => 'Brug musen eller din touchpad til at spore din signatur.', @@ -1982,9 +1982,9 @@ $lang = array( 'postal_city_state' => 'Postnummer/By/Region', 'phantomjs_help' => 'I visse tilfælde bruger appen :link_phantom til at danne PDF\'en, installér :link_docs for at danne den lokalt.', 'phantomjs_local' => 'Anvender lokal PhantomJS', - 'client_number' => 'Klientnummer', - 'client_number_help' => 'Angiv et præfiks eller brug et brugerdefineret mønster til dynamisk angivelse af klientnummer.', - 'next_client_number' => 'Det næste klientnummer er :number.', + 'client_number' => 'Kundenr.', + 'client_number_help' => 'Angiv et præfiks eller brug et brugerdefineret mønster til dynamisk angivelse af kundenr.', + 'next_client_number' => 'Det næste kundenr. er :number.', 'generated_numbers' => 'Dannede numre', 'notes_reminder1' => 'Første påmindelse', 'notes_reminder2' => 'Anden påmindelse', @@ -1997,7 +1997,7 @@ $lang = array( 'emailed_quotes' => 'Succesfuldt mailede citater', 'website_url' => 'Website-URL', 'domain' => 'Domæne', - 'domain_help' => 'Bruges i Klient portalen og ved afsendelse af e-mails.', + 'domain_help' => 'Bruges i Kundeportalen og ved afsendelse af e-mails.', 'domain_help_website' => 'Bruges ved afsendelse af e-mails.', 'import_invoices' => 'Import Fakturaer', 'new_report' => 'Ny rapport', @@ -2023,9 +2023,9 @@ $lang = array( 'group_when_sorted' => 'Gruppe sortering', 'group_dates_by' => 'Gruppér datoer efter', 'year' => 'År', - 'view_statement' => 'Se kontoudskrift', + 'view_statement' => 'Se Kontoudtog', 'statement' => 'Kontoudtog', - 'statement_date' => 'Erklæringsdato', + 'statement_date' => 'Kontoudtogsperiode', 'mark_active' => 'Markér som aktiv', 'send_automatically' => 'Send automatisk', 'initial_email' => 'Indledende e-mail', @@ -2058,9 +2058,9 @@ $lang = array( 'freq_yearly' => 'Årligt', 'profile' => 'Profil', 'industry_Construction' => 'Konstruktion', - 'your_statement' => 'Din erklæring', - 'statement_issued_to' => 'Erklæring udstedt til', - 'statement_to' => 'Erklæring til', + 'your_statement' => 'Dit Kontoudtog', + 'statement_issued_to' => 'Kontoudtog for', + 'statement_to' => 'Kontoudtog til', 'customize_options' => 'Tilpas valgmuligheder', 'created_payment_term' => 'Succesfuldt oprettet Betaling term', 'updated_payment_term' => 'Succesfuldt opdateret Betaling', @@ -2068,7 +2068,7 @@ $lang = array( 'resend_invite' => 'Send invitation igen', 'credit_created_by' => 'Kredit oprettet ved Betaling :transaction_reference', 'created_payment_and_credit' => 'Succesfuldt oprettet Betaling og kredit', - 'created_payment_and_credit_emailed_client' => 'Succesfuldt oprettet Betaling og kredit, og mailet til Klient', + 'created_payment_and_credit_emailed_client' => 'Succesfuldt oprettet betaling og kredit, og e-mailet til Kunde', 'create_project' => 'Opret projekt', 'create_vendor' => 'Opret Sælger', 'create_expense_category' => 'Opret kategori', @@ -2133,8 +2133,8 @@ $lang = array( 'contact_phone' => 'Kontakttelefon', 'contact_email' => 'E-mailkontakt', 'reply_to_email' => 'Svar-til e-mail', - 'reply_to_email_help' => 'Angiv svar-til adressen for e-mails til klienter.', - 'bcc_email_help' => 'Inkludér denne adresse privat i e-mails til klienter.', + 'reply_to_email_help' => 'Angiv svar-til adressen for e-mails til kunder.', + 'bcc_email_help' => 'Inkludér denne adresse skjult i e-mails til kunder.', 'import_complete' => 'Din import blev gennemført med succes.', 'confirm_account_to_import' => 'Bekræft venligst din konto for at importere data.', 'import_started' => 'Din import er påbegyndt, vi sender dig en e-mail når den er gennemført.', @@ -2152,7 +2152,7 @@ $lang = array( 'mark_billable' => 'Marker fakturerbar', 'billed' => 'Faktureret', 'company_variables' => 'Firmavariabler', - 'client_variables' => 'Klient', + 'client_variables' => 'Kundeoplysninger', 'invoice_variables' => 'Faktura Variabler', 'navigation_variables' => 'Navigationsvariabler', 'custom_variables' => 'Speciel variabler', @@ -2241,7 +2241,7 @@ $lang = array( 'downloaded_quotes' => 'Der sendes en e-mail med tilbuds-pdf'erne', 'clone_expense' => 'Klon Udgift', 'default_documents' => 'Standarddokumenter', - 'send_email_to_client' => 'Send email til kunden', + 'send_email_to_client' => 'Send e-mail til kunden', 'refund_subject' => 'Refusion behandlet', 'refund_body' => 'Du har fået behandlet en refusion på :amount for Faktura :invoice _number.', @@ -2433,7 +2433,7 @@ $lang = array( 'discard_changes' => 'Kassér ændringer', 'tasks_not_enabled' => 'Opgaver er ikke aktiveret.', 'started_task' => 'Succesfuldt startede Opgave', - 'create_client' => 'Opret Klient', + 'create_client' => 'Opret Kunde', 'download_desktop_app' => 'Download desktop-appen', 'download_iphone_app' => 'Download iPhone-appen', @@ -2491,7 +2491,7 @@ $lang = array( 'local_storage_required' => 'Fejl: lokal lagring er ikke tilgængelig.', 'your_password_reset_link' => 'Dit link til nulstilling af adgangskode', 'subdomain_taken' => 'Underdomænet er allerede i brug', - 'client_login' => 'Client log ing', + 'client_login' => 'Kunde login', 'converted_amount' => 'Ombygget Beløb', 'default' => 'Standard', 'shipping_address' => 'Forsendelsesadresse', @@ -2509,10 +2509,10 @@ $lang = array( 'shipping_postal_code' => 'Forsendelses postnummer', 'shipping_country' => 'Forsendelsesland', 'classify' => 'Klassificer', - 'show_shipping_address_help' => 'Kræv, at Klient oplyser deres leveringsadresse', + 'show_shipping_address_help' => 'Kræv at kunden angiver leveringsadresse', 'ship_to_billing_address' => 'Send til faktureringsadresse', 'delivery_note' => 'Levering Bemærk', - 'show_tasks_in_portal' => 'Vis opgaver i Klient portalen', + 'show_tasks_in_portal' => 'Vis opgaver i Kundeportalen', 'cancel_schedule' => 'Afbryd Skema', 'scheduled_report' => 'Planlagt rapport', 'scheduled_report_help' => 'e-mail :report -rapporten som :format til :email', @@ -2534,7 +2534,7 @@ $lang = array( 'target_url' => 'Mål', 'target_url_help' => 'Når den valgte hændelse indtræffer, vil appen sende enheden til mål-URL'en.', 'event' => 'Begivenhed', - 'subscription_event_1' => 'oprettet Klient', + 'subscription_event_1' => 'Kunden er oprettet', 'subscription_event_2' => 'oprettet Faktura', 'subscription_event_3' => 'oprettet Citat', 'subscription_event_4' => 'oprettet Betaling', @@ -2543,8 +2543,8 @@ $lang = array( 'subscription_event_7' => 'slettet Citat', 'subscription_event_8' => 'Faktura blev opdateret', 'subscription_event_9' => 'slettet Faktura', - 'subscription_event_10' => 'Klient blev opdateret', - 'subscription_event_11' => 'slettet Klient', + 'subscription_event_10' => 'Kunden blev opdateret', + 'subscription_event_11' => 'Kunden blev slettet', 'subscription_event_12' => 'slettet Betaling', 'subscription_event_13' => 'Sælger blev opdateret', 'subscription_event_14' => 'slettet Sælger', @@ -2561,7 +2561,7 @@ $lang = array( 'edit_subscription' => 'Redigér Abonnement', 'archive_subscription' => 'Arkiv Abonnement', 'archived_subscription' => 'Succesfuldt arkiveret abonnement', - 'project_error_multiple_clients' => 'Projekter kan ikke tilhøre flere klienter', + 'project_error_multiple_clients' => 'Projekter kan ikke tilhøre flere kunder', 'invoice_project' => 'Fakturér projekt', 'module_recurring_invoice' => 'Gentagen Fakturaer', 'module_credit' => 'Credits', @@ -2597,23 +2597,23 @@ $lang = array( 'archive_status' => 'Arkiv Status', 'new_status' => 'Ny status', 'convert_products' => 'Konverter produkter', - 'convert_products_help' => 'Konverter automatisk produktpriser til Klient valuta', - 'improve_client_portal_link' => 'Indstil et underdomæne for at forkorte Klient portallinket.', + 'convert_products_help' => 'Konverter automatisk produktpriser til kundens valuta', + 'improve_client_portal_link' => 'Indstil et underdomæne for at forkorte linket til Kundeportalen.', 'budgeted_hours' => 'Budgetterede timer', 'progress' => 'Fremskridt', 'view_project' => 'Vis projekt', 'summary' => 'Resumé', 'endless_reminder' => 'Uendelig påmindelse', - 'signature_on_invoice_help' => 'Tilføj følgende kode for at vise din Klient signatur på PDF .', + 'signature_on_invoice_help' => 'Tilføj følgende kode for at vise din Kundes signatur på PDF .', 'signature_on_pdf' => 'Vis på PDF', - 'signature_on_pdf_help' => 'Vis Klient på Faktura /citat PDF .', + 'signature_on_pdf_help' => 'Vis Kunde på Faktura /Tilbud PDF .', 'expired_white_label' => 'Hvidmærke-licens er udløbet', 'return_to_login' => 'Vend tilbage til login', 'convert_products_tip' => 'Bemærk : Tilføj en :link med navnet " :name " for at se valutakursen.', 'amount_greater_than_balance' => 'Beløb er større end Faktura saldoen, en kredit vil blive oprettet med det resterende Beløb .', 'custom_fields_tip' => 'Brug Label|Option1,Option2 for at vise en markeringsboks.', - 'client_information' => 'Klient', - 'updated_client_details' => 'Succesfuldt opdateret Klient', + 'client_information' => 'Kundeoplysninger', + 'updated_client_details' => 'Kundeoplysningerne blev opdateret', 'auto' => 'Auto', 'tax_amount' => 'Skat Beløb', 'tax_paid' => 'Skat betalt', @@ -2694,7 +2694,7 @@ $lang = array( 'no_assets' => 'Ingen billeder, træk for at uploade', 'add_image' => 'Tilføj billede', 'select_image' => 'Vælg Billede', - 'upgrade_to_upload_images' => 'Upgrade to the Enterprise Plan to upload files & images', + 'upgrade_to_upload_images' => 'Opgrader til Enterprise for at uploade filer & billeder', 'delete_image' => 'Slet billede', 'delete_image_help' => 'Advarsel: Hvis du sletter billedet, fjernes det fra alle forslag.', 'amount_variable_help' => 'Bemærk : Faktura $ Beløb feltet vil bruge del-/indbetalingsfeltet, hvis det er angivet, ellers vil det bruge Faktura saldoen.', @@ -2742,14 +2742,14 @@ $lang = array( 'auto_archive_quote' => 'Auto Arkiv', 'auto_archive_quote_help' => 'Arkiv automatisk citater ved konvertering til Faktura .', 'require_approve_quote' => 'Kræv godkend tilbud', - 'require_approve_quote_help' => 'Kræv, at Klienter godkender tilbud.', + 'require_approve_quote_help' => 'Kræv, at Kunder godkender tilbud.', 'allow_approve_expired_quote' => 'Tillad godkend udløbet tilbud', - 'allow_approve_expired_quote_help' => 'Tillad Klienter at godkende udløbne tilbud.', + 'allow_approve_expired_quote_help' => 'Tillad at Kunden kan godkende udløbne tilbud.', 'invoice_workflow' => 'Faktura Workflow', 'quote_workflow' => 'Citat Workflow', - 'client_must_be_active' => 'Fejl: Klient skal være aktiv', - 'purge_client' => 'Rens Klient', - 'purged_client' => 'Succesfuldt renset Klient', + 'client_must_be_active' => 'Fejl: Kunden skal være aktiv', + 'purge_client' => 'Ryd Kunde', + 'purged_client' => 'Kunden blev ryddet/opdateret', 'purge_client_warning' => 'Alle relaterede poster ( Fakturaer , opgaver, udgifter, dokumenter osv.) vil også blive slettet .', 'clone_product' => 'Klon produkt', 'item_details' => 'Varedetaljer', @@ -2831,7 +2831,7 @@ $lang = array( 'count_selected' => ':count valgt', 'dismiss' => 'Afskedige', 'please_select_a_date' => 'Vælg venligst en dato', - 'please_select_a_client' => 'Vælg venligst en Klient', + 'please_select_a_client' => 'Vælg venligst en Kunde', 'language' => 'Sprog', 'updated_at' => 'Opdateret', 'please_enter_an_invoice_number' => 'Indtast venligst et Faktura nummer', @@ -2846,7 +2846,7 @@ $lang = array( 'invoice_status_5' => 'Delvis', 'invoice_status_6' => 'Betalt', 'marked_invoice_as_sent' => 'Succesfuldt markeret Faktura som sendt', - 'please_enter_a_client_or_contact_name' => 'Indtast et Klient eller kontakt', + 'please_enter_a_client_or_contact_name' => 'Indtast en Kunde eller kontakt', 'restart_app_to_apply_change' => 'Genstart appen for at anvende ændringen', 'refresh_data' => 'Opdater data', 'blank_contact' => 'Blank kontakt', @@ -2875,7 +2875,7 @@ $lang = array( 'payment_status_4' => 'Afsluttet', 'payment_status_5' => 'Delvist refunderet', 'payment_status_6' => 'Refunderet', - 'send_receipt_to_client' => 'Send kvittering til Klient', + 'send_receipt_to_client' => 'Send kvittering til Kunde', 'refunded' => 'Refunderet', 'marked_quote_as_sent' => 'Succesfuldt markeret tilbud som sendt', 'custom_module_settings' => 'Speciel Modul Indstillinger', @@ -2905,20 +2905,20 @@ $lang = array( 'local_part_placeholder' => 'DIT NAVN', 'from_name_placeholder' => 'Supportcenter', 'attachments' => 'Vedhæftede filer', - 'client_upload' => 'Klient uploads', - 'enable_client_upload_help' => 'Tillad Klienter at uploade dokumenter/vedhæftede filer', + 'client_upload' => 'Upload Kunder', + 'enable_client_upload_help' => 'Tillad Kunder at upload\'e dokumenter/vedhæftede filer', 'max_file_size_help' => 'Maksimal filstørrelse (KB) er begrænset af dine post_max_size og upload_max_filesize variabler som angivet i din PHP.INI', 'max_file_size' => 'Maksimal filstørrelse', 'mime_types' => 'Mime typer', 'mime_types_placeholder' => '. PDF , .docx, .jpg', 'mime_types_help' => 'Kommasepareret liste over tilladte mime-typer, lad tom for alle', - 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', - 'new_ticket_template_id' => 'New ticket', - 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', - 'update_ticket_template_id' => 'Updated ticket', - 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', - 'close_ticket_template_id' => 'Closed ticket', - 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', + 'ticket_number_start_help' => 'Ticket nummer skal være større en nyværende ticket nummer', + 'new_ticket_template_id' => 'Ny ticket', + 'new_ticket_autoresponder_help' => 'Valg af en skabelon vil sende et auto-svar til en kunde/kontakt når en ny sag oprettes', + 'update_ticket_template_id' => 'Opdater ticket', + 'update_ticket_autoresponder_help' => 'Valg af en skabelon vil sende et auto-svar til en kunde/kontakt når en sag bliver opdateret', + 'close_ticket_template_id' => 'Luk ticket', + 'close_ticket_autoresponder_help' => 'Valg af en skabelon vil sende et auto-svar til en kunde/kontakt når en sag lukkes', 'default_priority' => 'Standardprioritet', 'alert_new_comment_id' => 'Ny kommentar', 'update_ticket_notification_list' => 'Yderligere meddelelser om nye kommentarer', @@ -3044,7 +3044,7 @@ $lang = array( 'portal_mode' => 'Portaltilstand', 'attach_pdf' => 'Vedhæft PDF', 'attach_documents' => 'Vedhæft dokumenter', - 'attach_ubl' => 'Vedhæft UBL', + 'attach_ubl' => 'Vedhæft UBL/E-Faktura', 'email_style' => 'e-mail stil', 'processed' => 'Bearbejdet', 'fee_amount' => 'Gebyr Beløb', @@ -3052,8 +3052,8 @@ $lang = array( 'fee_cap' => 'Gebyrloft', 'limits_and_fees' => 'Grænser/gebyrer', 'credentials' => 'Legitimationsoplysninger', - 'require_billing_address_help' => 'Kræv, at Klient oplyser deres faktureringsadresse', - 'require_shipping_address_help' => 'Kræv, at Klient oplyser deres leveringsadresse', + 'require_billing_address_help' => 'Kræv at kunden angiver faktureringsadresse', + 'require_shipping_address_help' => 'Kræv at kunden angiver leveringsadresse', 'deleted_tax_rate' => 'Succesfuldt slettet skattesats', 'restored_tax_rate' => 'Succesfuldt genskabt skattesats', 'provider' => 'Udbyder', @@ -3079,7 +3079,7 @@ $lang = array( 'timezone' => 'Tidszone', 'filtered_by_group' => 'Filtreret efter gruppe', 'filtered_by_invoice' => 'Filtreret efter Faktura', - 'filtered_by_client' => 'Filtreret af Klient', + 'filtered_by_client' => 'Filter: Kunde ', 'filtered_by_vendor' => 'Filtreret af Sælger', 'group_settings' => 'Gruppe Indstillinger', 'groups' => 'Grupper', @@ -3116,10 +3116,10 @@ $lang = array( 'product2' => 'Speciel produkt 2', 'product3' => 'Speciel produkt 3', 'product4' => 'Speciel produkt 4', - 'client1' => 'Speciel Klient', - 'client2' => 'Speciel Klient 2', - 'client3' => 'Speciel Klient', - 'client4' => 'Speciel Klient', + 'client1' => 'Speciel Kunde 1', + 'client2' => 'Speciel Kunde 2', + 'client3' => 'Speciel Kunde 3', + 'client4' => 'Speciel Kunde 4', 'contact1' => 'Speciel kontakt 1', 'contact2' => 'Speciel kontakt 2', 'contact3' => 'Speciel kontakt 3', @@ -3185,8 +3185,8 @@ $lang = array( 'credit_email' => 'Kredit e-mail', 'domain_url' => 'Domæne-URL', 'password_is_too_easy' => 'Adgangskoden skal indeholde et stort bogstav og et tal', - 'client_portal_tasks' => 'Klient', - 'client_portal_dashboard' => 'Klient Portal Dashboard', + 'client_portal_tasks' => 'Kundeportalen Opgaver', + 'client_portal_dashboard' => 'Kundeportalen Dashboard', 'please_enter_a_value' => 'Indtast venligst en værdi', 'deleted_logo' => 'Succesfuldt slettet logo', 'generate_number' => 'Generer nummer', @@ -3276,15 +3276,15 @@ $lang = array( 'email_subject_quote' => 'e-mail Citat Emne', 'email_subject_payment' => 'e-mail Betaling Emne', 'switch_list_table' => 'Skift listetabel', - 'client_city' => 'Klient City', - 'client_state' => 'Klient', - 'client_country' => 'Klient', - 'client_is_active' => 'Klient er aktiv', - 'client_balance' => 'Klient balance', - 'client_address1' => 'Klient Street', - 'client_address2' => 'Klient Apt/Suite', - 'client_shipping_address1' => 'Klient Shipping Street', - 'client_shipping_address2' => 'Klient Shipping Apt/Suite', + 'client_city' => 'Kunde By', + 'client_state' => 'Kunde Region/Område', + 'client_country' => 'Kunde Land', + 'client_is_active' => 'Kunde er aktiv', + 'client_balance' => 'Kunde Saldo', + 'client_address1' => 'Kunde Gade/Vej', + 'client_address2' => 'Kunde Etage/Lejl.', + 'client_shipping_address1' => 'Kunde Levering Gade/Vej', + 'client_shipping_address2' => 'Kunde Levering Etage/Lejl.', 'tax_rate1' => 'Skattesats 1', 'tax_rate2' => 'Skattesats 2', 'tax_rate3' => 'Skattesats 3', @@ -3313,7 +3313,7 @@ $lang = array( 'license' => 'Licens', 'invoice_balance' => 'Faktura Balance', 'saved_design' => 'Succesfuldt gemt design', - 'client_details' => 'Klient', + 'client_details' => 'Kundeoplysninger', 'company_address' => 'Virksomhedens adresse', 'quote_details' => 'Citat detaljer', 'credit_details' => 'Kreditoplysninger', @@ -3367,7 +3367,7 @@ $lang = array( 'migration_went_wrong' => 'Ups! Noget gik galt! Sørg for, at du har opsat en Faktura Ninja v5-instans, før du starter migreringen.', 'cross_migration_message' => 'Migrering på tværs af konti er ikke tilladt. Læs mere om det her: https://invoiceninja.github.io/docs/migration/#troubleshooting', 'email_credit' => 'e-mail Kredit', - 'client_email_not_set' => 'Klient har ikke angivet en e-mail', + 'client_email_not_set' => 'Kunden har ikke angivet en e-mail', 'ledger' => 'Hovedbog', 'view_pdf' => 'Vis PDF', 'all_records' => 'Alle optegnelser', @@ -3400,7 +3400,7 @@ $lang = array( 'search_documents' => 'Søg i dokumenter', 'search_designs' => 'Søg designs', 'search_invoices' => 'Søg Fakturaer', - 'search_clients' => 'Søg efter Klienter', + 'search_clients' => 'Søg efter Kunder', 'search_products' => 'Søg efter produkter', 'search_quotes' => 'Søg citater', 'search_credits' => 'Søg Credits', @@ -3469,7 +3469,7 @@ $lang = array( 'gross' => 'Brutto', 'net_amount' => 'Net Beløb', 'net_balance' => 'Nettobalance', - 'client_settings' => 'Klient Indstillinger', + 'client_settings' => 'Indstillinger Kundeoplysninger', 'selected_invoices' => 'Udvalgte Fakturaer', 'selected_payments' => 'Valgte Betalinger', 'selected_quotes' => 'Udvalgte citater', @@ -3479,7 +3479,7 @@ $lang = array( 'create_payment' => 'Opret Betaling', 'update_quote' => 'Opdater citat', 'update_invoice' => 'Opdater Faktura', - 'update_client' => 'Opdater Klient', + 'update_client' => 'Opdatér Kundeoplysninger', 'update_vendor' => 'Opdater Sælger', 'create_expense' => 'Opret Udgift', 'update_expense' => 'Opdater Udgift', @@ -3511,13 +3511,13 @@ $lang = array( 'new_token' => 'Ny token', 'removed_token' => 'Succesfuldt fjernet token', 'restored_token' => 'Succesfuldt genskabt token', - 'client_registration' => 'Klient', - 'client_registration_help' => 'Giv Klienter mulighed for selv at registrere sig i portalen', + 'client_registration' => 'Kunde Oprettelse', + 'client_registration_help' => 'Giv Kunder adgang til at oprette sig i Kundeportalen', 'customize_and_preview' => 'Tilpas & Preview', 'search_document' => 'Søg i 1 dokument', 'search_design' => 'Søg 1 Design', 'search_invoice' => 'Søg 1 Faktura', - 'search_client' => 'Søg 1 Klient', + 'search_client' => 'Søg 1 Kunde', 'search_product' => 'Søg 1 produkt', 'search_quote' => 'Søg 1 citat', 'search_credit' => 'Søg 1 kredit', @@ -3539,7 +3539,7 @@ $lang = array( 'force_update_help' => 'Du kører den seneste version, men der kan være afventende rettelser tilgængelige.', 'mark_paid_help' => 'Spor Udgift er betalt', 'mark_invoiceable_help' => 'Aktiver Udgift til at blive faktureret', - 'add_documents_to_invoice_help' => 'Gør dokumenterne synlige for Klient', + 'add_documents_to_invoice_help' => 'Gør dokumenterne synlige for Kunden', 'convert_currency_help' => 'Indstil en valutakurs', 'expense_settings' => 'Udgift Indstillinger', 'clone_to_recurring' => 'Klon til Gentagen', @@ -3631,11 +3631,11 @@ $lang = array( 'late_invoice' => 'Sen Faktura', 'expired_quote' => 'Udløbet citat', 'remind_invoice' => 'Mind Faktura', - 'client_phone' => 'Klient Telefon', + 'client_phone' => 'Kunde Telefon', 'required_fields' => 'krævede felter', 'enabled_modules' => 'Aktiverede moduler', 'activity_60' => ':contact set citat :quote', - 'activity_61' => ':user opdateret Klient :client', + 'activity_61' => ':user opdaterede Kunde :client', 'activity_62' => ':user opdateret Sælger :vendor', 'activity_63' => ':user e-mailede den første påmindelse for Faktura :invoice til :contact', 'activity_64' => ':user e-mailede anden påmindelse for Faktura :invoice til :contact', @@ -3732,7 +3732,7 @@ $lang = array( 'converted_balance' => 'Konverteret saldo', 'is_sent' => 'Er sendt', 'document_upload' => 'Dokument upload', - 'document_upload_help' => 'Aktiver Klienter for at uploade dokumenter', + 'document_upload_help' => 'Tillad Kunder at upload\'e dokumenter/vedhæftede filer', 'expense_total' => 'Udgift total', 'enter_taxes' => 'Indtast Skatter', 'by_rate' => 'Efter sats', @@ -3754,8 +3754,8 @@ $lang = array( 'next_step' => 'Næste skridt', 'notification_credit_sent_subject' => 'Kredit :invoice blev sendt til :client', 'notification_credit_viewed_subject' => 'Kredit :invoice blev set af :client', - 'notification_credit_sent' => 'Følgende Klient :client blev sendt via e-mail Kredit :invoice for :amount .', - 'notification_credit_viewed' => 'Følgende Klient :client så Kredit :credit for :amount .', + 'notification_credit_sent' => 'Følgende Kunde :client fik sendt Kredit :invoice for :amount via e-mail.', + 'notification_credit_viewed' => 'Følgende Kunde:client så Kredit :credit for :amount .', 'reset_password_text' => 'Indtast din e-mail for at nulstille din adgangskode.', 'password_reset' => 'Nulstil kodeord', 'account_login_text' => 'Velkommen! Glad for at se dig.', @@ -3785,7 +3785,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity _nummer', 'email_link_not_working' => 'Hvis knappen ovenfor ikke virker for dig, så klik venligst på linket', 'display_log' => 'Vis log', - 'send_fail_logs_to_our_server' => 'Rapporter fejl i realtid', + 'send_fail_logs_to_our_server' => 'Rapporter fejl for at hjælpe med at forbedre app\'en', 'setup' => 'Opsætning', 'quick_overview_statistics' => 'Hurtigt overblik og statistik', 'update_your_personal_info' => 'Opdater dine personlige oplysninger', @@ -3932,7 +3932,7 @@ $lang = array( 'refund_without_invoices' => 'Forsøg på at tilbagebetale en Betaling med Faktura er vedhæftet, bedes du angive gyldige Faktura /s, der skal refunderes.', 'refund_without_credits' => 'Forsøg på at tilbagebetale en Betaling med vedhæftede kreditter, bedes du angive gyldige kreditter, der skal refunderes.', 'max_refundable_credit' => 'Forsøg på at refundere mere end tilladt for kredit :credit , maksimalt refunderbart Beløb er :amount', - 'project_client_do_not_match' => 'Project Klient matcher ikke Klient', + 'project_client_do_not_match' => 'Projektets Kundeoplysninger matcher ikke Kunden', 'quote_number_taken' => 'Citatnummer er allerede taget', 'recurring_invoice_number_taken' => 'Gentagen Faktura nummer :number allerede taget', 'user_not_associated_with_account' => 'Bruger er ikke tilknyttet denne konto', @@ -4048,7 +4048,7 @@ $lang = array( 'connected_gmail' => 'Succesfuldt forbundet Gmail', 'disconnected_gmail' => 'Succesfuldt afbrudt Gmail', 'update_fail_help' => 'Ændringer i kodebasen blokerer muligvis for opdateringen. Du kan køre denne kommando for at kassere ændringerne:', - 'client_id_number' => 'Klient ID-nummer', + 'client_id_number' => 'Kunde ID-nr.', 'count_minutes' => ':count Minutter', 'password_timeout' => 'Adgangskode timeout', 'shared_invoice_credit_counter' => 'Del Faktura /Kredittæller', @@ -4059,12 +4059,12 @@ $lang = array( 'activity_84' => ':user genskabt abonnement :subscription', 'amount_greater_than_balance_v5' => 'Beløb er større end Faktura balancen. Du kan ikke overbetale en Faktura .', 'click_to_continue' => 'Klik for at fortsætte', - 'notification_invoice_created_body' => 'Følgende Faktura :invoice blev oprettet for Klient :client for :amount .', + 'notification_invoice_created_body' => 'Følgende Faktura :invoice blev oprettet for Kunde :client for :amount .', 'notification_invoice_created_subject' => 'Faktura :invoice blev oprettet for :client', - 'notification_quote_created_body' => 'Følgende citat :invoice blev oprettet for Klient :client for :amount .', - 'notification_quote_created_subject' => 'Citat :invoice blev oprettet for :client', - 'notification_credit_created_body' => 'Følgende kredit :invoice blev oprettet for Klient :client for :amount .', - 'notification_credit_created_subject' => 'Kredit :invoice blev oprettet for :client', + 'notification_quote_created_body' => 'Følgende tilbud :invoice blev oprettet for Kunde :client for :amount .', + 'notification_quote_created_subject' => 'Tilbud :invoice blev oprettet for :client', + 'notification_credit_created_body' => 'Følgende kreditering :invoice blev oprettet for Kunde :clientmed :amount.', + 'notification_credit_created_subject' => 'Kreditering :invoice blev oprettet for :client', 'max_companies' => 'Maksimal virksomheder migrerede', 'max_companies_desc' => 'Du har nået dit maksimale antal virksomheder. Slet eksisterende virksomheder for at migrere nye.', 'migration_already_completed' => 'Virksomheden er allerede migreret', @@ -4197,7 +4197,7 @@ $lang = array( 'persist_data_help' => 'Gem data lokalt for at gøre det muligt for appen at starte hurtigere. Deaktivering kan forbedre ydeevnen på store konti', 'persist_ui' => 'Vedvarende UI', 'persist_ui_help' => 'Gem UI-tilstand lokalt for at aktivere appen til at starte på den sidste placering, deaktivering kan forbedre ydeevnen', - 'client_postal_code' => 'Klient postnummer', + 'client_postal_code' => 'Kunde Postnummer', 'client_vat_number' => 'Klient momsnummer', 'has_tasks' => 'Har opgaver', 'registration' => 'Registrering', @@ -4374,7 +4374,7 @@ $lang = array( 'client_shipping_country' => 'Klient forsendelsesland', 'load_pdf' => 'Indlæs PDF', 'start_free_trial' => 'Start gratis prøveperiode', - 'start_free_trial_message' => 'Start your FREE 14 day trial of the Pro Plan', + 'start_free_trial_message' => 'Start din GRATIS 14 dages prove af Pro Plan', 'due_on_receipt' => 'Forfalder ved modtagelse', 'is_paid' => 'Er betalt', 'age_group_paid' => 'Betalt', @@ -4771,11 +4771,11 @@ $lang = array( 'action_add_to_invoice' => 'Tilføj til Faktura', 'danger_zone' => 'Farezone', 'import_completed' => 'Import afsluttet', - 'client_statement_body' => 'Din erklæring fra :start _date til :end _date er vedhæftet.', + 'client_statement_body' => 'Dit kontoudtog fra :start _date til :end _date er vedhæftet.', 'email_queued' => 'e-mail i kø', 'clone_to_recurring_invoice' => 'Klon til Gentagen Faktura', 'inventory_threshold' => 'Beholdningstærskel', - 'emailed_statement' => 'Succesfuldt erklæring i kø skal sendes', + 'emailed_statement' => 'Succesfuldt sat kontoudtog i kø til afsendelse', 'show_email_footer' => 'Vis e-mail -sidefod', 'invoice_task_hours' => 'Faktura Opgave Timer', 'invoice_task_hours_help' => 'Tilføj timerne til Faktura linjeposterne', @@ -4805,7 +4805,7 @@ $lang = array( 'show_aging_table' => 'Vis aldringstabel', 'show_payments_table' => 'Vis Betalinger Tabel', 'only_clients_with_invoices' => 'Kun Klienter med Fakturaer', - 'email_statement' => 'e-mail erklæring', + 'email_statement' => 'E-mail Kontoudtog', 'once' => 'Enkelt gang', 'schedules' => 'Tidsplaner', 'new_schedule' => 'Nyt skema', @@ -5259,7 +5259,7 @@ $lang = array( 'task_round_to_nearest_help' => 'Afrundingsinterval for opgaven.', 'bulk_updated' => 'Data opdateret succesfuldt', 'bulk_update' => 'Bulk opdater', - 'calculate' => 'Calculate', + 'calculate' => 'Beregn', 'sum' => 'Sum', 'money' => 'Penge', 'web_app' => 'Web App', @@ -5271,21 +5271,35 @@ $lang = array( 'btcpay_refund_body' => 'En refundering til dig er blevet udstedt. For at gøre krav på det via BTCPay, klik venligst på dette link:', 'currency_mauritanian_ouguiya' => 'Mauritanian Ouguiya', 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', - 'end_of_month' => 'End Of Month', - 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', - 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', - 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', - 'activity_141' => 'User :user entered note: :notes', - 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', - 'quote_reminder_message' => 'Reminder for quote :number for :amount', - 'quote_reminder1' => 'First Quote Reminder', - 'before_valid_until_date' => 'Before the valid until date', - 'after_valid_until_date' => 'After the valid until date', - 'after_quote_date' => 'After the quote date', - 'remind_quote' => 'Remind Quote', - 'end_of_month' => 'End Of Month', - 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', - 'edocument_import_already_exists' => 'The invoice has already been imported on :date' + 'end_of_month' => 'Sidste i måneden', + 'merge_e_invoice_to_pdf' => 'Sammenflet E-Faktura og PDF', + 'task_assigned_subject' => 'Ny opgave tildelt [Opgave :task ] [ :date ]', + 'task_assigned_body' => 'Du er blevet tildelt opgave :task

Beskrivelse: :beskrivelse

Kunde : :client', + 'activity_141' => 'Bruger :user indtastet notat: :notes', + 'quote_reminder_subject' => 'Påmindelse: Tilbud :quote fra :company', + 'quote_reminder_message' => 'Påmindelse vedrørende tilbud :number for :amount', + 'quote_reminder1' => 'Første Tilbuds påmindelse', + 'before_valid_until_date' => 'Inden gyldig indtil dato', + 'after_valid_until_date' => 'Efter den gyldige indtil dato', + 'after_quote_date' => 'Efter tilbuds dato', + 'remind_quote' => 'Tilbudspåmindelse', + 'end_of_month' => 'Sidste i måneden', + 'tax_currency_mismatch' => 'Skatte valuta er forskellig fra faktura valuta', + 'edocument_import_already_exists' => 'Faktura er allerede blevet importeret den :date', + 'before_valid_until' => 'Før gældende indtil', + 'after_valid_until' => 'Efter den gældende indtil', + 'task_assigned_notification' => 'Opgave Tildelte Underretning', + 'task_assigned_notification_help' => 'Send en e-mail når en opgave bliver tildelt', + 'invoices_locked_end_of_month' => 'Fakturaer er låst i slutningen af måneden', + 'referral_url' => 'Henvisnings-URL', + 'add_comment' => 'Tilføj kommentar', + 'added_comment' => 'Kommentar gemt successfuldt', + 'tickets' => 'Tickets', + 'assigned_group' => 'Gruppe tildelt successfuldt', + 'merge_to_pdf' => 'Sammenflet til PDF', + 'latest_requires_php_version' => 'Bemærk: den seneste version kræver PHP :version', + 'auto_expand_product_table_notes' => 'Udvid automatisk produkt tabel noter', + 'auto_expand_product_table_notes_help' => 'Udvider automatisk notesektionen i produkt tabellen til at vise flere linjer.', ); return $lang; diff --git a/lang/de/texts.php b/lang/de/texts.php index a282945440a5..e8ca2e7e7a61 100644 --- a/lang/de/texts.php +++ b/lang/de/texts.php @@ -1100,7 +1100,7 @@ $lang = array( 'invoice_embed_documents' => 'Dokumente einbetten', 'invoice_embed_documents_help' => 'Bildanhänge zu den Rechnungen hinzufügen.', 'document_email_attachment' => 'Dokumente anhängen', - 'ubl_email_attachment' => 'UBL anhängen', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Dokumente herunterladen (:size)', 'documents_from_expenses' => 'Von Kosten:', 'dropzone_default_message' => 'Dateien hierhin ziehen oder klicken, um Dateien hochzuladen', @@ -2365,7 +2365,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese 'currency_gold_troy_ounce' => 'Goldene Feinunze', 'currency_nicaraguan_córdoba' => 'Nicaraguanischer Córdoba', 'currency_malagasy_ariary' => 'Madagassischer Ariary', - "currency_tongan_pa_anga" => "Tongaischer Paʻanga", + "currency_tongan_paanga" => "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', @@ -2881,19 +2881,6 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese 'refunded' => 'Erstattet', 'marked_quote_as_sent' => 'Angebot erfolgreich als versendet markiert', 'custom_module_settings' => 'Benutzerdefinierte Moduleinstellungen', - 'ticket' => 'Ticket', - 'tickets' => 'Tickets', - 'ticket_number' => 'Ticket #', - 'new_ticket' => 'Neues Ticket', - 'edit_ticket' => 'Ticket bearbeiten', - 'view_ticket' => 'Ticket anzeigen', - 'archive_ticket' => 'Ticket archivieren', - 'restore_ticket' => 'Ticket wieder herstellen', - 'delete_ticket' => 'Ticket löschen', - 'archived_ticket' => 'Ticket erfolgreich archiviert', - 'archived_tickets' => 'Ticket erfolgreich archiviert', - 'restored_ticket' => 'Ticket erfolgreich wieder hergestellt', - 'deleted_ticket' => 'Ticket erfolgreich gelöscht', 'open' => 'Offen', 'new' => 'Neu', 'closed' => 'Geschlossen', @@ -2910,14 +2897,6 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese 'assigned_to' => 'Zugewiesen an', 'reply' => 'Antwort', 'awaiting_reply' => 'Warten auf Antwort', - 'ticket_close' => 'Ticket schließen', - 'ticket_reopen' => 'Ticket wieder öffnen', - 'ticket_open' => 'Ticket öffnen', - 'ticket_split' => 'Ticket teilen', - 'ticket_merge' => 'Ticket zusammenführen', - 'ticket_update' => 'Ticket aktualisieren', - 'ticket_settings' => 'Ticket Einstelungen', - 'updated_ticket' => 'Ticket aktualisiert', 'mark_spam' => 'Als Spam markieren', 'local_part' => 'Lokaler Teil', 'local_part_unavailable' => 'Name übernommen', @@ -2935,31 +2914,23 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese 'mime_types' => 'Mime-Typen', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Kommagetrennte Liste der zulässigen Mime-Typen, leer lassen für alle', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Standardpriorität', 'alert_new_comment_id' => 'Neuer Kommentar', - 'alert_comment_ticket_help' => 'Die Auswahl einer Vorlage sendet eine Benachrichtigung (an den Agenten), wenn ein Kommentar abgegeben wird.', - 'alert_comment_ticket_email_help' => 'Komma getrennte E-Mails an bcc bei neuem Kommentar.', - 'new_ticket_notification_list' => 'Zusätzliche neue Ticket-Benachrichtigungen', 'update_ticket_notification_list' => 'Zusätzliche Benachrichtigungen über neue Kommentare', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Ticketzuweisung', - 'alert_ticket_assign_agent_id_hel' => 'Die Auswahl einer Vorlage sendet eine Benachrichtigung (an den Agenten), wenn ein Ticket zugewiesen wird.', - 'alert_ticket_assign_agent_id_notifications' => 'Zusätzliche Ticketbenachrichtigungen', - 'alert_ticket_assign_agent_id_help' => 'Komma getrennte E-Mails an bcc bei der Ticketvergabe.', - 'alert_ticket_transfer_email_help' => 'Komma getrennte E-Mails an bcc bei der Ticketübertragung.', - 'alert_ticket_overdue_agent_id' => 'Ticket überfällig', - 'alert_ticket_overdue_email' => 'Zusätzliche überfällige Ticket-Benachrichtigungen', - 'alert_ticket_overdue_email_help' => 'Komma getrennte E-Mails an bcc bei überfälligem Ticket.', - 'alert_ticket_overdue_agent_id_help' => 'Die Auswahl einer Vorlage sendet eine Benachrichtigung (an den Agenten), wenn ein Ticket überfällig wird.', 'default_agent' => 'Standard-Agent', 'default_agent_help' => 'Wenn ausgewählt, wird er automatisch allen eingehenden Tickets zugeordnet.', 'show_agent_details' => 'Zeigen Sie Agentendetails in den Antworten an', 'avatar' => 'Profilbild', 'remove_avatar' => 'Profilbild entfernen', - 'ticket_not_found' => 'Ticket nicht gefunden', 'add_template' => 'Vorlage hinzufügen', - 'updated_ticket_template' => 'Ticket Vorlage aktualisiert', - 'created_ticket_template' => 'Ticket Vorlage erstellt', 'archive_ticket_template' => 'Vorlage archiviert', 'restore_ticket_template' => 'Vorlage wieder herstellen', 'archived_ticket_template' => 'Vorlage erfolgreich archiviert', @@ -3075,7 +3046,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese 'portal_mode' => 'Portalmodus', 'attach_pdf' => 'PDF anhängen', 'attach_documents' => 'Dokumente anhängen', - 'attach_ubl' => 'UBL anhängen', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'E-Mail-Stil', 'processed' => 'Verarbeitet', 'fee_amount' => 'Zuschlag Betrag', @@ -3817,7 +3788,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting', 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'Wenn die Schaltfläche oben nicht funktioniert, klicken Sie bitte auf den Link', 'display_log' => 'Log anzeigen', - 'send_fail_logs_to_our_server' => 'Fehler in Echtzeit melden', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Setup', 'quick_overview_statistics' => 'Schnellüberblick & Statistiken', 'update_your_personal_info' => 'Aktualisieren Sie Ihre Profil', @@ -5307,6 +5278,33 @@ Leistungsempfängers', 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/el/texts.php b/lang/el/texts.php index 9dde6b9dafd8..9ff52a5d0988 100644 --- a/lang/el/texts.php +++ b/lang/el/texts.php @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'Ενσωματωμένα Έγγραφα', 'invoice_embed_documents_help' => 'Συμπεριλάβετε τις συνημμένες εικόνες στο τιμολόγιο', 'document_email_attachment' => 'Επισύναψη Εγγράφων', - 'ubl_email_attachment' => 'Επισύναψε UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Κατέβασμα Εγγράφων (:size)', 'documents_from_expenses' => 'Από Δαπάνες:', 'dropzone_default_message' => 'Σύρετε τα αρχεία ή κάντε κλικ για μεταφόρτωση', @@ -2364,7 +2364,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Ελπίζουμε να απολαμβάνετε τη χρήση της εφαρμογής.
Εάν θα θέλατε να γράψετε μια κριτική :link θα το εκτιμούσαμε ιδιαίτερα!', 'writing_a_review' => 'συγγραφή κριτικής', @@ -2880,19 +2880,6 @@ $lang = array( 'refunded' => 'Επιστροφή χρημάτων', 'marked_quote_as_sent' => 'Επιτυχής ορισμός προσφοράς ως απεσταλμένη', 'custom_module_settings' => 'Ρυθμίσεις Προσαρμοσμένης Μονάδας', - 'ticket' => 'Αίτημα υποστήριξης', - 'tickets' => 'Αιτήματα υποστήριξης', - 'ticket_number' => 'Αίτημα υποστήριξης #', - 'new_ticket' => 'Νέο Αίτημα υποστήριξης', - 'edit_ticket' => 'Επεξεργασία Αιτήματος υποστήριξης', - 'view_ticket' => 'Προβολή Αιτήματος υποστήριξης', - 'archive_ticket' => 'Αρχειοθέτηση Αιτήματος υποστήριξης', - 'restore_ticket' => 'Ανάκτηση Αιτήματος υποστήριξης', - 'delete_ticket' => 'Διαγραφή Αιτήματος υποστήριξης', - 'archived_ticket' => 'Επιτυχής αρχειοθέτηση αιτήματος υποστήριξης', - 'archived_tickets' => 'Επιτυχής αρχειοθέτηση αιτήματος υποστήριξης', - 'restored_ticket' => 'Επιτυχής ανάκτηση αιτήματος υποστήριξης', - 'deleted_ticket' => 'Επιτυχής διαγραφή αιτήματος υποστήριξης', 'open' => 'Ανοιχτό', 'new' => 'Νέο', 'closed' => 'Κλειστό', @@ -2909,14 +2896,6 @@ $lang = array( 'assigned_to' => 'Ανατέθηκε σε', 'reply' => 'Απάντηση', 'awaiting_reply' => 'Αναμονή απάντησης', - 'ticket_close' => 'Κλείσιμο Αιτήματος υποστήριξης', - 'ticket_reopen' => 'Επανάνοιγμα Αιτήματος υποστήριξης', - 'ticket_open' => 'Άνοιγμα Αιτήματος υποστήριξης', - 'ticket_split' => 'Διχοτόμηση Αιτήματος υποστήριξης', - 'ticket_merge' => 'Συνένωση Αιτήματος υποστήριξης', - 'ticket_update' => 'Ενημέρωση Αιτήματος υποστήριξης', - 'ticket_settings' => 'Ρυθμίσεις Αιτήματος υποστήριξης', - 'updated_ticket' => 'Ενημερώθηκε το Αίτημα υποστήριξης', 'mark_spam' => 'Σήμανση ως ανεπιθύμητο', 'local_part' => 'Τοπικό Τμήμα', 'local_part_unavailable' => 'Το όνομα είναι δεσμευμένο', @@ -2934,31 +2913,23 @@ $lang = array( 'mime_types' => 'Τύποι αρχείων', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Λίστα χωριζόμενων με κόμμα τύπων αρχείων, αφήστε το κενό για όλους', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Προεπιλεγμένη προτεραιότητα', 'alert_new_comment_id' => 'Νέο σχόλιο', - 'alert_comment_ticket_help' => 'Η επιλογή ενός προτύπου θα στείλει μία ειδοποίηση (στον εκπρόσωπο) όταν προστεθεί ένα σχόλιο.', - 'alert_comment_ticket_email_help' => 'Διαχωρίστε με κόμμα τα emails για να σταλεί μια κρυφή κοινοποίηση σε κάθε νέο σχόλιο', - 'new_ticket_notification_list' => 'Επιπλέον ειδοποιήσεις νέου αιτήματος υποστήριξης', 'update_ticket_notification_list' => 'Επιπλέον ειδοποιήσεις νέου σχολίου', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Ανάθεση αιτήματος υποστήριξης', - 'alert_ticket_assign_agent_id_hel' => 'Η επιλογή ενός προτύπου θα στείλει μία ειδοποίηση (στον εκπρόσωπο) όταν ανατεθεί ένα αίτημα υποστήριξης.', - 'alert_ticket_assign_agent_id_notifications' => 'Επιπλέον ειδοποιήσεις ανάθεσης αιτήματος υποστήριξης', - 'alert_ticket_assign_agent_id_help' => 'Διαχωρίστε με κόμμα τα emails για να σταλεί μια κρυφή κοινοποίηση όταν ανατεθεί το αίτημα υποστήριξης', - 'alert_ticket_transfer_email_help' => 'Διαχωρίστε με κόμμα τα emails για να σταλεί μια κρυφή κοινοποίηση όταν μεταφερθεί το αίτημα υποστήριξης', - 'alert_ticket_overdue_agent_id' => 'Αίτημα υποστήριξης σε καθυστέρηση', - 'alert_ticket_overdue_email' => 'Επιπλέον ειδοποιήσεις καθυστερούμενου αιτήματος υποστήριξης', - 'alert_ticket_overdue_email_help' => 'Διαχωρίστε με κόμμα τα emails για να σταλεί μια κρυφή κοινοποίηση όταν το αίτημα υποστήριξης τεθεί σε καθυστέρηση', - 'alert_ticket_overdue_agent_id_help' => 'Η επιλογή ενός προτύπου θα στείλει μία ειδοποίηση (στον εκπρόσωπο) όταν ένα αίτημα υποστήριξης γίνει εκπρόθεσμο.', 'default_agent' => 'Προεπιλεγμένος Εκπρόσωπος', 'default_agent_help' => 'Εάν επιλεγεί θα του ανατεθούν όλα τα εισερχόμενα αιτήματα υποστήριξης', 'show_agent_details' => 'Εμφάνιση λεπτομερειών εκπροσώπου στις απαντήσεις', 'avatar' => 'Avatar', 'remove_avatar' => 'Διαγραφή avatar', - 'ticket_not_found' => 'Δεν βρέθηκε το αίτημα υποστήριξης', 'add_template' => 'Προσθήκη Προτύπου', - 'updated_ticket_template' => 'Ενημερώθηκε το πρότυπο αιτήματος υποστήριξης', - 'created_ticket_template' => 'Δημιουργήθηκε το πρότυπο αιτήματος υποστήριξης', 'archive_ticket_template' => 'Αρχειοθέτηση Προτύπου', 'restore_ticket_template' => 'Ανάκτηση Προτύπου', 'archived_ticket_template' => 'Επιτυχής αρχειοθέτηση προτύπου', @@ -3074,7 +3045,7 @@ $lang = array( 'portal_mode' => 'Περιβάλλον Portal', 'attach_pdf' => 'Επισύναψε PDF', 'attach_documents' => 'Επισύναψη Εγγράφων', - 'attach_ubl' => 'Επισύναψη UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Στυλ Email', 'processed' => 'Επεξεργάσθηκε', 'fee_amount' => 'Ποσό Τέλους', @@ -3815,7 +3786,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', 'display_log' => 'Εμφάνιση αρχείου καταγραφής', - 'send_fail_logs_to_our_server' => 'Αναφορά σφαλμάτων σε πραγματικό χρόνο', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Καθορισμός', 'quick_overview_statistics' => 'Quick overview & statistics', 'update_your_personal_info' => 'Επικαιροποίησε τις προσωπικές σου πληροφορίες', @@ -5303,6 +5274,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/en/texts.php b/lang/en/texts.php index f092f2cf9c96..e2bad2efdae3 100644 --- a/lang/en/texts.php +++ b/lang/en/texts.php @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'Embed Documents', 'invoice_embed_documents_help' => 'Include attached images in the invoice.', 'document_email_attachment' => 'Attach Documents', - 'ubl_email_attachment' => 'Attach UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', 'dropzone_default_message' => 'Drop files or click to upload', @@ -3045,7 +3045,7 @@ $lang = array( 'portal_mode' => 'Portal Mode', 'attach_pdf' => 'Attach PDF', 'attach_documents' => 'Attach Documents', - 'attach_ubl' => 'Attach UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Email Style', 'processed' => 'Processed', 'fee_amount' => 'Fee Amount', @@ -5238,7 +5238,7 @@ $lang = array( 'local_domain_help' => 'EHLO domain (optional)', 'port_help' => 'ie. 25,587,465', 'host_help' => 'ie. smtp.gmail.com', - 'always_show_required_fields' => 'Allows show required fields form', + 'always_show_required_fields' => 'Always show required fields form', 'always_show_required_fields_help' => 'Displays the required fields form always at checkout', 'advanced_cards' => 'Advanced Cards', 'activity_140' => 'Statement sent to :client', @@ -5299,6 +5299,8 @@ $lang = array( 'assigned_group' => 'Successfully assigned group', 'merge_to_pdf' => 'Merge to PDF', 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); return $lang; diff --git a/lang/es/texts.php b/lang/es/texts.php index ad5fccf156b8..a53b342bf596 100644 --- a/lang/es/texts.php +++ b/lang/es/texts.php @@ -1098,7 +1098,7 @@ $lang = array( 'invoice_embed_documents' => 'Embed Documents', 'invoice_embed_documents_help' => 'Include attached images in the invoice.', 'document_email_attachment' => 'Attach Documents', - 'ubl_email_attachment' => 'Adjuntar UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', 'dropzone_default_message' => 'Drop files or click to upload', @@ -2363,7 +2363,7 @@ $lang = array( '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", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Esperamos que estés disfrutando de usar la aplicación.
Si consideras :link lo apreciaremos mucho!', 'writing_a_review' => 'escribiendo una reseña', @@ -2879,19 +2879,6 @@ $lang = array( 'refunded' => 'Reintegrado', 'marked_quote_as_sent' => 'Presupuesto marcado correctamente como enviado', 'custom_module_settings' => 'Configuración del módulo personalizado', - 'ticket' => 'Boleto', - 'tickets' => 'Entradas', - 'ticket_number' => 'Boleto #', - 'new_ticket' => 'Nuevo boleto', - 'edit_ticket' => 'Editar boleto', - 'view_ticket' => 'Ver boleto', - 'archive_ticket' => 'Boleto de archivo', - 'restore_ticket' => 'Restaurar boleto', - 'delete_ticket' => 'Eliminar boleto', - 'archived_ticket' => 'Ticket archivado con éxito', - 'archived_tickets' => 'Tickets archivados con éxito', - 'restored_ticket' => 'Boleto restaurado con éxito', - 'deleted_ticket' => 'Boleto eliminado con éxito', 'open' => 'Abierto', 'new' => 'Nuevo', 'closed' => 'Cerrado', @@ -2908,14 +2895,6 @@ $lang = array( 'assigned_to' => 'Asignado a', 'reply' => 'Responder', 'awaiting_reply' => 'Esperando respuesta', - 'ticket_close' => 'Cerrar ticket', - 'ticket_reopen' => 'Boleto de reapertura', - 'ticket_open' => 'Boleto abierto', - 'ticket_split' => 'Boleto dividido', - 'ticket_merge' => 'Boleto de combinación', - 'ticket_update' => 'Actualizar ticket', - 'ticket_settings' => 'Configuración de boletos', - 'updated_ticket' => 'Boleto actualizado', 'mark_spam' => 'Marcar como correo no deseado', 'local_part' => 'Parte local', 'local_part_unavailable' => 'Nombre tomado', @@ -2933,31 +2912,23 @@ $lang = array( 'mime_types' => 'Tipos de mimo', 'mime_types_placeholder' => '.pdf, .docx, .jpg', 'mime_types_help' => 'Lista separada por comas de tipos MIME permitidos, déjela en blanco para todos', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Prioridad predeterminada', 'alert_new_comment_id' => 'Nuevo comentario', - 'alert_comment_ticket_help' => 'Al seleccionar una plantilla, se enviará una notificación (al agente) cuando se realice un comentario.', - 'alert_comment_ticket_email_help' => 'Correos electrónicos separados por comas a BCC en un nuevo comentario.', - 'new_ticket_notification_list' => 'Notificaciones adicionales de nuevos boletos', 'update_ticket_notification_list' => 'Notificaciones adicionales de nuevos comentarios', 'comma_separated_values' => 'admin@ejemplo.com, supervisor@ejemplo.com', - 'alert_ticket_assign_agent_id' => 'Asignación de entradas', - 'alert_ticket_assign_agent_id_hel' => 'Al seleccionar una plantilla, se enviará una notificación (al agente) cuando se asigne un ticket.', - 'alert_ticket_assign_agent_id_notifications' => 'Notificaciones adicionales de boletos asignados', - 'alert_ticket_assign_agent_id_help' => 'Correos electrónicos separados por comas a BCC en la asignación de tickets.', - 'alert_ticket_transfer_email_help' => 'Correos electrónicos separados por comas a BCC en la transferencia de boletos.', - 'alert_ticket_overdue_agent_id' => 'Boleto vencido', - 'alert_ticket_overdue_email' => 'Notificaciones adicionales de boletos vencidos', - 'alert_ticket_overdue_email_help' => 'Correos electrónicos separados por comas a BCC en ticket vencido.', - 'alert_ticket_overdue_agent_id_help' => 'Al seleccionar una plantilla, se enviará una notificación (al agente) cuando venza un ticket.', 'default_agent' => 'Agente predeterminado', 'default_agent_help' => 'Si se selecciona, se asignará automáticamente a todos los boletos entrantes', 'show_agent_details' => 'Mostrar detalles del agente en las respuestas', 'avatar' => 'Avatar', 'remove_avatar' => 'Quitar avatar', - 'ticket_not_found' => 'Boleto no encontrado', 'add_template' => 'Agregar plantilla', - 'updated_ticket_template' => 'Plantilla de ticket actualizada', - 'created_ticket_template' => 'Plantilla de ticket creada', 'archive_ticket_template' => 'Plantilla de archivo', 'restore_ticket_template' => 'Plantilla de restauración', 'archived_ticket_template' => 'Plantilla archivada correctamente', @@ -3073,7 +3044,7 @@ $lang = array( 'portal_mode' => 'Modo portal', 'attach_pdf' => 'Adjuntar PDF', 'attach_documents' => 'Adjuntar Documentos', - 'attach_ubl' => 'Adjuntar UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Estilo de correo electrónico', 'processed' => 'Procesada', 'fee_amount' => 'Importe de la cuota', @@ -3814,7 +3785,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_número', 'email_link_not_working' => 'Si el botón de arriba no funciona para usted, por favor haga clic en el enlace', 'display_log' => 'Mostrar registro', - 'send_fail_logs_to_our_server' => 'Reportar errores en tiempo real', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Configuración', 'quick_overview_statistics' => 'Resumen rápido y estadísticas', 'update_your_personal_info' => 'Actualice su información personal', @@ -5302,6 +5273,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/es_ES/texts.php b/lang/es_ES/texts.php index ea9cba5585dd..8bad35c312cb 100644 --- a/lang/es_ES/texts.php +++ b/lang/es_ES/texts.php @@ -1095,7 +1095,7 @@ $lang = array( 'invoice_embed_documents' => 'Documentos anexados', 'invoice_embed_documents_help' => 'Incluye imagenes adjuntas en la factura', 'document_email_attachment' => 'Adjuntar documentos', - 'ubl_email_attachment' => 'Adjuntar URL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Descargar documentos (:size)', 'documents_from_expenses' => 'De los Gastos:', 'dropzone_default_message' => 'Arrastra ficheros aquí o Haz clic para subir', @@ -2360,7 +2360,7 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c '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", + "currency_tongan_paanga" => "Tongan Pa'anga", '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', @@ -2876,19 +2876,6 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c 'refunded' => 'Reembolsado', 'marked_quote_as_sent' => 'Presupuesto marcado como enviado correctamente', 'custom_module_settings' => 'Opciones del Módulo Personalizado', - 'ticket' => 'Ticket', - 'tickets' => 'Tickets', - 'ticket_number' => 'N. Ticket', - 'new_ticket' => 'Nuevo Ticket', - 'edit_ticket' => 'Editar Ticket', - 'view_ticket' => 'Ver Ticket', - 'archive_ticket' => 'Archivar Ticket', - 'restore_ticket' => 'Restaurar Ticket', - 'delete_ticket' => 'Eliminar Ticket', - 'archived_ticket' => 'Ticket archivado correctamente', - 'archived_tickets' => 'Tickets archivados correctamente', - 'restored_ticket' => 'Ticket restaurado correctamente', - 'deleted_ticket' => 'Ticket eliminado correctamente', 'open' => 'Abrir', 'new' => 'Nuevo', 'closed' => 'Cerrado', @@ -2905,14 +2892,6 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c 'assigned_to' => 'Asignado a', 'reply' => 'Responder', 'awaiting_reply' => 'Esperando respuesta', - 'ticket_close' => 'Cerrar Ticket', - 'ticket_reopen' => 'Reabrir Ticket', - 'ticket_open' => 'Abrir Ticket', - 'ticket_split' => 'Dividir Ticket', - 'ticket_merge' => 'Unir Ticket', - 'ticket_update' => 'Actualizar Ticket', - 'ticket_settings' => 'Opciones de Ticket', - 'updated_ticket' => 'Ticket Actualizado', 'mark_spam' => 'Marcar como Spam', 'local_part' => 'Parte Local', 'local_part_unavailable' => 'Nombre asignado', @@ -2930,31 +2909,23 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c 'mime_types' => 'Tipos de ficheros', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Lista separada por comas de los tipos mime de fichero aceptados, déjalo en blanco para todos', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Prioridad por defecto', 'alert_new_comment_id' => 'Nuevo comentario', - 'alert_comment_ticket_help' => 'Seleccionando una plantilla enviará una notificación (a un agente) cuando se haga un comentario.', - 'alert_comment_ticket_email_help' => 'Lista de emails separados por coma en el campo BCC en un nuevo comentario.', - 'new_ticket_notification_list' => 'Notificaciones de nuevo ticket adicionales', 'update_ticket_notification_list' => 'Notificaciones de nuevo comentario adicionales', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Asignación de ticket', - 'alert_ticket_assign_agent_id_hel' => 'Seleccionando una plantilla enviará una notificación (a un agente) cuando un ticket sea asignado.', - 'alert_ticket_assign_agent_id_notifications' => 'Notificaciones de ticket asignado adicionales', - 'alert_ticket_assign_agent_id_help' => 'Lista de emails separados por coma en el campo BCC en la asignación de ticket.', - 'alert_ticket_transfer_email_help' => 'Lista de emails separados por coma en el campo BCC en la transferencia de ticket.', - 'alert_ticket_overdue_agent_id' => 'Ticket vencido', - 'alert_ticket_overdue_email' => 'Notificaciones de ticket vencido adicionales', - 'alert_ticket_overdue_email_help' => 'Lista de emails separados por coma en el campo BCC en el vencimiento de ticket.', - 'alert_ticket_overdue_agent_id_help' => 'Seleccionando una plantilla enviará una notificación (a un agente) cuando un ticket llegue a la fecha de vencimiento.', 'default_agent' => 'Agente por Defecto', 'default_agent_help' => 'Si se selecciona, será asignado automáticamente en todos los tickets de entrada', 'show_agent_details' => 'Mostrar los detalles del agente en las respuestas', 'avatar' => 'Avatar', 'remove_avatar' => 'Eliminar avatar', - 'ticket_not_found' => 'Ticket no encontrado', 'add_template' => 'Añadir Plantila', - 'updated_ticket_template' => 'Plantilla de Ticket Actualizada', - 'created_ticket_template' => 'Plantilla de Ticket Creada', 'archive_ticket_template' => 'Archivar Plantilla', 'restore_ticket_template' => 'Restaurar Plantilla', 'archived_ticket_template' => 'Plantilla archivada correctamente', @@ -3070,7 +3041,7 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c 'portal_mode' => 'Modo portal', 'attach_pdf' => 'Adjuntar PDF', 'attach_documents' => 'Adjuntar Documentos', - 'attach_ubl' => 'Adjuntar UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Estilo de correo electrónico', 'processed' => 'Procesado', 'fee_amount' => 'Importe de la cuota', @@ -3811,7 +3782,7 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'Si el botón de arriba no te está funcionando, por favor pulsa en el enlace', 'display_log' => 'Mostrar Registro', - 'send_fail_logs_to_our_server' => 'Reportar errores en tiempo real', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Instalación', 'quick_overview_statistics' => 'Vistazo rápido y estadísticas', 'update_your_personal_info' => 'Actualiza tu información personal', @@ -5300,6 +5271,33 @@ De lo contrario, este campo deberá dejarse en blanco.', 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/et/texts.php b/lang/et/texts.php index 49c6a1a51309..51b7b2632fd0 100644 --- a/lang/et/texts.php +++ b/lang/et/texts.php @@ -1100,7 +1100,7 @@ $lang = array( 'invoice_embed_documents' => 'Manusta dokumendid', 'invoice_embed_documents_help' => 'Lisage arvele lisatud pildid.', 'document_email_attachment' => 'Lisa dokumendid', - 'ubl_email_attachment' => 'Lisa UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Laadi alla dokumendid (:size)', 'documents_from_expenses' => 'Kuludest:', 'dropzone_default_message' => 'Asetage failid või klõpsake üleslaadimiseks', @@ -2364,7 +2364,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Loodame, et teile meeldib rakenduse kasutamine.
Kui kaaluksite :link, oleksime selle eest väga tänulikud!', 'writing_a_review' => 'arvustuse kirjutamine', @@ -2880,19 +2880,6 @@ $lang = array( 'refunded' => 'Tagastatud', 'marked_quote_as_sent' => 'Hinnapakkumine märgiti saadetuks', 'custom_module_settings' => 'Kohandatud mooduli sätted', - 'ticket' => 'Pilet', - 'tickets' => 'Piletid', - 'ticket_number' => 'Pilet #', - 'new_ticket' => 'Uus pilet', - 'edit_ticket' => 'Muuda piletit', - 'view_ticket' => 'Vaata piletit', - 'archive_ticket' => 'Arhiveeri pilet', - 'restore_ticket' => 'Taasta pilet', - 'delete_ticket' => 'Kustuta pilet', - 'archived_ticket' => 'Pileti arhiveerimine õnnestus', - 'archived_tickets' => 'Piletite arhiveerimine õnnestus', - 'restored_ticket' => 'Pilet edukalt taastatud', - 'deleted_ticket' => 'Pilet edukalt kustutatud', 'open' => 'Avatud', 'new' => 'Uus', 'closed' => 'Suletud', @@ -2909,14 +2896,6 @@ $lang = array( 'assigned_to' => 'Määratud', 'reply' => 'Vasta', 'awaiting_reply' => 'Ootan vastust', - 'ticket_close' => 'Sule pilet', - 'ticket_reopen' => 'Ava pilet uuesti', - 'ticket_open' => 'Ava pilet', - 'ticket_split' => 'Jagage pilet', - 'ticket_merge' => 'Ühendage pilet', - 'ticket_update' => 'Uuenda piletit', - 'ticket_settings' => 'Pileti seaded', - 'updated_ticket' => 'Pilet uuendatud', 'mark_spam' => 'Märgi rämpspostiks', 'local_part' => 'Local Part', 'local_part_unavailable' => 'Nimi võetud', @@ -2934,31 +2913,23 @@ $lang = array( 'mime_types' => 'Mime types', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Comma separated list of allowed mime types, leave blank for all', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Default priority', 'alert_new_comment_id' => 'Uus kommentaar', - 'alert_comment_ticket_help' => 'Malli valimine saadab kommentaari tegemisel teate (agendile).', - 'alert_comment_ticket_email_help' => 'Comma separated emails to bcc on new comment.', - 'new_ticket_notification_list' => 'Additional new ticket notifications', 'update_ticket_notification_list' => 'Additional new comment notifications', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Ticket assignment', - 'alert_ticket_assign_agent_id_hel' => 'Malli valimine saadab (agendile) teate, kui pilet on määratud.', - 'alert_ticket_assign_agent_id_notifications' => 'Malli valimine saadab (agendile) teate, kui pilet on määratud.', - 'alert_ticket_assign_agent_id_help' => 'Comma separated emails to bcc on ticket assignment.', - 'alert_ticket_transfer_email_help' => 'Comma separated emails to bcc on ticket transfer.', - 'alert_ticket_overdue_agent_id' => 'Pilet üle tähtaja', - 'alert_ticket_overdue_email' => 'Additional overdue ticket notifications', - 'alert_ticket_overdue_email_help' => 'Comma separated emails to bcc on ticket overdue.', - 'alert_ticket_overdue_agent_id_help' => 'Malli valimine saadab (agendile) teate, kui pilet on üle tähtaja.', 'default_agent' => 'Vaikimisi agent', 'default_agent_help' => 'If selected will automatically be assigned to all inbound tickets', 'show_agent_details' => 'Näidake vastuste kohta agendi üksikasju', 'avatar' => 'Avatar', 'remove_avatar' => 'Eemalda avatar', - 'ticket_not_found' => 'Piletit ei leitud', 'add_template' => 'Lisa mall', - 'updated_ticket_template' => 'Uuendatud pileti mall', - 'created_ticket_template' => 'Loodud pileti mall', 'archive_ticket_template' => 'Arhiveeri mall', 'restore_ticket_template' => 'Taasta mall', 'archived_ticket_template' => 'Mall edukalt arhiveeritud', @@ -3074,7 +3045,7 @@ $lang = array( 'portal_mode' => 'Portaali režiim', 'attach_pdf' => 'Lisage PDF', 'attach_documents' => 'Lisage dokumendid', - 'attach_ubl' => 'Kinnitage UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Meili stiil', 'processed' => 'Processed', 'fee_amount' => 'Viivise summa', @@ -3815,7 +3786,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'Kui ülalolev nupp teie jaoks ei tööta, klõpsake lingil', 'display_log' => 'Display Log', - 'send_fail_logs_to_our_server' => 'Teatage vigadest reaalajas', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Setup', 'quick_overview_statistics' => 'Quick overview & statistics', 'update_your_personal_info' => 'Värskendage oma isikuandmeid', @@ -5303,6 +5274,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/fa/texts.php b/lang/fa/texts.php index 6e8601a35128..53a4a5108f26 100644 --- a/lang/fa/texts.php +++ b/lang/fa/texts.php @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'Embed Documents', 'invoice_embed_documents_help' => 'Include attached images in the invoice.', 'document_email_attachment' => 'Attach Documents', - 'ubl_email_attachment' => 'Attach UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', 'dropzone_default_message' => 'Drop files or click to upload', @@ -2364,7 +2364,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'We hope you\'re enjoying using the app.
If you\'d consider :link we\'d greatly appreciate it!', 'writing_a_review' => 'writing a review', @@ -2880,19 +2880,6 @@ $lang = array( 'refunded' => 'Refunded', 'marked_quote_as_sent' => 'Successfully marked quote as sent', 'custom_module_settings' => 'Custom Module Settings', - 'ticket' => 'Ticket', - 'tickets' => 'Tickets', - 'ticket_number' => 'Ticket #', - 'new_ticket' => 'New Ticket', - 'edit_ticket' => 'Edit Ticket', - 'view_ticket' => 'View Ticket', - 'archive_ticket' => 'Archive Ticket', - 'restore_ticket' => 'Restore Ticket', - 'delete_ticket' => 'Delete Ticket', - 'archived_ticket' => 'Successfully archived ticket', - 'archived_tickets' => 'Successfully archived tickets', - 'restored_ticket' => 'Successfully restored ticket', - 'deleted_ticket' => 'Successfully deleted ticket', 'open' => 'Open', 'new' => 'New', 'closed' => 'Closed', @@ -2909,14 +2896,6 @@ $lang = array( 'assigned_to' => 'Assigned to', 'reply' => 'Reply', 'awaiting_reply' => 'Awaiting reply', - 'ticket_close' => 'Close Ticket', - 'ticket_reopen' => 'Reopen Ticket', - 'ticket_open' => 'Open Ticket', - 'ticket_split' => 'Split Ticket', - 'ticket_merge' => 'Merge Ticket', - 'ticket_update' => 'Update Ticket', - 'ticket_settings' => 'Ticket Settings', - 'updated_ticket' => 'Ticket Updated', 'mark_spam' => 'Mark as Spam', 'local_part' => 'Local Part', 'local_part_unavailable' => 'Name taken', @@ -2934,31 +2913,23 @@ $lang = array( 'mime_types' => 'Mime types', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Comma separated list of allowed mime types, leave blank for all', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Default priority', 'alert_new_comment_id' => 'New comment', - 'alert_comment_ticket_help' => 'Selecting a template will send a notification (to agent) when a comment is made.', - 'alert_comment_ticket_email_help' => 'Comma separated emails to bcc on new comment.', - 'new_ticket_notification_list' => 'Additional new ticket notifications', 'update_ticket_notification_list' => 'Additional new comment notifications', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Ticket assignment', - 'alert_ticket_assign_agent_id_hel' => 'Selecting a template will send a notification (to agent) when a ticket is assigned.', - 'alert_ticket_assign_agent_id_notifications' => 'Additional ticket assigned notifications', - 'alert_ticket_assign_agent_id_help' => 'Comma separated emails to bcc on ticket assignment.', - 'alert_ticket_transfer_email_help' => 'Comma separated emails to bcc on ticket transfer.', - 'alert_ticket_overdue_agent_id' => 'Ticket overdue', - 'alert_ticket_overdue_email' => 'Additional overdue ticket notifications', - 'alert_ticket_overdue_email_help' => 'Comma separated emails to bcc on ticket overdue.', - 'alert_ticket_overdue_agent_id_help' => 'Selecting a template will send a notification (to agent) when a ticket becomes overdue.', 'default_agent' => 'Default Agent', 'default_agent_help' => 'If selected will automatically be assigned to all inbound tickets', 'show_agent_details' => 'Show agent details on responses', 'avatar' => 'Avatar', 'remove_avatar' => 'Remove avatar', - 'ticket_not_found' => 'Ticket not found', 'add_template' => 'Add Template', - 'updated_ticket_template' => 'Updated Ticket Template', - 'created_ticket_template' => 'Created Ticket Template', 'archive_ticket_template' => 'Archive Template', 'restore_ticket_template' => 'Restore Template', 'archived_ticket_template' => 'Successfully archived template', @@ -3074,7 +3045,7 @@ $lang = array( 'portal_mode' => 'Portal Mode', 'attach_pdf' => 'Attach PDF', 'attach_documents' => 'Attach Documents', - 'attach_ubl' => 'Attach UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Email Style', 'processed' => 'Processed', 'fee_amount' => 'Fee Amount', @@ -3815,7 +3786,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', 'display_log' => 'Display Log', - 'send_fail_logs_to_our_server' => 'Report errors in realtime', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Setup', 'quick_overview_statistics' => 'Quick overview & statistics', 'update_your_personal_info' => 'Update your personal information', @@ -5303,6 +5274,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/fi/texts.php b/lang/fi/texts.php index d23e9dc3672c..a8fe5fa26f76 100644 --- a/lang/fi/texts.php +++ b/lang/fi/texts.php @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'Embed Documents', 'invoice_embed_documents_help' => 'Sisällytä liitetyt kuvat laskuun.', 'document_email_attachment' => 'Liitä Dokumentit', - 'ubl_email_attachment' => 'Liitä UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Lataa asiakirjat (:koko)', 'documents_from_expenses' => 'Kuluista:', 'dropzone_default_message' => 'Pudota tiedostot tai napsauta ladataksesi palvelimelle', @@ -2364,7 +2364,7 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta 'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'We hope you\'re enjoying using app.
If you\'d consider :link we\'d greatly appreciate it!', 'writing_a_review' => 'writing review', @@ -2880,19 +2880,6 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta 'refunded' => 'Refunded', 'marked_quote_as_sent' => 'Tarjous on onnistuneesti merkitty lähetetyksi', 'custom_module_settings' => 'muokattu Module asetukset', - 'ticket' => 'tiketti', - 'tickets' => 'Tickets', - 'ticket_number' => 'tiketti #', - 'new_ticket' => 'uusi tiketti', - 'edit_ticket' => 'muokkaa tiketti', - 'view_ticket' => 'Näytä Tiketti', - 'archive_ticket' => 'Arkistoi tiketti', - 'restore_ticket' => 'palauta tiketti', - 'delete_ticket' => 'Poista tiketti', - 'archived_ticket' => 'onnistuneesti arkistoitu tiketti', - 'archived_tickets' => 'onnistuneesti arkistoitu tiketit', - 'restored_ticket' => 'onnistuneesti palautettu tiketti', - 'deleted_ticket' => 'onnistuneesti poistettu tiketti', 'open' => 'avaa', 'new' => 'uusi', 'closed' => 'suljettu', @@ -2909,14 +2896,6 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta 'assigned_to' => 'Assigned ', 'reply' => 'Reply', 'awaiting_reply' => 'Awaiting vastaus', - 'ticket_close' => 'sulje tiketti', - 'ticket_reopen' => 'Reopen tiketti', - 'ticket_open' => 'avaa tiketti', - 'ticket_split' => 'Split tiketti', - 'ticket_merge' => 'Merge tiketti', - 'ticket_update' => 'päivitä tiketti', - 'ticket_settings' => 'tiketti asetukset', - 'updated_ticket' => 'tiketti päivitetty', 'mark_spam' => 'Merkitse roskapostiksi', 'local_part' => 'Local Part', 'local_part_unavailable' => 'nimi taken', @@ -2934,31 +2913,23 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta 'mime_types' => 'Mime types', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Pilkulla erotettu lista allowed mime types, jätä tyhjäksi kaikki', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'oletus priority', 'alert_new_comment_id' => 'uusi comment', - 'alert_comment_ticket_help' => 'Selecting template will send notification ( agent) when comment is made.', - 'alert_comment_ticket_email_help' => 'pilkulla erotetut sähköpostit bcc on uusi comment.', - 'new_ticket_notification_list' => 'Täydentävät Uusi tiketti -ilmoitukset', 'update_ticket_notification_list' => 'Täydentävät Uusi kommentti -ilmoitukset', 'comma_separated_values' => 'admin@esimerkki.com, supervisor@esimerkki.com', - 'alert_ticket_assign_agent_id' => 'tiketti assignment', - 'alert_ticket_assign_agent_id_hel' => 'Selecting template will send notification ( agent) when tiketti is assigned.', - 'alert_ticket_assign_agent_id_notifications' => 'Täydentävät Uusi tiketin kohdennus -ilmoitukset', - 'alert_ticket_assign_agent_id_help' => 'pilkulla erotetut sähköpostit bcc on tiketti assignment.', - 'alert_ticket_transfer_email_help' => 'pilkulla erotetut sähköpostit bcc on tiketti transfer.', - 'alert_ticket_overdue_agent_id' => 'tiketti overdue', - 'alert_ticket_overdue_email' => 'Täydentävät Uusi tiketti yliajalla -ilmoitukset', - 'alert_ticket_overdue_email_help' => 'pilkulla erotetut sähköpostit bcc on tiketti overdue.', - 'alert_ticket_overdue_agent_id_help' => 'Selecting template will send notification ( agent) when tiketti becomes overdue.', 'default_agent' => 'oletus Agent', 'default_agent_help' => 'If selected will automatically be assigned kaikki inbound tiketit', 'show_agent_details' => 'Näytä agentin tiedot vastauksissa', 'avatar' => 'Avatar', 'remove_avatar' => 'Remove avatar', - 'ticket_not_found' => 'tiketti ei löydy', 'add_template' => 'Lisää mallipohja', - 'updated_ticket_template' => 'päivitetty tiketti pohja', - 'created_ticket_template' => 'luotu tiketti pohja', 'archive_ticket_template' => 'Arkistoi pohja', 'restore_ticket_template' => 'palauta pohja', 'archived_ticket_template' => 'onnistuneesti arkistoitu template', @@ -3074,7 +3045,7 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta 'portal_mode' => 'Portal Mode', 'attach_pdf' => 'Liitä PDF', 'attach_documents' => 'Liitä asiakirjoja', - 'attach_ubl' => 'Attach UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Email Style', 'processed' => 'Processed', 'fee_amount' => 'palkkio määrä', @@ -3815,7 +3786,7 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', 'display_log' => 'Display Log', - 'send_fail_logs_to_our_server' => 'Report errors in realtime', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Setup', 'quick_overview_statistics' => 'Quick overview & statistics', 'update_your_personal_info' => 'Update your personal information', @@ -5303,6 +5274,33 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/fr/texts.php b/lang/fr/texts.php index 864588991af3..dca688d385ee 100644 --- a/lang/fr/texts.php +++ b/lang/fr/texts.php @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'Documents intégrés', 'invoice_embed_documents_help' => 'Inclure l\'image attachée dans la facture.', 'document_email_attachment' => 'Attacher les documents', - 'ubl_email_attachment' => 'Joindre UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Télécharger les Documents (:size)', 'documents_from_expenses' => 'Des dépenses :', 'dropzone_default_message' => 'Glisser le fichier ou cliquer pour envoyer', @@ -2364,7 +2364,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'currency_gold_troy_ounce' => 'Once troy d'or', 'currency_nicaraguan_córdoba' => 'Cordoue nicaraguayenne', 'currency_malagasy_ariary' => 'Ariary malgache', - "currency_tongan_pa_anga" => "Pa'anga tongien", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Nous espérons que votre utilisation de cette application vous est agréable.
Un commentaire de votre part serait grandement apprécié!', 'writing_a_review' => 'écrire un commentaire', @@ -2880,19 +2880,6 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'refunded' => 'Remboursé', 'marked_quote_as_sent' => 'Le devis sélectionné a été envoyé avec succès', 'custom_module_settings' => 'Paramètres personnalisés de modules', - 'ticket' => 'Ticket', - 'tickets' => 'Tickets', - 'ticket_number' => 'Numéro de ticket', - 'new_ticket' => 'Nouveau ticket', - 'edit_ticket' => 'Mettre à jour le ticket', - 'view_ticket' => 'Voir le ticket', - 'archive_ticket' => 'Archiver le ticket', - 'restore_ticket' => 'Restaurer le ticket', - 'delete_ticket' => 'Supprimer le ticket', - 'archived_ticket' => 'Ticket archivé avec succès', - 'archived_tickets' => 'Tickets archivés avec succès', - 'restored_ticket' => 'Ticket restauré avec succès', - 'deleted_ticket' => 'Ticket supprimé avec succès', 'open' => 'Ouvrir', 'new' => 'Nouveau', 'closed' => 'Fermé', @@ -2909,14 +2896,6 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'assigned_to' => 'Assigné à', 'reply' => 'Répondre', 'awaiting_reply' => 'Attente de réponse', - 'ticket_close' => 'Fermer le ticket', - 'ticket_reopen' => 'Ré-ouvrir le ticket', - 'ticket_open' => 'Ouvrir un ticket', - 'ticket_split' => 'Diviser le ticket', - 'ticket_merge' => 'Fusionner les tickets', - 'ticket_update' => 'Mettre à jour le ticket', - 'ticket_settings' => 'Paramètres du ticket', - 'updated_ticket' => 'Ticket mis à jour', 'mark_spam' => 'Indiqué comme spam', 'local_part' => 'Partie locale', 'local_part_unavailable' => 'Nom pris', @@ -2934,31 +2913,23 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'mime_types' => 'Type MIME', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Liste séparée par une virgule pour les types MIME autorisés. Laisser vide pour tout autoriser', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Priorité par défaut', 'alert_new_comment_id' => 'Nouveau commentaire', - 'alert_comment_ticket_help' => 'En sélectionnant un modèle, une notification (à l\'agent) sera envoyée lorsqu\'un commentaire est posté', - 'alert_comment_ticket_email_help' => 'E-mails séparés par une virgule pour CCI lors d\'un nouveau commentaire.', - 'new_ticket_notification_list' => 'Notification de nouveaux tickets additionnel', 'update_ticket_notification_list' => 'Notification de nouveau comment additionnel', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Assignation de ticket', - 'alert_ticket_assign_agent_id_hel' => 'En sélectionnant un modèle, une notification (à l\'agent) sera envoyée lorsqu\'un billet est assigné.', - 'alert_ticket_assign_agent_id_notifications' => 'Notification d\'assignation de ticket additionnel', - 'alert_ticket_assign_agent_id_help' => 'E-mails séparés par une virgule pour CCI lors d\'un ticket assigné.', - 'alert_ticket_transfer_email_help' => 'E-mails séparés par une virgule pour CCI lors d\'un ticket transféré.', - 'alert_ticket_overdue_agent_id' => 'Ticket en retard.', - 'alert_ticket_overdue_email' => 'Notifications de billets en retard additionnels', - 'alert_ticket_overdue_email_help' => 'E-mails séparés par une virgule pour CCI lors d\'un ticket en retard.', - 'alert_ticket_overdue_agent_id_help' => 'En sélectionnant un modèle, une notification (à l\'agent) sera envoyée lorsqu\'un ticket est en retard.', 'default_agent' => 'Agent par défaut', 'default_agent_help' => 'Cette sélection va automatiquement être assignée à tous les courriels entrants', 'show_agent_details' => 'Afficher les informations de l\'agent dans les réponses', 'avatar' => 'Avatar', 'remove_avatar' => 'Enlever l\'avatar', - 'ticket_not_found' => 'Ticket non trouvé', 'add_template' => 'Ajouter un modèle', - 'updated_ticket_template' => 'Modèle de ticket mis à jour', - 'created_ticket_template' => 'Modèle de ticket crée', 'archive_ticket_template' => 'Archiver modèle', 'restore_ticket_template' => 'Restaurer modèle', 'archived_ticket_template' => 'Modèle archivé avec succès', @@ -3074,7 +3045,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'portal_mode' => 'Mode portail', 'attach_pdf' => 'Joindre PDF', 'attach_documents' => 'Joindre les Documents', - 'attach_ubl' => 'Joindre UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Style d\'email', 'processed' => 'Traité', 'fee_amount' => 'Montant des frais', @@ -3815,7 +3786,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'Si le bouton ci-dessus ne fonctionne pas pour vous, veuillez cliquer sur le lien', 'display_log' => 'Afficher les logs', - 'send_fail_logs_to_our_server' => 'Envoyer les erreurs à nos serveurs', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Installation', 'quick_overview_statistics' => 'Aperçu rapide et statistiques', 'update_your_personal_info' => 'Mettre à jour vos informations personnelles', @@ -5303,6 +5274,33 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/fr_CA/texts.php b/lang/fr_CA/texts.php index 331307d6912e..a01d6cf20ce9 100644 --- a/lang/fr_CA/texts.php +++ b/lang/fr_CA/texts.php @@ -1096,7 +1096,7 @@ $lang = array( 'invoice_embed_documents' => 'Documents intégrés', 'invoice_embed_documents_help' => 'Inclure les images jointes dans la facture.', 'document_email_attachment' => 'Joindre un document', - 'ubl_email_attachment' => 'Joindre un UBL', + 'ubl_email_attachment' => 'Joindre la facture UBL', 'download_documents' => 'Télécharger les documents (:size)', 'documents_from_expenses' => 'Des dépenses:', 'dropzone_default_message' => 'Glissez-déposez ou cliquez pour téléverser des fichiers', @@ -3042,7 +3042,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'portal_mode' => 'Mode portail', 'attach_pdf' => 'Joindre un PDF', 'attach_documents' => 'Joindre un document', - 'attach_ubl' => 'Joindre un UBL', + 'attach_ubl' => 'Joindre la facture UBL', 'email_style' => 'Style de courriel', 'processed' => 'Traité', 'fee_amount' => 'Montant des frais', @@ -3783,7 +3783,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'entity_number_placeholder' => ':entity N° :entity_number', 'email_link_not_working' => 'Si le bouton ci-dessus ne fonctionne pas correctement, cliquez sur le lien', 'display_log' => 'Afficher le registre', - 'send_fail_logs_to_our_server' => 'Rapporter les erreurs en temps réel', + 'send_fail_logs_to_our_server' => 'Signalez les erreurs pour aider à l\'amélioration de l\'application', 'setup' => 'Configuration', 'quick_overview_statistics' => 'Aperçu et statistiques', 'update_your_personal_info' => 'Mettre à jour vos infos personnelles', @@ -5283,7 +5283,22 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'remind_quote' => 'Rappel de soumission', 'end_of_month' => 'Fin de mois', 'tax_currency_mismatch' => 'La devise de la taxe est différente de la devise de la facture.', - 'edocument_import_already_exists' => '\nLa facture a déjà été importée le :date' + 'edocument_import_already_exists' => 'La facture a déjà été importée le :date', + 'before_valid_until' => 'Avant le Valide jusqu\'au', + 'after_valid_until' => 'Après le Valide jusqu\'au', + 'task_assigned_notification' => 'Notification d\'affectation de tâche', + 'task_assigned_notification_help' => 'Encoyer un courriel lors de l\'attribution d\'une tâche', + 'invoices_locked_end_of_month' => 'Factures verrouillées à la fin du mois', + 'referral_url' => 'Code de référencement', + 'add_comment' => 'Ajouter un commentaire', + 'added_comment' => 'Le commentaire a été ajouté', + 'tickets' => 'Billets', + 'assigned_group' => 'Le groupe a été attribué', + 'merge_to_pdf' => 'Fusionner avec le PDF', + 'latest_requires_php_version' => 'Note: La dernière version requiert PHP :version', + 'auto_expand_product_table_notes' => 'Développer automatiquement les notes du tableau de produits', + 'auto_expand_product_table_notes_help' => '  +Développe automatiquement la section des notes dans le tableau de produits pour afficher plus de lignes.', ); return $lang; diff --git a/lang/fr_CH/texts.php b/lang/fr_CH/texts.php index 18e98ff527fc..e44ef16b8bba 100644 --- a/lang/fr_CH/texts.php +++ b/lang/fr_CH/texts.php @@ -32,7 +32,7 @@ $lang = array( 'po_number' => 'N° de bon de commande', 'po_number_short' => 'Bon de commande n°', 'frequency_id' => 'Fréquence', - 'discount' => 'Escompte', + 'discount' => 'Réduction', 'taxes' => 'Taxes', 'tax' => 'TVA', 'item' => 'Article', @@ -1096,7 +1096,7 @@ $lang = array( 'invoice_embed_documents' => 'Documents intégrés', 'invoice_embed_documents_help' => 'Inclure les images jointes dans la facture.', 'document_email_attachment' => 'Documents joints', - 'ubl_email_attachment' => 'Joindre un UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Télécharger les documents (:size)', 'documents_from_expenses' => 'Des dépenses:', 'dropzone_default_message' => 'Glissez-déposez ou cliquez pour téléverser des fichiers', @@ -2194,7 +2194,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'mailgun_private_key' => 'Clé privée Mailgun', 'brevo_domain' => 'Domaine de Brevo', 'brevo_private_key' => 'Clé privée Brevo', - 'send_test_email' => 'Send Test Email', + 'send_test_email' => 'Envoyer un courriel test', 'select_label' => 'Sélectionnez le libellé', 'label' => 'Libellé', 'service' => 'Service', @@ -2361,7 +2361,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'currency_gold_troy_ounce' => 'Once troy d'or', 'currency_nicaraguan_córdoba' => 'Cordoue nicaraguayenne', 'currency_malagasy_ariary' => 'Ariary malgache', - "currency_tongan_pa_anga" => "Pa'anga tongien", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Nous espérons que votre utilisation de cette application vous est agréable.
Un commentaire de votre part serait grandement apprécié!', 'writing_a_review' => 'rédiger un commentaire', @@ -2877,19 +2877,6 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'refunded' => 'Remboursée', 'marked_quote_as_sent' => 'L\'offre a été marqué comme envoyé avec succès', 'custom_module_settings' => 'Paramètres personnalisés de modules', - 'ticket' => 'Billet', - 'tickets' => 'Billets', - 'ticket_number' => 'Billet #', - 'new_ticket' => 'Nouveau billet', - 'edit_ticket' => 'Éditer le billet', - 'view_ticket' => 'Voir le billet', - 'archive_ticket' => 'Archiver le billet', - 'restore_ticket' => 'Restaurer le billet', - 'delete_ticket' => 'Supprimer le billet', - 'archived_ticket' => 'Le billet a été archivé avec succès', - 'archived_tickets' => 'Les billets ont été archivés avec succès', - 'restored_ticket' => 'Le billet a été restauré avec succès', - 'deleted_ticket' => 'Le billet a été supprimé avec succès', 'open' => 'Ouvert', 'new' => 'Nouveau', 'closed' => 'Fermé', @@ -2906,14 +2893,6 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'assigned_to' => 'Assigné à', 'reply' => 'Répondre', 'awaiting_reply' => 'En attente de réponse', - 'ticket_close' => 'Fermer le billet', - 'ticket_reopen' => 'Réouvrir le billet', - 'ticket_open' => 'Ouvrir le billet', - 'ticket_split' => 'Scinder le billet', - 'ticket_merge' => 'Fusionner le billet', - 'ticket_update' => 'Mettre à jour le billet', - 'ticket_settings' => 'Paramètres des billets', - 'updated_ticket' => 'Billet mis à jour', 'mark_spam' => 'Marquer comme spam', 'local_part' => 'Partie locale', 'local_part_unavailable' => 'Nom déjà pris', @@ -2931,31 +2910,23 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'mime_types' => 'Type MIME', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Liste séparée par une virgule pour les types MIME autorisés. Laissant vide pour tout autoriser', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'Nouveau ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Ticket mis à jour', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Ticket fermé', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Priorité par défaut', 'alert_new_comment_id' => 'Nouveau commentaire', - 'alert_comment_ticket_help' => 'En sélectionnant un modèle, une notification (à l\'agent) sera envoyée lorsqu\'un commentaire est fait', - 'alert_comment_ticket_email_help' => 'Courriels séparés par une virgule pour CCI sur un nouveau commentaire.', - 'new_ticket_notification_list' => 'Notifications de nouveaux billets additionnels', 'update_ticket_notification_list' => 'Notifications de nouveaux commentaires additionnels', 'comma_separated_values' => 'admin@exemple.com, supervisor@exemple.com', - 'alert_ticket_assign_agent_id' => 'Assignation de billet', - 'alert_ticket_assign_agent_id_hel' => 'En sélectionnant un modèle, une notification (à l\'agent) sera envoyée lorsqu\'un billet est assigné.', - 'alert_ticket_assign_agent_id_notifications' => 'Notifications de billets assignés additionnels', - 'alert_ticket_assign_agent_id_help' => 'Courriels séparés par une virgule pour CCI pour un billet assigné.', - 'alert_ticket_transfer_email_help' => 'Courriels séparés par une virgule pour CCI sur un billet transféré.', - 'alert_ticket_overdue_agent_id' => 'Billet en retard', - 'alert_ticket_overdue_email' => 'Notifications de billets en retard additionnels', - 'alert_ticket_overdue_email_help' => 'Courriels séparés par une virgule pour CCI sur un billet en retard.', - 'alert_ticket_overdue_agent_id_help' => 'En sélectionnant un modèle, une notification (à l\'agent) sera envoyée lorsqu\'un billet est en retard.', 'default_agent' => 'Agent par défaut', 'default_agent_help' => 'Cette sélection va automatiquement être assignée à tous les courriels entrants', 'show_agent_details' => 'Afficher les informations de l\'agent dans les réponses', 'avatar' => 'Avatar', 'remove_avatar' => 'Retirer l\'avatar', - 'ticket_not_found' => 'Billet introuvable', 'add_template' => 'Ajouter un modèle', - 'updated_ticket_template' => 'Modèle de billets mise à jour', - 'created_ticket_template' => 'Modèle de billet créés', 'archive_ticket_template' => 'Archiver le modèle', 'restore_ticket_template' => 'Restaurer le modèle', 'archived_ticket_template' => 'Le modèle a été archivé avec succès', @@ -3071,7 +3042,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'portal_mode' => 'Mode portail', 'attach_pdf' => 'Joindre un PDF', 'attach_documents' => 'Joindre un document', - 'attach_ubl' => 'Joindre UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Style de courriel', 'processed' => 'Traité', 'fee_amount' => 'Montant des frais', @@ -3812,7 +3783,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'entity_number_placeholder' => ':entity N° :entity_number', 'email_link_not_working' => 'Si le bouton ci-dessus ne fonctionne pas correctement, cliquez sur le lien', 'display_log' => 'Afficher le registre', - 'send_fail_logs_to_our_server' => 'Rapporter les erreurs en temps réel', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Configuration', 'quick_overview_statistics' => 'Aperçu et statistiques', 'update_your_personal_info' => 'Mettre à jour vos infos personnelles', @@ -4134,7 +4105,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'one_time_purchases' => 'Achat définitif', 'recurring_purchases' => 'Achat récurrent', 'you_might_be_interested_in_following' => 'Ceci pourrait vous intéresser', - 'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.', + 'quotes_with_status_sent_can_be_approved' => 'Seules les offres avec l\'état "Envoyée" peuvent être approuvées. Les offres expirées ne peuvent pas être approuver.', 'no_quotes_available_for_download' => 'Aucune offre disponible pour le téléchargement.', 'copyright' => 'Droits d\'auteur', 'user_created_user' => ':user a créé :created_user à :time', @@ -5262,44 +5233,71 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'assign_group' => 'Attribuer un groupe', 'paypal_advanced_cards' => 'Advanced Card Payments', 'local_domain_help' => 'EHLO domain (optional)', - 'port_help' => 'ie. 25,587,465', - 'host_help' => 'ie. smtp.gmail.com', - 'always_show_required_fields' => 'Allows show required fields form', + 'port_help' => 'ex. 25,587,465', + 'host_help' => 'ex. smtp.gmail.com', + 'always_show_required_fields' => 'Permet l\'affichage des champs requis d\'un formulaire', 'always_show_required_fields_help' => 'Displays the required fields form always at checkout', 'advanced_cards' => 'Advanced Cards', 'activity_140' => 'Statement sent to :client', - 'invoice_net_amount' => 'Invoice Net Amount', - 'round_to_minutes' => 'Round To Minutes', - '1_second' => '1 Second', - '1_minute' => '1 Minute', - '5_minutes' => '5 Minutes', - '15_minutes' => '15 Minutes', - '30_minutes' => '30 Minutes', - '1_hour' => '1 Hour', - '1_day' => '1 Day', + 'invoice_net_amount' => 'Montant hors taxe de la facture', + 'round_to_minutes' => 'Arrondir aux minutes', + '1_second' => '1 seconde', + '1_minute' => '1 minute', + '5_minutes' => '5 minutes', + '15_minutes' => '15 minutes', + '30_minutes' => '30 minutes', + '1_hour' => '1 heure', + '1_day' => '1 jour', 'round_tasks' => 'Task Rounding Direction', - 'round_tasks_help' => 'Round task times up or down.', + 'round_tasks_help' => 'Arrondir les temps des tâches vers le haut ou vers le bas', 'direction' => 'Direction', - 'round_up' => 'Round Up', - 'round_down' => 'Round Down', - 'task_round_to_nearest' => 'Round To Nearest', - 'task_round_to_nearest_help' => 'The interval to round the task to.', - 'bulk_updated' => 'Successfully updated data', - 'bulk_update' => 'Bulk Update', - 'calculate' => 'Calculate', - 'sum' => 'Sum', - 'money' => 'Money', - 'web_app' => 'Web App', + 'round_up' => 'Arrondir à hausse', + 'round_down' => 'Arrondir à la baisse', + 'task_round_to_nearest' => 'Arrondir au plus près', + 'task_round_to_nearest_help' => 'Intervalle d\'arrondi des tâches', + 'bulk_updated' => 'Les données ont été mises à jour', + 'bulk_update' => 'Mise à jour groupée', + 'calculate' => 'Calculer', + 'sum' => 'Somme', + 'money' => 'Argent', + 'web_app' => 'App web', 'desktop_app' => 'Desktop App', - 'disconnected' => 'Disconnected', - 'reconnect' => 'Reconnect', - 'e_invoice_settings' => 'E-Invoice Settings', + 'disconnected' => 'Déconnecté', + 'reconnect' => 'Reconnection', + 'e_invoice_settings' => 'Paramètres E-Facture', 'btcpay_refund_subject' => 'Refund of your invoice via BTCPay', 'btcpay_refund_body' => 'A refund intended for you has been issued. To claim it via BTCPay, please click on this link:', 'currency_mauritanian_ouguiya' => 'Mauritanian Ouguiya', 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', - 'end_of_month' => 'End Of Month', - 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'end_of_month' => 'Fin du mois', + 'merge_e_invoice_to_pdf' => 'Fusionner E-Facture et PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'Premier rappel pour l\'offre', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'Fin du mois', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/he/texts.php b/lang/he/texts.php index e76823443c71..efcee60b4aac 100644 --- a/lang/he/texts.php +++ b/lang/he/texts.php @@ -1097,7 +1097,7 @@ $lang = array( 'invoice_embed_documents' => 'מסמכים מוטמעים', 'invoice_embed_documents_help' => 'כלול קבצים מצורפים כתמונות בחשבונית', 'document_email_attachment' => 'צרף קובץ', - 'ubl_email_attachment' => 'צרף URL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'הורד מסמכים (:size)', 'documents_from_expenses' => 'מהוצאות:', 'dropzone_default_message' => 'גרור קבצים או לחץ להעלאה', @@ -2362,7 +2362,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'זהב טרוי אונקה', 'currency_nicaraguan_córdoba' => 'קורדובה ניקרגואה', 'currency_malagasy_ariary' => 'ארית מלגזית', - "currency_tongan_pa_anga" => "פאאנגה טונגנית", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'We hope you\'re enjoying using the app.
If you\'d consider :link we\'d greatly appreciate it!', 'writing_a_review' => 'writing a review', @@ -2878,19 +2878,6 @@ $lang = array( 'refunded' => 'הוחזר', 'marked_quote_as_sent' => 'ציטוט סומן בהצלחה כנשלח', 'custom_module_settings' => 'Custom Module Settings', - 'ticket' => 'כַּרְטִיס', - 'tickets' => 'כרטיסים', - 'ticket_number' => 'כרטיס מס'', - 'new_ticket' => 'כרטיס חדש', - 'edit_ticket' => 'ערוך כרטיס', - 'view_ticket' => 'צפה בכרטיס', - 'archive_ticket' => 'כרטיס ארכיון', - 'restore_ticket' => 'שחזור כרטיס', - 'delete_ticket' => 'מחק כרטיס', - 'archived_ticket' => 'הכרטיס הועבר לארכיון בהצלחה', - 'archived_tickets' => 'הכרטיסים הועברו לארכיון בהצלחה', - 'restored_ticket' => 'הכרטיס שוחזר בהצלחה', - 'deleted_ticket' => 'הכרטיס נמחק בהצלחה', 'open' => 'לִפְתוֹחַ', 'new' => 'חָדָשׁ', 'closed' => 'סָגוּר', @@ -2907,14 +2894,6 @@ $lang = array( 'assigned_to' => 'שהוקצה ל', 'reply' => 'תשובה', 'awaiting_reply' => 'ממתין לתגובה', - 'ticket_close' => 'סגור את הכרטיס', - 'ticket_reopen' => 'פתח מחדש את הכרטיס', - 'ticket_open' => 'כרטיס פתוח', - 'ticket_split' => 'כרטיס מפוצל', - 'ticket_merge' => 'מיזוג כרטיס', - 'ticket_update' => 'עדכון כרטיס', - 'ticket_settings' => 'הגדרות כרטיס', - 'updated_ticket' => 'הכרטיס עודכן', 'mark_spam' => 'סמן כספאם', 'local_part' => 'חלק מקומי', 'local_part_unavailable' => 'השם נלקח', @@ -2932,31 +2911,23 @@ $lang = array( 'mime_types' => 'סוגי פנטומימה', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'רשימה מופרדת בפסיק של סוגי פנטומימאי מותרים, השאר ריק עבור כולם', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'עדיפות ברירת מחדל', 'alert_new_comment_id' => 'תגובה חדשה', - 'alert_comment_ticket_help' => 'בחירת תבנית תשלח הודעה (לסוכן) עם הערה.', - 'alert_comment_ticket_email_help' => 'הודעות דוא"ל מופרדות בפסיק לעותק מוסתר בהערה חדשה.', - 'new_ticket_notification_list' => 'הודעות נוספות על כרטיסים חדשים', 'update_ticket_notification_list' => 'התראות נוספות על הערות חדשות', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'הקצאת כרטיסים', - 'alert_ticket_assign_agent_id_hel' => 'Selecting a template will send a notification (to agent) when a ticket is assigned.', - 'alert_ticket_assign_agent_id_notifications' => 'הודעות נוספות שהוקצו לכרטיסים', - 'alert_ticket_assign_agent_id_help' => 'הודעות דוא"ל מופרדות בפסיק לעותק מוסתר בהקצאת כרטיס.', - 'alert_ticket_transfer_email_help' => 'הודעות דוא"ל מופרדות בפסיק לעותק מוסתר בהעברת כרטיס.', - 'alert_ticket_overdue_agent_id' => 'כרטיס איחור', - 'alert_ticket_overdue_email' => 'הודעות נוספות על כרטיס איחור', - 'alert_ticket_overdue_email_help' => 'הודעות דוא"ל מופרדות בפסיק לעותק מוסתר על איחור בכרטיס.', - 'alert_ticket_overdue_agent_id_help' => 'Selecting a template will send a notification (to agent) when a ticket becomes overdue.', 'default_agent' => 'סוכן ברירת מחדל', 'default_agent_help' => 'If selected will automatically be assigned to all inbound tickets', 'show_agent_details' => 'הצג פרטי סוכן בתגובות', 'avatar' => 'גִלגוּל', 'remove_avatar' => 'הסר את הדמות', - 'ticket_not_found' => 'הכרטיס לא נמצא', 'add_template' => 'הוסף תבנית', - 'updated_ticket_template' => 'תבנית כרטיס מעודכנת', - 'created_ticket_template' => 'נוצר תבנית כרטיס', 'archive_ticket_template' => 'תבנית ארכיון', 'restore_ticket_template' => 'שחזר תבנית', 'archived_ticket_template' => 'תבנית הועברה לארכיון בהצלחה', @@ -3072,7 +3043,7 @@ $lang = array( 'portal_mode' => 'מצב פורטל', 'attach_pdf' => 'צרף PDF', 'attach_documents' => 'צרף מסמכים', - 'attach_ubl' => 'צרף UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'סגנון אימייל', 'processed' => 'מעובד', 'fee_amount' => 'סכום תשלום', @@ -3813,7 +3784,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', 'display_log' => 'הצג יומן', - 'send_fail_logs_to_our_server' => 'דווח על שגיאות בזמן אמת', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'להכין', 'quick_overview_statistics' => 'סקירה מהירה וסטטיסטיקה', 'update_your_personal_info' => 'עדכן את המידע האישי שלך', @@ -5301,6 +5272,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/hr/texts.php b/lang/hr/texts.php index 14077898567f..d3a625f9a4ce 100644 --- a/lang/hr/texts.php +++ b/lang/hr/texts.php @@ -1100,7 +1100,7 @@ Nevažeći kontakt email', 'invoice_embed_documents' => 'Ugrađeni dokumenti', 'invoice_embed_documents_help' => 'Ubaci dodane dokumente u račun.', 'document_email_attachment' => 'Dodaj dokumente', - 'ubl_email_attachment' => 'Attach UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Preuzmi dokumente (:size)', 'documents_from_expenses' => 'Od troškova:', 'dropzone_default_message' => 'Ispusti dokument ili klikni za prijenos', @@ -2365,7 +2365,7 @@ Nevažeći kontakt email', 'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'We hope you\'re enjoying using the app.
If you\'d consider :link we\'d greatly appreciate it!', 'writing_a_review' => 'writing a review', @@ -2881,19 +2881,6 @@ Nevažeći kontakt email', 'refunded' => 'Povrat', 'marked_quote_as_sent' => 'Ponuda je uspješno označena kao poslana', 'custom_module_settings' => 'Postavke prilagođenog modula', - 'ticket' => 'Radni nalog', - 'tickets' => 'Radni nalozi', - 'ticket_number' => 'Radni nalog #', - 'new_ticket' => 'Novi radni nalog', - 'edit_ticket' => 'Uredi radni nalog', - 'view_ticket' => 'Pregledaj radni nalog', - 'archive_ticket' => 'Arhiviraj radni nalog ', - 'restore_ticket' => 'Vrati radni nalog', - 'delete_ticket' => 'Izbriši radni nalog', - 'archived_ticket' => 'Uspješno arhiviran radni nalog', - 'archived_tickets' => 'Uspješno arhivirani radni nalozi', - 'restored_ticket' => 'Uspješno vraćen radni nalog', - 'deleted_ticket' => 'Uspješno izbrisani radni nalog', 'open' => 'Otvori', 'new' => 'Novi', 'closed' => 'Zatvoren', @@ -2910,14 +2897,6 @@ Nevažeći kontakt email', 'assigned_to' => 'Dodijeljeno za', 'reply' => 'Odgovori', 'awaiting_reply' => 'Čeka odgovor', - 'ticket_close' => 'Zatvori radni nalog', - 'ticket_reopen' => 'Ponovno otvori radni nalog', - 'ticket_open' => 'Otvori radni nalog', - 'ticket_split' => 'Razdvoji radni nalog', - 'ticket_merge' => 'Spoji radni nalog', - 'ticket_update' => 'Ažuriraj radni nalog', - 'ticket_settings' => 'Postavke radnog naloga', - 'updated_ticket' => 'Radni nalog ažuriran', 'mark_spam' => 'Označi kao Spam', 'local_part' => 'Local Part', 'local_part_unavailable' => 'Ime je zauzeto', @@ -2935,31 +2914,23 @@ Nevažeći kontakt email', 'mime_types' => 'MIME tipovi', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Popis dopuštenih vrsta MIME tipova, odvojeni zarezima. Za sve, ostavite prazno', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Zadani prioritet', 'alert_new_comment_id' => 'Novi komentar', - 'alert_comment_ticket_help' => 'Odabirom predloška poslat će se obavijest (agentu) kad se kreira komentar.', - 'alert_comment_ticket_email_help' => 'E-adrese odvojene zarezom na koje će se poslati skrivena kopija novog komentara.', - 'new_ticket_notification_list' => 'Dodatne obavijesti novog radnog naloga', 'update_ticket_notification_list' => 'Dodatne obavijesti novog komentara ', 'comma_separated_values' => 'admin@primjer.hr, korisnik@primjer.hr', - 'alert_ticket_assign_agent_id' => 'Dodjela radnog naloga', - 'alert_ticket_assign_agent_id_hel' => 'Odabirom predloška, obavijesti će biti poslana (agentu) kada je radni nalog dodijeljen.', - 'alert_ticket_assign_agent_id_notifications' => 'Dodatne obavijesti dodijeljenog radnog naloga', - 'alert_ticket_assign_agent_id_help' => 'E-adrese odvojene zarezom na koje će se poslati skrivena kopija obavijesti dodjele radnog naloga.', - 'alert_ticket_transfer_email_help' => 'E-adrese odvojene zarezom na koje će se poslati skrivena kopija prijenosa radnog naloga.', - 'alert_ticket_overdue_agent_id' => 'Randi nalog kasni', - 'alert_ticket_overdue_email' => 'Dodatne obavijesti o kašnjenju radnog naloga', - 'alert_ticket_overdue_email_help' => 'E-adrese odvojene zarezom na koje će se poslati skrivena kopija kašnjenja radnog naloga.', - 'alert_ticket_overdue_agent_id_help' => 'Odabirom predloška, obavijesti će biti poslana (agentu) kada je radni nalog kasni.', 'default_agent' => 'Zadani agent', 'default_agent_help' => 'Ako se odabere, automatski će se dodijeliti svim ulaznim radnim nalozima', 'show_agent_details' => 'Prikaži detalje agenta u odgovorima', 'avatar' => 'Avatar', 'remove_avatar' => 'Ukloni Avatar', - 'ticket_not_found' => 'Radni nalog nije pronađen', 'add_template' => 'Dodaj Predložak', - 'updated_ticket_template' => 'Ažuriran predložak radnog naloga', - 'created_ticket_template' => 'Kreirani predložak radnog naloga', 'archive_ticket_template' => 'Arhiviran predložak ranog naloga', 'restore_ticket_template' => 'Vrati predložak radnog naloga', 'archived_ticket_template' => 'Predložak uspješno arhiviran', @@ -3075,7 +3046,7 @@ Nevažeći kontakt email', 'portal_mode' => 'Način rada Portal', 'attach_pdf' => 'Priložite PDF', 'attach_documents' => 'Priložite dokumente', - 'attach_ubl' => 'Priložite UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Stil e-pošte', 'processed' => 'Obrađeno', 'fee_amount' => 'Iznos naknade', @@ -3816,7 +3787,7 @@ Nevažeći kontakt email', 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', 'display_log' => 'Display Log', - 'send_fail_logs_to_our_server' => 'Report errors in realtime', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Setup', 'quick_overview_statistics' => 'Quick overview & statistics', 'update_your_personal_info' => 'Update your personal information', @@ -5304,6 +5275,33 @@ Nevažeći kontakt email', 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/hu/texts.php b/lang/hu/texts.php index b5b7d3694ead..b10b6b8f242e 100644 --- a/lang/hu/texts.php +++ b/lang/hu/texts.php @@ -1080,7 +1080,7 @@ $lang = array( 'invoice_embed_documents' => 'Dokumentumok beágyazása', 'invoice_embed_documents_help' => 'Csatolja a dokumentumokat a PDF-hez', 'document_email_attachment' => 'Dokumentumok csatolása', - 'ubl_email_attachment' => 'UBL csatolás', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Dokumentumok letöltése', 'documents_from_expenses' => 'Költségek dokumentumai:', 'dropzone_default_message' => 'Húzza ide a fájlokat vagy kattintson ide a feltöltéshez', @@ -2348,7 +2348,7 @@ adva :date', 'currency_gold_troy_ounce' => 'Arany Troy Unce', 'currency_nicaraguan_córdoba' => 'nicaraguai Córdoba', 'currency_malagasy_ariary' => 'madagaszkári ariary', - "currency_tongan_pa_anga" => "Tonga Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Segítség az értékeléshez', 'writing_a_review' => 'Értékelés írása', @@ -2864,19 +2864,6 @@ adva :date', 'refunded' => 'Visszatérített', 'marked_quote_as_sent' => 'Az árajánlatot elküldöttnek jelölte', 'custom_module_settings' => 'Egyedi modul beállítások', - 'ticket' => 'Jegy', - 'tickets' => 'Jegyek', - 'ticket_number' => 'Jegy száma', - 'new_ticket' => 'Új jegy', - 'edit_ticket' => 'Jegy szerkesztése', - 'view_ticket' => 'Jegy megtekintése', - 'archive_ticket' => 'Jegy archiválása', - 'restore_ticket' => 'Jegy visszaállítása', - 'delete_ticket' => 'Jegy törlése', - 'archived_ticket' => 'Archivált jegy', - 'archived_tickets' => 'Archivált jegyek', - 'restored_ticket' => 'Visszaállított jegy', - 'deleted_ticket' => 'Törölt jegy', 'open' => 'Nyitott', 'new' => 'Új', 'closed' => 'Lezárva', @@ -2893,14 +2880,6 @@ adva :date', 'assigned_to' => 'Hozzárendelve:', 'reply' => 'Válasz', 'awaiting_reply' => 'Válaszra vár', - 'ticket_close' => 'Jegy lezárása', - 'ticket_reopen' => 'Jegy újranyitása', - 'ticket_open' => 'Jegy megnyitása', - 'ticket_split' => 'Jegy szétválasztása', - 'ticket_merge' => 'Jegy összevonása', - 'ticket_update' => 'Jegy frissítése', - 'ticket_settings' => 'Jegy beállítások', - 'updated_ticket' => 'Frissített jegy', 'mark_spam' => 'Spamként jelöl', 'local_part' => 'Helyi rész', 'local_part_unavailable' => 'A helyi rész már foglalt', @@ -2918,31 +2897,23 @@ adva :date', 'mime_types' => 'MIME típusok', 'mime_types_placeholder' => '.pdf, .docx, stb.', 'mime_types_help' => 'Példa MIME típusok: .pdf, .docx, .png', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Alapértelmezett prioritás', 'alert_new_comment_id' => 'Értesítés új megjegyzésről', - 'alert_comment_ticket_help' => 'Az új megjegyzésre adott értesítés kiválasztott sablonja', - 'alert_comment_ticket_email_help' => 'Az új megjegyzésre adott értesítés e-mailben történő kiküldésének beállítása', - 'new_ticket_notification_list' => 'Új jegy értesítési lista', 'update_ticket_notification_list' => 'Jegy frissítés értesítési lista', 'comma_separated_values' => 'Vesszővel elválasztott értékek', - 'alert_ticket_assign_agent_id' => 'Értesítés jegy hozzárendeléséről', - 'alert_ticket_assign_agent_id_hel' => 'Az ügynöknek történő jegy hozzárendelésre adott értesítés kiválasztott sablonja', - 'alert_ticket_assign_agent_id_notifications' => 'Az ügynöknek történő jegy hozzárendelésre adott értesítések küldése', - 'alert_ticket_assign_agent_id_help' => 'Értesítés küldése, amikor egy ügynöknek hozzárendelik a jegyet', - 'alert_ticket_transfer_email_help' => 'Az értesítés küldése, amikor egy jegyet átvisznek egy másik ügynökhöz', - 'alert_ticket_overdue_agent_id' => 'Értesítés lejárt jegyről', - 'alert_ticket_overdue_email' => 'Lejárt jegy e-mail értesítés', - 'alert_ticket_overdue_email_help' => 'Az értesítés küldése, amikor egy jegy lejár', - 'alert_ticket_overdue_agent_id_help' => 'Az ügynöknek történő értesítés küldése, amikor egy jegy lejár', 'default_agent' => 'Alapértelmezett ügynök', 'default_agent_help' => 'Az új jegyekhez rendelt alapértelmezett ügynök', 'show_agent_details' => 'Ügynök részleteinek megjelenítése', 'avatar' => 'Profilkép', 'remove_avatar' => 'Profilkép eltávolítása', - 'ticket_not_found' => 'A jegy nem található', 'add_template' => 'Sablon hozzáadása', - 'updated_ticket_template' => 'Frissített jegy sablon', - 'created_ticket_template' => 'Létrehozott jegy sablon', 'archive_ticket_template' => 'Jegy sablon archiválása', 'restore_ticket_template' => 'Jegy sablon visszaállítása', 'archived_ticket_template' => 'Archivált jegy sablon', @@ -3058,7 +3029,7 @@ adva :date', 'portal_mode' => 'Portál mód', 'attach_pdf' => 'PDF csatolása', 'attach_documents' => 'Dokumentumok csatolása', - 'attach_ubl' => 'UBL csatolása', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'E-mail stílusa', 'processed' => 'Feldolgozott', 'fee_amount' => 'Díj összege', @@ -3799,7 +3770,7 @@ adva :date', 'entity_number_placeholder' => 'Entitás szám helykitöltő', 'email_link_not_working' => 'Az e-mail link nem működik', 'display_log' => 'Napló megjelenítése', - 'send_fail_logs_to_our_server' => 'Küldje el a hibajegyzéket a szerverünkre', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Beállítás', 'quick_overview_statistics' => 'Gyors áttekintő statisztikák', 'update_your_personal_info' => 'Frissítse személyes adatait', @@ -5287,6 +5258,33 @@ adva :date', 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/it/texts.php b/lang/it/texts.php index f72f831d3ff2..9e33a1641006 100644 --- a/lang/it/texts.php +++ b/lang/it/texts.php @@ -1087,7 +1087,7 @@ $lang = array( 'invoice_embed_documents' => 'Embed Documents', 'invoice_embed_documents_help' => 'Includi immagini allegate alla fattura.', 'document_email_attachment' => 'Allega Documenti', - 'ubl_email_attachment' => 'Allega UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Scarica Documenti (:size)', 'documents_from_expenses' => 'Da spese:', 'dropzone_default_message' => 'Trascina file o clicca per caricare', @@ -2355,7 +2355,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'Oncia Troy d'oro', 'currency_nicaraguan_córdoba' => 'Cordova nicaraguense', 'currency_malagasy_ariary' => 'Ariary malgascio', - "currency_tongan_pa_anga" => "Tongano Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Ci auguriamo che ti piaccia usare l'app.
Se prendessi in considerazione :link lo apprezzeremmo molto!', 'writing_a_review' => 'scrivendo una recensione', @@ -2871,19 +2871,6 @@ $lang = array( 'refunded' => 'Rimborsato', 'marked_quote_as_sent' => 'Preventivo contrassegnato come inviato con successo', 'custom_module_settings' => 'Impostazioni modulo personalizzate', - 'ticket' => 'Ticket', - 'tickets' => 'Tickets', - 'ticket_number' => 'Ticket #', - 'new_ticket' => 'Nuovo Ticket', - 'edit_ticket' => 'Modifica Ticket', - 'view_ticket' => 'Vedi Ticket', - 'archive_ticket' => 'Archivia Ticket', - 'restore_ticket' => 'Ripristina Ticket', - 'delete_ticket' => 'Elimina Ticket', - 'archived_ticket' => 'Ticket archiviato con successo', - 'archived_tickets' => 'Ticket archiviati con successo', - 'restored_ticket' => 'Ticket ripristinato con successo', - 'deleted_ticket' => 'Biglietto cancellato con successo', 'open' => 'Apri', 'new' => 'Nuovo', 'closed' => 'Chiuso', @@ -2900,14 +2887,6 @@ $lang = array( 'assigned_to' => 'Assegnato a', 'reply' => 'Rispondi', 'awaiting_reply' => 'In attesa di risposta', - 'ticket_close' => 'Chiudi Ticket', - 'ticket_reopen' => 'Riapri Ticket', - 'ticket_open' => 'Apri Ticket', - 'ticket_split' => 'Dividi Ticket', - 'ticket_merge' => 'Unisci Ticket', - 'ticket_update' => 'Aggiorna Ticket', - 'ticket_settings' => 'Impostazioni Ticket', - 'updated_ticket' => 'Ticket Aggiornato', 'mark_spam' => 'Segnala come Spam', 'local_part' => 'Parte Locale', 'local_part_unavailable' => 'Nome già preso', @@ -2925,31 +2904,23 @@ $lang = array( 'mime_types' => 'Tipi file MIME', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Elenco separato da virgole dei tipi mime consentiti, lasciare vuoto per tutti', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Priorità predefinita', 'alert_new_comment_id' => 'Nuovo commento', - 'alert_comment_ticket_help' => 'Selezionando un modello, verrà inviata una notifica (all\'agente) quando viene fatto un commento.', - 'alert_comment_ticket_email_help' => 'Email separate da virgole a bcc su un nuovo commento.', - 'new_ticket_notification_list' => 'Notifiche aggiuntive di nuovi ticket', 'update_ticket_notification_list' => 'Notifiche aggiuntive di nuovi commenti', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Assegnazione ticket', - 'alert_ticket_assign_agent_id_hel' => 'Selezionando un modello verrà inviata una notifica (all\'agente) quando un ticket viene assegnato.', - 'alert_ticket_assign_agent_id_notifications' => 'Notifiche aggiuntive assegnate ai ticket', - 'alert_ticket_assign_agent_id_help' => 'Email separate da virgole a bcc sull'assegnazione del ticket.', - 'alert_ticket_transfer_email_help' => 'Email separate da virgole a bcc sul trasferimento del biglietto.', - 'alert_ticket_overdue_agent_id' => 'Ticket scaduto', - 'alert_ticket_overdue_email' => 'Ulteriori notifiche di ticket scaduti', - 'alert_ticket_overdue_email_help' => 'Email separate da virgole a bcc su ticket scaduti.', - 'alert_ticket_overdue_agent_id_help' => 'Selezionando un modello invierà una notifica (all\'agente) quando un ticket va in scadenza.', 'default_agent' => 'Agente predefinito', 'default_agent_help' => 'Se selezionato sarà automaticamente assegnato a tutti i ticket in entrata', 'show_agent_details' => 'Mostra i dettagli dell\'agente sulle risposte', 'avatar' => 'Avatar', 'remove_avatar' => 'Rimuovi avatar', - 'ticket_not_found' => 'Ticket non trovato', 'add_template' => 'Aggiungi Modello', - 'updated_ticket_template' => 'Modello Ticket Aggiornato', - 'created_ticket_template' => 'Modello Ticket Creato', 'archive_ticket_template' => 'Archivia il modello', 'restore_ticket_template' => 'Riprestina il modello', 'archived_ticket_template' => 'Modello archiviato con successo', @@ -3065,7 +3036,7 @@ $lang = array( 'portal_mode' => 'Modalità portale', 'attach_pdf' => 'Allega PDF', 'attach_documents' => 'Allega documenti', - 'attach_ubl' => 'Allega UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Stile Email', 'processed' => 'Processato', 'fee_amount' => 'Importo della tassa', @@ -3806,7 +3777,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_numero', 'email_link_not_working' => 'Se il pulsante sopra non funziona per te, fai clic sul link', 'display_log' => 'Visualizza registro', - 'send_fail_logs_to_our_server' => 'Segnala gli errori in tempo reale', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Impostare', 'quick_overview_statistics' => 'Panoramica rapida e statistiche', 'update_your_personal_info' => 'Aggiorna le tue informazioni personali', @@ -5294,6 +5265,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/km_KH/texts.php b/lang/km_KH/texts.php index 4aba9bb9ff15..2e570008e5fa 100644 --- a/lang/km_KH/texts.php +++ b/lang/km_KH/texts.php @@ -1080,7 +1080,7 @@ $lang = array( 'invoice_embed_documents' => 'ឯកសារបង្កប់', 'invoice_embed_documents_help' => 'រួមបញ្ចូលរូបភាពដែលបានភ្ជាប់នៅក្នុងវិក្កយបត្រ។', 'document_email_attachment' => 'ភ្ជាប់ឯកសារ', - 'ubl_email_attachment' => 'ភ្ជាប់ UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'ទាញយកសំណុំទិន្នន័យ (:size)', 'documents_from_expenses' => 'ពីការចំណាយ៖', 'dropzone_default_message' => 'ទម្លាក់ឯកសារ ឬចុចដើម្បីផ្ទុកឡើង', @@ -2344,7 +2344,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'មាស Troy អោន', 'currency_nicaraguan_córdoba' => 'នីការ៉ាហ្គ័រ Córdoba', 'currency_malagasy_ariary' => 'អារីរីម៉ាឡាហ្គាស៊ី', - "currency_tongan_pa_anga" => "តុងហ្គាន ប៉ាអង់ហ្គា", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'យើងសង្ឃឹមថាអ្នករីករាយនឹងការប្រើប្រាស់កម្មវិធី។
ប្រសិនបើអ្នកនឹងពិចារណា :link យើងនឹងកោតសរសើរវាយ៉ាងខ្លាំង!', 'writing_a_review' => 'សរសេរការពិនិត្យឡើងវិញ', @@ -2860,19 +2860,6 @@ $lang = array( 'refunded' => 'សងប្រាក់វិញ។', 'marked_quote_as_sent' => 'បាន​សម្គាល់​សម្រង់​ដោយ​ជោគជ័យ​ថា​បាន​ផ្ញើ', 'custom_module_settings' => 'ការកំណត់ម៉ូឌុលផ្ទាល់ខ្លួន', - 'ticket' => 'សំបុត្រ', - 'tickets' => 'សំបុត្រ', - 'ticket_number' => 'សំបុត្រ #', - 'new_ticket' => 'សំបុត្រថ្មី។', - 'edit_ticket' => 'កែសម្រួលសំបុត្រ', - 'view_ticket' => 'មើលសំបុត្រ', - 'archive_ticket' => 'បណ្ណសារសំបុត្រ', - 'restore_ticket' => 'ទិញសំបុត្រឡើងវិញ', - 'delete_ticket' => 'លុបសំបុត្រ', - 'archived_ticket' => 'បានរក្សាទុកសំបុត្រដោយជោគជ័យ', - 'archived_tickets' => 'បានរក្សាទុកសំបុត្រដោយជោគជ័យ', - 'restored_ticket' => 'បានស្ដារសំបុត្រឡើងវិញដោយជោគជ័យ', - 'deleted_ticket' => 'បានលុបសំបុត្រដោយជោគជ័យ', 'open' => 'បើក', 'new' => 'ថ្មី។', 'closed' => 'បិទ', @@ -2889,14 +2876,6 @@ $lang = array( 'assigned_to' => 'ចាត់តាំងទៅ', 'reply' => 'ឆ្លើយតប', 'awaiting_reply' => 'កំពុងរង់ចាំការឆ្លើយតប', - 'ticket_close' => 'បិទសំបុត្រ', - 'ticket_reopen' => 'បើកសំបុត្រឡើងវិញ', - 'ticket_open' => 'បើកសំបុត្រ', - 'ticket_split' => 'ចែកសំបុត្រ', - 'ticket_merge' => 'សំបុត្របញ្ចូលគ្នា', - 'ticket_update' => 'ធ្វើបច្ចុប្បន្នភាពសំបុត្រ', - 'ticket_settings' => 'ការកំណត់សំបុត្រ', - 'updated_ticket' => 'សំបុត្របានធ្វើបច្ចុប្បន្នភាព', 'mark_spam' => 'សម្គាល់ថាជាសារឥតបានការ', 'local_part' => 'ផ្នែកក្នុងស្រុក', 'local_part_unavailable' => 'ឈ្មោះបានយក', @@ -2914,31 +2893,23 @@ $lang = array( 'mime_types' => 'ប្រភេទ Mime', 'mime_types_placeholder' => '.pdf , .docx , .jpg', 'mime_types_help' => 'បញ្ជីដោយបំបែកដោយសញ្ញាក្បៀសនៃប្រភេទ mime ដែលបានអនុញ្ញាត ទុកទទេសម្រាប់ទាំងអស់គ្នា', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'អាទិភាពលំនាំដើម', 'alert_new_comment_id' => 'មតិថ្មី។', - 'alert_comment_ticket_help' => 'ការជ្រើសរើសគំរូនឹងផ្ញើការជូនដំណឹង (ទៅភ្នាក់ងារ) នៅពេលមានមតិយោបល់។', - 'alert_comment_ticket_email_help' => 'សញ្ញាក្បៀសបានបំបែកអ៊ីមែលទៅ bcc នៅលើមតិយោបល់ថ្មី។', - 'new_ticket_notification_list' => 'ការជូនដំណឹងអំពីសំបុត្រថ្មីបន្ថែម', 'update_ticket_notification_list' => 'ការជូនដំណឹងអំពីមតិយោបល់ថ្មីបន្ថែម', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'ការកំណត់សំបុត្រ', - 'alert_ticket_assign_agent_id_hel' => 'ការជ្រើសរើសគំរូនឹងផ្ញើការជូនដំណឹង (ទៅភ្នាក់ងារ) នៅពេលដែលសំបុត្រត្រូវបានចាត់តាំង។', - 'alert_ticket_assign_agent_id_notifications' => 'ការជូនដំណឹងបន្ថែមដែលបានកំណត់សំបុត្រ', - 'alert_ticket_assign_agent_id_help' => 'សញ្ញាក្បៀសបានបំបែកអ៊ីមែលទៅ bcc នៅលើការចាត់តាំងសំបុត្រ។', - 'alert_ticket_transfer_email_help' => 'សញ្ញាក្បៀសបំបែកអ៊ីមែលទៅ bcc នៅលើការផ្ទេរសំបុត្រ។', - 'alert_ticket_overdue_agent_id' => 'សំបុត្រហួសកាលកំណត់', - 'alert_ticket_overdue_email' => 'ការជូនដំណឹងអំពីសំបុត្រហួសកាលកំណត់បន្ថែម', - 'alert_ticket_overdue_email_help' => 'សញ្ញាក្បៀសបានបំបែកអ៊ីមែលទៅជា bcc នៅលើសំបុត្រហួសកំណត់។', - 'alert_ticket_overdue_agent_id_help' => 'ការជ្រើសរើសគំរូនឹងផ្ញើការជូនដំណឹង (ទៅភ្នាក់ងារ) នៅពេលដែលសំបុត្រផុតកំណត់។', 'default_agent' => 'ភ្នាក់ងារលំនាំដើម', 'default_agent_help' => 'ប្រសិន​បើ​បាន​ជ្រើស​នឹង​ត្រូវ​បាន​កំណត់​ដោយ​ស្វ័យ​ប្រវត្តិ​ចំពោះ​សំបុត្រ​ចូល​ទាំង​អស់', 'show_agent_details' => 'បង្ហាញព័ត៌មានលម្អិតភ្នាក់ងារលើការឆ្លើយតប', 'avatar' => 'Avatar', 'remove_avatar' => 'លុបរូបតំណាង', - 'ticket_not_found' => 'រកមិនឃើញសំបុត្រទេ។', 'add_template' => 'បន្ថែមគំរូ', - 'updated_ticket_template' => 'គំរូសំបុត្រដែលបានធ្វើបច្ចុប្បន្នភាព', - 'created_ticket_template' => 'បានបង្កើតគំរូសំបុត្រ', 'archive_ticket_template' => 'បណ្ណសារគំរូ', 'restore_ticket_template' => 'ស្តារគំរូ', 'archived_ticket_template' => 'ពុម្ពដែលបានទុកក្នុងប័ណ្ណសារដោយជោគជ័យ', @@ -3054,7 +3025,7 @@ $lang = array( 'portal_mode' => 'របៀបវិបផតថល។', 'attach_pdf' => 'ភ្ជាប់ PDF', 'attach_documents' => 'ភ្ជាប់ឯកសារ', - 'attach_ubl' => 'ភ្ជាប់ UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'រចនាប័ទ្មអ៊ីមែល', 'processed' => 'ដំណើរការ', 'fee_amount' => 'ចំនួនទឹកប្រាក់ថ្លៃសេវា', @@ -3795,7 +3766,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'ប្រសិនបើប៊ូតុងខាងលើមិនដំណើរការសម្រាប់អ្នក សូមចុចលើតំណ', 'display_log' => 'បង្ហាញកំណត់ហេតុ', - 'send_fail_logs_to_our_server' => 'រាយការណ៍កំហុសក្នុងពេលវេលាជាក់ស្តែង', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'រៀបចំ', 'quick_overview_statistics' => 'ទិដ្ឋភាពទូទៅ និងស្ថិតិរហ័ស', 'update_your_personal_info' => 'ធ្វើបច្ចុប្បន្នភាពព័ត៌មានផ្ទាល់ខ្លួនរបស់អ្នក។', @@ -5283,6 +5254,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/lo_LA/texts.php b/lang/lo_LA/texts.php index 5a0e5e16168c..3677f99b387c 100644 --- a/lang/lo_LA/texts.php +++ b/lang/lo_LA/texts.php @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'ຝັງເອກະສານ', 'invoice_embed_documents_help' => 'ລວມເອົາຮູບທີ່ຕິດຢູ່ໃນໃບແຈ້ງໜີ້.', 'document_email_attachment' => 'ແນບເອກະສານ', - 'ubl_email_attachment' => 'ຕິດ UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'ດາວໂຫລດເອກະສານ (:size)', 'documents_from_expenses' => 'ຈາກຄ່າໃຊ້ຈ່າຍ:', 'dropzone_default_message' => 'ວາງໄຟລ໌ຫຼືຄລິກເພື່ອອັບໂຫລດ', @@ -2364,7 +2364,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'ທອງຄຳ Troy ອອນສ໌', 'currency_nicaraguan_córdoba' => 'ນິກາຣາກົວ ໂກໂດບາ', 'currency_malagasy_ariary' => 'ມາລາກາຊີ ariary', - "currency_tongan_pa_anga" => "ຕົງກັນປາອາງາ", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'ພວກ​ເຮົາ​ຫວັງ​ວ່າ​ທ່ານ​ຈະ​ມີ​ຄວາມ​ສຸກ​ກັບ​ການ​ນໍາ​ໃຊ້ app ໄດ້.
ຖ້າ​ຫາກ​ວ່າ​ທ່ານ \'ພິ​ຈາ​ລະ​ນາ :link ພວກ​ເຮົາ​ຈະ​ຂໍ​ຂອບ​ໃຈ​ເປັນ​ຢ່າງ​ຍິ່ງ​!', 'writing_a_review' => 'ຂຽນບົດວິຈານ', @@ -2880,19 +2880,6 @@ $lang = array( 'refunded' => 'ໄດ້ເງິນຄືນ', 'marked_quote_as_sent' => 'ໄດ້ໝາຍການອ້າງອີງສຳເລັດແລ້ວວ່າສົ່ງແລ້ວ', 'custom_module_settings' => 'ການຕັ້ງຄ່າໂມດູນແບບກຳນົດເອງ', - 'ticket' => 'ປີ້', - 'tickets' => 'ປີ້', - 'ticket_number' => 'ປີ້ #', - 'new_ticket' => 'ປີ້ໃໝ່', - 'edit_ticket' => 'ແກ້ໄຂປີ້', - 'view_ticket' => 'ເບິ່ງປີ້', - 'archive_ticket' => 'ເກັບປີ້', - 'restore_ticket' => 'ກູ້ປີ້ຄືນ', - 'delete_ticket' => 'ລຶບປີ້', - 'archived_ticket' => 'ປີ້ເຂົ້າແຟ້ມສຳເລັດແລ້ວ', - 'archived_tickets' => 'ເກັບປີ້ສຳເລັດແລ້ວ', - 'restored_ticket' => 'ໄດ້ຄືນປີ້ສຳເລັດແລ້ວ', - 'deleted_ticket' => 'ລຶບປີ້ສຳເລັດແລ້ວ', 'open' => 'ເປີດ', 'new' => 'ໃໝ່', 'closed' => 'ປິດ', @@ -2909,14 +2896,6 @@ $lang = array( 'assigned_to' => 'ມອບໝາຍໃຫ້', 'reply' => 'ຕອບ', 'awaiting_reply' => 'ກຳລັງລໍຖ້າຄຳຕອບ', - 'ticket_close' => 'ປິດປີ້', - 'ticket_reopen' => 'ເປີດປີ້ໃໝ່', - 'ticket_open' => 'ເປີດປີ້', - 'ticket_split' => 'ປີ້ແຍກ', - 'ticket_merge' => 'ລວມປີ້', - 'ticket_update' => 'ອັບເດດປີ້', - 'ticket_settings' => 'ການຕັ້ງຄ່າປີ້', - 'updated_ticket' => 'ປີ້ອັບເດດ', 'mark_spam' => 'ໝາຍເປັນສະແປມ', 'local_part' => 'ພາກສ່ວນທ້ອງຖິ່ນ', 'local_part_unavailable' => 'ເອົາຊື່', @@ -2934,31 +2913,23 @@ $lang = array( 'mime_types' => 'ປະເພດ Mime', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'ໝາຍຈຸດແຍກລາຍຊື່ປະເພດ mime ທີ່ອະນຸຍາດ, ປ່ອຍໃຫ້ຫວ່າງສຳລັບທັງໝົດ', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'ບູລິມະສິດເລີ່ມຕົ້ນ', 'alert_new_comment_id' => 'ຄຳເຫັນໃໝ່', - 'alert_comment_ticket_help' => 'ການເລືອກແມ່ແບບຈະສົ່ງການແຈ້ງເຕືອນ (ໃຫ້ຕົວແທນ) ເມື່ອມີຄຳເຫັນ.', - 'alert_comment_ticket_email_help' => 'ໝາຍຈຸດແຍກອີເມວໃສ່ bcc ໃນຄຳເຫັນໃໝ່.', - 'new_ticket_notification_list' => 'ແຈ້ງປີ້ໃໝ່ເພີ່ມເຕີມ', 'update_ticket_notification_list' => 'ແຈ້ງຄຳເຫັນໃໝ່ເພີ່ມເຕີມ', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'ການມອບໝາຍປີ້', - 'alert_ticket_assign_agent_id_hel' => 'ການເລືອກແມ່ແບບຈະສົ່ງການແຈ້ງເຕືອນ (ໃຫ້ຕົວແທນ) ເມື່ອປີ້ຖືກມອບໝາຍ.', - 'alert_ticket_assign_agent_id_notifications' => 'ແຈ້ງການເພີ່ມເຕີມທີ່ໄດ້ຮັບມອບໝາຍປີ້', - 'alert_ticket_assign_agent_id_help' => 'ໝາຍຈຸດແຍກອີເມວໃສ່ bcc ໃນການມອບໝາຍປີ້.', - 'alert_ticket_transfer_email_help' => 'ໝາຍຈຸດແຍກອີເມວໄປຫາ bcc ໃນການໂອນປີ້.', - 'alert_ticket_overdue_agent_id' => 'ປີ້ໝົດກຳນົດ', - 'alert_ticket_overdue_email' => 'ການແຈ້ງປີ້ທີ່ເກີນກຳນົດເວລາເພີ່ມເຕີມ', - 'alert_ticket_overdue_email_help' => 'ໝາຍຈຸດທີ່ແຍກອີເມວໄປຫາ bcc ໃນປີ້ທີ່ໝົດກຳນົດ.', - 'alert_ticket_overdue_agent_id_help' => 'ການເລືອກແມ່ແບບຈະສົ່ງການແຈ້ງເຕືອນ (ໃຫ້ຕົວແທນ) ເມື່ອປີ້ໝົດກຳນົດ.', 'default_agent' => 'ຕົວແທນເລີ່ມຕົ້ນ', 'default_agent_help' => 'ຖ້າເລືອກຈະຖືກມອບໃຫ້ປີ້ເຂົ້າທັງໝົດໂດຍອັດຕະໂນມັດ', 'show_agent_details' => 'ສະແດງລາຍລະອຽດຕົວແທນກ່ຽວກັບການຕອບ', 'avatar' => 'ຮູບແທນຕົວ', 'remove_avatar' => 'ເອົາຮູບແທນຕົວອອກ', - 'ticket_not_found' => 'ບໍ່ພົບປີ້', 'add_template' => 'ເພີ່ມແມ່ແບບ', - 'updated_ticket_template' => 'ແມ່ແບບປີ້ທີ່ອັບເດດແລ້ວ', - 'created_ticket_template' => 'Ticket Template ທີ່ສ້າງແລ້ວ', 'archive_ticket_template' => 'ແມ່ແບບເກັບມ້ຽນ', 'restore_ticket_template' => 'ຟື້ນຟູແມ່ແບບ', 'archived_ticket_template' => 'ແມ່ແບບທີ່ເກັບໄວ້ສຳເລັດແລ້ວ', @@ -3074,7 +3045,7 @@ $lang = array( 'portal_mode' => 'ໂໝດປະຕູ', 'attach_pdf' => 'ແນບ PDF', 'attach_documents' => 'ແນບເອກະສານ', - 'attach_ubl' => 'ຕິດ UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'ຮູບແບບອີເມວ', 'processed' => 'ປະມວນຜົນແລ້ວ', 'fee_amount' => 'ຈໍານວນຄ່າທໍານຽມ', @@ -3815,7 +3786,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'ຖ້າປຸ່ມຂ້າງເທິງນີ້ບໍ່ໄດ້ເຮັດວຽກສໍາລັບທ່ານ, ກະລຸນາຄລິກໃສ່ການເຊື່ອມຕໍ່', 'display_log' => 'ບັນທຶກການສະແດງ', - 'send_fail_logs_to_our_server' => 'ລາຍງານຄວາມຜິດພາດໃນເວລາຈິງ', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'ຕັ້ງຄ່າ', 'quick_overview_statistics' => 'ພາບລວມໄວ & ສະຖິຕິ', 'update_your_personal_info' => 'ອັບເດດຂໍ້ມູນສ່ວນຕົວຂອງເຈົ້າ', @@ -5303,6 +5274,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'ທ້າຍເດືອນ', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'ທ້າຍເດືອນ', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/lt/texts.php b/lang/lt/texts.php index c03003a16a56..5f9b651641d0 100644 --- a/lang/lt/texts.php +++ b/lang/lt/texts.php @@ -2364,7 +2364,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'We hope you\'re enjoying using the app.
If you\'d consider :link we\'d greatly appreciate it!', 'writing_a_review' => 'writing a review', @@ -2880,19 +2880,6 @@ $lang = array( 'refunded' => 'Grąžinta', 'marked_quote_as_sent' => 'Successfully marked quote as sent', 'custom_module_settings' => 'Custom Module Settings', - 'ticket' => 'Ticket', - 'tickets' => 'Tickets', - 'ticket_number' => 'Ticket #', - 'new_ticket' => 'New Ticket', - 'edit_ticket' => 'Edit Ticket', - 'view_ticket' => 'View Ticket', - 'archive_ticket' => 'Archive Ticket', - 'restore_ticket' => 'Restore Ticket', - 'delete_ticket' => 'Delete Ticket', - 'archived_ticket' => 'Successfully archived ticket', - 'archived_tickets' => 'Successfully archived tickets', - 'restored_ticket' => 'Successfully restored ticket', - 'deleted_ticket' => 'Successfully deleted ticket', 'open' => 'Open', 'new' => 'New', 'closed' => 'Closed', @@ -2909,14 +2896,6 @@ $lang = array( 'assigned_to' => 'Assigned to', 'reply' => 'Reply', 'awaiting_reply' => 'Awaiting reply', - 'ticket_close' => 'Close Ticket', - 'ticket_reopen' => 'Reopen Ticket', - 'ticket_open' => 'Open Ticket', - 'ticket_split' => 'Split Ticket', - 'ticket_merge' => 'Merge Ticket', - 'ticket_update' => 'Update Ticket', - 'ticket_settings' => 'Ticket Settings', - 'updated_ticket' => 'Ticket Updated', 'mark_spam' => 'Mark as Spam', 'local_part' => 'Local Part', 'local_part_unavailable' => 'Name taken', @@ -2934,31 +2913,23 @@ $lang = array( 'mime_types' => 'Mime types', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Comma separated list of allowed mime types, leave blank for all', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Default priority', 'alert_new_comment_id' => 'New comment', - 'alert_comment_ticket_help' => 'Selecting a template will send a notification (to agent) when a comment is made.', - 'alert_comment_ticket_email_help' => 'Comma separated emails to bcc on new comment.', - 'new_ticket_notification_list' => 'Additional new ticket notifications', 'update_ticket_notification_list' => 'Additional new comment notifications', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Ticket assignment', - 'alert_ticket_assign_agent_id_hel' => 'Selecting a template will send a notification (to agent) when a ticket is assigned.', - 'alert_ticket_assign_agent_id_notifications' => 'Additional ticket assigned notifications', - 'alert_ticket_assign_agent_id_help' => 'Comma separated emails to bcc on ticket assignment.', - 'alert_ticket_transfer_email_help' => 'Comma separated emails to bcc on ticket transfer.', - 'alert_ticket_overdue_agent_id' => 'Ticket overdue', - 'alert_ticket_overdue_email' => 'Additional overdue ticket notifications', - 'alert_ticket_overdue_email_help' => 'Comma separated emails to bcc on ticket overdue.', - 'alert_ticket_overdue_agent_id_help' => 'Selecting a template will send a notification (to agent) when a ticket becomes overdue.', 'default_agent' => 'Default Agent', 'default_agent_help' => 'If selected will automatically be assigned to all inbound tickets', 'show_agent_details' => 'Show agent details on responses', 'avatar' => 'Avatar', 'remove_avatar' => 'Remove avatar', - 'ticket_not_found' => 'Ticket not found', 'add_template' => 'Pridėti Šabloną', - 'updated_ticket_template' => 'Atnaujintas Bilieto Šablonas', - 'created_ticket_template' => 'Sukurtas Bilieto Šablonas', 'archive_ticket_template' => 'Archyvuoti Šabloną', 'restore_ticket_template' => 'Atstatyti Šabloną', 'archived_ticket_template' => 'Sėkmingai archyvuotas šablonas', @@ -3815,7 +3786,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', 'display_log' => 'Display Log', - 'send_fail_logs_to_our_server' => 'Pranešti apie klaidas realiuoju laiku', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Setup', 'quick_overview_statistics' => 'Trumpa apžvalga ir statistika', 'update_your_personal_info' => 'Update your personal information', @@ -5303,6 +5274,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/lv_LV/texts.php b/lang/lv_LV/texts.php index 8cabdf50d29f..33a7f42a1762 100644 --- a/lang/lv_LV/texts.php +++ b/lang/lv_LV/texts.php @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'Embed Documents', 'invoice_embed_documents_help' => 'Include attached images in the invoice.', 'document_email_attachment' => 'Attach Documents', - 'ubl_email_attachment' => 'Attach UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', 'dropzone_default_message' => 'Drop files or click to upload', @@ -2364,7 +2364,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'We hope you\'re enjoying using the app.
If you\'d consider :link we\'d greatly appreciate it!', 'writing_a_review' => 'writing a review', @@ -2880,19 +2880,6 @@ $lang = array( 'refunded' => 'Atgriezts', 'marked_quote_as_sent' => 'Cenu piedāvājums veiksmīgi atzīmēts kā nosūtīts', 'custom_module_settings' => 'Custom Module Settings', - 'ticket' => 'Biļete', - 'tickets' => 'Biļetes', - 'ticket_number' => 'Biļetes #', - 'new_ticket' => 'Jaunā biļete', - 'edit_ticket' => 'Edit Ticket', - 'view_ticket' => 'View Ticket', - 'archive_ticket' => 'Archive Ticket', - 'restore_ticket' => 'Restore Ticket', - 'delete_ticket' => 'Delete Ticket', - 'archived_ticket' => 'Successfully archived ticket', - 'archived_tickets' => 'Successfully archived tickets', - 'restored_ticket' => 'Successfully restored ticket', - 'deleted_ticket' => 'Successfully deleted ticket', 'open' => 'Atvērt', 'new' => 'Jauns', 'closed' => 'Closed', @@ -2909,14 +2896,6 @@ $lang = array( 'assigned_to' => 'Assigned to', 'reply' => 'Atbildēt', 'awaiting_reply' => 'Awaiting reply', - 'ticket_close' => 'Close Ticket', - 'ticket_reopen' => 'Reopen Ticket', - 'ticket_open' => 'Open Ticket', - 'ticket_split' => 'Split Ticket', - 'ticket_merge' => 'Merge Ticket', - 'ticket_update' => 'Update Ticket', - 'ticket_settings' => 'Ticket Settings', - 'updated_ticket' => 'Ticket Updated', 'mark_spam' => 'Mark as Spam', 'local_part' => 'Local Part', 'local_part_unavailable' => 'Name taken', @@ -2934,31 +2913,23 @@ $lang = array( 'mime_types' => 'Mime types', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Comma separated list of allowed mime types, leave blank for all', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Default priority', 'alert_new_comment_id' => 'Jauns komentārs', - 'alert_comment_ticket_help' => 'Selecting a template will send a notification (to agent) when a comment is made.', - 'alert_comment_ticket_email_help' => 'Comma separated emails to bcc on new comment.', - 'new_ticket_notification_list' => 'Additional new ticket notifications', 'update_ticket_notification_list' => 'Additional new comment notifications', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Ticket assignment', - 'alert_ticket_assign_agent_id_hel' => 'Selecting a template will send a notification (to agent) when a ticket is assigned.', - 'alert_ticket_assign_agent_id_notifications' => 'Additional ticket assigned notifications', - 'alert_ticket_assign_agent_id_help' => 'Comma separated emails to bcc on ticket assignment.', - 'alert_ticket_transfer_email_help' => 'Comma separated emails to bcc on ticket transfer.', - 'alert_ticket_overdue_agent_id' => 'Ticket overdue', - 'alert_ticket_overdue_email' => 'Additional overdue ticket notifications', - 'alert_ticket_overdue_email_help' => 'Comma separated emails to bcc on ticket overdue.', - 'alert_ticket_overdue_agent_id_help' => 'Selecting a template will send a notification (to agent) when a ticket becomes overdue.', 'default_agent' => 'Default Agent', 'default_agent_help' => 'If selected will automatically be assigned to all inbound tickets', 'show_agent_details' => 'Show agent details on responses', 'avatar' => 'Avatārs', 'remove_avatar' => 'Remove avatar', - 'ticket_not_found' => 'Ticket not found', 'add_template' => 'Add Template', - 'updated_ticket_template' => 'Updated Ticket Template', - 'created_ticket_template' => 'Created Ticket Template', 'archive_ticket_template' => 'Archive Template', 'restore_ticket_template' => 'Restore Template', 'archived_ticket_template' => 'Successfully archived template', @@ -3074,7 +3045,7 @@ $lang = array( 'portal_mode' => 'Portal Mode', 'attach_pdf' => 'Attach PDF', 'attach_documents' => 'Attach Documents', - 'attach_ubl' => 'Attach UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Email Style', 'processed' => 'Processed', 'fee_amount' => 'Fee Amount', @@ -3815,7 +3786,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', 'display_log' => 'Display Log', - 'send_fail_logs_to_our_server' => 'Report errors in realtime', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Setup', 'quick_overview_statistics' => 'Quick overview & statistics', 'update_your_personal_info' => 'Update your personal information', @@ -5303,6 +5274,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/mk_MK/texts.php b/lang/mk_MK/texts.php index b72e2dac8e11..25a5dc94b3e5 100644 --- a/lang/mk_MK/texts.php +++ b/lang/mk_MK/texts.php @@ -1100,7 +1100,7 @@ $lang = array( 'invoice_embed_documents' => 'Вметни документи', 'invoice_embed_documents_help' => 'Вклучи ги прикачените слики во фактурата.', 'document_email_attachment' => 'Прикачи документи', - 'ubl_email_attachment' => 'Прикачи UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Преземи документи (:size)', 'documents_from_expenses' => 'Од Трошоци:', 'dropzone_default_message' => 'Спушти ги датотеките или кликни за да прикачување', @@ -2365,7 +2365,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Се надеваме дека уживате во користењето на апликацијата.
Ако го земете во предвид :link многу би ни значело!', 'writing_a_review' => 'пишување рецензија', @@ -2881,19 +2881,6 @@ $lang = array( 'refunded' => 'Refunded', 'marked_quote_as_sent' => 'Successfully marked quote as sent', 'custom_module_settings' => 'Custom Module Settings', - 'ticket' => 'Ticket', - 'tickets' => 'Tickets', - 'ticket_number' => 'Ticket #', - 'new_ticket' => 'New Ticket', - 'edit_ticket' => 'Edit Ticket', - 'view_ticket' => 'View Ticket', - 'archive_ticket' => 'Archive Ticket', - 'restore_ticket' => 'Restore Ticket', - 'delete_ticket' => 'Delete Ticket', - 'archived_ticket' => 'Successfully archived ticket', - 'archived_tickets' => 'Successfully archived tickets', - 'restored_ticket' => 'Successfully restored ticket', - 'deleted_ticket' => 'Successfully deleted ticket', 'open' => 'Open', 'new' => 'New', 'closed' => 'Closed', @@ -2910,14 +2897,6 @@ $lang = array( 'assigned_to' => 'Assigned to', 'reply' => 'Reply', 'awaiting_reply' => 'Awaiting reply', - 'ticket_close' => 'Close Ticket', - 'ticket_reopen' => 'Reopen Ticket', - 'ticket_open' => 'Open Ticket', - 'ticket_split' => 'Split Ticket', - 'ticket_merge' => 'Merge Ticket', - 'ticket_update' => 'Update Ticket', - 'ticket_settings' => 'Ticket Settings', - 'updated_ticket' => 'Ticket Updated', 'mark_spam' => 'Mark as Spam', 'local_part' => 'Local Part', 'local_part_unavailable' => 'Name taken', @@ -2935,31 +2914,23 @@ $lang = array( 'mime_types' => 'Mime types', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Comma separated list of allowed mime types, leave blank for all', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Default priority', 'alert_new_comment_id' => 'New comment', - 'alert_comment_ticket_help' => 'Selecting a template will send a notification (to agent) when a comment is made.', - 'alert_comment_ticket_email_help' => 'Comma separated emails to bcc on new comment.', - 'new_ticket_notification_list' => 'Additional new ticket notifications', 'update_ticket_notification_list' => 'Additional new comment notifications', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Ticket assignment', - 'alert_ticket_assign_agent_id_hel' => 'Selecting a template will send a notification (to agent) when a ticket is assigned.', - 'alert_ticket_assign_agent_id_notifications' => 'Additional ticket assigned notifications', - 'alert_ticket_assign_agent_id_help' => 'Comma separated emails to bcc on ticket assignment.', - 'alert_ticket_transfer_email_help' => 'Comma separated emails to bcc on ticket transfer.', - 'alert_ticket_overdue_agent_id' => 'Ticket overdue', - 'alert_ticket_overdue_email' => 'Additional overdue ticket notifications', - 'alert_ticket_overdue_email_help' => 'Comma separated emails to bcc on ticket overdue.', - 'alert_ticket_overdue_agent_id_help' => 'Selecting a template will send a notification (to agent) when a ticket becomes overdue.', 'default_agent' => 'Default Agent', 'default_agent_help' => 'If selected will automatically be assigned to all inbound tickets', 'show_agent_details' => 'Show agent details on responses', 'avatar' => 'Avatar', 'remove_avatar' => 'Remove avatar', - 'ticket_not_found' => 'Ticket not found', 'add_template' => 'Add Template', - 'updated_ticket_template' => 'Updated Ticket Template', - 'created_ticket_template' => 'Created Ticket Template', 'archive_ticket_template' => 'Archive Template', 'restore_ticket_template' => 'Restore Template', 'archived_ticket_template' => 'Successfully archived template', @@ -3075,7 +3046,7 @@ $lang = array( 'portal_mode' => 'Portal Mode', 'attach_pdf' => 'Attach PDF', 'attach_documents' => 'Attach Documents', - 'attach_ubl' => 'Attach UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Email Style', 'processed' => 'Processed', 'fee_amount' => 'Fee Amount', @@ -3816,7 +3787,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', 'display_log' => 'Display Log', - 'send_fail_logs_to_our_server' => 'Report errors in realtime', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Setup', 'quick_overview_statistics' => 'Quick overview & statistics', 'update_your_personal_info' => 'Update your personal information', @@ -5304,6 +5275,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/nl/texts.php b/lang/nl/texts.php index 1b6a8f040e6a..37700fdabaa6 100644 --- a/lang/nl/texts.php +++ b/lang/nl/texts.php @@ -1096,7 +1096,7 @@ $lang = array( 'invoice_embed_documents' => 'Documenten invoegen', 'invoice_embed_documents_help' => 'Bijgevoegde afbeeldingen weergeven in de factuur.', 'document_email_attachment' => 'Documenten bijvoegen', - 'ubl_email_attachment' => 'Voeg UBL toe', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Documenten downloaden (:size)', 'documents_from_expenses' => 'Van uitgaven:', 'dropzone_default_message' => 'Sleep bestanden hierheen of klik om te uploaden', @@ -2361,7 +2361,7 @@ Kom terug naar deze betalingsmethode pagina zodra u de bedragen heeft ontvangen 'currency_gold_troy_ounce' => 'Gouden Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguaans Córdoba', 'currency_malagasy_ariary' => 'Malagassische ariarium', - "currency_tongan_pa_anga" => "Tongaanse Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'We hopen dat je het leuk vindt om de app te gebruiken.
Als je zou overwegen :link, zouden we dat zeer op prijs stellen!', 'writing_a_review' => 'een recensie schrijven', @@ -2877,19 +2877,6 @@ Kom terug naar deze betalingsmethode pagina zodra u de bedragen heeft ontvangen 'refunded' => 'Gecrediteerd', 'marked_quote_as_sent' => 'De offerte is gemarkeerd als verzonden', 'custom_module_settings' => 'Aangepaste module-instellingen', - 'ticket' => 'Ticket', - 'tickets' => 'Tickets', - 'ticket_number' => 'Ticketnummer', - 'new_ticket' => 'Nieuw ticket', - 'edit_ticket' => 'Bewerk ticket', - 'view_ticket' => 'Bekijk ticket', - 'archive_ticket' => 'Archiveer ticket', - 'restore_ticket' => 'Herstel ticket', - 'delete_ticket' => 'Verwijder ticket', - 'archived_ticket' => 'Het ticket is gearchiveerd', - 'archived_tickets' => 'De tickets zijn gearchiveerd', - 'restored_ticket' => 'Het ticket is teruggezet', - 'deleted_ticket' => 'Het ticket is verwijderd', 'open' => 'Open', 'new' => 'Nieuw', 'closed' => 'Gesloten', @@ -2906,14 +2893,6 @@ Kom terug naar deze betalingsmethode pagina zodra u de bedragen heeft ontvangen 'assigned_to' => 'Toegewezen aan', 'reply' => 'Antwoord', 'awaiting_reply' => 'In afwachting van antwoord', - 'ticket_close' => 'Sluit ticket', - 'ticket_reopen' => 'Heropen ticket', - 'ticket_open' => 'Open ticket', - 'ticket_split' => 'Splits ticket', - 'ticket_merge' => 'Ticket samenvoegen', - 'ticket_update' => 'Werk ticket bij', - 'ticket_settings' => 'Ticket instellingen', - 'updated_ticket' => 'Ticket bijgewerkt', 'mark_spam' => 'Markeer als spam', 'local_part' => 'Lokaal gedeelte', 'local_part_unavailable' => 'Naam reeds in gebruik', @@ -2931,31 +2910,23 @@ Kom terug naar deze betalingsmethode pagina zodra u de bedragen heeft ontvangen 'mime_types' => 'MIME-types', 'mime_types_placeholder' => '.pdf, .docx, .jpg', 'mime_types_help' => 'Komma-gescheiden lijst met toegestane MIME-types, laat leeg voor alle', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Prioriteit', 'alert_new_comment_id' => 'Nieuwe opmerking', - 'alert_comment_ticket_help' => 'Het selecteren van een sjabloon zal een notificatie versturen (naar de agent) zodra een opmerking is geplaatst.', - 'alert_comment_ticket_email_help' => 'E-mailadressen gescheiden met een komma waar een notificatie in BCC naar gestuurd zal worden bij nieuwe reacties.', - 'new_ticket_notification_list' => 'Additionele notificaties bij nieuwe tickets', 'update_ticket_notification_list' => 'Additionele notificaties bij nieuwe opmerkingen', 'comma_separated_values' => 'admin@voorbeeld.com, beheerder@voorbeeld.com', - 'alert_ticket_assign_agent_id' => 'Tickettoewijzing', - 'alert_ticket_assign_agent_id_hel' => 'Het selecteren van een sjabloon zal een notificatie versturen (naar de agent) zodra een ticket is toegewezen.', - 'alert_ticket_assign_agent_id_notifications' => 'Additionele notificaties bij tickettoewijzigingen', - 'alert_ticket_assign_agent_id_help' => 'E-mailadressen gescheiden met een komma waar een notificatie in BCC naar gestuurd zal worden bij nieuwe tickettoewijzingen.', - 'alert_ticket_transfer_email_help' => 'E-mailadressen gescheiden met een komma waar een notificatie in BCC naar gestuurd zal worden bij het overdragen van tickets.', - 'alert_ticket_overdue_agent_id' => 'Ticket over tijd', - 'alert_ticket_overdue_email' => 'Additionele notificaties bij achterstallige tickets', - 'alert_ticket_overdue_email_help' => 'E-mailadressen gescheiden met een komma waar een notificatie in BCC naar gestuurd zal worden bij achterstallige tickets.', - 'alert_ticket_overdue_agent_id_help' => 'Het selecteren van een sjabloon zal een notificatie versturen (naar de agent) zodra een ticket achterstallig wordt.', 'default_agent' => 'Agent', 'default_agent_help' => 'Zal bij selectie automatisch toegewezen worden aan alle binnenkomende tickets', 'show_agent_details' => 'Toon details van de agent bij reacties', 'avatar' => 'Avatar', 'remove_avatar' => 'Verwijder avatar', - 'ticket_not_found' => 'Ticket niet gevonden', 'add_template' => 'Sjabloon toevoegen', - 'updated_ticket_template' => 'Ticketsjabloon gewijzigd', - 'created_ticket_template' => 'Ticketsjabloon aangemaakt', 'archive_ticket_template' => 'Archiveer sjabloon', 'restore_ticket_template' => 'Herstel sjabloon', 'archived_ticket_template' => 'Het sjabloon is gearchiveerd', @@ -3071,7 +3042,7 @@ Kom terug naar deze betalingsmethode pagina zodra u de bedragen heeft ontvangen 'portal_mode' => 'portaalmodus', 'attach_pdf' => 'PDF bijvoegen', 'attach_documents' => 'Document bijvoegen', - 'attach_ubl' => 'UBL bijvoegen', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Email opmaak', 'processed' => 'Verwerkt', 'fee_amount' => 'Vergoedingsbedrag', @@ -3812,7 +3783,7 @@ Kom terug naar deze betalingsmethode pagina zodra u de bedragen heeft ontvangen 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'Indien de bovenstaande knop niet werkt voor u, gelieve op de link te klikken', 'display_log' => 'Toon logboek', - 'send_fail_logs_to_our_server' => 'Rapporteer fouten in realtime', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Setup', 'quick_overview_statistics' => 'Snel overzicht & statistieken', 'update_your_personal_info' => 'Update jouw persoonlijke informatie', @@ -5303,6 +5274,33 @@ Email: :email
', 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/pl/texts.php b/lang/pl/texts.php index 778c05b55031..b6b4b4f4c0f3 100644 --- a/lang/pl/texts.php +++ b/lang/pl/texts.php @@ -197,7 +197,7 @@ Przykłady dynamicznych zmiennych: 'removed_logo' => 'Logo zostało usunięte', 'sent_message' => 'Wiadomość została wysłana', 'invoice_error' => 'Pamiętaj, aby wybrać klienta i poprawić błędy', - 'limit_clients' => 'You\'ve hit the :count client limit on Free accounts. Congrats on your success!.', + 'limit_clients' => 'You\'ve hit the :count client limit on Free accounts. Congrats on your success!', 'payment_error' => 'Wystąpił błąd w trakcie przetwarzania płatności. Prosimy spróbować później.', 'registration_required' => 'Wymagana rejestracja', 'confirmation_required' => 'Potwierdź swój adres emailowy, :link do ponownego wysłania emailu weryfikujacego.', @@ -1097,7 +1097,7 @@ Przykłady dynamicznych zmiennych: 'invoice_embed_documents' => 'Załączniki', 'invoice_embed_documents_help' => 'Wstaw do faktury załączniki graficzne.', 'document_email_attachment' => 'Załącz dokumenty', - 'ubl_email_attachment' => 'Dodaj UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Ściągnij dokumenty (:size)', 'documents_from_expenses' => 'From Expenses:', 'dropzone_default_message' => 'Upuść pliki lub kliknij, aby przesłać', @@ -2362,7 +2362,7 @@ Gdy przelewy zostaną zaksięgowane na Twoim koncie, wróć do tej strony i klik 'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'We hope you\'re enjoying using the app.
If you\'d consider :link we\'d greatly appreciate it!', 'writing_a_review' => 'pisanie recenzji', @@ -2693,7 +2693,7 @@ Gdy przelewy zostaną zaksięgowane na Twoim koncie, wróć do tej strony i klik 'no_assets' => 'No images, drag to upload', 'add_image' => 'Dodaj obraz', 'select_image' => 'Wybierz obraz', - 'upgrade_to_upload_images' => 'Upgrade to the Enterprise Plan to upload images', + 'upgrade_to_upload_images' => 'Upgrade to the Enterprise Plan to upload files & images', 'delete_image' => 'Usuń obraz', 'delete_image_help' => 'Warning: deleting the image will remove it from all proposals.', 'amount_variable_help' => 'Note: the invoice $amount field will use the partial/deposit field if set otherwise it will use the invoice balance.', @@ -2878,19 +2878,6 @@ Gdy przelewy zostaną zaksięgowane na Twoim koncie, wróć do tej strony i klik 'refunded' => 'Zwrócone', 'marked_quote_as_sent' => 'Successfully marked quote as sent', 'custom_module_settings' => 'Ustawienia własnego modułu', - 'ticket' => 'Ticket', - 'tickets' => 'Tickets', - 'ticket_number' => 'Ticket #', - 'new_ticket' => 'New Ticket', - 'edit_ticket' => 'Edit Ticket', - 'view_ticket' => 'View Ticket', - 'archive_ticket' => 'Archive Ticket', - 'restore_ticket' => 'Restore Ticket', - 'delete_ticket' => 'Delete Ticket', - 'archived_ticket' => 'Successfully archived ticket', - 'archived_tickets' => 'Successfully archived tickets', - 'restored_ticket' => 'Successfully restored ticket', - 'deleted_ticket' => 'Successfully deleted ticket', 'open' => 'Otwórz', 'new' => 'Nowy', 'closed' => 'Zamknięte', @@ -2907,14 +2894,6 @@ Gdy przelewy zostaną zaksięgowane na Twoim koncie, wróć do tej strony i klik 'assigned_to' => 'Przypisane do', 'reply' => 'Odpowiedz', 'awaiting_reply' => 'Oczekiwanie na odpowiedź', - 'ticket_close' => 'Close Ticket', - 'ticket_reopen' => 'Reopen Ticket', - 'ticket_open' => 'Open Ticket', - 'ticket_split' => 'Split Ticket', - 'ticket_merge' => 'Merge Ticket', - 'ticket_update' => 'Update Ticket', - 'ticket_settings' => 'Ticket Settings', - 'updated_ticket' => 'Ticket Updated', 'mark_spam' => 'Oznacz jako Spam', 'local_part' => 'Część lokalna', 'local_part_unavailable' => 'Nazwa zajęta', @@ -2941,66 +2920,25 @@ Gdy przelewy zostaną zaksięgowane na Twoim koncie, wróć do tej strony i klik 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Domyślny priorytet', 'alert_new_comment_id' => 'Nowy komentarz', - 'alert_comment_ticket_help' => 'Wybranie szablonu spowoduje wysłanie powiadomienia (do agenta) o pojawieniu się komentarza.', - 'alert_comment_ticket_email_help' => 'Comma separated emails to bcc on new comment.', - 'new_ticket_notification_list' => 'Additional new ticket notifications', 'update_ticket_notification_list' => 'Dodatkowe powiadomienia o nowych komentarzach', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Ticket assignment', - 'alert_ticket_assign_agent_id_hel' => 'Selecting a template will send a notification (to agent) when a ticket is assigned.', - 'alert_ticket_assign_agent_id_notifications' => 'Additional ticket assigned notifications', - 'alert_ticket_assign_agent_id_help' => 'Comma separated emails to bcc on ticket assignment.', - 'alert_ticket_transfer_email_help' => 'Comma separated emails to bcc on ticket transfer.', - 'alert_ticket_overdue_agent_id' => 'Ticket overdue', - 'alert_ticket_overdue_email' => 'Additional overdue ticket notifications', - 'alert_ticket_overdue_email_help' => 'Comma separated emails to bcc on ticket overdue.', - 'alert_ticket_overdue_agent_id_help' => 'Selecting a template will send a notification (to agent) when a ticket becomes overdue.', - 'ticket_master' => 'Ticket Master', - 'ticket_master_help' => 'Has the ability to assign and transfer tickets. Assigned as the default agent for all tickets.', 'default_agent' => 'Domyślny agent', 'default_agent_help' => 'If selected will automatically be assigned to all inbound tickets', 'show_agent_details' => 'Pokaż szczegóły agenta w odpowiedziach', 'avatar' => 'Awatar', 'remove_avatar' => 'Usuń awatar', - 'ticket_not_found' => 'Ticket not found', 'add_template' => 'Dodaj Szablon', - 'ticket_template' => 'Ticket Template', - 'ticket_templates' => 'Ticket Templates', - 'updated_ticket_template' => 'Updated Ticket Template', - 'created_ticket_template' => 'Created Ticket Template', 'archive_ticket_template' => 'Archiwizuj Szablon', 'restore_ticket_template' => 'Przywróć Szablon', 'archived_ticket_template' => 'Szablon zarchiwizowany pomyślnie', 'restored_ticket_template' => 'Szablon przywrócony pomyślnie', - 'close_reason' => 'Let us know why you are closing this ticket', - 'reopen_reason' => 'Let us know why you are reopening this ticket', 'enter_ticket_message' => 'Please enter a message to update the ticket', 'show_hide_all' => 'Pokaż / Ukryj wszystko', 'subject_required' => 'Temat jest wymagany', 'mobile_refresh_warning' => 'Jeśli korzystasz z aplikacji mobilnej, może być konieczne pełne odświeżenie.', - 'enable_proposals_for_background' => 'To upload a background image :link to enable the proposals module.', - 'ticket_assignment' => 'Ticket :ticket_number has been assigned to :agent', - 'ticket_contact_reply' => 'Ticket :ticket_number has been updated by client :contact', - 'ticket_new_template_subject' => 'Ticket :ticket_number has been created.', - 'ticket_updated_template_subject' => 'Ticket :ticket_number has been updated.', - 'ticket_closed_template_subject' => 'Ticket :ticket_number has been closed.', - 'ticket_overdue_template_subject' => 'Ticket :ticket_number is now overdue', 'merge' => 'Scal', 'merged' => 'Scalone', 'agent' => 'Agent', - 'parent_ticket' => 'Parent Ticket', - 'linked_tickets' => 'Linked Tickets', - 'merge_prompt' => 'Enter ticket number to merge into', - 'merge_from_to' => 'Ticket #:old_ticket merged into Ticket #:new_ticket', - 'merge_closed_ticket_text' => 'Ticket #:old_ticket was closed and merged into Ticket#:new_ticket - :subject', - 'merge_updated_ticket_text' => 'Ticket #:old_ticket was closed and merged into this ticket', - 'merge_placeholder' => 'Merge ticket #:ticket into the following ticket', - 'select_ticket' => 'Select Ticket', - 'new_internal_ticket' => 'New internal ticket', - 'internal_ticket' => 'Internal ticket', - 'create_ticket' => 'Create ticket', - 'allow_inbound_email_tickets_external' => 'New Tickets by email (Client)', - 'allow_inbound_email_tickets_external_help' => 'Allow clients to create new tickets by email', 'include_in_filter' => 'Uwzględnij w filtrowaniu', 'custom_client1' => ':VALUE', 'custom_client2' => ':VALUE', @@ -3105,7 +3043,7 @@ Gdy przelewy zostaną zaksięgowane na Twoim koncie, wróć do tej strony i klik 'portal_mode' => 'Tryb portalu', 'attach_pdf' => 'Załącz PDF', 'attach_documents' => 'Załącz dokumenty', - 'attach_ubl' => 'Załącz UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Styl wiadomości Email', 'processed' => 'Przetworzony', 'fee_amount' => 'Do zapłaty', @@ -3846,7 +3784,7 @@ Gdy przelewy zostaną zaksięgowane na Twoim koncie, wróć do tej strony i klik 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'Jeśli powyższy przycisk nie działa, kliknij link', 'display_log' => 'Pokaż log', - 'send_fail_logs_to_our_server' => 'Zgłaszaj błędy w czasie rzeczywistym', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Instalacja', 'quick_overview_statistics' => 'Quick overview & statistics', 'update_your_personal_info' => 'Aktualizacja Twoich danych osobowych', @@ -4027,7 +3965,7 @@ Gdy przelewy zostaną zaksięgowane na Twoim koncie, wróć do tej strony i klik 'user_detached' => 'Użytkownik odłączony od firmy', 'create_webhook_failure' => 'Failed to create Webhook', 'payment_message_extended' => 'Dziękujemy za wpłatę :amount za :invoice', - 'online_payments_minimum_note' => 'Note: Online payments are supported only if amount is bigger than $1 or currency equivalent.', + 'online_payments_minimum_note' => 'Note: Online payments are supported only if amount is larger than $1 or currency equivalent.', 'payment_token_not_found' => 'Payment token not found, please try again. If an issue still persist, try with another payment method', 'vendor_address1' => 'Vendor Street', 'vendor_address2' => 'Vendor Apt/Suite', @@ -4435,7 +4373,7 @@ Gdy przelewy zostaną zaksięgowane na Twoim koncie, wróć do tej strony i klik 'client_shipping_country' => 'Client Shipping Country', 'load_pdf' => 'Load PDF', 'start_free_trial' => 'Start Free Trial', - 'start_free_trial_message' => 'Start your FREE 14 day trial of the pro plan', + 'start_free_trial_message' => 'Start your FREE 14 day trial of the Pro Plan', 'due_on_receipt' => 'Due on Receipt', 'is_paid' => 'Zapłacone', 'age_group_paid' => 'Zapłacono', @@ -5145,7 +5083,7 @@ Gdy przelewy zostaną zaksięgowane na Twoim koncie, wróć do tej strony i klik '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', + 'run_template' => 'Run Template', 'statement_design' => 'Statement Design', 'delivery_note_design' => 'Delivery Note Design', 'payment_receipt_design' => 'Payment Receipt Design', @@ -5295,6 +5233,72 @@ Gdy przelewy zostaną zaksięgowane na Twoim koncie, wróć do tej strony i klik 'rappen_rounding_help' => 'Round amount to 5 cents', 'assign_group' => 'Assign group', 'paypal_advanced_cards' => 'Advanced Card Payments', + 'local_domain_help' => 'EHLO domain (optional)', + 'port_help' => 'ie. 25,587,465', + 'host_help' => 'ie. smtp.gmail.com', + 'always_show_required_fields' => 'Allows show required fields form', + 'always_show_required_fields_help' => 'Displays the required fields form always at checkout', + 'advanced_cards' => 'Advanced Cards', + 'activity_140' => 'Statement sent to :client', + 'invoice_net_amount' => 'Invoice Net Amount', + 'round_to_minutes' => 'Round To Minutes', + '1_second' => '1 Second', + '1_minute' => '1 Minute', + '5_minutes' => '5 Minutes', + '15_minutes' => '15 Minutes', + '30_minutes' => '30 Minutes', + '1_hour' => '1 Hour', + '1_day' => '1 Day', + 'round_tasks' => 'Task Rounding Direction', + 'round_tasks_help' => 'Round task times up or down.', + 'direction' => 'Direction', + 'round_up' => 'Round Up', + 'round_down' => 'Round Down', + 'task_round_to_nearest' => 'Round To Nearest', + 'task_round_to_nearest_help' => 'The interval to round the task to.', + 'bulk_updated' => 'Successfully updated data', + 'bulk_update' => 'Bulk Update', + 'calculate' => 'Calculate', + 'sum' => 'Sum', + 'money' => 'Money', + 'web_app' => 'Web App', + 'desktop_app' => 'Desktop App', + 'disconnected' => 'Disconnected', + 'reconnect' => 'Reconnect', + 'e_invoice_settings' => 'E-Invoice Settings', + 'btcpay_refund_subject' => 'Refund of your invoice via BTCPay', + 'btcpay_refund_body' => 'A refund intended for you has been issued. To claim it via BTCPay, please click on this link:', + 'currency_mauritanian_ouguiya' => 'Mauritanian Ouguiya', + 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', + 'end_of_month' => 'End Of Month', + 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); return $lang; diff --git a/lang/pt_BR/texts.php b/lang/pt_BR/texts.php index 0679b128c9da..1422bd891ced 100644 --- a/lang/pt_BR/texts.php +++ b/lang/pt_BR/texts.php @@ -1096,7 +1096,7 @@ $lang = array( 'invoice_embed_documents' => 'Embutir Documentos', 'invoice_embed_documents_help' => 'Incluir imagens anexas na fatura.', 'document_email_attachment' => 'Anexar Documentos', - 'ubl_email_attachment' => 'Anexar UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Baixar Documentos (:size)', 'documents_from_expenses' => 'De Despesas:', 'dropzone_default_message' => 'Solte arquivos ou clique para fazer upload', @@ -1646,7 +1646,7 @@ Quando tiver as quantias, volte a esta página de formas de pagamento e clique " 'country_Turkey' => 'Turquia', 'country_Turkmenistan' => 'Turcomenistão', 'country_Turks and Caicos Islands' => 'Ilhas Turks e Caicos', - 'country_Tuvalu' => ' Tuvalu', + 'country_Tuvalu' => 'Tuvalu', 'country_Uganda' => 'Uganda', 'country_Ukraine' => 'Ucrânia', 'country_Macedonia, the former Yugoslav Republic of' => 'Macedônia, antiga República Iugoslava', @@ -2361,7 +2361,7 @@ Quando tiver as quantias, volte a esta página de formas de pagamento e clique " 'currency_gold_troy_ounce' => 'Onça Troy de Ouro', 'currency_nicaraguan_córdoba' => 'Córdoba Nicaraguense', 'currency_malagasy_ariary' => 'Ariário malgaxe', - "currency_tongan_pa_anga" => "Pa'anga de Tonga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Esperamos que esteja aproveitando o app.
Se você considerar :link agradeceríamos bastante!', 'writing_a_review' => 'Escrevendo uma avaliação', @@ -2877,19 +2877,6 @@ Quando tiver as quantias, volte a esta página de formas de pagamento e clique " 'refunded' => 'Reembolsado', 'marked_quote_as_sent' => 'Orçamento marcado como enviado com sucesso', 'custom_module_settings' => 'Configurações Personalizadas de Módulo', - 'ticket' => 'Ticket', - 'tickets' => 'Tickets', - 'ticket_number' => 'Ticket #', - 'new_ticket' => 'Novo Ticket', - 'edit_ticket' => 'Editar Ticket', - 'view_ticket' => 'Visualizar Ticket', - 'archive_ticket' => 'Arquivar Ticket', - 'restore_ticket' => 'Restaurar Ticket', - 'delete_ticket' => 'Excluir Ticket', - 'archived_ticket' => 'Ticket arquivado com sucesso', - 'archived_tickets' => 'Tickets arquivados com sucesso', - 'restored_ticket' => 'Ticket restaurado com sucesso', - 'deleted_ticket' => 'Ticket excluído com sucesso', 'open' => 'Aberto', 'new' => 'Novo', 'closed' => 'Fechado', @@ -2906,14 +2893,6 @@ Quando tiver as quantias, volte a esta página de formas de pagamento e clique " 'assigned_to' => 'Atribuído para', 'reply' => 'Responder', 'awaiting_reply' => 'Aguardando Resposta', - 'ticket_close' => 'Fechar Ticket', - 'ticket_reopen' => 'Reabrir Ticket', - 'ticket_open' => 'Abrir Ticket', - 'ticket_split' => 'Dividir Ticket', - 'ticket_merge' => 'Unir Ticket', - 'ticket_update' => 'Atualizar Ticket', - 'ticket_settings' => 'Configurações do Ticket', - 'updated_ticket' => 'Ticket Atualizado', 'mark_spam' => 'Marcar como Spam', 'local_part' => 'Parte Local', 'local_part_unavailable' => 'Nome tomado', @@ -2931,31 +2910,23 @@ Quando tiver as quantias, volte a esta página de formas de pagamento e clique " 'mime_types' => 'Tipos MIME', 'mime_types_placeholder' => '.pdf , .docx , .jpg', 'mime_types_help' => 'Lista separada por vírgulas de tipos MIME permitidos, deixe em branco para TODOS', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Prioridade Padrão', 'alert_new_comment_id' => 'Novo comentário', - 'alert_comment_ticket_help' => 'Selecionar um modelo enviará uma notificação (para um agente) quando um novo comentário for feito.', - 'alert_comment_ticket_email_help' => 'Emails separados por vírgulas para cco após um novo comentário.', - 'new_ticket_notification_list' => 'Notificações adicionais de novo ticket', 'update_ticket_notification_list' => 'Notificações adicionais de novo comentário', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Atribuição de Ticket', - 'alert_ticket_assign_agent_id_hel' => 'Selecionar um modelo enviará uma notificação (para um agente) quando um ticket for atribuído.', - 'alert_ticket_assign_agent_id_notifications' => 'Notificações adicionais de ticket atribuído', - 'alert_ticket_assign_agent_id_help' => 'Emails separados por vírgulas para cco após atribuição de ticket.', - 'alert_ticket_transfer_email_help' => 'Emails separados por vírgulas para cco após transferência de ticket.', - 'alert_ticket_overdue_agent_id' => 'Atraso de Ticket', - 'alert_ticket_overdue_email' => 'Notificações adicionais de ticket atrasado', - 'alert_ticket_overdue_email_help' => 'Emails separados por vírgulas para cco após atraso de ticket. ', - 'alert_ticket_overdue_agent_id_help' => 'Selecionar um modelo enviará uma notificação (para um agente) quando um ticket atrasar. ', 'default_agent' => 'Agente Padrão', 'default_agent_help' => 'Se selecionado irá automaticamente ser selecionado para todos os tickets entrantes', 'show_agent_details' => 'Exibir detalhes do agente nas respostas', 'avatar' => 'Avatar', 'remove_avatar' => 'Remover avatar', - 'ticket_not_found' => 'Ticket não encontrado', 'add_template' => 'Adicionar Modelo', - 'updated_ticket_template' => 'Modelo de Ticket Atualizado', - 'created_ticket_template' => 'Modelo de Ticket Criado', 'archive_ticket_template' => 'Arquivar Modelo', 'restore_ticket_template' => 'Restaurar Modelo', 'archived_ticket_template' => 'Modelo arquivado com sucesso', @@ -3071,7 +3042,7 @@ Quando tiver as quantias, volte a esta página de formas de pagamento e clique " 'portal_mode' => 'Modo Portal', 'attach_pdf' => 'Anexar PDF', 'attach_documents' => 'Anexar Documentos', - 'attach_ubl' => 'Anexar UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Estilo do E-mail', 'processed' => 'Processado', 'fee_amount' => 'Valor da Multa', @@ -3812,7 +3783,7 @@ Quando tiver as quantias, volte a esta página de formas de pagamento e clique " 'entity_number_placeholder' => ':entity # :entity _número', 'email_link_not_working' => 'Se o botão acima não estiver funcionando para você, clique no link', 'display_log' => 'Exibir registro', - 'send_fail_logs_to_our_server' => 'Relate erros em tempo real', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Configurar', 'quick_overview_statistics' => 'Visão geral rápida e estatísticas', 'update_your_personal_info' => 'Atualize suas informações pessoais', @@ -5300,6 +5271,33 @@ Quando tiver as quantias, volte a esta página de formas de pagamento e clique " 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/pt_PT/texts.php b/lang/pt_PT/texts.php index 912be7d90d4d..aa80e867fadc 100644 --- a/lang/pt_PT/texts.php +++ b/lang/pt_PT/texts.php @@ -1096,7 +1096,7 @@ $lang = array( 'invoice_embed_documents' => 'Documentos Incorporados', 'invoice_embed_documents_help' => 'Incluir imagens anexadas na nota de pagamento.', 'document_email_attachment' => 'Anexar Documentos', - 'ubl_email_attachment' => 'Anexar UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Transferir Documentos (:size)', 'documents_from_expenses' => 'De despesas:', 'dropzone_default_message' => 'Arrastar ficheiros ou faça carregar', @@ -2362,7 +2362,7 @@ Quando tiver os valores dos depósitos, volte a esta página e conclua a verific 'currency_gold_troy_ounce' => 'Onça Troy de Ouro', 'currency_nicaraguan_córdoba' => 'Córdoba Nicaraguense', 'currency_malagasy_ariary' => 'Ariário malgaxe', - "currency_tongan_pa_anga" => "Pa'anga de Tonga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Esperamos que esteja a gostar da aplicação.
Se eventualmente considerar :link agradecíamos muito!', 'writing_a_review' => 'escrever uma avaliação', @@ -2879,19 +2879,6 @@ debitar da sua conta de acordo com essas instruções. Está elegível a um reem 'refunded' => 'Reembolsado', 'marked_quote_as_sent' => 'Orçamento marcado como enviado com sucesso', 'custom_module_settings' => 'Configurações Personalizadas de Módulo', - 'ticket' => 'Bilhete', - 'tickets' => 'Bilhetes', - 'ticket_number' => 'Bilhete #', - 'new_ticket' => 'Novo Bilhete', - 'edit_ticket' => 'Editar Bilhete', - 'view_ticket' => 'Visualizar Bilhete', - 'archive_ticket' => 'Arquivar Bilhete', - 'restore_ticket' => 'Restaurar Bilhete', - 'delete_ticket' => 'Apagar Bilhete', - 'archived_ticket' => 'Bilhete arquivado com sucesso', - 'archived_tickets' => 'Bilhetes arquivados com sucesso', - 'restored_ticket' => 'Bilhete restaurado com sucesso', - 'deleted_ticket' => 'Bilhete apagado com sucesso', 'open' => 'Aberto', 'new' => 'Novo', 'closed' => 'Fechado', @@ -2908,14 +2895,6 @@ debitar da sua conta de acordo com essas instruções. Está elegível a um reem 'assigned_to' => 'Atribuído para', 'reply' => 'Responder', 'awaiting_reply' => 'Aguarda Resposta', - 'ticket_close' => 'Fechar Bilhete', - 'ticket_reopen' => 'Reabrir Bilhete', - 'ticket_open' => 'Abrir Bilhete', - 'ticket_split' => 'Dividir Bilhete', - 'ticket_merge' => 'Unir Bilhete', - 'ticket_update' => 'Atualizar Bilhete', - 'ticket_settings' => 'Configurações do Bilhete', - 'updated_ticket' => 'Bilhete Atualizado', 'mark_spam' => 'Marcar como Spam', 'local_part' => 'Parte Local', 'local_part_unavailable' => 'Nome indisponível', @@ -2933,31 +2912,23 @@ debitar da sua conta de acordo com essas instruções. Está elegível a um reem 'mime_types' => 'Tipos MIME', 'mime_types_placeholder' => '.pdf , .docx , .jpg', 'mime_types_help' => 'Lista separada por vírgulas de tipos MIME permitidos, deixe em branco para TODOS', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Prioridade Padrão', 'alert_new_comment_id' => 'Novo comentário', - 'alert_comment_ticket_help' => 'Selecionar um modelo enviará uma notificação (para um agente) quando um novo comentário for feito.', - 'alert_comment_ticket_email_help' => 'E-mails separados por vírgulas para bcc após um novo comentário.', - 'new_ticket_notification_list' => 'Notificações adicionais de novo bilhete', 'update_ticket_notification_list' => 'Notificações adicionais de novo comentário', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Atribuição de Bilhete', - 'alert_ticket_assign_agent_id_hel' => 'Selecionar um modelo enviará uma notificação (para um agente) quando um bilhete for atribuído.', - 'alert_ticket_assign_agent_id_notifications' => 'Notificações adicionais de bilhete atribuído', - 'alert_ticket_assign_agent_id_help' => 'E-mails separados por vírgulas para bcc após atribuição de bilhete.', - 'alert_ticket_transfer_email_help' => 'Emails separados por vírgulas para bcc após transferência de bilhete.', - 'alert_ticket_overdue_agent_id' => 'Atraso de Bilhete', - 'alert_ticket_overdue_email' => 'Notificações adicionais de ticket atrasado', - 'alert_ticket_overdue_email_help' => 'Emails separados por vírgulas para bcc após atraso de ticket. ', - 'alert_ticket_overdue_agent_id_help' => 'Selecionar um modelo enviará uma notificação (para um agente) quando um ticket atrasar. ', 'default_agent' => 'Agente Padrão', 'default_agent_help' => 'Se selecionado irá automaticamente ser selecionado para todos os tickets entrantes', 'show_agent_details' => 'Exibir detalhes do agente nas respostas', 'avatar' => 'Avatar', 'remove_avatar' => 'Remover avatar', - 'ticket_not_found' => 'Ticket não encontrado', 'add_template' => 'Adicionar Modelo', - 'updated_ticket_template' => 'Modelo de Ticket Atualizado', - 'created_ticket_template' => 'Modelo de Ticket Criado', 'archive_ticket_template' => 'Arquivar Modelo', 'restore_ticket_template' => 'Restaurar Modelo', 'archived_ticket_template' => 'Modelo arquivado com sucesso', @@ -3073,7 +3044,7 @@ debitar da sua conta de acordo com essas instruções. Está elegível a um reem 'portal_mode' => 'Modo Portal', 'attach_pdf' => 'Anexar PDF', 'attach_documents' => 'Anexar Documentos', - 'attach_ubl' => 'Anexar UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Estilo de e-mails', 'processed' => 'Processado', 'fee_amount' => 'Quantia da Taxa', @@ -3814,7 +3785,7 @@ debitar da sua conta de acordo com essas instruções. Está elegível a um reem 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'Se o botão acima não estiver a funcionar, por favor carregue neste link', 'display_log' => 'Mostrar Log', - 'send_fail_logs_to_our_server' => 'Reportar erros em direto', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Configurar', 'quick_overview_statistics' => 'Visão Rápida & Estatísticas', 'update_your_personal_info' => 'Atualize a sua informação pessoal', @@ -5303,6 +5274,33 @@ O envio de E-mails foi suspenso. Será retomado às 23:00 UTC.', 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/ro/texts.php b/lang/ro/texts.php index 268f088212ca..3b76e0448b82 100644 --- a/lang/ro/texts.php +++ b/lang/ro/texts.php @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'Încorporați documentele', 'invoice_embed_documents_help' => 'Includeți o imagine atașată facturii.', 'document_email_attachment' => 'Atașați documente', - 'ubl_email_attachment' => 'Atașați UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Descărcați documente (:size)', 'documents_from_expenses' => 'Din cheltuieli:', 'dropzone_default_message' => 'Plasați fișierele sau apăsați pentru încărcare', @@ -2364,7 +2364,7 @@ Odată ce sumele au ajuns la dumneavoastră, reveniți la pagina cu metode de pl 'currency_gold_troy_ounce' => 'Uncie Troy de aur', 'currency_nicaraguan_córdoba' => 'Córdoba din Nicaragua', 'currency_malagasy_ariary' => 'ariar malgaș', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Sperăm că vă place aplicația.
Am aprecia dacă :link!', 'writing_a_review' => 'părerea dumneavoastră', @@ -2881,19 +2881,6 @@ Odată ce sumele au ajuns la dumneavoastră, reveniți la pagina cu metode de pl 'refunded' => 'Rambursată', 'marked_quote_as_sent' => 'Oferta a fost marcată cu succes ca trimisă ', 'custom_module_settings' => 'Setări personalizate pentru modul', - 'ticket' => 'Tichet', - 'tickets' => 'Tichete', - 'ticket_number' => 'Tichet #', - 'new_ticket' => 'Un tichet nou', - 'edit_ticket' => 'Modificați tichet', - 'view_ticket' => 'Vizualizare tichet', - 'archive_ticket' => 'Arhivați tichet', - 'restore_ticket' => 'Restabiliți tichet', - 'delete_ticket' => 'Sterge tichet', - 'archived_ticket' => 'Tichet arhivat cu succes', - 'archived_tickets' => 'Tichetele au fost arhivate cu succes', - 'restored_ticket' => 'Tichetele au fost restabilite cu succes', - 'deleted_ticket' => 'Tichet sters cu succes', 'open' => 'Deschideți', 'new' => 'Nou', 'closed' => 'Inchis', @@ -2910,14 +2897,6 @@ Odată ce sumele au ajuns la dumneavoastră, reveniți la pagina cu metode de pl 'assigned_to' => 'Asignare lui', 'reply' => 'Raspuns', 'awaiting_reply' => 'In asteptare raspuns', - 'ticket_close' => 'Inchide tichet', - 'ticket_reopen' => 'Redeschide tichet', - 'ticket_open' => 'Deschide tichet', - 'ticket_split' => 'Imparte tichet', - 'ticket_merge' => 'Îmbinați tichet', - 'ticket_update' => 'Actualizeaza tichet', - 'ticket_settings' => 'Configuratie tichet', - 'updated_ticket' => 'Tichet actualizat', 'mark_spam' => 'Marcheaza ca SPAM', 'local_part' => 'Parte locală', 'local_part_unavailable' => 'Numele este utilizat deja', @@ -2935,31 +2914,23 @@ Odată ce sumele au ajuns la dumneavoastră, reveniți la pagina cu metode de pl 'mime_types' => 'Tipuri de Mime', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Listă separață prin virgule pentru tipuri de Mime permise. Nu scrieți nimic, pentru a selecta totul', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Prioritate implicita', 'alert_new_comment_id' => 'Comentariu nou', - 'alert_comment_ticket_help' => 'Selectarea unui sablon va trimite o notificare ( agentului ) cand apare un comentariu nou.', - 'alert_comment_ticket_email_help' => 'Email-uri separate prin virgule pentru BCC în comentarii noi.', - 'new_ticket_notification_list' => 'Notificare pentru tichete aditionale', 'update_ticket_notification_list' => 'Notificări adiționale pentru comentarii noi', 'comma_separated_values' => 'admin@exemplu.com, supervizor@exemplu.com', - 'alert_ticket_assign_agent_id' => 'Alocare tichet', - 'alert_ticket_assign_agent_id_hel' => 'Selectând un șablon, veți trimite o notificare (agentului), când este atribuit un tichet. ', - 'alert_ticket_assign_agent_id_notifications' => 'Notificări adiționale pentru tichetele atribuite', - 'alert_ticket_assign_agent_id_help' => 'Email-uri separate prin virgule pentru BCC în evaluarea tichetelor.', - 'alert_ticket_transfer_email_help' => 'Email-uri separate prin virgule pentru BCC în trasferul de tichete.', - 'alert_ticket_overdue_agent_id' => 'Tichet scadent', - 'alert_ticket_overdue_email' => 'Notificări adiționale pentru tichetele scadente', - 'alert_ticket_overdue_email_help' => 'Email-uri separate prin virgule pentru BCC în tichete scadente.', - 'alert_ticket_overdue_agent_id_help' => 'Selectând un șablon, veți trimite o notificare (agentului), când un tichet a trecut de data limită.', 'default_agent' => 'Agent implicit', 'default_agent_help' => 'Dacă este selectat, va atribui automat toate tichetele', 'show_agent_details' => 'Afișați detaliile agenților în răspunsuri', 'avatar' => 'Avatar', 'remove_avatar' => 'Îndepărtați avatar', - 'ticket_not_found' => 'Tichetul nu a fost găsit', 'add_template' => 'Adăugați un șablon', - 'updated_ticket_template' => 'Actualizați șablonul pentru tichete', - 'created_ticket_template' => 'Creați un șablon pentru tichete', 'archive_ticket_template' => 'Arhivați șablonul', 'restore_ticket_template' => 'Restabiliți șablonul', 'archived_ticket_template' => 'Șablonul a fost arhivat cu succes', @@ -3075,7 +3046,7 @@ Odată ce sumele au ajuns la dumneavoastră, reveniți la pagina cu metode de pl 'portal_mode' => 'Mod portal', 'attach_pdf' => 'Atașați un PDF', 'attach_documents' => 'Atașați documente', - 'attach_ubl' => 'Atașați UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Stil email', 'processed' => 'Procesat', 'fee_amount' => 'Sumă taxă', @@ -3816,7 +3787,7 @@ Odată ce sumele au ajuns la dumneavoastră, reveniți la pagina cu metode de pl 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'În cazul în care nu funcționează butonul de mai sus, accesați link-ul', 'display_log' => 'Afișați înregistrările', - 'send_fail_logs_to_our_server' => 'Raportare erori în timp real', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Configurare', 'quick_overview_statistics' => 'Prezentare rapidă și statistici', 'update_your_personal_info' => 'Actualizați-vă informațiile', @@ -5304,6 +5275,33 @@ Odată ce sumele au ajuns la dumneavoastră, reveniți la pagina cu metode de pl 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/sk/texts.php b/lang/sk/texts.php index 5f001c7e7359..359311444d04 100644 --- a/lang/sk/texts.php +++ b/lang/sk/texts.php @@ -1087,7 +1087,7 @@ $lang = array( 'invoice_embed_documents' => 'Zapracovať dokumenty', 'invoice_embed_documents_help' => 'Zahrnúť priložené obrázky do faktúry.', 'document_email_attachment' => 'Prilož dokumenty', - 'ubl_email_attachment' => 'Prilož UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Stiahnuť dokumenty (:size)', 'documents_from_expenses' => 'Z výdavkov:', 'dropzone_default_message' => 'Vložte súbory, alebo kliknite pre nahrávanie', @@ -2351,7 +2351,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'Zlatá trójska unca', 'currency_nicaraguan_córdoba' => 'Nikaragujská Córdoba', 'currency_malagasy_ariary' => 'Madagaskarský ariár', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Dúfame, že sa vám používanie aplikácie páči.
Ak by ste zvážili :link, veľmi by sme to ocenili!', 'writing_a_review' => 'písanie recenzie', @@ -2867,19 +2867,6 @@ $lang = array( 'refunded' => 'Vrátené', 'marked_quote_as_sent' => 'Ponuka bola úspešne označená ako odoslaná', 'custom_module_settings' => 'Vlastné nastavenia modulu', - 'ticket' => 'Tiket', - 'tickets' => 'Tikety', - 'ticket_number' => 'Tiket #', - 'new_ticket' => 'Nový tiket', - 'edit_ticket' => 'Upraviť tiket', - 'view_ticket' => 'Zobraziť tiket', - 'archive_ticket' => 'Archivovať tiket', - 'restore_ticket' => 'Obnoviť tiket', - 'delete_ticket' => 'Zmazať tiket', - 'archived_ticket' => 'Tiket úspešne archivovaný', - 'archived_tickets' => 'Tikety úspešne archivované', - 'restored_ticket' => 'Tiket úspešne obnovený', - 'deleted_ticket' => 'Tiket úspešne odstránený', 'open' => 'Otvoriť', 'new' => 'Nový', 'closed' => 'Zavretý', @@ -2896,14 +2883,6 @@ $lang = array( 'assigned_to' => 'Priradený', 'reply' => 'Odpovedať', 'awaiting_reply' => 'Čaká sa na odpoveď', - 'ticket_close' => 'Zatvoriť tiket', - 'ticket_reopen' => 'Znovu otvoriť tiket', - 'ticket_open' => 'Otvoriť tiket', - 'ticket_split' => 'Rozdeliť tiket', - 'ticket_merge' => 'Zlúčiť tiket', - 'ticket_update' => 'Aktualizovať tiket', - 'ticket_settings' => 'Nastavenia tiketu', - 'updated_ticket' => 'Tiket bol aktualizovaný', 'mark_spam' => 'Označiť ako spam', 'local_part' => 'Miestna časť', 'local_part_unavailable' => 'Meno je už obsadené', @@ -2921,31 +2900,23 @@ $lang = array( 'mime_types' => 'Mime typy', 'mime_types_placeholder' => '.pdf, .docx, .jpg', 'mime_types_help' => 'Čiarkami oddelený zoznam povolených typov MIME, ponechajte prázdne pre všetky', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Predvolená priorita', 'alert_new_comment_id' => 'Nový komentár', - 'alert_comment_ticket_help' => 'Výberom šablóny sa odošle upozornenie (agentovi) po vytvorení komentára.', - 'alert_comment_ticket_email_help' => 'E-maily oddelené čiarkami na skrytú kópiu nového komentára.', - 'new_ticket_notification_list' => 'Ďalšie upozornenia na nové tikety', 'update_ticket_notification_list' => 'Ďalšie upozornenia na nové komentáre', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Priradenie tiketu', - 'alert_ticket_assign_agent_id_hel' => 'Výberom šablóny sa po priradení tiketu odošle upozornenie (agentovi).', - 'alert_ticket_assign_agent_id_notifications' => 'Ďalšie upozornenia o pridelení tiketu', - 'alert_ticket_assign_agent_id_help' => 'E-maily oddelené čiarkami na skrytú kópiu pri priradení lístka.', - 'alert_ticket_transfer_email_help' => 'E-maily oddelené čiarkami na skrytú kópiu pri prevode lístka.', - 'alert_ticket_overdue_agent_id' => 'Tiket po splatnosti', - 'alert_ticket_overdue_email' => 'Ďalšie upozornenia na tikety po splatnosti', - 'alert_ticket_overdue_email_help' => 'E-maily oddelené čiarkami na skrytú kópiu na lístku po splatnosti.', - 'alert_ticket_overdue_agent_id_help' => 'Výberom šablóny sa odošle upozornenie (agentovi), keď sa tiket bude po splatnosti.', 'default_agent' => 'Predvolený agent', 'default_agent_help' => 'Ak je vybraté, bude automaticky priradené ku všetkým prichádzajúcim tiketom', 'show_agent_details' => 'Zobraziť podrobnosti o agentovi v odpovediach', 'avatar' => 'Avatar', 'remove_avatar' => 'Odstrániť avatara', - 'ticket_not_found' => 'Tiket sa nenašiel', 'add_template' => 'Pridať šablónu', - 'updated_ticket_template' => 'Aktualizovaná šablóna tiketu', - 'created_ticket_template' => 'Vytvorená šablóna tiketu', 'archive_ticket_template' => 'Archivovať šablónu', 'restore_ticket_template' => 'Obnoviť šablónu', 'archived_ticket_template' => 'Šablóna úspešne archivovaná', @@ -3061,7 +3032,7 @@ $lang = array( 'portal_mode' => 'Režim portálu', 'attach_pdf' => 'Priložiť PDF', 'attach_documents' => 'Priložiť dokumenty', - 'attach_ubl' => 'Pripojte URL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Štýl e-mailu', 'processed' => 'Spracované', 'fee_amount' => 'Výška poplatku', @@ -3802,7 +3773,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'Ak vám vyššie uvedené tlačidlo nefunguje, kliknite na odkaz', 'display_log' => 'Zobraziť denník', - 'send_fail_logs_to_our_server' => 'Hlásiť chyby v reálnom čase', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Nastaviť', 'quick_overview_statistics' => 'Rýchly prehľad a štatistiky', 'update_your_personal_info' => 'Aktualizujte svoje osobné údaje', @@ -5290,6 +5261,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/sl/texts.php b/lang/sl/texts.php index f818a5ca1d67..dd57ebfa5263 100644 --- a/lang/sl/texts.php +++ b/lang/sl/texts.php @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'Omogočeni dokumenti', 'invoice_embed_documents_help' => 'V računu vključi pripete slike.', 'document_email_attachment' => 'Pripni dokumente', - 'ubl_email_attachment' => 'Pripni UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Prenesi dokumente (:size)', 'documents_from_expenses' => 'Od stroškov:', 'dropzone_default_message' => 'Odložite datoteke ali kliknite tukaj', @@ -2365,7 +2365,7 @@ Ko imate zneske, se vrnite na to stran plačilnega sredstva in kliknite na "Comp 'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Upamo da uživate v uporabi aplikacije.
Zelo bi cenili klik na :link!', 'writing_a_review' => 'pisanje pregleda (kritike)', @@ -2881,19 +2881,6 @@ Ko imate zneske, se vrnite na to stran plačilnega sredstva in kliknite na "Comp 'refunded' => 'Povrjeno', 'marked_quote_as_sent' => 'Predračun označen kot poslan', 'custom_module_settings' => 'Nastavitve modla po meri', - 'ticket' => 'Podporni zahtevek', - 'tickets' => 'Podporni zahtevki', - 'ticket_number' => 'Podporni zahtevek #', - 'new_ticket' => 'Novi podporni zahtevek', - 'edit_ticket' => 'Uredi podproni zahtevek', - 'view_ticket' => 'Pregled podpornih zahtevkov', - 'archive_ticket' => 'Arhiviraj podporni zahtevek', - 'restore_ticket' => 'Obnovi podporni zahtevek', - 'delete_ticket' => 'Zbriši podporni zahtevek', - 'archived_ticket' => 'Uspešno arhiviran podporni zahtevek', - 'archived_tickets' => 'Uspešno arhivirani podporni zahtevki', - 'restored_ticket' => 'Uspešno obnovljen podporni zahtevek', - 'deleted_ticket' => 'Uspešno zbrisan podproni zahtevek', 'open' => 'Odpri', 'new' => 'Novo', 'closed' => 'Zaprto', @@ -2910,14 +2897,6 @@ Ko imate zneske, se vrnite na to stran plačilnega sredstva in kliknite na "Comp 'assigned_to' => 'Dodeljeno', 'reply' => 'Odgovori', 'awaiting_reply' => 'Čakajoče na odgovor', - 'ticket_close' => 'Zapri podporni zahtevek', - 'ticket_reopen' => 'Ponovno odpri podporni zahtevek', - 'ticket_open' => 'Odpri podporni zahtevek', - 'ticket_split' => 'Razdeli podporni zahtevek', - 'ticket_merge' => 'Združi podporni zahtevek', - 'ticket_update' => 'Osveži podporni zahtevek', - 'ticket_settings' => 'Nastavitve podpornega zahtevka', - 'updated_ticket' => 'Podporni zahtevek je posodobljen', 'mark_spam' => 'Označi kot nezaželjeno sporočilo', 'local_part' => 'Lokalni del', 'local_part_unavailable' => 'Ime je zasedeno', @@ -2935,31 +2914,23 @@ Ko imate zneske, se vrnite na to stran plačilnega sredstva in kliknite na "Comp 'mime_types' => 'Mime types', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Comma separated list of allowed mime types, leave blank for all', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Default priority', 'alert_new_comment_id' => 'New comment', - 'alert_comment_ticket_help' => 'Selecting a template will send a notification (to agent) when a comment is made.', - 'alert_comment_ticket_email_help' => 'Comma separated emails to bcc on new comment.', - 'new_ticket_notification_list' => 'Additional new ticket notifications', 'update_ticket_notification_list' => 'Additional new comment notifications', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Ticket assignment', - 'alert_ticket_assign_agent_id_hel' => 'Selecting a template will send a notification (to agent) when a ticket is assigned.', - 'alert_ticket_assign_agent_id_notifications' => 'Additional ticket assigned notifications', - 'alert_ticket_assign_agent_id_help' => 'Comma separated emails to bcc on ticket assignment.', - 'alert_ticket_transfer_email_help' => 'Comma separated emails to bcc on ticket transfer.', - 'alert_ticket_overdue_agent_id' => 'Ticket overdue', - 'alert_ticket_overdue_email' => 'Additional overdue ticket notifications', - 'alert_ticket_overdue_email_help' => 'Comma separated emails to bcc on ticket overdue.', - 'alert_ticket_overdue_agent_id_help' => 'Selecting a template will send a notification (to agent) when a ticket becomes overdue.', 'default_agent' => 'Default Agent', 'default_agent_help' => 'If selected will automatically be assigned to all inbound tickets', 'show_agent_details' => 'Show agent details on responses', 'avatar' => 'Avatar', 'remove_avatar' => 'Remove avatar', - 'ticket_not_found' => 'Ticket not found', 'add_template' => 'Add Template', - 'updated_ticket_template' => 'Updated Ticket Template', - 'created_ticket_template' => 'Created Ticket Template', 'archive_ticket_template' => 'Archive Template', 'restore_ticket_template' => 'Restore Template', 'archived_ticket_template' => 'Successfully archived template', @@ -3075,7 +3046,7 @@ Ko imate zneske, se vrnite na to stran plačilnega sredstva in kliknite na "Comp 'portal_mode' => 'Portal Mode', 'attach_pdf' => 'Pripni PDF', 'attach_documents' => 'Pripni dokumente', - 'attach_ubl' => 'Pripni UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Email Style', 'processed' => 'Processed', 'fee_amount' => 'Fee Amount', @@ -3816,7 +3787,7 @@ Ko imate zneske, se vrnite na to stran plačilnega sredstva in kliknite na "Comp 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', 'display_log' => 'Display Log', - 'send_fail_logs_to_our_server' => 'Report errors in realtime', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Setup', 'quick_overview_statistics' => 'Quick overview & statistics', 'update_your_personal_info' => 'Update your personal information', @@ -5304,6 +5275,33 @@ Ko imate zneske, se vrnite na to stran plačilnega sredstva in kliknite na "Comp 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/sr/texts.php b/lang/sr/texts.php index 03d8ab5136f5..cfbf5e8a9b12 100644 --- a/lang/sr/texts.php +++ b/lang/sr/texts.php @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'Priložite dokumente', 'invoice_embed_documents_help' => 'Uključite priložene slike u fakturu.', 'document_email_attachment' => 'Dodaj dokumente', - 'ubl_email_attachment' => 'Dodaj UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Preuzmite dokumente (:size)', 'documents_from_expenses' => 'Od troškova:', 'dropzone_default_message' => 'Nalepi dokumenta ili klikni za otpremanje', @@ -2364,7 +2364,7 @@ Kada budete imali iznose, vratite se na ovu stranicu sa načinima plaćanja i k 'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'Nadamo se da uživate u korišćenju aplikacije.
Bili bismo veoma zahvalni ako biste razmotrili :link.', 'writing_a_review' => 'pisanje recenzije', @@ -2880,19 +2880,6 @@ Kada budete imali iznose, vratite se na ovu stranicu sa načinima plaćanja i k 'refunded' => 'Refundirano', 'marked_quote_as_sent' => 'Ponuda uspešno obeležena kao poslata', 'custom_module_settings' => 'Podešavanje dodatnih modula', - 'ticket' => 'Tiket', - 'tickets' => 'Tiketi', - 'ticket_number' => 'Tiket #', - 'new_ticket' => 'Novi tiket', - 'edit_ticket' => 'Izmeni tiket', - 'view_ticket' => 'Vidi tiket', - 'archive_ticket' => 'Arhiviraj tiket', - 'restore_ticket' => 'Vrati tiket', - 'delete_ticket' => 'Obriši tiket', - 'archived_ticket' => 'Tiket uspešno arhiviran', - 'archived_tickets' => 'Uspešno arhivirani tiketi', - 'restored_ticket' => 'Uspešno vraćen tiket', - 'deleted_ticket' => 'Uspešno obrisan tiket', 'open' => 'Otvori', 'new' => 'Novi', 'closed' => 'Zatvoreno', @@ -2909,14 +2896,6 @@ Kada budete imali iznose, vratite se na ovu stranicu sa načinima plaćanja i k 'assigned_to' => 'Dodeljeno za', 'reply' => 'Odgovor', 'awaiting_reply' => 'Čekanje odgovora', - 'ticket_close' => 'Zatvori tiket', - 'ticket_reopen' => 'Ponovo otvori tiket', - 'ticket_open' => 'Otvori tiket', - 'ticket_split' => 'Razdvoji tiket', - 'ticket_merge' => 'Spoji tiket', - 'ticket_update' => 'Ažuriraj tiket', - 'ticket_settings' => 'Podešavanje tiketa', - 'updated_ticket' => 'Tiket ažuriran', 'mark_spam' => 'Obeleži kao nepoželjno', 'local_part' => 'Lokalni deo', 'local_part_unavailable' => 'Ime zauzeto', @@ -2934,31 +2913,23 @@ Kada budete imali iznose, vratite se na ovu stranicu sa načinima plaćanja i k 'mime_types' => 'Dozvoljeni tipovi', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Lista dozvoljenih tipova fajlova odvojenih zarezom, ostavite prazno za sve', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Podrazumevani prioritet', 'alert_new_comment_id' => 'Novi komentar', - 'alert_comment_ticket_help' => 'Izborom šablona će se poslati obaveštenje (agentu) prilikom unosa komentara.', - 'alert_comment_ticket_email_help' => 'Adrese e-pošte za slanje bcc kopija prilikom unosa komentara, odvojene zarezom', - 'new_ticket_notification_list' => 'Dodatna obaveštenja od novom tiketu', 'update_ticket_notification_list' => 'Dodatna obaveštenja o novom komentaru', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Dodela tiketa', - 'alert_ticket_assign_agent_id_hel' => 'Izborom šablona će se poslati obaveštenje (agentu) prilikom dodeljivanja tiketa.', - 'alert_ticket_assign_agent_id_notifications' => 'Dodatna obaveštenja o dodeljivanju tiketa', - 'alert_ticket_assign_agent_id_help' => 'Adrese e-pošte za slanje bcc kopija prilikom dodeljivanja tiketa, odvojene zarezom', - 'alert_ticket_transfer_email_help' => 'Adrese e-pošte za slanje bcc kopija prilikom prenosa tiketa, odvojene zarezom', - 'alert_ticket_overdue_agent_id' => 'Zakasneo tiket', - 'alert_ticket_overdue_email' => 'Dodatna obaveštenja o zakasnelim tiketima', - 'alert_ticket_overdue_email_help' => 'Adrese e-pošte za slanje bcc kopija prilikom zakasnelog tiketa, odvojene zarezom', - 'alert_ticket_overdue_agent_id_help' => 'Izborom šablona će se poslati obaveštenje (agentu) kada je tiket zakasneo.', 'default_agent' => 'Podrazumevani agent', 'default_agent_help' => 'Ako se izabere, biće automatski dodeljen za sve dolazeće tikete', 'show_agent_details' => 'Prikaži detalje agenta u odgovorima', 'avatar' => 'Avatar', 'remove_avatar' => 'Ukloni avatar', - 'ticket_not_found' => 'Tiket nije pronađen', 'add_template' => 'Dodaj šablon', - 'updated_ticket_template' => 'Šablon tiketa ažuriran', - 'created_ticket_template' => 'Šablon tiketa kreiran', 'archive_ticket_template' => 'Arhiviraj šablon', 'restore_ticket_template' => 'Vrati šablon', 'archived_ticket_template' => 'Uspešno arhiviran šablon', @@ -3074,7 +3045,7 @@ Kada budete imali iznose, vratite se na ovu stranicu sa načinima plaćanja i k 'portal_mode' => 'Režim portala', 'attach_pdf' => 'Zakači PDF', 'attach_documents' => 'Zakači dokumenta', - 'attach_ubl' => 'Zakači UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Stil e-pošte', 'processed' => 'Obrađeno', 'fee_amount' => 'Iznos takse', @@ -3815,7 +3786,7 @@ Kada budete imali iznose, vratite se na ovu stranicu sa načinima plaćanja i k 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'Ako vam gornje dugme ne odgovara, kliknite na link', 'display_log' => 'Prikaži zapis', - 'send_fail_logs_to_our_server' => 'Prijavite greške u realnom vremenu', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Podesiti', 'quick_overview_statistics' => 'Brzi pregled i statistika', 'update_your_personal_info' => 'Ažurirajte svoje lične podatke', @@ -5303,6 +5274,33 @@ Kada budete imali iznose, vratite se na ovu stranicu sa načinima plaćanja i k 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/sv/texts.php b/lang/sv/texts.php index b0a95827aad1..d18e72d13749 100644 --- a/lang/sv/texts.php +++ b/lang/sv/texts.php @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'Bädda in dokument', 'invoice_embed_documents_help' => 'Include attached images in the invoice.', 'document_email_attachment' => 'Bifoga dokument', - 'ubl_email_attachment' => 'Bifoga UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Ladda ner dokument (:size)', 'documents_from_expenses' => 'Från utgifter:', 'dropzone_default_message' => 'Släpp filer eller klicka för att ladda upp', @@ -2372,7 +2372,7 @@ Den här funktionen kräver att en produkt skapas och en betalningsgateway är k 'currency_gold_troy_ounce' => 'Guld Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguanska Córdoba', 'currency_malagasy_ariary' => 'Madagaskar ariary', - "currency_tongan_pa_anga" => "tonganska Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'We hope you\'re enjoying using the app.
If you\'d consider :link we\'d greatly appreciate it!', 'writing_a_review' => 'writing a review', @@ -2888,19 +2888,6 @@ Den här funktionen kräver att en produkt skapas och en betalningsgateway är k 'refunded' => 'Återbetalad', 'marked_quote_as_sent' => 'Offerten har markerats som skickad', 'custom_module_settings' => 'Anpassade modulinställningar', - 'ticket' => 'Ärende', - 'tickets' => 'Ärenden', - 'ticket_number' => 'Ärende #', - 'new_ticket' => 'Skapa ärende', - 'edit_ticket' => 'Redigera ärende', - 'view_ticket' => 'Visa ärende', - 'archive_ticket' => 'Arkivera ärende', - 'restore_ticket' => 'Återskapa ärende', - 'delete_ticket' => 'Radera ärende', - 'archived_ticket' => 'Ärende har arkiverats', - 'archived_tickets' => 'Ärendena har arkiverats', - 'restored_ticket' => 'Ärendet har återställts', - 'deleted_ticket' => 'Ärendena har återställts', 'open' => 'Öppna', 'new' => 'Ny', 'closed' => 'Stängd', @@ -2917,14 +2904,6 @@ Den här funktionen kräver att en produkt skapas och en betalningsgateway är k 'assigned_to' => 'Tilldelat till', 'reply' => 'Svara', 'awaiting_reply' => 'Väntar på svar', - 'ticket_close' => 'Stäng ärende', - 'ticket_reopen' => 'Återöppna ärende', - 'ticket_open' => 'Öppna ärende', - 'ticket_split' => 'Dela ärende', - 'ticket_merge' => 'Slå ihop ärende', - 'ticket_update' => 'Uppdatera ärende', - 'ticket_settings' => 'Ärendeinställningar', - 'updated_ticket' => 'Ärende uppdaterat', 'mark_spam' => 'Markera som spam', 'local_part' => 'Lokal del', 'local_part_unavailable' => 'Namn upptaget', @@ -2942,31 +2921,23 @@ Den här funktionen kräver att en produkt skapas och en betalningsgateway är k 'mime_types' => 'Mimetyper', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => 'Kommaseparerad lista över tillåtna mimetyper, lämna tomt för alla', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Standardprioritet', 'alert_new_comment_id' => 'Ny kommentar', - 'alert_comment_ticket_help' => 'När du väljer en mall skickas ett meddelande (till agenten) när en kommentar görs.', - 'alert_comment_ticket_email_help' => 'Kommaseparerade e-postadresser till bcc på ny kommentar.', - 'new_ticket_notification_list' => 'Ytterligare nya ärende notifikationer', 'update_ticket_notification_list' => 'Ytterligare nya kommentarer notifikationer', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Tilldelning av ärenden', - 'alert_ticket_assign_agent_id_hel' => 'När du väljer en mall skickas ett meddelande (till agenten) när ett ärende tilldelas.', - 'alert_ticket_assign_agent_id_notifications' => 'Ytterligare ärende tilldelats notifikationer', - 'alert_ticket_assign_agent_id_help' => 'Kommaseparerade e-postadresser till bcc vid tilldelning av ärende.', - 'alert_ticket_transfer_email_help' => 'Kommaseparerade e-postadresser till bcc vid överföring av ärende.', - 'alert_ticket_overdue_agent_id' => 'Ärende försenat', - 'alert_ticket_overdue_email' => 'Ytterligare ärende försenat notifikationer', - 'alert_ticket_overdue_email_help' => 'Kommaseparerade e-postadresser till bcc vid försening av ärende.', - 'alert_ticket_overdue_agent_id_help' => 'När du väljer en mall skickas ett meddelande (till agenten) när ett ärende blir försenat.', 'default_agent' => 'Standardagent', 'default_agent_help' => 'Om det väljs kommer alla inkommande ärenden automatiskt att tilldelas', 'show_agent_details' => 'Visa agentinformation vid svar', 'avatar' => 'Avatar', 'remove_avatar' => 'Ta bort avatar', - 'ticket_not_found' => 'Ärendet hittades inte', 'add_template' => 'Lägg till mall', - 'updated_ticket_template' => 'Uppdaterad ärendemall', - 'created_ticket_template' => 'Skapad ärendemall', 'archive_ticket_template' => 'Akrivera mall', 'restore_ticket_template' => 'Återställ ärendemall', 'archived_ticket_template' => 'Mallen har arkiverats', @@ -3082,7 +3053,7 @@ Den här funktionen kräver att en produkt skapas och en betalningsgateway är k 'portal_mode' => 'Portal-läge', 'attach_pdf' => 'Bifoga PDF', 'attach_documents' => 'Bifoga dokument', - 'attach_ubl' => 'Bifoga UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'E-poststil', 'processed' => 'Bearbetat', 'fee_amount' => 'Avgiftsbelopp', @@ -3823,7 +3794,7 @@ Den här funktionen kräver att en produkt skapas och en betalningsgateway är k 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'Om knappen ovan inte fungerar för dig, klicka på länken', 'display_log' => 'Visa logg', - 'send_fail_logs_to_our_server' => 'Rapportera fel i realtid', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Installation', 'quick_overview_statistics' => 'Snabb översikt och statistik', 'update_your_personal_info' => 'Uppdatera din personliga information', @@ -5311,6 +5282,33 @@ Den här funktionen kräver att en produkt skapas och en betalningsgateway är k 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/lang/tr_TR/texts.php b/lang/tr_TR/texts.php index 0c60986ba23d..be366ea9f4e3 100644 --- a/lang/tr_TR/texts.php +++ b/lang/tr_TR/texts.php @@ -199,7 +199,7 @@ $lang = array( 'removed_logo' => 'Logo başarıyla kaldırıldı', 'sent_message' => 'Mesaj başarıyla gönderildi', 'invoice_error' => 'Lütfen bir müşteri seçtiğinizden ve hataları düzelttiğinizden emin olun', - 'limit_clients' => 'Sorry, this will exceed the limit of :count clients. Please upgrade to a paid plan.', + 'limit_clients' => 'You\'ve hit the :count client limit on Free accounts. Congrats on your success!', 'payment_error' => 'Ödemenizi işleme koyarken bir hata oluştu. Lütfen daha sonra tekrar deneyiniz.', 'registration_required' => 'Registration Required', 'confirmation_required' => 'Lütfen eposta adresinizi onaylayın. Onay epostasını tekrar göndermek için: :link', @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => 'Embed Documents', 'invoice_embed_documents_help' => 'Include attached images in the invoice.', 'document_email_attachment' => 'Dokümanları Ekle', - 'ubl_email_attachment' => 'UBL Ekle', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => 'Dokümanları İndir (:size)', 'documents_from_expenses' => 'Giderler:', 'dropzone_default_message' => 'Drop files or click to upload', @@ -2197,7 +2197,7 @@ $lang = array( 'mailgun_private_key' => 'Mailgun Private Key', 'brevo_domain' => 'Brevo Domain', 'brevo_private_key' => 'Brevo Private Key', - 'send_test_email' => 'Send test email', + 'send_test_email' => 'Send Test Email', 'select_label' => 'Select Label', 'label' => 'Label', 'service' => 'Service', @@ -2364,7 +2364,7 @@ $lang = array( 'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => 'We hope you\'re enjoying using the app.
If you\'d consider :link we\'d greatly appreciate it!', 'writing_a_review' => 'writing a review', @@ -2695,7 +2695,7 @@ $lang = array( 'no_assets' => 'No images, drag to upload', 'add_image' => 'Add Image', 'select_image' => 'Select Image', - 'upgrade_to_upload_images' => 'Upgrade to the Enterprise Plan to upload images', + 'upgrade_to_upload_images' => 'Upgrade to the Enterprise Plan to upload files & images', 'delete_image' => 'Delete Image', 'delete_image_help' => 'Warning: deleting the image will remove it from all proposals.', 'amount_variable_help' => 'Note: the invoice $amount field will use the partial/deposit field if set otherwise it will use the invoice balance.', @@ -2880,19 +2880,6 @@ $lang = array( 'refunded' => 'Refunded', 'marked_quote_as_sent' => 'Successfully marked quote as sent', 'custom_module_settings' => 'Custom Module Settings', - 'ticket' => 'Ticket', - 'tickets' => 'Tickets', - 'ticket_number' => 'Ticket #', - 'new_ticket' => 'New Ticket', - 'edit_ticket' => 'Edit Ticket', - 'view_ticket' => 'View Ticket', - 'archive_ticket' => 'Archive Ticket', - 'restore_ticket' => 'Restore Ticket', - 'delete_ticket' => 'Delete Ticket', - 'archived_ticket' => 'Successfully archived ticket', - 'archived_tickets' => 'Successfully archived tickets', - 'restored_ticket' => 'Successfully restored ticket', - 'deleted_ticket' => 'Successfully deleted ticket', 'open' => 'Open', 'new' => 'New', 'closed' => 'Closed', @@ -2909,14 +2896,6 @@ $lang = array( 'assigned_to' => 'Assigned to', 'reply' => 'Reply', 'awaiting_reply' => 'Awaiting reply', - 'ticket_close' => 'Close Ticket', - 'ticket_reopen' => 'Reopen Ticket', - 'ticket_open' => 'Open Ticket', - 'ticket_split' => 'Split Ticket', - 'ticket_merge' => 'Merge Ticket', - 'ticket_update' => 'Update Ticket', - 'ticket_settings' => 'Ticket Settings', - 'updated_ticket' => 'Ticket Updated', 'mark_spam' => 'Mark as Spam', 'local_part' => 'Local Part', 'local_part_unavailable' => 'Name taken', @@ -2943,66 +2922,25 @@ $lang = array( 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => 'Default priority', 'alert_new_comment_id' => 'New comment', - 'alert_comment_ticket_help' => 'Selecting a template will send a notification (to agent) when a comment is made.', - 'alert_comment_ticket_email_help' => 'Comma separated emails to bcc on new comment.', - 'new_ticket_notification_list' => 'Additional new ticket notifications', 'update_ticket_notification_list' => 'Additional new comment notifications', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => 'Ticket assignment', - 'alert_ticket_assign_agent_id_hel' => 'Selecting a template will send a notification (to agent) when a ticket is assigned.', - 'alert_ticket_assign_agent_id_notifications' => 'Additional ticket assigned notifications', - 'alert_ticket_assign_agent_id_help' => 'Comma separated emails to bcc on ticket assignment.', - 'alert_ticket_transfer_email_help' => 'Comma separated emails to bcc on ticket transfer.', - 'alert_ticket_overdue_agent_id' => 'Ticket overdue', - 'alert_ticket_overdue_email' => 'Additional overdue ticket notifications', - 'alert_ticket_overdue_email_help' => 'Comma separated emails to bcc on ticket overdue.', - 'alert_ticket_overdue_agent_id_help' => 'Selecting a template will send a notification (to agent) when a ticket becomes overdue.', - 'ticket_master' => 'Ticket Master', - 'ticket_master_help' => 'Has the ability to assign and transfer tickets. Assigned as the default agent for all tickets.', 'default_agent' => 'Default Agent', 'default_agent_help' => 'If selected will automatically be assigned to all inbound tickets', 'show_agent_details' => 'Show agent details on responses', 'avatar' => 'Avatar', 'remove_avatar' => 'Remove avatar', - 'ticket_not_found' => 'Ticket not found', 'add_template' => 'Add Template', - 'ticket_template' => 'Ticket Template', - 'ticket_templates' => 'Ticket Templates', - 'updated_ticket_template' => 'Updated Ticket Template', - 'created_ticket_template' => 'Created Ticket Template', 'archive_ticket_template' => 'Archive Template', 'restore_ticket_template' => 'Restore Template', 'archived_ticket_template' => 'Successfully archived template', 'restored_ticket_template' => 'Successfully restored template', - 'close_reason' => 'Let us know why you are closing this ticket', - 'reopen_reason' => 'Let us know why you are reopening this ticket', 'enter_ticket_message' => 'Please enter a message to update the ticket', 'show_hide_all' => 'Show / Hide all', 'subject_required' => 'Subject required', 'mobile_refresh_warning' => 'If you\'re using the mobile app you may need to do a full refresh.', - 'enable_proposals_for_background' => 'To upload a background image :link to enable the proposals module.', - 'ticket_assignment' => 'Ticket :ticket_number has been assigned to :agent', - 'ticket_contact_reply' => 'Ticket :ticket_number has been updated by client :contact', - 'ticket_new_template_subject' => 'Ticket :ticket_number has been created.', - 'ticket_updated_template_subject' => 'Ticket :ticket_number has been updated.', - 'ticket_closed_template_subject' => 'Ticket :ticket_number has been closed.', - 'ticket_overdue_template_subject' => 'Ticket :ticket_number is now overdue', 'merge' => 'Merge', 'merged' => 'Merged', 'agent' => 'Agent', - 'parent_ticket' => 'Parent Ticket', - 'linked_tickets' => 'Linked Tickets', - 'merge_prompt' => 'Enter ticket number to merge into', - 'merge_from_to' => 'Ticket #:old_ticket merged into Ticket #:new_ticket', - 'merge_closed_ticket_text' => 'Ticket #:old_ticket was closed and merged into Ticket#:new_ticket - :subject', - 'merge_updated_ticket_text' => 'Ticket #:old_ticket was closed and merged into this ticket', - 'merge_placeholder' => 'Merge ticket #:ticket into the following ticket', - 'select_ticket' => 'Select Ticket', - 'new_internal_ticket' => 'New internal ticket', - 'internal_ticket' => 'Internal ticket', - 'create_ticket' => 'Create ticket', - 'allow_inbound_email_tickets_external' => 'New Tickets by email (Client)', - 'allow_inbound_email_tickets_external_help' => 'Allow clients to create new tickets by email', 'include_in_filter' => 'Include in filter', 'custom_client1' => ':VALUE', 'custom_client2' => ':VALUE', @@ -3107,7 +3045,7 @@ $lang = array( 'portal_mode' => 'Portal Mode', 'attach_pdf' => 'Attach PDF', 'attach_documents' => 'Attach Documents', - 'attach_ubl' => 'Attach UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => 'Email Style', 'processed' => 'Processed', 'fee_amount' => 'Fee Amount', @@ -3848,7 +3786,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity_number', 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', 'display_log' => 'Display Log', - 'send_fail_logs_to_our_server' => 'Report errors in realtime', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => 'Setup', 'quick_overview_statistics' => 'Quick overview & statistics', 'update_your_personal_info' => 'Update your personal information', @@ -4029,7 +3967,7 @@ $lang = array( 'user_detached' => 'User detached from company', 'create_webhook_failure' => 'Failed to create Webhook', 'payment_message_extended' => 'Thank you for your payment of :amount for :invoice', - 'online_payments_minimum_note' => 'Note: Online payments are supported only if amount is bigger than $1 or currency equivalent.', + 'online_payments_minimum_note' => 'Note: Online payments are supported only if amount is larger than $1 or currency equivalent.', 'payment_token_not_found' => 'Payment token not found, please try again. If an issue still persist, try with another payment method', 'vendor_address1' => 'Vendor Street', 'vendor_address2' => 'Vendor Apt/Suite', @@ -4170,7 +4108,7 @@ $lang = array( 'one_time_purchases' => 'One time purchases', 'recurring_purchases' => 'Recurring purchases', 'you_might_be_interested_in_following' => 'You might be interested in the following', - 'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved.', + 'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.', 'no_quotes_available_for_download' => 'No quotes available for download.', 'copyright' => 'Copyright', 'user_created_user' => ':user created :created_user at :time', @@ -4437,7 +4375,7 @@ $lang = array( 'client_shipping_country' => 'Client Shipping Country', 'load_pdf' => 'Load PDF', 'start_free_trial' => 'Start Free Trial', - 'start_free_trial_message' => 'Start your FREE 14 day trial of the pro plan', + 'start_free_trial_message' => 'Start your FREE 14 day trial of the Pro Plan', 'due_on_receipt' => 'Due on Receipt', 'is_paid' => 'Is Paid', 'age_group_paid' => 'Paid', @@ -5147,7 +5085,7 @@ $lang = array( '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', + 'run_template' => 'Run Template', 'statement_design' => 'Statement Design', 'delivery_note_design' => 'Delivery Note Design', 'payment_receipt_design' => 'Payment Receipt Design', @@ -5277,8 +5215,6 @@ $lang = array( 'accept_payments_online' => 'Accept Payments Online', 'all_payment_gateways' => 'View all payment gateways', 'product_cost' => 'Product cost', - 'enable_rappen_roudning' => 'Enable Rappen Rounding', - 'enable_rappen_rounding_help' => 'Rounds totals to nearest 5', 'duration_words' => 'Duration in words', 'upcoming_recurring_invoices' => 'Upcoming Recurring Invoices', 'shipping_country_id' => 'Shipping Country', @@ -5292,6 +5228,79 @@ $lang = array( 'e_credit' => 'E-Credit', 'e_purchase_order' => 'E-Purchase Order', 'e_quote_type' => 'E-Quote Type', + 'unlock_unlimited_clients' => 'Please upgrade to unlock unlimited clients!', + 'download_e_purchase_order' => 'Download E-Purchase Order', + 'flutter_web_warning' => 'We recommend using the new web app or the desktop app for the best performance', + 'rappen_rounding' => 'Rappen Rounding', + 'rappen_rounding_help' => 'Round amount to 5 cents', + 'assign_group' => 'Assign group', + 'paypal_advanced_cards' => 'Advanced Card Payments', + 'local_domain_help' => 'EHLO domain (optional)', + 'port_help' => 'ie. 25,587,465', + 'host_help' => 'ie. smtp.gmail.com', + 'always_show_required_fields' => 'Allows show required fields form', + 'always_show_required_fields_help' => 'Displays the required fields form always at checkout', + 'advanced_cards' => 'Advanced Cards', + 'activity_140' => 'Statement sent to :client', + 'invoice_net_amount' => 'Invoice Net Amount', + 'round_to_minutes' => 'Round To Minutes', + '1_second' => '1 Second', + '1_minute' => '1 Minute', + '5_minutes' => '5 Minutes', + '15_minutes' => '15 Minutes', + '30_minutes' => '30 Minutes', + '1_hour' => '1 Hour', + '1_day' => '1 Day', + 'round_tasks' => 'Task Rounding Direction', + 'round_tasks_help' => 'Round task times up or down.', + 'direction' => 'Direction', + 'round_up' => 'Round Up', + 'round_down' => 'Round Down', + 'task_round_to_nearest' => 'Round To Nearest', + 'task_round_to_nearest_help' => 'The interval to round the task to.', + 'bulk_updated' => 'Successfully updated data', + 'bulk_update' => 'Bulk Update', + 'calculate' => 'Calculate', + 'sum' => 'Sum', + 'money' => 'Money', + 'web_app' => 'Web App', + 'desktop_app' => 'Desktop App', + 'disconnected' => 'Disconnected', + 'reconnect' => 'Reconnect', + 'e_invoice_settings' => 'E-Invoice Settings', + 'btcpay_refund_subject' => 'Refund of your invoice via BTCPay', + 'btcpay_refund_body' => 'A refund intended for you has been issued. To claim it via BTCPay, please click on this link:', + 'currency_mauritanian_ouguiya' => 'Mauritanian Ouguiya', + 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', + 'end_of_month' => 'End Of Month', + 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); return $lang; diff --git a/lang/zh_TW/texts.php b/lang/zh_TW/texts.php index e12ddf13d2d0..1e8aedae08de 100644 --- a/lang/zh_TW/texts.php +++ b/lang/zh_TW/texts.php @@ -1099,7 +1099,7 @@ $lang = array( 'invoice_embed_documents' => '嵌入的文件', 'invoice_embed_documents_help' => '在發票上附加圖片。', 'document_email_attachment' => '附加文件', - 'ubl_email_attachment' => '附加 UBL', + 'ubl_email_attachment' => 'Attach UBL/E-Invoice', 'download_documents' => '下載文件 (:size)', 'documents_from_expenses' => '從支出:', 'dropzone_default_message' => '將檔案拖曳至此或點擊此處來上傳', @@ -2364,7 +2364,7 @@ $lang = array( 'currency_gold_troy_ounce' => '金金衡盎司', 'currency_nicaraguan_córdoba' => '尼加拉瓜科爾多瓦', 'currency_malagasy_ariary' => '馬達加斯加阿里阿里', - "currency_tongan_pa_anga" => "東加潘加", + "currency_tongan_paanga" => "Tongan Pa'anga", 'review_app_help' => '我們希望您喜歡使用這個程式。
若您考慮 :link,我們會非常感謝!', 'writing_a_review' => '撰寫評語', @@ -2880,19 +2880,6 @@ $lang = array( 'refunded' => '退款', 'marked_quote_as_sent' => '標記報價單為已傳送成功', 'custom_module_settings' => '自訂模組設定', - 'ticket' => '票證', - 'tickets' => '票證', - 'ticket_number' => '票證 #', - 'new_ticket' => '新票證', - 'edit_ticket' => '編輯票證', - 'view_ticket' => '檢視票證', - 'archive_ticket' => '歸檔票證', - 'restore_ticket' => '復原票證', - 'delete_ticket' => '刪除票證', - 'archived_ticket' => '歸檔票證成功', - 'archived_tickets' => '歸檔票證成功', - 'restored_ticket' => '復原票證成功', - 'deleted_ticket' => '刪除票證成功', 'open' => '開啟', 'new' => '新增', 'closed' => '已關閉', @@ -2909,14 +2896,6 @@ $lang = array( 'assigned_to' => '分配給', 'reply' => '回覆', 'awaiting_reply' => '等待回覆', - 'ticket_close' => '關閉票證', - 'ticket_reopen' => '重開票證', - 'ticket_open' => '開啟票證', - 'ticket_split' => '拆分票證', - 'ticket_merge' => '合併票證', - 'ticket_update' => '更新票證', - 'ticket_settings' => '票證設定', - 'updated_ticket' => '票證更新', 'mark_spam' => '標記為垃圾郵件', 'local_part' => '本地部份', 'local_part_unavailable' => '取得的名稱', @@ -2934,31 +2913,23 @@ $lang = array( 'mime_types' => 'Mime 類型', 'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_help' => '逗號分隔的允許的 mime 類型清單, 為所有', + 'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number', + 'new_ticket_template_id' => 'New ticket', + 'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created', + 'update_ticket_template_id' => 'Updated ticket', + 'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated', + 'close_ticket_template_id' => 'Closed ticket', + 'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed', 'default_priority' => '預設優先順序', 'alert_new_comment_id' => '新評論', - 'alert_comment_ticket_help' => '選取範本將在做出評論時 (向代理) 傳送通知。', - 'alert_comment_ticket_email_help' => '逗號分隔的電子郵件給 bcc 關於新的評論。', - 'new_ticket_notification_list' => '其它新票證通知', 'update_ticket_notification_list' => '其它新評論通知', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', - 'alert_ticket_assign_agent_id' => '票證分配', - 'alert_ticket_assign_agent_id_hel' => '選取範本將在分配票證時 (向代理) 傳送通知。', - 'alert_ticket_assign_agent_id_notifications' => '分配的其它票證通知', - 'alert_ticket_assign_agent_id_help' => '逗號分隔的電子郵件給 bcc 的票證分配。', - 'alert_ticket_transfer_email_help' => '逗號分隔的電子郵件給 bcc 的票證轉讓。', - 'alert_ticket_overdue_agent_id' => '過期票證', - 'alert_ticket_overdue_email' => '其它逾期票證通知', - 'alert_ticket_overdue_email_help' => '逗號分隔的電子郵件給 bcc 的票證期。', - 'alert_ticket_overdue_agent_id_help' => '選取範本將在票證過期時 (向代理) 傳送通知。', 'default_agent' => '預設代理', 'default_agent_help' => '如果選取,將自動分配給所有入站票證', 'show_agent_details' => '顯示回應的代理詳細資訊', 'avatar' => '頭像', 'remove_avatar' => '刪除頭像', - 'ticket_not_found' => '找不到票證', 'add_template' => '加入範本', - 'updated_ticket_template' => '已更新票證範本', - 'created_ticket_template' => '已建立票證範本', 'archive_ticket_template' => '歸檔範本', 'restore_ticket_template' => '復原範本', 'archived_ticket_template' => '歸檔範本成功', @@ -3074,7 +3045,7 @@ $lang = array( 'portal_mode' => '入口網站模式', 'attach_pdf' => '附加 PDF 檔案', 'attach_documents' => '附加文件', - 'attach_ubl' => '附加 UBL', + 'attach_ubl' => 'Attach UBL/E-Invoice', 'email_style' => '電子郵件樣式', 'processed' => '處理', 'fee_amount' => '費用金額', @@ -3815,7 +3786,7 @@ $lang = array( 'entity_number_placeholder' => ':entity # :entity _number', 'email_link_not_working' => '如果上面的按鈕不適合您,請點擊連結', 'display_log' => '顯示日誌', - 'send_fail_logs_to_our_server' => '即時報告錯誤', + 'send_fail_logs_to_our_server' => 'Report errors to help improve the app', 'setup' => '設定', 'quick_overview_statistics' => '快速概覽和統計', 'update_your_personal_info' => '更新您的個人資訊', @@ -5303,6 +5274,33 @@ $lang = array( 'currency_bhutan_ngultrum' => 'Bhutan Ngultrum', 'end_of_month' => 'End Of Month', 'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF', + 'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]', + 'task_assigned_body' => 'You have been assigned task :task

Description: :description

Client: :client', + 'activity_141' => 'User :user entered note: :notes', + 'quote_reminder_subject' => 'Reminder: Quote :quote from :company', + 'quote_reminder_message' => 'Reminder for quote :number for :amount', + 'quote_reminder1' => 'First Quote Reminder', + 'before_valid_until_date' => 'Before the valid until date', + 'after_valid_until_date' => 'After the valid until date', + 'after_quote_date' => 'After the quote date', + 'remind_quote' => 'Remind Quote', + 'end_of_month' => 'End Of Month', + 'tax_currency_mismatch' => 'Tax currency is different from invoice currency', + 'edocument_import_already_exists' => 'The invoice has already been imported on :date', + 'before_valid_until' => 'Before the valid until', + 'after_valid_until' => 'After the valid until', + 'task_assigned_notification' => 'Task Assigned Notification', + 'task_assigned_notification_help' => 'Send an email when a task is assigned', + 'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month', + 'referral_url' => 'Referral URL', + 'add_comment' => 'Add Comment', + 'added_comment' => 'Successfully saved comment', + 'tickets' => 'Tickets', + 'assigned_group' => 'Successfully assigned group', + 'merge_to_pdf' => 'Merge to PDF', + 'latest_requires_php_version' => 'Note: the latest version requires PHP :version', + 'auto_expand_product_table_notes' => 'Automatically expand products table notes', + 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', ); -return $lang; \ No newline at end of file +return $lang; diff --git a/phpstan.neon b/phpstan.neon index df2082796c5b..1811c3080b13 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -3,7 +3,7 @@ includes: - ./vendor/spaze/phpstan-stripe/extension.neon - phpstan-baseline.neon parameters: - level: 4 + level: 5 paths: - app excludePaths: diff --git a/resources/views/portal/ninja2020/gateways/paypal/pay.blade.php b/resources/views/portal/ninja2020/gateways/paypal/pay.blade.php index 29137b17a426..b11b968a7f15 100644 --- a/resources/views/portal/ninja2020/gateways/paypal/pay.blade.php +++ b/resources/views/portal/ninja2020/gateways/paypal/pay.blade.php @@ -30,16 +30,6 @@ @push('footer') - - - - -