1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-20 00:11:35 +02:00

Merge remote-tracking branch 'upstream/v5-develop' into 1314-subscriptions-v3

This commit is contained in:
Benjamin Beganović 2024-03-08 20:03:56 +01:00
commit 50c9df36ab
86 changed files with 8093 additions and 7747 deletions

View File

@ -1 +1 @@
5.8.32
5.8.34

View File

@ -884,7 +884,7 @@ class CheckData extends Command
public function checkClientSettings()
{
if ($this->option('fix') == 'true') {
Client::query()->whereNull('country_id')->cursor()->each(function ($client) {
Client::query()->whereNull('country_id')->orWhere('country_id', 0)->cursor()->each(function ($client) {
$client->country_id = $client->company->settings->country_id;
$client->saveQuietly();

View File

@ -55,14 +55,12 @@ class Handler extends ExceptionHandler
protected $selfHostDontReport = [
FilePermissionsFailure::class,
PDOException::class,
MaxAttemptsExceededException::class,
CommandNotFoundException::class,
ValidationException::class,
ModelNotFoundException::class,
NotFoundHttpException::class,
UnableToCreateDirectory::class,
ConnectException::class,
RuntimeException::class,
InvalidArgumentException::class,
CredentialsException::class,

View File

@ -827,7 +827,14 @@ class BaseExport
}
public function applyFilters(Builder $query): Builder
/**
* Apply Product Filters
*
* @param Builder $query
*
* @return Builder
*/
public function applyProductFilters(Builder $query): Builder
{
if(isset($this->input['product_key'])) {
@ -845,7 +852,15 @@ class BaseExport
return $query;
}
protected function addClientFilter($query, $clients): Builder
/**
* Add Client Filter
*
* @param Builder $query
* @param mixed $clients
*
* @return Builder
*/
protected function addClientFilter(Builder $query, $clients): Builder
{
if(is_string($clients)) {
$clients = explode(',', $clients);
@ -863,7 +878,15 @@ class BaseExport
return $query;
}
protected function addVendorFilter($query, $vendors): Builder
/**
* Add Vendor Filter
*
* @param Builder $query
* @param string $vendors
*
* @return Builder
*/
protected function addVendorFilter(Builder$query, string $vendors): Builder
{
if(is_string($vendors)) {
@ -879,7 +902,15 @@ class BaseExport
return $query;
}
protected function addProjectFilter($query, $projects): Builder
/**
* AddProjectFilter
*
* @param Builder $query
* @param string $projects
*
* @return Builder
*/
protected function addProjectFilter(Builder $query, string $projects): Builder
{
if(is_string($projects)) {
@ -895,7 +926,15 @@ class BaseExport
return $query;
}
protected function addCategoryFilter($query, $expense_categories): Builder
/**
* Add Category Filter
*
* @param Builder $query
* @param string $expense_categories
*
* @return Builder
*/
protected function addCategoryFilter(Builder $query, string $expense_categories): Builder
{
if(is_string($expense_categories)) {
@ -912,12 +951,229 @@ class BaseExport
return $query;
}
protected function addInvoiceStatusFilter($query, $status): Builder
/**
* Add Payment Status Filters
*
* @param Builder $query
* @param string $status
*
* @return Builder
*/
protected function addPaymentStatusFilters(Builder $query, string $status): Builder
{
$status_parameters = explode(',', $status);
if(in_array('all', $status_parameters)) {
if(in_array('all', $status_parameters) || count($status_parameters) == 0) {
return $query;
}
$query->where(function ($query) use ($status_parameters) {
$payment_filters = [];
if (in_array('pending', $status_parameters)) {
$payment_filters[] = Payment::STATUS_PENDING;
}
if (in_array('cancelled', $status_parameters)) {
$payment_filters[] = Payment::STATUS_CANCELLED;
}
if (in_array('failed', $status_parameters)) {
$payment_filters[] = Payment::STATUS_FAILED;
}
if (in_array('completed', $status_parameters)) {
$payment_filters[] = Payment::STATUS_COMPLETED;
}
if (in_array('partially_refunded', $status_parameters)) {
$payment_filters[] = Payment::STATUS_PARTIALLY_REFUNDED;
}
if (in_array('refunded', $status_parameters)) {
$payment_filters[] = Payment::STATUS_REFUNDED;
}
if (count($payment_filters) > 0) {
$query->whereIn('status_id', $payment_filters);
}
if(in_array('partially_unapplied', $status_parameters)) {
$query->whereColumn('amount', '>', 'applied')->where('refunded', 0);
}
});
return $query;
}
/**
* Add RecurringInvoice Status Filter
*
* @param Builder $query
* @param string $status
*
* @return Builder
*/
protected function addRecurringInvoiceStatusFilter(Builder $query, string $status): Builder
{
$status_parameters = explode(',', $status);
if (in_array('all', $status_parameters) || count($status_parameters) == 0){
return $query;
}
$recurring_filters = [];
if (in_array('active', $status_parameters)) {
$recurring_filters[] = RecurringInvoice::STATUS_ACTIVE;
}
if (in_array('paused', $status_parameters)) {
$recurring_filters[] = RecurringInvoice::STATUS_PAUSED;
}
if (in_array('completed', $status_parameters)) {
$recurring_filters[] = RecurringInvoice::STATUS_COMPLETED;
}
if (count($recurring_filters) >= 1) {
return $query->whereIn('status_id', $recurring_filters);
}
return $query;
}
/**
* Add QuoteStatus Filter
*
* @param Builder $query
* @param string $status
*
* @return Builder
*/
protected function addQuoteStatusFilter(Builder $query, string $status): Builder
{
$status_parameters = explode(',', $status);
if (in_array('all', $status_parameters)) {
return $query;
}
$query->where(function ($query) use ($status_parameters) {
if (in_array('sent', $status_parameters)) {
$query->orWhere(function ($q) {
$q->where('status_id', Quote::STATUS_SENT)
->whereNull('due_date')
->orWhere('due_date', '>=', now()->toDateString());
});
}
$quote_filters = [];
if (in_array('draft', $status_parameters)) {
$quote_filters[] = Quote::STATUS_DRAFT;
}
if (in_array('approved', $status_parameters)) {
$quote_filters[] = Quote::STATUS_APPROVED;
}
if (count($quote_filters) > 0) {
$query->orWhereIn('status_id', $quote_filters);
}
if (in_array('expired', $status_parameters)) {
$query->orWhere(function ($q) {
$q->where('status_id', Quote::STATUS_SENT)
->whereNotNull('due_date')
->where('due_date', '<=', now()->toDateString());
});
}
if (in_array('upcoming', $status_parameters)) {
$query->orWhere(function ($q) {
$q->where('status_id', Quote::STATUS_SENT)
->where('due_date', '>=', now()->toDateString())
->orderBy('due_date', 'DESC');
});
}
if(in_array('converted', $status_parameters)) {
$query->orWhere(function ($q) {
$q->whereNotNull('invoice_id');
});
}
});
return $query;
}
/**
* Add PurchaseOrder Status Filter
*
* @param Builder $query
* @param string $status
*
* @return Builder
*/
protected function addPurchaseOrderStatusFilter(Builder $query, string $status): Builder
{
$status_parameters = explode(',', $status);
if (in_array('all', $status_parameters) || count($status_parameters) == 0) {
return $query;
}
$query->where(function ($query) use ($status_parameters) {
$po_status = [];
if (in_array('draft', $status_parameters)) {
$po_status[] = PurchaseOrder::STATUS_DRAFT;
}
if (in_array('sent', $status_parameters)) {
$query->orWhere(function ($q) {
$q->where('status_id', PurchaseOrder::STATUS_SENT)
->whereNull('due_date')
->orWhere('due_date', '>=', now()->toDateString());
});
}
if (in_array('accepted', $status_parameters)) {
$po_status[] = PurchaseOrder::STATUS_ACCEPTED;
}
if (in_array('cancelled', $status_parameters)) {
$po_status[] = PurchaseOrder::STATUS_CANCELLED;
}
if (count($po_status) >= 1) {
$query->whereIn('status_id', $po_status);
}
});
return $query;
}
/**
* Add Invoice Status Filter
*
* @param Builder $query
* @param string $status
* @return Builder
*/
protected function addInvoiceStatusFilter(Builder $query, string $status): Builder
{
$status_parameters = explode(',', $status);
if(in_array('all', $status_parameters) || count($status_parameters) == 0) {
return $query;
}
@ -942,6 +1198,10 @@ class BaseExport
$invoice_filters[] = Invoice::STATUS_PARTIAL;
}
if (in_array('cancelled', $status_parameters)) {
$invoice_filters[] = Invoice::STATUS_CANCELLED;
}
if (count($invoice_filters) > 0) {
$nested->whereIn('status_id', $invoice_filters);
}
@ -966,14 +1226,18 @@ class BaseExport
return $query;
}
protected function addDateRange($query)
/**
* Add Date Range
*
* @param Builder $query
* @return Builder
*/
protected function addDateRange(Builder $query): Builder
{
$query = $this->applyFilters($query);
$query = $this->applyProductFilters($query);
$date_range = $this->input['date_range'];
nlog($date_range);
if (array_key_exists('date_key', $this->input) && strlen($this->input['date_key']) > 1) {
$this->date_key = $this->input['date_key'];
}

View File

@ -127,7 +127,7 @@ class ClientExport extends BaseExport
$query = Client::query()->with('contacts')
->withTrashed()
->where('company_id', $this->company->id)
->where('is_deleted', 0);
->where('is_deleted', $this->input['include_deleted']);
$query = $this->addDateRange($query);

View File

@ -103,10 +103,14 @@ class CreditExport extends BaseExport
->withTrashed()
->with('client')
->where('company_id', $this->company->id)
->where('is_deleted', 0);
->where('is_deleted', $this->input['include_deleted']);
$query = $this->addDateRange($query);
if($this->input['status'] ?? false) {
$query = $this->addCreditStatusFilter($query, $this->input['status']);
}
if($this->input['document_email_attachment'] ?? false) {
$this->queueDocuments($query);
}
@ -162,6 +166,40 @@ class CreditExport extends BaseExport
return $this->decorateAdvancedFields($credit, $entity);
}
public function addCreditStatusFilter($query, $status): Builder
{
$status_parameters = explode(',', $status);
if (in_array('all', $status_parameters)) {
return $query;
}
$credit_filters = [];
if (in_array('draft', $status_parameters)) {
$credit_filters[] = Credit::STATUS_DRAFT;
}
if (in_array('sent', $status_parameters)) {
$credit_filters[] = Credit::STATUS_SENT;
}
if (in_array('partial', $status_parameters)) {
$credit_filters[] = Credit::STATUS_PARTIAL;
}
if (in_array('applied', $status_parameters)) {
$credit_filters[] = Credit::STATUS_APPLIED;
}
if (count($credit_filters) >= 1) {
$query->whereIn('status_id', $credit_filters);
}
return $query;
}
private function decorateAdvancedFields(Credit $credit, array $entity): array
{
// if (in_array('country_id', $this->input['report_keys'])) {

View File

@ -83,10 +83,14 @@ class ExpenseExport extends BaseExport
->with('client')
->withTrashed()
->where('company_id', $this->company->id)
->where('is_deleted', 0);
->where('is_deleted', $this->input['include_deleted']);
$query = $this->addDateRange($query);
if($this->input['status'] ?? false) {
$query = $this->addExpenseStatusFilter($query, $this->input['status']);
}
if(isset($this->input['clients'])) {
$query = $this->addClientFilter($query, $this->input['clients']);
}
@ -152,6 +156,55 @@ class ExpenseExport extends BaseExport
return $this->decorateAdvancedFields($expense, $entity);
}
protected function addExpenseStatusFilter($query, $status): Builder
{
$status_parameters = explode(',', $status);
if (in_array('all', $status_parameters)) {
return $query;
}
$query->where(function ($query) use ($status_parameters) {
if (in_array('logged', $status_parameters)) {
$query->orWhere(function ($query) {
$query->where('amount', '>', 0)
->whereNull('invoice_id')
->whereNull('payment_date')
->where('should_be_invoiced', false);
});
}
if (in_array('pending', $status_parameters)) {
$query->orWhere(function ($query) {
$query->where('should_be_invoiced', true)
->whereNull('invoice_id');
});
}
if (in_array('invoiced', $status_parameters)) {
$query->orWhere(function ($query) {
$query->whereNotNull('invoice_id');
});
}
if (in_array('paid', $status_parameters)) {
$query->orWhere(function ($query) {
$query->whereNotNull('payment_date');
});
}
if (in_array('unpaid', $status_parameters)) {
$query->orWhere(function ($query) {
$query->whereNull('payment_date');
});
}
});
return $query;
}
private function decorateAdvancedFields(Expense $expense, array $entity): array
{
// if (in_array('expense.currency_id', $this->input['report_keys'])) {

View File

@ -58,7 +58,7 @@ class InvoiceExport extends BaseExport
->withTrashed()
->with('client')
->where('company_id', $this->company->id)
->where('is_deleted', 0);
->where('is_deleted', $this->input['include_deleted']);
$query = $this->addDateRange($query);
@ -151,9 +151,9 @@ class InvoiceExport extends BaseExport
// $entity['invoice.status'] = $invoice->stringStatus($invoice->status_id);
// }
// if (in_array('invoice.recurring_id', $this->input['report_keys'])) {
// $entity['invoice.recurring_id'] = $invoice->recurring_invoice->number ?? '';
// }
if (in_array('invoice.recurring_id', $this->input['report_keys'])) {
$entity['invoice.recurring_id'] = $invoice->recurring_invoice->number ?? '';
}
if (in_array('invoice.auto_bill_enabled', $this->input['report_keys'])) {
$entity['invoice.auto_bill_enabled'] = $invoice->auto_bill_enabled ? ctrans('texts.yes') : ctrans('texts.no');

View File

@ -71,11 +71,15 @@ class InvoiceItemExport extends BaseExport
->withTrashed()
->with('client')
->where('company_id', $this->company->id)
->where('is_deleted', 0);
->where('is_deleted', $this->input['include_deleted']);
$query = $this->addDateRange($query);
$query = $this->applyFilters($query);
if($this->input['status'] ?? false) {
$query = $this->addInvoiceStatusFilter($query, $this->input['status']);
}
$query = $this->applyProductFilters($query);
if($this->input['document_email_attachment'] ?? false) {
$this->queueDocuments($query);
@ -232,9 +236,9 @@ class InvoiceItemExport extends BaseExport
// $entity['invoice.status'] = $invoice->stringStatus($invoice->status_id);
// }
// if (in_array('invoice.recurring_id', $this->input['report_keys'])) {
// $entity['invoice.recurring_id'] = $invoice->recurring_invoice->number ?? '';
// }
if (in_array('invoice.recurring_id', $this->input['report_keys'])) {
$entity['invoice.recurring_id'] = $invoice->recurring_invoice->number ?? '';
}
if (in_array('invoice.assigned_user_id', $this->input['report_keys'])) {
$entity['invoice.assigned_user_id'] = $invoice->assigned_user ? $invoice->assigned_user->present()->name() : '';

View File

@ -61,6 +61,8 @@ class PaymentExport extends BaseExport
$query = $this->addDateRange($query);
$query = $this->addPaymentStatusFilters($query, $this->input['status'] ?? '');
if($this->input['document_email_attachment'] ?? false) {
$this->queueDocuments($query);
}

View File

@ -31,51 +31,6 @@ class PurchaseOrderExport extends BaseExport
private Decorator $decorator;
public array $entity_keys = [
'amount' => 'purchase_order.amount',
'balance' => 'purchase_order.balance',
'vendor' => 'purchase_order.vendor_id',
// 'custom_surcharge1' => 'purchase_order.custom_surcharge1',
// 'custom_surcharge2' => 'purchase_order.custom_surcharge2',
// 'custom_surcharge3' => 'purchase_order.custom_surcharge3',
// 'custom_surcharge4' => 'purchase_order.custom_surcharge4',
'custom_value1' => 'purchase_order.custom_value1',
'custom_value2' => 'purchase_order.custom_value2',
'custom_value3' => 'purchase_order.custom_value3',
'custom_value4' => 'purchase_order.custom_value4',
'date' => 'purchase_order.date',
'discount' => 'purchase_order.discount',
'due_date' => 'purchase_order.due_date',
'exchange_rate' => 'purchase_order.exchange_rate',
'footer' => 'purchase_order.footer',
'number' => 'purchase_order.number',
'paid_to_date' => 'purchase_order.paid_to_date',
'partial' => 'purchase_order.partial',
'partial_due_date' => 'purchase_order.partial_due_date',
'po_number' => 'purchase_order.po_number',
'private_notes' => 'purchase_order.private_notes',
'public_notes' => 'purchase_order.public_notes',
'status' => 'purchase_order.status',
'tax_name1' => 'purchase_order.tax_name1',
'tax_name2' => 'purchase_order.tax_name2',
'tax_name3' => 'purchase_order.tax_name3',
'tax_rate1' => 'purchase_order.tax_rate1',
'tax_rate2' => 'purchase_order.tax_rate2',
'tax_rate3' => 'purchase_order.tax_rate3',
'terms' => 'purchase_order.terms',
'total_taxes' => 'purchase_order.total_taxes',
'currency_id' => 'purchase_order.currency_id',
];
private array $decorate_keys = [
'country',
'currency_id',
'status',
'vendor',
'project',
];
public function __construct(Company $company, array $input)
{
$this->company = $company;
@ -104,10 +59,12 @@ class PurchaseOrderExport extends BaseExport
->withTrashed()
->with('vendor')
->where('company_id', $this->company->id)
->where('is_deleted', 0);
->where('is_deleted', $this->input['include_deleted']);
$query = $this->addDateRange($query);
$query = $this->addPurchaseOrderStatusFilter($query, $this->input['status'] ?? '');
if($this->input['document_email_attachment'] ?? false) {
$this->queueDocuments($query);
}
@ -167,7 +124,7 @@ class PurchaseOrderExport extends BaseExport
if (is_array($parts) && $parts[0] == 'purchase_order' && array_key_exists($parts[1], $transformed_purchase_order)) {
$entity[$key] = $transformed_purchase_order[$parts[1]];
} else {
// nlog($key);
nlog($key);
$entity[$key] = $this->decorator->transform($key, $purchase_order);
// $entity[$key] = '';
@ -182,16 +139,13 @@ class PurchaseOrderExport extends BaseExport
private function decorateAdvancedFields(PurchaseOrder $purchase_order, array $entity): array
{
if (in_array('country_id', $this->input['report_keys'])) {
$entity['country'] = $purchase_order->vendor->country ? ctrans("texts.country_{$purchase_order->vendor->country->name}") : '';
if (in_array('purchase_order.currency_id', $this->input['report_keys'])) {
$entity['purchase_order.currency_id'] = $purchase_order->vendor->currency() ? $purchase_order->vendor->currency()->code : $purchase_order->company->currency()->code;
}
if (in_array('currency_id', $this->input['report_keys'])) {
$entity['currency_id'] = $purchase_order->vendor->currency() ? $purchase_order->vendor->currency()->code : $purchase_order->company->currency()->code;
}
if (in_array('vendor_id', $this->input['report_keys'])) {
$entity['vendor'] = $purchase_order->vendor->present()->name();
if (in_array('purchase_order.vendor_id', $this->input['report_keys'])) {
$entity['purchase_order.vendor_id'] = $purchase_order->vendor->present()->name();
}
if (in_array('purchase_order.status', $this->input['report_keys'])) {

View File

@ -63,10 +63,12 @@ class PurchaseOrderItemExport extends BaseExport
$query = PurchaseOrder::query()
->withTrashed()
->with('vendor')->where('company_id', $this->company->id)
->where('is_deleted', 0);
->where('is_deleted', $this->input['include_deleted']);
$query = $this->addDateRange($query);
$query = $this->addPurchaseOrderStatusFilter($query, $this->input['status'] ?? '');
if($this->input['document_email_attachment'] ?? false) {
$this->queueDocuments($query);
}
@ -190,23 +192,35 @@ class PurchaseOrderItemExport extends BaseExport
private function decorateAdvancedFields(PurchaseOrder $purchase_order, array $entity): array
{
if (in_array('currency_id', $this->input['report_keys'])) {
$entity['currency'] = $purchase_order->vendor->currency() ? $purchase_order->vendor->currency()->code : $purchase_order->company->currency()->code;
// if (in_array('currency_id', $this->input['report_keys'])) {
// $entity['currency'] = $purchase_order->vendor->currency() ? $purchase_order->vendor->currency()->code : $purchase_order->company->currency()->code;
// }
// if(array_key_exists('type', $entity)) {
// $entity['type'] = $purchase_order->typeIdString($entity['type']);
// }
// if(array_key_exists('tax_category', $entity)) {
// $entity['tax_category'] = $purchase_order->taxTypeString($entity['tax_category']);
// }
// if($this->force_keys) {
// $entity['vendor'] = $purchase_order->vendor->present()->name();
// $entity['vendor_id_number'] = $purchase_order->vendor->id_number;
// $entity['vendor_number'] = $purchase_order->vendor->number;
// $entity['status'] = $purchase_order->stringStatus($purchase_order->status_id);
// }
if (in_array('purchase_order.currency_id', $this->input['report_keys'])) {
$entity['purchase_order.currency_id'] = $purchase_order->vendor->currency() ? $purchase_order->vendor->currency()->code : $purchase_order->company->currency()->code;
}
if(array_key_exists('type', $entity)) {
$entity['type'] = $purchase_order->typeIdString($entity['type']);
if (in_array('purchase_order.vendor_id', $this->input['report_keys'])) {
$entity['purchase_order.vendor_id'] = $purchase_order->vendor->present()->name();
}
if(array_key_exists('tax_category', $entity)) {
$entity['tax_category'] = $purchase_order->taxTypeString($entity['tax_category']);
}
if($this->force_keys) {
$entity['vendor'] = $purchase_order->vendor->present()->name();
$entity['vendor_id_number'] = $purchase_order->vendor->id_number;
$entity['vendor_number'] = $purchase_order->vendor->number;
$entity['status'] = $purchase_order->stringStatus($purchase_order->status_id);
if (in_array('purchase_order.status', $this->input['report_keys'])) {
$entity['purchase_order.status'] = $purchase_order->stringStatus($purchase_order->status_id);
}
if (in_array('purchase_order.user_id', $this->input['report_keys'])) {

View File

@ -65,10 +65,12 @@ class QuoteExport extends BaseExport
->withTrashed()
->with('client')
->where('company_id', $this->company->id)
->where('is_deleted', 0);
->where('is_deleted', $this->input['include_deleted']);
$query = $this->addDateRange($query);
$query = $this->addQuoteStatusFilter($query, $this->input['status'] ?? '');
if($this->input['document_email_attachment'] ?? false) {
$this->queueDocuments($query);
}

View File

@ -66,10 +66,12 @@ class QuoteItemExport extends BaseExport
$query = Quote::query()
->withTrashed()
->with('client')->where('company_id', $this->company->id)
->where('is_deleted', 0);
->where('is_deleted', $this->input['include_deleted']);
$query = $this->addDateRange($query);
$query = $this->addQuoteStatusFilter($query, $this->input['status'] ?? '');
if($this->input['document_email_attachment'] ?? false) {
$this->queueDocuments($query);
}

View File

@ -57,10 +57,12 @@ class RecurringInvoiceExport extends BaseExport
->withTrashed()
->with('client')
->where('company_id', $this->company->id)
->where('is_deleted', 0);
->where('is_deleted', $this->input['include_deleted']);
$query = $this->addDateRange($query);
$query = $this->addRecurringInvoiceStatusFilter($query, $this->input['status'] ?? '');
return $query;
}

View File

@ -68,7 +68,7 @@ class TaskExport extends BaseExport
$query = Task::query()
->withTrashed()
->where('company_id', $this->company->id)
->where('is_deleted', 0);
->where('is_deleted', $this->input['include_deleted']);
$query = $this->addDateRange($query);
@ -203,6 +203,34 @@ class TaskExport extends BaseExport
}
/**
* Add Task Status Filter
*
* @param Builder $query
* @param string $status
* @return Builder
*/
protected function addTaskStatusFilter(Builder $query, string $status): Builder
{
$status_parameters = explode(',', $status);
if (in_array('all', $status_parameters) || count($status_parameters) == 0) {
return $query;
}
if (in_array('invoiced', $status_parameters)) {
$query->whereNotNull('invoice_id');
}
if (in_array('uninvoiced', $status_parameters)) {
$query->whereNull('invoice_id');
}
return $query;
}
private function decorateAdvancedFields(Task $task, array $entity): array
{
if (in_array('task.status_id', $this->input['report_keys'])) {

View File

@ -62,7 +62,7 @@ class VendorExport extends BaseExport
$query = Vendor::query()->with('contacts')
->withTrashed()
->where('company_id', $this->company->id)
->where('is_deleted', 0);
->where('is_deleted', $this->input['include_deleted']);
$query = $this->addDateRange($query);

View File

@ -79,7 +79,6 @@ class InvoiceDecorator extends Decorator implements DecoratorInterface
return $invoice->partial_due_date ?? '';
}
public function assigned_user_id(Invoice $invoice)
{
return $invoice->assigned_user ? $invoice->assigned_user->present()->name() : '';

View File

@ -62,6 +62,10 @@ class InvoiceFilters extends QueryFilters
$invoice_filters[] = Invoice::STATUS_PAID;
}
if (in_array('cancelled', $status_parameters)) {
$invoice_filters[] = Invoice::STATUS_CANCELLED;
}
if (in_array('unpaid', $status_parameters)) {
$invoice_filters[] = Invoice::STATUS_SENT;
$invoice_filters[] = Invoice::STATUS_PARTIAL;

View File

@ -77,6 +77,7 @@ class StoreInvoiceRequest extends Request
$rules['exchange_rate'] = 'bail|sometimes|numeric';
$rules['partial'] = 'bail|sometimes|nullable|numeric|gte:0';
$rules['partial_due_date'] = ['bail', 'sometimes', 'exclude_if:partial,0', Rule::requiredIf(fn () => $this->partial > 0), 'date'];
$rules['due_date'] = ['bail', 'sometimes', 'nullable', 'after:partial_due_date', Rule::requiredIf(fn () => strlen($this->partial_due_date) > 1), 'date'];
return $rules;
@ -112,6 +113,12 @@ class StoreInvoiceRequest extends Request
$input['exchange_rate'] = 1;
}
//handles edge case where we need for force set the due date of the invoice.
if((isset($input['partial_due_date']) && strlen($input['partial_due_date']) > 1) && (!array_key_exists('due_date', $input) || (empty($input['due_date']) && empty($this->invoice->due_date)))) {
$client = \App\Models\Client::withTrashed()->find($input['client_id']);
$input['due_date'] = \Illuminate\Support\Carbon::parse($input['date'])->addDays($client->getSetting('payment_terms'))->format('Y-m-d');
}
$this->replace($input);
}
}

View File

@ -78,6 +78,7 @@ class UpdateInvoiceRequest extends Request
$rules['exchange_rate'] = 'bail|sometimes|numeric';
$rules['partial'] = 'bail|sometimes|nullable|numeric';
$rules['partial_due_date'] = ['bail', 'sometimes', 'exclude_if:partial,0', Rule::requiredIf(fn () => $this->partial > 0), 'date', 'before:due_date'];
$rules['due_date'] = ['bail', 'sometimes', 'nullable', 'after:partial_due_date', Rule::requiredIf(fn () => strlen($this->partial_due_date) > 1), 'date'];
return $rules;
@ -107,6 +108,12 @@ class UpdateInvoiceRequest extends Request
$input['exchange_rate'] = 1;
}
//handles edge case where we need for force set the due date of the invoice.
if((isset($input['partial_due_date']) && strlen($input['partial_due_date']) > 1) && (!array_key_exists('due_date', $input) || (empty($input['due_date']) && empty($this->invoice->due_date)))) {
$client = \App\Models\Client::withTrashed()->find($input['client_id']);
$input['due_date'] = \Illuminate\Support\Carbon::parse($input['date'])->addDays($client->getSetting('payment_terms'))->format('Y-m-d');
}
$this->replace($input);
}

View File

@ -37,7 +37,8 @@ class GenericReportRequest extends Request
'start_date' => 'bail|required_if:date_range,custom|nullable|date',
'report_keys' => 'present|array',
'send_email' => 'required|bool',
'document_email_attachment' => 'sometimes|bool'
'document_email_attachment' => 'sometimes|bool',
'include_deleted' => 'required|bool',
// 'status' => 'sometimes|string|nullable|in:all,draft,sent,viewed,paid,unpaid,overdue',
];
}
@ -63,6 +64,8 @@ class GenericReportRequest extends Request
$input['end_date'] = null;
}
$input['include_deleted'] = array_key_exists('include_deleted', $input) ? filter_var($input['include_deleted'], FILTER_VALIDATE_BOOLEAN) : false;
$input['user_id'] = auth()->user()->id;
$this->replace($input);

View File

@ -13,11 +13,30 @@ namespace App\Http\Requests\TaskScheduler;
use App\Http\Requests\Request;
use App\Http\ValidationRules\Scheduler\ValidClientIds;
use App\Utils\Traits\MakesHash;
class StoreSchedulerRequest extends Request
{
use MakesHash;
public array $client_statuses = [
'all',
'draft',
'paid',
'unpaid',
'overdue',
'pending',
'invoiced',
'logged',
'partial',
'applied',
'active',
'paused',
'completed',
'approved',
'expired',
'upcoming',
'converted',
'uninvoiced',
];
/**
* Determine if the user is authorized to make this request.
*
@ -73,10 +92,18 @@ class StoreSchedulerRequest extends Request
if(isset($input['parameters']['status'])) {
$task_statuses = [];
if(isset($input['parameters']['report_name']) && $input['parameters']['report_name'] == 'task') {
$task_statuses = array_diff(explode(",", $input['parameters']['status']), $this->client_statuses);
}
$input['parameters']['status'] = collect(explode(",", $input['parameters']['status']))
->filter(function ($status) {
return in_array($status, ['all','draft','paid','unpaid','overdue']);
})->implode(",") ?? '';
return in_array($status, $this->client_statuses);
})->merge($task_statuses)
->implode(",") ?? '';
}
$this->replace($input);

View File

@ -16,6 +16,27 @@ use App\Http\ValidationRules\Scheduler\ValidClientIds;
class UpdateSchedulerRequest extends Request
{
public array $client_statuses = [
'all',
'draft',
'paid',
'unpaid',
'overdue',
'pending',
'invoiced',
'logged',
'partial',
'applied',
'active',
'paused',
'completed',
'approved',
'expired',
'upcoming',
'converted',
'uninvoiced',
];
/**
* Determine if the user is authorized to make this request.
*
@ -71,10 +92,18 @@ class UpdateSchedulerRequest extends Request
if(isset($input['parameters']['status'])) {
$task_statuses = [];
if(isset($input['parameters']['report_name']) && $input['parameters']['report_name'] == 'task') {
$task_statuses = array_diff(explode(",", $input['parameters']['status']), $this->client_statuses);
}
$input['parameters']['status'] = collect(explode(",", $input['parameters']['status']))
->filter(function ($status) {
return in_array($status, ['all','draft','paid','unpaid','overdue']);
})->implode(",") ?? '';
return in_array($status, $this->client_statuses);
})->merge($task_statuses)
->implode(",") ?? '';
}
$this->replace($input);

View File

@ -23,7 +23,10 @@ class StoreWebhookRequest extends Request
*/
public function authorize(): bool
{
return auth()->user()->isAdmin() && auth()->user()->account->hasFeature(Account::FEATURE_API);
/** @var \App\Models\User $user */
$user = auth()->user();
return $user->isAdmin() && $user->account->hasFeature(Account::FEATURE_API);
}
public function rules()
@ -31,7 +34,6 @@ class StoreWebhookRequest extends Request
return [
'target_url' => 'bail|required|url',
'event_id' => 'bail|required',
// 'headers' => 'bail|sometimes|json',
'rest_method' => 'required|in:post,put'
];
}
@ -43,8 +45,6 @@ class StoreWebhookRequest extends Request
if (!isset($input['rest_method'])) {
$input['rest_method'] = 'post';
}
// if(isset($input['headers']) && count($input['headers']) == 0)
// $input['headers'] = null;
$this->replace($input);
}

View File

@ -279,13 +279,21 @@ class NinjaMailerJob implements ShouldQueue
$this->mailer = 'postmark';
$this->client_postmark_secret = config('services.postmark-outlook.token');
if (property_exists($this->nmo->settings, 'email_from_name') && strlen($this->nmo->settings->email_from_name) > 1) {
$email_from_name = $this->nmo->settings->email_from_name;
} else {
$email_from_name = $this->company->present()->name();
}
$this->nmo
->mailable
->from('maildelivery@invoice.services', 'Invoice Ninja');
->from(config('services.postmark-outlook.from.address'), $email_from_name);
return $this;
}
} catch(\Exception $e) {
nlog("problem switching outlook driver - hosted");
nlog($e->getMessage());
}
}

View File

@ -149,6 +149,7 @@ class PdfSlot extends Component
return render('components.livewire.pdf-slot', [
'invitation' => $this->invitation,
'entity' => $this->entity,
'settings' => $this->settings,
'data' => $this->invitation->company->settings,
'entity_type' => $this->entity_type,
'products' => $this->getProducts(),

View File

@ -137,22 +137,22 @@ class Gateway extends StaticModel
case 56:
return [
GatewayType::CREDIT_CARD => ['refund' => true, 'token_billing' => true, 'webhooks' => ['payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::BANK_TRANSFER => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'customer.source.updated','payment_intent.processing', 'payment_intent.payment_failed']],
GatewayType::BANK_TRANSFER => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'customer.source.updated','payment_intent.processing', 'payment_intent.payment_failed', 'charge.failed']],
GatewayType::DIRECT_DEBIT => ['refund' => false, 'token_billing' => false, 'webhooks' => ['payment_intent.processing','payment_intent.succeeded','payment_intent.partially_funded', 'payment_intent.payment_failed']],
GatewayType::ALIPAY => ['refund' => false, 'token_billing' => false],
GatewayType::APPLE_PAY => ['refund' => false, 'token_billing' => false],
GatewayType::BACS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.processing', 'payment_intent.succeeded', 'mandate.updated', 'payment_intent.payment_failed']],
GatewayType::SOFORT => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::KLARNA => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::SEPA => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::PRZELEWY24 => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::GIROPAY => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::EPS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::BANCONTACT => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::BECS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::IDEAL => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::ACSS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::FPX => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded']],
GatewayType::BACS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'charge.failed', 'payment_intent.processing', 'payment_intent.succeeded', 'mandate.updated', 'payment_intent.payment_failed']],
GatewayType::SOFORT => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'charge.failed', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::KLARNA => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'charge.failed', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::SEPA => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'charge.failed', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::PRZELEWY24 => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'charge.failed', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::GIROPAY => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'charge.failed', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::EPS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'charge.failed', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::BANCONTACT => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'charge.failed', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::BECS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'charge.failed', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::IDEAL => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'charge.failed', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::ACSS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'charge.failed', 'payment_intent.succeeded', 'payment_intent.payment_failed']],
GatewayType::FPX => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'charge.failed', ]],
];
case 39:
return [GatewayType::CREDIT_CARD => ['refund' => true, 'token_billing' => true, 'webhooks' => [' ']]]; //Checkout

View File

@ -355,10 +355,12 @@ class RecurringInvoice extends BaseModel
public function calculateStatus(bool $new_model = false) //15-02-2024 - $new_model needed
{
if($this->remaining_cycles == 0) {
if($this->remaining_cycles == 0)
return self::STATUS_COMPLETED;
} elseif ($new_model && $this->status_id == self::STATUS_ACTIVE && Carbon::parse($this->next_send_date)->isFuture())
elseif ($new_model && $this->status_id == self::STATUS_ACTIVE && Carbon::parse($this->next_send_date)->isFuture())
return self::STATUS_PENDING;
elseif($this->remaining_cycles != 0 && ($this->status_id == self::STATUS_COMPLETED))
return self::STATUS_ACTIVE;
return $this->status_id;

View File

@ -180,6 +180,7 @@ class Webhook extends BaseModel
self::EVENT_DELETE_PURCHASE_ORDER,
self::EVENT_RESTORE_PURCHASE_ORDER,
self::EVENT_ARCHIVE_PURCHASE_ORDER,
self::EVENT_CREATE_PRODUCT,
self::EVENT_UPDATE_PRODUCT,
self::EVENT_DELETE_PRODUCT,
self::EVENT_RESTORE_PRODUCT,

View File

@ -503,15 +503,22 @@ class Email implements ShouldQueue
$server = $dns[0]["target"];
if(stripos($server, "outlook.com") !== false) {
if (property_exists($this->email_object->settings, 'email_from_name') && strlen($this->email_object->settings->email_from_name) > 1) {
$email_from_name = $this->email_object->settings->email_from_name;
} else {
$email_from_name = $this->company->present()->name();
}
$this->mailer = 'postmark';
$this->client_postmark_secret = config('services.postmark-outlook.token');
$this->mailable
->from('maildelivery@invoice.services', 'Invoice Ninja');
->from(config('services.postmark-outlook.from.address'), $email_from_name);
return $this;
}
} catch(\Exception $e) {
nlog("problem switching outlook driver - hosted");
nlog($e->getMessage());
}
}

View File

@ -717,7 +717,7 @@ class TemplateService
return collect($payment->refund_meta)
->map(function ($refund) use ($payment) {
$date = \Carbon\Carbon::parse($refund['date'])->addSeconds($payment->client->timezone_offset());
$date = \Carbon\Carbon::parse($refund['date'] ?? $payment->date)->addSeconds($payment->client->timezone_offset());
$date = $this->translateDate($date, $payment->client->date_format(), $payment->client->locale());
$entity = ctrans('texts.invoice');

View File

@ -132,6 +132,8 @@ class CreditTransformer extends EntityTransformer
'paid_to_date' => (float) $credit->paid_to_date,
'subscription_id' => $this->encodePrimaryKey($credit->subscription_id),
'invoice_id' => $credit->invoice_id ? $this->encodePrimaryKey($credit->invoice_id) : '',
'tax_info' => $credit->tax_data ?: new \stdClass(),
];
}
}

View File

@ -149,6 +149,7 @@ class PurchaseOrderTransformer extends EntityTransformer
'subscription_id' => $this->encodePrimaryKey($purchase_order->subscription_id),
'expense_id' => $this->encodePrimaryKey($purchase_order->expense_id),
'currency_id' => $purchase_order->currency_id ? (string) $purchase_order->currency_id : '',
'tax_info' => $purchase_order->tax_data ?: new \stdClass(),
];
}
}

View File

@ -148,7 +148,7 @@ class QuoteTransformer extends EntityTransformer
'paid_to_date' => (float) $quote->paid_to_date,
'project_id' => $this->encodePrimaryKey($quote->project_id),
'subscription_id' => $this->encodePrimaryKey($quote->subscription_id),
'tax_info' => $quote->tax_data ?: new \stdClass(),
];
}
}

821
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -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.8.32'),
'app_tag' => env('APP_TAG', '5.8.32'),
'app_version' => env('APP_VERSION', '5.8.34'),
'app_tag' => env('APP_TAG', '5.8.34'),
'minimum_client_version' => '5.0.16',
'terms_version' => '1.0.1',
'api_secret' => env('API_SECRET', false),

View File

@ -35,7 +35,10 @@ return [
],
'postmark-outlook' => [
'token' => env('POSTMARK_OUTLOOK_SECRET','')
'token' => env('POSTMARK_OUTLOOK_SECRET',''),
'from' => [
'address' => env('POSTMARK_OUTLOOK_FROM_ADDRESS', '')
],
],
'microsoft' => [

View File

@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('quotes', function (Blueprint $table) {
$table->mediumText('tax_data')->nullable(); //json object
});
Schema::table('credits', function (Blueprint $table) {
$table->mediumText('tax_data')->nullable(); //json object
});
Schema::table('purchase_orders', function (Blueprint $table) {
$table->mediumText('tax_data')->nullable(); //json object
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
}
};

View File

@ -499,8 +499,8 @@ $lang = array(
'auto_wrap' => 'التفاف خط السيارات',
'duplicate_post' => 'تحذير: الصفحة السابقة قدمت مرتين. تم تجاهل التقديم الثاني.',
'view_documentation' => 'عرض التوثيق',
'app_title' => 'Free Online Invoicing',
'app_description' => 'Invoice Ninja is a free, open-code solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
'app_title' => 'فواتير مجانية عبر الإنترنت',
'app_description' => 'يعد Invoice Ninja حلاً مجانيًا مفتوح الرمز لإعداد الفواتير وإعداد الفواتير للعملاء. باستخدام Invoice Ninja، يمكنك بسهولة إنشاء وإرسال فواتير جميلة من أي جهاز لديه إمكانية الوصول إلى الويب. يمكن لعملائك طباعة فواتيرك، وتنزيلها كملفات pdf، وحتى الدفع لك عبر الإنترنت من داخل النظام.',
'rows' => 'صفوف',
'www' => 'www',
'logo' => 'شعار',
@ -686,9 +686,9 @@ $lang = array(
'disable' => 'إبطال',
'invoice_quote_number' => 'أرقام الفاتورة والاقتباس',
'invoice_charges' => 'رسوم الفاتورة الإضافية',
'notification_invoice_bounced' => 'We were unable to deliver Invoice :invoice to :contact. <br><br> :error',
'notification_invoice_bounced' => 'لم نتمكن من تسليم الفاتورة :invoice إلى :contact .<br><br> :error',
'notification_invoice_bounced_subject' => 'تعذر تسليم الفاتورة :invoice',
'notification_quote_bounced' => 'We were unable to deliver Quote :invoice to :contact. <br><br> :error',
'notification_quote_bounced' => 'لم نتمكن من تسليم عرض الأسعار :invoice إلى :contact .<br><br> :error',
'notification_quote_bounced_subject' => 'غير قادر على تسليم اقتباس :invoice',
'custom_invoice_link' => 'رابط الفاتورة المخصصة',
'total_invoiced' => 'إجمالي الفاتورة',
@ -2991,7 +2991,7 @@ $lang = array(
'hosted_login' => 'مستضاف تسجيل الدخول',
'selfhost_login' => 'تسجيل الدخول إلى Selfhost',
'google_login' => 'جوجل تسجيل الدخول',
'thanks_for_patience' => 'Thank for your patience while we work to implement these features.<br><br>We hope to have them completed in the next few months.<br><br>Until then we\'ll continue to support the',
'thanks_for_patience' => 'نشكرك على سعة صدرك بينما نعمل على تنفيذ هذه الميزات.<br><br> ونأمل أن يتم الانتهاء منها في الأشهر القليلة المقبلة.<br><br> وحتى ذلك الحين سنواصل دعمنا',
'legacy_mobile_app' => 'تطبيق جوال قديم',
'today' => 'اليوم',
'current' => 'حاضِر',
@ -3849,7 +3849,7 @@ $lang = array(
'cancellation_pending' => 'الإلغاء معلق ، سنكون على اتصال!',
'list_of_payments' => 'قائمة المدفوعات',
'payment_details' => 'تفاصيل الدفع',
'list_of_payment_invoices' => 'Associate invoices',
'list_of_payment_invoices' => 'الفواتير المرتبطة',
'list_of_payment_methods' => 'قائمة طرق الدفع',
'payment_method_details' => 'تفاصيل طريقة الدفع',
'permanently_remove_payment_method' => 'قم بإزالة طريقة الدفع هذه بشكل دائم.',
@ -4906,7 +4906,7 @@ $lang = array(
'no_assigned_tasks' => 'لا توجد مهام قابلة للفوترة لهذا المشروع',
'authorization_failure' => 'أذونات غير كافية لتنفيذ هذا الإجراء',
'authorization_sms_failure' => 'يرجى التحقق من حسابك لإرسال رسائل البريد الإلكتروني.',
'white_label_body' => 'Thank you for purchasing a white label license. <br><br> Your license key is: <br><br> :license_key <br><br> You can manage your license here: https://invoiceninja.invoicing.co/client/login',
'white_label_body' => 'شكرًا لك على شراء ترخيص العلامة البيضاء.<br><br> مفتاح الترخيص الخاص بك هو:<br><br> :license_key<br><br> يمكنك إدارة الترخيص الخاص بك هنا: https://invoiceninja.invoicing.co/client/login',
'payment_type_Klarna' => 'كلارنا',
'payment_type_Interac E Transfer' => 'Interac E Transfer',
'xinvoice_payable' => 'مستحق الدفع paydate: صافي أيام الدفع payeddue: تاريخ الدفع',
@ -5071,7 +5071,7 @@ $lang = array(
'region' => 'منطقة',
'county' => 'مقاطعة',
'tax_details' => 'التفاصيل الضريبية',
'activity_10_online' => ':contact made payment :payment for invoice :invoice for :client',
'activity_10_online' => ':contact تم الدفع :payment للفاتورة :invoice لـ :client',
'activity_10_manual' => ':user الدفعة المدخلة :payment للفاتورة :invoice لـ :client',
'default_payment_type' => 'نوع الدفع الافتراضي',
'number_precision' => 'دقة العدد',
@ -5101,7 +5101,7 @@ $lang = array(
'set_private' => 'تعيين خاص',
'individual' => 'فردي',
'business' => 'عمل',
'partnership' => 'Partnership',
'partnership' => 'شراكة',
'trust' => 'يثق',
'charity' => 'صدقة',
'government' => 'حكومة',
@ -5185,39 +5185,44 @@ $lang = array(
'nordigen_handler_error_contents_requisition_no_accounts' => 'لم تقم الخدمة بإرجاع أي حسابات صالحة. فكر في إعادة تشغيل التدفق.',
'nordigen_handler_restart' => 'إعادة تشغيل التدفق.',
'nordigen_handler_return' => 'العودة إلى التطبيق.',
'lang_Lao' => 'Lao',
'currency_lao_kip' => 'Lao kip',
'yodlee_regions' => 'Regions: USA, UK, Australia & India',
'nordigen_regions' => 'Regions: Europe & UK',
'select_provider' => 'Select Provider',
'nordigen_requisition_subject' => 'Requisition expired, please reauthenticate.',
'nordigen_requisition_body' => 'Access to bank account feeds has expired as set in End User Agreement. <br><br>Please log into Invoice Ninja and re-authenticate with your banks to continue receiving transactions.',
'participant' => 'Participant',
'participant_name' => 'Participant name',
'client_unsubscribed' => 'Client unsubscribed from emails.',
'client_unsubscribed_help' => 'Client :client has unsubscribed from your e-mails. The client needs to consent to receive future emails from you.',
'resubscribe' => 'Resubscribe',
'subscribe' => 'Subscribe',
'subscribe_help' => 'You are currently subscribed and will continue to receive email communications.',
'unsubscribe_help' => 'You are currently not subscribed, and therefore, will not receive emails at this time.',
'notification_purchase_order_bounced' => 'We were unable to deliver Purchase Order :invoice to :contact. <br><br> :error',
'notification_purchase_order_bounced_subject' => 'Unable to deliver Purchase Order :invoice',
'show_pdfhtml_on_mobile' => 'Display HTML version of entity when viewing on mobile',
'show_pdfhtml_on_mobile_help' => 'For improved visualization, displays a HTML version of the invoice/quote when viewing on mobile.',
'please_select_an_invoice_or_credit' => 'Please select an invoice or credit',
'mobile_version' => 'Mobile Version',
'venmo' => 'Venmo',
'my_bank' => 'MyBank',
'pay_later' => 'Pay Later',
'local_domain' => 'Local Domain',
'verify_peer' => 'Verify Peer',
'nordigen_help' => 'Note: connecting an account requires a GoCardless/Nordigen API key',
'ar_detailed' => 'Accounts Receivable Detailed',
'ar_summary' => 'Accounts Receivable Summary',
'client_sales' => 'Client Sales',
'user_sales' => 'User Sales',
'iframe_url' => 'iFrame URL',
'user_unsubscribed' => 'User unsubscribed from emails :link',
'lang_Lao' => 'لاو',
'currency_lao_kip' => 'لاو كيب',
'yodlee_regions' => 'المناطق: الولايات المتحدة الأمريكية والمملكة المتحدة وأستراليا والهند',
'nordigen_regions' => 'المناطق: أوروبا والمملكة المتحدة',
'select_provider' => 'حدد الموفر',
'nordigen_requisition_subject' => 'انتهت صلاحية الطلب، يرجى إعادة المصادقة.',
'nordigen_requisition_body' => 'انتهت صلاحية الوصول إلى خلاصات حساب البنك كما هو محدد في اتفاقية المستخدم النهائي.<br><br> يرجى تسجيل الدخول إلى Invoice Ninja وإعادة المصادقة مع البنوك التي تتعامل معها لمواصلة تلقي المعاملات.',
'participant' => 'مشارك',
'participant_name' => 'اسم المشارك',
'client_unsubscribed' => 'تم إلغاء اشتراك العميل من رسائل البريد الإلكتروني.',
'client_unsubscribed_help' => 'لقد قام العميل :client بإلغاء اشتراكه في رسائل البريد الإلكتروني الخاصة بك. يحتاج العميل إلى الموافقة على تلقي رسائل البريد الإلكتروني المستقبلية منك.',
'resubscribe' => 'إعادة الاشتراك',
'subscribe' => 'يشترك',
'subscribe_help' => 'أنت مشترك حاليًا وستستمر في تلقي اتصالات البريد الإلكتروني.',
'unsubscribe_help' => 'أنت غير مشترك حاليًا، وبالتالي لن تتلقى رسائل بريد إلكتروني في الوقت الحالي.',
'notification_purchase_order_bounced' => 'لم نتمكن من تسليم طلب الشراء :invoice إلى :contact .<br><br> :error',
'notification_purchase_order_bounced_subject' => 'غير قادر على تسليم أمر الشراء :invoice',
'show_pdfhtml_on_mobile' => 'عرض إصدار HTML للكيان عند العرض على الهاتف المحمول',
'show_pdfhtml_on_mobile_help' => 'لتحسين التصور، يتم عرض نسخة HTML من الفاتورة/عرض الأسعار عند عرضها على الهاتف المحمول.',
'please_select_an_invoice_or_credit' => 'الرجاء تحديد فاتورة أو رصيد',
'mobile_version' => 'اصدار المحمول',
'venmo' => 'فينمو',
'my_bank' => 'بنكي',
'pay_later' => 'ادفع لاحقا',
'local_domain' => 'المجال المحلي',
'verify_peer' => 'التحقق من النظير',
'nordigen_help' => 'ملاحظة: يتطلب ربط حساب مفتاح GoCardless/Nordigen API',
'ar_detailed' => 'حسابات القبض مفصلة',
'ar_summary' => 'ملخص حسابات القبض',
'client_sales' => 'مبيعات العملاء',
'user_sales' => 'مبيعات المستخدم',
'iframe_url' => 'عنوان URL لإطار iFrame',
'user_unsubscribed' => 'تم إلغاء اشتراك المستخدم من رسائل البريد الإلكتروني :link',
'use_available_payments' => 'استخدم المدفوعات المتاحة',
'test_email_sent' => 'تم إرسال البريد الإلكتروني بنجاح',
'gateway_type' => 'نوع البوابة',
'save_template_body' => 'هل ترغب في حفظ تعيين الاستيراد هذا كقالب لاستخدامه في المستقبل؟',
'save_as_template' => 'حفظ تعيين القالب'
);
return $lang;

View File

@ -507,8 +507,8 @@ $lang = array(
'auto_wrap' => 'Automatischer Zeilenumbruch',
'duplicate_post' => 'Achtung: Die vorherige Seite wurde zweimal übermittelt. Die zweite Übermittlung wurde ignoriert.',
'view_documentation' => 'Dokumentation anzeigen',
'app_title' => 'Free Online Invoicing',
'app_description' => 'Invoice Ninja is a free, open-code solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
'app_title' => 'Kostenlose Online-Rechnung',
'app_description' => 'Invoice Ninja ist eine kostenlose Open-Code-Lösung für die Rechnungsstellung und Abrechnung mit Kunden. Mit Invoice Ninja können Sie ganz einfach schöne Rechnungen erstellen und versenden, von jedem Gerät aus, das Zugriff auf das Internet hat. Ihre Kunden können Ihre Rechnungen ausdrucken, als PDF-Dateien herunterladen und sogar online über das System bezahlen.',
'rows' => 'Zeilen',
'www' => 'www',
'logo' => 'Logo',
@ -1902,7 +1902,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'require_quote_signature_help' => 'Erfordern Sie die Unterschrift des Kunden bei Angeboten.',
'i_agree' => 'Ich stimme den Bedingungen zu',
'sign_here' => 'Bitte unterschreiben Sie hier:',
'sign_here_ux_tip' => 'Use the mouse or your touchpad to trace your signature.',
'sign_here_ux_tip' => 'Verwenden Sie die Maus oder Ihr Touchpad, um Ihre Signatur nachzuzeichnen.',
'authorization' => 'Genehmigung',
'signed' => 'unterzeichnet',
@ -3011,7 +3011,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'hosted_login' => 'Hosted Login',
'selfhost_login' => 'Selfhost Login',
'google_login' => 'Google Login',
'thanks_for_patience' => 'Thank for your patience while we work to implement these features.<br><br>We hope to have them completed in the next few months.<br><br>Until then we\'ll continue to support the',
'thanks_for_patience' => 'Vielen Dank für Ihre Geduld, während wir an der Implementierung dieser Funktionen arbeiten.<br><br> Wir hoffen, sie in den nächsten Monaten fertigstellen zu können.<br><br> Bis dahin unterstützen wir weiterhin die',
'legacy_mobile_app' => 'legacy Mobile App',
'today' => 'Heute',
'current' => 'Aktuell',
@ -3329,7 +3329,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
'credit_number_counter' => 'Gutschriftnummernzähler',
'reset_counter_date' => 'Zählerdatum zurücksetzen',
'counter_padding' => 'Zähler-Innenabstand',
'shared_invoice_quote_counter' => 'Share Invoice/Quote Counter',
'shared_invoice_quote_counter' => 'Share Invoice/ Angebot / Kostenvoranschlag Counter',
'default_tax_name_1' => 'Standard-Steuername 1',
'default_tax_rate_1' => 'Standard-Steuersatz 1',
'default_tax_name_2' => 'Standard-Steuername 2',
@ -3870,7 +3870,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'cancellation_pending' => 'Kündigung in Bearbeitung! Wir melden uns bei Ihnen...',
'list_of_payments' => 'Liste der Zahlungen',
'payment_details' => 'Details zu der Zahlung',
'list_of_payment_invoices' => 'Associate invoices',
'list_of_payment_invoices' => 'Rechnungen zuordnen',
'list_of_payment_methods' => 'Liste der Zahlungsmethoden',
'payment_method_details' => 'Details zu der Zahlungsmethode',
'permanently_remove_payment_method' => 'Zahlungsmethode endgültig entfernen.',
@ -4219,7 +4219,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'direct_debit' => 'Lastschriftverfahren',
'clone_to_expense' => 'Klonen zu Ausgabe',
'checkout' => 'Kasse',
'acss' => 'ACSS Debit',
'acss' => 'ACSS-Lastschrift',
'invalid_amount' => 'Ungültiger Betrag. Nur Zahlen/Dezimalwerte.',
'client_payment_failure_body' => 'Zahlung für Rechnung :invoice for amount :amount fehlgeschlagen.',
'browser_pay' => 'Google Pay, Apple Pay, Microsoft Pay',
@ -4927,7 +4927,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'no_assigned_tasks' => 'Keine abzurechenden Aufgaben für diese Rechnung',
'authorization_failure' => 'Unzureichende Berechtigungen um diese Aktion auszuführen',
'authorization_sms_failure' => 'Bitte bestätigen Sie Ihr Konto um E-Mails zu versenden',
'white_label_body' => 'Thank you for purchasing a white label license. <br><br> Your license key is: <br><br> :license_key <br><br> You can manage your license here: https://invoiceninja.invoicing.co/client/login',
'white_label_body' => 'Vielen Dank, dass Sie eine White-Label-Lizenz erworben haben.<br><br> Ihr Lizenzschlüssel lautet:<br><br> :license_key<br><br> Sie können Ihre Lizenz hier verwalten: https://invoiceninja.invoicing.co/ Kunde /login',
'payment_type_Klarna' => 'Klarna',
'payment_type_Interac E Transfer' => 'Interac E-Übertragung',
'xinvoice_payable' => 'Zahlbar innerhalb von :payeddue Tagen netto bis :paydate',
@ -5092,7 +5092,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'region' => 'Region',
'county' => 'Landkreis',
'tax_details' => 'Steuerdetails',
'activity_10_online' => ':contact made payment :payment for invoice :invoice for :client',
'activity_10_online' => ':contact hat die Zahlung :payment für die Rechnung :invoice für :client geleistet',
'activity_10_manual' => ':user hat die Zahlung :payment für die Rechnung :invoice des Kunden :client eingegeben',
'default_payment_type' => 'Standard Zahlungsart',
'number_precision' => 'Genauigkeit der Nummern',
@ -5150,7 +5150,7 @@ Leistungsempfängers',
'payment_receipt' => 'Zahlungsbeleg #:number',
'load_template_description' => 'Das Template wird auf Folgendes angewendet:',
'run_template' => 'Template anwenden',
'statement_design' => 'Statement Design',
'statement_design' => 'Statement-Design',
'delivery_note_design' => 'Lieferschein Design',
'payment_receipt_design' => 'Zahlungsbeleg Design',
'payment_refund_design' => 'Gutschrift Design',
@ -5159,88 +5159,93 @@ Leistungsempfängers',
'view_extension' => 'Erweiterung ansehen',
'reactivate_email' => 'E-Mail reaktivieren',
'email_reactivated' => 'Email erfolgreich reaktiviert',
'template_help' => 'Enable using the design as a template',
'template_help' => 'Aktivieren Sie die Verwendung des Designs als Vorlage',
'quarter' => 'Quartal',
'item_description' => 'Item Description',
'task_item' => 'Task Item',
'record_state' => 'Record State',
'save_files_to_this_folder' => 'Save files to this folder',
'downloads_folder' => 'Downloads Folder',
'total_invoiced_quotes' => 'Invoiced Quotes',
'total_invoice_paid_quotes' => 'Invoice Paid Quotes',
'downloads_folder_does_not_exist' => 'The downloads folder does not exist :value',
'user_logged_in_notification' => 'User Logged in Notification',
'user_logged_in_notification_help' => 'Send an email when logging in from a new location',
'payment_email_all_contacts' => 'Payment Email To All Contacts',
'payment_email_all_contacts_help' => 'Sends the payment email to all contacts when enabled',
'item_description' => 'Artikelbeschreibung',
'task_item' => 'Aufgabe',
'record_state' => 'Aufnahmestatus',
'save_files_to_this_folder' => 'Speichern Sie Dateien in diesem Ordner',
'downloads_folder' => 'Downloads-Ordner',
'total_invoiced_quotes' => 'Angebote auf Rechnung',
'total_invoice_paid_quotes' => 'Auf Rechnung bezahlte Angebote',
'downloads_folder_does_not_exist' => 'Der Download-Ordner existiert nicht :value',
'user_logged_in_notification' => 'Benachrichtigung über angemeldeten Benutzer',
'user_logged_in_notification_help' => 'Senden Sie eine E-Mail, wenn Sie sich von einem neuen Standort aus anmelden',
'payment_email_all_contacts' => 'Zahlungs-E-Mail an alle Kontakte',
'payment_email_all_contacts_help' => 'Sendet die Zahlungs-E-Mail an alle Kontakte, wenn diese Option aktiviert ist',
'add_line' => 'Zeile hinzufügen',
'activity_139' => 'Expense :expense notification sent to :contact',
'vendor_notification_subject' => 'Confirmation of payment :amount sent to :vendor',
'vendor_notification_body' => 'Payment processed for :amount dated :payment_date. <br>[Transaction Reference: :transaction_reference]',
'receipt' => 'Receipt',
'charges' => 'Charges',
'activity_139' => 'Ausgabe :expense Benachrichtigung an :contact gesendet',
'vendor_notification_subject' => 'Zahlungsbestätigung :amount gesendet an :vendor',
'vendor_notification_body' => 'Zahlung für :amount vom :payment _date verarbeitet.<br> [Transaktionsreferenz: :transaction_reference ]',
'receipt' => 'Quittung',
'charges' => 'Gebühren',
'email_report' => 'E-Mail-Bericht',
'payment_type_Pay Later' => 'Später bezahlen',
'payment_type_credit' => 'Payment Type Credit',
'payment_type_debit' => 'Payment Type Debit',
'payment_type_credit' => 'Zahlungsart Gutschrift',
'payment_type_debit' => 'Zahlungsart Lastschrift',
'send_emails_to' => 'Sende E-Mails an',
'primary_contact' => 'Primärkontakt',
'all_contacts' => 'Alle Kontakte',
'insert_below' => 'Darunter einfügen',
'nordigen_handler_subtitle' => 'Bank account authentication. Selecting your institution to complete the request with your account credentials.',
'nordigen_handler_subtitle' => 'Authentifizierung des Bankkontos. Wählen Sie Ihre Institution aus, um die Anfrage mit Ihren Kontoanmeldeinformationen abzuschließen.',
'nordigen_handler_error_heading_unknown' => 'Ein Fehler ist aufgetreten',
'nordigen_handler_error_contents_unknown' => 'Ein unbekannter Fehler ist aufgetreten. Grund:',
'nordigen_handler_error_heading_token_invalid' => 'Ungültiges Token',
'nordigen_handler_error_contents_token_invalid' => 'The provided token was invalid. Contact support for help, if this issue persists.',
'nordigen_handler_error_contents_token_invalid' => 'Das bereitgestellte Token war ungültig. Wenn das Problem weiterhin besteht, wenden Sie sich an den Support.',
'nordigen_handler_error_heading_account_config_invalid' => 'Fehlende Zugangsdaten',
'nordigen_handler_error_contents_account_config_invalid' => 'Invalid or missing credentials for Gocardless Bank Account Data. Contact support for help, if this issue persists.',
'nordigen_handler_error_contents_account_config_invalid' => 'Ungültige oder fehlende Zugangsdaten für Gocardless Bankverbindung . Wenn das Problem weiterhin besteht, wenden Sie sich an den Support.',
'nordigen_handler_error_heading_not_available' => 'Nicht verfügbar',
'nordigen_handler_error_contents_not_available' => 'Funktion ist nur im Enterprise-Tarif verfügbar.',
'nordigen_handler_error_heading_institution_invalid' => 'Invalid Institution',
'nordigen_handler_error_contents_institution_invalid' => 'The provided institution-id is invalid or no longer valid.',
'nordigen_handler_error_heading_institution_invalid' => 'Ungültige Institution',
'nordigen_handler_error_contents_institution_invalid' => 'Die angegebene Institutions-ID ist ungültig oder nicht mehr gültig.',
'nordigen_handler_error_heading_ref_invalid' => 'Ungültige Referenz',
'nordigen_handler_error_contents_ref_invalid' => 'GoCardless did not provide a valid reference. Please run flow again and contact support, if this issue persists.',
'nordigen_handler_error_heading_not_found' => 'Invalid Requisition',
'nordigen_handler_error_contents_not_found' => 'GoCardless did not provide a valid reference. Please run flow again and contact support, if this issue persists.',
'nordigen_handler_error_heading_requisition_invalid_status' => 'Not Ready',
'nordigen_handler_error_contents_requisition_invalid_status' => 'You called this site too early. Please finish authorization and refresh this page. Contact support for help, if this issue persists.',
'nordigen_handler_error_heading_requisition_no_accounts' => 'No Accounts selected',
'nordigen_handler_error_contents_requisition_no_accounts' => 'The service has not returned any valid accounts. Considder restarting the flow.',
'nordigen_handler_restart' => 'Restart flow.',
'nordigen_handler_return' => 'Return to application.',
'lang_Lao' => 'Lao',
'currency_lao_kip' => 'Lao kip',
'yodlee_regions' => 'Regions: USA, UK, Australia & India',
'nordigen_regions' => 'Regions: Europe & UK',
'select_provider' => 'Select Provider',
'nordigen_requisition_subject' => 'Requisition expired, please reauthenticate.',
'nordigen_requisition_body' => 'Access to bank account feeds has expired as set in End User Agreement. <br><br>Please log into Invoice Ninja and re-authenticate with your banks to continue receiving transactions.',
'participant' => 'Participant',
'participant_name' => 'Participant name',
'client_unsubscribed' => 'Client unsubscribed from emails.',
'client_unsubscribed_help' => 'Client :client has unsubscribed from your e-mails. The client needs to consent to receive future emails from you.',
'resubscribe' => 'Resubscribe',
'subscribe' => 'Subscribe',
'subscribe_help' => 'You are currently subscribed and will continue to receive email communications.',
'unsubscribe_help' => 'You are currently not subscribed, and therefore, will not receive emails at this time.',
'notification_purchase_order_bounced' => 'We were unable to deliver Purchase Order :invoice to :contact. <br><br> :error',
'notification_purchase_order_bounced_subject' => 'Unable to deliver Purchase Order :invoice',
'show_pdfhtml_on_mobile' => 'Display HTML version of entity when viewing on mobile',
'show_pdfhtml_on_mobile_help' => 'For improved visualization, displays a HTML version of the invoice/quote when viewing on mobile.',
'please_select_an_invoice_or_credit' => 'Please select an invoice or credit',
'nordigen_handler_error_contents_ref_invalid' => 'GoCardless hat keine gültige Referenz angegeben. Bitte führen Sie Flow erneut aus und wenden Sie sich an den Support, wenn das Problem weiterhin besteht.',
'nordigen_handler_error_heading_not_found' => 'Ungültige Anforderung',
'nordigen_handler_error_contents_not_found' => 'GoCardless hat keine gültige Referenz angegeben. Bitte führen Sie Flow erneut aus und wenden Sie sich an den Support, wenn das Problem weiterhin besteht.',
'nordigen_handler_error_heading_requisition_invalid_status' => 'Nicht bereit',
'nordigen_handler_error_contents_requisition_invalid_status' => 'Sie haben diese Seite zu früh aufgerufen. Bitte schließen Sie die Autorisierung ab und aktualisieren Sie diese Seite. Wenn das Problem weiterhin besteht, wenden Sie sich an den Support.',
'nordigen_handler_error_heading_requisition_no_accounts' => 'Keine Konten ausgewählt',
'nordigen_handler_error_contents_requisition_no_accounts' => 'Der Dienst hat keine gültigen Konten zurückgegeben. Erwägen Sie, den Flow neu zu starten.',
'nordigen_handler_restart' => 'Fluss neu starten.',
'nordigen_handler_return' => 'Zurück zur Bewerbung.',
'lang_Lao' => 'Laotisch',
'currency_lao_kip' => 'Laotischer Kip',
'yodlee_regions' => 'Regionen: USA, Großbritannien, Australien und Indien',
'nordigen_regions' => 'Regionen: Europa und Großbritannien',
'select_provider' => 'Wählen Sie Anbieter aus',
'nordigen_requisition_subject' => 'Die Anforderung ist abgelaufen. Bitte authentifizieren Sie sich erneut.',
'nordigen_requisition_body' => 'Der Zugriff auf Bankkonto-Feeds ist gemäß der Endbenutzervereinbarung abgelaufen.<br><br> Bitte melden Sie sich bei Invoice Ninja an und authentifizieren Sie sich erneut bei Ihren Banken, um weiterhin Transaktionen zu erhalten.',
'participant' => 'Teilnehmer',
'participant_name' => 'Teilnehmername',
'client_unsubscribed' => 'Kunde hat sich von E-Mails abgemeldet.',
'client_unsubscribed_help' => 'Kunde :client hat sich von Ihren E-Mails abgemeldet. Der Kunde muss zustimmen, künftige E-Mails von Ihnen zu erhalten.',
'resubscribe' => 'Abonnieren Sie erneut',
'subscribe' => 'Abonnieren',
'subscribe_help' => 'Sie sind derzeit angemeldet und erhalten weiterhin E-Mail-Mitteilungen.',
'unsubscribe_help' => 'Sie sind derzeit nicht abonniert und erhalten daher derzeit keine E-Mails.',
'notification_purchase_order_bounced' => 'Wir konnten die Bestellung :invoice nicht an :contact liefern.<br><br> :error',
'notification_purchase_order_bounced_subject' => 'Bestellung :invoice kann nicht geliefert werden',
'show_pdfhtml_on_mobile' => 'Zeigt die HTML-Version der Entität an, wenn sie auf Mobilgeräten angezeigt wird',
'show_pdfhtml_on_mobile_help' => 'Zur besseren Visualisierung wird bei der Anzeige auf Mobilgeräten eine HTML-Version der Rechnung/ Angebot / Kostenvoranschlag angezeigt.',
'please_select_an_invoice_or_credit' => 'Bitte wählen Sie eine Rechnung oder Gutschrift aus',
'mobile_version' => 'Mobile Version',
'venmo' => 'Venmo',
'my_bank' => 'MyBank',
'my_bank' => 'Meine Bank',
'pay_later' => 'Später Zahlen',
'local_domain' => 'Local Domain',
'verify_peer' => 'Verify Peer',
'nordigen_help' => 'Note: connecting an account requires a GoCardless/Nordigen API key',
'ar_detailed' => 'Accounts Receivable Detailed',
'ar_summary' => 'Accounts Receivable Summary',
'client_sales' => 'Client Sales',
'user_sales' => 'User Sales',
'iframe_url' => 'iFrame URL',
'user_unsubscribed' => 'User unsubscribed from emails :link',
'local_domain' => 'Lokale Domäne',
'verify_peer' => 'Peer überprüfen',
'nordigen_help' => 'Hinweis: Für die Verbindung eines Kontos ist ein GoCardless/Nordigen-API-Schlüssel erforderlich',
'ar_detailed' => 'Detaillierte Debitorenbuchhaltung',
'ar_summary' => 'Zusammenfassung der Debitorenbuchhaltung',
'client_sales' => 'Kunde',
'user_sales' => 'Benutzerverkäufe',
'iframe_url' => 'iFrame-URL',
'user_unsubscribed' => 'Der Benutzer hat die E-Mails :link abgemeldet',
'use_available_payments' => 'Verwenden Sie verfügbare Zahlungen',
'test_email_sent' => 'E-Mail erfolgreich gesendet',
'gateway_type' => 'Gateway-Typ',
'save_template_body' => 'Möchten Sie diese Importzuordnung als Vorlage für die zukünftige Verwendung speichern?',
'save_as_template' => 'Vorlagenzuordnung speichern'
);
return $lang;

View File

@ -5201,7 +5201,7 @@ $lang = array(
'nordigen_handler_error_heading_requisition_invalid_status' => 'Not Ready',
'nordigen_handler_error_contents_requisition_invalid_status' => 'You called this site too early. Please finish authorization and refresh this page. Contact support for help, if this issue persists.',
'nordigen_handler_error_heading_requisition_no_accounts' => 'No Accounts selected',
'nordigen_handler_error_contents_requisition_no_accounts' => 'The service has not returned any valid accounts. Considder restarting the flow.',
'nordigen_handler_error_contents_requisition_no_accounts' => 'The service has not returned any valid accounts. Consider restarting the flow.',
'nordigen_handler_restart' => 'Restart flow.',
'nordigen_handler_return' => 'Return to application.',
'lang_Lao' => 'Lao',
@ -5256,6 +5256,15 @@ $lang = array(
'save_as_template' => 'Save Template Mapping',
'checkout_only_for_existing_customers' => 'Checkout is enabled only for existing customers. Please login with existing account to checkout.',
'checkout_only_for_new_customers' => 'Checkout is enabled only for new customers. Please register a new account to checkout.',
'auto_bill_standard_invoices_help' => 'Auto bill standard invoices on the due date',
'auto_bill_on_help' => 'Auto bill on send date OR due date (recurring invoices)',
'use_available_credits_help' => 'Apply any credit balances to payments prior to charging a payment method',
'use_unapplied_payments' => 'Use unapplied payments',
'use_unapplied_payments_help' => 'Apply any payment balances prior to charging a payment method',
'payment_terms_help' => 'The number of days after the invoice date that payment is due',
'payment_type_help' => 'The default payment type to be used for payments',
'quote_valid_until' => 'The number of days that the quote is valid for',
'expense_payment_type' => 'The default expense payment type to be used',
);
return $lang;

View File

@ -506,8 +506,8 @@ $lang = array(
'auto_wrap' => 'Ajuste Automático de Línea',
'duplicate_post' => 'Advertencia: la página anterior fue enviada dos veces. El segundo envío ha sido ignorado.',
'view_documentation' => 'Ver Documentación',
'app_title' => 'Free Online Invoicing',
'app_description' => 'Invoice Ninja is a free, open-code solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
'app_title' => 'Facturación en línea gratuita',
'app_description' => 'Invoice Ninja es una solución gratuita de código abierto para facturar y facturar a los clientes. Con Invoice Ninja, puedes crear y enviar fácilmente hermosas facturas desde cualquier dispositivo que tenga acceso a la web. Sus clientes pueden imprimir sus facturas, descargarlas como archivos pdf e incluso pagarle en línea desde el sistema.',
'rows' => 'filas',
'www' => 'www',
'logo' => 'Logo',
@ -693,9 +693,9 @@ $lang = array(
'disable' => 'Deshabilitado',
'invoice_quote_number' => 'Números de Cotización y Factura',
'invoice_charges' => 'Cargos de Factura',
'notification_invoice_bounced' => 'We were unable to deliver Invoice :invoice to :contact. <br><br> :error',
'notification_invoice_bounced' => 'No pudimos entregar la factura :invoice a :contact .<br><br> :error',
'notification_invoice_bounced_subject' => 'No fue posible entregar la Factura :invoice',
'notification_quote_bounced' => 'We were unable to deliver Quote :invoice to :contact. <br><br> :error',
'notification_quote_bounced' => 'No pudimos entregar la cotización :invoice a :contact .<br><br> :error',
'notification_quote_bounced_subject' => 'No nos fue posible entregar la Cotización :invoice',
'custom_invoice_link' => 'Link Personalizado de Factura',
'total_invoiced' => 'Total Facturado',
@ -3009,7 +3009,7 @@ $lang = array(
'hosted_login' => 'Inicio de sesión alojado',
'selfhost_login' => 'Iniciar sesión',
'google_login' => 'Inicio de sesión de Google',
'thanks_for_patience' => 'Thank for your patience while we work to implement these features.<br><br>We hope to have them completed in the next few months.<br><br>Until then we\'ll continue to support the',
'thanks_for_patience' => 'Gracias por su paciencia mientras trabajamos para implementar estas funciones.<br><br> Esperamos tenerlos terminados en los próximos meses.<br><br> Hasta entonces seguiremos apoyando a la',
'legacy_mobile_app' => 'aplicación móvil heredada',
'today' => 'Hoy',
'current' => 'Actual',
@ -3867,7 +3867,7 @@ $lang = array(
'cancellation_pending' => 'Cancelación pendiente, ¡nos pondremos en contacto!',
'list_of_payments' => 'Lista de pagos',
'payment_details' => 'Detalles del pago',
'list_of_payment_invoices' => 'Associate invoices',
'list_of_payment_invoices' => 'Facturas asociadas',
'list_of_payment_methods' => 'Lista de métodos de pago',
'payment_method_details' => 'Detalles del método de pago',
'permanently_remove_payment_method' => 'Eliminar permanentemente este método de pago.',
@ -4924,7 +4924,7 @@ $lang = array(
'no_assigned_tasks' => 'No hay tareas facturables para este proyecto',
'authorization_failure' => 'Permisos insuficientes para realizar esta acción',
'authorization_sms_failure' => 'Por favor verifique su cuenta para enviar correos electrónicos.',
'white_label_body' => 'Thank you for purchasing a white label license. <br><br> Your license key is: <br><br> :license_key <br><br> You can manage your license here: https://invoiceninja.invoicing.co/client/login',
'white_label_body' => 'Gracias por adquirir una licencia de marca blanca.<br><br> Su clave de licencia es:<br><br> :license_key<br><br> Puedes gestionar tu licencia aquí: https://invoiceninja.invoicing.co/client/login',
'payment_type_Klarna' => 'Klarna',
'payment_type_Interac E Transfer' => 'Transferencia Interac E',
'xinvoice_payable' => 'Payable within :payeddue days net until :paydate',
@ -5119,7 +5119,7 @@ $lang = array(
'set_private' => 'Establecer privado',
'individual' => 'Individual',
'business' => 'Negocio',
'partnership' => 'Partnership',
'partnership' => 'Camaradería',
'trust' => 'Confianza',
'charity' => 'Caridad',
'government' => 'Gobierno',
@ -5210,32 +5210,37 @@ $lang = array(
'select_provider' => 'Seleccionar Proveedor',
'nordigen_requisition_subject' => 'La solicitud expiró, vuelva a autenticarse.',
'nordigen_requisition_body' => 'El acceso a los feeds de cuentas bancarias ha caducado según lo establecido en el Acuerdo de usuario final.<br><br> Inicie sesión en Invoice Ninja y vuelva a autenticarse con sus bancos para continuar recibiendo transacciones.',
'participant' => 'Participant',
'participant_name' => 'Participant name',
'client_unsubscribed' => 'Client unsubscribed from emails.',
'client_unsubscribed_help' => 'Client :client has unsubscribed from your e-mails. The client needs to consent to receive future emails from you.',
'resubscribe' => 'Resubscribe',
'subscribe' => 'Subscribe',
'subscribe_help' => 'You are currently subscribed and will continue to receive email communications.',
'unsubscribe_help' => 'You are currently not subscribed, and therefore, will not receive emails at this time.',
'notification_purchase_order_bounced' => 'We were unable to deliver Purchase Order :invoice to :contact. <br><br> :error',
'notification_purchase_order_bounced_subject' => 'Unable to deliver Purchase Order :invoice',
'show_pdfhtml_on_mobile' => 'Display HTML version of entity when viewing on mobile',
'show_pdfhtml_on_mobile_help' => 'For improved visualization, displays a HTML version of the invoice/quote when viewing on mobile.',
'please_select_an_invoice_or_credit' => 'Please select an invoice or credit',
'mobile_version' => 'Mobile Version',
'participant' => 'Partícipe',
'participant_name' => 'Nombre del participante',
'client_unsubscribed' => 'El cliente se dio de baja de los correos electrónicos.',
'client_unsubscribed_help' => 'El cliente :client se ha dado de baja de sus correos electrónicos. El cliente debe dar su consentimiento para recibir futuros correos electrónicos suyos.',
'resubscribe' => 'Volver a suscribirse',
'subscribe' => 'Suscribir',
'subscribe_help' => 'Actualmente está suscrito y seguirá recibiendo comunicaciones por correo electrónico.',
'unsubscribe_help' => 'Actualmente no estás suscrito y, por lo tanto, no recibirás correos electrónicos en este momento.',
'notification_purchase_order_bounced' => 'No pudimos entregar la orden de compra :invoice a :contact .<br><br> :error',
'notification_purchase_order_bounced_subject' => 'No se puede entregar la orden de compra :invoice',
'show_pdfhtml_on_mobile' => 'Mostrar la versión HTML de la entidad cuando se visualiza en un dispositivo móvil',
'show_pdfhtml_on_mobile_help' => 'Para una visualización mejorada, muestra una versión HTML de la factura/cotización cuando se visualiza en el dispositivo móvil.',
'please_select_an_invoice_or_credit' => 'Por favor seleccione una factura o crédito',
'mobile_version' => 'Version móvil',
'venmo' => 'Venmo',
'my_bank' => 'MyBank',
'pay_later' => 'Pay Later',
'local_domain' => 'Local Domain',
'verify_peer' => 'Verify Peer',
'nordigen_help' => 'Note: connecting an account requires a GoCardless/Nordigen API key',
'ar_detailed' => 'Accounts Receivable Detailed',
'ar_summary' => 'Accounts Receivable Summary',
'client_sales' => 'Client Sales',
'user_sales' => 'User Sales',
'iframe_url' => 'iFrame URL',
'user_unsubscribed' => 'User unsubscribed from emails :link',
'my_bank' => 'Mi banco',
'pay_later' => 'Paga después',
'local_domain' => 'Dominio local',
'verify_peer' => 'Verificar par',
'nordigen_help' => 'Nota: conectar una cuenta requiere una clave API de GoCardless/Nordigen',
'ar_detailed' => 'Cuentas por cobrar detalladas',
'ar_summary' => 'Resumen de cuentas por cobrar',
'client_sales' => 'Ventas al cliente',
'user_sales' => 'Ventas de usuarios',
'iframe_url' => 'URL del marco flotante',
'user_unsubscribed' => 'Usuario dado de baja de los correos electrónicos :link',
'use_available_payments' => 'Usar pagos disponibles',
'test_email_sent' => 'Correo electrónico enviado correctamente',
'gateway_type' => 'Tipo de puerta de enlace',
'save_template_body' => '¿Le gustaría guardar este mapeo de importación como plantilla para uso futuro?',
'save_as_template' => 'Guardar asignación de plantilla'
);
return $lang;

View File

@ -4921,7 +4921,7 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c
'no_assigned_tasks' => 'No hay tareas facturables para este proyecto',
'authorization_failure' => 'Permisos insuficientes para realizar esta acción',
'authorization_sms_failure' => 'Por favor verifique su cuenta para enviar correos electrónicos.',
'white_label_body' => 'Thank you for purchasing a white label license. <br><br> Your license key is: <br><br> :license_key <br><br> You can manage your license here: https://invoiceninja.invoicing.co/client/login',
'white_label_body' => 'Gracias por adquirir una licencia de marca blanca. <br><br> Su clave de licencia es: <br><br> :license_key <br><br> Puedes gestionar tu licencia aquí: https://invoiceninja.invoicing.co/client/login',
'payment_type_Klarna' => 'Klarna',
'payment_type_Interac E Transfer' => 'Interac E Transfer',
'xinvoice_payable' => 'Pagadero dentro de :payeddue días de pago vencido neto hasta :paydate',
@ -5234,6 +5234,11 @@ De lo contrario, este campo deberá dejarse en blanco.',
'user_sales' => 'Ventas de usuarios',
'iframe_url' => 'iFrame URL',
'user_unsubscribed' => 'Usuario dado de baja de los correos electrónicos :link',
'use_available_payments' => 'Usar pagos disponibles',
'test_email_sent' => 'Correo electrónico enviado correctamente',
'gateway_type' => 'Tipo de puerta de enlace',
'save_template_body' => '¿Le gustaría guardar este mapeo de importación como plantilla para uso futuro?',
'save_as_template' => 'Guardar asignación de plantilla'
);
return $lang;

View File

@ -506,8 +506,8 @@ $lang = array(
'auto_wrap' => 'Retour à la ligne automatique',
'duplicate_post' => 'Attention: la page précédente a été soumise deux fois. La deuxième soumission a été ignorée.',
'view_documentation' => 'Voir documentation',
'app_title' => 'Free Online Invoicing',
'app_description' => 'Invoice Ninja is a free, open-code solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
'app_title' => 'Facturation en ligne gratuite',
'app_description' => 'Invoice Ninja est une solution gratuite et à code ouvert pour la facturation et la facturation des clients. Avec Invoice Ninja, vous pouvez facilement créer et envoyer de belles factures depuis n&#39;importe quel appareil ayant accès au Web. Vos clients peuvent imprimer vos factures, les télécharger sous forme de fichiers PDF et même vous payer en ligne depuis le système.',
'rows' => 'lignes',
'www' => 'www',
'logo' => 'Logo',
@ -693,9 +693,9 @@ $lang = array(
'disable' => 'Désactiver',
'invoice_quote_number' => 'Numéro des devis & factures',
'invoice_charges' => 'Majoration de facture',
'notification_invoice_bounced' => 'We were unable to deliver Invoice :invoice to :contact. <br><br> :error',
'notification_invoice_bounced' => 'Nous n&#39;avons pas pu transmettre la facture :invoice à :contact .<br><br> :error',
'notification_invoice_bounced_subject' => 'Impossible d\'envoyer la facture :invoice',
'notification_quote_bounced' => 'We were unable to deliver Quote :invoice to :contact. <br><br> :error',
'notification_quote_bounced' => 'Nous n&#39;avons pas pu transmettre le devis :invoice à :contact .<br><br> :error',
'notification_quote_bounced_subject' => 'Impossible d\'envoyer le devis :invoice',
'custom_invoice_link' => 'Personnaliser le lien de la facture',
'total_invoiced' => 'Total facturé',
@ -3010,7 +3010,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'hosted_login' => 'Authentification Hosted',
'selfhost_login' => 'Authentification Selfhost',
'google_login' => 'Authentification Google',
'thanks_for_patience' => 'Thank for your patience while we work to implement these features.<br><br>We hope to have them completed in the next few months.<br><br>Until then we\'ll continue to support the',
'thanks_for_patience' => 'Merci de votre patience pendant que nous travaillons à la mise en œuvre de ces fonctionnalités.<br><br> Nous espérons les terminer dans les prochains mois.<br><br> D&#39;ici là, nous continuerons à soutenir le',
'legacy_mobile_app' => 'Ancienne App mobile',
'today' => 'Aujourd\'hui',
'current' => 'Actuel',
@ -3868,7 +3868,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'cancellation_pending' => 'Annulation en cours, nous vous contacterons !',
'list_of_payments' => 'Liste des paiements',
'payment_details' => 'Détails du paiement',
'list_of_payment_invoices' => 'Associate invoices',
'list_of_payment_invoices' => 'Factures associées',
'list_of_payment_methods' => 'Liste des moyens de paiement',
'payment_method_details' => 'Détails du mode de paiement',
'permanently_remove_payment_method' => 'Supprimer définitivement ce mode de paiement.',
@ -4925,7 +4925,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'no_assigned_tasks' => 'Aucune tâche facturable pour ce projet',
'authorization_failure' => 'Autorisations insuffisantes pour effectuer cette action',
'authorization_sms_failure' => 'Veuillez vérifier votre compte pour envoyer des e-mails.',
'white_label_body' => 'Thank you for purchasing a white label license. <br><br> Your license key is: <br><br> :license_key <br><br> You can manage your license here: https://invoiceninja.invoicing.co/client/login',
'white_label_body' => 'Merci d&#39;avoir acheté une licence en marque blanche.<br><br> Votre clé de licence est :<br><br> :license_key<br><br> Vous pouvez gérer votre licence ici : https://invoiceninja.invoicing.co/client/login',
'payment_type_Klarna' => 'Klarna',
'payment_type_Interac E Transfer' => 'Virement Interac E',
'xinvoice_payable' => 'Payable sous :payeddue days net jusqu\'au :paydate',
@ -5090,7 +5090,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'region' => 'Région',
'county' => 'Comté',
'tax_details' => 'Détails fiscaux',
'activity_10_online' => ':contact made payment :payment for invoice :invoice for :client',
'activity_10_online' => ':contact a effectué le paiement :payment pour la facture :invoice pour :client',
'activity_10_manual' => ':user a saisi le paiement :payment pour la facture :invoice pour :client',
'default_payment_type' => 'Type de paiement par défaut',
'number_precision' => 'Précision du nombre',
@ -5120,7 +5120,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'set_private' => 'Définir comme privé',
'individual' => 'Individuel',
'business' => 'Entreprise',
'partnership' => 'Partnership',
'partnership' => 'Partenariat',
'trust' => 'Confiance',
'charity' => 'Charité',
'government' => 'Gouvernement',
@ -5204,39 +5204,44 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'nordigen_handler_error_contents_requisition_no_accounts' => 'Le service n&#39;a renvoyé aucun compte valide. Pensez à redémarrer le flux.',
'nordigen_handler_restart' => 'Redémarrez le flux.',
'nordigen_handler_return' => 'Retour à la candidature.',
'lang_Lao' => 'Lao',
'currency_lao_kip' => 'Lao kip',
'yodlee_regions' => 'Regions: USA, UK, Australia & India',
'nordigen_regions' => 'Regions: Europe & UK',
'select_provider' => 'Select Provider',
'nordigen_requisition_subject' => 'Requisition expired, please reauthenticate.',
'nordigen_requisition_body' => 'Access to bank account feeds has expired as set in End User Agreement. <br><br>Please log into Invoice Ninja and re-authenticate with your banks to continue receiving transactions.',
'lang_Lao' => 'Laotien',
'currency_lao_kip' => 'Kip laotien',
'yodlee_regions' => 'Régions : États-Unis, Royaume-Uni, Australie et Inde',
'nordigen_regions' => 'Régions : Europe et Royaume-Uni',
'select_provider' => 'Sélectionnez le fournisseur',
'nordigen_requisition_subject' => 'La demande a expiré, veuillez vous authentifier à nouveau.',
'nordigen_requisition_body' => 'L&#39;accès aux flux des comptes bancaires a expiré comme indiqué dans le Contrat de l&#39;utilisateur final.<br><br> Veuillez vous connecter à Invoice Ninja et vous authentifier à nouveau auprès de vos banques pour continuer à recevoir des transactions.',
'participant' => 'Participant',
'participant_name' => 'Participant name',
'client_unsubscribed' => 'Client unsubscribed from emails.',
'client_unsubscribed_help' => 'Client :client has unsubscribed from your e-mails. The client needs to consent to receive future emails from you.',
'resubscribe' => 'Resubscribe',
'subscribe' => 'Subscribe',
'subscribe_help' => 'You are currently subscribed and will continue to receive email communications.',
'unsubscribe_help' => 'You are currently not subscribed, and therefore, will not receive emails at this time.',
'notification_purchase_order_bounced' => 'We were unable to deliver Purchase Order :invoice to :contact. <br><br> :error',
'notification_purchase_order_bounced_subject' => 'Unable to deliver Purchase Order :invoice',
'show_pdfhtml_on_mobile' => 'Display HTML version of entity when viewing on mobile',
'show_pdfhtml_on_mobile_help' => 'For improved visualization, displays a HTML version of the invoice/quote when viewing on mobile.',
'please_select_an_invoice_or_credit' => 'Please select an invoice or credit',
'mobile_version' => 'Mobile Version',
'participant_name' => 'Nom du participant',
'client_unsubscribed' => 'Client désabonné des e-mails.',
'client_unsubscribed_help' => 'Le client :client s&#39;est désabonné de vos e-mails. Le client doit consentir à recevoir de futurs e-mails de votre part.',
'resubscribe' => 'Réabonnez-vous',
'subscribe' => 'S&#39;abonner',
'subscribe_help' => 'Vous êtes actuellement abonné et continuerez à recevoir des communications par courrier électronique.',
'unsubscribe_help' => 'Vous n&#39;êtes actuellement pas abonné et ne recevrez donc pas d&#39;e-mails pour le moment.',
'notification_purchase_order_bounced' => 'Nous n&#39;avons pas pu livrer le bon de commande :invoice à :contact .<br><br> :error',
'notification_purchase_order_bounced_subject' => 'Impossible de livrer le bon de commande :invoice',
'show_pdfhtml_on_mobile' => 'Afficher la version HTML de l&#39;entité lors de la visualisation sur mobile',
'show_pdfhtml_on_mobile_help' => 'Pour une visualisation améliorée, affiche une version HTML de la facture/devis lors de la visualisation sur mobile.',
'please_select_an_invoice_or_credit' => 'Veuillez sélectionner une facture ou un crédit',
'mobile_version' => 'Version mobile',
'venmo' => 'Venmo',
'my_bank' => 'MyBank',
'pay_later' => 'Pay Later',
'local_domain' => 'Local Domain',
'verify_peer' => 'Verify Peer',
'nordigen_help' => 'Note: connecting an account requires a GoCardless/Nordigen API key',
'ar_detailed' => 'Accounts Receivable Detailed',
'ar_summary' => 'Accounts Receivable Summary',
'client_sales' => 'Client Sales',
'user_sales' => 'User Sales',
'iframe_url' => 'iFrame URL',
'user_unsubscribed' => 'User unsubscribed from emails :link',
'my_bank' => 'Ma banque',
'pay_later' => 'Payer plus tard',
'local_domain' => 'Domaine local',
'verify_peer' => 'Vérifier le pair',
'nordigen_help' => 'Remarque : la connexion d&#39;un compte nécessite une clé API GoCardless/Nordigen',
'ar_detailed' => 'Comptes clients détaillés',
'ar_summary' => 'Sommaire des comptes clients',
'client_sales' => 'Ventes clients',
'user_sales' => 'Ventes aux utilisateurs',
'iframe_url' => 'URL iFrame',
'user_unsubscribed' => 'Utilisateur désabonné des e-mails :link',
'use_available_payments' => 'Utiliser les paiements disponibles',
'test_email_sent' => 'E-mail envoyé avec succès',
'gateway_type' => 'Type de passerelle',
'save_template_body' => 'Souhaitez-vous enregistrer ce mappage dimportation en tant que modèle pour une utilisation future ?',
'save_as_template' => 'Enregistrer le mappage de modèle'
);
return $lang;

View File

@ -5238,6 +5238,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'test_email_sent' => 'Le courriel a été envoyé',
'gateway_type' => 'Type de passerelle',
'save_template_body' => 'Souhaitez-vous enregistrer cette correspondance d\'importation en tant que modèle pour une utilisation future ?',
'save_as_template' => 'Enregistrer la correspondance de modèle'
);
return $lang;

View File

@ -506,8 +506,8 @@ $lang = array(
'auto_wrap' => 'Retour à la ligne automatique',
'duplicate_post' => 'Avertissement: la page précédente a été envoyée deux fois. Le deuxième envoi a été ignoré.',
'view_documentation' => 'Voir la documentation',
'app_title' => 'Free Online Invoicing',
'app_description' => 'Invoice Ninja is a free, open-code solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
'app_title' => 'Facturation en ligne gratuite',
'app_description' => 'Invoice Ninja est une solution gratuite et à code ouvert pour la facturation et la facturation des clients. Avec Invoice Ninja, vous pouvez facilement créer et envoyer de belles factures depuis n&#39;importe quel appareil ayant accès au Web. Vos clients peuvent imprimer vos factures, les télécharger sous forme de fichiers PDF et même vous payer en ligne depuis le système.',
'rows' => 'lignes',
'www' => 'www',
'logo' => 'Logo',
@ -693,9 +693,9 @@ $lang = array(
'disable' => 'Désactiver',
'invoice_quote_number' => 'Numéro des offres & factures',
'invoice_charges' => 'Suppléments de facture',
'notification_invoice_bounced' => 'We were unable to deliver Invoice :invoice to :contact. <br><br> :error',
'notification_invoice_bounced' => 'Nous n&#39;avons pas pu transmettre la facture :invoice à :contact .<br><br> :error',
'notification_invoice_bounced_subject' => 'Impossible d\'envoyer la facture :invoice',
'notification_quote_bounced' => 'We were unable to deliver Quote :invoice to :contact. <br><br> :error',
'notification_quote_bounced' => 'Nous n&#39;avons pas pu transmettre le devis :invoice à :contact .<br><br> :error',
'notification_quote_bounced_subject' => 'Impossible d\'envoyer l\'offre :invoice',
'custom_invoice_link' => 'Lien de facture personnalisé',
'total_invoiced' => 'Total facturé',
@ -3007,7 +3007,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'hosted_login' => 'Connexion hébergée',
'selfhost_login' => 'Connexion autohébergée',
'google_login' => 'Connexion Google',
'thanks_for_patience' => 'Thank for your patience while we work to implement these features.<br><br>We hope to have them completed in the next few months.<br><br>Until then we\'ll continue to support the',
'thanks_for_patience' => 'Merci de votre patience pendant que nous travaillons à la mise en œuvre de ces fonctionnalités.<br><br> Nous espérons les terminer dans les prochains mois.<br><br> D&#39;ici là, nous continuerons à soutenir le',
'legacy_mobile_app' => 'Ancienne App mobile',
'today' => 'Aujourd\'hui',
'current' => 'En cours',
@ -3865,7 +3865,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'cancellation_pending' => 'Annulation en attente. Nous vous tiendrons au courant.',
'list_of_payments' => 'Liste des paiements',
'payment_details' => 'Détails du paiement',
'list_of_payment_invoices' => 'Associate invoices',
'list_of_payment_invoices' => 'Factures associées',
'list_of_payment_methods' => 'Liste des modes de paiement',
'payment_method_details' => 'Détails du mode de paiement',
'permanently_remove_payment_method' => 'Supprimer de façon définitive ce mode de paiement',
@ -4922,7 +4922,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'no_assigned_tasks' => 'Aucune intervetion facturable pour ce projet',
'authorization_failure' => 'Insufficient permissions to perform this action',
'authorization_sms_failure' => 'Please verify your account to send emails.',
'white_label_body' => 'Thank you for purchasing a white label license. <br><br> Your license key is: <br><br> :license_key <br><br> You can manage your license here: https://invoiceninja.invoicing.co/client/login',
'white_label_body' => 'Merci d&#39;avoir acheté une licence en marque blanche.<br><br> Votre clé de licence est :<br><br> :license_key<br><br> Vous pouvez gérer votre licence ici : https://invoiceninja.invoicing.co/client/login',
'payment_type_Klarna' => 'Klarna',
'payment_type_Interac E Transfer' => 'Interac E Transfer',
'xinvoice_payable' => 'Payable sous :payeddue jours net jusqu&#39;à :paydate',
@ -5117,7 +5117,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'set_private' => 'Définir comme privé',
'individual' => 'Individuel',
'business' => 'Entreprise',
'partnership' => 'Partnership',
'partnership' => 'Partenariat',
'trust' => 'Confiance',
'charity' => 'Charité',
'government' => 'Gouvernement',
@ -5201,39 +5201,44 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'nordigen_handler_error_contents_requisition_no_accounts' => 'Le service n&#39;a renvoyé aucun compte valide. Pensez à redémarrer le flux.',
'nordigen_handler_restart' => 'Redémarrez le flux.',
'nordigen_handler_return' => 'Retour à la candidature.',
'lang_Lao' => 'Lao',
'currency_lao_kip' => 'Lao kip',
'yodlee_regions' => 'Regions: USA, UK, Australia & India',
'nordigen_regions' => 'Regions: Europe & UK',
'select_provider' => 'Select Provider',
'nordigen_requisition_subject' => 'Requisition expired, please reauthenticate.',
'nordigen_requisition_body' => 'Access to bank account feeds has expired as set in End User Agreement. <br><br>Please log into Invoice Ninja and re-authenticate with your banks to continue receiving transactions.',
'lang_Lao' => 'Laotien',
'currency_lao_kip' => 'Kip laotien',
'yodlee_regions' => 'Régions : États-Unis, Royaume-Uni, Australie et Inde',
'nordigen_regions' => 'Régions : Europe et Royaume-Uni',
'select_provider' => 'Sélectionnez le fournisseur',
'nordigen_requisition_subject' => 'La demande a expiré, veuillez vous authentifier à nouveau.',
'nordigen_requisition_body' => 'L&#39;accès aux flux des comptes bancaires a expiré comme indiqué dans le Contrat de l&#39;utilisateur final.<br><br> Veuillez vous connecter à Invoice Ninja et vous authentifier à nouveau auprès de vos banques pour continuer à recevoir des transactions.',
'participant' => 'Participant',
'participant_name' => 'Participant name',
'client_unsubscribed' => 'Client unsubscribed from emails.',
'client_unsubscribed_help' => 'Client :client has unsubscribed from your e-mails. The client needs to consent to receive future emails from you.',
'resubscribe' => 'Resubscribe',
'subscribe' => 'Subscribe',
'subscribe_help' => 'You are currently subscribed and will continue to receive email communications.',
'unsubscribe_help' => 'You are currently not subscribed, and therefore, will not receive emails at this time.',
'notification_purchase_order_bounced' => 'We were unable to deliver Purchase Order :invoice to :contact. <br><br> :error',
'notification_purchase_order_bounced_subject' => 'Unable to deliver Purchase Order :invoice',
'show_pdfhtml_on_mobile' => 'Display HTML version of entity when viewing on mobile',
'show_pdfhtml_on_mobile_help' => 'For improved visualization, displays a HTML version of the invoice/quote when viewing on mobile.',
'please_select_an_invoice_or_credit' => 'Please select an invoice or credit',
'mobile_version' => 'Mobile Version',
'participant_name' => 'Nom du participant',
'client_unsubscribed' => 'Client désabonné des e-mails.',
'client_unsubscribed_help' => 'Le client :client s&#39;est désabonné de vos e-mails. Le client doit consentir à recevoir de futurs e-mails de votre part.',
'resubscribe' => 'Réabonnez-vous',
'subscribe' => 'S&#39;abonner',
'subscribe_help' => 'Vous êtes actuellement abonné et continuerez à recevoir des communications par courrier électronique.',
'unsubscribe_help' => 'Vous n&#39;êtes actuellement pas abonné et ne recevrez donc pas d&#39;e-mails pour le moment.',
'notification_purchase_order_bounced' => 'Nous n&#39;avons pas pu livrer le bon de commande :invoice à :contact .<br><br> :error',
'notification_purchase_order_bounced_subject' => 'Impossible de livrer le bon de commande :invoice',
'show_pdfhtml_on_mobile' => 'Afficher la version HTML de l&#39;entité lors de la visualisation sur mobile',
'show_pdfhtml_on_mobile_help' => 'Pour une visualisation améliorée, affiche une version HTML de la facture/devis lors de la visualisation sur mobile.',
'please_select_an_invoice_or_credit' => 'Veuillez sélectionner une facture ou un crédit',
'mobile_version' => 'Version mobile',
'venmo' => 'Venmo',
'my_bank' => 'MyBank',
'pay_later' => 'Pay Later',
'local_domain' => 'Local Domain',
'verify_peer' => 'Verify Peer',
'nordigen_help' => 'Note: connecting an account requires a GoCardless/Nordigen API key',
'ar_detailed' => 'Accounts Receivable Detailed',
'ar_summary' => 'Accounts Receivable Summary',
'client_sales' => 'Client Sales',
'user_sales' => 'User Sales',
'iframe_url' => 'iFrame URL',
'user_unsubscribed' => 'User unsubscribed from emails :link',
'my_bank' => 'Ma banque',
'pay_later' => 'Payer plus tard',
'local_domain' => 'Domaine local',
'verify_peer' => 'Vérifier le pair',
'nordigen_help' => 'Remarque : la connexion d&#39;un compte nécessite une clé API GoCardless/Nordigen',
'ar_detailed' => 'Comptes clients détaillés',
'ar_summary' => 'Sommaire des comptes clients',
'client_sales' => 'Ventes clients',
'user_sales' => 'Ventes aux utilisateurs',
'iframe_url' => 'URL iFrame',
'user_unsubscribed' => 'Utilisateur désabonné des e-mails :link',
'use_available_payments' => 'Utiliser les paiements disponibles',
'test_email_sent' => 'E-mail envoyé avec succès',
'gateway_type' => 'Type de passerelle',
'save_template_body' => 'Souhaitez-vous enregistrer ce mappage dimportation en tant que modèle pour une utilisation future ?',
'save_as_template' => 'Enregistrer le mappage de modèle'
);
return $lang;

View File

@ -504,8 +504,8 @@ $lang = array(
'auto_wrap' => 'Auto Line Wrap',
'duplicate_post' => 'אזהרה: העמוד הקודם נשמר פעמיים, השמירה השנייה לא בוצעה',
'view_documentation' => 'צפיה במדריכים',
'app_title' => 'Free Online Invoicing',
'app_description' => 'Invoice Ninja is a free, open-code solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
'app_title' => 'חשבונית מקוונת בחינם',
'app_description' => 'Invoice Ninja הוא פתרון חינמי בקוד פתוח ללקוחות חשבוניות וחיובים. עם Invoice Ninja, אתה יכול בקלות לבנות ולשלוח חשבוניות יפות מכל מכשיר שיש לו גישה לאינטרנט. הלקוחות שלך יכולים להדפיס את החשבוניות שלך, להוריד אותן כקבצי PDF, ואפילו לשלם לך באינטרנט מתוך המערכת.',
'rows' => 'שורות',
'www' => 'www',
'logo' => 'לוגו',
@ -691,9 +691,9 @@ $lang = array(
'disable' => 'השבת',
'invoice_quote_number' => 'מספרי חשבוניות והצעות מחיר',
'invoice_charges' => 'חשבוניות חיובים נוספים',
'notification_invoice_bounced' => 'We were unable to deliver Invoice :invoice to :contact. <br><br> :error',
'notification_invoice_bounced' => 'לא הצלחנו לספק חשבונית :invoice ל- :contact .<br><br> :error',
'notification_invoice_bounced_subject' => 'שליחת חשבונית נכשלה: חשבונית',
'notification_quote_bounced' => 'We were unable to deliver Quote :invoice to :contact. <br><br> :error',
'notification_quote_bounced' => 'לא הצלחנו לספק ציטוט :invoice ל- :contact .<br><br> :error',
'notification_quote_bounced_subject' => 'שליחת הצעת המחיר נכשלה: חשבונית',
'custom_invoice_link' => 'לינק מותאם אישית לחשבונית',
'total_invoiced' => 'סה"כ חשבוניות נשלחו',
@ -3008,7 +3008,7 @@ $lang = array(
'hosted_login' => 'התחברות מתארח',
'selfhost_login' => 'Selfhost התחברות',
'google_login' => 'Google Login',
'thanks_for_patience' => 'Thank for your patience while we work to implement these features.<br><br>We hope to have them completed in the next few months.<br><br>Until then we\'ll continue to support the',
'thanks_for_patience' => 'תודה על הסבלנות שלך בזמן שאנו עובדים על יישום התכונות הללו.<br><br> אנו מקווים להשלים אותם בחודשים הקרובים.<br><br> עד אז נמשיך לתמוך ב',
'legacy_mobile_app' => 'אפליקציה סלולרית מדור קודם',
'today' => 'היום',
'current' => 'נוֹכְחִי',
@ -3866,7 +3866,7 @@ $lang = array(
'cancellation_pending' => 'הביטול בהמתנה, ניצור איתך קשר!',
'list_of_payments' => 'רשימת תשלומים',
'payment_details' => 'פרטי התשלום',
'list_of_payment_invoices' => 'Associate invoices',
'list_of_payment_invoices' => 'חשבוניות שייך',
'list_of_payment_methods' => 'רשימת אמצעי תשלום',
'payment_method_details' => 'פרטים על אמצעי תשלום',
'permanently_remove_payment_method' => 'הסר לצמיתות את אמצעי התשלום הזה.',
@ -4923,7 +4923,7 @@ $lang = array(
'no_assigned_tasks' => 'אין משימות שניתנות לחיוב עבור הפרויקט הזה',
'authorization_failure' => 'אין מספיק הרשאות לביצוע פעולה זו',
'authorization_sms_failure' => 'אנא אמת את חשבונך כדי לשלוח אימיילים.',
'white_label_body' => 'Thank you for purchasing a white label license. <br><br> Your license key is: <br><br> :license_key <br><br> You can manage your license here: https://invoiceninja.invoicing.co/client/login',
'white_label_body' => 'תודה שרכשת רישיון לבן תווית.<br><br> מפתח הרישיון שלך הוא:<br><br> :license_key<br><br> אתה יכול לנהל את הרישיון שלך כאן: https://invoiceninja.invoicing.co/client/login',
'payment_type_Klarna' => 'קלרנה',
'payment_type_Interac E Transfer' => 'Interac E Transfer',
'xinvoice_payable' => 'ניתן לשלם תוך :payeddue ימים נטו עד :paydate',
@ -5088,7 +5088,7 @@ $lang = array(
'region' => 'אזור',
'county' => 'מָחוֹז',
'tax_details' => 'פרטי מס',
'activity_10_online' => ':contact made payment :payment for invoice :invoice for :client',
'activity_10_online' => ':contact ביצע תשלום :payment עבור חשבונית :invoice עבור :client',
'activity_10_manual' => ':user הזין תשלום :payment עבור חשבונית :invoice עבור :client',
'default_payment_type' => 'סוג תשלום ברירת מחדל',
'number_precision' => 'דיוק מספר',
@ -5118,7 +5118,7 @@ $lang = array(
'set_private' => 'הגדר פרטי',
'individual' => 'אִישִׁי',
'business' => 'עֵסֶק',
'partnership' => 'Partnership',
'partnership' => 'שׁוּתָפוּת',
'trust' => 'אמון',
'charity' => 'צדקה',
'government' => 'מֶמְשָׁלָה',
@ -5175,66 +5175,71 @@ $lang = array(
'charges' => 'חיובים',
'email_report' => 'דוא&quot;ל דו&quot;ח',
'payment_type_Pay Later' => 'שלם מאוחר יותר',
'payment_type_credit' => 'Payment Type Credit',
'payment_type_debit' => 'Payment Type Debit',
'send_emails_to' => 'Send Emails To',
'primary_contact' => 'Primary Contact',
'all_contacts' => 'All Contacts',
'insert_below' => 'Insert Below',
'nordigen_handler_subtitle' => 'Bank account authentication. Selecting your institution to complete the request with your account credentials.',
'nordigen_handler_error_heading_unknown' => 'An error has occured',
'nordigen_handler_error_contents_unknown' => 'An unknown error has occurred! Reason:',
'nordigen_handler_error_heading_token_invalid' => 'Invalid Token',
'nordigen_handler_error_contents_token_invalid' => 'The provided token was invalid. Contact support for help, if this issue persists.',
'nordigen_handler_error_heading_account_config_invalid' => 'Missing Credentials',
'nordigen_handler_error_contents_account_config_invalid' => 'Invalid or missing credentials for Gocardless Bank Account Data. Contact support for help, if this issue persists.',
'nordigen_handler_error_heading_not_available' => 'Not Available',
'nordigen_handler_error_contents_not_available' => 'Feature unavailable, enterprise plan only.',
'nordigen_handler_error_heading_institution_invalid' => 'Invalid Institution',
'nordigen_handler_error_contents_institution_invalid' => 'The provided institution-id is invalid or no longer valid.',
'nordigen_handler_error_heading_ref_invalid' => 'Invalid Reference',
'nordigen_handler_error_contents_ref_invalid' => 'GoCardless did not provide a valid reference. Please run flow again and contact support, if this issue persists.',
'nordigen_handler_error_heading_not_found' => 'Invalid Requisition',
'nordigen_handler_error_contents_not_found' => 'GoCardless did not provide a valid reference. Please run flow again and contact support, if this issue persists.',
'nordigen_handler_error_heading_requisition_invalid_status' => 'Not Ready',
'nordigen_handler_error_contents_requisition_invalid_status' => 'You called this site too early. Please finish authorization and refresh this page. Contact support for help, if this issue persists.',
'nordigen_handler_error_heading_requisition_no_accounts' => 'No Accounts selected',
'nordigen_handler_error_contents_requisition_no_accounts' => 'The service has not returned any valid accounts. Considder restarting the flow.',
'nordigen_handler_restart' => 'Restart flow.',
'nordigen_handler_return' => 'Return to application.',
'lang_Lao' => 'Lao',
'currency_lao_kip' => 'Lao kip',
'yodlee_regions' => 'Regions: USA, UK, Australia & India',
'nordigen_regions' => 'Regions: Europe & UK',
'select_provider' => 'Select Provider',
'nordigen_requisition_subject' => 'Requisition expired, please reauthenticate.',
'nordigen_requisition_body' => 'Access to bank account feeds has expired as set in End User Agreement. <br><br>Please log into Invoice Ninja and re-authenticate with your banks to continue receiving transactions.',
'participant' => 'Participant',
'participant_name' => 'Participant name',
'client_unsubscribed' => 'Client unsubscribed from emails.',
'client_unsubscribed_help' => 'Client :client has unsubscribed from your e-mails. The client needs to consent to receive future emails from you.',
'resubscribe' => 'Resubscribe',
'subscribe' => 'Subscribe',
'subscribe_help' => 'You are currently subscribed and will continue to receive email communications.',
'unsubscribe_help' => 'You are currently not subscribed, and therefore, will not receive emails at this time.',
'notification_purchase_order_bounced' => 'We were unable to deliver Purchase Order :invoice to :contact. <br><br> :error',
'notification_purchase_order_bounced_subject' => 'Unable to deliver Purchase Order :invoice',
'show_pdfhtml_on_mobile' => 'Display HTML version of entity when viewing on mobile',
'show_pdfhtml_on_mobile_help' => 'For improved visualization, displays a HTML version of the invoice/quote when viewing on mobile.',
'please_select_an_invoice_or_credit' => 'Please select an invoice or credit',
'mobile_version' => 'Mobile Version',
'venmo' => 'Venmo',
'my_bank' => 'MyBank',
'pay_later' => 'Pay Later',
'local_domain' => 'Local Domain',
'verify_peer' => 'Verify Peer',
'nordigen_help' => 'Note: connecting an account requires a GoCardless/Nordigen API key',
'ar_detailed' => 'Accounts Receivable Detailed',
'ar_summary' => 'Accounts Receivable Summary',
'client_sales' => 'Client Sales',
'user_sales' => 'User Sales',
'iframe_url' => 'iFrame URL',
'user_unsubscribed' => 'User unsubscribed from emails :link',
'payment_type_credit' => 'אשראי מסוג תשלום',
'payment_type_debit' => 'סוג תשלום חיוב',
'send_emails_to' => 'שלח אימיילים אל',
'primary_contact' => 'איש קשר ראשי',
'all_contacts' => 'כל אנשי הקשר',
'insert_below' => 'הכנס למטה',
'nordigen_handler_subtitle' => 'אימות חשבון בנק. בחירת המוסד שלך להשלמת הבקשה עם אישורי החשבון שלך.',
'nordigen_handler_error_heading_unknown' => 'ארעה שגיאה',
'nordigen_handler_error_contents_unknown' => 'אירעה שגיאה לא ידועה! סיבה:',
'nordigen_handler_error_heading_token_invalid' => 'אסימון לא חוקי',
'nordigen_handler_error_contents_token_invalid' => 'האסימון שסופק היה לא חוקי. פנה לתמיכה לקבלת עזרה, אם הבעיה נמשכת.',
'nordigen_handler_error_heading_account_config_invalid' => 'חסרים אישורים',
'nordigen_handler_error_contents_account_config_invalid' => 'אישורים לא חוקיים או חסרים עבור נתוני חשבון בנק ללא Gocard. פנה לתמיכה לקבלת עזרה, אם הבעיה נמשכת.',
'nordigen_handler_error_heading_not_available' => 'לא זמין',
'nordigen_handler_error_contents_not_available' => 'התכונה לא זמינה, תוכנית ארגונית בלבד.',
'nordigen_handler_error_heading_institution_invalid' => 'מוסד לא חוקי',
'nordigen_handler_error_contents_institution_invalid' => 'מזהה המוסד שסופק אינו חוקי או אינו תקף עוד.',
'nordigen_handler_error_heading_ref_invalid' => 'הפניה לא חוקית',
'nordigen_handler_error_contents_ref_invalid' => 'GoCardless לא סיפק הפניה חוקית. אנא הפעל שוב את הזרימה ופנה לתמיכה, אם הבעיה נמשכת.',
'nordigen_handler_error_heading_not_found' => 'דרישה לא חוקית',
'nordigen_handler_error_contents_not_found' => 'GoCardless לא סיפק הפניה חוקית. אנא הפעל שוב את הזרימה ופנה לתמיכה, אם הבעיה נמשכת.',
'nordigen_handler_error_heading_requisition_invalid_status' => 'לא מוכן',
'nordigen_handler_error_contents_requisition_invalid_status' => 'התקשרת לאתר הזה מוקדם מדי. אנא סיים את ההרשאה ורענן דף זה. פנה לתמיכה לקבלת עזרה, אם הבעיה נמשכת.',
'nordigen_handler_error_heading_requisition_no_accounts' => 'לא נבחרו חשבונות',
'nordigen_handler_error_contents_requisition_no_accounts' => 'השירות לא החזיר חשבונות תקפים. שקול להפעיל מחדש את הזרימה.',
'nordigen_handler_restart' => 'הפעל מחדש את הזרימה.',
'nordigen_handler_return' => 'חזור ליישום.',
'lang_Lao' => 'לאו',
'currency_lao_kip' => 'לאו קיפ',
'yodlee_regions' => 'אזורים: ארה&quot;ב, בריטניה, אוסטרליה והודו',
'nordigen_regions' => 'אזורים: אירופה ובריטניה',
'select_provider' => 'בחר ספק',
'nordigen_requisition_subject' => 'תוקף הדרישה פג, נא לאמת מחדש.',
'nordigen_requisition_body' => 'הגישה לעדכונים של חשבון בנק פג כפי שהוגדר בהסכם משתמש הקצה.<br><br> אנא היכנס ל-Invoice Ninja ואמת מחדש עם הבנקים שלך כדי להמשיך לקבל עסקאות.',
'participant' => 'מִשׁתַתֵף',
'participant_name' => 'שם המשתתף',
'client_unsubscribed' => 'הלקוח בוטל מנוי למיילים.',
'client_unsubscribed_help' => 'לקוח :client ביטל את הרישום להודעות הדואר האלקטרוני שלך. הלקוח צריך להסכים לקבל ממך מיילים עתידיים.',
'resubscribe' => 'הירשם מחדש',
'subscribe' => 'הירשם',
'subscribe_help' => 'אתה מנוי כרגע ותמשיך לקבל הודעות דוא&quot;ל.',
'unsubscribe_help' => 'אינך רשום כרגע, ולכן לא תקבל אימיילים בשלב זה.',
'notification_purchase_order_bounced' => 'לא הצלחנו לספק הזמנת רכש :invoice ל- :contact .<br><br> :error',
'notification_purchase_order_bounced_subject' => 'לא ניתן לספק הזמנת רכש :invoice',
'show_pdfhtml_on_mobile' => 'הצג את גרסת ה-HTML של הישות בעת צפייה בנייד',
'show_pdfhtml_on_mobile_help' => 'להדמיה משופרת, מציג גרסת HTML של החשבונית/הצעת המחיר בעת צפייה בנייד.',
'please_select_an_invoice_or_credit' => 'אנא בחר חשבונית או זיכוי',
'mobile_version' => 'גרסת נייד',
'venmo' => 'ונמו',
'my_bank' => 'הבנק שלי',
'pay_later' => 'שלם מאוחר יותר',
'local_domain' => 'דומיין מקומי',
'verify_peer' => 'אמת את עמית',
'nordigen_help' => 'הערה: חיבור חשבון דורש מפתח GoCardless/Norden API',
'ar_detailed' => 'פירוט חשבונות חייבים',
'ar_summary' => 'סיכום חשבונות חייבים',
'client_sales' => 'מכירות לקוח',
'user_sales' => 'מכירות משתמשים',
'iframe_url' => 'כתובת אתר iFrame',
'user_unsubscribed' => 'משתמש בוטל מנוי לדוא&quot;ל :link',
'use_available_payments' => 'השתמש בתשלומים זמינים',
'test_email_sent' => 'דוא&quot;ל נשלח בהצלחה',
'gateway_type' => 'סוג שער',
'save_template_body' => 'האם תרצה לשמור את מיפוי הייבוא הזה כתבנית לשימוש עתידי?',
'save_as_template' => 'שמור מיפוי תבניות'
);
return $lang;

View File

@ -499,8 +499,8 @@ $lang = array(
'auto_wrap' => 'Automatikus sortörés',
'duplicate_post' => 'Kettőzött bejegyzés',
'view_documentation' => 'Dokumentáció megtekintése',
'app_title' => 'Free Online Invoicing',
'app_description' => 'Invoice Ninja is a free, open-code solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
'app_title' => 'Ingyenes online számlázás',
'app_description' => 'Az Invoice Ninja egy ingyenes, nyílt kódú megoldás az ügyfelek számlázására és számlázására. Az Invoice Ninja segítségével könnyedén készíthet és küldhet gyönyörű számlákat bármilyen eszközről, amely hozzáfér az internethez. Ügyfelei kinyomtathatják számláit, letölthetik pdf fájlként, és akár online is fizethetnek Önnek a rendszeren belül.',
'rows' => 'sorok',
'www' => 'www',
'logo' => 'Logó',
@ -686,9 +686,9 @@ $lang = array(
'disable' => 'Letiltás',
'invoice_quote_number' => 'Számla/Árajánlat száma',
'invoice_charges' => 'Számla díjai',
'notification_invoice_bounced' => 'We were unable to deliver Invoice :invoice to :contact. <br><br> :error',
'notification_invoice_bounced' => 'Nem tudtuk kézbesíteni a :invoice számlát :contact címre.<br><br> :error',
'notification_invoice_bounced_subject' => 'Visszapattant számla értesítése',
'notification_quote_bounced' => 'We were unable to deliver Quote :invoice to :contact. <br><br> :error',
'notification_quote_bounced' => 'Nem tudtuk kézbesíteni a :invoice árajánlatot :contact címre.<br><br> :error',
'notification_quote_bounced_subject' => 'Visszapattant árajánlat értesítése',
'custom_invoice_link' => 'Egyedi számla link',
'total_invoiced' => 'Összes számlázott összeg',
@ -2994,7 +2994,7 @@ adva :date',
'hosted_login' => 'Hostelt bejelentkezés',
'selfhost_login' => 'Önálló bejelentkezés',
'google_login' => 'Google bejelentkezés',
'thanks_for_patience' => 'Thank for your patience while we work to implement these features.<br><br>We hope to have them completed in the next few months.<br><br>Until then we\'ll continue to support the',
'thanks_for_patience' => 'Köszönjük türelmét, amíg ezen funkciók megvalósításán dolgozunk.<br><br> Reméljük, hogy a következő hónapokban elkészülnek velük.<br><br> Addig is továbbra is támogatjuk a',
'legacy_mobile_app' => 'Örökölt mobilalkalmazás',
'today' => 'Ma',
'current' => 'Jelenlegi',
@ -3852,7 +3852,7 @@ adva :date',
'cancellation_pending' => 'Lemondás folyamatban',
'list_of_payments' => 'Fizetések listája',
'payment_details' => 'Fizetési részletek',
'list_of_payment_invoices' => 'Associate invoices',
'list_of_payment_invoices' => 'Társított számlák',
'list_of_payment_methods' => 'Fizetési módok listája',
'payment_method_details' => 'Fizetési mód részletei',
'permanently_remove_payment_method' => 'Fizetési mód végleges eltávolítása',
@ -4909,7 +4909,7 @@ adva :date',
'no_assigned_tasks' => 'nincsenek hozzárendelt feladatok',
'authorization_failure' => 'engedélyezési hiba',
'authorization_sms_failure' => 'engedélyezési SMS-hiba',
'white_label_body' => 'Thank you for purchasing a white label license. <br><br> Your license key is: <br><br> :license_key <br><br> You can manage your license here: https://invoiceninja.invoicing.co/client/login',
'white_label_body' => 'Köszönjük, hogy fehér címkés licencet vásárolt.<br><br> Az Ön licenckulcsa:<br><br> :license_key<br><br> Licencét itt kezelheti: https://invoiceninja.invoicing.co/client/login',
'payment_type_Klarna' => 'fizetési típus: Klarna',
'payment_type_Interac E Transfer' => 'fizetési típus: Interac E átutalás',
'xinvoice_payable' => 'XInvoice fizetendő',
@ -5074,7 +5074,7 @@ adva :date',
'region' => 'Vidék',
'county' => 'Megye',
'tax_details' => 'Adóadatok',
'activity_10_online' => ':contact made payment :payment for invoice :invoice for :client',
'activity_10_online' => ':contact fizetett :payment :invoice :client számláért',
'activity_10_manual' => ':user beírta a :payment fizetést a :invoice számlához a :client számlához',
'default_payment_type' => 'Alapértelmezett fizetési típus',
'number_precision' => 'Számok pontossága',
@ -5104,7 +5104,7 @@ adva :date',
'set_private' => 'Privát beállítás',
'individual' => 'Egyedi',
'business' => 'Üzleti',
'partnership' => 'Partnership',
'partnership' => 'Partnerség',
'trust' => 'Bizalom',
'charity' => 'Adomány',
'government' => 'Kormány',
@ -5161,66 +5161,71 @@ adva :date',
'charges' => 'Díjak',
'email_report' => 'Jelentés e-mailben',
'payment_type_Pay Later' => 'Fizess később',
'payment_type_credit' => 'Payment Type Credit',
'payment_type_debit' => 'Payment Type Debit',
'send_emails_to' => 'Send Emails To',
'primary_contact' => 'Primary Contact',
'all_contacts' => 'All Contacts',
'insert_below' => 'Insert Below',
'nordigen_handler_subtitle' => 'Bank account authentication. Selecting your institution to complete the request with your account credentials.',
'nordigen_handler_error_heading_unknown' => 'An error has occured',
'nordigen_handler_error_contents_unknown' => 'An unknown error has occurred! Reason:',
'nordigen_handler_error_heading_token_invalid' => 'Invalid Token',
'nordigen_handler_error_contents_token_invalid' => 'The provided token was invalid. Contact support for help, if this issue persists.',
'nordigen_handler_error_heading_account_config_invalid' => 'Missing Credentials',
'nordigen_handler_error_contents_account_config_invalid' => 'Invalid or missing credentials for Gocardless Bank Account Data. Contact support for help, if this issue persists.',
'nordigen_handler_error_heading_not_available' => 'Not Available',
'nordigen_handler_error_contents_not_available' => 'Feature unavailable, enterprise plan only.',
'nordigen_handler_error_heading_institution_invalid' => 'Invalid Institution',
'nordigen_handler_error_contents_institution_invalid' => 'The provided institution-id is invalid or no longer valid.',
'nordigen_handler_error_heading_ref_invalid' => 'Invalid Reference',
'nordigen_handler_error_contents_ref_invalid' => 'GoCardless did not provide a valid reference. Please run flow again and contact support, if this issue persists.',
'nordigen_handler_error_heading_not_found' => 'Invalid Requisition',
'nordigen_handler_error_contents_not_found' => 'GoCardless did not provide a valid reference. Please run flow again and contact support, if this issue persists.',
'nordigen_handler_error_heading_requisition_invalid_status' => 'Not Ready',
'nordigen_handler_error_contents_requisition_invalid_status' => 'You called this site too early. Please finish authorization and refresh this page. Contact support for help, if this issue persists.',
'nordigen_handler_error_heading_requisition_no_accounts' => 'No Accounts selected',
'nordigen_handler_error_contents_requisition_no_accounts' => 'The service has not returned any valid accounts. Considder restarting the flow.',
'nordigen_handler_restart' => 'Restart flow.',
'nordigen_handler_return' => 'Return to application.',
'payment_type_credit' => 'Fizetési típus Jóváírás',
'payment_type_debit' => 'Fizetési típus Terhelés',
'send_emails_to' => 'E-mailek küldése a címre',
'primary_contact' => 'Elsődleges kapcsolattartó',
'all_contacts' => 'Minden névjegy',
'insert_below' => 'Beszúrás alább',
'nordigen_handler_subtitle' => 'Bankszámla hitelesítés. Intézményének kiválasztása a kérelem kitöltéséhez a fiók hitelesítő adataival.',
'nordigen_handler_error_heading_unknown' => 'Hiba történt',
'nordigen_handler_error_contents_unknown' => 'Ismeretlen hiba lépett fel! Ok:',
'nordigen_handler_error_heading_token_invalid' => 'Érvénytelen kód',
'nordigen_handler_error_contents_token_invalid' => 'A megadott token érvénytelen. Ha a probléma továbbra is fennáll, forduljon az ügyfélszolgálathoz.',
'nordigen_handler_error_heading_account_config_invalid' => 'Hiányzó hitelesítő adatok',
'nordigen_handler_error_contents_account_config_invalid' => 'Érvénytelen vagy hiányzó hitelesítő adatok a Gocardless bankszámlaadatokhoz. Ha a probléma továbbra is fennáll, forduljon az ügyfélszolgálathoz.',
'nordigen_handler_error_heading_not_available' => 'Nem elérhető',
'nordigen_handler_error_contents_not_available' => 'A funkció nem érhető el, csak vállalati csomag.',
'nordigen_handler_error_heading_institution_invalid' => 'Érvénytelen intézmény',
'nordigen_handler_error_contents_institution_invalid' => 'A megadott intézményazonosító érvénytelen vagy már nem érvényes.',
'nordigen_handler_error_heading_ref_invalid' => 'Érvénytelen hivatkozás',
'nordigen_handler_error_contents_ref_invalid' => 'A GoCardless nem adott érvényes referenciát. Futtassa újra a folyamatot, és ha a probléma továbbra is fennáll, forduljon az ügyfélszolgálathoz.',
'nordigen_handler_error_heading_not_found' => 'Érvénytelen igénylés',
'nordigen_handler_error_contents_not_found' => 'A GoCardless nem adott érvényes referenciát. Futtassa újra a folyamatot, és ha a probléma továbbra is fennáll, forduljon az ügyfélszolgálathoz.',
'nordigen_handler_error_heading_requisition_invalid_status' => 'Nem áll készen',
'nordigen_handler_error_contents_requisition_invalid_status' => 'Túl korán hívta fel ezt az oldalt. Kérjük, fejezze be az engedélyezést, és frissítse ezt az oldalt. Ha a probléma továbbra is fennáll, forduljon az ügyfélszolgálathoz.',
'nordigen_handler_error_heading_requisition_no_accounts' => 'Nincsenek kiválasztott fiókok',
'nordigen_handler_error_contents_requisition_no_accounts' => 'A szolgáltatás nem adott vissza egyetlen érvényes fiókot sem. Fontolja meg az áramlás újraindítását.',
'nordigen_handler_restart' => 'Folyamat újraindítása.',
'nordigen_handler_return' => 'Vissza az alkalmazáshoz.',
'lang_Lao' => 'Lao',
'currency_lao_kip' => 'Lao kip',
'yodlee_regions' => 'Regions: USA, UK, Australia & India',
'nordigen_regions' => 'Regions: Europe & UK',
'select_provider' => 'Select Provider',
'nordigen_requisition_subject' => 'Requisition expired, please reauthenticate.',
'nordigen_requisition_body' => 'Access to bank account feeds has expired as set in End User Agreement. <br><br>Please log into Invoice Ninja and re-authenticate with your banks to continue receiving transactions.',
'participant' => 'Participant',
'participant_name' => 'Participant name',
'client_unsubscribed' => 'Client unsubscribed from emails.',
'client_unsubscribed_help' => 'Client :client has unsubscribed from your e-mails. The client needs to consent to receive future emails from you.',
'resubscribe' => 'Resubscribe',
'subscribe' => 'Subscribe',
'subscribe_help' => 'You are currently subscribed and will continue to receive email communications.',
'unsubscribe_help' => 'You are currently not subscribed, and therefore, will not receive emails at this time.',
'notification_purchase_order_bounced' => 'We were unable to deliver Purchase Order :invoice to :contact. <br><br> :error',
'notification_purchase_order_bounced_subject' => 'Unable to deliver Purchase Order :invoice',
'show_pdfhtml_on_mobile' => 'Display HTML version of entity when viewing on mobile',
'show_pdfhtml_on_mobile_help' => 'For improved visualization, displays a HTML version of the invoice/quote when viewing on mobile.',
'please_select_an_invoice_or_credit' => 'Please select an invoice or credit',
'mobile_version' => 'Mobile Version',
'currency_lao_kip' => 'laoszi kip',
'yodlee_regions' => 'Régiók: USA, Egyesült Királyság, Ausztrália és India',
'nordigen_regions' => 'Régiók: Európa és az Egyesült Királyság',
'select_provider' => 'Válassza a Szolgáltatót',
'nordigen_requisition_subject' => 'Az igénylés lejárt, kérjük, hitelesítse újra.',
'nordigen_requisition_body' => 'A bankszámla-hírcsatornákhoz való hozzáférés a végfelhasználói szerződésben meghatározottak szerint lejárt.<br><br> Kérjük, jelentkezzen be az Invoice Ninja szolgáltatásba, és hitelesítse újra bankjaival a tranzakciók fogadásához.',
'participant' => 'Résztvevő',
'participant_name' => 'Résztvevő neve',
'client_unsubscribed' => 'Az ügyfél leiratkozott az e-mailekről.',
'client_unsubscribed_help' => ':client ügyfél leiratkozott az Ön e-mailjeiről. Az ügyfélnek hozzá kell járulnia ahhoz, hogy a jövőben e-maileket kapjon Öntől.',
'resubscribe' => 'Újra feliratkozás',
'subscribe' => 'Iratkozz fel',
'subscribe_help' => 'Jelenleg feliratkozott, és továbbra is e-mail üzeneteket fog kapni.',
'unsubscribe_help' => 'Ön jelenleg nem iratkozott fel, ezért jelenleg nem fog e-maileket kapni.',
'notification_purchase_order_bounced' => 'Nem tudtuk kézbesíteni a :invoice megrendelést :contact címre.<br><br> :error',
'notification_purchase_order_bounced_subject' => 'Nem sikerült kézbesíteni a :invoice beszerzési rendelést',
'show_pdfhtml_on_mobile' => 'Az entitás HTML-verziójának megjelenítése mobilon',
'show_pdfhtml_on_mobile_help' => 'A jobb megjelenítés érdekében a számla/ajánlat HTML-változatát jeleníti meg, ha mobilon nézi.',
'please_select_an_invoice_or_credit' => 'Kérjük, válasszon számlát vagy jóváírást',
'mobile_version' => 'Mobil verzió',
'venmo' => 'Venmo',
'my_bank' => 'MyBank',
'pay_later' => 'Pay Later',
'local_domain' => 'Local Domain',
'pay_later' => 'Fizess később',
'local_domain' => 'Helyi domain',
'verify_peer' => 'Verify Peer',
'nordigen_help' => 'Note: connecting an account requires a GoCardless/Nordigen API key',
'ar_detailed' => 'Accounts Receivable Detailed',
'ar_summary' => 'Accounts Receivable Summary',
'client_sales' => 'Client Sales',
'user_sales' => 'User Sales',
'nordigen_help' => 'Megjegyzés: egy fiók összekapcsolásához GoCardless/Nordigen API-kulcs szükséges',
'ar_detailed' => 'Követelések részletes',
'ar_summary' => 'Követelések összefoglalója',
'client_sales' => 'Ügyfél értékesítés',
'user_sales' => 'Felhasználói értékesítés',
'iframe_url' => 'iFrame URL',
'user_unsubscribed' => 'User unsubscribed from emails :link',
'user_unsubscribed' => 'A felhasználó leiratkozott az e-mailekről :link',
'use_available_payments' => 'Használja az Elérhető fizetéseket',
'test_email_sent' => 'E-mail sikeresen elküldve',
'gateway_type' => 'Átjáró típusa',
'save_template_body' => 'Szeretné menteni ezt az importleképezést sablonként későbbi használatra?',
'save_as_template' => 'Sablonleképezés mentése'
);
return $lang;

View File

@ -506,8 +506,8 @@ $lang = array(
'auto_wrap' => 'ຫໍ່ເສັ້ນອັດຕະໂນມັດ',
'duplicate_post' => 'ຄຳເຕືອນ: ໜ້າກ່ອນໜ້ານີ້ຖືກສົ່ງສອງຄັ້ງ. ການຍື່ນສະເຫນີທີສອງໄດ້ຖືກລະເລີຍ.',
'view_documentation' => 'ເບິ່ງເອກະສານ',
'app_title' => 'Free Online Invoicing',
'app_description' => 'Invoice Ninja is a free, open-code solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
'app_title' => 'ໃບແຈ້ງໜີ້ອອນໄລນ໌ຟຣີ',
'app_description' => 'Invoice Ninja ເປັນການແກ້ໄຂລະຫັດເປີດຟຣີສໍາລັບລູກຄ້າໃບແຈ້ງໜີ້ ແລະໃບບິນ. ດ້ວຍ Invoice Ninja, ທ່ານສາມາດສ້າງ ແລະສົ່ງໃບແຈ້ງໜີ້ທີ່ສວຍງາມໄດ້ຢ່າງງ່າຍດາຍຈາກທຸກອຸປະກອນທີ່ເຂົ້າເຖິງເວັບ. ລູກ​ຄ້າ​ຂອງ​ທ່ານ​ສາ​ມາດ​ພິມ​ໃບ​ເກັບ​ເງິນ​ຂອງ​ທ່ານ​, ດາວ​ນ​໌​ໂຫລດ​ເປັນ​ໄຟລ​໌ pdf, ແລະ​ເຖິງ​ແມ່ນ​ວ່າ​ທ່ານ​ຈ່າຍ​ເງິນ​ອອນ​ໄລ​ນ​໌​ຈາກ​ພາຍ​ໃນ​ລະ​ບົບ​.',
'rows' => 'ແຖວ',
'www' => 'www',
'logo' => 'ໂລໂກ້',
@ -693,9 +693,9 @@ $lang = array(
'disable' => 'ປິດການໃຊ້ງານ',
'invoice_quote_number' => 'ໃບເກັບເງິນ ແລະໝາຍເລກໃບສະເໜີລາຄາ',
'invoice_charges' => 'ການເກັບຄ່າເພີ່ມ',
'notification_invoice_bounced' => 'We were unable to deliver Invoice :invoice to :contact. <br><br> :error',
'notification_invoice_bounced' => 'ພວກເຮົາບໍ່ສາມາດຈັດສົ່ງໃບແຈ້ງໜີ້ :invoice ໄປໃຫ້ :contact .<br><br> :error',
'notification_invoice_bounced_subject' => 'ບໍ່ສາມາດສົ່ງໃບແຈ້ງໜີ້: ໃບເກັບເງິນໄດ້',
'notification_quote_bounced' => 'We were unable to deliver Quote :invoice to :contact. <br><br> :error',
'notification_quote_bounced' => 'ພວກເຮົາບໍ່ສາມາດສົ່ງ Quote :invoice ຫາ :contact .<br><br> :error',
'notification_quote_bounced_subject' => 'ບໍ່ສາມາດສົ່ງ Quote : invoice',
'custom_invoice_link' => 'ລິ້ງໃບເກັບເງິນແບບກຳນົດເອງ',
'total_invoiced' => 'ໃບແຈ້ງໜີ້ທັງໝົດ',
@ -3010,7 +3010,7 @@ $lang = array(
'hosted_login' => 'ການເຂົ້າສູ່ລະບົບທີ່ເປັນເຈົ້າພາບ',
'selfhost_login' => 'ການເຂົ້າສູ່ລະບົບດ້ວຍຕົນເອງ',
'google_login' => 'ເຂົ້າສູ່ລະບົບ Google',
'thanks_for_patience' => 'Thank for your patience while we work to implement these features.<br><br>We hope to have them completed in the next few months.<br><br>Until then we\'ll continue to support the',
'thanks_for_patience' => 'ຂອບໃຈສໍາລັບຄວາມອົດທົນຂອງທ່ານໃນຂະນະທີ່ພວກເຮົາເຮັດວຽກເພື່ອປະຕິບັດຄຸນສົມບັດເຫຼົ່ານີ້.<br><br> ພວກເຮົາຫວັງວ່າຈະໃຫ້ພວກເຂົາສໍາເລັດໃນສອງສາມເດືອນຂ້າງຫນ້າ.<br><br> ຈົນກ່ວານັ້ນ, ພວກເຮົາຈະສືບຕໍ່ສະຫນັບສະຫນູນ',
'legacy_mobile_app' => 'ແອັບຯມືຖືແບບເກົ່າ',
'today' => 'ມື້ນີ້',
'current' => 'ປະຈຸບັນ',
@ -3868,7 +3868,7 @@ $lang = array(
'cancellation_pending' => 'ລໍຖ້າການຍົກເລີກ, ພວກເຮົາຈະຕິດຕໍ່ຫາ!',
'list_of_payments' => 'ລາຍຊື່ການຈ່າຍເງິນ',
'payment_details' => 'ລາຍລະອຽດຂອງການຈ່າຍເງິນ',
'list_of_payment_invoices' => 'Associate invoices',
'list_of_payment_invoices' => 'ໃບແຈ້ງໜີ້ທີ່ກ່ຽວຂ້ອງ',
'list_of_payment_methods' => 'ລາຍຊື່ວິທີຈ່າຍເງິນ',
'payment_method_details' => 'ລາຍລະອຽດຂອງວິທີການຊໍາລະ',
'permanently_remove_payment_method' => 'ລຶບວິທີການຈ່າຍເງິນນີ້ອອກຖາວອນ.',
@ -4925,7 +4925,7 @@ $lang = array(
'no_assigned_tasks' => 'ບໍ່ມີໜ້າວຽກທີ່ສາມາດເກັບເງິນໄດ້ສຳລັບໂຄງການນີ້',
'authorization_failure' => 'ການອະນຸຍາດບໍ່ພຽງພໍເພື່ອປະຕິບັດການນີ້',
'authorization_sms_failure' => 'ກະລຸນາກວດສອບບັນຊີຂອງທ່ານເພື່ອສົ່ງອີເມວ.',
'white_label_body' => 'Thank you for purchasing a white label license. <br><br> Your license key is: <br><br> :license_key <br><br> You can manage your license here: https://invoiceninja.invoicing.co/client/login',
'white_label_body' => 'ຂໍ​ຂອບ​ໃຈ​ທ່ານ​ສໍາ​ລັບ​ການ​ຊື້​ໃບ​ອະ​ນຸ​ຍາດ​ປ້າຍ​ສີ​ຂາວ​.<br><br> ກະແຈໃບອະນຸຍາດຂອງທ່ານແມ່ນ:<br><br> :license_key<br><br> ທ່ານສາມາດຈັດການໃບອະນຸຍາດຂອງທ່ານໄດ້ທີ່ນີ້: https://invoiceninja.invoicing.co/client/login',
'payment_type_Klarna' => 'ຄລານາ',
'payment_type_Interac E Transfer' => 'Interac E Transfer',
'xinvoice_payable' => 'ຊໍາລະພາຍໃນ: payeddue ວັນສຸດທິຈົນກ່ວາ: paydate',
@ -5120,7 +5120,7 @@ $lang = array(
'set_private' => 'ຕັ້ງເປັນສ່ວນຕົວ',
'individual' => 'ບຸກຄົນ',
'business' => 'ທຸລະກິດ',
'partnership' => 'Partnership',
'partnership' => 'ຫຸ້ນສ່ວນ',
'trust' => 'ຄວາມໄວ້ວາງໃຈ',
'charity' => 'ການກຸສົນ',
'government' => 'ລັດຖະບານ',
@ -5206,37 +5206,42 @@ $lang = array(
'nordigen_handler_return' => 'ກັບຄືນໄປຫາແອັບພລິເຄຊັນ.',
'lang_Lao' => 'ລາວ',
'currency_lao_kip' => 'ລາວກີບ',
'yodlee_regions' => 'Regions: USA, UK, Australia & India',
'nordigen_regions' => 'Regions: Europe & UK',
'yodlee_regions' => 'ພາກພື້ນ: ສະຫະລັດ, ອັງກິດ, ອົດສະຕາລີ &amp; ອິນເດຍ',
'nordigen_regions' => 'ພາກພື້ນ: ເອີຣົບ &amp; ອັງກິດ',
'select_provider' => 'ເລືອກຜູ້ໃຫ້ບໍລິການ',
'nordigen_requisition_subject' => 'Requisition expired, please reauthenticate.',
'nordigen_requisition_body' => 'Access to bank account feeds has expired as set in End User Agreement. <br><br>Please log into Invoice Ninja and re-authenticate with your banks to continue receiving transactions.',
'participant' => 'Participant',
'participant_name' => 'Participant name',
'client_unsubscribed' => 'Client unsubscribed from emails.',
'client_unsubscribed_help' => 'Client :client has unsubscribed from your e-mails. The client needs to consent to receive future emails from you.',
'resubscribe' => 'Resubscribe',
'subscribe' => 'Subscribe',
'subscribe_help' => 'You are currently subscribed and will continue to receive email communications.',
'unsubscribe_help' => 'You are currently not subscribed, and therefore, will not receive emails at this time.',
'notification_purchase_order_bounced' => 'We were unable to deliver Purchase Order :invoice to :contact. <br><br> :error',
'notification_purchase_order_bounced_subject' => 'Unable to deliver Purchase Order :invoice',
'show_pdfhtml_on_mobile' => 'Display HTML version of entity when viewing on mobile',
'show_pdfhtml_on_mobile_help' => 'For improved visualization, displays a HTML version of the invoice/quote when viewing on mobile.',
'please_select_an_invoice_or_credit' => 'Please select an invoice or credit',
'mobile_version' => 'Mobile Version',
'nordigen_requisition_subject' => 'ການຮ້ອງຂໍໝົດອາຍຸແລ້ວ, ກະລຸນາຢັ້ງຢືນຄືນໃໝ່.',
'nordigen_requisition_body' => 'ການເຂົ້າເຖິງຟີດບັນຊີທະນາຄານໝົດອາຍຸຕາມທີ່ກຳນົດໄວ້ໃນຂໍ້ຕົກລົງຜູ້ໃຊ້ສຸດທ້າຍ.<br><br> ກະລຸນາເຂົ້າສູ່ລະບົບ Invoice Ninja ແລະຢືນຢັນຄືນໃໝ່ກັບທະນາຄານຂອງທ່ານເພື່ອສືບຕໍ່ຮັບທຸລະກຳ.',
'participant' => 'ຜູ້ເຂົ້າຮ່ວມ',
'participant_name' => 'ຊື່ຜູ້ເຂົ້າຮ່ວມ',
'client_unsubscribed' => 'ລູກຄ້າເຊົາຕິດຕາມອີເມວແລ້ວ.',
'client_unsubscribed_help' => 'ລູກຄ້າ :client ໄດ້ເຊົາຕິດຕາມອີເມວຂອງເຈົ້າແລ້ວ. ລູກຄ້າຕ້ອງການຍິນຍອມເພື່ອຮັບອີເມວໃນອະນາຄົດຈາກທ່ານ.',
'resubscribe' => 'ສະໝັກໃໝ່',
'subscribe' => 'ຈອງ',
'subscribe_help' => 'ປະຈຸບັນທ່ານສະໝັກສະມາຊິກ ແລະຈະສືບຕໍ່ໄດ້ຮັບການຕິດຕໍ່ທາງອີເມລ໌.',
'unsubscribe_help' => 'ໃນປັດຈຸບັນທ່ານຍັງບໍ່ໄດ້ສະຫມັກ, ແລະດັ່ງນັ້ນ, ຈະບໍ່ໄດ້ຮັບອີເມລ໌ໃນເວລານີ້.',
'notification_purchase_order_bounced' => 'ພວກເຮົາບໍ່ສາມາດຈັດສົ່ງຄຳສັ່ງຊື້ :invoice ຫາ :contact .<br><br> :error',
'notification_purchase_order_bounced_subject' => 'ບໍ່ສາມາດຈັດສົ່ງຄໍາສັ່ງສັ່ງຊື້ :invoice',
'show_pdfhtml_on_mobile' => 'ສະແດງສະບັບ HTML ຂອງນິຕິບຸກຄົນໃນເວລາເບິ່ງໃນມືຖື',
'show_pdfhtml_on_mobile_help' => 'ສໍາລັບການປັບປຸງການເບິ່ງເຫັນ, ສະແດງສະບັບ HTML ຂອງໃບແຈ້ງຫນີ້ / ວົງຢືມໃນເວລາເບິ່ງໃນມືຖື.',
'please_select_an_invoice_or_credit' => 'ກະລຸນາເລືອກໃບແຈ້ງໜີ້ ຫຼືສິນເຊື່ອ',
'mobile_version' => 'ສະບັບມືຖື',
'venmo' => 'Venmo',
'my_bank' => 'MyBank',
'pay_later' => 'Pay Later',
'local_domain' => 'Local Domain',
'verify_peer' => 'Verify Peer',
'nordigen_help' => 'Note: connecting an account requires a GoCardless/Nordigen API key',
'ar_detailed' => 'Accounts Receivable Detailed',
'ar_summary' => 'Accounts Receivable Summary',
'client_sales' => 'Client Sales',
'user_sales' => 'User Sales',
'pay_later' => 'ຈ່າຍພາຍຫຼັງ',
'local_domain' => 'ໂດເມນທ້ອງຖິ່ນ',
'verify_peer' => 'ຢືນຢັນຄູ່',
'nordigen_help' => 'ໝາຍເຫດ: ການເຊື່ອມຕໍ່ບັນຊີຕ້ອງການລະຫັດ GoCardless/Nordigen API',
'ar_detailed' => 'ລາຍ​ລະ​ອຽດ​ບັນ​ຊີ​ທີ່​ຮັບ​ໄດ້​',
'ar_summary' => 'ສະຫຼຸບບັນຊີຮັບ',
'client_sales' => 'ການຂາຍລູກຄ້າ',
'user_sales' => 'ການຂາຍຜູ້ໃຊ້',
'iframe_url' => 'iFrame URL',
'user_unsubscribed' => 'User unsubscribed from emails :link',
'user_unsubscribed' => 'ຜູ້ໃຊ້ເຊົາຕິດຕາມອີເມວ :link',
'use_available_payments' => 'ໃຊ້ການຈ່າຍເງິນທີ່ມີຢູ່',
'test_email_sent' => 'ສົ່ງອີເມວສຳເລັດແລ້ວ',
'gateway_type' => 'ປະເພດປະຕູ',
'save_template_body' => 'ທ່ານຕ້ອງການບັນທຶກແຜນທີ່ການນໍາເຂົ້ານີ້ເປັນແມ່ແບບສໍາລັບການນໍາໃຊ້ໃນອະນາຄົດບໍ?',
'save_as_template' => 'ບັນທຶກການສ້າງແຜນທີ່ແມ່ແບບ'
);
return $lang;

View File

@ -506,8 +506,8 @@ $lang = array(
'auto_wrap' => 'Automatisch regel afbreken',
'duplicate_post' => 'Opgelet: de volgende pagina is twee keer doorgestuurd. De tweede verzending is genegeerd.',
'view_documentation' => 'Bekijk documentatie',
'app_title' => 'Free Online Invoicing',
'app_description' => 'Invoice Ninja is a free, open-code solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
'app_title' => 'Gratis online facturering',
'app_description' => 'Invoice Ninja is een gratis, open-code oplossing voor facturatie- en factureringsklanten. Met Invoice Ninja kunt u eenvoudig prachtige facturen maken en verzenden vanaf elk apparaat dat toegang heeft tot internet. Uw klanten kunnen uw facturen afdrukken, downloaden als pdf-bestanden en u zelfs online betalen vanuit het systeem.',
'rows' => 'rijen',
'www' => 'www',
'logo' => 'Logo',
@ -693,9 +693,9 @@ $lang = array(
'disable' => 'Uitzetten',
'invoice_quote_number' => 'Factuur- en offertenummers',
'invoice_charges' => 'Facturatiekosten',
'notification_invoice_bounced' => 'We were unable to deliver Invoice :invoice to :contact. <br><br> :error',
'notification_invoice_bounced' => 'We konden factuur :invoice niet leveren aan :contact .<br><br> :error',
'notification_invoice_bounced_subject' => 'Factuur :invoice kon niet worden afgeleverd',
'notification_quote_bounced' => 'We were unable to deliver Quote :invoice to :contact. <br><br> :error',
'notification_quote_bounced' => 'We konden Quote :invoice niet leveren aan :contact .<br><br> :error',
'notification_quote_bounced_subject' => 'Offerte :invoice kon niet worden afgeleverd',
'custom_invoice_link' => 'Eigen factuurlink',
'total_invoiced' => 'Totaal gefactureerd',
@ -3007,7 +3007,7 @@ Kom terug naar deze betalingsmethode pagina zodra u de bedragen heeft ontvangen
'hosted_login' => 'Hosted login',
'selfhost_login' => 'Self-Host login',
'google_login' => 'Google Login',
'thanks_for_patience' => 'Thank for your patience while we work to implement these features.<br><br>We hope to have them completed in the next few months.<br><br>Until then we\'ll continue to support the',
'thanks_for_patience' => 'Bedankt voor uw geduld terwijl we werken aan de implementatie van deze functies.<br><br> We hopen ze in de komende maanden af te ronden.<br><br> Tot die tijd blijven wij de stichting steunen',
'legacy_mobile_app' => 'oude mobiele app',
'today' => 'Vandaag',
'current' => 'Huidige',
@ -3865,7 +3865,7 @@ Kom terug naar deze betalingsmethode pagina zodra u de bedragen heeft ontvangen
'cancellation_pending' => 'Annulatie in aanvraag, we nemen contact met u op!',
'list_of_payments' => 'Lijst met betalingen',
'payment_details' => 'Details van de betaling',
'list_of_payment_invoices' => 'Associate invoices',
'list_of_payment_invoices' => 'Facturen koppelen',
'list_of_payment_methods' => 'Lijst met betalingsmethodes',
'payment_method_details' => 'Details van betalingsmethodes',
'permanently_remove_payment_method' => 'Verwijder deze betalingsmethode definitief',
@ -4925,7 +4925,7 @@ Email: :email<b><br><b>',
'no_assigned_tasks' => 'Geen factureerbare taken voor dit project',
'authorization_failure' => 'Onvoldoende machtigingen om deze actie uit te voeren',
'authorization_sms_failure' => 'Verifieer uw account om e-mails te verzenden.',
'white_label_body' => 'Thank you for purchasing a white label license. <br><br> Your license key is: <br><br> :license_key <br><br> You can manage your license here: https://invoiceninja.invoicing.co/client/login',
'white_label_body' => 'Bedankt voor het aanschaffen van een white label-licentie.<br><br> Uw licentiesleutel is:<br><br> :license_key<br><br> U kunt uw licentie hier beheren: https://invoiceninja.invoicing.co/client/login',
'payment_type_Klarna' => 'Klarna',
'payment_type_Interac E Transfer' => 'Interac E-overdracht',
'xinvoice_payable' => 'Te betalen binnen :payeddue vervaldagen netto tot :paydate',
@ -5090,7 +5090,7 @@ Email: :email<b><br><b>',
'region' => 'Regio',
'county' => 'District',
'tax_details' => 'Belastinggegevens',
'activity_10_online' => ':contact made payment :payment for invoice :invoice for :client',
'activity_10_online' => ':contact heeft betaling uitgevoerd :payment voor factuur :invoice voor :client',
'activity_10_manual' => ':user ingevoerde betaling :payment voor factuur :invoice voor :client',
'default_payment_type' => 'Standaard betalingstype',
'number_precision' => 'Cijferprecisie',
@ -5120,7 +5120,7 @@ Email: :email<b><br><b>',
'set_private' => 'Privé instellen',
'individual' => 'Individueel',
'business' => 'Bedrijf',
'partnership' => 'Partnership',
'partnership' => 'Vennootschap',
'trust' => 'Vertrouwen',
'charity' => 'Goed doel',
'government' => 'Regering',
@ -5177,66 +5177,71 @@ Email: :email<b><br><b>',
'charges' => 'Kosten',
'email_report' => 'E-mailrapport',
'payment_type_Pay Later' => 'Betaal later',
'payment_type_credit' => 'Payment Type Credit',
'payment_type_debit' => 'Payment Type Debit',
'send_emails_to' => 'Send Emails To',
'primary_contact' => 'Primary Contact',
'all_contacts' => 'All Contacts',
'insert_below' => 'Insert Below',
'nordigen_handler_subtitle' => 'Bank account authentication. Selecting your institution to complete the request with your account credentials.',
'nordigen_handler_error_heading_unknown' => 'An error has occured',
'nordigen_handler_error_contents_unknown' => 'An unknown error has occurred! Reason:',
'nordigen_handler_error_heading_token_invalid' => 'Invalid Token',
'nordigen_handler_error_contents_token_invalid' => 'The provided token was invalid. Contact support for help, if this issue persists.',
'nordigen_handler_error_heading_account_config_invalid' => 'Missing Credentials',
'nordigen_handler_error_contents_account_config_invalid' => 'Invalid or missing credentials for Gocardless Bank Account Data. Contact support for help, if this issue persists.',
'nordigen_handler_error_heading_not_available' => 'Not Available',
'nordigen_handler_error_contents_not_available' => 'Feature unavailable, enterprise plan only.',
'nordigen_handler_error_heading_institution_invalid' => 'Invalid Institution',
'nordigen_handler_error_contents_institution_invalid' => 'The provided institution-id is invalid or no longer valid.',
'nordigen_handler_error_heading_ref_invalid' => 'Invalid Reference',
'nordigen_handler_error_contents_ref_invalid' => 'GoCardless did not provide a valid reference. Please run flow again and contact support, if this issue persists.',
'nordigen_handler_error_heading_not_found' => 'Invalid Requisition',
'nordigen_handler_error_contents_not_found' => 'GoCardless did not provide a valid reference. Please run flow again and contact support, if this issue persists.',
'nordigen_handler_error_heading_requisition_invalid_status' => 'Not Ready',
'nordigen_handler_error_contents_requisition_invalid_status' => 'You called this site too early. Please finish authorization and refresh this page. Contact support for help, if this issue persists.',
'nordigen_handler_error_heading_requisition_no_accounts' => 'No Accounts selected',
'nordigen_handler_error_contents_requisition_no_accounts' => 'The service has not returned any valid accounts. Considder restarting the flow.',
'nordigen_handler_restart' => 'Restart flow.',
'nordigen_handler_return' => 'Return to application.',
'lang_Lao' => 'Lao',
'currency_lao_kip' => 'Lao kip',
'yodlee_regions' => 'Regions: USA, UK, Australia & India',
'nordigen_regions' => 'Regions: Europe & UK',
'select_provider' => 'Select Provider',
'nordigen_requisition_subject' => 'Requisition expired, please reauthenticate.',
'nordigen_requisition_body' => 'Access to bank account feeds has expired as set in End User Agreement. <br><br>Please log into Invoice Ninja and re-authenticate with your banks to continue receiving transactions.',
'participant' => 'Participant',
'participant_name' => 'Participant name',
'client_unsubscribed' => 'Client unsubscribed from emails.',
'client_unsubscribed_help' => 'Client :client has unsubscribed from your e-mails. The client needs to consent to receive future emails from you.',
'resubscribe' => 'Resubscribe',
'subscribe' => 'Subscribe',
'subscribe_help' => 'You are currently subscribed and will continue to receive email communications.',
'unsubscribe_help' => 'You are currently not subscribed, and therefore, will not receive emails at this time.',
'notification_purchase_order_bounced' => 'We were unable to deliver Purchase Order :invoice to :contact. <br><br> :error',
'notification_purchase_order_bounced_subject' => 'Unable to deliver Purchase Order :invoice',
'show_pdfhtml_on_mobile' => 'Display HTML version of entity when viewing on mobile',
'show_pdfhtml_on_mobile_help' => 'For improved visualization, displays a HTML version of the invoice/quote when viewing on mobile.',
'please_select_an_invoice_or_credit' => 'Please select an invoice or credit',
'mobile_version' => 'Mobile Version',
'payment_type_credit' => 'Betalingstype Krediet',
'payment_type_debit' => 'Betalingswijze Debet',
'send_emails_to' => 'Stuur e-mails naar',
'primary_contact' => 'Primaire contactpersoon',
'all_contacts' => 'Alle contacten',
'insert_below' => 'Vul hieronder in',
'nordigen_handler_subtitle' => 'Authenticatie van bankrekening. Selecteer uw instelling om het verzoek te voltooien met uw accountgegevens.',
'nordigen_handler_error_heading_unknown' => 'Er is een fout opgetreden',
'nordigen_handler_error_contents_unknown' => 'Er is een onbekende fout opgetreden! Reden:',
'nordigen_handler_error_heading_token_invalid' => 'Ongeldige Token',
'nordigen_handler_error_contents_token_invalid' => 'Het opgegeven token was ongeldig. Neem contact op met de ondersteuning voor hulp als dit probleem zich blijft voordoen.',
'nordigen_handler_error_heading_account_config_invalid' => 'Ontbrekende inloggegevens',
'nordigen_handler_error_contents_account_config_invalid' => 'Ongeldige of ontbrekende inloggegevens voor Gocardless-bankrekeninggegevens. Neem contact op met de ondersteuning voor hulp als dit probleem zich blijft voordoen.',
'nordigen_handler_error_heading_not_available' => 'Niet beschikbaar',
'nordigen_handler_error_contents_not_available' => 'Functie niet beschikbaar, alleen ondernemingsplan.',
'nordigen_handler_error_heading_institution_invalid' => 'Ongeldige instelling',
'nordigen_handler_error_contents_institution_invalid' => 'Het opgegeven instellings-ID is ongeldig of niet meer geldig.',
'nordigen_handler_error_heading_ref_invalid' => 'Ongeldige referentie',
'nordigen_handler_error_contents_ref_invalid' => 'GoCardless heeft geen geldige referentie opgegeven. Voer de stroom opnieuw uit en neem contact op met de ondersteuning als dit probleem zich blijft voordoen.',
'nordigen_handler_error_heading_not_found' => 'Ongeldige aanvraag',
'nordigen_handler_error_contents_not_found' => 'GoCardless heeft geen geldige referentie opgegeven. Voer de stroom opnieuw uit en neem contact op met de ondersteuning als dit probleem zich blijft voordoen.',
'nordigen_handler_error_heading_requisition_invalid_status' => 'Niet klaar',
'nordigen_handler_error_contents_requisition_invalid_status' => 'Je hebt deze site te vroeg gebeld. Voltooi de autorisatie en vernieuw deze pagina. Neem contact op met de ondersteuning voor hulp als dit probleem zich blijft voordoen.',
'nordigen_handler_error_heading_requisition_no_accounts' => 'Geen accounts geselecteerd',
'nordigen_handler_error_contents_requisition_no_accounts' => 'De service heeft geen geldige accounts geretourneerd. Overweeg om de stroom opnieuw te starten.',
'nordigen_handler_restart' => 'Start de stroom opnieuw.',
'nordigen_handler_return' => 'Terug naar applicatie.',
'lang_Lao' => 'Laos',
'currency_lao_kip' => 'Laotiaanse kip',
'yodlee_regions' => 'Regio&#39;s: VS, VK, Australië en India',
'nordigen_regions' => 'Regio&#39;s: Europa en VK',
'select_provider' => 'Selecteer Aanbieder',
'nordigen_requisition_subject' => 'Aanvraag is verlopen. Authenticeer opnieuw.',
'nordigen_requisition_body' => 'De toegang tot bankrekeningfeeds is verlopen zoals vastgelegd in de Eindgebruikersovereenkomst.<br><br> Meld u aan bij Invoice Ninja en authenticeer opnieuw bij uw banken om transacties te blijven ontvangen.',
'participant' => 'Deelnemer',
'participant_name' => 'Naam deelnemer',
'client_unsubscribed' => 'Klant heeft zich afgemeld voor e-mails.',
'client_unsubscribed_help' => 'Klant :client heeft zich afgemeld voor uw e-mails. De klant moet toestemming geven om toekomstige e-mails van u te ontvangen.',
'resubscribe' => 'Opnieuw abonneren',
'subscribe' => 'Abonneren',
'subscribe_help' => 'U bent momenteel geabonneerd en zult e-mailcommunicatie blijven ontvangen.',
'unsubscribe_help' => 'U bent momenteel niet geabonneerd en ontvangt daarom op dit moment geen e-mails.',
'notification_purchase_order_bounced' => 'We kunnen inkooporder :invoice niet leveren aan :contact .<br><br> :error',
'notification_purchase_order_bounced_subject' => 'Kan inkooporder :invoice niet leveren',
'show_pdfhtml_on_mobile' => 'Geef de HTML-versie van de entiteit weer bij weergave op mobiel',
'show_pdfhtml_on_mobile_help' => 'Voor een betere visualisatie wordt een HTML-versie van de factuur/offerte weergegeven wanneer deze op mobiel wordt bekeken.',
'please_select_an_invoice_or_credit' => 'Selecteer een factuur of tegoed',
'mobile_version' => 'Mobiele versie',
'venmo' => 'Venmo',
'my_bank' => 'MyBank',
'pay_later' => 'Pay Later',
'local_domain' => 'Local Domain',
'verify_peer' => 'Verify Peer',
'nordigen_help' => 'Note: connecting an account requires a GoCardless/Nordigen API key',
'ar_detailed' => 'Accounts Receivable Detailed',
'ar_summary' => 'Accounts Receivable Summary',
'client_sales' => 'Client Sales',
'user_sales' => 'User Sales',
'iframe_url' => 'iFrame URL',
'user_unsubscribed' => 'User unsubscribed from emails :link',
'my_bank' => 'Mijn bank',
'pay_later' => 'Betaal later',
'local_domain' => 'Lokaal domein',
'verify_peer' => 'Verifieer peer',
'nordigen_help' => 'Let op: voor het koppelen van een account is een GoCardless/Nordigen API-sleutel vereist',
'ar_detailed' => 'Debiteuren gedetailleerd',
'ar_summary' => 'Overzicht debiteuren',
'client_sales' => 'Verkoop van klanten',
'user_sales' => 'Gebruikersverkoop',
'iframe_url' => 'iFrame-URL',
'user_unsubscribed' => 'Gebruiker heeft zich afgemeld voor e-mails :link',
'use_available_payments' => 'Gebruik beschikbare betalingen',
'test_email_sent' => 'E-mail succesvol verzonden',
'gateway_type' => 'Gatewaytype',
'save_template_body' => 'Wilt u deze importtoewijzing opslaan als sjabloon voor toekomstig gebruik?',
'save_as_template' => 'Sjabloontoewijzing opslaan'
);
return $lang;

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,6 @@
# id: Opnel5aKBz
# user_id: Ua6Rw4pVbS
# assigned_user_id: Ua6Rw4pVbS
# company_id: Co7Vn3yLmW
# name: "Jim's Housekeeping"
# website: https://www.jims-housekeeping.com
# private_notes: Client prefers email communication over phone calls

View File

@ -45,10 +45,6 @@
description: 'The user hashed id'
type: string
example: Opnel5aKBz
company_id:
description: 'The company hashed id'
type: string
example: Opnel5aKBz
name:
description: 'The name of the group'
type: string

View File

@ -4,10 +4,6 @@
description: 'The bank integration hashed id'
type: string
example: AS3df3A
company_id:
description: 'The company hashed id'
type: string
example: AS3df3A
user_id:
description: 'The user hashed id'
type: string

View File

@ -4,10 +4,6 @@
description: 'The bank integration hashed id'
type: string
example: AS3df3A
company_id:
description: 'The company hashed id'
type: string
example: AS3df3A
user_id:
description: 'The user hashed id'
type: string

View File

@ -4,10 +4,6 @@
description: 'The bank transaction rules hashed id'
type: string
example: AS3df3A
company_id:
description: 'The company hashed id'
type: string
example: AS3df3A
user_id:
description: 'The user hashed id'
type: string

View File

@ -18,11 +18,6 @@
description: 'The unique identifier of the user who has been assigned the client'
type: string
example: Ua6Rw4pVbS
company_id:
description: 'The unique identifier of the company the client belongs to'
type: string
example: Co7Vn3yLmW
readOnly: true
name:
description: 'The name of the client company or organization'
type: string

View File

@ -10,11 +10,6 @@
type: string
example: Opnel5aKBz
readOnly: true
company_id:
description: 'The hashed id of the company'
type: string
example: Opnel5aKBz
readOnly: true
client_id:
description: 'The hashed id of the client'
type: string

View File

@ -4,10 +4,6 @@
description: 'The hashed id of the client gateway token'
type: string
example: Opnel5aKBz
company_id:
description: 'The hashed id of the company'
type: string
example: '2'
client_id:
description: 'The hashed_id of the client'
type: string

View File

@ -4,10 +4,6 @@
description: 'The hashed id of the company gateway'
type: string
example: Opnel5aKBz
company_id:
description: 'The company hashed id'
type: string
example: '2'
gateway_key:
description: 'The gateway key (hash)'
type: string

View File

@ -12,10 +12,6 @@
description: "The unique hashed ID of the assigned user responsible for the credit"
type: string
example: 6f7g8h9i0j
company_id:
description: "The unique hashed ID of the company associated with the credit"
type: string
example: k1l2m3n4o5
client_id:
description: "The unique hashed ID of the client associated with the credit"
type: string

View File

@ -16,10 +16,6 @@
description: 'The associated project_id'
type: string
example: 'Opnel5aKBz'
company_id:
description: 'The company hashed id'
type: string
example: 'Opnel5aKBz'
client_id:
description: 'The client hashed id'
type: string

View File

@ -14,11 +14,6 @@
description: 'The assigned user hashed id'
type: string
example: Opnel5aKBz
company_id:
description: 'The company hashed id'
type: string
example: Opnel5aKBz
readOnly: true
client_id:
description: 'The client hashed id'
type: string

View File

@ -15,11 +15,6 @@
description: 'The assigned user hashed id'
type: string
example: Opnel5aKBz
company_id:
description: 'The company hashed id'
type: string
example: Opnel5aKBz
readOnly: true
client_id:
description: 'The client hashed id'
type: string

View File

@ -6,11 +6,6 @@
description: 'The hashed product ID.'
example: eP01N
readOnly: true
company_id:
type: string
description: 'The hashed ID of the company that owns this product.'
example: eP01N
readOnly: true
user_id:
type: string
description: 'The hashed ID of the user that created this product.'

View File

@ -80,7 +80,6 @@
required:
- id
- user_id
- company_id
- name
- task_rate
- budgeted_hours

View File

@ -12,10 +12,6 @@
description: 'The unique hashed identifier for the user assigned to the purchase order'
type: string
example: ''
company_id:
description: 'The unique hashed identifier for the company associated with the purchase order'
type: string
example: ''
vendor_id:
description: 'The unique hashed identifier for the vendor associated with the purchase order'
type: string

View File

@ -12,10 +12,6 @@
description: 'The unique hashed identifier for the user assigned to the quote'
type: string
example: ''
company_id:
description: 'The unique hashed identifier for the company associated with the quote'
type: string
example: ''
client_id:
description: 'The unique hashed identifier for the client associated with the quote'
type: string

View File

@ -12,10 +12,6 @@
description: 'The hashed id of the user assigned to this recurring expense'
type: string
example: Opnel5aKBz
company_id:
description: 'The hashed id of the company'
type: string
example: Opnel5aKBz
client_id:
description: 'The hashed id of the client'
type: string

View File

@ -12,10 +12,6 @@
description: 'The assigned user hashed id'
type: string
example: Opnel5aKBz
company_id:
description: 'The company hashed id'
type: string
example: Opnel5aKBz
client_id:
description: 'The client hashed id'
type: string

View File

@ -12,10 +12,6 @@
description: 'The assigned user hashed id'
type: string
example: Opnel5aKBz
company_id:
description: 'The company hashed id'
type: string
example: Opnel5aKBz
client_id:
description: 'The client hashed id'
type: string

View File

@ -12,10 +12,6 @@
description: Unique identifier for the product associated with the subscription
type: string
example: Pr5Ft7yBmC
company_id:
description: Unique identifier for the company associated with the subscription
type: string
example: Co7Vn3yLmW
recurring_invoice_id:
description: Unique identifier for the recurring invoice associated with the subscription
type: string

View File

@ -4,10 +4,6 @@
description: 'The account hashed id'
type: string
example: AS3df3A
company_id:
description: 'The company hashed id'
type: string
example: AS3df3A
user_id:
description: 'The user_id hashed id'
type: string

View File

@ -12,10 +12,6 @@
description: 'The assigned user of the task'
type: string
example: Opnel5aKBz
company_id:
description: 'The hashed id of the company'
type: string
example: Opnel5aKBz
client_id:
description: 'The hashed if of the client'
type: string

View File

@ -13,10 +13,6 @@
description: 'The hashed id of the assigned user to this vendor. This is a unique identifier for the user.'
type: string
example: Opnel5aKBz
company_id:
description: 'The hashed id of the company. This is a unique identifier for the company.'
type: string
example: Opnel5aKBz
contacts:
type: array
items:

View File

@ -10,11 +10,6 @@
type: string
example: Opnel5aKBz
readOnly: true
company_id:
description: 'The hashed id of the company'
type: string
example: Opnel5aKBz
readOnly: true
vendor_id:
description: 'The hashed id of the vendor'
type: string

View File

@ -30,7 +30,7 @@
@endisset
@isset($signature)
<p>{{ $signature }}</p>
<p>{!! nl2br($signature) !!}</p>
@endisset
</div>
@endcomponent

View File

@ -48,7 +48,7 @@
@endisset
@isset($signature)
<p>{{ nl2br($signature) }}</p>
<p>{!! nl2br($signature) !!}</p>
@endisset
</div>
@endcomponent

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -10,7 +10,7 @@
<br>
<br>
<p>
{!! $signature !!}
{!! nl2br($signature) !!}
</p>
@endif

View File

@ -9,9 +9,7 @@
@if($signature)
<br>
<br>
<p>
{!! $signature !!}
</p>
<p>{!! nl2br($signature) !!}</p>
@endif
@isset($email_preferences)

View File

@ -501,6 +501,7 @@ class ReportCsvGenerationTest extends TestCase
// 'start_date' => 'bail|required_if:date_range,custom|nullable|date',
'report_keys' => [],
'send_email' => false,
'include_deleted' => false,
// 'status' => 'sometimes|string|nullable|in:all,draft,sent,viewed,paid,unpaid,overdue',
];
@ -547,6 +548,7 @@ class ReportCsvGenerationTest extends TestCase
'date_range' => 'all',
'report_keys' => ["vendor.name", "vendor.city", "vendor.number"],
'send_email' => false,
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -638,6 +640,7 @@ class ReportCsvGenerationTest extends TestCase
'task.custom_value4',
],
'send_email' => false,
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -792,6 +795,7 @@ class ReportCsvGenerationTest extends TestCase
'date_range' => 'all',
'report_keys' => [],
'send_email' => false,
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -873,6 +877,7 @@ class ReportCsvGenerationTest extends TestCase
"client.paid_to_date"
],
'send_email' => false,
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -1587,14 +1592,13 @@ class ReportCsvGenerationTest extends TestCase
$csv = $response->body();
$this->assertEquals('100', $this->getFirstValueByColumn($csv, 'Amount'));
$this->assertEquals('50', $this->getFirstValueByColumn($csv, 'Balance'));
$this->assertEquals('10', $this->getFirstValueByColumn($csv, 'Discount'));
$this->assertEquals('1234', $this->getFirstValueByColumn($csv, 'Number'));
$this->assertEquals('Public', $this->getFirstValueByColumn($csv, 'Public Notes'));
$this->assertEquals('Private', $this->getFirstValueByColumn($csv, 'Private Notes'));
$this->assertEquals('Terms', $this->getFirstValueByColumn($csv, 'Terms'));
$this->assertEquals('100', $this->getFirstValueByColumn($csv, 'Purchase Order Amount'));
$this->assertEquals('50', $this->getFirstValueByColumn($csv, 'Purchase Order Balance'));
$this->assertEquals('10', $this->getFirstValueByColumn($csv, 'Purchase Order Discount'));
$this->assertEquals('1234', $this->getFirstValueByColumn($csv, 'Purchase Order Number'));
$this->assertEquals('Public', $this->getFirstValueByColumn($csv, 'Purchase Order Public Notes'));
$this->assertEquals('Private', $this->getFirstValueByColumn($csv, 'Purchase Order Private Notes'));
$this->assertEquals('Terms', $this->getFirstValueByColumn($csv, 'Purchase Order Terms'));
}

View File

@ -70,6 +70,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -101,6 +102,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -132,6 +134,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -164,6 +167,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -197,6 +201,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -231,6 +236,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -261,6 +267,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -291,6 +298,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -320,6 +328,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -351,6 +360,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -375,6 +385,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -387,6 +398,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => ['client.name','client.balance'],
'include_deleted' => false,
];
@ -408,6 +420,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -420,6 +433,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => ['client.name','client.balance','contact.email'],
'include_deleted' => false,
];
@ -439,6 +453,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([
@ -466,6 +481,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$p = (new PreviewReport($this->company, $data, CreditExport::class, '123'))->handle();
@ -484,6 +500,7 @@ class ReportPreviewTest extends TestCase
'send_email' => false,
'date_range' => 'all',
'report_keys' => [],
'include_deleted' => false,
];
$response = $this->withHeaders([

View File

@ -157,6 +157,44 @@ class ReminderTest extends TestCase
}
public function testForUtcEdgeCaseOnTheFirstOfMonth()
{
$this->travelTo(Carbon::parse('2024-03-01')->startOfDay());
$this->invoice->status_id = 2;
$this->invoice->amount = 10;
$this->invoice->balance = 10;
$this->invoice->next_send_date = null;
$this->invoice->date = '2024-03-01';
$this->invoice->last_sent_date = now();
$this->invoice->due_date = Carbon::parse('2024-03-01')->addDays(30)->format('Y-m-d');
$this->invoice->reminder_last_sent = null;
$this->invoice->save();
$settings = $this->company->settings;
$settings->enable_reminder1 = true;
$settings->schedule_reminder1 = 'before_due_date';
$settings->num_days_reminder1 = 14;
$settings->enable_reminder2 = false;
$settings->schedule_reminder2 = '';
$settings->num_days_reminder2 = 0;
$settings->enable_reminder3 = false;
$settings->schedule_reminder3 = '';
$settings->num_days_reminder3 = 0;
$settings->timezone_id = '15';
$settings->entity_send_time = 6;
$settings->endless_reminder_frequency_id = '';
$settings->enable_reminder_endless = false;
$this->invoice->service()->setReminder($settings)->save();
$this->invoice = $this->invoice->fresh();
$this->assertEquals('2024-03-17', \Carbon\Carbon::parse($this->invoice->next_send_date)->startOfDay()->format('Y-m-d'));
}
public function testReminderInThePast()
{