mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
commit
915a2737a5
@ -1 +1 @@
|
|||||||
5.6.31
|
5.7.0
|
@ -122,7 +122,7 @@ class TypeCheck extends Command
|
|||||||
$client->save();
|
$client->save();
|
||||||
});
|
});
|
||||||
|
|
||||||
Company::cursor()->each(function ($company) {
|
Company::query()->cursor()->each(function ($company) {
|
||||||
$this->logMessage("Checking company {$company->id}");
|
$this->logMessage("Checking company {$company->id}");
|
||||||
$company->saveSettings($company->settings, $company);
|
$company->saveSettings($company->settings, $company);
|
||||||
});
|
});
|
||||||
|
@ -839,7 +839,7 @@ class BaseExport
|
|||||||
foreach (array_merge($this->input['report_keys'], $this->forced_keys) as $value) {
|
foreach (array_merge($this->input['report_keys'], $this->forced_keys) as $value) {
|
||||||
|
|
||||||
$key = array_search($value, $this->entity_keys);
|
$key = array_search($value, $this->entity_keys);
|
||||||
|
nlog("{$key} => {$value}");
|
||||||
$prefix = '';
|
$prefix = '';
|
||||||
|
|
||||||
if(!$key) {
|
if(!$key) {
|
||||||
@ -862,7 +862,6 @@ class BaseExport
|
|||||||
$key = array_search($value, $this->payment_report_keys);
|
$key = array_search($value, $this->payment_report_keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(!$key) {
|
if(!$key) {
|
||||||
$prefix = ctrans('texts.quote')." ";
|
$prefix = ctrans('texts.quote')." ";
|
||||||
$key = array_search($value, $this->quote_report_keys);
|
$key = array_search($value, $this->quote_report_keys);
|
||||||
@ -914,7 +913,7 @@ class BaseExport
|
|||||||
$key = str_replace('contact.', '', $key);
|
$key = str_replace('contact.', '', $key);
|
||||||
$key = str_replace('payment.', '', $key);
|
$key = str_replace('payment.', '', $key);
|
||||||
$key = str_replace('expense.', '', $key);
|
$key = str_replace('expense.', '', $key);
|
||||||
|
// nlog($key);
|
||||||
if(in_array($key, ['quote1','quote2','quote3','quote4','credit1','credit2','credit3','credit4','purchase_order1','purchase_order2','purchase_order3','purchase_order4']))
|
if(in_array($key, ['quote1','quote2','quote3','quote4','credit1','credit2','credit3','credit4','purchase_order1','purchase_order2','purchase_order3','purchase_order4']))
|
||||||
{
|
{
|
||||||
$number = substr($key, -1);
|
$number = substr($key, -1);
|
||||||
|
@ -11,13 +11,15 @@
|
|||||||
|
|
||||||
namespace App\Export\CSV;
|
namespace App\Export\CSV;
|
||||||
|
|
||||||
use App\Libraries\MultiDB;
|
|
||||||
use App\Models\Company;
|
|
||||||
use App\Models\Credit;
|
|
||||||
use App\Transformers\CreditTransformer;
|
|
||||||
use App\Utils\Ninja;
|
use App\Utils\Ninja;
|
||||||
use Illuminate\Support\Facades\App;
|
use App\Utils\Number;
|
||||||
|
use App\Models\Credit;
|
||||||
use League\Csv\Writer;
|
use League\Csv\Writer;
|
||||||
|
use App\Models\Company;
|
||||||
|
use App\Libraries\MultiDB;
|
||||||
|
use Illuminate\Support\Facades\App;
|
||||||
|
use App\Transformers\CreditTransformer;
|
||||||
|
use Illuminate\Contracts\Database\Eloquent\Builder;
|
||||||
|
|
||||||
class CreditExport extends BaseExport
|
class CreditExport extends BaseExport
|
||||||
{
|
{
|
||||||
@ -32,11 +34,12 @@ class CreditExport extends BaseExport
|
|||||||
'amount' => 'amount',
|
'amount' => 'amount',
|
||||||
'balance' => 'balance',
|
'balance' => 'balance',
|
||||||
'client' => 'client_id',
|
'client' => 'client_id',
|
||||||
|
'country' => 'country_id',
|
||||||
'custom_surcharge1' => 'custom_surcharge1',
|
'custom_surcharge1' => 'custom_surcharge1',
|
||||||
'custom_surcharge2' => 'custom_surcharge2',
|
'custom_surcharge2' => 'custom_surcharge2',
|
||||||
'custom_surcharge3' => 'custom_surcharge3',
|
'custom_surcharge3' => 'custom_surcharge3',
|
||||||
'custom_surcharge4' => 'custom_surcharge4',
|
'custom_surcharge4' => 'custom_surcharge4',
|
||||||
'country' => 'country_id',
|
'currency' => 'currency',
|
||||||
'custom_value1' => 'custom_value1',
|
'custom_value1' => 'custom_value1',
|
||||||
'custom_value2' => 'custom_value2',
|
'custom_value2' => 'custom_value2',
|
||||||
'custom_value3' => 'custom_value3',
|
'custom_value3' => 'custom_value3',
|
||||||
@ -63,7 +66,6 @@ class CreditExport extends BaseExport
|
|||||||
'tax_rate3' => 'tax_rate3',
|
'tax_rate3' => 'tax_rate3',
|
||||||
'terms' => 'terms',
|
'terms' => 'terms',
|
||||||
'total_taxes' => 'total_taxes',
|
'total_taxes' => 'total_taxes',
|
||||||
'currency' => 'currency',
|
|
||||||
];
|
];
|
||||||
|
|
||||||
private array $decorate_keys = [
|
private array $decorate_keys = [
|
||||||
@ -80,23 +82,67 @@ class CreditExport extends BaseExport
|
|||||||
$this->credit_transformer = new CreditTransformer();
|
$this->credit_transformer = new CreditTransformer();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function run()
|
public function returnJson()
|
||||||
{
|
{
|
||||||
|
$query = $this->init();
|
||||||
|
|
||||||
|
$header = $this->buildHeader();
|
||||||
|
|
||||||
|
$report = $query->cursor()
|
||||||
|
->map(function ($credit) {
|
||||||
|
$row = $this->buildRow($credit);
|
||||||
|
return $this->processMetaData($row, $credit);
|
||||||
|
})->toArray();
|
||||||
|
|
||||||
|
return array_merge([$header], $report);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function processMetaData(array $row, Credit $credit): array
|
||||||
|
{
|
||||||
|
$clean_row = [];
|
||||||
|
|
||||||
|
foreach ($this->input['report_keys'] as $key => $value) {
|
||||||
|
|
||||||
|
$report_keys = explode(".", $value);
|
||||||
|
|
||||||
|
$column_key = str_replace("credit.", "", $value);
|
||||||
|
$column_key = array_search($column_key, $this->entity_keys);
|
||||||
|
|
||||||
|
$clean_row[$key]['entity'] = $report_keys[0];
|
||||||
|
$clean_row[$key]['id'] = $report_keys[1] ?? $report_keys[0];
|
||||||
|
$clean_row[$key]['hashed_id'] = $report_keys[0] == 'credit' ? null : $credit->{$report_keys[0]}->hashed_id ?? null;
|
||||||
|
$clean_row[$key]['value'] = $row[$column_key];
|
||||||
|
|
||||||
|
if(in_array($clean_row[$key]['id'], ['amount', 'balance', 'partial', 'refunded', 'applied','unit_cost','cost','price']))
|
||||||
|
$clean_row[$key]['display_value'] = Number::formatMoney($row[$column_key], $credit->client);
|
||||||
|
else
|
||||||
|
$clean_row[$key]['display_value'] = $row[$column_key];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return $clean_row;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function init(): Builder
|
||||||
|
{
|
||||||
|
|
||||||
MultiDB::setDb($this->company->db);
|
MultiDB::setDb($this->company->db);
|
||||||
App::forgetInstance('translator');
|
App::forgetInstance('translator');
|
||||||
App::setLocale($this->company->locale());
|
App::setLocale($this->company->locale());
|
||||||
$t = app('translator');
|
$t = app('translator');
|
||||||
$t->replace(Ninja::transformTranslations($this->company->settings));
|
$t->replace(Ninja::transformTranslations($this->company->settings));
|
||||||
|
|
||||||
//load the CSV document from a string
|
|
||||||
$this->csv = Writer::createFromString();
|
|
||||||
|
|
||||||
if (count($this->input['report_keys']) == 0) {
|
if (count($this->input['report_keys']) == 0) {
|
||||||
$this->input['report_keys'] = array_values($this->entity_keys);
|
$this->input['report_keys'] = array_values($this->entity_keys);
|
||||||
}
|
// $this->input['report_keys'] = collect(array_values($this->entity_keys))->map(function ($value){
|
||||||
|
|
||||||
//insert the header
|
// // if(in_array($value,['client_id','country_id']))
|
||||||
$this->csv->insertOne($this->buildHeader());
|
// // return $value;
|
||||||
|
// // else
|
||||||
|
// return 'credit.'.$value;
|
||||||
|
// })->toArray();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
$query = Credit::query()
|
$query = Credit::query()
|
||||||
->withTrashed()
|
->withTrashed()
|
||||||
@ -105,8 +151,22 @@ class CreditExport extends BaseExport
|
|||||||
|
|
||||||
$query = $this->addDateRange($query);
|
$query = $this->addDateRange($query);
|
||||||
|
|
||||||
|
return $query;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function run(): string
|
||||||
|
{
|
||||||
|
$query = $this->init();
|
||||||
|
//load the CSV document from a string
|
||||||
|
$this->csv = Writer::createFromString();
|
||||||
|
|
||||||
|
//insert the header
|
||||||
|
$this->csv->insertOne($this->buildHeader());
|
||||||
|
// nlog($this->input['report_keys']);
|
||||||
|
|
||||||
$query->cursor()
|
$query->cursor()
|
||||||
->each(function ($credit) {
|
->each(function ($credit) {
|
||||||
|
// nlog($this->buildRow($credit));
|
||||||
$this->csv->insertOne($this->buildRow($credit));
|
$this->csv->insertOne($this->buildRow($credit));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -228,7 +228,7 @@ class ClientController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $client);
|
$this->saveDocuments($request->file('documents'), $client, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($client->fresh());
|
return $this->itemResponse($client->fresh());
|
||||||
|
@ -30,7 +30,8 @@ class CreditController extends Controller
|
|||||||
{
|
{
|
||||||
set_time_limit(0);
|
set_time_limit(0);
|
||||||
|
|
||||||
$invitation = $credit->invitations()->where('client_contact_id', auth()->user()->id)->first();
|
// $invitation = $credit->invitations()->where('client_contact_id', auth()->user()->id)->first();
|
||||||
|
$invitation = $credit->invitations()->where('client_contact_id', auth()->guard('contact')->user()->id)->first();
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'credit' => $credit,
|
'credit' => $credit,
|
||||||
|
@ -53,7 +53,7 @@ class QuoteController extends Controller
|
|||||||
{
|
{
|
||||||
/* If the quote is expired, convert the status here */
|
/* If the quote is expired, convert the status here */
|
||||||
|
|
||||||
$invitation = $quote->invitations()->where('client_contact_id', auth()->user()->id)->first();
|
$invitation = $quote->invitations()->where('client_contact_id', auth()->guard('contact')->user()->id)->first();
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'quote' => $quote,
|
'quote' => $quote,
|
||||||
|
@ -34,7 +34,7 @@ class UploadController extends Controller
|
|||||||
/** @var \App\Models\ClientContact $client_contact **/
|
/** @var \App\Models\ClientContact $client_contact **/
|
||||||
$client_contact = auth()->user();
|
$client_contact = auth()->user();
|
||||||
|
|
||||||
$this->saveDocuments($request->getFile(), $client_contact->client, true);
|
$this->saveDocuments($request->getFile(), $client_contact->client, $request->input('is_public', true));
|
||||||
|
|
||||||
return response([], 200);
|
return response([], 200);
|
||||||
}
|
}
|
||||||
|
@ -424,7 +424,7 @@ class CompanyController extends BaseController
|
|||||||
$company = $this->company_repo->save($request->all(), $company);
|
$company = $this->company_repo->save($request->all(), $company);
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->input('documents'), $company, false);
|
$this->saveDocuments($request->input('documents'), $company, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
if($request->has('e_invoice_certificate') && !is_null($request->file("e_invoice_certificate"))){
|
if($request->has('e_invoice_certificate') && !is_null($request->file("e_invoice_certificate"))){
|
||||||
@ -616,7 +616,7 @@ class CompanyController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $company);
|
$this->saveDocuments($request->file('documents'), $company, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($company->fresh());
|
return $this->itemResponse($company->fresh());
|
||||||
|
@ -776,7 +776,7 @@ class CreditController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $credit);
|
$this->saveDocuments($request->file('documents'), $credit, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($credit->fresh());
|
return $this->itemResponse($credit->fresh());
|
||||||
|
@ -78,6 +78,8 @@ class EmailController extends BaseController
|
|||||||
$entity_obj->service()->markSent()->save();
|
$entity_obj->service()->markSent()->save();
|
||||||
|
|
||||||
$mo->invitation_id = $invitation->id;
|
$mo->invitation_id = $invitation->id;
|
||||||
|
$mo->client_id = $invitation->contact->client_id ?? null;
|
||||||
|
$mo->vendor_id = $invitation->contact->vendor_id ?? null;
|
||||||
|
|
||||||
Email::dispatch($mo, $invitation->company);
|
Email::dispatch($mo, $invitation->company);
|
||||||
}
|
}
|
||||||
|
@ -564,7 +564,7 @@ class ExpenseController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $expense);
|
$this->saveDocuments($request->file('documents'), $expense, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($expense->fresh());
|
return $this->itemResponse($expense->fresh());
|
||||||
|
@ -144,7 +144,7 @@ class GroupSettingController extends BaseController
|
|||||||
$this->uploadLogo($request->file('company_logo'), $group_setting->company, $group_setting);
|
$this->uploadLogo($request->file('company_logo'), $group_setting->company, $group_setting);
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->input('documents'), $group_setting, false);
|
$this->saveDocuments($request->input('documents'), $group_setting, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($group_setting);
|
return $this->itemResponse($group_setting);
|
||||||
@ -217,7 +217,7 @@ class GroupSettingController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $group_setting);
|
$this->saveDocuments($request->file('documents'), $group_setting, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($group_setting->fresh());
|
return $this->itemResponse($group_setting->fresh());
|
||||||
|
@ -977,7 +977,7 @@ class InvoiceController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('file')) {
|
if ($request->has('file')) {
|
||||||
$this->saveDocuments($request->file('documents'), $invoice, $request->input('is_public', true));
|
$this->saveDocuments($request->file('file'), $invoice, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($invoice->fresh());
|
return $this->itemResponse($invoice->fresh());
|
||||||
|
@ -749,7 +749,7 @@ class PaymentController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $payment);
|
$this->saveDocuments($request->file('documents'), $payment, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($payment->fresh());
|
return $this->itemResponse($payment->fresh());
|
||||||
|
@ -541,7 +541,7 @@ class ProductController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $product);
|
$this->saveDocuments($request->file('documents'), $product, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($product->fresh());
|
return $this->itemResponse($product->fresh());
|
||||||
|
@ -264,7 +264,7 @@ class ProjectController extends BaseController
|
|||||||
$project->saveQuietly();
|
$project->saveQuietly();
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->input('documents'), $project);
|
$this->saveDocuments($request->input('documents'), $project, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
event('eloquent.updated: App\Models\Project', $project);
|
event('eloquent.updated: App\Models\Project', $project);
|
||||||
@ -373,7 +373,7 @@ class ProjectController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->input('documents'), $project);
|
$this->saveDocuments($request->input('documents'), $project, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
event('eloquent.created: App\Models\Project', $project);
|
event('eloquent.created: App\Models\Project', $project);
|
||||||
@ -565,7 +565,7 @@ class ProjectController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $project);
|
$this->saveDocuments($request->file('documents'), $project, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($project->fresh());
|
return $this->itemResponse($project->fresh());
|
||||||
|
@ -751,7 +751,7 @@ class PurchaseOrderController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $purchase_order);
|
$this->saveDocuments($request->file('documents'), $purchase_order, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($purchase_order->fresh());
|
return $this->itemResponse($purchase_order->fresh());
|
||||||
|
@ -905,7 +905,7 @@ class QuoteController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $quote);
|
$this->saveDocuments($request->file('documents'), $quote, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($quote->fresh());
|
return $this->itemResponse($quote->fresh());
|
||||||
|
@ -609,7 +609,7 @@ class RecurringExpenseController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $recurring_expense);
|
$this->saveDocuments($request->file('documents'), $recurring_expense, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($recurring_expense->fresh());
|
return $this->itemResponse($recurring_expense->fresh());
|
||||||
|
@ -550,7 +550,7 @@ class RecurringInvoiceController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $recurring_invoice);
|
$this->saveDocuments($request->file('documents'), $recurring_invoice, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($recurring_invoice->fresh());
|
return $this->itemResponse($recurring_invoice->fresh());
|
||||||
|
@ -14,6 +14,7 @@ namespace App\Http\Controllers\Reports;
|
|||||||
use App\Export\CSV\CreditExport;
|
use App\Export\CSV\CreditExport;
|
||||||
use App\Http\Controllers\BaseController;
|
use App\Http\Controllers\BaseController;
|
||||||
use App\Http\Requests\Report\GenericReportRequest;
|
use App\Http\Requests\Report\GenericReportRequest;
|
||||||
|
use App\Jobs\Report\PreviewReport;
|
||||||
use App\Jobs\Report\SendToAdmin;
|
use App\Jobs\Report\SendToAdmin;
|
||||||
use App\Utils\Traits\MakesHash;
|
use App\Utils\Traits\MakesHash;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
@ -62,14 +63,26 @@ class CreditReportController extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function __invoke(GenericReportRequest $request)
|
public function __invoke(GenericReportRequest $request)
|
||||||
{
|
{
|
||||||
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
if ($request->has('send_email') && $request->get('send_email')) {
|
if ($request->has('send_email') && $request->get('send_email')) {
|
||||||
SendToAdmin::dispatch(auth()->user()->company(), $request->all(), CreditExport::class, $this->filename);
|
SendToAdmin::dispatch($user->company(), $request->all(), CreditExport::class, $this->filename);
|
||||||
|
|
||||||
return response()->json(['message' => 'working...'], 200);
|
return response()->json(['message' => 'working...'], 200);
|
||||||
}
|
}
|
||||||
// expect a list of visible fields, or use the default
|
// expect a list of visible fields, or use the default
|
||||||
|
|
||||||
$export = new CreditExport(auth()->user()->company(), $request->all());
|
if($request->has('output') && $request->input('output') == 'json') {
|
||||||
|
|
||||||
|
$hash = \Illuminate\Support\Str::uuid();
|
||||||
|
|
||||||
|
PreviewReport::dispatch($user->company(), $request->all(), CreditExport::class, $hash);
|
||||||
|
|
||||||
|
return response()->json(['message' => $hash], 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
$export = new CreditExport($user->company(), $request->all());
|
||||||
|
|
||||||
$csv = $export->run();
|
$csv = $export->run();
|
||||||
|
|
||||||
|
45
app/Http/Controllers/Reports/ReportPreviewController.php
Normal file
45
app/Http/Controllers/Reports/ReportPreviewController.php
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2023. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Reports;
|
||||||
|
|
||||||
|
use App\Utils\Traits\MakesHash;
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
use App\Http\Controllers\BaseController;
|
||||||
|
use App\Http\Requests\Report\ReportPreviewRequest;
|
||||||
|
|
||||||
|
class ReportPreviewController extends BaseController
|
||||||
|
{
|
||||||
|
use MakesHash;
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __invoke(ReportPreviewRequest $request, ?string $hash)
|
||||||
|
{
|
||||||
|
|
||||||
|
$report = Cache::get($hash);
|
||||||
|
|
||||||
|
if(!$report)
|
||||||
|
return response()->json(['message' => 'Still working.....'], 409);
|
||||||
|
|
||||||
|
if($report){
|
||||||
|
|
||||||
|
Cache::forget($hash);
|
||||||
|
|
||||||
|
return response()->json($report, 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -53,7 +53,7 @@ class SelfUpdateController extends BaseController
|
|||||||
|
|
||||||
nlog('Test filesystem is writable');
|
nlog('Test filesystem is writable');
|
||||||
|
|
||||||
// $this->testWritable();
|
$this->testWritable();
|
||||||
|
|
||||||
nlog('Clear cache directory');
|
nlog('Clear cache directory');
|
||||||
|
|
||||||
@ -61,12 +61,22 @@ class SelfUpdateController extends BaseController
|
|||||||
|
|
||||||
nlog('copying release file');
|
nlog('copying release file');
|
||||||
|
|
||||||
if (copy($this->getDownloadUrl(), storage_path("app/{$this->filename}"))) {
|
$file_headers = @get_headers($this->getDownloadUrl());
|
||||||
nlog('Copied file from URL');
|
|
||||||
} else {
|
if (stripos($file_headers[0], "404 Not Found") >0 || (stripos($file_headers[0], "302 Found") > 0 && stripos($file_headers[7], "404 Not Found") > 0)) {
|
||||||
return response()->json(['message' => 'Download not yet available. Please try again shortly.'], 410);
|
return response()->json(['message' => 'Download not yet available. Please try again shortly.'], 410);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (copy($this->getDownloadUrl(), storage_path("app/{$this->filename}"))) {
|
||||||
|
nlog('Copied file from URL');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(\Exception $e) {
|
||||||
|
nlog($e->getMessage());
|
||||||
|
return response()->json(['message' => 'File exists on the server, however there was a problem downloading and copying to the local filesystem'], 500);
|
||||||
|
}
|
||||||
|
|
||||||
nlog('Finished copying');
|
nlog('Finished copying');
|
||||||
|
|
||||||
$file = Storage::disk('local')->path($this->filename);
|
$file = Storage::disk('local')->path($this->filename);
|
||||||
|
@ -125,11 +125,11 @@ class StripeConnectController extends BaseController
|
|||||||
$company_gateway->save();
|
$company_gateway->save();
|
||||||
|
|
||||||
// StripeWebhook::dispatch($company->company_key, $company_gateway->id);
|
// StripeWebhook::dispatch($company->company_key, $company_gateway->id);
|
||||||
if(isset($request->getTokenContent()['is_react']) && $request->getTokenContent()['is_react']) {
|
// if(isset($request->getTokenContent()['is_react']) && $request->getTokenContent()['is_react']) {
|
||||||
$redirect_uri = 'https://app.invoicing.co/#/settings/online_payments';
|
$redirect_uri = 'https://app.invoicing.co/#/settings/online_payments';
|
||||||
} else {
|
// } else {
|
||||||
$redirect_uri = 'https://invoicing.co/stripe/completed';
|
// $redirect_uri = 'https://invoicing.co/stripe/completed';
|
||||||
}
|
// }
|
||||||
|
|
||||||
//response here
|
//response here
|
||||||
return view('auth.connect.completed', ['url' => $redirect_uri]);
|
return view('auth.connect.completed', ['url' => $redirect_uri]);
|
||||||
|
@ -582,7 +582,7 @@ class TaskController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $task);
|
$this->saveDocuments($request->file('documents'), $task, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($task->fresh());
|
return $this->itemResponse($task->fresh());
|
||||||
|
@ -568,7 +568,7 @@ class VendorController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->has('documents')) {
|
if ($request->has('documents')) {
|
||||||
$this->saveDocuments($request->file('documents'), $vendor);
|
$this->saveDocuments($request->file('documents'), $vendor, $request->input('is_public', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->itemResponse($vendor->fresh());
|
return $this->itemResponse($vendor->fresh());
|
||||||
|
@ -33,7 +33,7 @@ class UploadController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function upload(StoreUploadRequest $request, PurchaseOrder $purchase_order)
|
public function upload(StoreUploadRequest $request, PurchaseOrder $purchase_order)
|
||||||
{
|
{
|
||||||
$this->saveDocuments($request->getFile(), $purchase_order, true);
|
$this->saveDocuments($request->getFile(), $purchase_order, $request->input('is_public', true));
|
||||||
|
|
||||||
return response([], 200);
|
return response([], 200);
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ class DocumentsTable extends Component
|
|||||||
{
|
{
|
||||||
MultiDB::setDb($this->db);
|
MultiDB::setDb($this->db);
|
||||||
|
|
||||||
$this->client = Client::withTrashed()->with('company')->find($this->client_id);
|
$this->client = Client::query()->withTrashed()->with('company')->find($this->client_id);
|
||||||
|
|
||||||
$this->company = $this->client->company;
|
$this->company = $this->client->company;
|
||||||
|
|
||||||
@ -118,12 +118,14 @@ class DocumentsTable extends Component
|
|||||||
|
|
||||||
protected function documents()
|
protected function documents()
|
||||||
{
|
{
|
||||||
return $this->client->documents();
|
return $this->client->documents()
|
||||||
|
->where('is_public', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function credits()
|
protected function credits()
|
||||||
{
|
{
|
||||||
return Document::query()
|
return Document::query()
|
||||||
|
->where('is_public', true)
|
||||||
->whereHasMorph('documentable', [Credit::class], function ($query) {
|
->whereHasMorph('documentable', [Credit::class], function ($query) {
|
||||||
$query->where('client_id', $this->client->id);
|
$query->where('client_id', $this->client->id);
|
||||||
});
|
});
|
||||||
@ -132,6 +134,7 @@ class DocumentsTable extends Component
|
|||||||
protected function expenses()
|
protected function expenses()
|
||||||
{
|
{
|
||||||
return Document::query()
|
return Document::query()
|
||||||
|
->where('is_public', true)
|
||||||
->whereHasMorph('documentable', [Expense::class], function ($query) {
|
->whereHasMorph('documentable', [Expense::class], function ($query) {
|
||||||
$query->where('client_id', $this->client->id);
|
$query->where('client_id', $this->client->id);
|
||||||
});
|
});
|
||||||
@ -140,6 +143,7 @@ class DocumentsTable extends Component
|
|||||||
protected function invoices()
|
protected function invoices()
|
||||||
{
|
{
|
||||||
return Document::query()
|
return Document::query()
|
||||||
|
->where('is_public', true)
|
||||||
->whereHasMorph('documentable', [Invoice::class], function ($query) {
|
->whereHasMorph('documentable', [Invoice::class], function ($query) {
|
||||||
$query->where('client_id', $this->client->id);
|
$query->where('client_id', $this->client->id);
|
||||||
});
|
});
|
||||||
@ -148,6 +152,7 @@ class DocumentsTable extends Component
|
|||||||
protected function payments()
|
protected function payments()
|
||||||
{
|
{
|
||||||
return Document::query()
|
return Document::query()
|
||||||
|
->where('is_public', true)
|
||||||
->whereHasMorph('documentable', [Payment::class], function ($query) {
|
->whereHasMorph('documentable', [Payment::class], function ($query) {
|
||||||
$query->where('client_id', $this->client->id);
|
$query->where('client_id', $this->client->id);
|
||||||
});
|
});
|
||||||
@ -156,6 +161,7 @@ class DocumentsTable extends Component
|
|||||||
protected function projects()
|
protected function projects()
|
||||||
{
|
{
|
||||||
return Document::query()
|
return Document::query()
|
||||||
|
->where('is_public', true)
|
||||||
->whereHasMorph('documentable', [Project::class], function ($query) {
|
->whereHasMorph('documentable', [Project::class], function ($query) {
|
||||||
$query->where('client_id', $this->client->id);
|
$query->where('client_id', $this->client->id);
|
||||||
});
|
});
|
||||||
@ -164,6 +170,7 @@ class DocumentsTable extends Component
|
|||||||
protected function quotes()
|
protected function quotes()
|
||||||
{
|
{
|
||||||
return Document::query()
|
return Document::query()
|
||||||
|
->where('is_public', true)
|
||||||
->whereHasMorph('documentable', [Quote::class], function ($query) {
|
->whereHasMorph('documentable', [Quote::class], function ($query) {
|
||||||
$query->where('client_id', $this->client->id);
|
$query->where('client_id', $this->client->id);
|
||||||
});
|
});
|
||||||
@ -172,6 +179,7 @@ class DocumentsTable extends Component
|
|||||||
protected function recurringInvoices()
|
protected function recurringInvoices()
|
||||||
{
|
{
|
||||||
return Document::query()
|
return Document::query()
|
||||||
|
->where('is_public', true)
|
||||||
->whereHasMorph('documentable', [RecurringInvoice::class], function ($query) {
|
->whereHasMorph('documentable', [RecurringInvoice::class], function ($query) {
|
||||||
$query->where('client_id', $this->client->id);
|
$query->where('client_id', $this->client->id);
|
||||||
});
|
});
|
||||||
@ -180,6 +188,7 @@ class DocumentsTable extends Component
|
|||||||
protected function tasks()
|
protected function tasks()
|
||||||
{
|
{
|
||||||
return Document::query()
|
return Document::query()
|
||||||
|
->where('is_public', true)
|
||||||
->whereHasMorph('documentable', [Task::class], function ($query) {
|
->whereHasMorph('documentable', [Task::class], function ($query) {
|
||||||
$query->where('client_id', $this->client->id);
|
$query->where('client_id', $this->client->id);
|
||||||
});
|
});
|
||||||
|
@ -22,7 +22,10 @@ class UploadBankIntegrationRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->bank_integration);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->bank_integration);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
@ -41,6 +44,20 @@ class UploadBankIntegrationRequest extends Request
|
|||||||
$rules['file'] = $this->file_validation;
|
$rules['file'] = $this->file_validation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rules['is_public'] = 'sometimes|boolean';
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public'])) {
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,10 @@ class UploadBankTransactionRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->bank_transaction);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->bank_transaction);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
@ -41,6 +44,20 @@ class UploadBankTransactionRequest extends Request
|
|||||||
$rules['file'] = $this->file_validation;
|
$rules['file'] = $this->file_validation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rules['is_public'] = 'sometimes|boolean';
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public'])) {
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,11 +33,17 @@ class StoreClientRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('create', Client::class);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('create', Client::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
if ($this->file('documents') && is_array($this->file('documents'))) {
|
if ($this->file('documents') && is_array($this->file('documents'))) {
|
||||||
$rules['documents.*'] = $this->file_validation;
|
$rules['documents.*'] = $this->file_validation;
|
||||||
} elseif ($this->file('documents')) {
|
} elseif ($this->file('documents')) {
|
||||||
@ -51,7 +57,7 @@ class StoreClientRequest extends Request
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($this->number)) {
|
if (isset($this->number)) {
|
||||||
$rules['number'] = Rule::unique('clients')->where('company_id', auth()->user()->company()->id);
|
$rules['number'] = Rule::unique('clients')->where('company_id', $user->company()->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
$rules['country_id'] = 'integer|nullable';
|
$rules['country_id'] = 'integer|nullable';
|
||||||
@ -81,12 +87,12 @@ class StoreClientRequest extends Request
|
|||||||
//'regex:/[@$!%*#?&.]/', // must contain a special character
|
//'regex:/[@$!%*#?&.]/', // must contain a special character
|
||||||
];
|
];
|
||||||
|
|
||||||
if (auth()->user()->company()->account->isFreeHostedClient()) {
|
if ($user->company()->account->isFreeHostedClient()) {
|
||||||
$rules['id'] = new CanStoreClientsRule(auth()->user()->company()->id);
|
$rules['id'] = new CanStoreClientsRule($user->company()->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
$rules['number'] = ['bail', 'nullable', Rule::unique('clients')->where('company_id', auth()->user()->company()->id)];
|
$rules['number'] = ['bail', 'nullable', Rule::unique('clients')->where('company_id', $user->company()->id)];
|
||||||
$rules['id_number'] = ['bail', 'nullable', Rule::unique('clients')->where('company_id', auth()->user()->company()->id)];
|
$rules['id_number'] = ['bail', 'nullable', Rule::unique('clients')->where('company_id', $user->company()->id)];
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
@ -94,6 +100,8 @@ class StoreClientRequest extends Request
|
|||||||
public function prepareForValidation()
|
public function prepareForValidation()
|
||||||
{
|
{
|
||||||
$input = $this->all();
|
$input = $this->all();
|
||||||
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
/* Default settings */
|
/* Default settings */
|
||||||
$settings = (array)ClientSettings::defaults();
|
$settings = (array)ClientSettings::defaults();
|
||||||
@ -130,10 +138,10 @@ class StoreClientRequest extends Request
|
|||||||
if ($group_settings && property_exists($group_settings->settings, 'currency_id') && isset($group_settings->settings->currency_id)) {
|
if ($group_settings && property_exists($group_settings->settings, 'currency_id') && isset($group_settings->settings->currency_id)) {
|
||||||
$input['settings']['currency_id'] = (string) $group_settings->settings->currency_id;
|
$input['settings']['currency_id'] = (string) $group_settings->settings->currency_id;
|
||||||
} else {
|
} else {
|
||||||
$input['settings']['currency_id'] = (string) auth()->user()->company()->settings->currency_id;
|
$input['settings']['currency_id'] = (string) $user->company()->settings->currency_id;
|
||||||
}
|
}
|
||||||
} elseif (! array_key_exists('currency_id', $input['settings'])) {
|
} elseif (! array_key_exists('currency_id', $input['settings'])) {
|
||||||
$input['settings']['currency_id'] = (string) auth()->user()->company()->settings->currency_id;
|
$input['settings']['currency_id'] = (string) $user->company()->settings->currency_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($input['currency_code'])) {
|
if (isset($input['currency_code'])) {
|
||||||
|
@ -31,12 +31,17 @@ class UpdateClientRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->client);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->client);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
/* Ensure we have a client name, and that all emails are unique*/
|
/* Ensure we have a client name, and that all emails are unique*/
|
||||||
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
if ($this->file('documents') && is_array($this->file('documents'))) {
|
if ($this->file('documents') && is_array($this->file('documents'))) {
|
||||||
$rules['documents.*'] = $this->file_validation;
|
$rules['documents.*'] = $this->file_validation;
|
||||||
@ -55,15 +60,13 @@ class UpdateClientRequest extends Request
|
|||||||
$rules['size_id'] = 'integer|nullable';
|
$rules['size_id'] = 'integer|nullable';
|
||||||
$rules['country_id'] = 'integer|nullable';
|
$rules['country_id'] = 'integer|nullable';
|
||||||
$rules['shipping_country_id'] = 'integer|nullable';
|
$rules['shipping_country_id'] = 'integer|nullable';
|
||||||
//$rules['id_number'] = 'unique:clients,id_number,,id,company_id,' . auth()->user()->company()->id;
|
|
||||||
//$rules['id_number'] = 'unique:clients,id_number,'.$this->id.',id,company_id,'.$this->company_id;
|
|
||||||
|
|
||||||
if ($this->id_number) {
|
if ($this->id_number) {
|
||||||
$rules['id_number'] = Rule::unique('clients')->where('company_id', auth()->user()->company()->id)->ignore($this->client->id);
|
$rules['id_number'] = Rule::unique('clients')->where('company_id', $user->company()->id)->ignore($this->client->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->number) {
|
if ($this->number) {
|
||||||
$rules['number'] = Rule::unique('clients')->where('company_id', auth()->user()->company()->id)->ignore($this->client->id);
|
$rules['number'] = Rule::unique('clients')->where('company_id', $user->company()->id)->ignore($this->client->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
$rules['settings'] = new ValidClientGroupSettingsRule();
|
$rules['settings'] = new ValidClientGroupSettingsRule();
|
||||||
@ -99,9 +102,12 @@ class UpdateClientRequest extends Request
|
|||||||
{
|
{
|
||||||
$input = $this->all();
|
$input = $this->all();
|
||||||
|
|
||||||
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
/* If the user removes the currency we must always set the default */
|
/* If the user removes the currency we must always set the default */
|
||||||
if (array_key_exists('settings', $input) && ! array_key_exists('currency_id', $input['settings'])) {
|
if (array_key_exists('settings', $input) && ! array_key_exists('currency_id', $input['settings'])) {
|
||||||
$input['settings']['currency_id'] = (string) auth()->user()->company()->settings->currency_id;
|
$input['settings']['currency_id'] = (string) $user->company()->settings->currency_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($input['language_code'])) {
|
if (isset($input['language_code'])) {
|
||||||
|
@ -22,7 +22,10 @@ class UploadClientRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->client);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->client);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
@ -41,6 +44,20 @@ class UploadClientRequest extends Request
|
|||||||
$rules['file'] = $this->file_validation;
|
$rules['file'] = $this->file_validation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rules['is_public'] = 'sometimes|boolean';
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public'])) {
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,10 @@ class UploadCreditRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->credit);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->credit);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
@ -41,6 +44,20 @@ class UploadCreditRequest extends Request
|
|||||||
$rules['file'] = $this->file_validation;
|
$rules['file'] = $this->file_validation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rules['is_public'] = 'sometimes|boolean';
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public'])) {
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,9 @@ class CreateDocumentRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('create', Document::class);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('create', Document::class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,9 @@ class DestroyDocumentRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->document);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->document);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,10 @@ class EditDocumentRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->document);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->document);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,7 +22,10 @@ class ShowDocumentRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('view', $this->document);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('view', $this->document);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -23,12 +23,16 @@ class StoreDocumentRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('create', Document::class);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('create', Document::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'is_public' => 'sometimes|boolean',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,6 +40,10 @@ class StoreDocumentRequest extends Request
|
|||||||
{
|
{
|
||||||
$input = $this->all();
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public']))
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
|
||||||
$this->replace($input);
|
$this->replace($input);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -34,14 +34,20 @@ class UpdateDocumentRequest extends Request
|
|||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'name' => 'sometimes'
|
'name' => 'sometimes',
|
||||||
|
'is_public' => 'sometimes|boolean',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function prepareForValidation()
|
public function prepareForValidation()
|
||||||
{
|
{
|
||||||
$input = $this->all();
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public']))
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
|
||||||
$this->replace($input);
|
$this->replace($input);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,10 @@ class UploadExpenseRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->expense);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->expense);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
@ -41,6 +44,20 @@ class UploadExpenseRequest extends Request
|
|||||||
$rules['file'] = $this->file_validation;
|
$rules['file'] = $this->file_validation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rules['is_public'] = 'sometimes|boolean';
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public'])) {
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ class UploadInvoiceRequest extends Request
|
|||||||
{
|
{
|
||||||
/** @var \App\Models\User $user */
|
/** @var \App\Models\User $user */
|
||||||
$user = auth()->user();
|
$user = auth()->user();
|
||||||
|
|
||||||
return $user->can('edit', $this->invoice);
|
return $user->can('edit', $this->invoice);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,24 +52,13 @@ class UploadInvoiceRequest extends Request
|
|||||||
|
|
||||||
public function prepareForValidation()
|
public function prepareForValidation()
|
||||||
{
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
//tests to see if upload via binary data works.
|
if(isset($input['is_public'])) {
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
// if(request()->getContent())
|
}
|
||||||
// {
|
|
||||||
// // $file = new UploadedFile(request()->getContent(), request()->header('filename'));
|
|
||||||
// $file = new UploadedFile(request()->getContent(), 'something.png');
|
|
||||||
// // request()->files->set('documents', $file);
|
|
||||||
|
|
||||||
// $this->files->add(['file' => $file]);
|
|
||||||
|
|
||||||
// // Merge it in request also (As I found this is not needed in every case)
|
|
||||||
// $this->merge(['file' => $file]);
|
|
||||||
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* Payment Ninja (https://paymentninja.com).
|
* Payment Ninja (https://paymentninja.com).
|
||||||
*
|
*
|
||||||
* @link https://github.com/paymentninja/paymentninja source repository
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2022. Payment Ninja LLC (https://paymentninja.com)
|
* @copyright Copyright (c) 2022. Payment Ninja LLC (https://paymentninja.com)
|
||||||
*
|
*
|
||||||
@ -22,7 +22,10 @@ class UploadPaymentRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->payment);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->payment);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
@ -41,6 +44,20 @@ class UploadPaymentRequest extends Request
|
|||||||
$rules['file'] = $this->file_validation;
|
$rules['file'] = $this->file_validation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rules['is_public'] = 'sometimes|boolean';
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public'])) {
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* Product Ninja (https://paymentninja.com).
|
* Product Ninja (https://paymentninja.com).
|
||||||
*
|
*
|
||||||
* @link https://github.com/paymentninja/paymentninja source repository
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2022. Product Ninja LLC (https://paymentninja.com)
|
* @copyright Copyright (c) 2022. Product Ninja LLC (https://paymentninja.com)
|
||||||
*
|
*
|
||||||
@ -22,7 +22,10 @@ class UploadProductRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->product);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->product);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
@ -40,6 +43,20 @@ class UploadProductRequest extends Request
|
|||||||
$rules['file'] = $this->file_validation;
|
$rules['file'] = $this->file_validation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rules['is_public'] = 'sometimes|boolean';
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public'])) {
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* Project Ninja (https://paymentninja.com).
|
* Project Ninja (https://paymentninja.com).
|
||||||
*
|
*
|
||||||
* @link https://github.com/paymentninja/paymentninja source repository
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2022. Project Ninja LLC (https://paymentninja.com)
|
* @copyright Copyright (c) 2022. Project Ninja LLC (https://paymentninja.com)
|
||||||
*
|
*
|
||||||
@ -22,7 +22,10 @@ class UploadProjectRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->project);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->project);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
@ -41,6 +44,20 @@ class UploadProjectRequest extends Request
|
|||||||
$rules['file'] = $this->file_validation;
|
$rules['file'] = $this->file_validation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rules['is_public'] = 'sometimes|boolean';
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public'])) {
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Quote Ninja (https://paymentninja.com).
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
*
|
*
|
||||||
* @link https://github.com/paymentninja/paymentninja source repository
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2022. Quote Ninja LLC (https://paymentninja.com)
|
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
*
|
*
|
||||||
* @license https://www.elastic.co/licensing/elastic-license
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
*/
|
*/
|
||||||
@ -22,7 +22,10 @@ class UploadPurchaseOrderRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->purchase_order);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->purchase_order);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
@ -41,6 +44,20 @@ class UploadPurchaseOrderRequest extends Request
|
|||||||
$rules['file'] = $this->file_validation;
|
$rules['file'] = $this->file_validation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rules['is_public'] = 'sometimes|boolean';
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public'])) {
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Quote Ninja (https://paymentninja.com).
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
*
|
*
|
||||||
* @link https://github.com/paymentninja/paymentninja source repository
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2022. Quote Ninja LLC (https://paymentninja.com)
|
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
*
|
*
|
||||||
* @license https://www.elastic.co/licensing/elastic-license
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
*/
|
*/
|
||||||
@ -22,7 +22,10 @@ class UploadQuoteRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->quote);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->quote);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
@ -41,6 +44,20 @@ class UploadQuoteRequest extends Request
|
|||||||
$rules['file'] = $this->file_validation;
|
$rules['file'] = $this->file_validation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rules['is_public'] = 'sometimes|boolean';
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public'])) {
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Quote Ninja (https://paymentninja.com).
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
*
|
*
|
||||||
* @link https://github.com/paymentninja/paymentninja source repository
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2022. Quote Ninja LLC (https://paymentninja.com)
|
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
*
|
*
|
||||||
* @license https://www.elastic.co/licensing/elastic-license
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
*/
|
*/
|
||||||
@ -22,7 +22,10 @@ class UploadRecurringInvoiceRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->recurring_invoice);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->recurring_invoice);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
@ -41,6 +44,20 @@ class UploadRecurringInvoiceRequest extends Request
|
|||||||
$rules['file'] = $this->file_validation;
|
$rules['file'] = $this->file_validation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rules['is_public'] = 'sometimes|boolean';
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public'])) {
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Quote Ninja (https://paymentninja.com).
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
*
|
*
|
||||||
* @link https://github.com/paymentninja/paymentninja source repository
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2022. Quote Ninja LLC (https://paymentninja.com)
|
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
*
|
*
|
||||||
* @license https://www.elastic.co/licensing/elastic-license
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
*/
|
*/
|
||||||
|
41
app/Http/Requests/Report/ReportPreviewRequest.php
Normal file
41
app/Http/Requests/Report/ReportPreviewRequest.php
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2023. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace App\Http\Requests\Report;
|
||||||
|
|
||||||
|
use App\Http\Requests\Request;
|
||||||
|
|
||||||
|
class ReportPreviewRequest extends Request
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the user is authorized to make this request.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function authorize() : bool
|
||||||
|
{
|
||||||
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->isAdmin() || $user->hasPermission('view_reports');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
@ -199,6 +199,17 @@ class Request extends FormRequest
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert to boolean
|
||||||
|
*
|
||||||
|
* @param $bool
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function toBoolean($bool): bool
|
||||||
|
{
|
||||||
|
return filter_var($bool, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
public function checkTimeLog(array $log): bool
|
public function checkTimeLog(array $log): bool
|
||||||
{
|
{
|
||||||
if (count($log) == 0) {
|
if (count($log) == 0) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* Invoice Ninja (https://paymentninja.com).
|
* Invoice Ninja (https://paymentninja.com).
|
||||||
*
|
*
|
||||||
* @link https://github.com/paymentninja/paymentninja source repository
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://paymentninja.com)
|
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://paymentninja.com)
|
||||||
*
|
*
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Quote Ninja (https://paymentninja.com).
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
*
|
*
|
||||||
* @link https://github.com/paymentninja/paymentninja source repository
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2022. Quote Ninja LLC (https://paymentninja.com)
|
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
*
|
*
|
||||||
* @license https://www.elastic.co/licensing/elastic-license
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
*/
|
*/
|
||||||
@ -22,17 +22,41 @@ class UploadTaskRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function authorize() : bool
|
public function authorize() : bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('edit', $this->task);
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
return $user->can('edit', $this->task);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
$rules = [];
|
$rules = [];
|
||||||
|
|
||||||
if ($this->input('documents')) {
|
if ($this->file('documents') && is_array($this->file('documents'))) {
|
||||||
$rules['documents'] = 'file|mimes:csv,png,ai,jpeg,tiff,pdf,gif,psd,txt,doc,xls,ppt,xlsx,docx,pptx|max:2000000';
|
$rules['documents.*'] = $this->file_validation;
|
||||||
|
} elseif ($this->file('documents')) {
|
||||||
|
$rules['documents'] = $this->file_validation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->file('file') && is_array($this->file('file'))) {
|
||||||
|
$rules['file.*'] = $this->file_validation;
|
||||||
|
} elseif ($this->file('file')) {
|
||||||
|
$rules['file'] = $this->file_validation;
|
||||||
|
}
|
||||||
|
|
||||||
|
$rules['is_public'] = 'sometimes|boolean';
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public']))
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
18
app/Http/Requests/Vendor/UploadVendorRequest.php
vendored
18
app/Http/Requests/Vendor/UploadVendorRequest.php
vendored
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Quote Ninja (https://paymentninja.com).
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
*
|
*
|
||||||
* @link https://github.com/paymentninja/paymentninja source repository
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2022. Quote Ninja LLC (https://paymentninja.com)
|
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
*
|
*
|
||||||
* @license https://www.elastic.co/licensing/elastic-license
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
*/
|
*/
|
||||||
@ -41,6 +41,18 @@ class UploadVendorRequest extends Request
|
|||||||
$rules['file'] = $this->file_validation;
|
$rules['file'] = $this->file_validation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rules['is_public'] = 'sometimes|boolean';
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$input = $this->all();
|
||||||
|
|
||||||
|
if(isset($input['is_public']))
|
||||||
|
$input['is_public'] = $this->toBoolean($input['is_public']);
|
||||||
|
|
||||||
|
$this->replace($input);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -111,6 +111,7 @@ class ProcessBankTransactions implements ShouldQueue
|
|||||||
if($account[0]['current_balance']) {
|
if($account[0]['current_balance']) {
|
||||||
$this->bank_integration->balance = $account[0]['current_balance'];
|
$this->bank_integration->balance = $account[0]['current_balance'];
|
||||||
$this->bank_integration->currency = $account[0]['account_currency'];
|
$this->bank_integration->currency = $account[0]['account_currency'];
|
||||||
|
$this->bank_integration->bank_account_status = $account[0]['account_status'];
|
||||||
$this->bank_integration->save();
|
$this->bank_integration->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ class NinjaMailerJob implements ShouldQueue
|
|||||||
|
|
||||||
public $override;
|
public $override;
|
||||||
|
|
||||||
/** @var \App\Models\Company $company | null **/
|
/** @var null|\App\Models\Company $company **/
|
||||||
public ?Company $company;
|
public ?Company $company;
|
||||||
|
|
||||||
private $mailer;
|
private $mailer;
|
||||||
@ -143,8 +143,6 @@ class NinjaMailerJob implements ShouldQueue
|
|||||||
LightLogs::create(new EmailSuccess($this->nmo->company->company_key))
|
LightLogs::create(new EmailSuccess($this->nmo->company->company_key))
|
||||||
->send();
|
->send();
|
||||||
|
|
||||||
$this->nmo = null;
|
|
||||||
$this->company = null;
|
|
||||||
} catch(\Symfony\Component\Mime\Exception\RfcComplianceException $e) {
|
} catch(\Symfony\Component\Mime\Exception\RfcComplianceException $e) {
|
||||||
nlog("Mailer failed with a Logic Exception {$e->getMessage()}");
|
nlog("Mailer failed with a Logic Exception {$e->getMessage()}");
|
||||||
$this->fail();
|
$this->fail();
|
||||||
@ -195,6 +193,9 @@ class NinjaMailerJob implements ShouldQueue
|
|||||||
$this->release($this->backoff()[$this->attempts()-1]);
|
$this->release($this->backoff()[$this->attempts()-1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->nmo = null;
|
||||||
|
$this->company = null;
|
||||||
|
|
||||||
/*Clean up mailers*/
|
/*Clean up mailers*/
|
||||||
$this->cleanUpMailers();
|
$this->cleanUpMailers();
|
||||||
}
|
}
|
||||||
|
51
app/Jobs/Report/PreviewReport.php
Normal file
51
app/Jobs/Report/PreviewReport.php
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2023. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace App\Jobs\Report;
|
||||||
|
|
||||||
|
use App\Models\Company;
|
||||||
|
use App\Libraries\MultiDB;
|
||||||
|
use Illuminate\Bus\Queueable;
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
|
use Illuminate\Queue\Middleware\WithoutOverlapping;
|
||||||
|
|
||||||
|
class PreviewReport implements ShouldQueue
|
||||||
|
{
|
||||||
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new job instance
|
||||||
|
*/
|
||||||
|
public function __construct(protected Company $company, protected array $request, private string $report_class, protected string $hash)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
MultiDB::setDb($this->company->db);
|
||||||
|
|
||||||
|
/** @var \App\Export\CSV\CreditExport $export */
|
||||||
|
$export = new $this->report_class($this->company, $this->request);
|
||||||
|
$report = $export->returnJson();
|
||||||
|
|
||||||
|
// nlog($report);
|
||||||
|
Cache::put($this->hash, $report, 60 * 60);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function middleware()
|
||||||
|
{
|
||||||
|
return [new WithoutOverlapping("report-{$this->company->company_key}")];
|
||||||
|
}
|
||||||
|
}
|
@ -880,6 +880,13 @@ class Company extends BaseModel
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function utc_offset(): int
|
||||||
|
{
|
||||||
|
$timezone = $this->timezone();
|
||||||
|
|
||||||
|
return $timezone->utc_offset ?? 0;
|
||||||
|
}
|
||||||
|
|
||||||
public function timezone_offset(): int
|
public function timezone_offset(): int
|
||||||
{
|
{
|
||||||
$offset = 0;
|
$offset = 0;
|
||||||
|
@ -222,6 +222,22 @@ class CompanyGateway extends BaseModel
|
|||||||
$this->config = encrypt(json_encode($config));
|
$this->config = encrypt(json_encode($config));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* setConfigField
|
||||||
|
*
|
||||||
|
* @param mixed $field
|
||||||
|
* @param mixed $value
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setConfigField($field, $value): void
|
||||||
|
{
|
||||||
|
$config = $this->getConfig();
|
||||||
|
$config->{$field} = $value;
|
||||||
|
|
||||||
|
$this->setConfig($config);
|
||||||
|
$this->save();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
|
@ -77,6 +77,16 @@ class Document extends BaseModel
|
|||||||
'name',
|
'name',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<string>
|
||||||
|
*/
|
||||||
|
protected $casts = [
|
||||||
|
'is_public' => 'bool',
|
||||||
|
'updated_at' => 'timestamp',
|
||||||
|
'created_at' => 'timestamp',
|
||||||
|
'deleted_at' => 'timestamp',
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
|
@ -171,7 +171,7 @@ class Gateway extends StaticModel
|
|||||||
];
|
];
|
||||||
case 57:
|
case 57:
|
||||||
return [
|
return [
|
||||||
GatewayType::CREDIT_CARD => ['refund' => false, 'token_billing' => true], //Square
|
GatewayType::CREDIT_CARD => ['refund' => true, 'token_billing' => true], //Square
|
||||||
];
|
];
|
||||||
case 52:
|
case 52:
|
||||||
return [
|
return [
|
||||||
|
@ -17,7 +17,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
* App\Models\PaymentHash
|
* App\Models\PaymentHash
|
||||||
*
|
*
|
||||||
* @property int $id
|
* @property int $id
|
||||||
* @property string $hash
|
* @property string $hash 32 char length AlphaNum
|
||||||
* @property float $fee_total
|
* @property float $fee_total
|
||||||
* @property int|null $fee_invoice_id
|
* @property int|null $fee_invoice_id
|
||||||
* @property \stdClass $data
|
* @property \stdClass $data
|
||||||
@ -41,6 +41,7 @@ class PaymentHash extends Model
|
|||||||
/**
|
/**
|
||||||
* @class \App\Models\PaymentHash $this
|
* @class \App\Models\PaymentHash $this
|
||||||
* @property \App\Models\PaymentHash $data
|
* @property \App\Models\PaymentHash $data
|
||||||
|
* @property \App\Modes\PaymentHash $hash 32 char length AlphaNum
|
||||||
* @class \stdClass $data
|
* @class \stdClass $data
|
||||||
* @property string $raw_value
|
* @property string $raw_value
|
||||||
*/
|
*/
|
||||||
|
@ -195,7 +195,10 @@ class SystemLog extends Model
|
|||||||
*/
|
*/
|
||||||
public function scopeCompany($query)
|
public function scopeCompany($query)
|
||||||
{
|
{
|
||||||
$query->where('company_id', auth()->user()->companyId());
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
$query->where('company_id', $user->companyId());
|
||||||
|
|
||||||
return $query;
|
return $query;
|
||||||
}
|
}
|
||||||
|
@ -263,6 +263,8 @@ class BaseDriver extends AbstractPaymentDriver
|
|||||||
public function setClient(Client $client)
|
public function setClient(Client $client)
|
||||||
{
|
{
|
||||||
$this->client = $client;
|
$this->client = $client;
|
||||||
|
|
||||||
|
return $this;
|
||||||
}
|
}
|
||||||
/************************** Helper methods *************************************/
|
/************************** Helper methods *************************************/
|
||||||
|
|
||||||
|
@ -12,30 +12,30 @@
|
|||||||
|
|
||||||
namespace App\PaymentDrivers\Square;
|
namespace App\PaymentDrivers\Square;
|
||||||
|
|
||||||
use App\Exceptions\PaymentFailed;
|
use App\Models\Invoice;
|
||||||
use App\Http\Requests\ClientPortal\Payments\PaymentResponseRequest;
|
|
||||||
use App\Models\ClientGatewayToken;
|
|
||||||
use App\Models\GatewayType;
|
|
||||||
use App\Models\Payment;
|
use App\Models\Payment;
|
||||||
use App\Models\PaymentType;
|
use App\Models\SystemLog;
|
||||||
use App\PaymentDrivers\Common\MethodInterface;
|
|
||||||
use App\PaymentDrivers\SquarePaymentDriver;
|
|
||||||
use App\Utils\Traits\MakesHash;
|
|
||||||
use Illuminate\Http\RedirectResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Str;
|
|
||||||
use Illuminate\View\View;
|
use Illuminate\View\View;
|
||||||
|
use App\Models\GatewayType;
|
||||||
|
use App\Models\PaymentType;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use Square\Http\ApiResponse;
|
use Square\Http\ApiResponse;
|
||||||
|
use App\Jobs\Util\SystemLogger;
|
||||||
|
use App\Utils\Traits\MakesHash;
|
||||||
|
use App\Exceptions\PaymentFailed;
|
||||||
|
use App\Models\ClientGatewayToken;
|
||||||
|
use Illuminate\Http\RedirectResponse;
|
||||||
|
use App\PaymentDrivers\SquarePaymentDriver;
|
||||||
|
use App\PaymentDrivers\Common\MethodInterface;
|
||||||
|
use App\Http\Requests\ClientPortal\Payments\PaymentResponseRequest;
|
||||||
|
|
||||||
class CreditCard implements MethodInterface
|
class CreditCard implements MethodInterface
|
||||||
{
|
{
|
||||||
use MakesHash;
|
use MakesHash;
|
||||||
|
|
||||||
public $square_driver;
|
public function __construct(public SquarePaymentDriver $square_driver)
|
||||||
|
|
||||||
public function __construct(SquarePaymentDriver $square_driver)
|
|
||||||
{
|
{
|
||||||
$this->square_driver = $square_driver;
|
|
||||||
$this->square_driver->init();
|
$this->square_driver->init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,20 +100,28 @@ class CreditCard implements MethodInterface
|
|||||||
);
|
);
|
||||||
|
|
||||||
if ($request->shouldUseToken()) {
|
if ($request->shouldUseToken()) {
|
||||||
/** @var \App\Models\ClientGatewayToken $cgt **/
|
$cgt = ClientGatewayToken::query()->where('token', $request->token)->first();
|
||||||
$cgt = ClientGatewayToken::where('token', $request->token)->first();
|
|
||||||
$token = $cgt->token;
|
$token = $cgt->token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$invoice = Invoice::query()->whereIn('id', $this->transformKeys(array_column($this->square_driver->payment_hash->invoices(), 'invoice_id')))->withTrashed()->first();
|
||||||
|
|
||||||
|
if ($invoice) {
|
||||||
|
$description = "Invoice {$invoice->number} for {$amount} for client {$this->square_driver->client->present()->name()}";
|
||||||
|
} else {
|
||||||
|
$description = "Payment with no invoice for amount {$amount} for client {$this->square_driver->client->present()->name()}";
|
||||||
|
}
|
||||||
|
|
||||||
$amount_money = new \Square\Models\Money();
|
$amount_money = new \Square\Models\Money();
|
||||||
$amount_money->setAmount($amount);
|
$amount_money->setAmount($amount);
|
||||||
$amount_money->setCurrency($this->square_driver->client->currency()->code);
|
$amount_money->setCurrency($this->square_driver->client->currency()->code);
|
||||||
|
|
||||||
$body = new \Square\Models\CreatePaymentRequest($token, $request->idempotencyKey, $amount_money);
|
$body = new \Square\Models\CreatePaymentRequest($token, $request->idempotencyKey);
|
||||||
|
$body->setAmountMoney($amount_money);
|
||||||
$body->setAutocomplete(true);
|
$body->setAutocomplete(true);
|
||||||
$body->setLocationId($this->square_driver->company_gateway->getConfigField('locationId'));
|
$body->setLocationId($this->square_driver->company_gateway->getConfigField('locationId'));
|
||||||
$body->setReferenceId(Str::random(16));
|
$body->setReferenceId($this->square_driver->payment_hash->hash);
|
||||||
|
$body->setNote($description);
|
||||||
|
|
||||||
if ($request->shouldUseToken()) {
|
if ($request->shouldUseToken()) {
|
||||||
$body->setCustomerId($cgt->gateway_customer_reference);
|
$body->setCustomerId($cgt->gateway_customer_reference);
|
||||||
@ -121,7 +129,6 @@ class CreditCard implements MethodInterface
|
|||||||
$body->setVerificationToken($request->input('verificationToken'));
|
$body->setVerificationToken($request->input('verificationToken'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @var ApiResponse */
|
|
||||||
$response = $this->square_driver->square->getPaymentsApi()->createPayment($body);
|
$response = $this->square_driver->square->getPaymentsApi()->createPayment($body);
|
||||||
|
|
||||||
if ($response->isSuccess()) {
|
if ($response->isSuccess()) {
|
||||||
@ -152,6 +159,20 @@ class CreditCard implements MethodInterface
|
|||||||
|
|
||||||
$payment = $this->square_driver->createPayment($payment_record, Payment::STATUS_COMPLETED);
|
$payment = $this->square_driver->createPayment($payment_record, Payment::STATUS_COMPLETED);
|
||||||
|
|
||||||
|
$message = [
|
||||||
|
'server_response' => $body,
|
||||||
|
'data' => $this->square_driver->payment_hash->data,
|
||||||
|
];
|
||||||
|
|
||||||
|
SystemLogger::dispatch(
|
||||||
|
$message,
|
||||||
|
SystemLog::CATEGORY_GATEWAY_RESPONSE,
|
||||||
|
SystemLog::EVENT_GATEWAY_SUCCESS,
|
||||||
|
SystemLog::TYPE_SQUARE,
|
||||||
|
$this->square_driver->client,
|
||||||
|
$this->square_driver->client->company,
|
||||||
|
);
|
||||||
|
|
||||||
return redirect()->route('client.payments.show', ['payment' => $this->encodePrimaryKey($payment->id)]);
|
return redirect()->route('client.payments.show', ['payment' => $this->encodePrimaryKey($payment->id)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
176
app/PaymentDrivers/Square/SquareWebhook.php
Normal file
176
app/PaymentDrivers/Square/SquareWebhook.php
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2023. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace App\PaymentDrivers\Square;
|
||||||
|
|
||||||
|
use App\Models\Payment;
|
||||||
|
use App\Models\SystemLog;
|
||||||
|
use App\Libraries\MultiDB;
|
||||||
|
use App\Models\GatewayType;
|
||||||
|
use App\Models\PaymentHash;
|
||||||
|
use App\Models\PaymentType;
|
||||||
|
use Illuminate\Bus\Queueable;
|
||||||
|
use App\Models\CompanyGateway;
|
||||||
|
use App\Jobs\Util\SystemLogger;
|
||||||
|
use App\Jobs\Mail\PaymentFailedMailer;
|
||||||
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
use App\PaymentDrivers\Stripe\Utilities;
|
||||||
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
|
use App\PaymentDrivers\SquarePaymentDriver;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
|
|
||||||
|
class SquareWebhook implements ShouldQueue
|
||||||
|
{
|
||||||
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, Utilities;
|
||||||
|
|
||||||
|
public $tries = 1;
|
||||||
|
|
||||||
|
public $deleteWhenMissingModels = true;
|
||||||
|
|
||||||
|
public CompanyGateway $company_gateway;
|
||||||
|
|
||||||
|
public SquarePaymentDriver $driver;
|
||||||
|
|
||||||
|
public \Square\SquareClient $square;
|
||||||
|
|
||||||
|
private array $source_type = [
|
||||||
|
'CARD' => PaymentType::CREDIT_CARD_OTHER,
|
||||||
|
'BANK_ACCOUNT' => PaymentType::ACH,
|
||||||
|
'WALLET' => PaymentType::CREDIT_CARD_OTHER,
|
||||||
|
'BUY_NOW_PAY_LATER' => PaymentType::CREDIT_CARD_OTHER,
|
||||||
|
'SQUARE_ACCOUNT' => PaymentType::CREDIT_CARD_OTHER,
|
||||||
|
'CASH' => PaymentType::CASH,
|
||||||
|
'EXTERNAL' =>PaymentType::CREDIT_CARD_OTHER
|
||||||
|
];
|
||||||
|
|
||||||
|
public function __construct(public array $webhook_array, public string $company_key, public int $company_gateway_id)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
nlog("Square Webhook");
|
||||||
|
|
||||||
|
MultiDB::findAndSetDbByCompanyKey($this->company_key);
|
||||||
|
|
||||||
|
$this->company_gateway = CompanyGateway::query()->withTrashed()->find($this->company_gateway_id);
|
||||||
|
$this->driver = $this->company_gateway->driver()->init();
|
||||||
|
$this->square = $this->driver->square;
|
||||||
|
|
||||||
|
$status = $this->webhook_array['data']['object']['payment']['status'] ?? false;
|
||||||
|
$payment_id = $this->webhook_array['data']['object']['payment']['id'] ?? null;
|
||||||
|
|
||||||
|
$payment_status = false;
|
||||||
|
|
||||||
|
match($status){
|
||||||
|
'APPROVED' => $payment_status = false,
|
||||||
|
'COMPLETED' => $payment_status = Payment::STATUS_COMPLETED,
|
||||||
|
'PENDING' => $payment_status = Payment::STATUS_PENDING,
|
||||||
|
'CANCELED' => $payment_status = Payment::STATUS_CANCELLED,
|
||||||
|
'FAILED' => $payment_status = Payment::STATUS_FAILED,
|
||||||
|
default => $payment_status = false,
|
||||||
|
};
|
||||||
|
|
||||||
|
if(!$payment_status){
|
||||||
|
nlog("Square Webhook - Payment Status Not Found or not worthy of processing");
|
||||||
|
nlog($this->webhook_array);
|
||||||
|
}
|
||||||
|
|
||||||
|
$payment = $this->retrieveOrCreatePayment($payment_id, $payment_status);
|
||||||
|
|
||||||
|
/** If the status was pending and now is reporting as Failed / Cancelled - process failure path */
|
||||||
|
if($payment->status_id == Payment::STATUS_PENDING && in_array($payment_status, [Payment::STATUS_CANCELLED, Payment::STATUS_FAILED])){
|
||||||
|
$payment->service()->deletePayment();
|
||||||
|
|
||||||
|
if ($this->driver->payment_hash) {
|
||||||
|
$error = ctrans('texts.client_payment_failure_body', [
|
||||||
|
'invoice' => implode(',', $payment->invoices->pluck('number')->toArray()),
|
||||||
|
'amount' => array_sum(array_column($this->driver->payment_hash->invoices(), 'amount')) + $this->driver->payment_hash->fee_total,
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
$error = 'Payment for '.$payment->client->present()->name()." for {$payment->amount} failed";
|
||||||
|
}
|
||||||
|
|
||||||
|
PaymentFailedMailer::dispatch(
|
||||||
|
$this->driver->payment_hash,
|
||||||
|
$this->driver->client->company,
|
||||||
|
$this->driver->client,
|
||||||
|
$error
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
elseif($payment->status_id == Payment::STATUS_PENDING && in_array($payment_status, [Payment::STATUS_COMPLETED, Payment::STATUS_COMPLETED])){
|
||||||
|
$payment->status_id = Payment::STATUS_COMPLETED;
|
||||||
|
$payment->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private function retrieveOrCreatePayment(?string $payment_reference, int $payment_status): ?\App\Models\Payment
|
||||||
|
{
|
||||||
|
|
||||||
|
$payment = Payment::withTrashed()->where('transaction_reference', $payment_reference)->first();
|
||||||
|
|
||||||
|
if($payment) {
|
||||||
|
nlog("payment found, returning");
|
||||||
|
return $payment;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Handles the edge case where for some reason the payment has not yet been recorded in Invoice Ninja */
|
||||||
|
$apiResponse = $this->square->getPaymentsApi()->getPayment($payment_reference);
|
||||||
|
|
||||||
|
nlog("searching square for payment");
|
||||||
|
|
||||||
|
if($apiResponse->isSuccess()){
|
||||||
|
|
||||||
|
nlog("Searching by payment hash");
|
||||||
|
|
||||||
|
$payment_hash_id = $apiResponse->getPayment()->getReferenceId() ?? false;
|
||||||
|
$square_payment = $apiResponse->getPayment()->jsonSerialize();
|
||||||
|
$payment_hash = PaymentHash::query()->where('hash', $payment_hash_id)->firstOrFail();
|
||||||
|
|
||||||
|
$payment_hash->data = array_merge((array) $payment_hash->data, (array)$square_payment);
|
||||||
|
$payment_hash->save();
|
||||||
|
|
||||||
|
$this->driver->setPaymentHash($payment_hash);
|
||||||
|
$this->driver->setClient($payment_hash->fee_invoice->client);
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
'payment_type' => $this->source_type[$square_payment->source_type],
|
||||||
|
'amount' => $payment_hash->amount_with_fee,
|
||||||
|
'transaction_reference' => $square_payment->id,
|
||||||
|
'gateway_type_id' => GatewayType::BANK_TRANSFER,
|
||||||
|
];
|
||||||
|
|
||||||
|
$payment = $this->driver->createPayment($data, $payment_status);
|
||||||
|
|
||||||
|
nlog("Creating payment");
|
||||||
|
|
||||||
|
SystemLogger::dispatch(
|
||||||
|
['response' => $this->webhook_array, 'data' => $square_payment],
|
||||||
|
SystemLog::CATEGORY_GATEWAY_RESPONSE,
|
||||||
|
SystemLog::EVENT_GATEWAY_SUCCESS,
|
||||||
|
SystemLog::TYPE_SQUARE,
|
||||||
|
$this->driver->client,
|
||||||
|
$this->driver->client->company,
|
||||||
|
);
|
||||||
|
|
||||||
|
return $payment;
|
||||||
|
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
nlog("Square Webhook - Payment not found: {$payment_reference}");
|
||||||
|
nlog($apiResponse->getErrors());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -11,18 +11,22 @@
|
|||||||
|
|
||||||
namespace App\PaymentDrivers;
|
namespace App\PaymentDrivers;
|
||||||
|
|
||||||
use App\Http\Requests\Payments\PaymentWebhookRequest;
|
|
||||||
use App\Jobs\Util\SystemLogger;
|
|
||||||
use App\Models\ClientGatewayToken;
|
|
||||||
use App\Models\GatewayType;
|
|
||||||
use App\Models\Invoice;
|
use App\Models\Invoice;
|
||||||
use App\Models\Payment;
|
use App\Models\Payment;
|
||||||
|
use App\Models\SystemLog;
|
||||||
|
use App\Models\GatewayType;
|
||||||
use App\Models\PaymentHash;
|
use App\Models\PaymentHash;
|
||||||
use App\Models\PaymentType;
|
use App\Models\PaymentType;
|
||||||
use App\Models\SystemLog;
|
use App\Jobs\Util\SystemLogger;
|
||||||
use App\PaymentDrivers\Square\CreditCard;
|
|
||||||
use App\Utils\Traits\MakesHash;
|
use App\Utils\Traits\MakesHash;
|
||||||
use Square\Http\ApiResponse;
|
use Square\Utils\WebhooksHelper;
|
||||||
|
use App\Models\ClientGatewayToken;
|
||||||
|
use Square\Models\WebhookSubscription;
|
||||||
|
use App\PaymentDrivers\Square\CreditCard;
|
||||||
|
use App\PaymentDrivers\Square\SquareWebhook;
|
||||||
|
use Square\Models\CreateWebhookSubscriptionRequest;
|
||||||
|
use App\Http\Requests\Payments\PaymentWebhookRequest;
|
||||||
|
use Square\Models\Builders\RefundPaymentRequestBuilder;
|
||||||
|
|
||||||
class SquarePaymentDriver extends BaseDriver
|
class SquarePaymentDriver extends BaseDriver
|
||||||
{
|
{
|
||||||
@ -96,15 +100,115 @@ class SquarePaymentDriver extends BaseDriver
|
|||||||
public function refund(Payment $payment, $amount, $return_client_response = false)
|
public function refund(Payment $payment, $amount, $return_client_response = false)
|
||||||
{
|
{
|
||||||
$this->init();
|
$this->init();
|
||||||
|
$this->client = $payment->client;
|
||||||
|
|
||||||
$amount_money = new \Square\Models\Money();
|
$amount_money = new \Square\Models\Money();
|
||||||
$amount_money->setAmount($this->convertAmount($amount));
|
$amount_money->setAmount($this->convertAmount($amount));
|
||||||
$amount_money->setCurrency($this->client->currency()->code);
|
$amount_money->setCurrency($this->client->currency()->code);
|
||||||
|
|
||||||
$body = new \Square\Models\RefundPaymentRequest(\Illuminate\Support\Str::random(32), $amount_money, $payment->transaction_reference);
|
$body = RefundPaymentRequestBuilder::init(\Illuminate\Support\Str::random(32), $amount_money)
|
||||||
|
->paymentId($payment->transaction_reference)
|
||||||
|
->reason('Refund Request')
|
||||||
|
->build();
|
||||||
|
|
||||||
|
$apiResponse = $this->square->getRefundsApi()->refundPayment($body);
|
||||||
|
|
||||||
|
if ($apiResponse->isSuccess()) {
|
||||||
|
|
||||||
|
$refundPaymentResponse = $apiResponse->getResult();
|
||||||
|
|
||||||
|
nlog($refundPaymentResponse);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* - `PENDING` - Awaiting approval.
|
||||||
|
* - `COMPLETED` - Successfully completed.
|
||||||
|
* - `REJECTED` - The refund was rejected.
|
||||||
|
* - `FAILED` - An error occurred.
|
||||||
|
*/
|
||||||
|
|
||||||
|
$status = $refundPaymentResponse->getRefund()->getStatus();
|
||||||
|
|
||||||
|
if(in_array($status, ['COMPLETED', 'PENDING'])){
|
||||||
|
|
||||||
|
$transaction_reference = $refundPaymentResponse->getRefund()->getId();
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
'transaction_reference' => $transaction_reference,
|
||||||
|
'transaction_response' => json_encode($refundPaymentResponse->getRefund()->jsonSerialize()),
|
||||||
|
'success' => true,
|
||||||
|
'description' => $refundPaymentResponse->getRefund()->getReason(),
|
||||||
|
'code' => $refundPaymentResponse->getRefund()->getReason(),
|
||||||
|
];
|
||||||
|
|
||||||
|
SystemLogger::dispatch(
|
||||||
|
[
|
||||||
|
'server_response' => $data,
|
||||||
|
'data' => request()->all()
|
||||||
|
],
|
||||||
|
SystemLog::CATEGORY_GATEWAY_RESPONSE,
|
||||||
|
SystemLog::EVENT_GATEWAY_SUCCESS,
|
||||||
|
SystemLog::TYPE_SQUARE,
|
||||||
|
$this->client,
|
||||||
|
$this->client->company
|
||||||
|
);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
elseif(in_array($status, ['REJECTED', 'FAILED'])) {
|
||||||
|
|
||||||
|
$transaction_reference = $refundPaymentResponse->getRefund()->getId();
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
'transaction_reference' => $transaction_reference,
|
||||||
|
'transaction_response' => json_encode($refundPaymentResponse->getRefund()->jsonSerialize()),
|
||||||
|
'success' => false,
|
||||||
|
'description' => $refundPaymentResponse->getRefund()->getReason(),
|
||||||
|
'code' => $refundPaymentResponse->getRefund()->getReason(),
|
||||||
|
];
|
||||||
|
|
||||||
|
SystemLogger::dispatch(
|
||||||
|
[
|
||||||
|
'server_response' => $data,
|
||||||
|
'data' => request()->all()
|
||||||
|
],
|
||||||
|
SystemLog::CATEGORY_GATEWAY_RESPONSE,
|
||||||
|
SystemLog::EVENT_GATEWAY_FAILURE,
|
||||||
|
SystemLog::TYPE_SQUARE,
|
||||||
|
$this->client,
|
||||||
|
$this->client->company
|
||||||
|
);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
/** @var \Square\Models\Error $error */
|
||||||
|
$error = end($apiResponse->getErrors());
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
'transaction_reference' => $payment->transaction_reference,
|
||||||
|
'transaction_response' => $error->jsonSerialize(),
|
||||||
|
'success' => false,
|
||||||
|
'description' => $error->getDetail(),
|
||||||
|
'code' => $error->getCode(),
|
||||||
|
];
|
||||||
|
|
||||||
|
SystemLogger::dispatch(
|
||||||
|
[
|
||||||
|
'server_response' => $data,
|
||||||
|
'data' => request()->all()
|
||||||
|
],
|
||||||
|
SystemLog::CATEGORY_GATEWAY_RESPONSE,
|
||||||
|
SystemLog::EVENT_GATEWAY_FAILURE,
|
||||||
|
SystemLog::TYPE_SQUARE,
|
||||||
|
$this->client,
|
||||||
|
$this->client->company
|
||||||
|
);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
/** @var ApiResponse */
|
|
||||||
$response = $this->square->getRefundsApi()->refund($body);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function tokenBilling(ClientGatewayToken $cgt, PaymentHash $payment_hash)
|
public function tokenBilling(ClientGatewayToken $cgt, PaymentHash $payment_hash)
|
||||||
@ -126,10 +230,12 @@ class SquarePaymentDriver extends BaseDriver
|
|||||||
$amount_money->setAmount($amount);
|
$amount_money->setAmount($amount);
|
||||||
$amount_money->setCurrency($this->client->currency()->code);
|
$amount_money->setCurrency($this->client->currency()->code);
|
||||||
|
|
||||||
$body = new \Square\Models\CreatePaymentRequest($cgt->token, \Illuminate\Support\Str::random(32), $amount_money);
|
$body = new \Square\Models\CreatePaymentRequest($cgt->token, \Illuminate\Support\Str::random(32));
|
||||||
$body->setCustomerId($cgt->gateway_customer_reference);
|
$body->setCustomerId($cgt->gateway_customer_reference);
|
||||||
|
$body->setAmountMoney($amount_money);
|
||||||
|
$body->setReferenceId($payment_hash->hash);
|
||||||
|
$body->setNote(substr($description,0,500));
|
||||||
|
|
||||||
/** @var ApiResponse */
|
|
||||||
$response = $this->square->getPaymentsApi()->createPayment($body);
|
$response = $this->square->getPaymentsApi()->createPayment($body);
|
||||||
$body = json_decode($response->getBody());
|
$body = json_decode($response->getBody());
|
||||||
|
|
||||||
@ -177,8 +283,130 @@ class SquarePaymentDriver extends BaseDriver
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function processWebhookRequest(PaymentWebhookRequest $request, Payment $payment = null)
|
public function checkWebhooks(): mixed
|
||||||
{
|
{
|
||||||
|
$this->init();
|
||||||
|
|
||||||
|
$api_response = $this->square->getWebhookSubscriptionsApi()->listWebhookSubscriptions();
|
||||||
|
|
||||||
|
if ($api_response->isSuccess()) {
|
||||||
|
|
||||||
|
//array of WebhookSubscription objects
|
||||||
|
foreach($api_response->getResult()->getSubscriptions() ?? [] as $subscription)
|
||||||
|
{
|
||||||
|
if($subscription->getName() == 'Invoice_Ninja_Webhook_Subscription')
|
||||||
|
return $subscription->getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$errors = $api_response->getErrors();
|
||||||
|
nlog($errors);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// {
|
||||||
|
// "subscription": {
|
||||||
|
// "id": "wbhk_b35f6b3145074cf9ad513610786c19d5",
|
||||||
|
// "name": "Example Webhook Subscription",
|
||||||
|
// "enabled": true,
|
||||||
|
// "event_types": [
|
||||||
|
// "payment.created",
|
||||||
|
// "order.updated",
|
||||||
|
// "invoice.created"
|
||||||
|
// ],
|
||||||
|
// "notification_url": "https://example-webhook-url.com",
|
||||||
|
// "api_version": "2021-12-15",
|
||||||
|
// "signature_key": "1k9bIJKCeTmSQwyagtNRLg",
|
||||||
|
// "created_at": "2022-08-17 23:29:48 +0000 UTC",
|
||||||
|
// "updated_at": "2022-08-17 23:29:48 +0000 UTC"
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
public function createWebhooks(): void
|
||||||
|
{
|
||||||
|
|
||||||
|
if($this->checkWebhooks())
|
||||||
|
return;
|
||||||
|
|
||||||
|
$this->init();
|
||||||
|
|
||||||
|
$event_types = ['payment.created', 'payment.updated'];
|
||||||
|
$subscription = new WebhookSubscription();
|
||||||
|
$subscription->setName('Invoice_Ninja_Webhook_Subscription');
|
||||||
|
$subscription->setEventTypes($event_types);
|
||||||
|
|
||||||
|
// $subscription->setNotificationUrl('https://invoicing.co');
|
||||||
|
|
||||||
|
$subscription->setNotificationUrl($this->company_gateway->webhookUrl());
|
||||||
|
// $subscription->setApiVersion('2021-12-15');
|
||||||
|
|
||||||
|
$body = new CreateWebhookSubscriptionRequest($subscription);
|
||||||
|
$body->setIdempotencyKey(\Illuminate\Support\Str::uuid());
|
||||||
|
|
||||||
|
$api_response = $this->square->getWebhookSubscriptionsApi()->createWebhookSubscription($body);
|
||||||
|
|
||||||
|
if ($api_response->isSuccess()) {
|
||||||
|
$subscription = $api_response->getResult()->getSubscription();
|
||||||
|
$signatureKey = $subscription->getSignatureKey();
|
||||||
|
|
||||||
|
$this->company_gateway->setConfigField('signatureKey', $signatureKey);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$errors = $api_response->getErrors();
|
||||||
|
nlog($errors);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function processWebhookRequest(PaymentWebhookRequest $request)
|
||||||
|
{
|
||||||
|
nlog("square webhook");
|
||||||
|
|
||||||
|
$signature_key = $this->company_gateway->getConfigField('signatureKey');
|
||||||
|
$notification_url = $this->company_gateway->webhookUrl();
|
||||||
|
|
||||||
|
$body = '';
|
||||||
|
$handle = fopen('php://input', 'r');
|
||||||
|
while(!feof($handle)) {
|
||||||
|
$body .= fread($handle, 1024);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (WebhooksHelper::isValidWebhookEventSignature($body, $request->header('x-square-hmacsha256-signature'), $signature_key, $notification_url)) {
|
||||||
|
SquareWebhook::dispatch($request->all(), $request->company_key, $this->company_gateway->id)->delay(5);
|
||||||
|
} else {
|
||||||
|
nlog("Square Hash Mismatch");
|
||||||
|
nlog($request->all());
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json(['success' => true]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testWebhook()
|
||||||
|
{
|
||||||
|
$this->init();
|
||||||
|
|
||||||
|
$body = new \Square\Models\TestWebhookSubscriptionRequest();
|
||||||
|
$body->setEventType('payment.created');
|
||||||
|
|
||||||
|
//getsubscriptionid here
|
||||||
|
$subscription_id = $this->checkWebhooks();
|
||||||
|
|
||||||
|
if(!$subscription_id)
|
||||||
|
return nlog('No Subscription Found');
|
||||||
|
|
||||||
|
$api_response = $this->square->getWebhookSubscriptionsApi()->testWebhookSubscription($subscription_id, $body);
|
||||||
|
|
||||||
|
if ($api_response->isSuccess()) {
|
||||||
|
$result = $api_response->getResult();
|
||||||
|
nlog($result);
|
||||||
|
} else {
|
||||||
|
$errors = $api_response->getErrors();
|
||||||
|
nlog($errors);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function convertAmount($amount)
|
public function convertAmount($amount)
|
||||||
|
@ -93,6 +93,7 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
});
|
});
|
||||||
|
|
||||||
Mailer::macro('postmark_config', function (string $postmark_key) {
|
Mailer::macro('postmark_config', function (string $postmark_key) {
|
||||||
|
// @phpstan-ignore /** @phpstan-ignore-next-line **/
|
||||||
Mailer::setSymfonyTransport(app('mail.manager')->createSymfonyTransport([
|
Mailer::setSymfonyTransport(app('mail.manager')->createSymfonyTransport([
|
||||||
'transport' => 'postmark',
|
'transport' => 'postmark',
|
||||||
'token' => $postmark_key
|
'token' => $postmark_key
|
||||||
@ -101,7 +102,9 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
return $this;
|
return $this;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
Mailer::macro('mailgun_config', function (string $secret, string $domain, string $endpoint = 'api.mailgun.net') {
|
Mailer::macro('mailgun_config', function (string $secret, string $domain, string $endpoint = 'api.mailgun.net') {
|
||||||
|
// @phpstan-ignore /** @phpstan-ignore-next-line **/
|
||||||
Mailer::setSymfonyTransport(app('mail.manager')->createSymfonyTransport([
|
Mailer::setSymfonyTransport(app('mail.manager')->createSymfonyTransport([
|
||||||
'transport' => 'mailgun',
|
'transport' => 'mailgun',
|
||||||
'secret' => $secret,
|
'secret' => $secret,
|
||||||
|
@ -118,7 +118,7 @@ class TaskRepository extends BaseRepository
|
|||||||
$task->is_running = $data['is_running'] ? 1 : 0;
|
$task->is_running = $data['is_running'] ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
$task->calculated_start_date = $this->harvestStartDate($time_log);
|
$task->calculated_start_date = $this->harvestStartDate($time_log, $task);
|
||||||
|
|
||||||
$task->time_log = json_encode($time_log);
|
$task->time_log = json_encode($time_log);
|
||||||
|
|
||||||
@ -133,11 +133,11 @@ class TaskRepository extends BaseRepository
|
|||||||
return $task;
|
return $task;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function harvestStartDate($time_log)
|
private function harvestStartDate($time_log, $task)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(isset($time_log[0][0])){
|
if(isset($time_log[0][0])){
|
||||||
return \Carbon\Carbon::createFromTimestamp($time_log[0][0]);
|
return \Carbon\Carbon::createFromTimestamp($time_log[0][0])->addSeconds($task->company->utc_offset());
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
@ -218,7 +218,7 @@ class TaskRepository extends BaseRepository
|
|||||||
|
|
||||||
$log = array_merge($log, [[$start_time, 0]]);
|
$log = array_merge($log, [[$start_time, 0]]);
|
||||||
$task->time_log = json_encode($log);
|
$task->time_log = json_encode($log);
|
||||||
$task->calculated_start_date = \Carbon\Carbon::createFromTimestamp($start_time);
|
$task->calculated_start_date = \Carbon\Carbon::createFromTimestamp($start_time)->addSeconds($task->company->utc_offset());
|
||||||
|
|
||||||
$task->saveQuietly();
|
$task->saveQuietly();
|
||||||
}
|
}
|
||||||
|
@ -138,7 +138,9 @@ class Email implements ShouldQueue
|
|||||||
|
|
||||||
$this->email_object->company = $this->company;
|
$this->email_object->company = $this->company;
|
||||||
|
|
||||||
$this->email_object->client_id ? $this->email_object->settings = $this->email_object->client->getMergedSettings() : $this->email_object->settings = $this->company->settings;
|
$this->email_object->client_id ? $this->email_object->settings = $this->email_object->client->getMergedSettings() : $this->email_object->settings = $this->company->settings;
|
||||||
|
|
||||||
|
$this->email_object->client_id ? nlog("client settings") : nlog("company settings ");
|
||||||
|
|
||||||
$this->email_object->whitelabel = $this->company->account->isPaid() ? true : false;
|
$this->email_object->whitelabel = $this->company->account->isPaid() ? true : false;
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* Payment Ninja (https://paymentninja.com).
|
* Payment Ninja (https://paymentninja.com).
|
||||||
*
|
*
|
||||||
* @link https://github.com/paymentninja/paymentninja source repository
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2022. Payment Ninja LLC (https://paymentninja.com)
|
* @copyright Copyright (c) 2022. Payment Ninja LLC (https://paymentninja.com)
|
||||||
*
|
*
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* payment Ninja (https://paymentninja.com).
|
* payment Ninja (https://paymentninja.com).
|
||||||
*
|
*
|
||||||
* @link https://github.com/paymentninja/paymentninja source repository
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2022. payment Ninja LLC (https://paymentninja.com)
|
* @copyright Copyright (c) 2022. payment Ninja LLC (https://paymentninja.com)
|
||||||
*
|
*
|
||||||
|
@ -30,6 +30,7 @@ class TaskTransformer extends EntityTransformer
|
|||||||
|
|
||||||
protected $defaultIncludes = [
|
protected $defaultIncludes = [
|
||||||
'documents',
|
'documents',
|
||||||
|
'project',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -86,7 +86,7 @@
|
|||||||
"socialiteproviders/microsoft": "^4.1",
|
"socialiteproviders/microsoft": "^4.1",
|
||||||
"spatie/laravel-data": "^3.5",
|
"spatie/laravel-data": "^3.5",
|
||||||
"sprain/swiss-qr-bill": "^3.2",
|
"sprain/swiss-qr-bill": "^3.2",
|
||||||
"square/square": "13.0.0.20210721",
|
"square/square": "30.0.0.*",
|
||||||
"stripe/stripe-php": "^7.50",
|
"stripe/stripe-php": "^7.50",
|
||||||
"symfony/http-client": "^6.0",
|
"symfony/http-client": "^6.0",
|
||||||
"symfony/mailgun-mailer": "^6.1",
|
"symfony/mailgun-mailer": "^6.1",
|
||||||
|
265
composer.lock
generated
265
composer.lock
generated
@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "9d7348352c913eb82fcca2e67670e1f8",
|
"content-hash": "673ca66ddfdb05c3ea29012594a196d3",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "adrienrn/php-mimetyper",
|
"name": "adrienrn/php-mimetyper",
|
||||||
@ -99,21 +99,121 @@
|
|||||||
"time": "2023-05-02T15:11:17+00:00"
|
"time": "2023-05-02T15:11:17+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "apimatic/jsonmapper",
|
"name": "apimatic/core",
|
||||||
"version": "v2.0.3",
|
"version": "0.3.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/apimatic/jsonmapper.git",
|
"url": "https://github.com/apimatic/core-lib-php.git",
|
||||||
"reference": "f7588f1ab692c402a9118e65cb9fd42b74e5e0db"
|
"reference": "32238fb83ce9a3ebef38c726b497c0f218d6e6c9"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/apimatic/jsonmapper/zipball/f7588f1ab692c402a9118e65cb9fd42b74e5e0db",
|
"url": "https://api.github.com/repos/apimatic/core-lib-php/zipball/32238fb83ce9a3ebef38c726b497c0f218d6e6c9",
|
||||||
"reference": "f7588f1ab692c402a9118e65cb9fd42b74e5e0db",
|
"reference": "32238fb83ce9a3ebef38c726b497c0f218d6e6c9",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
|
"require": {
|
||||||
|
"apimatic/core-interfaces": "~0.1.0",
|
||||||
|
"apimatic/jsonmapper": "^3.1.1",
|
||||||
|
"ext-curl": "*",
|
||||||
|
"ext-dom": "*",
|
||||||
|
"ext-json": "*",
|
||||||
|
"ext-libxml": "*",
|
||||||
|
"php": "^7.2 || ^8.0",
|
||||||
|
"php-jsonpointer/php-jsonpointer": "^3.0.2"
|
||||||
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0",
|
"phan/phan": "5.4.2",
|
||||||
|
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||||
|
"squizlabs/php_codesniffer": "^3.5"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Core\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"description": "Core logic and the utilities for the Apimatic's PHP SDK",
|
||||||
|
"homepage": "https://github.com/apimatic/core-lib-php",
|
||||||
|
"keywords": [
|
||||||
|
"apimatic",
|
||||||
|
"core",
|
||||||
|
"corelib",
|
||||||
|
"php"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/apimatic/core-lib-php/issues",
|
||||||
|
"source": "https://github.com/apimatic/core-lib-php/tree/0.3.2"
|
||||||
|
},
|
||||||
|
"time": "2023-07-11T09:30:32+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "apimatic/core-interfaces",
|
||||||
|
"version": "0.1.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/apimatic/core-interfaces-php.git",
|
||||||
|
"reference": "183214195a79784c382a446795c46ca8c1f43cc1"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/apimatic/core-interfaces-php/zipball/183214195a79784c382a446795c46ca8c1f43cc1",
|
||||||
|
"reference": "183214195a79784c382a446795c46ca8c1f43cc1",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.2 || ^8.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"CoreInterfaces\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"description": "Definition of the behavior of apimatic/core, apimatic/unirest-php and Apimatic's PHP SDK",
|
||||||
|
"homepage": "https://github.com/apimatic/core-interfaces-php",
|
||||||
|
"keywords": [
|
||||||
|
"apimatic",
|
||||||
|
"core",
|
||||||
|
"corelib",
|
||||||
|
"interface",
|
||||||
|
"php",
|
||||||
|
"unirest"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/apimatic/core-interfaces-php/issues",
|
||||||
|
"source": "https://github.com/apimatic/core-interfaces-php/tree/0.1.2"
|
||||||
|
},
|
||||||
|
"time": "2023-04-04T06:40:52+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "apimatic/jsonmapper",
|
||||||
|
"version": "3.1.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/apimatic/jsonmapper.git",
|
||||||
|
"reference": "6673a946c21f2ceeec0cb60d17541c11a22bc79d"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/apimatic/jsonmapper/zipball/6673a946c21f2ceeec0cb60d17541c11a22bc79d",
|
||||||
|
"reference": "6673a946c21f2ceeec0cb60d17541c11a22bc79d",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-json": "*",
|
||||||
|
"php": "^5.6 || ^7.0 || ^8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
|
||||||
"squizlabs/php_codesniffer": "^3.0.0"
|
"squizlabs/php_codesniffer": "^3.0.0"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
@ -144,37 +244,38 @@
|
|||||||
"support": {
|
"support": {
|
||||||
"email": "mehdi.jaffery@apimatic.io",
|
"email": "mehdi.jaffery@apimatic.io",
|
||||||
"issues": "https://github.com/apimatic/jsonmapper/issues",
|
"issues": "https://github.com/apimatic/jsonmapper/issues",
|
||||||
"source": "https://github.com/apimatic/jsonmapper/tree/v2.0.3"
|
"source": "https://github.com/apimatic/jsonmapper/tree/3.1.2"
|
||||||
},
|
},
|
||||||
"time": "2021-07-16T09:02:23+00:00"
|
"time": "2023-06-08T04:27:10+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "apimatic/unirest-php",
|
"name": "apimatic/unirest-php",
|
||||||
"version": "2.3.0",
|
"version": "4.0.5",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/apimatic/unirest-php.git",
|
"url": "https://github.com/apimatic/unirest-php.git",
|
||||||
"reference": "52e226fb3b7081dc9ef64aee876142a240a5f0f9"
|
"reference": "e16754010c16be5473289470f129d87a0f41b55e"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/apimatic/unirest-php/zipball/52e226fb3b7081dc9ef64aee876142a240a5f0f9",
|
"url": "https://api.github.com/repos/apimatic/unirest-php/zipball/e16754010c16be5473289470f129d87a0f41b55e",
|
||||||
"reference": "52e226fb3b7081dc9ef64aee876142a240a5f0f9",
|
"reference": "e16754010c16be5473289470f129d87a0f41b55e",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
"apimatic/core-interfaces": "^0.1.0",
|
||||||
"ext-curl": "*",
|
"ext-curl": "*",
|
||||||
"php": ">=5.6.0"
|
"ext-json": "*",
|
||||||
|
"php": "^7.2 || ^8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^5 || ^6 || ^7 || ^8 || ^9"
|
"phan/phan": "5.4.2",
|
||||||
},
|
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||||
"suggest": {
|
"squizlabs/php_codesniffer": "^3.5"
|
||||||
"ext-json": "Allows using JSON Bodies for sending and parsing requests"
|
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-0": {
|
"psr-4": {
|
||||||
"Unirest\\": "src/"
|
"Unirest\\": "src/"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -208,9 +309,9 @@
|
|||||||
"support": {
|
"support": {
|
||||||
"email": "opensource@apimatic.io",
|
"email": "opensource@apimatic.io",
|
||||||
"issues": "https://github.com/apimatic/unirest-php/issues",
|
"issues": "https://github.com/apimatic/unirest-php/issues",
|
||||||
"source": "https://github.com/apimatic/unirest-php/tree/2.3.0"
|
"source": "https://github.com/apimatic/unirest-php/tree/4.0.5"
|
||||||
},
|
},
|
||||||
"time": "2022-06-15T08:29:49+00:00"
|
"time": "2023-04-25T14:19:45+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "asm/php-ansible",
|
"name": "asm/php-ansible",
|
||||||
@ -424,16 +525,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "aws/aws-sdk-php",
|
"name": "aws/aws-sdk-php",
|
||||||
"version": "3.279.0",
|
"version": "3.279.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||||
"reference": "7b3d38cfccd393add0ea0ce281de91846967c61e"
|
"reference": "ebd5e47c5be0425bb5cf4f80737850ed74767107"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/7b3d38cfccd393add0ea0ce281de91846967c61e",
|
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/ebd5e47c5be0425bb5cf4f80737850ed74767107",
|
||||||
"reference": "7b3d38cfccd393add0ea0ce281de91846967c61e",
|
"reference": "ebd5e47c5be0425bb5cf4f80737850ed74767107",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -513,9 +614,9 @@
|
|||||||
"support": {
|
"support": {
|
||||||
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
||||||
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
||||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.279.0"
|
"source": "https://github.com/aws/aws-sdk-php/tree/3.279.2"
|
||||||
},
|
},
|
||||||
"time": "2023-08-16T18:18:34+00:00"
|
"time": "2023-08-18T18:13:09+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "bacon/bacon-qr-code",
|
"name": "bacon/bacon-qr-code",
|
||||||
@ -1351,16 +1452,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/dbal",
|
"name": "doctrine/dbal",
|
||||||
"version": "3.6.5",
|
"version": "3.6.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/doctrine/dbal.git",
|
"url": "https://github.com/doctrine/dbal.git",
|
||||||
"reference": "96d5a70fd91efdcec81fc46316efc5bf3da17ddf"
|
"reference": "63646ffd71d1676d2f747f871be31b7e921c7864"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/96d5a70fd91efdcec81fc46316efc5bf3da17ddf",
|
"url": "https://api.github.com/repos/doctrine/dbal/zipball/63646ffd71d1676d2f747f871be31b7e921c7864",
|
||||||
"reference": "96d5a70fd91efdcec81fc46316efc5bf3da17ddf",
|
"reference": "63646ffd71d1676d2f747f871be31b7e921c7864",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1376,10 +1477,11 @@
|
|||||||
"doctrine/coding-standard": "12.0.0",
|
"doctrine/coding-standard": "12.0.0",
|
||||||
"fig/log-test": "^1",
|
"fig/log-test": "^1",
|
||||||
"jetbrains/phpstorm-stubs": "2023.1",
|
"jetbrains/phpstorm-stubs": "2023.1",
|
||||||
"phpstan/phpstan": "1.10.21",
|
"phpstan/phpstan": "1.10.29",
|
||||||
"phpstan/phpstan-strict-rules": "^1.5",
|
"phpstan/phpstan-strict-rules": "^1.5",
|
||||||
"phpunit/phpunit": "9.6.9",
|
"phpunit/phpunit": "9.6.9",
|
||||||
"psalm/plugin-phpunit": "0.18.4",
|
"psalm/plugin-phpunit": "0.18.4",
|
||||||
|
"slevomat/coding-standard": "8.13.1",
|
||||||
"squizlabs/php_codesniffer": "3.7.2",
|
"squizlabs/php_codesniffer": "3.7.2",
|
||||||
"symfony/cache": "^5.4|^6.0",
|
"symfony/cache": "^5.4|^6.0",
|
||||||
"symfony/console": "^4.4|^5.4|^6.0",
|
"symfony/console": "^4.4|^5.4|^6.0",
|
||||||
@ -1443,7 +1545,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/doctrine/dbal/issues",
|
"issues": "https://github.com/doctrine/dbal/issues",
|
||||||
"source": "https://github.com/doctrine/dbal/tree/3.6.5"
|
"source": "https://github.com/doctrine/dbal/tree/3.6.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -1459,7 +1561,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-07-17T09:15:50+00:00"
|
"time": "2023-08-17T05:38:17+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/deprecations",
|
"name": "doctrine/deprecations",
|
||||||
@ -3348,16 +3450,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "horstoeko/zugferd",
|
"name": "horstoeko/zugferd",
|
||||||
"version": "v1.0.23",
|
"version": "v1.0.26",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/horstoeko/zugferd.git",
|
"url": "https://github.com/horstoeko/zugferd.git",
|
||||||
"reference": "bb55417be4c4de8deb0113e832feeaf7b4d3984e"
|
"reference": "2a7541a35f00499c206391273f30159dc2c7072a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/horstoeko/zugferd/zipball/bb55417be4c4de8deb0113e832feeaf7b4d3984e",
|
"url": "https://api.github.com/repos/horstoeko/zugferd/zipball/2a7541a35f00499c206391273f30159dc2c7072a",
|
||||||
"reference": "bb55417be4c4de8deb0113e832feeaf7b4d3984e",
|
"reference": "2a7541a35f00499c206391273f30159dc2c7072a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3415,9 +3517,9 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/horstoeko/zugferd/issues",
|
"issues": "https://github.com/horstoeko/zugferd/issues",
|
||||||
"source": "https://github.com/horstoeko/zugferd/tree/v1.0.23"
|
"source": "https://github.com/horstoeko/zugferd/tree/v1.0.26"
|
||||||
},
|
},
|
||||||
"time": "2023-08-16T17:39:36+00:00"
|
"time": "2023-08-18T03:05:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "http-interop/http-factory-guzzle",
|
"name": "http-interop/http-factory-guzzle",
|
||||||
@ -7664,6 +7766,62 @@
|
|||||||
},
|
},
|
||||||
"time": "2020-07-07T09:29:14+00:00"
|
"time": "2020-07-07T09:29:14+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "php-jsonpointer/php-jsonpointer",
|
||||||
|
"version": "v3.0.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/raphaelstolt/php-jsonpointer.git",
|
||||||
|
"reference": "4428f86c6f23846e9faa5a420c4ef14e485b3afb"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/raphaelstolt/php-jsonpointer/zipball/4428f86c6f23846e9faa5a420c4ef14e485b3afb",
|
||||||
|
"reference": "4428f86c6f23846e9faa5a420c4ef14e485b3afb",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.4"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"friendsofphp/php-cs-fixer": "^1.11",
|
||||||
|
"phpunit/phpunit": "4.6.*"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.0.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Rs\\Json": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Raphael Stolt",
|
||||||
|
"email": "raphael.stolt@gmail.com",
|
||||||
|
"homepage": "http://raphaelstolt.blogspot.com/"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Implementation of JSON Pointer (http://tools.ietf.org/html/rfc6901)",
|
||||||
|
"homepage": "https://github.com/raphaelstolt/php-jsonpointer",
|
||||||
|
"keywords": [
|
||||||
|
"json",
|
||||||
|
"json pointer",
|
||||||
|
"json traversal"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/raphaelstolt/php-jsonpointer/issues",
|
||||||
|
"source": "https://github.com/raphaelstolt/php-jsonpointer/tree/master"
|
||||||
|
},
|
||||||
|
"time": "2016-08-29T08:51:01+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "phpdocumentor/reflection-common",
|
"name": "phpdocumentor/reflection-common",
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
@ -10037,29 +10195,28 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "square/square",
|
"name": "square/square",
|
||||||
"version": "13.0.0.20210721",
|
"version": "30.0.0.20230816",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/square/square-php-sdk.git",
|
"url": "https://github.com/square/square-php-sdk.git",
|
||||||
"reference": "03d90445854cd3b500f75061a9c63956799b8ecf"
|
"reference": "fedfea8b6c6f16b6a90ef0d629743ae9ae25e13d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/square/square-php-sdk/zipball/03d90445854cd3b500f75061a9c63956799b8ecf",
|
"url": "https://api.github.com/repos/square/square-php-sdk/zipball/fedfea8b6c6f16b6a90ef0d629743ae9ae25e13d",
|
||||||
"reference": "03d90445854cd3b500f75061a9c63956799b8ecf",
|
"reference": "fedfea8b6c6f16b6a90ef0d629743ae9ae25e13d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"apimatic/jsonmapper": "^2.0.2",
|
"apimatic/core": "~0.3.0",
|
||||||
"apimatic/unirest-php": "^2.0",
|
"apimatic/core-interfaces": "~0.1.0",
|
||||||
"ext-curl": "*",
|
"apimatic/unirest-php": "^4.0.0",
|
||||||
"ext-json": "*",
|
"ext-json": "*",
|
||||||
"ext-mbstring": "*",
|
"php": "^7.2 || ^8.0"
|
||||||
"php": ">=7.2"
|
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phan/phan": "^3.0",
|
"phan/phan": "5.4.2",
|
||||||
"phpunit/phpunit": "^7.5 || ^8.5",
|
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||||
"squizlabs/php_codesniffer": "^3.5"
|
"squizlabs/php_codesniffer": "^3.5"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
@ -10088,9 +10245,9 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/square/square-php-sdk/issues",
|
"issues": "https://github.com/square/square-php-sdk/issues",
|
||||||
"source": "https://github.com/square/square-php-sdk/tree/13.0.0.20210721"
|
"source": "https://github.com/square/square-php-sdk/tree/30.0.0.20230816"
|
||||||
},
|
},
|
||||||
"time": "2021-07-21T06:43:15+00:00"
|
"time": "2023-08-15T21:45:55+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "stripe/stripe-php",
|
"name": "stripe/stripe-php",
|
||||||
|
@ -15,8 +15,8 @@ return [
|
|||||||
'require_https' => env('REQUIRE_HTTPS', true),
|
'require_https' => env('REQUIRE_HTTPS', true),
|
||||||
'app_url' => rtrim(env('APP_URL', ''), '/'),
|
'app_url' => rtrim(env('APP_URL', ''), '/'),
|
||||||
'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
|
'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
|
||||||
'app_version' => env('APP_VERSION','5.6.31'),
|
'app_version' => env('APP_VERSION','5.7.0'),
|
||||||
'app_tag' => env('APP_TAG','5.6.31'),
|
'app_tag' => env('APP_TAG','5.7.0'),
|
||||||
'minimum_client_version' => '5.0.16',
|
'minimum_client_version' => '5.0.16',
|
||||||
'terms_version' => '1.0.1',
|
'terms_version' => '1.0.1',
|
||||||
'api_secret' => env('API_SECRET', ''),
|
'api_secret' => env('API_SECRET', ''),
|
||||||
|
@ -25,7 +25,7 @@ class DocumentFactory extends Factory
|
|||||||
return [
|
return [
|
||||||
'is_default' => true,
|
'is_default' => true,
|
||||||
'is_public' => true,
|
'is_public' => true,
|
||||||
'name' => true,
|
'name' => $this->faker->word().".png",
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ class PaymentLibrariesSeeder extends Seeder
|
|||||||
['id' => 53, 'name' => 'PagSeguro', 'provider' => 'PagSeguro', 'key' => 'ef498756b54db63c143af0ec433da803', 'fields' => '{"email":"","token":"","sandbox":false}'],
|
['id' => 53, 'name' => 'PagSeguro', 'provider' => 'PagSeguro', 'key' => 'ef498756b54db63c143af0ec433da803', 'fields' => '{"email":"","token":"","sandbox":false}'],
|
||||||
['id' => 54, 'name' => 'PAYMILL', 'provider' => 'Paymill', 'key' => 'ca52f618a39367a4c944098ebf977e1c', 'fields' => '{"apiKey":""}'],
|
['id' => 54, 'name' => 'PAYMILL', 'provider' => 'Paymill', 'key' => 'ca52f618a39367a4c944098ebf977e1c', 'fields' => '{"apiKey":""}'],
|
||||||
['id' => 55, 'name' => 'Custom', 'provider' => 'Custom', 'is_offsite' => true, 'sort_order' => 21, 'key' => '54faab2ab6e3223dbe848b1686490baa', 'fields' => '{"name":"","text":""}'],
|
['id' => 55, 'name' => 'Custom', 'provider' => 'Custom', 'is_offsite' => true, 'sort_order' => 21, 'key' => '54faab2ab6e3223dbe848b1686490baa', 'fields' => '{"name":"","text":""}'],
|
||||||
['id' => 57, 'name' => 'Square', 'provider' => 'Square', 'is_offsite' => false, 'sort_order' => 21, 'key' => '65faab2ab6e3223dbe848b1686490baz', 'fields' => '{"accessToken":"","applicationId":"","locationId":"","testMode":false}'],
|
['id' => 57, 'name' => 'Square', 'provider' => 'Square', 'is_offsite' => false, 'sort_order' => 21, 'key' => '65faab2ab6e3223dbe848b1686490baz', 'fields' => '{"accessToken":"","applicationId":"","locationId":"","signatureKey":"","testMode":false}'],
|
||||||
['id' => 58, 'name' => 'Razorpay', 'provider' => 'Razorpay', 'is_offsite' => false, 'sort_order' => 21, 'key' => 'hxd6gwg3ekb9tb3v9lptgx1mqyg69zu9', 'fields' => '{"apiKey":"","apiSecret":""}'],
|
['id' => 58, 'name' => 'Razorpay', 'provider' => 'Razorpay', 'is_offsite' => false, 'sort_order' => 21, 'key' => 'hxd6gwg3ekb9tb3v9lptgx1mqyg69zu9', 'fields' => '{"apiKey":"","apiSecret":""}'],
|
||||||
['id' => 59, 'name' => 'Forte', 'provider' => 'Forte', 'is_offsite' => false, 'sort_order' => 21, 'key' => 'kivcvjexxvdiyqtj3mju5d6yhpeht2xs', 'fields' => '{"testMode":false,"apiLoginId":"","apiAccessId":"","secureKey":"","authOrganizationId":"","organizationId":"","locationId":""}'],
|
['id' => 59, 'name' => 'Forte', 'provider' => 'Forte', 'is_offsite' => false, 'sort_order' => 21, 'key' => 'kivcvjexxvdiyqtj3mju5d6yhpeht2xs', 'fields' => '{"testMode":false,"apiLoginId":"","apiAccessId":"","secureKey":"","authOrganizationId":"","organizationId":"","locationId":""}'],
|
||||||
['id' => 60, 'name' => 'PayPal REST', 'provider' => 'PayPal_Rest', 'key' => '80af24a6a691230bbec33e930ab40665', 'fields' => '{"clientId":"","secret":"","signature":"","testMode":false}'],
|
['id' => 60, 'name' => 'PayPal REST', 'provider' => 'PayPal_Rest', 'key' => '80af24a6a691230bbec33e930ab40665', 'fields' => '{"clientId":"","secret":"","signature":"","testMode":false}'],
|
||||||
|
@ -2378,6 +2378,9 @@ $LANG = array(
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'بيزو كوبي',
|
'currency_cuban_peso' => 'بيزو كوبي',
|
||||||
'currency_bz_dollar' => 'دولار BZ',
|
'currency_bz_dollar' => 'دولار BZ',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'نأمل أن تستمتع باستخدام التطبيق.<br/> إذا كنت تفكر في :link فإننا نقدر ذلك كثيرًا!',
|
'review_app_help' => 'نأمل أن تستمتع باستخدام التطبيق.<br/> إذا كنت تفكر في :link فإننا نقدر ذلك كثيرًا!',
|
||||||
'writing_a_review' => 'كتابة مراجعة',
|
'writing_a_review' => 'كتابة مراجعة',
|
||||||
@ -3313,9 +3316,9 @@ $LANG = array(
|
|||||||
'freq_three_years' => 'ثلاث سنوات',
|
'freq_three_years' => 'ثلاث سنوات',
|
||||||
'military_time_help' => 'عرض 24 ساعة',
|
'military_time_help' => 'عرض 24 ساعة',
|
||||||
'click_here_capital' => 'انقر هنا',
|
'click_here_capital' => 'انقر هنا',
|
||||||
'marked_invoice_as_paid' => 'تم تعيين الفاتورة كمرسلة',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'نجح وضع علامة على الفواتير على أنها مرسلة',
|
'marked_invoices_as_sent' => 'نجح وضع علامة على الفواتير على أنها مرسلة',
|
||||||
'marked_invoices_as_paid' => 'تم تعيين الفواتير كمرسلة',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'فشل النظام في إرسال الفاتورة بالبريد الإلكتروني :invoice',
|
'activity_57' => 'فشل النظام في إرسال الفاتورة بالبريد الإلكتروني :invoice',
|
||||||
'custom_value3' => 'القيمة المخصصة 3',
|
'custom_value3' => 'القيمة المخصصة 3',
|
||||||
'custom_value4' => 'القيمة المخصصة 4',
|
'custom_value4' => 'القيمة المخصصة 4',
|
||||||
@ -4926,7 +4929,7 @@ $LANG = array(
|
|||||||
'sync_from' => 'مزامنة من',
|
'sync_from' => 'مزامنة من',
|
||||||
'gateway_payment_text' => 'الفواتير: :invoices لـ :amount للعميل :client',
|
'gateway_payment_text' => 'الفواتير: :invoices لـ :amount للعميل :client',
|
||||||
'gateway_payment_text_no_invoice' => 'الدفع بدون فاتورة للمبلغ :amount للعميل :client',
|
'gateway_payment_text_no_invoice' => 'الدفع بدون فاتورة للمبلغ :amount للعميل :client',
|
||||||
'click_to_variables' => 'العميل هنا لمشاهدة جميع المتغيرات.',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'سافر على متن سفينة لِـ',
|
'ship_to' => 'سافر على متن سفينة لِـ',
|
||||||
'stripe_direct_debit_details' => 'يرجى التحويل إلى الحساب المصرفي المحدد أعلاه.',
|
'stripe_direct_debit_details' => 'يرجى التحويل إلى الحساب المصرفي المحدد أعلاه.',
|
||||||
'branch_name' => 'اسم الفرع',
|
'branch_name' => 'اسم الفرع',
|
||||||
@ -5088,8 +5091,49 @@ $LANG = array(
|
|||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Buy Price',
|
||||||
);
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -2405,6 +2405,9 @@ $LANG = array(
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Кубински песо',
|
'currency_cuban_peso' => 'Кубински песо',
|
||||||
'currency_bz_dollar' => 'BZ долар',
|
'currency_bz_dollar' => 'BZ долар',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'Надяваме се, че използвате приложението с удоволствие.<br/>Ще се радваме, ако решите да :link!',
|
'review_app_help' => 'Надяваме се, че използвате приложението с удоволствие.<br/>Ще се радваме, ако решите да :link!',
|
||||||
'writing_a_review' => 'напишете оценка',
|
'writing_a_review' => 'напишете оценка',
|
||||||
@ -3340,9 +3343,9 @@ $LANG = array(
|
|||||||
'freq_three_years' => 'Три години',
|
'freq_three_years' => 'Три години',
|
||||||
'military_time_help' => '24-часов формат',
|
'military_time_help' => '24-часов формат',
|
||||||
'click_here_capital' => 'Натиснете тук',
|
'click_here_capital' => 'Натиснете тук',
|
||||||
'marked_invoice_as_paid' => 'Успешно отбелязана фактура като изпратена',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Фактурите са маркирани като изпратени',
|
'marked_invoices_as_sent' => 'Фактурите са маркирани като изпратени',
|
||||||
'marked_invoices_as_paid' => 'Успешно маркирани фактури като изпратени ',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'Системата не успя да изпрати фактура :invoice по e-mail',
|
'activity_57' => 'Системата не успя да изпрати фактура :invoice по e-mail',
|
||||||
'custom_value3' => 'Персонифицирана стойност 3',
|
'custom_value3' => 'Персонифицирана стойност 3',
|
||||||
'custom_value4' => 'Персонифицирана стойност 4',
|
'custom_value4' => 'Персонифицирана стойност 4',
|
||||||
@ -4953,7 +4956,7 @@ $LANG = array(
|
|||||||
'sync_from' => 'Sync From',
|
'sync_from' => 'Sync From',
|
||||||
'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client',
|
'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Payment with no invoice for amount :amount for client :client',
|
'gateway_payment_text_no_invoice' => 'Payment with no invoice for amount :amount for client :client',
|
||||||
'click_to_variables' => 'Client here to see all variables.',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'Ship to',
|
'ship_to' => 'Ship to',
|
||||||
'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.',
|
'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.',
|
||||||
'branch_name' => 'Branch Name',
|
'branch_name' => 'Branch Name',
|
||||||
@ -5115,8 +5118,49 @@ $LANG = array(
|
|||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Buy Price',
|
||||||
);
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -2404,6 +2404,9 @@ $LANG = array(
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Cuban Peso',
|
'currency_cuban_peso' => 'Cuban Peso',
|
||||||
'currency_bz_dollar' => 'Dòlar BZ',
|
'currency_bz_dollar' => 'Dòlar BZ',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'We hope you\'re enjoying using the app.<br/>If you\'d consider :link we\'d greatly appreciate it!',
|
'review_app_help' => 'We hope you\'re enjoying using the app.<br/>If you\'d consider :link we\'d greatly appreciate it!',
|
||||||
'writing_a_review' => 'escriu una ressenya',
|
'writing_a_review' => 'escriu una ressenya',
|
||||||
@ -3339,9 +3342,9 @@ $LANG = array(
|
|||||||
'freq_three_years' => 'Three Years',
|
'freq_three_years' => 'Three Years',
|
||||||
'military_time_help' => '24 Hour Display',
|
'military_time_help' => '24 Hour Display',
|
||||||
'click_here_capital' => 'Click here',
|
'click_here_capital' => 'Click here',
|
||||||
'marked_invoice_as_paid' => 'Successfully marked invoice as sent',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Successfully marked invoices as sent',
|
'marked_invoices_as_sent' => 'Successfully marked invoices as sent',
|
||||||
'marked_invoices_as_paid' => 'Successfully marked invoices as sent',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'System failed to email invoice :invoice',
|
'activity_57' => 'System failed to email invoice :invoice',
|
||||||
'custom_value3' => 'Custom Value 3',
|
'custom_value3' => 'Custom Value 3',
|
||||||
'custom_value4' => 'Custom Value 4',
|
'custom_value4' => 'Custom Value 4',
|
||||||
@ -4952,7 +4955,7 @@ $LANG = array(
|
|||||||
'sync_from' => 'Sincronitza de',
|
'sync_from' => 'Sincronitza de',
|
||||||
'gateway_payment_text' => 'Factures: :invoices de :amount per al client :client',
|
'gateway_payment_text' => 'Factures: :invoices de :amount per al client :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Pagament sense factura de :amount per al client :client',
|
'gateway_payment_text_no_invoice' => 'Pagament sense factura de :amount per al client :client',
|
||||||
'click_to_variables' => 'Pitgeu aquí per veure totes les variables.',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'Envia a',
|
'ship_to' => 'Envia a',
|
||||||
'stripe_direct_debit_details' => 'Transferiu al compte bancari especificat a dalt, si us plau.',
|
'stripe_direct_debit_details' => 'Transferiu al compte bancari especificat a dalt, si us plau.',
|
||||||
'branch_name' => 'Nom de l\'oficina',
|
'branch_name' => 'Nom de l\'oficina',
|
||||||
@ -5114,8 +5117,49 @@ $LANG = array(
|
|||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Buy Price',
|
||||||
);
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -2405,6 +2405,9 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Kubanischer Peso',
|
'currency_cuban_peso' => 'Kubanischer Peso',
|
||||||
'currency_bz_dollar' => 'Belize-Dollar',
|
'currency_bz_dollar' => 'Belize-Dollar',
|
||||||
|
'currency_libyan_dinar' => 'Libyscher Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'Wir hoffen, dass Ihnen die App gefällt. Wenn Sie :link in Betracht ziehen würden, wären wir Ihnen sehr dankbar!',
|
'review_app_help' => 'Wir hoffen, dass Ihnen die App gefällt. Wenn Sie :link in Betracht ziehen würden, wären wir Ihnen sehr dankbar!',
|
||||||
'writing_a_review' => 'Schreiben einer Rezension',
|
'writing_a_review' => 'Schreiben einer Rezension',
|
||||||
@ -3340,9 +3343,9 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
|
|||||||
'freq_three_years' => 'Drei Jahre',
|
'freq_three_years' => 'Drei Jahre',
|
||||||
'military_time_help' => '24-Stunden-Anzeige',
|
'military_time_help' => '24-Stunden-Anzeige',
|
||||||
'click_here_capital' => 'Klicke hier',
|
'click_here_capital' => 'Klicke hier',
|
||||||
'marked_invoice_as_paid' => 'Die Rechnung wurde erfolgreich als "versendet" markiert',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Erfolgreich Rechnungen als versendet markiert',
|
'marked_invoices_as_sent' => 'Erfolgreich Rechnungen als versendet markiert',
|
||||||
'marked_invoices_as_paid' => 'Die Rechnung wurde erfolgreich als "versendet" markiert',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'Das System konnte die Rechnung :invoice nicht per E-Mail versenden',
|
'activity_57' => 'Das System konnte die Rechnung :invoice nicht per E-Mail versenden',
|
||||||
'custom_value3' => 'Benutzerdefinierter Wert 3',
|
'custom_value3' => 'Benutzerdefinierter Wert 3',
|
||||||
'custom_value4' => 'Benutzerdefinierter Wert 4',
|
'custom_value4' => 'Benutzerdefinierter Wert 4',
|
||||||
@ -3708,7 +3711,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
|
|||||||
'invoice_task_timelog' => 'Aufgaben Zeiterfassung in Rechnung stellen',
|
'invoice_task_timelog' => 'Aufgaben Zeiterfassung in Rechnung stellen',
|
||||||
'invoice_task_timelog_help' => 'Zeitdetails in der Rechnungsposition ausweisen',
|
'invoice_task_timelog_help' => 'Zeitdetails in der Rechnungsposition ausweisen',
|
||||||
'auto_start_tasks_help' => 'Beginne Aufgabe vor dem Speichern',
|
'auto_start_tasks_help' => 'Beginne Aufgabe vor dem Speichern',
|
||||||
'configure_statuses' => 'Stati bearbeiten',
|
'configure_statuses' => 'Status bearbeiten',
|
||||||
'task_settings' => 'Aufgaben-Einstellungen',
|
'task_settings' => 'Aufgaben-Einstellungen',
|
||||||
'configure_categories' => 'Kategorien bearbeiten',
|
'configure_categories' => 'Kategorien bearbeiten',
|
||||||
'edit_expense_category' => 'Ausgaben Kategorie bearbeiten',
|
'edit_expense_category' => 'Ausgaben Kategorie bearbeiten',
|
||||||
@ -3865,7 +3868,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
|
|||||||
'notification_credit_viewed' => 'Der folgende Kunde :client hat die Gutschrift :credit über :amount angeschaut.',
|
'notification_credit_viewed' => 'Der folgende Kunde :client hat die Gutschrift :credit über :amount angeschaut.',
|
||||||
'reset_password_text' => 'Bitte geben Sie ihre E-Mail-Adresse an, um das Passwort zurücksetzen zu können.',
|
'reset_password_text' => 'Bitte geben Sie ihre E-Mail-Adresse an, um das Passwort zurücksetzen zu können.',
|
||||||
'password_reset' => 'Passwort zurücksetzten',
|
'password_reset' => 'Passwort zurücksetzten',
|
||||||
'account_login_text' => 'Welcome! Glad to see you.',
|
'account_login_text' => 'Willkommen! Schön Sie zu sehen.',
|
||||||
'request_cancellation' => 'Storno beantragen',
|
'request_cancellation' => 'Storno beantragen',
|
||||||
'delete_payment_method' => 'Zahlungsmethode löschen',
|
'delete_payment_method' => 'Zahlungsmethode löschen',
|
||||||
'about_to_delete_payment_method' => 'Diese Zahlungsmethode wird gelöscht.',
|
'about_to_delete_payment_method' => 'Diese Zahlungsmethode wird gelöscht.',
|
||||||
@ -4954,7 +4957,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
|
|||||||
'sync_from' => 'Synchronisieren von',
|
'sync_from' => 'Synchronisieren von',
|
||||||
'gateway_payment_text' => 'Rechnungen: :invoices über :amount für Kunde :client',
|
'gateway_payment_text' => 'Rechnungen: :invoices über :amount für Kunde :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Zahlung ohne Rechnung für Kunde :client über :amount',
|
'gateway_payment_text_no_invoice' => 'Zahlung ohne Rechnung für Kunde :client über :amount',
|
||||||
'click_to_variables' => 'Client hier, um alle Variablen zu sehen.',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'Liefern an',
|
'ship_to' => 'Liefern an',
|
||||||
'stripe_direct_debit_details' => 'Bitte überweisen Sie den Betrag an obenstehende Bankverbindung',
|
'stripe_direct_debit_details' => 'Bitte überweisen Sie den Betrag an obenstehende Bankverbindung',
|
||||||
'branch_name' => 'Zweigstelle',
|
'branch_name' => 'Zweigstelle',
|
||||||
@ -5121,10 +5124,47 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
|
|||||||
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
'paid_date' => 'Paid Date',
|
'paid_date' => 'Paid Date',
|
||||||
'downloaded_entities' => 'An email will be sent with the PDFs',
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Steuerdetails',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Dateien hochladen',
|
||||||
|
'download_e_invoice' => 'E-Rechnung herunterladen',
|
||||||
|
'triangular_tax_info' => 'innergemeinschaftliches Dreiecksgeschäft',
|
||||||
|
'intracommunity_tax_info' => 'Steuerfreie innergemeinschaftliche Lieferung',
|
||||||
|
'reverse_tax_info' => 'Steuerschuldnerschaft des
|
||||||
|
|
||||||
|
Leistungsempfängers',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Córdoba Oro',
|
||||||
|
'public' => 'Öffentlich',
|
||||||
|
'private' => 'Privat',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Andere',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
?>
|
?>
|
@ -2404,6 +2404,9 @@ email που είναι συνδεδεμένη με το λογαριασμό σ
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Cuban Peso',
|
'currency_cuban_peso' => 'Cuban Peso',
|
||||||
'currency_bz_dollar' => 'BZ Dollar',
|
'currency_bz_dollar' => 'BZ Dollar',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'Ελπίζουμε να απολαμβάνετε τη χρήση της εφαρμογής.<br/> Εάν θα θέλατε να γράψετε μια κριτική :link θα το εκτιμούσαμε ιδιαίτερα!',
|
'review_app_help' => 'Ελπίζουμε να απολαμβάνετε τη χρήση της εφαρμογής.<br/> Εάν θα θέλατε να γράψετε μια κριτική :link θα το εκτιμούσαμε ιδιαίτερα!',
|
||||||
'writing_a_review' => 'συγγραφή κριτικής',
|
'writing_a_review' => 'συγγραφή κριτικής',
|
||||||
@ -3339,9 +3342,9 @@ email που είναι συνδεδεμένη με το λογαριασμό σ
|
|||||||
'freq_three_years' => 'Τρία Χρόνια',
|
'freq_three_years' => 'Τρία Χρόνια',
|
||||||
'military_time_help' => '24ωρη εμφάνιση Ώρας',
|
'military_time_help' => '24ωρη εμφάνιση Ώρας',
|
||||||
'click_here_capital' => 'Πατήστε εδώ',
|
'click_here_capital' => 'Πατήστε εδώ',
|
||||||
'marked_invoice_as_paid' => 'Επιτυχής ορισμός τιμολογίου ως απεσταλμένο',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Επιτυχής ορισμός τιμολογίων ως απεσταλμένα',
|
'marked_invoices_as_sent' => 'Επιτυχής ορισμός τιμολογίων ως απεσταλμένα',
|
||||||
'marked_invoices_as_paid' => 'Επιτυχής ορισμός τιμολογίων ως απεσταλμένα',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'Το σύστημα απέτυχε να στείλει με email το τιμολόγιο :invoice',
|
'activity_57' => 'Το σύστημα απέτυχε να στείλει με email το τιμολόγιο :invoice',
|
||||||
'custom_value3' => 'Προσαρμοσμένη Τιμή 3',
|
'custom_value3' => 'Προσαρμοσμένη Τιμή 3',
|
||||||
'custom_value4' => 'Προσαρμοσμένη Τιμή 4',
|
'custom_value4' => 'Προσαρμοσμένη Τιμή 4',
|
||||||
@ -4952,7 +4955,7 @@ email που είναι συνδεδεμένη με το λογαριασμό σ
|
|||||||
'sync_from' => 'Sync From',
|
'sync_from' => 'Sync From',
|
||||||
'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client',
|
'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Πληρωμή χωρίς τιμολόγιο για ποσό : amount για πελάτη :client',
|
'gateway_payment_text_no_invoice' => 'Πληρωμή χωρίς τιμολόγιο για ποσό : amount για πελάτη :client',
|
||||||
'click_to_variables' => 'Κάντε κλικ εδώ για να δείτε όλες τις μεταβλητές.',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'Αποστολή προς',
|
'ship_to' => 'Αποστολή προς',
|
||||||
'stripe_direct_debit_details' => 'Μεταφέρετε στον παραπάνω τραπεζικό λογαριασμό.',
|
'stripe_direct_debit_details' => 'Μεταφέρετε στον παραπάνω τραπεζικό λογαριασμό.',
|
||||||
'branch_name' => 'Ονομασία υποκαταστήματος',
|
'branch_name' => 'Ονομασία υποκαταστήματος',
|
||||||
@ -5114,8 +5117,49 @@ email που είναι συνδεδεμένη με το λογαριασμό σ
|
|||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Buy Price',
|
||||||
);
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -3342,9 +3342,9 @@ $LANG = array(
|
|||||||
'freq_three_years' => 'Three Years',
|
'freq_three_years' => 'Three Years',
|
||||||
'military_time_help' => '24 Hour Display',
|
'military_time_help' => '24 Hour Display',
|
||||||
'click_here_capital' => 'Click here',
|
'click_here_capital' => 'Click here',
|
||||||
'marked_invoice_as_paid' => 'Successfully marked invoice as sent',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Successfully marked invoices as sent',
|
'marked_invoices_as_sent' => 'Successfully marked invoices as sent',
|
||||||
'marked_invoices_as_paid' => 'Successfully marked invoices as sent',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'System failed to email invoice :invoice',
|
'activity_57' => 'System failed to email invoice :invoice',
|
||||||
'custom_value3' => 'Custom Value 3',
|
'custom_value3' => 'Custom Value 3',
|
||||||
'custom_value4' => 'Custom Value 4',
|
'custom_value4' => 'Custom Value 4',
|
||||||
@ -5157,6 +5157,8 @@ $LANG = array(
|
|||||||
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
'unlinked_transaction' => 'Successfully unlinked transaction',
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
@ -753,7 +753,7 @@ $LANG = array(
|
|||||||
'activity_7' => ':contact vió la factura :invoice del cliente :client',
|
'activity_7' => ':contact vió la factura :invoice del cliente :client',
|
||||||
'activity_8' => ':user archivó la factura :invoice',
|
'activity_8' => ':user archivó la factura :invoice',
|
||||||
'activity_9' => ':user eliminó la factura :invoice',
|
'activity_9' => ':user eliminó la factura :invoice',
|
||||||
'activity_10' => ':user entered payment :payment for :payment_amount on invoice :invoice for :client',
|
'activity_10' => ':user ingresó el pago :payment para :payment _cantidad en la factura :invoice para :client',
|
||||||
'activity_11' => ':user actualizó el pago :payment',
|
'activity_11' => ':user actualizó el pago :payment',
|
||||||
'activity_12' => ':user archivó el pago :payment',
|
'activity_12' => ':user archivó el pago :payment',
|
||||||
'activity_13' => ':user eliminó el pago :payment',
|
'activity_13' => ':user eliminó el pago :payment',
|
||||||
@ -1998,7 +1998,7 @@ $LANG = array(
|
|||||||
'current_quarter' => 'Trimerstre Actual',
|
'current_quarter' => 'Trimerstre Actual',
|
||||||
'last_quarter' => 'Último Trimestre',
|
'last_quarter' => 'Último Trimestre',
|
||||||
'last_year' => 'Año Anterior',
|
'last_year' => 'Año Anterior',
|
||||||
'all_time' => 'All Time',
|
'all_time' => 'Todo el tiempo',
|
||||||
'custom_range' => 'Rango Personalizado',
|
'custom_range' => 'Rango Personalizado',
|
||||||
'url' => 'URL',
|
'url' => 'URL',
|
||||||
'debug' => 'Depurar',
|
'debug' => 'Depurar',
|
||||||
@ -2258,7 +2258,7 @@ $LANG = array(
|
|||||||
'restore_recurring_expense' => 'Restaurar Gasto Recurrente',
|
'restore_recurring_expense' => 'Restaurar Gasto Recurrente',
|
||||||
'restored_recurring_expense' => 'Gasto recurrente restaurado con éxito',
|
'restored_recurring_expense' => 'Gasto recurrente restaurado con éxito',
|
||||||
'delete_recurring_expense' => 'Eliminar Gasto Recurrente',
|
'delete_recurring_expense' => 'Eliminar Gasto Recurrente',
|
||||||
'deleted_recurring_expense' => 'Successfully deleted recurring expense',
|
'deleted_recurring_expense' => 'Gasto recurrente eliminado con éxito',
|
||||||
'view_recurring_expense' => 'Ver Gasto Recurrente',
|
'view_recurring_expense' => 'Ver Gasto Recurrente',
|
||||||
'taxes_and_fees' => 'Impuestos y Tarifas',
|
'taxes_and_fees' => 'Impuestos y Tarifas',
|
||||||
'import_failed' => 'Importación fallida',
|
'import_failed' => 'Importación fallida',
|
||||||
@ -2402,6 +2402,9 @@ $LANG = array(
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Peso Cubano',
|
'currency_cuban_peso' => 'Peso Cubano',
|
||||||
'currency_bz_dollar' => 'Dólar BZ',
|
'currency_bz_dollar' => 'Dólar BZ',
|
||||||
|
'currency_libyan_dinar' => 'dinar libio',
|
||||||
|
'currency_silver_troy_ounce' => 'Onza troy de plata',
|
||||||
|
'currency_gold_troy_ounce' => 'Onza troy de oro',
|
||||||
|
|
||||||
'review_app_help' => 'Esperamos que estés disfrutando de usar la aplicación.<br/>Si consideras :link lo apreciaremos mucho!',
|
'review_app_help' => 'Esperamos que estés disfrutando de usar la aplicación.<br/>Si consideras :link lo apreciaremos mucho!',
|
||||||
'writing_a_review' => 'escribiendo una reseña',
|
'writing_a_review' => 'escribiendo una reseña',
|
||||||
@ -2513,8 +2516,8 @@ $LANG = array(
|
|||||||
'partial_due_date' => 'Fecha de Vencimiento Parcial',
|
'partial_due_date' => 'Fecha de Vencimiento Parcial',
|
||||||
'task_fields' => 'Campos de la Tarea',
|
'task_fields' => 'Campos de la Tarea',
|
||||||
'product_fields_help' => 'Arrastra y suelta los campos para cambiar su orden',
|
'product_fields_help' => 'Arrastra y suelta los campos para cambiar su orden',
|
||||||
'custom_value1' => 'Custom Value 1',
|
'custom_value1' => 'Valor personalizado 1',
|
||||||
'custom_value2' => 'Custom Value 2',
|
'custom_value2' => 'Valor personalizado 2',
|
||||||
'enable_two_factor' => 'Autenticación de Dos Factores',
|
'enable_two_factor' => 'Autenticación de Dos Factores',
|
||||||
'enable_two_factor_help' => 'Usa tu teléfono para confirmar tu identidad al ingresar',
|
'enable_two_factor_help' => 'Usa tu teléfono para confirmar tu identidad al ingresar',
|
||||||
'two_factor_setup' => 'Configuración de Autenticación de Dos Factores',
|
'two_factor_setup' => 'Configuración de Autenticación de Dos Factores',
|
||||||
@ -3337,9 +3340,9 @@ $LANG = array(
|
|||||||
'freq_three_years' => 'Tres años',
|
'freq_three_years' => 'Tres años',
|
||||||
'military_time_help' => 'Pantalla de 24 horas',
|
'military_time_help' => 'Pantalla de 24 horas',
|
||||||
'click_here_capital' => 'haga clic aquí',
|
'click_here_capital' => 'haga clic aquí',
|
||||||
'marked_invoice_as_paid' => 'Factura marcada correctamente como enviada',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Facturas marcadas correctamente como enviadas',
|
'marked_invoices_as_sent' => 'Facturas marcadas correctamente como enviadas',
|
||||||
'marked_invoices_as_paid' => 'Facturas marcadas correctamente como enviadas',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'El sistema no envió la factura por correo electrónico :invoice',
|
'activity_57' => 'El sistema no envió la factura por correo electrónico :invoice',
|
||||||
'custom_value3' => 'Valor personalizado 3',
|
'custom_value3' => 'Valor personalizado 3',
|
||||||
'custom_value4' => 'Valor personalizado 4',
|
'custom_value4' => 'Valor personalizado 4',
|
||||||
@ -3861,7 +3864,7 @@ $LANG = array(
|
|||||||
'notification_credit_viewed' => 'El siguiente cliente :client vio el Crédito :credit para :amount.',
|
'notification_credit_viewed' => 'El siguiente cliente :client vio el Crédito :credit para :amount.',
|
||||||
'reset_password_text' => 'Ingrese su correo electrónico para restablecer su contraseña.',
|
'reset_password_text' => 'Ingrese su correo electrónico para restablecer su contraseña.',
|
||||||
'password_reset' => 'Restablecimiento de contraseña',
|
'password_reset' => 'Restablecimiento de contraseña',
|
||||||
'account_login_text' => 'Welcome! Glad to see you.',
|
'account_login_text' => '¡Bienvenido! Contento de verte.',
|
||||||
'request_cancellation' => 'Solicitar una cancelación',
|
'request_cancellation' => 'Solicitar una cancelación',
|
||||||
'delete_payment_method' => 'Eliminar método de pago',
|
'delete_payment_method' => 'Eliminar método de pago',
|
||||||
'about_to_delete_payment_method' => 'Está a punto de eliminar el método de pago.',
|
'about_to_delete_payment_method' => 'Está a punto de eliminar el método de pago.',
|
||||||
@ -3975,7 +3978,7 @@ $LANG = array(
|
|||||||
'add_payment_method_first' => 'añadir método de pago',
|
'add_payment_method_first' => 'añadir método de pago',
|
||||||
'no_items_selected' => 'No hay elementos seleccionados.',
|
'no_items_selected' => 'No hay elementos seleccionados.',
|
||||||
'payment_due' => 'Fecha de pago',
|
'payment_due' => 'Fecha de pago',
|
||||||
'account_balance' => 'Account Balance',
|
'account_balance' => 'Saldo de la cuenta',
|
||||||
'thanks' => 'Gracias',
|
'thanks' => 'Gracias',
|
||||||
'minimum_required_payment' => 'El pago mínimo requerido es :amount',
|
'minimum_required_payment' => 'El pago mínimo requerido es :amount',
|
||||||
'under_payments_disabled' => 'La empresa no admite pagos inferiores.',
|
'under_payments_disabled' => 'La empresa no admite pagos inferiores.',
|
||||||
@ -4000,7 +4003,7 @@ $LANG = array(
|
|||||||
'notification_invoice_reminder1_sent_subject' => 'El recordatorio 1 de la factura :invoice se envió a :client',
|
'notification_invoice_reminder1_sent_subject' => 'El recordatorio 1 de la factura :invoice se envió a :client',
|
||||||
'notification_invoice_reminder2_sent_subject' => 'El recordatorio 2 de la factura :invoice se envió a :client',
|
'notification_invoice_reminder2_sent_subject' => 'El recordatorio 2 de la factura :invoice se envió a :client',
|
||||||
'notification_invoice_reminder3_sent_subject' => 'El recordatorio 3 de la factura :invoice se envió a :client',
|
'notification_invoice_reminder3_sent_subject' => 'El recordatorio 3 de la factura :invoice se envió a :client',
|
||||||
'notification_invoice_custom_sent_subject' => 'Custom reminder for Invoice :invoice was sent to :client',
|
'notification_invoice_custom_sent_subject' => 'Se envió un recordatorio personalizado para la factura :invoice a :client',
|
||||||
'notification_invoice_reminder_endless_sent_subject' => 'Se envió un recordatorio interminable de la factura :invoice a :client',
|
'notification_invoice_reminder_endless_sent_subject' => 'Se envió un recordatorio interminable de la factura :invoice a :client',
|
||||||
'assigned_user' => 'Usuario asignado',
|
'assigned_user' => 'Usuario asignado',
|
||||||
'setup_steps_notice' => 'Para continuar con el siguiente paso, asegúrese de probar cada sección.',
|
'setup_steps_notice' => 'Para continuar con el siguiente paso, asegúrese de probar cada sección.',
|
||||||
@ -4378,7 +4381,7 @@ $LANG = array(
|
|||||||
'imported_customers' => 'Comenzó con éxito la importación de clientes',
|
'imported_customers' => 'Comenzó con éxito la importación de clientes',
|
||||||
'login_success' => 'Acceso exitoso',
|
'login_success' => 'Acceso exitoso',
|
||||||
'login_failure' => 'Inicio de sesión fallido',
|
'login_failure' => 'Inicio de sesión fallido',
|
||||||
'exported_data' => 'Once the file is ready you\'ll receive an email with a download link',
|
'exported_data' => 'Una vez que el archivo esté listo, recibirá un correo electrónico con un enlace de descarga.',
|
||||||
'include_deleted_clients' => 'Incluir clientes eliminados',
|
'include_deleted_clients' => 'Incluir clientes eliminados',
|
||||||
'include_deleted_clients_help' => 'Cargar registros pertenecientes a clientes eliminados',
|
'include_deleted_clients_help' => 'Cargar registros pertenecientes a clientes eliminados',
|
||||||
'step_1_sign_in' => 'Paso 1: Iniciar sesión',
|
'step_1_sign_in' => 'Paso 1: Iniciar sesión',
|
||||||
@ -4467,7 +4470,7 @@ $LANG = array(
|
|||||||
'activity_123' => ':user gasto recurrente eliminado :recurring_expense',
|
'activity_123' => ':user gasto recurrente eliminado :recurring_expense',
|
||||||
'activity_124' => ':user gasto recurrente restaurado :recurring_expense',
|
'activity_124' => ':user gasto recurrente restaurado :recurring_expense',
|
||||||
'fpx' => "FPX",
|
'fpx' => "FPX",
|
||||||
'to_view_entity_set_password' => 'To view the :entity you need to set a password.',
|
'to_view_entity_set_password' => 'Para ver el :entity necesita establecer una contraseña.',
|
||||||
'unsubscribe' => 'Darse de baja',
|
'unsubscribe' => 'Darse de baja',
|
||||||
'unsubscribed' => 'dado de baja',
|
'unsubscribed' => 'dado de baja',
|
||||||
'unsubscribed_text' => 'Has sido eliminado de las notificaciones de este documento.',
|
'unsubscribed_text' => 'Has sido eliminado de las notificaciones de este documento.',
|
||||||
@ -4565,7 +4568,7 @@ $LANG = array(
|
|||||||
'purchase_order_number' => 'Número de orden de compra',
|
'purchase_order_number' => 'Número de orden de compra',
|
||||||
'purchase_order_number_short' => 'Orden de compra #',
|
'purchase_order_number_short' => 'Orden de compra #',
|
||||||
'inventory_notification_subject' => 'Notificación de umbral de inventario para el producto: :product',
|
'inventory_notification_subject' => 'Notificación de umbral de inventario para el producto: :product',
|
||||||
'inventory_notification_body' => 'Threshold of :amount has been reached for product: :product',
|
'inventory_notification_body' => 'Se alcanzó el umbral de :amount para el producto: :product',
|
||||||
'activity_130' => ':user orden de compra creada :purchase_order',
|
'activity_130' => ':user orden de compra creada :purchase_order',
|
||||||
'activity_131' => ':user orden de compra actualizada :purchase_order',
|
'activity_131' => ':user orden de compra actualizada :purchase_order',
|
||||||
'activity_132' => ':user orden de compra archivada :purchase_order',
|
'activity_132' => ':user orden de compra archivada :purchase_order',
|
||||||
@ -4597,7 +4600,7 @@ $LANG = array(
|
|||||||
'vendor_document_upload' => 'Carga de documentos de proveedores',
|
'vendor_document_upload' => 'Carga de documentos de proveedores',
|
||||||
'vendor_document_upload_help' => 'Permitir que los proveedores carguen documentos',
|
'vendor_document_upload_help' => 'Permitir que los proveedores carguen documentos',
|
||||||
'are_you_enjoying_the_app' => '¿Estás disfrutando de la aplicación?',
|
'are_you_enjoying_the_app' => '¿Estás disfrutando de la aplicación?',
|
||||||
'yes_its_great' => 'Yes, it\'s great!',
|
'yes_its_great' => '¡Sí, es genial!',
|
||||||
'not_so_much' => 'No tanto',
|
'not_so_much' => 'No tanto',
|
||||||
'would_you_rate_it' => '¡Me alegro de oirlo! ¿Te gustaría calificarlo?',
|
'would_you_rate_it' => '¡Me alegro de oirlo! ¿Te gustaría calificarlo?',
|
||||||
'would_you_tell_us_more' => '¡Lamento escucharlo! ¿Te gustaría contarnos más?',
|
'would_you_tell_us_more' => '¡Lamento escucharlo! ¿Te gustaría contarnos más?',
|
||||||
@ -4906,7 +4909,7 @@ $LANG = array(
|
|||||||
'all_clients' => 'Todos los clientes',
|
'all_clients' => 'Todos los clientes',
|
||||||
'show_aging_table' => 'Mostrar tabla de antigüedad',
|
'show_aging_table' => 'Mostrar tabla de antigüedad',
|
||||||
'show_payments_table' => 'Mostrar tabla de pagos',
|
'show_payments_table' => 'Mostrar tabla de pagos',
|
||||||
'only_clients_with_invoices' => 'Only Clients with Invoices',
|
'only_clients_with_invoices' => 'Solo Clientes con Facturas',
|
||||||
'email_statement' => 'Estado de cuenta por correo electrónico',
|
'email_statement' => 'Estado de cuenta por correo electrónico',
|
||||||
'once' => 'Una vez',
|
'once' => 'Una vez',
|
||||||
'schedules' => 'Horarios',
|
'schedules' => 'Horarios',
|
||||||
@ -4950,7 +4953,7 @@ $LANG = array(
|
|||||||
'sync_from' => 'sincronizar desde',
|
'sync_from' => 'sincronizar desde',
|
||||||
'gateway_payment_text' => 'Facturas: :invoices para :amount para cliente :client',
|
'gateway_payment_text' => 'Facturas: :invoices para :amount para cliente :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Pago sin factura por importe :amount para cliente :client',
|
'gateway_payment_text_no_invoice' => 'Pago sin factura por importe :amount para cliente :client',
|
||||||
'click_to_variables' => 'Cliente aquí para ver todas las variables.',
|
'click_to_variables' => 'Haga clic aquí para ver todas las variables.',
|
||||||
'ship_to' => 'Envie a',
|
'ship_to' => 'Envie a',
|
||||||
'stripe_direct_debit_details' => 'Por favor transfiera a la cuenta bancaria designada arriba.',
|
'stripe_direct_debit_details' => 'Por favor transfiera a la cuenta bancaria designada arriba.',
|
||||||
'branch_name' => 'Nombre de la sucursal',
|
'branch_name' => 'Nombre de la sucursal',
|
||||||
@ -4970,7 +4973,7 @@ $LANG = array(
|
|||||||
'payment_type_Interac E Transfer' => 'Transferencia Interac E',
|
'payment_type_Interac E Transfer' => 'Transferencia Interac E',
|
||||||
'xinvoice_payable' => 'Payable within :payeddue days net until :paydate',
|
'xinvoice_payable' => 'Payable within :payeddue days net until :paydate',
|
||||||
'xinvoice_no_buyers_reference' => "No se da referencia del comprador",
|
'xinvoice_no_buyers_reference' => "No se da referencia del comprador",
|
||||||
'xinvoice_online_payment' => 'The invoice needs to be paid online via the provided link',
|
'xinvoice_online_payment' => 'La factura debe pagarse en línea a través del enlace provisto',
|
||||||
'pre_payment' => 'Prepago',
|
'pre_payment' => 'Prepago',
|
||||||
'number_of_payments' => 'numero de pagos',
|
'number_of_payments' => 'numero de pagos',
|
||||||
'number_of_payments_helper' => 'El número de veces que se realizará este pago.',
|
'number_of_payments_helper' => 'El número de veces que se realizará este pago.',
|
||||||
@ -5044,76 +5047,117 @@ $LANG = array(
|
|||||||
'date_picker_hint' => 'Utilice +days para establecer la fecha en el futuro',
|
'date_picker_hint' => 'Utilice +days para establecer la fecha en el futuro',
|
||||||
'app_help_link' => 'Más información',
|
'app_help_link' => 'Más información',
|
||||||
'here' => 'aquí',
|
'here' => 'aquí',
|
||||||
'industry_Restaurant & Catering' => 'Restaurant & Catering',
|
'industry_Restaurant & Catering' => 'Restaurante y Catering',
|
||||||
'show_credits_table' => 'Show Credits Table',
|
'show_credits_table' => 'Mostrar tabla de créditos',
|
||||||
'manual_payment' => 'Payment Manual',
|
'manual_payment' => 'Manual de pago',
|
||||||
'tax_summary_report' => 'Tax Summary Report',
|
'tax_summary_report' => 'Informe resumido de impuestos',
|
||||||
'tax_category' => 'Tax Category',
|
'tax_category' => 'Categoría de impuestos',
|
||||||
'physical_goods' => 'Physical Goods',
|
'physical_goods' => 'Bienes físicos',
|
||||||
'digital_products' => 'Digital Products',
|
'digital_products' => 'Productos digitales',
|
||||||
'services' => 'Services',
|
'services' => 'Servicios',
|
||||||
'shipping' => 'Shipping',
|
'shipping' => 'Envío',
|
||||||
'tax_exempt' => 'Tax Exempt',
|
'tax_exempt' => 'Exento de Impuestos',
|
||||||
'late_fee_added_locked_invoice' => 'Late fee for invoice :invoice added on :date',
|
'late_fee_added_locked_invoice' => 'Cargo por pago atrasado de la factura :invoice agregado en :date',
|
||||||
'lang_Khmer' => 'Khmer',
|
'lang_Khmer' => 'jemer',
|
||||||
'routing_id' => 'Routing ID',
|
'routing_id' => 'Id. de enrutamiento',
|
||||||
'enable_e_invoice' => 'Enable E-Invoice',
|
'enable_e_invoice' => 'Habilitar factura electrónica',
|
||||||
'e_invoice_type' => 'E-Invoice Type',
|
'e_invoice_type' => 'Tipo de factura electrónica',
|
||||||
'reduced_tax' => 'Reduced Tax',
|
'reduced_tax' => 'Impuesto reducido',
|
||||||
'override_tax' => 'Override Tax',
|
'override_tax' => 'Anular impuestos',
|
||||||
'zero_rated' => 'Zero Rated',
|
'zero_rated' => 'Clasificación cero',
|
||||||
'reverse_tax' => 'Reverse Tax',
|
'reverse_tax' => 'Impuesto Inverso',
|
||||||
'updated_tax_category' => 'Successfully updated the tax category',
|
'updated_tax_category' => 'Se actualizó con éxito la categoría de impuestos',
|
||||||
'updated_tax_categories' => 'Successfully updated the tax categories',
|
'updated_tax_categories' => 'Actualizadas con éxito las categorías de impuestos',
|
||||||
'set_tax_category' => 'Set Tax Category',
|
'set_tax_category' => 'Establecer categoría de impuestos',
|
||||||
'payment_manual' => 'Payment Manual',
|
'payment_manual' => 'Manual de pago',
|
||||||
'expense_payment_type' => 'Expense Payment Type',
|
'expense_payment_type' => 'Tipo de pago de gastos',
|
||||||
'payment_type_Cash App' => 'Cash App',
|
'payment_type_Cash App' => 'Aplicación de efectivo',
|
||||||
'rename' => 'Rename',
|
'rename' => 'Rebautizar',
|
||||||
'renamed_document' => 'Successfully renamed document',
|
'renamed_document' => 'Documento renombrado con éxito',
|
||||||
'e_invoice' => 'E-Invoice',
|
'e_invoice' => 'Factura electrónica',
|
||||||
'light_dark_mode' => 'Light/Dark Mode',
|
'light_dark_mode' => 'Modo claro/oscuro',
|
||||||
'activities' => 'Activities',
|
'activities' => 'Actividades',
|
||||||
'recent_transactions' => "Here are your company's most recent transactions:",
|
'recent_transactions' => "Estas son las transacciones más recientes de su empresa:",
|
||||||
'country_Palestine' => "Palestine",
|
'country_Palestine' => "Palestina",
|
||||||
'country_Taiwan' => 'Taiwan',
|
'country_Taiwan' => 'Taiwán',
|
||||||
'duties' => 'Duties',
|
'duties' => 'Deberes',
|
||||||
'order_number' => 'Order Number',
|
'order_number' => 'Número de orden',
|
||||||
'order_id' => 'Order',
|
'order_id' => 'Orden',
|
||||||
'total_invoices_outstanding' => 'Total Invoices Outstanding',
|
'total_invoices_outstanding' => 'Total de facturas pendientes',
|
||||||
'recent_activity' => 'Recent Activity',
|
'recent_activity' => 'Actividad reciente',
|
||||||
'enable_auto_bill' => 'Enable auto billing',
|
'enable_auto_bill' => 'Habilitar la facturación automática',
|
||||||
'email_count_invoices' => 'Email :count invoices',
|
'email_count_invoices' => 'Correo electrónico :count facturas',
|
||||||
'invoice_task_item_description' => 'Invoice Task Item Description',
|
'invoice_task_item_description' => 'Descripción del elemento de la tarea de la factura',
|
||||||
'invoice_task_item_description_help' => 'Add the item description to the invoice line items',
|
'invoice_task_item_description_help' => 'Agregar la descripción del artículo a las líneas de la factura',
|
||||||
'next_send_time' => 'Next Send Time',
|
'next_send_time' => 'Próxima hora de envío',
|
||||||
'uploaded_certificate' => 'Successfully uploaded certificate',
|
'uploaded_certificate' => 'Certificado subido correctamente',
|
||||||
'certificate_set' => 'Certificate set',
|
'certificate_set' => 'conjunto de certificados',
|
||||||
'certificate_not_set' => 'Certificate not set',
|
'certificate_not_set' => 'Certificado no establecido',
|
||||||
'passphrase_set' => 'Passphrase set',
|
'passphrase_set' => 'Conjunto de frase de contraseña',
|
||||||
'passphrase_not_set' => 'Passphrase not set',
|
'passphrase_not_set' => 'Frase de contraseña no establecida',
|
||||||
'upload_certificate' => 'Upload Certificate',
|
'upload_certificate' => 'Subir certificado',
|
||||||
'certificate_passphrase' => 'Certificate Passphrase',
|
'certificate_passphrase' => 'Frase de contraseña del certificado',
|
||||||
'valid_vat_number' => 'Valid VAT Number',
|
'valid_vat_number' => 'Número de IVA válido',
|
||||||
'react_notification_link' => 'React Notification Links',
|
'react_notification_link' => 'Reaccionar enlaces de notificación',
|
||||||
'react_notification_link_help' => 'Admin emails will contain links to the react application',
|
'react_notification_link_help' => 'Los correos electrónicos de administración contendrán enlaces a la aplicación de reacción',
|
||||||
'show_task_billable' => 'Show Task Billable',
|
'show_task_billable' => 'Mostrar tarea facturable',
|
||||||
'credit_item' => 'Credit Item',
|
'credit_item' => 'Artículo de crédito',
|
||||||
'drop_file_here' => 'Drop file here',
|
'drop_file_here' => 'Suelta el archivo aquí',
|
||||||
'files' => 'Files',
|
'files' => 'archivos',
|
||||||
'camera' => 'Camera',
|
'camera' => 'Cámara',
|
||||||
'gallery' => 'Gallery',
|
'gallery' => 'Galería',
|
||||||
'project_location' => 'Project Location',
|
'project_location' => 'Localización del proyecto',
|
||||||
'add_gateway_help_message' => 'Add a payment gateway (ie. Stripe, WePay or PayPal) to accept online payments',
|
'add_gateway_help_message' => 'Agregue una pasarela de pago (es decir, Stripe, WePay o PayPal) para aceptar pagos en línea',
|
||||||
'lang_Hungarian' => 'Hungarian',
|
'lang_Hungarian' => 'húngaro',
|
||||||
'use_mobile_to_manage_plan' => 'Use your phone subscription settings to manage your plan',
|
'use_mobile_to_manage_plan' => 'Use la configuración de suscripción de su teléfono para administrar su plan',
|
||||||
'item_tax3' => 'Item Tax3',
|
'item_tax3' => 'Artículo Impuesto3',
|
||||||
'item_tax_rate1' => 'Item Tax Rate 1',
|
'item_tax_rate1' => 'Artículo Tasa de impuesto 1',
|
||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Artículo Tasa de impuesto 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Artículo Tasa de impuestos 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Precio de compra',
|
||||||
);
|
'country_Macedonia' => 'macedonia',
|
||||||
|
'admin_initiated_payments' => 'Pagos iniciados por el administrador',
|
||||||
|
'admin_initiated_payments_help' => 'Soporte para ingresar un pago en el portal de administración sin factura',
|
||||||
|
'paid_date' => 'Fecha de pago',
|
||||||
|
'downloaded_entities' => 'Se enviará un correo electrónico con los PDF',
|
||||||
|
'lang_French - Swiss' => 'Francés - Suizo',
|
||||||
|
'currency_swazi_lilangeni' => 'Lilangeni suazi',
|
||||||
|
'income' => 'Ingreso',
|
||||||
|
'amount_received_help' => 'Ingrese un valor aquí si el monto total recibido fue MÁS que el monto de la factura, o al registrar un pago sin facturas. De lo contrario, este campo debe dejarse en blanco.',
|
||||||
|
'vendor_phone' => 'Teléfono del proveedor',
|
||||||
|
'mercado_pago' => 'mercado pago',
|
||||||
|
'mybank' => 'Mi banco',
|
||||||
|
'paypal_paylater' => 'Paga en 4',
|
||||||
|
'paid_date' => 'Fecha de pago',
|
||||||
|
'district' => 'Distrito',
|
||||||
|
'region' => 'Región',
|
||||||
|
'county' => 'Condado',
|
||||||
|
'tax_details' => 'Detalles de impuestos',
|
||||||
|
'activity_10_online' => ':contact ingresó el pago :payment para la factura :invoice para :client',
|
||||||
|
'activity_10_manual' => ':user ingresó el pago :payment para la factura :invoice para :client',
|
||||||
|
'default_payment_type' => 'Tipo de pago predeterminado',
|
||||||
|
'number_precision' => 'Precisión numérica',
|
||||||
|
'number_precision_help' => 'Controla el número de decimales admitidos en la interfaz',
|
||||||
|
'is_tax_exempt' => 'Exento de Impuestos',
|
||||||
|
'drop_files_here' => 'Suelte archivos aquí',
|
||||||
|
'upload_files' => 'Subir archivos',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -2394,6 +2394,9 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Peso Cubano',
|
'currency_cuban_peso' => 'Peso Cubano',
|
||||||
'currency_bz_dollar' => 'Dólar BZ',
|
'currency_bz_dollar' => 'Dólar BZ',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'Esperamos que estés disfrutando con la app. <br/>Si consideras :link ¡te lo agraderemos enormemente!',
|
'review_app_help' => 'Esperamos que estés disfrutando con la app. <br/>Si consideras :link ¡te lo agraderemos enormemente!',
|
||||||
'writing_a_review' => 'escribir una reseña',
|
'writing_a_review' => 'escribir una reseña',
|
||||||
@ -3329,9 +3332,9 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c
|
|||||||
'freq_three_years' => 'Tres Años',
|
'freq_three_years' => 'Tres Años',
|
||||||
'military_time_help' => 'Formato de 24 Horas',
|
'military_time_help' => 'Formato de 24 Horas',
|
||||||
'click_here_capital' => 'Pulsa aquí',
|
'click_here_capital' => 'Pulsa aquí',
|
||||||
'marked_invoice_as_paid' => 'Factura marcada como enviada correctamente',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Facturas marcadas como enviadas correctamente',
|
'marked_invoices_as_sent' => 'Facturas marcadas como enviadas correctamente',
|
||||||
'marked_invoices_as_paid' => 'Facturas marcadas como enviadas correctamente',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'El sistema falló al enviar la factura :invoice',
|
'activity_57' => 'El sistema falló al enviar la factura :invoice',
|
||||||
'custom_value3' => 'Valor Personalizado 3',
|
'custom_value3' => 'Valor Personalizado 3',
|
||||||
'custom_value4' => 'Valor Personalizado 4',
|
'custom_value4' => 'Valor Personalizado 4',
|
||||||
@ -4942,7 +4945,7 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c
|
|||||||
'sync_from' => 'sincronizar desde',
|
'sync_from' => 'sincronizar desde',
|
||||||
'gateway_payment_text' => 'Factura: :invoices por importe de :amount de :client',
|
'gateway_payment_text' => 'Factura: :invoices por importe de :amount de :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Pago sin factura por importe :amount del cliente :client',
|
'gateway_payment_text_no_invoice' => 'Pago sin factura por importe :amount del cliente :client',
|
||||||
'click_to_variables' => 'Aquí para ver todas las variables del cliente',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'Enviar a',
|
'ship_to' => 'Enviar a',
|
||||||
'stripe_direct_debit_details' => 'Por favor transfiera a la cuenta bancaria designada arriba.',
|
'stripe_direct_debit_details' => 'Por favor transfiera a la cuenta bancaria designada arriba.',
|
||||||
'branch_name' => 'Nombre de la sucursal',
|
'branch_name' => 'Nombre de la sucursal',
|
||||||
@ -5104,8 +5107,49 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c
|
|||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Buy Price',
|
||||||
);
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -2401,6 +2401,9 @@ $LANG = array(
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Kuuba peeso',
|
'currency_cuban_peso' => 'Kuuba peeso',
|
||||||
'currency_bz_dollar' => 'BZ Dollar',
|
'currency_bz_dollar' => 'BZ Dollar',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'Loodame, et teile meeldib rakenduse kasutamine.<br/>Kui kaaluksite :link, oleksime selle eest väga tänulikud!',
|
'review_app_help' => 'Loodame, et teile meeldib rakenduse kasutamine.<br/>Kui kaaluksite :link, oleksime selle eest väga tänulikud!',
|
||||||
'writing_a_review' => 'arvustuse kirjutamine',
|
'writing_a_review' => 'arvustuse kirjutamine',
|
||||||
@ -3336,9 +3339,9 @@ $LANG = array(
|
|||||||
'freq_three_years' => 'Kolm aastat',
|
'freq_three_years' => 'Kolm aastat',
|
||||||
'military_time_help' => '24 Hour Display',
|
'military_time_help' => '24 Hour Display',
|
||||||
'click_here_capital' => 'Kliki siia',
|
'click_here_capital' => 'Kliki siia',
|
||||||
'marked_invoice_as_paid' => 'Arve märgiti saadetuks',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Arved märgiti saadetuks',
|
'marked_invoices_as_sent' => 'Arved märgiti saadetuks',
|
||||||
'marked_invoices_as_paid' => 'Arved märgiti saadetuks',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'Süsteem ei suutnud arvet :invoice meiliga saata',
|
'activity_57' => 'Süsteem ei suutnud arvet :invoice meiliga saata',
|
||||||
'custom_value3' => 'Kohandatud väärtus 3',
|
'custom_value3' => 'Kohandatud väärtus 3',
|
||||||
'custom_value4' => 'Kohandatud väärtus 4',
|
'custom_value4' => 'Kohandatud väärtus 4',
|
||||||
@ -4949,7 +4952,7 @@ $LANG = array(
|
|||||||
'sync_from' => 'Sync From',
|
'sync_from' => 'Sync From',
|
||||||
'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client',
|
'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Payment with no invoice for amount :amount for client :client',
|
'gateway_payment_text_no_invoice' => 'Payment with no invoice for amount :amount for client :client',
|
||||||
'click_to_variables' => 'Client here to see all variables.',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'Ship to',
|
'ship_to' => 'Ship to',
|
||||||
'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.',
|
'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.',
|
||||||
'branch_name' => 'Branch Name',
|
'branch_name' => 'Branch Name',
|
||||||
@ -5111,8 +5114,49 @@ $LANG = array(
|
|||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Buy Price',
|
||||||
);
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -2404,6 +2404,9 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Cuban Peso',
|
'currency_cuban_peso' => 'Cuban Peso',
|
||||||
'currency_bz_dollar' => 'BZ Dollar',
|
'currency_bz_dollar' => 'BZ Dollar',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'We hope you\'re enjoying using app.<br/>If you\'d consider :link we\'d greatly appreciate it!',
|
'review_app_help' => 'We hope you\'re enjoying using app.<br/>If you\'d consider :link we\'d greatly appreciate it!',
|
||||||
'writing_a_review' => 'writing review',
|
'writing_a_review' => 'writing review',
|
||||||
@ -3339,9 +3342,9 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta
|
|||||||
'freq_three_years' => '3 vuotta',
|
'freq_three_years' => '3 vuotta',
|
||||||
'military_time_help' => 'Näytä 24 tunnin aikamuoto',
|
'military_time_help' => 'Näytä 24 tunnin aikamuoto',
|
||||||
'click_here_capital' => 'Klikkaa tästä',
|
'click_here_capital' => 'Klikkaa tästä',
|
||||||
'marked_invoice_as_paid' => 'Lasku merkittiin lähetetyksi onnistuneesti',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Laskut merkittiin lähetetyksi onnistuneesti',
|
'marked_invoices_as_sent' => 'Laskut merkittiin lähetetyksi onnistuneesti',
|
||||||
'marked_invoices_as_paid' => 'Laskut merkittiin lähetetyksi onnistuneesti',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'Järjestelmä epäonnistui lähettämään sähköpostilaskun :invoice',
|
'activity_57' => 'Järjestelmä epäonnistui lähettämään sähköpostilaskun :invoice',
|
||||||
'custom_value3' => 'Muokattu arvo 3',
|
'custom_value3' => 'Muokattu arvo 3',
|
||||||
'custom_value4' => 'Muokattu arvo 4',
|
'custom_value4' => 'Muokattu arvo 4',
|
||||||
@ -4952,7 +4955,7 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta
|
|||||||
'sync_from' => 'Sync From',
|
'sync_from' => 'Sync From',
|
||||||
'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client',
|
'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Payment with no invoice for amount :amount for client :client',
|
'gateway_payment_text_no_invoice' => 'Payment with no invoice for amount :amount for client :client',
|
||||||
'click_to_variables' => 'Client here to see all variables.',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'Ship to',
|
'ship_to' => 'Ship to',
|
||||||
'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.',
|
'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.',
|
||||||
'branch_name' => 'Branch Name',
|
'branch_name' => 'Branch Name',
|
||||||
@ -5114,8 +5117,49 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta
|
|||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Buy Price',
|
||||||
);
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -499,7 +499,7 @@ $LANG = array(
|
|||||||
'payment_type_bitcoin' => 'Bitcoin',
|
'payment_type_bitcoin' => 'Bitcoin',
|
||||||
'payment_type_gocardless' => 'GoCardless',
|
'payment_type_gocardless' => 'GoCardless',
|
||||||
'knowledge_base' => 'Base de connaissances',
|
'knowledge_base' => 'Base de connaissances',
|
||||||
'partial' => 'Partiel/dépôt',
|
'partial' => 'Acompte',
|
||||||
'partial_remaining' => ':partial de :balance',
|
'partial_remaining' => ':partial de :balance',
|
||||||
'more_fields' => 'Plus de champs',
|
'more_fields' => 'Plus de champs',
|
||||||
'less_fields' => 'Moins de champs',
|
'less_fields' => 'Moins de champs',
|
||||||
@ -748,7 +748,7 @@ $LANG = array(
|
|||||||
'activity_7' => ':contact a vu la facture :invoice pour :client',
|
'activity_7' => ':contact a vu la facture :invoice pour :client',
|
||||||
'activity_8' => ':user a archivé la facture :invoice',
|
'activity_8' => ':user a archivé la facture :invoice',
|
||||||
'activity_9' => ':user a supprimé la facture :invoice',
|
'activity_9' => ':user a supprimé la facture :invoice',
|
||||||
'activity_10' => ':user entered payment :payment for :payment_amount on invoice :invoice for :client',
|
'activity_10' => ':user a saisi le paiement :payment pour :payment _montant sur la facture :invoice pour :client',
|
||||||
'activity_11' => ':user a mis à jour le moyen de paiement :payment',
|
'activity_11' => ':user a mis à jour le moyen de paiement :payment',
|
||||||
'activity_12' => ':user a archivé le moyen de paiement :payment',
|
'activity_12' => ':user a archivé le moyen de paiement :payment',
|
||||||
'activity_13' => ':user a supprimé le moyen de paiement :payment',
|
'activity_13' => ':user a supprimé le moyen de paiement :payment',
|
||||||
@ -1083,7 +1083,7 @@ $LANG = array(
|
|||||||
'user_create_all' => 'Créer des clients, des factures, etc.',
|
'user_create_all' => 'Créer des clients, des factures, etc.',
|
||||||
'user_view_all' => 'Voir tous les clients, les factures, etc.',
|
'user_view_all' => 'Voir tous les clients, les factures, etc.',
|
||||||
'user_edit_all' => 'Modifier tous les clients, les factures, etc.',
|
'user_edit_all' => 'Modifier tous les clients, les factures, etc.',
|
||||||
'partial_due' => 'Solde partiel',
|
'partial_due' => 'Acompte à verser',
|
||||||
'restore_vendor' => 'Restaurer le fournisseur',
|
'restore_vendor' => 'Restaurer le fournisseur',
|
||||||
'restored_vendor' => 'Fournisseur restauré avec succès',
|
'restored_vendor' => 'Fournisseur restauré avec succès',
|
||||||
'restored_expense' => 'Dépense restaurée avec succès',
|
'restored_expense' => 'Dépense restaurée avec succès',
|
||||||
@ -1327,7 +1327,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'finish_setup' => 'Terminer la configuration',
|
'finish_setup' => 'Terminer la configuration',
|
||||||
'created_wepay_confirmation_required' => 'Veuillez vérifier votre courriel et confirmer votre adresse courriel avec WePay.',
|
'created_wepay_confirmation_required' => 'Veuillez vérifier votre courriel et confirmer votre adresse courriel avec WePay.',
|
||||||
'switch_to_wepay' => 'Changer pour WePay',
|
'switch_to_wepay' => 'Changer pour WePay',
|
||||||
'switch' => 'Changer',
|
'switch' => 'Commutateur',
|
||||||
'restore_account_gateway' => 'Rétablir la passerelle de paiement',
|
'restore_account_gateway' => 'Rétablir la passerelle de paiement',
|
||||||
'restored_account_gateway' => 'La passerelle de paiement a été rétablie',
|
'restored_account_gateway' => 'La passerelle de paiement a été rétablie',
|
||||||
'united_states' => 'États-Unis',
|
'united_states' => 'États-Unis',
|
||||||
@ -1994,7 +1994,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'current_quarter' => 'Trimestre courant',
|
'current_quarter' => 'Trimestre courant',
|
||||||
'last_quarter' => 'Dernier trimestre',
|
'last_quarter' => 'Dernier trimestre',
|
||||||
'last_year' => 'Dernière année',
|
'last_year' => 'Dernière année',
|
||||||
'all_time' => 'All Time',
|
'all_time' => 'Tout le temps',
|
||||||
'custom_range' => 'Intervalle personnalisé',
|
'custom_range' => 'Intervalle personnalisé',
|
||||||
'url' => 'URL',
|
'url' => 'URL',
|
||||||
'debug' => 'Débogage',
|
'debug' => 'Débogage',
|
||||||
@ -2210,7 +2210,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'expense_link' => 'Dépenses',
|
'expense_link' => 'Dépenses',
|
||||||
'resume_task' => 'Relancer la tâche',
|
'resume_task' => 'Relancer la tâche',
|
||||||
'resumed_task' => 'Tâche relancée avec succès',
|
'resumed_task' => 'Tâche relancée avec succès',
|
||||||
'quote_design' => 'Modèle des offres',
|
'quote_design' => 'Modèle des devis',
|
||||||
'default_design' => 'Conception standard',
|
'default_design' => 'Conception standard',
|
||||||
'custom_design1' => 'Modèle personnalisé 1',
|
'custom_design1' => 'Modèle personnalisé 1',
|
||||||
'custom_design2' => 'Modèle personnalisé 2',
|
'custom_design2' => 'Modèle personnalisé 2',
|
||||||
@ -2254,7 +2254,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'restore_recurring_expense' => 'Restaurer la dépense récurrente',
|
'restore_recurring_expense' => 'Restaurer la dépense récurrente',
|
||||||
'restored_recurring_expense' => 'Dépense récurrente restaurée avec succès',
|
'restored_recurring_expense' => 'Dépense récurrente restaurée avec succès',
|
||||||
'delete_recurring_expense' => 'Supprimer la dépense récurrente',
|
'delete_recurring_expense' => 'Supprimer la dépense récurrente',
|
||||||
'deleted_recurring_expense' => 'Successfully deleted recurring expense',
|
'deleted_recurring_expense' => 'La dépense récurrente a été supprimée',
|
||||||
'view_recurring_expense' => 'Voir la dépense récurrente',
|
'view_recurring_expense' => 'Voir la dépense récurrente',
|
||||||
'taxes_and_fees' => 'Taxes et frais',
|
'taxes_and_fees' => 'Taxes et frais',
|
||||||
'import_failed' => 'L\'importation a échoué',
|
'import_failed' => 'L\'importation a échoué',
|
||||||
@ -2398,6 +2398,9 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Peso colombien',
|
'currency_cuban_peso' => 'Peso colombien',
|
||||||
'currency_bz_dollar' => 'Dollar BZ',
|
'currency_bz_dollar' => 'Dollar BZ',
|
||||||
|
'currency_libyan_dinar' => 'Dinar libyen',
|
||||||
|
'currency_silver_troy_ounce' => 'Once troy d'argent',
|
||||||
|
'currency_gold_troy_ounce' => 'Once troy d'or',
|
||||||
|
|
||||||
'review_app_help' => 'Nous espérons que votre utilisation de cette application vous est agréable.<br/>Un commentaire de votre part serait grandement apprécié!',
|
'review_app_help' => 'Nous espérons que votre utilisation de cette application vous est agréable.<br/>Un commentaire de votre part serait grandement apprécié!',
|
||||||
'writing_a_review' => 'écrire un commentaire',
|
'writing_a_review' => 'écrire un commentaire',
|
||||||
@ -2509,8 +2512,8 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'partial_due_date' => 'Paiement partiel',
|
'partial_due_date' => 'Paiement partiel',
|
||||||
'task_fields' => 'Champs de tâche',
|
'task_fields' => 'Champs de tâche',
|
||||||
'product_fields_help' => 'Glissez et déposez les champs pour changer leur ordre',
|
'product_fields_help' => 'Glissez et déposez les champs pour changer leur ordre',
|
||||||
'custom_value1' => 'Custom Value 1',
|
'custom_value1' => 'Valeur personnalisée 1',
|
||||||
'custom_value2' => 'Custom Value 2',
|
'custom_value2' => 'Valeur personnalisée 2',
|
||||||
'enable_two_factor' => 'Authentification à 2 facteurs',
|
'enable_two_factor' => 'Authentification à 2 facteurs',
|
||||||
'enable_two_factor_help' => 'Utilisez votre téléphone pour confirmer votre identité lorsque vous vous connectez',
|
'enable_two_factor_help' => 'Utilisez votre téléphone pour confirmer votre identité lorsque vous vous connectez',
|
||||||
'two_factor_setup' => 'Configuration à deux facteurs',
|
'two_factor_setup' => 'Configuration à deux facteurs',
|
||||||
@ -2530,7 +2533,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'converted_amount' => 'Montant converti',
|
'converted_amount' => 'Montant converti',
|
||||||
'default' => 'Par défaut',
|
'default' => 'Par défaut',
|
||||||
'shipping_address' => 'Adresse de Livraison',
|
'shipping_address' => 'Adresse de Livraison',
|
||||||
'bllling_address' => 'Adresse de Facturation',
|
'bllling_address' => 'Adresse de facturation',
|
||||||
'billing_address1' => 'Rue',
|
'billing_address1' => 'Rue',
|
||||||
'billing_address2' => 'Appt/Bâtiment',
|
'billing_address2' => 'Appt/Bâtiment',
|
||||||
'billing_city' => 'Ville',
|
'billing_city' => 'Ville',
|
||||||
@ -2732,7 +2735,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'upgrade_to_upload_images' => 'Mettre à niveau vers le plan entreprise pour envoyer des images',
|
'upgrade_to_upload_images' => 'Mettre à niveau vers le plan entreprise pour envoyer des images',
|
||||||
'delete_image' => 'Supprimer l\'image',
|
'delete_image' => 'Supprimer l\'image',
|
||||||
'delete_image_help' => 'Attention : supprimer l\'image la retirera de toutes les propositions.',
|
'delete_image_help' => 'Attention : supprimer l\'image la retirera de toutes les propositions.',
|
||||||
'amount_variable_help' => 'Note: le champ $amount de la facture utilisera le champ partiel/dépôt. Il utilisera le solde de la facture, si spécifié autrement.',
|
'amount_variable_help' => 'Note: le champ $amount de la facture utilisera le champ d\'acompte. Il utilisera le solde de la facture, si spécifié autrement.',
|
||||||
'taxes_are_included_help' => 'Note : Les taxes incluses ont été activées.',
|
'taxes_are_included_help' => 'Note : Les taxes incluses ont été activées.',
|
||||||
'taxes_are_not_included_help' => 'Note : Les taxes incluses ne sont pas activées.',
|
'taxes_are_not_included_help' => 'Note : Les taxes incluses ne sont pas activées.',
|
||||||
'change_requires_purge' => 'Modifier ce paramètre requière de :link les données du compte.',
|
'change_requires_purge' => 'Modifier ce paramètre requière de :link les données du compte.',
|
||||||
@ -2858,7 +2861,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'ok' => 'Ok',
|
'ok' => 'Ok',
|
||||||
'email_is_invalid' => 'L\'adresse de courriel n\'est pas correcte',
|
'email_is_invalid' => 'L\'adresse de courriel n\'est pas correcte',
|
||||||
'items' => 'Articles ',
|
'items' => 'Articles ',
|
||||||
'partial_deposit' => 'Depot Partial ',
|
'partial_deposit' => 'Acompte',
|
||||||
'add_item' => 'Ajouter Article ',
|
'add_item' => 'Ajouter Article ',
|
||||||
'total_amount' => 'Montant Total ',
|
'total_amount' => 'Montant Total ',
|
||||||
'pdf' => 'Fichier PDF',
|
'pdf' => 'Fichier PDF',
|
||||||
@ -3136,7 +3139,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'credit_field' => 'Champ de Crédit',
|
'credit_field' => 'Champ de Crédit',
|
||||||
'payment_field' => 'Champ de Paiement',
|
'payment_field' => 'Champ de Paiement',
|
||||||
'group_field' => 'Champ de Groupe',
|
'group_field' => 'Champ de Groupe',
|
||||||
'number_counter' => 'Compteur de nombre',
|
'number_counter' => 'Avancement du compteur',
|
||||||
'number_pattern' => 'Modèle de numéro',
|
'number_pattern' => 'Modèle de numéro',
|
||||||
'custom_javascript' => 'JavaScript personnalisé',
|
'custom_javascript' => 'JavaScript personnalisé',
|
||||||
'portal_mode' => 'Mode portail',
|
'portal_mode' => 'Mode portail',
|
||||||
@ -3178,7 +3181,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'filtered_by_group' => 'Filtrer par groupe',
|
'filtered_by_group' => 'Filtrer par groupe',
|
||||||
'filtered_by_invoice' => 'Filtré par Facture',
|
'filtered_by_invoice' => 'Filtré par Facture',
|
||||||
'filtered_by_client' => 'Filtré par Client',
|
'filtered_by_client' => 'Filtré par Client',
|
||||||
'filtered_by_vendor' => 'Filtré par Vendeur',
|
'filtered_by_vendor' => 'Filtré par fournisseur',
|
||||||
'group_settings' => 'Paramètres de groupe',
|
'group_settings' => 'Paramètres de groupe',
|
||||||
'groups' => 'Groupes',
|
'groups' => 'Groupes',
|
||||||
'new_group' => 'Nouveau Groupe',
|
'new_group' => 'Nouveau Groupe',
|
||||||
@ -3333,9 +3336,9 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'freq_three_years' => 'Trois ans',
|
'freq_three_years' => 'Trois ans',
|
||||||
'military_time_help' => 'Affichage sur 24h',
|
'military_time_help' => 'Affichage sur 24h',
|
||||||
'click_here_capital' => 'Cliquer ici',
|
'click_here_capital' => 'Cliquer ici',
|
||||||
'marked_invoice_as_paid' => 'Facture marquée comme envoyée',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Les factures ont été marquées envoyées',
|
'marked_invoices_as_sent' => 'Les factures ont été marquées envoyées',
|
||||||
'marked_invoices_as_paid' => 'Factures marquées comme envoyées',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'La facture :invoice n\'a pu être envoyée',
|
'activity_57' => 'La facture :invoice n\'a pu être envoyée',
|
||||||
'custom_value3' => 'Valeur personnalisée 3',
|
'custom_value3' => 'Valeur personnalisée 3',
|
||||||
'custom_value4' => 'Valeur personnalisée 4',
|
'custom_value4' => 'Valeur personnalisée 4',
|
||||||
@ -3618,7 +3621,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'search_invoice' => 'Recherche de 1 facture',
|
'search_invoice' => 'Recherche de 1 facture',
|
||||||
'search_client' => 'Recherche de 1 client',
|
'search_client' => 'Recherche de 1 client',
|
||||||
'search_product' => 'Recherche de 1 produit',
|
'search_product' => 'Recherche de 1 produit',
|
||||||
'search_quote' => 'Recherche de 1 soumission',
|
'search_quote' => 'Rechercher un devis',
|
||||||
'search_credit' => 'Recherche de 1 crédit',
|
'search_credit' => 'Recherche de 1 crédit',
|
||||||
'search_vendor' => 'Recherche de 1 fournisseurs',
|
'search_vendor' => 'Recherche de 1 fournisseurs',
|
||||||
'search_user' => 'Recherche de 1 utilisateur',
|
'search_user' => 'Recherche de 1 utilisateur',
|
||||||
@ -3678,7 +3681,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'allow_over_payment' => 'Accepter Sur-paiement',
|
'allow_over_payment' => 'Accepter Sur-paiement',
|
||||||
'allow_over_payment_help' => 'Accepter le paiement supplémentaire pour pourboire',
|
'allow_over_payment_help' => 'Accepter le paiement supplémentaire pour pourboire',
|
||||||
'allow_under_payment' => 'Accepter Sous-paiement',
|
'allow_under_payment' => 'Accepter Sous-paiement',
|
||||||
'allow_under_payment_help' => 'Supporter le paiement au minimum du montant partiel/dépôt',
|
'allow_under_payment_help' => 'Supporter le paiement au minimum du montant de l\'acompte',
|
||||||
'test_mode' => 'Mode test',
|
'test_mode' => 'Mode test',
|
||||||
'calculated_rate' => 'Taux Calculé',
|
'calculated_rate' => 'Taux Calculé',
|
||||||
'default_task_rate' => 'Taux par défaut de la tâche',
|
'default_task_rate' => 'Taux par défaut de la tâche',
|
||||||
@ -3803,7 +3806,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'restored_clients' => 'Les :value clients ont été restaurés avec succès',
|
'restored_clients' => 'Les :value clients ont été restaurés avec succès',
|
||||||
'restored_invoices' => 'Restauration réussie :value des factures',
|
'restored_invoices' => 'Restauration réussie :value des factures',
|
||||||
'restored_payments' => 'Les :value paiements ont été restaurés avec succès',
|
'restored_payments' => 'Les :value paiements ont été restaurés avec succès',
|
||||||
'restored_quotes' => 'Les :value soumissions ont été restaurées avec succès',
|
'restored_quotes' => 'Les :value devis ont été restaurés avec succès',
|
||||||
'update_app' => 'Mettre à jour l\'App',
|
'update_app' => 'Mettre à jour l\'App',
|
||||||
'started_import' => 'L\'importation a démarré avec succès',
|
'started_import' => 'L\'importation a démarré avec succès',
|
||||||
'duplicate_column_mapping' => 'Dupliquer le mappage de colonnes',
|
'duplicate_column_mapping' => 'Dupliquer le mappage de colonnes',
|
||||||
@ -3857,7 +3860,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'notification_credit_viewed' => 'Le client suivant :client consulté Crédit :credit pour :amount.',
|
'notification_credit_viewed' => 'Le client suivant :client consulté Crédit :credit pour :amount.',
|
||||||
'reset_password_text' => 'Entrez votre e-mail pour réinitialiser votre mot de passe.',
|
'reset_password_text' => 'Entrez votre e-mail pour réinitialiser votre mot de passe.',
|
||||||
'password_reset' => 'Réinitialiser le mot de passe',
|
'password_reset' => 'Réinitialiser le mot de passe',
|
||||||
'account_login_text' => 'Welcome! Glad to see you.',
|
'account_login_text' => 'Bienvenue ! Content de vous voir.',
|
||||||
'request_cancellation' => 'Demande de résiliation',
|
'request_cancellation' => 'Demande de résiliation',
|
||||||
'delete_payment_method' => 'Supprimer la méthode de paiement',
|
'delete_payment_method' => 'Supprimer la méthode de paiement',
|
||||||
'about_to_delete_payment_method' => 'Vous allez supprimer cette méthode de paiement',
|
'about_to_delete_payment_method' => 'Vous allez supprimer cette méthode de paiement',
|
||||||
@ -3971,7 +3974,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'add_payment_method_first' => 'ajouter un moyen de paiement',
|
'add_payment_method_first' => 'ajouter un moyen de paiement',
|
||||||
'no_items_selected' => 'Aucun élément sélectionné.',
|
'no_items_selected' => 'Aucun élément sélectionné.',
|
||||||
'payment_due' => 'Paiement dû',
|
'payment_due' => 'Paiement dû',
|
||||||
'account_balance' => 'Account Balance',
|
'account_balance' => 'Solde du compte',
|
||||||
'thanks' => 'Merci',
|
'thanks' => 'Merci',
|
||||||
'minimum_required_payment' => 'Le paiement minimum requis est :amount',
|
'minimum_required_payment' => 'Le paiement minimum requis est :amount',
|
||||||
'under_payments_disabled' => 'La société ne prend pas en charge les sous-paiements.',
|
'under_payments_disabled' => 'La société ne prend pas en charge les sous-paiements.',
|
||||||
@ -4067,8 +4070,8 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'payment_message_extended' => 'Merci pour votre paiement de :amount pour :invoice',
|
'payment_message_extended' => 'Merci pour votre paiement de :amount pour :invoice',
|
||||||
'online_payments_minimum_note' => 'Remarque : Les paiements en ligne ne sont pris en charge que si le montant est supérieur à 1 $ ou l\'équivalent en devise.',
|
'online_payments_minimum_note' => 'Remarque : Les paiements en ligne ne sont pris en charge que si le montant est supérieur à 1 $ ou l\'équivalent en devise.',
|
||||||
'payment_token_not_found' => 'Le jeton de paiement est introuvable. Veuillez essayer de nouveau. Si le problème persiste, essayez avec un autre mode de paiement',
|
'payment_token_not_found' => 'Le jeton de paiement est introuvable. Veuillez essayer de nouveau. Si le problème persiste, essayez avec un autre mode de paiement',
|
||||||
'vendor_address1' => 'Rue du vendeur',
|
'vendor_address1' => 'Rue du fournisseur',
|
||||||
'vendor_address2' => 'Vendeur Appt/Suite',
|
'vendor_address2' => 'Appt/Bâtiment du fournisseur',
|
||||||
'partially_unapplied' => 'Partiellement non appliqué',
|
'partially_unapplied' => 'Partiellement non appliqué',
|
||||||
'select_a_gmail_user' => 'Veuillez sélectionner un utilisateur authentifié avec Gmail',
|
'select_a_gmail_user' => 'Veuillez sélectionner un utilisateur authentifié avec Gmail',
|
||||||
'list_long_press' => 'Appuyez longuement sur la liste',
|
'list_long_press' => 'Appuyez longuement sur la liste',
|
||||||
@ -4123,7 +4126,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'disconnected_google' => 'Compte déconnecté avec succès',
|
'disconnected_google' => 'Compte déconnecté avec succès',
|
||||||
'delivered' => 'Livré',
|
'delivered' => 'Livré',
|
||||||
'spam' => 'Courrier indésirable',
|
'spam' => 'Courrier indésirable',
|
||||||
'view_docs' => 'Afficher les documents',
|
'view_docs' => 'Afficher la documentation',
|
||||||
'enter_phone_to_enable_two_factor' => 'Veuillez fournir un numéro de téléphone mobile pour activer l\'authentification à deux facteurs',
|
'enter_phone_to_enable_two_factor' => 'Veuillez fournir un numéro de téléphone mobile pour activer l\'authentification à deux facteurs',
|
||||||
'send_sms' => 'Envoyer un SMS',
|
'send_sms' => 'Envoyer un SMS',
|
||||||
'sms_code' => 'Code SMS',
|
'sms_code' => 'Code SMS',
|
||||||
@ -4576,11 +4579,11 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'notification_purchase_order_viewed_subject' => 'Bon de commande :invoice a été consultée par :client',
|
'notification_purchase_order_viewed_subject' => 'Bon de commande :invoice a été consultée par :client',
|
||||||
'notification_purchase_order_viewed' => 'Le fournisseur suivant :client a consulté le bon de commande :invoice pour :amount.',
|
'notification_purchase_order_viewed' => 'Le fournisseur suivant :client a consulté le bon de commande :invoice pour :amount.',
|
||||||
'purchase_order_date' => 'Date du bon de commande',
|
'purchase_order_date' => 'Date du bon de commande',
|
||||||
'purchase_orders' => 'Acheter en ligne',
|
'purchase_orders' => 'Bons de commande',
|
||||||
'purchase_order_number_placeholder' => 'Bon de commande n° :purchase_order',
|
'purchase_order_number_placeholder' => 'Bon de commande n° :purchase_order',
|
||||||
'accepted' => 'Accepté',
|
'accepted' => 'Accepté',
|
||||||
'activity_137' => ':contact commande d\'achat acceptée :purchase_order',
|
'activity_137' => ':contact commande d\'achat acceptée :purchase_order',
|
||||||
'vendor_information' => 'Informations sur le vendeur',
|
'vendor_information' => 'Informations sur le fournisseur',
|
||||||
'notification_purchase_order_accepted_subject' => 'Bon de commande :purchase_order a été accepté par :vendor',
|
'notification_purchase_order_accepted_subject' => 'Bon de commande :purchase_order a été accepté par :vendor',
|
||||||
'notification_purchase_order_accepted' => 'Le fournisseur suivant :vendor a accepté le bon de commande :purchase_order pour :amount.',
|
'notification_purchase_order_accepted' => 'Le fournisseur suivant :vendor a accepté le bon de commande :purchase_order pour :amount.',
|
||||||
'amount_received' => 'Montant reçu',
|
'amount_received' => 'Montant reçu',
|
||||||
@ -4590,8 +4593,8 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'added_purchase_order_to_inventory' => 'Bon de commande ajouté avec succès à l\'inventaire',
|
'added_purchase_order_to_inventory' => 'Bon de commande ajouté avec succès à l\'inventaire',
|
||||||
'added_purchase_orders_to_inventory' => 'Bons de commande ajoutés avec succès à l\'inventaire',
|
'added_purchase_orders_to_inventory' => 'Bons de commande ajoutés avec succès à l\'inventaire',
|
||||||
'client_document_upload' => 'Envoi de documents par les clients',
|
'client_document_upload' => 'Envoi de documents par les clients',
|
||||||
'vendor_document_upload' => 'Envoi de documents par les vendeurs',
|
'vendor_document_upload' => 'Envoi de documents par les fournisseurs',
|
||||||
'vendor_document_upload_help' => 'Activer l\'envoi de documents par les vendeurs',
|
'vendor_document_upload_help' => 'Activer l\'envoi de documents par les fournisseurs',
|
||||||
'are_you_enjoying_the_app' => 'Appréciez-vous l\'application ?',
|
'are_you_enjoying_the_app' => 'Appréciez-vous l\'application ?',
|
||||||
'yes_its_great' => 'Oui, c\'est parfait !',
|
'yes_its_great' => 'Oui, c\'est parfait !',
|
||||||
'not_so_much' => 'Pas tellement',
|
'not_so_much' => 'Pas tellement',
|
||||||
@ -4603,7 +4606,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'last_sent_template' => 'Dernier modèle envoyé',
|
'last_sent_template' => 'Dernier modèle envoyé',
|
||||||
'enable_flexible_search' => 'Active la recherche flexible',
|
'enable_flexible_search' => 'Active la recherche flexible',
|
||||||
'enable_flexible_search_help' => 'Correspondance de caractères non contigus, par exemple, "ct" va trouver "cat"',
|
'enable_flexible_search_help' => 'Correspondance de caractères non contigus, par exemple, "ct" va trouver "cat"',
|
||||||
'vendor_details' => 'Détails du vendeur',
|
'vendor_details' => 'Détails du fournisseur',
|
||||||
'purchase_order_details' => 'Détails du bon de commande',
|
'purchase_order_details' => 'Détails du bon de commande',
|
||||||
'qr_iban' => 'QRIBAN',
|
'qr_iban' => 'QRIBAN',
|
||||||
'besr_id' => 'ID BVRB',
|
'besr_id' => 'ID BVRB',
|
||||||
@ -4735,7 +4738,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'category_type' => 'Type de catégorie',
|
'category_type' => 'Type de catégorie',
|
||||||
'bank_transaction' => 'Transaction',
|
'bank_transaction' => 'Transaction',
|
||||||
'bulk_print' => 'Imprimer PDF',
|
'bulk_print' => 'Imprimer PDF',
|
||||||
'vendor_postal_code' => 'Code postal du vendeur',
|
'vendor_postal_code' => 'Code postal du fournisseur',
|
||||||
'preview_location' => 'Emplacement de l\'aperçu',
|
'preview_location' => 'Emplacement de l\'aperçu',
|
||||||
'bottom' => 'En bas',
|
'bottom' => 'En bas',
|
||||||
'side' => 'Sur le coté',
|
'side' => 'Sur le coté',
|
||||||
@ -4852,11 +4855,11 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'backup_restore' => 'Sauvegarde | Restaurer',
|
'backup_restore' => 'Sauvegarde | Restaurer',
|
||||||
'export_company' => 'Créer une sauvegarde d\'entreprise',
|
'export_company' => 'Créer une sauvegarde d\'entreprise',
|
||||||
'backup' => 'Sauvegarde',
|
'backup' => 'Sauvegarde',
|
||||||
'notification_purchase_order_created_body' => 'Le Purchase_Order suivant :purchase_order a été créé pour le fournisseur :vendor pour :amount.',
|
'notification_purchase_order_created_body' => 'Le bon de commande suivant :purchase_order a été créé pour le fournisseur :vendor pour :amount.',
|
||||||
'notification_purchase_order_created_subject' => 'Bon de commande :purchase_order a été créé pour :vendor',
|
'notification_purchase_order_created_subject' => 'Bon de commande :purchase_order a été créé pour :vendor',
|
||||||
'notification_purchase_order_sent_subject' => 'Bon de commande :purchase_order a été envoyé à :vendor',
|
'notification_purchase_order_sent_subject' => 'Bon de commande :purchase_order a été envoyé à :vendor',
|
||||||
'notification_purchase_order_sent' => 'Le fournisseur suivant :vendor a reçu un bon de commande par e-mail :purchase_order pour :amount.',
|
'notification_purchase_order_sent' => 'Le fournisseur suivant :vendor a reçu un bon de commande par e-mail :purchase_order pour :amount.',
|
||||||
'subscription_blocked' => 'Ce produit est un article restreint, veuillez contacter le vendeur pour plus d\'informations.',
|
'subscription_blocked' => 'Ce produit est un article restreint, veuillez contacter le fournisseur pour plus d\'informations.',
|
||||||
'subscription_blocked_title' => 'Produit non disponible.',
|
'subscription_blocked_title' => 'Produit non disponible.',
|
||||||
'purchase_order_created' => 'Bon de commande créé',
|
'purchase_order_created' => 'Bon de commande créé',
|
||||||
'purchase_order_sent' => 'Bon de commande envoyé',
|
'purchase_order_sent' => 'Bon de commande envoyé',
|
||||||
@ -4892,7 +4895,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'invalid_design' => 'Le design est invalide, la section :value est manquante',
|
'invalid_design' => 'Le design est invalide, la section :value est manquante',
|
||||||
'setup_wizard_logo' => 'Souhaitez-vous télécharger votre logo ?',
|
'setup_wizard_logo' => 'Souhaitez-vous télécharger votre logo ?',
|
||||||
'installed_version' => 'Version installée',
|
'installed_version' => 'Version installée',
|
||||||
'notify_vendor_when_paid' => 'Avertir le vendeur une fois payé',
|
'notify_vendor_when_paid' => 'Avertir le fournisseur une fois payé',
|
||||||
'notify_vendor_when_paid_help' => 'Envoyer un e-mail au fournisseur lorsque la dépense est marquée comme payée',
|
'notify_vendor_when_paid_help' => 'Envoyer un e-mail au fournisseur lorsque la dépense est marquée comme payée',
|
||||||
'update_payment' => 'Mettre à jour le paiement',
|
'update_payment' => 'Mettre à jour le paiement',
|
||||||
'markup' => 'Balisage',
|
'markup' => 'Balisage',
|
||||||
@ -4902,7 +4905,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'all_clients' => 'Tous les clients',
|
'all_clients' => 'Tous les clients',
|
||||||
'show_aging_table' => 'Afficher la table d\'âge',
|
'show_aging_table' => 'Afficher la table d\'âge',
|
||||||
'show_payments_table' => 'Afficher le tableau des paiements',
|
'show_payments_table' => 'Afficher le tableau des paiements',
|
||||||
'only_clients_with_invoices' => 'Only Clients with Invoices',
|
'only_clients_with_invoices' => 'Seuls les clients avec factures',
|
||||||
'email_statement' => 'Relevé par e-mail',
|
'email_statement' => 'Relevé par e-mail',
|
||||||
'once' => 'Une fois',
|
'once' => 'Une fois',
|
||||||
'schedules' => 'Planifications',
|
'schedules' => 'Planifications',
|
||||||
@ -4946,7 +4949,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'sync_from' => 'Synchroniser depuis',
|
'sync_from' => 'Synchroniser depuis',
|
||||||
'gateway_payment_text' => 'Factures : :invoices de :amount pour le client :client',
|
'gateway_payment_text' => 'Factures : :invoices de :amount pour le client :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Paiement sans facture pour montant :amount pour client :client',
|
'gateway_payment_text_no_invoice' => 'Paiement sans facture pour montant :amount pour client :client',
|
||||||
'click_to_variables' => 'Client ici pour voir toutes les variables.',
|
'click_to_variables' => 'Cliquez ici pour voir toutes les variables.',
|
||||||
'ship_to' => 'Envoyez à',
|
'ship_to' => 'Envoyez à',
|
||||||
'stripe_direct_debit_details' => 'Veuillez transférer le montant sur le compte ci-dessus.',
|
'stripe_direct_debit_details' => 'Veuillez transférer le montant sur le compte ci-dessus.',
|
||||||
'branch_name' => 'Nom de la filiale',
|
'branch_name' => 'Nom de la filiale',
|
||||||
@ -5013,7 +5016,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'email_record' => 'Enregistrement par e-mail',
|
'email_record' => 'Enregistrement par e-mail',
|
||||||
'invoice_product_columns' => 'Colonnes de produit de facture',
|
'invoice_product_columns' => 'Colonnes de produit de facture',
|
||||||
'quote_product_columns' => 'Colonnes de produits de devis',
|
'quote_product_columns' => 'Colonnes de produits de devis',
|
||||||
'vendors' => 'Vendeurs',
|
'vendors' => 'Fournisseurs',
|
||||||
'product_sales' => 'Ventes de produits',
|
'product_sales' => 'Ventes de produits',
|
||||||
'user_sales_report_header' => 'Rapport sur les ventes des utilisateurs pour le(s) client(s) :client de :start_date à :end_date',
|
'user_sales_report_header' => 'Rapport sur les ventes des utilisateurs pour le(s) client(s) :client de :start_date à :end_date',
|
||||||
'client_balance_report' => 'Rapport sur le solde du client',
|
'client_balance_report' => 'Rapport sur le solde du client',
|
||||||
@ -5064,52 +5067,93 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'set_tax_category' => 'Définir la catégorie de taxe',
|
'set_tax_category' => 'Définir la catégorie de taxe',
|
||||||
'payment_manual' => 'Paiement manuel',
|
'payment_manual' => 'Paiement manuel',
|
||||||
'expense_payment_type' => 'Type de paiement de dépense',
|
'expense_payment_type' => 'Type de paiement de dépense',
|
||||||
'payment_type_Cash App' => 'Cash App',
|
'payment_type_Cash App' => 'Application de trésorerie',
|
||||||
'rename' => 'Rename',
|
'rename' => 'Renommer',
|
||||||
'renamed_document' => 'Successfully renamed document',
|
'renamed_document' => 'Document renommé avec succès',
|
||||||
'e_invoice' => 'E-Invoice',
|
'e_invoice' => 'Facture électronique',
|
||||||
'light_dark_mode' => 'Light/Dark Mode',
|
'light_dark_mode' => 'Thème clair/sombre',
|
||||||
'activities' => 'Activities',
|
'activities' => 'Activités',
|
||||||
'recent_transactions' => "Here are your company's most recent transactions:",
|
'recent_transactions' => "Voici les transactions les plus récentes de votre entreprise :",
|
||||||
'country_Palestine' => "Palestine",
|
'country_Palestine' => "Palestine",
|
||||||
'country_Taiwan' => 'Taiwan',
|
'country_Taiwan' => 'Taïwan',
|
||||||
'duties' => 'Duties',
|
'duties' => 'Devoirs',
|
||||||
'order_number' => 'Order Number',
|
'order_number' => 'Numéro de commande',
|
||||||
'order_id' => 'Order',
|
'order_id' => 'Commande',
|
||||||
'total_invoices_outstanding' => 'Total Invoices Outstanding',
|
'total_invoices_outstanding' => 'Total des factures impayées',
|
||||||
'recent_activity' => 'Recent Activity',
|
'recent_activity' => 'Activité récente',
|
||||||
'enable_auto_bill' => 'Enable auto billing',
|
'enable_auto_bill' => 'Activer l\'autofacturation',
|
||||||
'email_count_invoices' => 'Email :count invoices',
|
'email_count_invoices' => 'Envoi de :count factures',
|
||||||
'invoice_task_item_description' => 'Invoice Task Item Description',
|
'invoice_task_item_description' => 'Description de l'élément de tâche de la facture',
|
||||||
'invoice_task_item_description_help' => 'Add the item description to the invoice line items',
|
'invoice_task_item_description_help' => 'Ajouter la description de l'article aux éléments de ligne de la facture',
|
||||||
'next_send_time' => 'Next Send Time',
|
'next_send_time' => 'Prochaine heure d\'envoi',
|
||||||
'uploaded_certificate' => 'Successfully uploaded certificate',
|
'uploaded_certificate' => 'Le certificat a été téléversé',
|
||||||
'certificate_set' => 'Certificate set',
|
'certificate_set' => 'Le certificat est défini',
|
||||||
'certificate_not_set' => 'Certificate not set',
|
'certificate_not_set' => 'Le certificat n\'est pas défini',
|
||||||
'passphrase_set' => 'Passphrase set',
|
'passphrase_set' => 'La phrase de passe est définie',
|
||||||
'passphrase_not_set' => 'Passphrase not set',
|
'passphrase_not_set' => 'La phrase de passe n\'est pas définie',
|
||||||
'upload_certificate' => 'Upload Certificate',
|
'upload_certificate' => 'Téléverser le certificat',
|
||||||
'certificate_passphrase' => 'Certificate Passphrase',
|
'certificate_passphrase' => 'Phrase de passe du certificat',
|
||||||
'valid_vat_number' => 'Valid VAT Number',
|
'valid_vat_number' => 'Numéro de TVA valide',
|
||||||
'react_notification_link' => 'React Notification Links',
|
'react_notification_link' => 'Liens de notification de réaction',
|
||||||
'react_notification_link_help' => 'Admin emails will contain links to the react application',
|
'react_notification_link_help' => 'Les courriels provenant de l\'administrateur contiennent des liens vers l\'application React',
|
||||||
'show_task_billable' => 'Show Task Billable',
|
'show_task_billable' => 'Afficher la tâche facturable',
|
||||||
'credit_item' => 'Credit Item',
|
'credit_item' => 'Article de crédit',
|
||||||
'drop_file_here' => 'Drop file here',
|
'drop_file_here' => 'Déposez le fichier ici',
|
||||||
'files' => 'Files',
|
'files' => 'Des dossiers',
|
||||||
'camera' => 'Camera',
|
'camera' => 'Caméra',
|
||||||
'gallery' => 'Gallery',
|
'gallery' => 'Galerie',
|
||||||
'project_location' => 'Project Location',
|
'project_location' => 'Emplacement du projet',
|
||||||
'add_gateway_help_message' => 'Add a payment gateway (ie. Stripe, WePay or PayPal) to accept online payments',
|
'add_gateway_help_message' => 'Ajoutez une passerelle de paiement (c.-à-d. Stripe, WePay ou PayPal) pour accepter les paiements en ligne',
|
||||||
'lang_Hungarian' => 'Hungarian',
|
'lang_Hungarian' => 'hongrois',
|
||||||
'use_mobile_to_manage_plan' => 'Use your phone subscription settings to manage your plan',
|
'use_mobile_to_manage_plan' => 'Utilisez les paramètres de votre abonnement téléphonique pour gérer votre forfait',
|
||||||
'item_tax3' => 'Item Tax3',
|
'item_tax3' => 'Taxe sur les articles3',
|
||||||
'item_tax_rate1' => 'Item Tax Rate 1',
|
'item_tax_rate1' => 'Taux de taxe sur l'article 1',
|
||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Taux de taxe sur l'article 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Taux de taxe sur l'article 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Prix d'achat',
|
||||||
);
|
'country_Macedonia' => 'Macédoine',
|
||||||
|
'admin_initiated_payments' => 'Paiements initiés par l'administrateur',
|
||||||
|
'admin_initiated_payments_help' => 'Prise en charge de la saisie d'un paiement dans le portail d'administration sans facture',
|
||||||
|
'paid_date' => 'La date de paiement',
|
||||||
|
'downloaded_entities' => 'Un email sera envoyé avec les PDF',
|
||||||
|
'lang_French - Swiss' => 'Français - Suisse',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Revenu',
|
||||||
|
'amount_received_help' => 'Entrez une valeur ici si le montant total reçu était SUPÉRIEUR au montant de la facture, ou lors de l'enregistrement d'un paiement sans facture. Sinon, ce champ doit rester vide.',
|
||||||
|
'vendor_phone' => 'Téléphone du fournisseur',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'Ma banque',
|
||||||
|
'paypal_paylater' => 'Payez en 4',
|
||||||
|
'paid_date' => 'La date de paiement',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Région',
|
||||||
|
'county' => 'Comté',
|
||||||
|
'tax_details' => 'Détails fiscaux',
|
||||||
|
'activity_10_online' => ':contact a saisi 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',
|
||||||
|
'number_precision_help' => 'Contrôle le nombre de décimales prises en charge dans l'interface',
|
||||||
|
'is_tax_exempt' => 'Exonéré d'impôt',
|
||||||
|
'drop_files_here' => 'Déposez les fichiers ici',
|
||||||
|
'upload_files' => 'Télécharger des fichiers',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Article 141 de la directive 2006/112/CE – opération triangulaire',
|
||||||
|
'intracommunity_tax_info' => 'Livraison désignée à l\'article 262 ter du CGI – TVA due par le preneur',
|
||||||
|
'reverse_tax_info' => 'Exonération des TVA article 283-2 du CGI – TVA due par le preneur',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Cordoue nicaraguayenne',
|
||||||
|
'public' => 'Publique',
|
||||||
|
'private' => 'Privé',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Autre',
|
||||||
|
'linked_to' => 'Lié à',
|
||||||
|
'file_saved_in_path' => 'Le fichier a été enregistré dans :path',
|
||||||
|
'unlinked_transactions' => 'Transactions :count dissociées avec succès',
|
||||||
|
'unlinked_transaction' => 'Transaction dissociée avec succès',
|
||||||
|
'view_dashboard_permission' => 'Autoriser l'utilisateur à accéder au tableau de bord, les données sont limitées aux autorisations disponibles',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -3334,9 +3334,9 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'freq_three_years' => 'Trois ans',
|
'freq_three_years' => 'Trois ans',
|
||||||
'military_time_help' => 'Affichage 24h',
|
'military_time_help' => 'Affichage 24h',
|
||||||
'click_here_capital' => 'Cliquez ici',
|
'click_here_capital' => 'Cliquez ici',
|
||||||
'marked_invoice_as_paid' => 'La facture a été marquée comme envoyée',
|
'marked_invoice_as_paid' => 'La facture a été marquée comme payée',
|
||||||
'marked_invoices_as_sent' => 'Les factures ont été marquées comme envoyées',
|
'marked_invoices_as_sent' => 'Les factures ont été marquées comme envoyées',
|
||||||
'marked_invoices_as_paid' => 'Les factures ont été marquées comme envoyées',
|
'marked_invoices_as_paid' => 'Les factures ont été marquées comme payées',
|
||||||
'activity_57' => 'Le système n\'a pas pu envoyer le courriel de la facture :invoice',
|
'activity_57' => 'Le système n\'a pas pu envoyer le courriel de la facture :invoice',
|
||||||
'custom_value3' => 'Valeur personnalisée 3',
|
'custom_value3' => 'Valeur personnalisée 3',
|
||||||
'custom_value4' => 'Valeur personnalisée 4',
|
'custom_value4' => 'Valeur personnalisée 4',
|
||||||
@ -5135,6 +5135,22 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
|||||||
'is_tax_exempt' => 'Exonéré de taxe',
|
'is_tax_exempt' => 'Exonéré de taxe',
|
||||||
'drop_files_here' => 'Déposez les fichiers ici',
|
'drop_files_here' => 'Déposez les fichiers ici',
|
||||||
'upload_files' => 'Téléverser les fichiers',
|
'upload_files' => 'Téléverser les fichiers',
|
||||||
|
'download_e_invoice' => 'Télécharger la facture électronique',
|
||||||
|
'triangular_tax_info' => 'Transactions intra-communautaire triangulaire',
|
||||||
|
'intracommunity_tax_info' => 'Livraison intra-communautaure sans taxe',
|
||||||
|
'reverse_tax_info' => 'Veuillez noter que cette provision est sujette à une charge renversée',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Codoba nicaraguyen',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Privé',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Autre',
|
||||||
|
'linked_to' => 'Lié à',
|
||||||
|
'file_saved_in_path' => 'Ce fichier a été sauvegardé dans :path',
|
||||||
|
'unlinked_transactions' => ' :count transactions ont été déliées',
|
||||||
|
'unlinked_transaction' => 'La transactions a été déliée',
|
||||||
|
'view_dashboard_permission' => 'Autoriser l\'accès de l\'utilisateur au tableau de bord. Les données sont limitées aux permissions disponibles.',
|
||||||
|
'marked_sent_credits' => 'Les crédits envoyés ont été marqués',
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -2396,6 +2396,9 @@ $LANG = array(
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Cuban Peso',
|
'currency_cuban_peso' => 'Cuban Peso',
|
||||||
'currency_bz_dollar' => 'דולר בליזי',
|
'currency_bz_dollar' => 'דולר בליזי',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'We hope you\'re enjoying using the app.<br/>If you\'d consider :link we\'d greatly appreciate it!',
|
'review_app_help' => 'We hope you\'re enjoying using the app.<br/>If you\'d consider :link we\'d greatly appreciate it!',
|
||||||
'writing_a_review' => 'writing a review',
|
'writing_a_review' => 'writing a review',
|
||||||
@ -3331,9 +3334,9 @@ $LANG = array(
|
|||||||
'freq_three_years' => 'שלוש שנים',
|
'freq_three_years' => 'שלוש שנים',
|
||||||
'military_time_help' => 'תצוגה של 24 שעות',
|
'military_time_help' => 'תצוגה של 24 שעות',
|
||||||
'click_here_capital' => 'לחץ כאן',
|
'click_here_capital' => 'לחץ כאן',
|
||||||
'marked_invoice_as_paid' => 'חשבונית סומנה כנשלחה בהצלחה',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'חשבוניות סומנו כנשלחה בהצלחה',
|
'marked_invoices_as_sent' => 'חשבוניות סומנו כנשלחה בהצלחה',
|
||||||
'marked_invoices_as_paid' => 'חשבוניות סומנו כנשלחה בהצלחה',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'שליחת חשבונית בדוא"ל נכשלה :invoice',
|
'activity_57' => 'שליחת חשבונית בדוא"ל נכשלה :invoice',
|
||||||
'custom_value3' => 'ערך מותאם אישית 3',
|
'custom_value3' => 'ערך מותאם אישית 3',
|
||||||
'custom_value4' => 'ערך מותאם אישית 4',
|
'custom_value4' => 'ערך מותאם אישית 4',
|
||||||
@ -4944,7 +4947,7 @@ $LANG = array(
|
|||||||
'sync_from' => 'סנכרון מאת',
|
'sync_from' => 'סנכרון מאת',
|
||||||
'gateway_payment_text' => 'חשבוניות: :invoices עבור :amount עבור הלקוח :client',
|
'gateway_payment_text' => 'חשבוניות: :invoices עבור :amount עבור הלקוח :client',
|
||||||
'gateway_payment_text_no_invoice' => 'תשלום ללא חשבונית עבור סכום :amount עבור הלקוח :client',
|
'gateway_payment_text_no_invoice' => 'תשלום ללא חשבונית עבור סכום :amount עבור הלקוח :client',
|
||||||
'click_to_variables' => 'לקוח כאן כדי לראות את כל המשתנים.',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'לשלוח ל',
|
'ship_to' => 'לשלוח ל',
|
||||||
'stripe_direct_debit_details' => 'נא להעביר לחשבון הבנק הנקוב לעיל.',
|
'stripe_direct_debit_details' => 'נא להעביר לחשבון הבנק הנקוב לעיל.',
|
||||||
'branch_name' => 'שם הסניף',
|
'branch_name' => 'שם הסניף',
|
||||||
@ -5106,8 +5109,49 @@ $LANG = array(
|
|||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Buy Price',
|
||||||
);
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -2381,6 +2381,9 @@ adva :date',
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Kubai peso',
|
'currency_cuban_peso' => 'Kubai peso',
|
||||||
'currency_bz_dollar' => 'Beliz-i dollár',
|
'currency_bz_dollar' => 'Beliz-i dollár',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'Segítség az értékeléshez',
|
'review_app_help' => 'Segítség az értékeléshez',
|
||||||
'writing_a_review' => 'Értékelés írása',
|
'writing_a_review' => 'Értékelés írása',
|
||||||
@ -3316,9 +3319,9 @@ adva :date',
|
|||||||
'freq_three_years' => '3 év',
|
'freq_three_years' => '3 év',
|
||||||
'military_time_help' => 'Ha engedélyezve van, a rendszer a katonai időformátumot használja (óra:perc helyett óra:perc am/pm formátumban).',
|
'military_time_help' => 'Ha engedélyezve van, a rendszer a katonai időformátumot használja (óra:perc helyett óra:perc am/pm formátumban).',
|
||||||
'click_here_capital' => 'KATTINTSON IDE',
|
'click_here_capital' => 'KATTINTSON IDE',
|
||||||
'marked_invoice_as_paid' => 'Számla fizetettként jelölve',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Számlák elküldöttként jelölve',
|
'marked_invoices_as_sent' => 'Számlák elküldöttként jelölve',
|
||||||
'marked_invoices_as_paid' => 'Számlák fizetettként jelölve',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => '57. tevékenység',
|
'activity_57' => '57. tevékenység',
|
||||||
'custom_value3' => 'Egyéni érték 3',
|
'custom_value3' => 'Egyéni érték 3',
|
||||||
'custom_value4' => 'Egyéni érték 4',
|
'custom_value4' => 'Egyéni érték 4',
|
||||||
@ -4929,7 +4932,7 @@ adva :date',
|
|||||||
'sync_from' => 'szinkronizálás forrásából',
|
'sync_from' => 'szinkronizálás forrásából',
|
||||||
'gateway_payment_text' => 'fizetési szöveg a fizetési átjárón keresztül',
|
'gateway_payment_text' => 'fizetési szöveg a fizetési átjárón keresztül',
|
||||||
'gateway_payment_text_no_invoice' => 'fizetési szöveg a fizetési átjárón keresztül (nincs számla)',
|
'gateway_payment_text_no_invoice' => 'fizetési szöveg a fizetési átjárón keresztül (nincs számla)',
|
||||||
'click_to_variables' => 'kattintson a változókhoz',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'szállítási cím',
|
'ship_to' => 'szállítási cím',
|
||||||
'stripe_direct_debit_details' => 'Stripe közvetlen terhelés részletei',
|
'stripe_direct_debit_details' => 'Stripe közvetlen terhelés részletei',
|
||||||
'branch_name' => 'fiók neve',
|
'branch_name' => 'fiók neve',
|
||||||
@ -5091,8 +5094,49 @@ adva :date',
|
|||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Buy Price',
|
||||||
);
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -2389,6 +2389,9 @@ $LANG = array(
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'peso cubano',
|
'currency_cuban_peso' => 'peso cubano',
|
||||||
'currency_bz_dollar' => 'Dollaro BZ',
|
'currency_bz_dollar' => 'Dollaro BZ',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'Ci auguriamo che ti piaccia usare l'app.<br/> Se prendessi in considerazione :link lo apprezzeremmo molto!',
|
'review_app_help' => 'Ci auguriamo che ti piaccia usare l'app.<br/> Se prendessi in considerazione :link lo apprezzeremmo molto!',
|
||||||
'writing_a_review' => 'scrivendo una recensione',
|
'writing_a_review' => 'scrivendo una recensione',
|
||||||
@ -3324,9 +3327,9 @@ $LANG = array(
|
|||||||
'freq_three_years' => 'Tre anni',
|
'freq_three_years' => 'Tre anni',
|
||||||
'military_time_help' => 'Formato 24 ore',
|
'military_time_help' => 'Formato 24 ore',
|
||||||
'click_here_capital' => 'Clicca qui',
|
'click_here_capital' => 'Clicca qui',
|
||||||
'marked_invoice_as_paid' => 'Fattura contrassegnata con successo come inviata',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Fatture contrassegnate con successo come inviate',
|
'marked_invoices_as_sent' => 'Fatture contrassegnate con successo come inviate',
|
||||||
'marked_invoices_as_paid' => 'Fatture contrassegnate con successo come inviate',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'Il sistema non è riuscito a inviare la fattura :invoice via e-mail',
|
'activity_57' => 'Il sistema non è riuscito a inviare la fattura :invoice via e-mail',
|
||||||
'custom_value3' => 'Valore Personalizzato 3',
|
'custom_value3' => 'Valore Personalizzato 3',
|
||||||
'custom_value4' => 'Valore Personalizzato 4',
|
'custom_value4' => 'Valore Personalizzato 4',
|
||||||
@ -4937,7 +4940,7 @@ $LANG = array(
|
|||||||
'sync_from' => 'Sincronizza da',
|
'sync_from' => 'Sincronizza da',
|
||||||
'gateway_payment_text' => 'Fatture: :invoices per :amount per cliente :client',
|
'gateway_payment_text' => 'Fatture: :invoices per :amount per cliente :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Pagamento senza fattura per importo :amount per cliente :client',
|
'gateway_payment_text_no_invoice' => 'Pagamento senza fattura per importo :amount per cliente :client',
|
||||||
'click_to_variables' => 'Cliente qui per vedere tutte le variabili.',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'Spedire a',
|
'ship_to' => 'Spedire a',
|
||||||
'stripe_direct_debit_details' => 'Si prega di trasferire sul conto bancario indicato sopra.',
|
'stripe_direct_debit_details' => 'Si prega di trasferire sul conto bancario indicato sopra.',
|
||||||
'branch_name' => 'Nome ramo',
|
'branch_name' => 'Nome ramo',
|
||||||
@ -5099,8 +5102,49 @@ $LANG = array(
|
|||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Buy Price',
|
||||||
);
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -2377,6 +2377,9 @@ $LANG = array(
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'ប្រាក់ប៉េសូគុយបា',
|
'currency_cuban_peso' => 'ប្រាក់ប៉េសូគុយបា',
|
||||||
'currency_bz_dollar' => 'ដុល្លារ BZ',
|
'currency_bz_dollar' => 'ដុល្លារ BZ',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'យើងសង្ឃឹមថាអ្នករីករាយនឹងការប្រើប្រាស់កម្មវិធី។<br/> ប្រសិនបើអ្នកនឹងពិចារណា :link យើងនឹងកោតសរសើរវាយ៉ាងខ្លាំង!',
|
'review_app_help' => 'យើងសង្ឃឹមថាអ្នករីករាយនឹងការប្រើប្រាស់កម្មវិធី។<br/> ប្រសិនបើអ្នកនឹងពិចារណា :link យើងនឹងកោតសរសើរវាយ៉ាងខ្លាំង!',
|
||||||
'writing_a_review' => 'សរសេរការពិនិត្យឡើងវិញ',
|
'writing_a_review' => 'សរសេរការពិនិត្យឡើងវិញ',
|
||||||
@ -3312,9 +3315,9 @@ $LANG = array(
|
|||||||
'freq_three_years' => 'បីឆ្នាំ',
|
'freq_three_years' => 'បីឆ្នាំ',
|
||||||
'military_time_help' => 'ការបង្ហាញ 24 ម៉ោង។',
|
'military_time_help' => 'ការបង្ហាញ 24 ម៉ោង។',
|
||||||
'click_here_capital' => 'ចុចទីនេះ',
|
'click_here_capital' => 'ចុចទីនេះ',
|
||||||
'marked_invoice_as_paid' => 'បានសម្គាល់វិក្កយបត្រដោយជោគជ័យថាបានផ្ញើ',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'បានសម្គាល់វិក្កយបត្រដោយជោគជ័យថាបានផ្ញើ',
|
'marked_invoices_as_sent' => 'បានសម្គាល់វិក្កយបត្រដោយជោគជ័យថាបានផ្ញើ',
|
||||||
'marked_invoices_as_paid' => 'បានសម្គាល់វិក្កយបត្រដោយជោគជ័យថាបានផ្ញើ',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'ប្រព័ន្ធបានបរាជ័យក្នុងការផ្ញើអ៊ីមែលវិក្កយបត្រ :invoice',
|
'activity_57' => 'ប្រព័ន្ធបានបរាជ័យក្នុងការផ្ញើអ៊ីមែលវិក្កយបត្រ :invoice',
|
||||||
'custom_value3' => 'តម្លៃផ្ទាល់ខ្លួន 3',
|
'custom_value3' => 'តម្លៃផ្ទាល់ខ្លួន 3',
|
||||||
'custom_value4' => 'តម្លៃផ្ទាល់ខ្លួន ៤',
|
'custom_value4' => 'តម្លៃផ្ទាល់ខ្លួន ៤',
|
||||||
@ -4925,7 +4928,7 @@ $LANG = array(
|
|||||||
'sync_from' => 'ធ្វើសមកាលកម្មពី',
|
'sync_from' => 'ធ្វើសមកាលកម្មពី',
|
||||||
'gateway_payment_text' => 'វិក្កយបត្រ៖ :invoices សម្រាប់ :amount សម្រាប់អតិថិជន :client',
|
'gateway_payment_text' => 'វិក្កយបត្រ៖ :invoices សម្រាប់ :amount សម្រាប់អតិថិជន :client',
|
||||||
'gateway_payment_text_no_invoice' => 'ការទូទាត់ដោយគ្មានវិក្កយបត្រសម្រាប់ចំនួនទឹកប្រាក់ :amount សម្រាប់អតិថិជន :client',
|
'gateway_payment_text_no_invoice' => 'ការទូទាត់ដោយគ្មានវិក្កយបត្រសម្រាប់ចំនួនទឹកប្រាក់ :amount សម្រាប់អតិថិជន :client',
|
||||||
'click_to_variables' => 'អតិថិជននៅទីនេះដើម្បីមើលអថេរទាំងអស់។',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'ផ្ញើទៅ',
|
'ship_to' => 'ផ្ញើទៅ',
|
||||||
'stripe_direct_debit_details' => 'សូមផ្ទេរទៅគណនីធនាគារដែលបានតែងតាំងខាងលើ។',
|
'stripe_direct_debit_details' => 'សូមផ្ទេរទៅគណនីធនាគារដែលបានតែងតាំងខាងលើ។',
|
||||||
'branch_name' => 'ឈ្មោះសាខា',
|
'branch_name' => 'ឈ្មោះសាខា',
|
||||||
@ -5087,8 +5090,49 @@ $LANG = array(
|
|||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Buy Price',
|
||||||
);
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -33,8 +33,8 @@ $LANG = array(
|
|||||||
'po_number_short' => 'Ordre #',
|
'po_number_short' => 'Ordre #',
|
||||||
'frequency_id' => 'Frekvens',
|
'frequency_id' => 'Frekvens',
|
||||||
'discount' => 'Rabatter:',
|
'discount' => 'Rabatter:',
|
||||||
'taxes' => 'Skatter',
|
'taxes' => 'Mva.',
|
||||||
'tax' => 'Skatt',
|
'tax' => 'Mva.',
|
||||||
'item' => 'Produkt',
|
'item' => 'Produkt',
|
||||||
'description' => 'Beskrivelse',
|
'description' => 'Beskrivelse',
|
||||||
'unit_cost' => 'Stykkpris',
|
'unit_cost' => 'Stykkpris',
|
||||||
@ -47,7 +47,7 @@ $LANG = array(
|
|||||||
'invoice_design_id' => 'Design',
|
'invoice_design_id' => 'Design',
|
||||||
'terms' => 'Vilkår',
|
'terms' => 'Vilkår',
|
||||||
'your_invoice' => 'Din faktura',
|
'your_invoice' => 'Din faktura',
|
||||||
'remove_contact' => 'Fjern kontakt',
|
'remove_contact' => 'Slett kontakt',
|
||||||
'add_contact' => 'Legg til kontakt',
|
'add_contact' => 'Legg til kontakt',
|
||||||
'create_new_client' => 'Opprett ny kunde',
|
'create_new_client' => 'Opprett ny kunde',
|
||||||
'edit_client_details' => 'Endre kundedetaljer',
|
'edit_client_details' => 'Endre kundedetaljer',
|
||||||
@ -253,7 +253,7 @@ $LANG = array(
|
|||||||
'notification_invoice_paid' => 'En betaling pålydende :amount ble gjort av :client for faktura :invoice.',
|
'notification_invoice_paid' => 'En betaling pålydende :amount ble gjort av :client for faktura :invoice.',
|
||||||
'notification_invoice_sent' => 'E-post har blitt sendt til :client - Faktura :invoice pålydende :amount.',
|
'notification_invoice_sent' => 'E-post har blitt sendt til :client - Faktura :invoice pålydende :amount.',
|
||||||
'notification_invoice_viewed' => ':client har nå sett faktura :invoice pålydende :amount.',
|
'notification_invoice_viewed' => ':client har nå sett faktura :invoice pålydende :amount.',
|
||||||
'stripe_payment_text' => 'Invoice :invoicenumber for :amount for client :client',
|
'stripe_payment_text' => 'Faktura :invoice nummer for :amountfor kunde :client',
|
||||||
'stripe_payment_text_without_invoice' => 'Payment with no invoice for amount :amount for client :client',
|
'stripe_payment_text_without_invoice' => 'Payment with no invoice for amount :amount for client :client',
|
||||||
'reset_password' => 'Du kan nullstille ditt passord ved å besøke følgende lenke:',
|
'reset_password' => 'Du kan nullstille ditt passord ved å besøke følgende lenke:',
|
||||||
'secure_payment' => 'Sikker betaling',
|
'secure_payment' => 'Sikker betaling',
|
||||||
@ -754,7 +754,7 @@ $LANG = array(
|
|||||||
'activity_7' => ':contact har sett fakturaen :invoice for :client',
|
'activity_7' => ':contact har sett fakturaen :invoice for :client',
|
||||||
'activity_8' => ':user arkiverte faktura :invoice',
|
'activity_8' => ':user arkiverte faktura :invoice',
|
||||||
'activity_9' => ':user slettet faktura :invoice',
|
'activity_9' => ':user slettet faktura :invoice',
|
||||||
'activity_10' => ':user la inn betaling :payment på :payment_amount',
|
'activity_10' => ':user entered payment :payment for :payment_amount on invoice :invoice for :client',
|
||||||
'activity_11' => ':user oppdaterte betaling :payment',
|
'activity_11' => ':user oppdaterte betaling :payment',
|
||||||
'activity_12' => ':user arkiverte betaling :payment',
|
'activity_12' => ':user arkiverte betaling :payment',
|
||||||
'activity_13' => ':user slettet betaling :payment',
|
'activity_13' => ':user slettet betaling :payment',
|
||||||
@ -1067,7 +1067,7 @@ $LANG = array(
|
|||||||
'invoice_item_fields' => 'Invoice Item Fields',
|
'invoice_item_fields' => 'Invoice Item Fields',
|
||||||
'custom_invoice_item_fields_help' => 'Add a field when creating an invoice item and display the label and value on the PDF.',
|
'custom_invoice_item_fields_help' => 'Add a field when creating an invoice item and display the label and value on the PDF.',
|
||||||
'recurring_invoice_number' => 'Gjentakende nummer',
|
'recurring_invoice_number' => 'Gjentakende nummer',
|
||||||
'recurring_invoice_number_prefix_help' => 'Specify a prefix to be added to the invoice number for recurring invoices.',
|
'recurring_invoice_number_prefix_help' => 'Angi et prefiks som skal legges til fakturanummeret for gjentagende fakturaer.',
|
||||||
|
|
||||||
// Client Passwords
|
// Client Passwords
|
||||||
'enable_portal_password' => 'Passord-beskytt fakturaer',
|
'enable_portal_password' => 'Passord-beskytt fakturaer',
|
||||||
@ -1249,7 +1249,7 @@ $LANG = array(
|
|||||||
'country_not_supported' => 'Landet er ikke støttet.',
|
'country_not_supported' => 'Landet er ikke støttet.',
|
||||||
'invalid_routing_number' => 'Rutingsnummeret er ikke gyldig.',
|
'invalid_routing_number' => 'Rutingsnummeret er ikke gyldig.',
|
||||||
'invalid_account_number' => 'Kontonummeret er ikke gyldig.',
|
'invalid_account_number' => 'Kontonummeret er ikke gyldig.',
|
||||||
'account_number_mismatch' => 'The account numbers do not match.',
|
'account_number_mismatch' => 'Kontonumrene stemmer ikke overens.',
|
||||||
'missing_account_holder_type' => 'Please select an individual or company account.',
|
'missing_account_holder_type' => 'Please select an individual or company account.',
|
||||||
'missing_account_holder_name' => 'Please enter the account holder\'s name.',
|
'missing_account_holder_name' => 'Please enter the account holder\'s name.',
|
||||||
'routing_number' => 'Routing Number',
|
'routing_number' => 'Routing Number',
|
||||||
@ -1806,7 +1806,7 @@ $LANG = array(
|
|||||||
'limit_import_rows' => 'Data needs to be imported in batches of :count rows or less',
|
'limit_import_rows' => 'Data needs to be imported in batches of :count rows or less',
|
||||||
'error_title' => 'Noe gikk galt',
|
'error_title' => 'Noe gikk galt',
|
||||||
'error_contact_text' => 'If you\'d like help please email us at :mailaddress',
|
'error_contact_text' => 'If you\'d like help please email us at :mailaddress',
|
||||||
'no_undo' => 'Warning: this can\'t be undone.',
|
'no_undo' => 'Advarsel: Dette kan ikke angres',
|
||||||
'no_contact_selected' => 'Vennligst velg en kontakt',
|
'no_contact_selected' => 'Vennligst velg en kontakt',
|
||||||
'no_client_selected' => 'Vennligst velg en klient',
|
'no_client_selected' => 'Vennligst velg en klient',
|
||||||
|
|
||||||
@ -2000,6 +2000,7 @@ $LANG = array(
|
|||||||
'current_quarter' => 'Current Quarter',
|
'current_quarter' => 'Current Quarter',
|
||||||
'last_quarter' => 'Last Quarter',
|
'last_quarter' => 'Last Quarter',
|
||||||
'last_year' => 'Siste år',
|
'last_year' => 'Siste år',
|
||||||
|
'all_time' => 'All Time',
|
||||||
'custom_range' => 'Tilpass Utvalg',
|
'custom_range' => 'Tilpass Utvalg',
|
||||||
'url' => 'URL',
|
'url' => 'URL',
|
||||||
'debug' => 'Debug',
|
'debug' => 'Debug',
|
||||||
@ -2259,7 +2260,7 @@ $LANG = array(
|
|||||||
'restore_recurring_expense' => 'Restore Recurring Expense',
|
'restore_recurring_expense' => 'Restore Recurring Expense',
|
||||||
'restored_recurring_expense' => 'Successfully restored recurring expense',
|
'restored_recurring_expense' => 'Successfully restored recurring expense',
|
||||||
'delete_recurring_expense' => 'Delete Recurring Expense',
|
'delete_recurring_expense' => 'Delete Recurring Expense',
|
||||||
'deleted_recurring_expense' => 'Successfully deleted project',
|
'deleted_recurring_expense' => 'Successfully deleted recurring expense',
|
||||||
'view_recurring_expense' => 'Vis Gjentakende Utgift',
|
'view_recurring_expense' => 'Vis Gjentakende Utgift',
|
||||||
'taxes_and_fees' => 'Skatt og avgifter',
|
'taxes_and_fees' => 'Skatt og avgifter',
|
||||||
'import_failed' => 'Import Failed',
|
'import_failed' => 'Import Failed',
|
||||||
@ -2403,6 +2404,9 @@ $LANG = array(
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Cuban Peso',
|
'currency_cuban_peso' => 'Cuban Peso',
|
||||||
'currency_bz_dollar' => 'BZ Dollar',
|
'currency_bz_dollar' => 'BZ Dollar',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'We hope you\'re enjoying using the app.<br/>If you\'d consider :link we\'d greatly appreciate it!',
|
'review_app_help' => 'We hope you\'re enjoying using the app.<br/>If you\'d consider :link we\'d greatly appreciate it!',
|
||||||
'writing_a_review' => 'skriv tilbakemelding',
|
'writing_a_review' => 'skriv tilbakemelding',
|
||||||
@ -2514,8 +2518,8 @@ $LANG = array(
|
|||||||
'partial_due_date' => 'Partial Due Date',
|
'partial_due_date' => 'Partial Due Date',
|
||||||
'task_fields' => 'Task Fields',
|
'task_fields' => 'Task Fields',
|
||||||
'product_fields_help' => 'Drag and drop fields to change their order',
|
'product_fields_help' => 'Drag and drop fields to change their order',
|
||||||
'custom_value1' => 'Custom Value',
|
'custom_value1' => 'Custom Value 1',
|
||||||
'custom_value2' => 'Custom Value',
|
'custom_value2' => 'Custom Value 2',
|
||||||
'enable_two_factor' => 'To-faktor-autentisering',
|
'enable_two_factor' => 'To-faktor-autentisering',
|
||||||
'enable_two_factor_help' => 'Bruk telefonen til å bekrefte identiteten din når du logger inn',
|
'enable_two_factor_help' => 'Bruk telefonen til å bekrefte identiteten din når du logger inn',
|
||||||
'two_factor_setup' => 'Two-Factor Setup',
|
'two_factor_setup' => 'Two-Factor Setup',
|
||||||
@ -2639,7 +2643,7 @@ $LANG = array(
|
|||||||
'convert_products' => 'Convert Products',
|
'convert_products' => 'Convert Products',
|
||||||
'convert_products_help' => 'Automatically convert product prices to the client\'s currency',
|
'convert_products_help' => 'Automatically convert product prices to the client\'s currency',
|
||||||
'improve_client_portal_link' => 'Set a subdomain to shorten the client portal link.',
|
'improve_client_portal_link' => 'Set a subdomain to shorten the client portal link.',
|
||||||
'budgeted_hours' => 'Budgeted Hours',
|
'budgeted_hours' => 'Utbetalte timer',
|
||||||
'progress' => 'Progress',
|
'progress' => 'Progress',
|
||||||
'view_project' => 'Vis Prosjekt',
|
'view_project' => 'Vis Prosjekt',
|
||||||
'summary' => 'Summary',
|
'summary' => 'Summary',
|
||||||
@ -2855,7 +2859,7 @@ $LANG = array(
|
|||||||
'please_enter_your_url' => 'Please enter your URL',
|
'please_enter_your_url' => 'Please enter your URL',
|
||||||
'please_enter_a_product_key' => 'Please enter a product key',
|
'please_enter_a_product_key' => 'Please enter a product key',
|
||||||
'an_error_occurred' => 'An error occurred',
|
'an_error_occurred' => 'An error occurred',
|
||||||
'overview' => 'Overview',
|
'overview' => 'Oversikt',
|
||||||
'copied_to_clipboard' => 'Copied :value to the clipboard',
|
'copied_to_clipboard' => 'Copied :value to the clipboard',
|
||||||
'error' => 'Error',
|
'error' => 'Error',
|
||||||
'could_not_launch' => 'Could not launch',
|
'could_not_launch' => 'Could not launch',
|
||||||
@ -3260,7 +3264,7 @@ $LANG = array(
|
|||||||
'group2' => 'Custom Group 2',
|
'group2' => 'Custom Group 2',
|
||||||
'group3' => 'Custom Group 3',
|
'group3' => 'Custom Group 3',
|
||||||
'group4' => 'Custom Group 4',
|
'group4' => 'Custom Group 4',
|
||||||
'number' => 'Number',
|
'number' => 'Nummer',
|
||||||
'count' => 'Count',
|
'count' => 'Count',
|
||||||
'is_active' => 'Is Active',
|
'is_active' => 'Is Active',
|
||||||
'contact_last_login' => 'Contact Last Login',
|
'contact_last_login' => 'Contact Last Login',
|
||||||
@ -3338,9 +3342,9 @@ $LANG = array(
|
|||||||
'freq_three_years' => 'Three Years',
|
'freq_three_years' => 'Three Years',
|
||||||
'military_time_help' => '24 Hour Display',
|
'military_time_help' => '24 Hour Display',
|
||||||
'click_here_capital' => 'Click here',
|
'click_here_capital' => 'Click here',
|
||||||
'marked_invoice_as_paid' => 'Successfully marked invoice as sent',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Successfully marked invoices as sent',
|
'marked_invoices_as_sent' => 'Successfully marked invoices as sent',
|
||||||
'marked_invoices_as_paid' => 'Successfully marked invoices as sent',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'System failed to email invoice :invoice',
|
'activity_57' => 'System failed to email invoice :invoice',
|
||||||
'custom_value3' => 'Custom Value 3',
|
'custom_value3' => 'Custom Value 3',
|
||||||
'custom_value4' => 'Custom Value 4',
|
'custom_value4' => 'Custom Value 4',
|
||||||
@ -3501,23 +3505,23 @@ $LANG = array(
|
|||||||
'hide_menu' => 'Hide Menu',
|
'hide_menu' => 'Hide Menu',
|
||||||
'show_menu' => 'Show Menu',
|
'show_menu' => 'Show Menu',
|
||||||
'partially_refunded' => 'Partially Refunded',
|
'partially_refunded' => 'Partially Refunded',
|
||||||
'search_documents' => 'Search Documents',
|
'search_documents' => 'Søk i Dokumenter',
|
||||||
'search_designs' => 'Search Designs',
|
'search_designs' => 'Søk i Designs',
|
||||||
'search_invoices' => 'Search Invoices',
|
'search_invoices' => 'Søk i Fakturaer',
|
||||||
'search_clients' => 'Search Clients',
|
'search_clients' => 'Søk i Kunder',
|
||||||
'search_products' => 'Search Products',
|
'search_products' => 'Søk i Produkter',
|
||||||
'search_quotes' => 'Search Quotes',
|
'search_quotes' => 'Søk i Pristilbuder',
|
||||||
'search_credits' => 'Search Credits',
|
'search_credits' => 'Search Credits',
|
||||||
'search_vendors' => 'Search Vendors',
|
'search_vendors' => 'Søk i Leverandører',
|
||||||
'search_users' => 'Search Users',
|
'search_users' => 'Søk i Brukere',
|
||||||
'search_tax_rates' => 'Search Tax Rates',
|
'search_tax_rates' => 'Søk i Mva. Satser',
|
||||||
'search_tasks' => 'Search Tasks',
|
'search_tasks' => 'Søk i Oppgaver',
|
||||||
'search_settings' => 'Search Settings',
|
'search_settings' => 'Søk i Instillinger',
|
||||||
'search_projects' => 'Search Projects',
|
'search_projects' => 'Søk i Prosjekter',
|
||||||
'search_expenses' => 'Search Expenses',
|
'search_expenses' => 'Søk i Utgifter',
|
||||||
'search_payments' => 'Search Payments',
|
'search_payments' => 'Søk i Betalinger',
|
||||||
'search_groups' => 'Search Groups',
|
'search_groups' => 'Søk i Grupper',
|
||||||
'search_company' => 'Search Company',
|
'search_company' => 'Søk i Selskaper',
|
||||||
'cancelled_invoice' => 'Successfully cancelled invoice',
|
'cancelled_invoice' => 'Successfully cancelled invoice',
|
||||||
'cancelled_invoices' => 'Successfully cancelled invoices',
|
'cancelled_invoices' => 'Successfully cancelled invoices',
|
||||||
'reversed_invoice' => 'Successfully reversed invoice',
|
'reversed_invoice' => 'Successfully reversed invoice',
|
||||||
@ -3862,7 +3866,7 @@ $LANG = array(
|
|||||||
'notification_credit_viewed' => 'The following client :client viewed Credit :credit for :amount.',
|
'notification_credit_viewed' => 'The following client :client viewed Credit :credit for :amount.',
|
||||||
'reset_password_text' => 'Enter your email to reset your password.',
|
'reset_password_text' => 'Enter your email to reset your password.',
|
||||||
'password_reset' => 'Password reset',
|
'password_reset' => 'Password reset',
|
||||||
'account_login_text' => 'Welcome back! Glad to see you.',
|
'account_login_text' => 'Welcome! Glad to see you.',
|
||||||
'request_cancellation' => 'Request cancellation',
|
'request_cancellation' => 'Request cancellation',
|
||||||
'delete_payment_method' => 'Delete Payment Method',
|
'delete_payment_method' => 'Delete Payment Method',
|
||||||
'about_to_delete_payment_method' => 'You are about to delete the payment method.',
|
'about_to_delete_payment_method' => 'You are about to delete the payment method.',
|
||||||
@ -3976,7 +3980,7 @@ $LANG = array(
|
|||||||
'add_payment_method_first' => 'add payment method',
|
'add_payment_method_first' => 'add payment method',
|
||||||
'no_items_selected' => 'No items selected.',
|
'no_items_selected' => 'No items selected.',
|
||||||
'payment_due' => 'Payment due',
|
'payment_due' => 'Payment due',
|
||||||
'account_balance' => 'Account balance',
|
'account_balance' => 'Account Balance',
|
||||||
'thanks' => 'Thanks',
|
'thanks' => 'Thanks',
|
||||||
'minimum_required_payment' => 'Minimum required payment is :amount',
|
'minimum_required_payment' => 'Minimum required payment is :amount',
|
||||||
'under_payments_disabled' => 'Company doesn\'t support under payments.',
|
'under_payments_disabled' => 'Company doesn\'t support under payments.',
|
||||||
@ -4460,7 +4464,7 @@ $LANG = array(
|
|||||||
'wait_for_loading' => 'Data loading - please wait for it to complete',
|
'wait_for_loading' => 'Data loading - please wait for it to complete',
|
||||||
'wait_for_saving' => 'Data saving - please wait for it to complete',
|
'wait_for_saving' => 'Data saving - please wait for it to complete',
|
||||||
'html_preview_warning' => 'Note: changes made here are only previewed, they must be applied in the tabs above to be saved',
|
'html_preview_warning' => 'Note: changes made here are only previewed, they must be applied in the tabs above to be saved',
|
||||||
'remaining' => 'Remaining',
|
'remaining' => 'Gjenstår',
|
||||||
'invoice_paid' => 'Invoice Paid',
|
'invoice_paid' => 'Invoice Paid',
|
||||||
'activity_120' => ':user created recurring expense :recurring_expense',
|
'activity_120' => ':user created recurring expense :recurring_expense',
|
||||||
'activity_121' => ':user updated recurring expense :recurring_expense',
|
'activity_121' => ':user updated recurring expense :recurring_expense',
|
||||||
@ -4907,6 +4911,7 @@ $LANG = array(
|
|||||||
'all_clients' => 'All Clients',
|
'all_clients' => 'All Clients',
|
||||||
'show_aging_table' => 'Show Aging Table',
|
'show_aging_table' => 'Show Aging Table',
|
||||||
'show_payments_table' => 'Show Payments Table',
|
'show_payments_table' => 'Show Payments Table',
|
||||||
|
'only_clients_with_invoices' => 'Only Clients with Invoices',
|
||||||
'email_statement' => 'Email Statement',
|
'email_statement' => 'Email Statement',
|
||||||
'once' => 'Once',
|
'once' => 'Once',
|
||||||
'schedules' => 'Schedules',
|
'schedules' => 'Schedules',
|
||||||
@ -4950,7 +4955,7 @@ $LANG = array(
|
|||||||
'sync_from' => 'Sync From',
|
'sync_from' => 'Sync From',
|
||||||
'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client',
|
'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Payment with no invoice for amount :amount for client :client',
|
'gateway_payment_text_no_invoice' => 'Payment with no invoice for amount :amount for client :client',
|
||||||
'click_to_variables' => 'Client here to see all variables.',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'Ship to',
|
'ship_to' => 'Ship to',
|
||||||
'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.',
|
'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.',
|
||||||
'branch_name' => 'Branch Name',
|
'branch_name' => 'Branch Name',
|
||||||
@ -5040,7 +5045,7 @@ $LANG = array(
|
|||||||
'link_expenses' => 'Link Expenses',
|
'link_expenses' => 'Link Expenses',
|
||||||
'converted_client_balance' => 'Converted Client Balance',
|
'converted_client_balance' => 'Converted Client Balance',
|
||||||
'converted_payment_balance' => 'Converted Payment Balance',
|
'converted_payment_balance' => 'Converted Payment Balance',
|
||||||
'total_hours' => 'Total Hours',
|
'total_hours' => 'Totalt antall timer',
|
||||||
'date_picker_hint' => 'Use +days to set the date in the future',
|
'date_picker_hint' => 'Use +days to set the date in the future',
|
||||||
'app_help_link' => 'More information ',
|
'app_help_link' => 'More information ',
|
||||||
'here' => 'here',
|
'here' => 'here',
|
||||||
@ -5095,8 +5100,66 @@ $LANG = array(
|
|||||||
'upload_certificate' => 'Upload Certificate',
|
'upload_certificate' => 'Upload Certificate',
|
||||||
'certificate_passphrase' => 'Certificate Passphrase',
|
'certificate_passphrase' => 'Certificate Passphrase',
|
||||||
'valid_vat_number' => 'Valid VAT Number',
|
'valid_vat_number' => 'Valid VAT Number',
|
||||||
);
|
'react_notification_link' => 'React Notification Links',
|
||||||
|
'react_notification_link_help' => 'Admin emails will contain links to the react application',
|
||||||
|
'show_task_billable' => 'Show Task Billable',
|
||||||
|
'credit_item' => 'Credit Item',
|
||||||
|
'drop_file_here' => 'Drop file here',
|
||||||
|
'files' => 'Files',
|
||||||
|
'camera' => 'Camera',
|
||||||
|
'gallery' => 'Gallery',
|
||||||
|
'project_location' => 'Project Location',
|
||||||
|
'add_gateway_help_message' => 'Add a payment gateway (ie. Stripe, WePay or PayPal) to accept online payments',
|
||||||
|
'lang_Hungarian' => 'Hungarian',
|
||||||
|
'use_mobile_to_manage_plan' => 'Use your phone subscription settings to manage your plan',
|
||||||
|
'item_tax3' => 'Item Tax3',
|
||||||
|
'item_tax_rate1' => 'Item Tax Rate 1',
|
||||||
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
|
'buy_price' => 'Buy Price',
|
||||||
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -2395,6 +2395,9 @@ Kom terug naar deze betalingsmethode pagina zodra u de bedragen heeft ontvangen
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Cubaanse Peso',
|
'currency_cuban_peso' => 'Cubaanse Peso',
|
||||||
'currency_bz_dollar' => 'BZ Dollar',
|
'currency_bz_dollar' => 'BZ Dollar',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'We hopen dat je het leuk vindt om de app te gebruiken.<br/> Als je zou overwegen :link, zouden we dat zeer op prijs stellen!',
|
'review_app_help' => 'We hopen dat je het leuk vindt om de app te gebruiken.<br/> Als je zou overwegen :link, zouden we dat zeer op prijs stellen!',
|
||||||
'writing_a_review' => 'een recensie schrijven',
|
'writing_a_review' => 'een recensie schrijven',
|
||||||
@ -3330,9 +3333,9 @@ Kom terug naar deze betalingsmethode pagina zodra u de bedragen heeft ontvangen
|
|||||||
'freq_three_years' => 'Drie jaar',
|
'freq_three_years' => 'Drie jaar',
|
||||||
'military_time_help' => '24-uurs weergave',
|
'military_time_help' => '24-uurs weergave',
|
||||||
'click_here_capital' => 'Klik hier',
|
'click_here_capital' => 'Klik hier',
|
||||||
'marked_invoice_as_paid' => 'Factuur succesvol gemarkeerd als verzonden',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Facturen gemarkeerd als verzonden',
|
'marked_invoices_as_sent' => 'Facturen gemarkeerd als verzonden',
|
||||||
'marked_invoices_as_paid' => 'Facturen succesvol gemarkeerd als verzonden',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'Systeem kon de factuur niet mailen :invoice',
|
'activity_57' => 'Systeem kon de factuur niet mailen :invoice',
|
||||||
'custom_value3' => 'Aangepaste waarde 3',
|
'custom_value3' => 'Aangepaste waarde 3',
|
||||||
'custom_value4' => 'Aangepaste waarde 4',
|
'custom_value4' => 'Aangepaste waarde 4',
|
||||||
@ -4946,7 +4949,7 @@ Email: :email<b><br><b>',
|
|||||||
'sync_from' => 'Synchroniseren van',
|
'sync_from' => 'Synchroniseren van',
|
||||||
'gateway_payment_text' => 'Facturen: :invoices voor :amount voor opdrachtgever :client',
|
'gateway_payment_text' => 'Facturen: :invoices voor :amount voor opdrachtgever :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Betaling zonder factuur voor bedrag :amount voor opdrachtgever :client',
|
'gateway_payment_text_no_invoice' => 'Betaling zonder factuur voor bedrag :amount voor opdrachtgever :client',
|
||||||
'click_to_variables' => 'Client hier om alle variabelen te zien.',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'Verzend naar',
|
'ship_to' => 'Verzend naar',
|
||||||
'stripe_direct_debit_details' => 'Gelieve over te maken op de genoemde bankrekening hierboven.',
|
'stripe_direct_debit_details' => 'Gelieve over te maken op de genoemde bankrekening hierboven.',
|
||||||
'branch_name' => 'Filiaal naam',
|
'branch_name' => 'Filiaal naam',
|
||||||
@ -5108,8 +5111,49 @@ Email: :email<b><br><b>',
|
|||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Buy Price',
|
||||||
);
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -2398,6 +2398,9 @@ Quando tiver as quantias, volte a esta página de formas de pagamento e clique "
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Peso Cubano',
|
'currency_cuban_peso' => 'Peso Cubano',
|
||||||
'currency_bz_dollar' => 'BZ Dólar',
|
'currency_bz_dollar' => 'BZ Dólar',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'Esperamos que esteja aproveitando o app. <br/>Se você considerar :link agradeceríamos bastante!',
|
'review_app_help' => 'Esperamos que esteja aproveitando o app. <br/>Se você considerar :link agradeceríamos bastante!',
|
||||||
'writing_a_review' => 'Escrevendo uma avaliação',
|
'writing_a_review' => 'Escrevendo uma avaliação',
|
||||||
@ -3333,9 +3336,9 @@ Quando tiver as quantias, volte a esta página de formas de pagamento e clique "
|
|||||||
'freq_three_years' => 'Três Anos',
|
'freq_three_years' => 'Três Anos',
|
||||||
'military_time_help' => 'Formato de Hora 24h',
|
'military_time_help' => 'Formato de Hora 24h',
|
||||||
'click_here_capital' => 'Clique aqui',
|
'click_here_capital' => 'Clique aqui',
|
||||||
'marked_invoice_as_paid' => 'Sucesso! A fatura foi marcada como enviada.',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Faturas marcadas como enviadas com sucesso',
|
'marked_invoices_as_sent' => 'Faturas marcadas como enviadas com sucesso',
|
||||||
'marked_invoices_as_paid' => 'Sucesso! As faturas foram marcadas como enviada.',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'O sistema falhou ao enviar a fatura :invoice',
|
'activity_57' => 'O sistema falhou ao enviar a fatura :invoice',
|
||||||
'custom_value3' => 'Valor Personalizado 3',
|
'custom_value3' => 'Valor Personalizado 3',
|
||||||
'custom_value4' => 'Valor Personalizado 4',
|
'custom_value4' => 'Valor Personalizado 4',
|
||||||
@ -4946,7 +4949,7 @@ Quando tiver as quantias, volte a esta página de formas de pagamento e clique "
|
|||||||
'sync_from' => 'Sync From',
|
'sync_from' => 'Sync From',
|
||||||
'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client',
|
'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Payment with no invoice for amount :amount for client :client',
|
'gateway_payment_text_no_invoice' => 'Payment with no invoice for amount :amount for client :client',
|
||||||
'click_to_variables' => 'Client here to see all variables.',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'Ship to',
|
'ship_to' => 'Ship to',
|
||||||
'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.',
|
'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.',
|
||||||
'branch_name' => 'Branch Name',
|
'branch_name' => 'Branch Name',
|
||||||
@ -5118,8 +5121,39 @@ Quando tiver as quantias, volte a esta página de formas de pagamento e clique "
|
|||||||
'income' => 'Income',
|
'income' => 'Income',
|
||||||
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
'vendor_phone' => 'Vendor Phone',
|
'vendor_phone' => 'Vendor Phone',
|
||||||
);
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
@ -2399,6 +2399,9 @@ Quando tiver os valores dos depósitos, volte a esta página e conclua a verific
|
|||||||
|
|
||||||
'currency_cuban_peso' => 'Cuban Peso',
|
'currency_cuban_peso' => 'Cuban Peso',
|
||||||
'currency_bz_dollar' => 'BZ Dólar',
|
'currency_bz_dollar' => 'BZ Dólar',
|
||||||
|
'currency_libyan_dinar' => 'Libyan Dinar',
|
||||||
|
'currency_silver_troy_ounce' => 'Silver Troy Ounce',
|
||||||
|
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||||
|
|
||||||
'review_app_help' => 'Esperamos que esteja a gostar da aplicação. <br/>Se eventualmente considerar :link agradecíamos muito!',
|
'review_app_help' => 'Esperamos que esteja a gostar da aplicação. <br/>Se eventualmente considerar :link agradecíamos muito!',
|
||||||
'writing_a_review' => 'escrever uma avaliação',
|
'writing_a_review' => 'escrever uma avaliação',
|
||||||
@ -3335,9 +3338,9 @@ debitar da sua conta de acordo com essas instruções. Está elegível a um reem
|
|||||||
'freq_three_years' => 'Três Anos',
|
'freq_three_years' => 'Três Anos',
|
||||||
'military_time_help' => 'Formato de Hora 24h',
|
'military_time_help' => 'Formato de Hora 24h',
|
||||||
'click_here_capital' => 'Clique aqui',
|
'click_here_capital' => 'Clique aqui',
|
||||||
'marked_invoice_as_paid' => 'Excelente! A nota de pagamento foi marcada como enviada.',
|
'marked_invoice_as_paid' => 'Successfully marked invoice as paid',
|
||||||
'marked_invoices_as_sent' => 'Excelente! As notas de pagamento foram marcadas como enviada.',
|
'marked_invoices_as_sent' => 'Excelente! As notas de pagamento foram marcadas como enviada.',
|
||||||
'marked_invoices_as_paid' => 'Excelente! As notas de pagamento foram marcadas como enviada.',
|
'marked_invoices_as_paid' => 'Successfully marked invoices as paid',
|
||||||
'activity_57' => 'O sistema falhou ao enviar a nota de pagamento :invoice',
|
'activity_57' => 'O sistema falhou ao enviar a nota de pagamento :invoice',
|
||||||
'custom_value3' => 'Valor Personalizado 3',
|
'custom_value3' => 'Valor Personalizado 3',
|
||||||
'custom_value4' => 'Valor Personalizado 4',
|
'custom_value4' => 'Valor Personalizado 4',
|
||||||
@ -4949,7 +4952,7 @@ O envio de E-mails foi suspenso. Será retomado às 23:00 UTC.',
|
|||||||
'sync_from' => 'Sincronizar de',
|
'sync_from' => 'Sincronizar de',
|
||||||
'gateway_payment_text' => 'Faturas: :invoices para :amount para cliente :client',
|
'gateway_payment_text' => 'Faturas: :invoices para :amount para cliente :client',
|
||||||
'gateway_payment_text_no_invoice' => 'Pagamento sem fatura no valor :amount para cliente :client',
|
'gateway_payment_text_no_invoice' => 'Pagamento sem fatura no valor :amount para cliente :client',
|
||||||
'click_to_variables' => 'Cliente aqui para ver todas as variáveis.',
|
'click_to_variables' => 'Click here to see all variables.',
|
||||||
'ship_to' => 'Enviar para',
|
'ship_to' => 'Enviar para',
|
||||||
'stripe_direct_debit_details' => 'Por favor, transfira para a conta bancária indicada acima.',
|
'stripe_direct_debit_details' => 'Por favor, transfira para a conta bancária indicada acima.',
|
||||||
'branch_name' => 'Nome da filial',
|
'branch_name' => 'Nome da filial',
|
||||||
@ -5111,8 +5114,49 @@ O envio de E-mails foi suspenso. Será retomado às 23:00 UTC.',
|
|||||||
'item_tax_rate2' => 'Item Tax Rate 2',
|
'item_tax_rate2' => 'Item Tax Rate 2',
|
||||||
'item_tax_rate3' => 'Item Tax Rate 3',
|
'item_tax_rate3' => 'Item Tax Rate 3',
|
||||||
'buy_price' => 'Buy Price',
|
'buy_price' => 'Buy Price',
|
||||||
);
|
'country_Macedonia' => 'Macedonia',
|
||||||
|
'admin_initiated_payments' => 'Admin Initiated Payments',
|
||||||
|
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'downloaded_entities' => 'An email will be sent with the PDFs',
|
||||||
|
'lang_French - Swiss' => 'French - Swiss',
|
||||||
|
'currency_swazi_lilangeni' => 'Swazi Lilangeni',
|
||||||
|
'income' => 'Income',
|
||||||
|
'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.',
|
||||||
|
'vendor_phone' => 'Vendor Phone',
|
||||||
|
'mercado_pago' => 'Mercado Pago',
|
||||||
|
'mybank' => 'MyBank',
|
||||||
|
'paypal_paylater' => 'Pay in 4',
|
||||||
|
'paid_date' => 'Paid Date',
|
||||||
|
'district' => 'District',
|
||||||
|
'region' => 'Region',
|
||||||
|
'county' => 'County',
|
||||||
|
'tax_details' => 'Tax Details',
|
||||||
|
'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client',
|
||||||
|
'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client',
|
||||||
|
'default_payment_type' => 'Default Payment Type',
|
||||||
|
'number_precision' => 'Number precision',
|
||||||
|
'number_precision_help' => 'Controls the number of decimals supported in the interface',
|
||||||
|
'is_tax_exempt' => 'Tax Exempt',
|
||||||
|
'drop_files_here' => 'Drop files here',
|
||||||
|
'upload_files' => 'Upload Files',
|
||||||
|
'download_e_invoice' => 'Download E-Invoice',
|
||||||
|
'triangular_tax_info' => 'Intra-community triangular transaction',
|
||||||
|
'intracommunity_tax_info' => 'Tax-free intra-community delivery',
|
||||||
|
'reverse_tax_info' => 'Please note that this supply is subject to reverse charge',
|
||||||
|
'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba',
|
||||||
|
'public' => 'Public',
|
||||||
|
'private' => 'Private',
|
||||||
|
'image' => 'Image',
|
||||||
|
'other' => 'Other',
|
||||||
|
'linked_to' => 'Linked To',
|
||||||
|
'file_saved_in_path' => 'The file has been saved in :path',
|
||||||
|
'unlinked_transactions' => 'Successfully unlinked :count transactions',
|
||||||
|
'unlinked_transaction' => 'Successfully unlinked transaction',
|
||||||
|
'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions',
|
||||||
|
'marked_sent_credits' => 'Successfully marked credits sent',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user