mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-10 13:12:50 +01:00
commit
7c18185167
@ -1 +1 @@
|
||||
5.8.51
|
||||
5.8.52
|
@ -479,7 +479,7 @@ class CheckData extends Command
|
||||
$this->logMessage("No contact present, so cannot add invitation for {$entity_key} - {$entity->id}");
|
||||
|
||||
try{
|
||||
$entity->service()->createInvitations()->save();
|
||||
$entity->service()->createInvitations()->save();
|
||||
}
|
||||
catch(\Exception $e){
|
||||
|
||||
|
@ -503,7 +503,13 @@ class CompanySettings extends BaseSettings
|
||||
|
||||
public $enable_rappen_rounding = false;
|
||||
|
||||
public bool $task_round_up = true;
|
||||
|
||||
public int $task_round_to_nearest = 1;
|
||||
|
||||
public static $casts = [
|
||||
'task_round_up' => 'bool',
|
||||
'task_round_to_nearest' => 'int',
|
||||
'e_quote_type' => 'string',
|
||||
'enable_rappen_rounding' => 'bool',
|
||||
'use_unapplied_payment' => 'string',
|
||||
|
@ -1,290 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataProviders;
|
||||
|
||||
class EDocRules
|
||||
{
|
||||
// [
|
||||
// "key" => "",
|
||||
// "label" => "",
|
||||
// "type" => "dropdown/date/string/text",
|
||||
// "resource" => "resource.json",
|
||||
// "required" => true,
|
||||
// ]
|
||||
public function rules()
|
||||
{
|
||||
|
||||
return [
|
||||
'FatturaPA' => $this->FatturaPADefaults(),
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function FatturaPADefaults()
|
||||
{
|
||||
return [
|
||||
[
|
||||
"key" => "RegimeFiscale",
|
||||
"label" => "Regime Fiscale",
|
||||
"type" => "dropdown",
|
||||
"resource" => "RegimeFiscale.json",
|
||||
"required" => true,
|
||||
],
|
||||
[
|
||||
"key" => "TipoDocumento",
|
||||
"label" => "Tipo Documento",
|
||||
"type" => "dropdown",
|
||||
"resource" => "TipoDocumento.json",
|
||||
"required" => true,
|
||||
],
|
||||
[
|
||||
"key" => "ModalitaPagamento",
|
||||
"label" => "Modalita Pagamento",
|
||||
"type" => "dropdown",
|
||||
"resource" => "ModalitaPagamento.json",
|
||||
"required" => true,
|
||||
],
|
||||
[
|
||||
"key" => "CondizioniPagamento",
|
||||
"label" => "Condizioni Pagamento",
|
||||
"type" => "dropdown",
|
||||
"resource" => "CondizioniPagamento.json",
|
||||
"required" => true,
|
||||
],
|
||||
[
|
||||
"key" => "DatiRicezione",
|
||||
"label" => "Dati Ricezione",
|
||||
"type" => "dropdown",
|
||||
"resource" => "CondizioniPagamento",
|
||||
"required" => false,
|
||||
"children" => [],
|
||||
],
|
||||
[
|
||||
"key" => "DatiContratto",
|
||||
"label" => "Dati Contratto",
|
||||
"type" => "object",
|
||||
"resource" => "DatiContratto",
|
||||
"required" => false,
|
||||
"children" => [
|
||||
[
|
||||
"key"=> "RiferimentoNumeroLinea",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "IdDocumento",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "Data",
|
||||
"validation" => [
|
||||
"string","date","required",
|
||||
"type" => "date",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "NumItem",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "CodiceCommessaConvenzione",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "CodiceCUP",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "CodiceCIG",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
"key" => "DatiOrdineAcquisto",
|
||||
"label" => "Dati Ordine Acquisto",
|
||||
"type" => "object",
|
||||
"resource" => "DatiOrdineAcquisto",
|
||||
"required" => false,
|
||||
"children" => [
|
||||
[
|
||||
"key"=> "RiferimentoNumeroLinea",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "IdDocumento",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "Data",
|
||||
"validation" => [
|
||||
"string","date","required",
|
||||
"type" => "date",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "NumItem",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "CodiceCommessaConvenzione",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "CodiceCUP",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "CodiceCIG",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
"key" => "DatiAnagraficiVettore",
|
||||
"label" => "Dati Anagrafici Vettore",
|
||||
"type" => "object",
|
||||
"resource" => "DatiAnagraficiVettore",
|
||||
"required" => false,
|
||||
"children" => [
|
||||
[
|
||||
"key"=> "RiferimentoNumeroLinea",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "IdDocumento",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "Data",
|
||||
"validation" => [
|
||||
"string","date","required",
|
||||
"type" => "date",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "NumItem",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "CodiceCommessaConvenzione",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "CodiceCUP",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
[
|
||||
"key"=> "CodiceCIG",
|
||||
"validation" => [
|
||||
"string","min:1","max:10","required",
|
||||
"type" => "string",
|
||||
"resource" => "",
|
||||
"required" => true,
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
@ -67,7 +67,6 @@ class Handler extends ExceptionHandler
|
||||
];
|
||||
|
||||
protected $hostedDontReport = [
|
||||
PDOException::class,
|
||||
MaxAttemptsExceededException::class,
|
||||
CommandNotFoundException::class,
|
||||
ValidationException::class,
|
||||
|
@ -122,6 +122,7 @@ class ActivityExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
//insert the header
|
||||
$this->csv->insertOne($this->buildHeader());
|
||||
|
@ -879,10 +879,7 @@ class BaseExport
|
||||
|
||||
$transformed_clients = $this->transformKeys($clients);
|
||||
|
||||
nlog($transformed_clients);
|
||||
|
||||
if(count($transformed_clients) > 0) {
|
||||
nlog("yus");
|
||||
$query->whereIn('client_id', $transformed_clients);
|
||||
}
|
||||
|
||||
|
@ -144,6 +144,7 @@ class ClientExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
//insert the header
|
||||
$this->csv->insertOne($this->buildHeader());
|
||||
|
@ -58,7 +58,10 @@ class ContactExport extends BaseExport
|
||||
}
|
||||
|
||||
$query = ClientContact::query()
|
||||
->where('company_id', $this->company->id);
|
||||
->where('company_id', $this->company->id)
|
||||
->whereHas('client', function ($q){
|
||||
$q->where('is_deleted', false);
|
||||
});
|
||||
|
||||
$query = $this->addDateRange($query);
|
||||
|
||||
@ -73,6 +76,7 @@ class ContactExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
//insert the header
|
||||
$this->csv->insertOne($this->buildHeader());
|
||||
|
@ -102,6 +102,9 @@ class CreditExport extends BaseExport
|
||||
$query = Credit::query()
|
||||
->withTrashed()
|
||||
->with('client')
|
||||
->whereHas('client', function ($q){
|
||||
$q->where('is_deleted', false);
|
||||
})
|
||||
->where('company_id', $this->company->id)
|
||||
->where('is_deleted', $this->input['include_deleted'] ?? false);
|
||||
|
||||
@ -129,6 +132,7 @@ class CreditExport extends BaseExport
|
||||
$query = $this->init();
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
//insert the header
|
||||
$this->csv->insertOne($this->buildHeader());
|
||||
|
@ -92,6 +92,7 @@ class DocumentExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
//insert the header
|
||||
$this->csv->insertOne($this->buildHeader());
|
||||
|
@ -121,6 +121,7 @@ class ExpenseExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
//insert the header
|
||||
$this->csv->insertOne($this->buildHeader());
|
||||
|
@ -57,6 +57,9 @@ class InvoiceExport extends BaseExport
|
||||
$query = Invoice::query()
|
||||
->withTrashed()
|
||||
->with('client')
|
||||
->whereHas('client', function ($q){
|
||||
$q->where('is_deleted', false);
|
||||
})
|
||||
->where('company_id', $this->company->id)
|
||||
->where('is_deleted', $this->input['include_deleted'] ?? false);
|
||||
|
||||
@ -105,6 +108,7 @@ class InvoiceExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
//insert the header
|
||||
$this->csv->insertOne($this->buildHeader());
|
||||
@ -141,18 +145,6 @@ class InvoiceExport extends BaseExport
|
||||
private function decorateAdvancedFields(Invoice $invoice, array $entity): array
|
||||
{
|
||||
|
||||
// if (in_array('invoice.country_id', $this->input['report_keys'])) {
|
||||
// $entity['invoice.country_id'] = $invoice->client->country ? ctrans("texts.country_{$invoice->client->country->name}") : '';
|
||||
// }
|
||||
|
||||
// if (in_array('invoice.currency_id', $this->input['report_keys'])) {
|
||||
// $entity['invoice.currency_id'] = $invoice->client->currency() ? $invoice->client->currency()->code : $invoice->company->currency()->code;
|
||||
// }
|
||||
|
||||
// if (in_array('invoice.client_id', $this->input['report_keys'])) {
|
||||
// $entity['invoice.client_id'] = $invoice->client->present()->name();
|
||||
// }
|
||||
|
||||
// if (in_array('invoice.status', $this->input['report_keys'])) {
|
||||
// $entity['invoice.status'] = $invoice->stringStatus($invoice->status_id);
|
||||
// }
|
||||
|
@ -70,6 +70,9 @@ class InvoiceItemExport extends BaseExport
|
||||
$query = Invoice::query()
|
||||
->withTrashed()
|
||||
->with('client')
|
||||
->whereHas('client', function ($q){
|
||||
$q->where('is_deleted', false);
|
||||
})
|
||||
->where('company_id', $this->company->id)
|
||||
->where('is_deleted', $this->input['include_deleted'] ?? false);
|
||||
|
||||
@ -128,6 +131,7 @@ class InvoiceItemExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
//insert the header
|
||||
$this->csv->insertOne($this->buildHeader());
|
||||
|
@ -56,6 +56,9 @@ class PaymentExport extends BaseExport
|
||||
|
||||
$query = Payment::query()
|
||||
->withTrashed()
|
||||
->whereHas('client', function ($q){
|
||||
$q->where('is_deleted', false);
|
||||
})
|
||||
->where('company_id', $this->company->id)
|
||||
->where('is_deleted', 0);
|
||||
|
||||
@ -102,6 +105,7 @@ class PaymentExport extends BaseExport
|
||||
$query = $this->init();
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
//insert the header
|
||||
$this->csv->insertOne($this->buildHeader());
|
||||
|
@ -93,6 +93,7 @@ class ProductExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
//insert the header
|
||||
$this->csv->insertOne($this->buildHeader());
|
||||
|
@ -112,6 +112,7 @@ class ProductSalesExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
if (count($this->input['report_keys']) == 0) {
|
||||
$this->input['report_keys'] = array_values($this->entity_keys);
|
||||
@ -120,6 +121,9 @@ class ProductSalesExport extends BaseExport
|
||||
//insert the header
|
||||
$query = Invoice::query()
|
||||
->withTrashed()
|
||||
->whereHas('client', function ($q){
|
||||
$q->where('is_deleted', false);
|
||||
})
|
||||
->where('company_id', $this->company->id)
|
||||
->where('is_deleted', 0)
|
||||
->whereIn('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL, Invoice::STATUS_PAID]);
|
||||
|
@ -58,6 +58,9 @@ class PurchaseOrderExport extends BaseExport
|
||||
$query = PurchaseOrder::query()
|
||||
->withTrashed()
|
||||
->with('vendor')
|
||||
->whereHas('vendor', function ($q){
|
||||
$q->where('is_deleted', false);
|
||||
})
|
||||
->where('company_id', $this->company->id)
|
||||
->where('is_deleted', $this->input['include_deleted'] ?? false);
|
||||
|
||||
@ -105,6 +108,7 @@ class PurchaseOrderExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
//insert the header
|
||||
$this->csv->insertOne($this->buildHeader());
|
||||
|
@ -62,6 +62,9 @@ class PurchaseOrderItemExport extends BaseExport
|
||||
|
||||
$query = PurchaseOrder::query()
|
||||
->withTrashed()
|
||||
->whereHas('vendor', function ($q){
|
||||
$q->where('is_deleted', false);
|
||||
})
|
||||
->with('vendor')->where('company_id', $this->company->id)
|
||||
->where('is_deleted', $this->input['include_deleted'] ?? false);
|
||||
|
||||
@ -112,6 +115,7 @@ class PurchaseOrderItemExport extends BaseExport
|
||||
{
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
$query = $this->init();
|
||||
|
||||
|
@ -64,6 +64,9 @@ class QuoteExport extends BaseExport
|
||||
$query = Quote::query()
|
||||
->withTrashed()
|
||||
->with('client')
|
||||
->whereHas('client', function ($q){
|
||||
$q->where('is_deleted', false);
|
||||
})
|
||||
->where('company_id', $this->company->id)
|
||||
->where('is_deleted', $this->input['include_deleted'] ?? false);
|
||||
|
||||
@ -110,6 +113,7 @@ class QuoteExport extends BaseExport
|
||||
{
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
$query = $this->init();
|
||||
|
||||
|
@ -65,6 +65,9 @@ class QuoteItemExport extends BaseExport
|
||||
|
||||
$query = Quote::query()
|
||||
->withTrashed()
|
||||
->whereHas('client', function ($q){
|
||||
$q->where('is_deleted', false);
|
||||
})
|
||||
->with('client')->where('company_id', $this->company->id)
|
||||
->where('is_deleted', $this->input['include_deleted'] ?? false);
|
||||
|
||||
@ -118,6 +121,7 @@ class QuoteItemExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
$query = $this->init();
|
||||
|
||||
|
@ -56,6 +56,9 @@ class RecurringInvoiceExport extends BaseExport
|
||||
$query = RecurringInvoice::query()
|
||||
->withTrashed()
|
||||
->with('client')
|
||||
->whereHas('client', function ($q){
|
||||
$q->where('is_deleted', false);
|
||||
})
|
||||
->where('company_id', $this->company->id)
|
||||
->where('is_deleted', $this->input['include_deleted'] ?? false);
|
||||
|
||||
@ -80,6 +83,7 @@ class RecurringInvoiceExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
//insert the header
|
||||
$this->csv->insertOne($this->buildHeader());
|
||||
|
@ -94,6 +94,7 @@ class TaskExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
//insert the header
|
||||
$this->csv->insertOne($this->buildHeader());
|
||||
|
@ -54,6 +54,7 @@ class VendorExport extends BaseExport
|
||||
|
||||
//load the CSV document from a string
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
if (count($this->input['report_keys']) == 0) {
|
||||
$this->input['report_keys'] = array_values($this->vendor_report_keys);
|
||||
|
@ -23,8 +23,13 @@ class ContactDecorator implements DecoratorInterface
|
||||
$contact = $entity;
|
||||
} elseif($entity->contacts) {
|
||||
$contact = $entity->contacts()->first();
|
||||
} elseif($entity->client) {
|
||||
$contact = $entity->client->primary_contact->first() ?? $entity->client->contacts()->whereNotNull('email')->first();
|
||||
} elseif($entity->vendor) {
|
||||
$contact = $entity->vendor->primary_contact->first() ?? $entity->vendor->contacts()->whereNotNull('email')->first();
|
||||
}
|
||||
|
||||
|
||||
if($contact && method_exists($this, $key)) {
|
||||
return $this->{$key}($contact);
|
||||
} elseif($contact && ($contact->{$key} ?? false)) {
|
||||
|
@ -23,6 +23,7 @@ class CompanyGatewayFactory
|
||||
$company_gateway->require_billing_address = false;
|
||||
$company_gateway->require_shipping_address = false;
|
||||
$company_gateway->config = encrypt(json_encode(new \stdClass()));
|
||||
$company_gateway->always_show_required_fields = true;
|
||||
|
||||
return $company_gateway;
|
||||
}
|
||||
|
@ -146,14 +146,14 @@ class RecurringExpenseFilters extends QueryFilters
|
||||
return $this->builder
|
||||
->orderByRaw('ISNULL(client_id), client_id '. $sort_col[1])
|
||||
->orderBy(\App\Models\Client::select('name')
|
||||
->whereColumn('clients.id', 'expenses.client_id'), $sort_col[1]);
|
||||
->whereColumn('clients.id', 'recurring_expenses.client_id'), $sort_col[1]);
|
||||
}
|
||||
|
||||
if ($sort_col[0] == 'vendor_id' && in_array($sort_col[1], ['asc', 'desc'])) {
|
||||
return $this->builder
|
||||
->orderByRaw('ISNULL(vendor_id), vendor_id '. $sort_col[1])
|
||||
->orderBy(\App\Models\Vendor::select('name')
|
||||
->whereColumn('vendors.id', 'expenses.vendor_id'), $sort_col[1]);
|
||||
->whereColumn('vendors.id', 'recurring_expenses.vendor_id'), $sort_col[1]);
|
||||
|
||||
}
|
||||
|
||||
@ -161,7 +161,7 @@ class RecurringExpenseFilters extends QueryFilters
|
||||
return $this->builder
|
||||
->orderByRaw('ISNULL(category_id), category_id '. $sort_col[1])
|
||||
->orderBy(\App\Models\ExpenseCategory::select('name')
|
||||
->whereColumn('expense_categories.id', 'expenses.category_id'), $sort_col[1]);
|
||||
->whereColumn('expense_categories.id', 'recurring_expenses.category_id'), $sort_col[1]);
|
||||
}
|
||||
|
||||
if($sort_col[0] == 'number') {
|
||||
|
@ -133,6 +133,10 @@ class RecurringInvoiceFilters extends QueryFilters
|
||||
return $this->builder->orderByRaw("REGEXP_REPLACE(number,'[^0-9]+','')+0 " . $dir);
|
||||
}
|
||||
|
||||
if($sort_col[0] == 'next_send_datetime'){
|
||||
$sort_col[0] = 'next_send_date';
|
||||
}
|
||||
|
||||
return $this->builder->orderBy($sort_col[0], $dir);
|
||||
}
|
||||
|
||||
|
@ -59,13 +59,13 @@ class EpcQrGenerator
|
||||
<rect x='0' y='0' width='100%'' height='100%' />{$qr}</svg>";
|
||||
|
||||
} catch(\Throwable $e) {
|
||||
nlog("EPC QR failure => ".$e->getMessage());
|
||||
// nlog("EPC QR failure => ".$e->getMessage());
|
||||
return '';
|
||||
} catch(\Exception $e) {
|
||||
nlog("EPC QR failure => ".$e->getMessage());
|
||||
// nlog("EPC QR failure => ".$e->getMessage());
|
||||
return '';
|
||||
} catch(InvalidArgumentException $e) {
|
||||
nlog("EPC QR failure => ".$e->getMessage());
|
||||
// nlog("EPC QR failure => ".$e->getMessage());
|
||||
return '';
|
||||
}
|
||||
|
||||
|
@ -35,7 +35,7 @@ trait CustomValuer
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function multiInclusiveTax($value, $has_custom_invoice_taxes) {
|
||||
public function multiInclusiveTax($custom_value, $has_custom_invoice_taxes) {
|
||||
|
||||
if (isset($custom_value) && is_numeric($custom_value) && $has_custom_invoice_taxes !== false) {
|
||||
|
||||
|
@ -245,12 +245,11 @@ class InvoiceSum
|
||||
*/
|
||||
private function setCalculatedAttributes(): self
|
||||
{
|
||||
/* If amount != balance then some money has been paid on the invoice, need to subtract this difference from the total to set the new balance */
|
||||
|
||||
if ($this->invoice->status_id != Invoice::STATUS_DRAFT) {
|
||||
if($this->invoice->status_id == Invoice::STATUS_CANCELLED){
|
||||
$this->invoice->balance = 0;
|
||||
}
|
||||
elseif ($this->invoice->status_id != Invoice::STATUS_DRAFT) {
|
||||
if ($this->invoice->amount != $this->invoice->balance) {
|
||||
// $paid_to_date = $this->invoice->amount - $this->invoice->balance;
|
||||
|
||||
$this->invoice->balance = Number::roundValue($this->getTotal(), $this->precision) - $this->invoice->paid_to_date; //21-02-2024 cannot use the calculated $paid_to_date here as it could send the balance backward.
|
||||
} else {
|
||||
$this->invoice->balance = Number::roundValue($this->getTotal(), $this->precision);
|
||||
|
@ -74,8 +74,8 @@ class InvoiceSumInclusive
|
||||
{
|
||||
$this->calculateLineItems()
|
||||
->calculateDiscount()
|
||||
->calculateCustomValues()
|
||||
->calculateInvoiceTaxes()
|
||||
->calculateCustomValues()
|
||||
->setTaxMap()
|
||||
->calculateTotals() //just don't add the taxes!!
|
||||
->calculateBalance()
|
||||
@ -119,7 +119,6 @@ class InvoiceSumInclusive
|
||||
$this->total_taxes += $this->multiInclusiveTax($this->invoice->custom_surcharge4, $this->invoice->custom_surcharge_tax4);
|
||||
$this->total_custom_values += $this->valuer($this->invoice->custom_surcharge4);
|
||||
|
||||
|
||||
$this->total += $this->total_custom_values;
|
||||
|
||||
return $this;
|
||||
@ -138,21 +137,21 @@ class InvoiceSumInclusive
|
||||
}
|
||||
|
||||
//Handles cases where the surcharge is not taxed
|
||||
if(is_numeric($this->invoice->custom_surcharge1) && $this->invoice->custom_surcharge1 > 0 && $this->invoice->custom_surcharge_tax1) {
|
||||
$amount += $this->invoice->custom_surcharge1;
|
||||
}
|
||||
// if(is_numeric($this->invoice->custom_surcharge1) && $this->invoice->custom_surcharge1 > 0 && !$this->invoice->custom_surcharge_tax1) {
|
||||
// $amount += $this->invoice->custom_surcharge1;
|
||||
// }
|
||||
|
||||
if(is_numeric($this->invoice->custom_surcharge2) && $this->invoice->custom_surcharge2 > 0 && $this->invoice->custom_surcharge_tax2) {
|
||||
$amount += $this->invoice->custom_surcharge2;
|
||||
}
|
||||
// if(is_numeric($this->invoice->custom_surcharge2) && $this->invoice->custom_surcharge2 > 0 && !$this->invoice->custom_surcharge_tax2) {
|
||||
// $amount += $this->invoice->custom_surcharge2;
|
||||
// }
|
||||
|
||||
if(is_numeric($this->invoice->custom_surcharge3) && $this->invoice->custom_surcharge3 > 0 && $this->invoice->custom_surcharge_tax3) {
|
||||
$amount += $this->invoice->custom_surcharge3;
|
||||
}
|
||||
// if(is_numeric($this->invoice->custom_surcharge3) && $this->invoice->custom_surcharge3 > 0 && !$this->invoice->custom_surcharge_tax3) {
|
||||
// $amount += $this->invoice->custom_surcharge3;
|
||||
// }
|
||||
|
||||
if(is_numeric($this->invoice->custom_surcharge4) && $this->invoice->custom_surcharge4 > 0 && $this->invoice->custom_surcharge_tax4) {
|
||||
$amount += $this->invoice->custom_surcharge4;
|
||||
}
|
||||
// if(is_numeric($this->invoice->custom_surcharge4) && $this->invoice->custom_surcharge4 > 0 && !$this->invoice->custom_surcharge_tax4) {
|
||||
// $amount += $this->invoice->custom_surcharge4;
|
||||
// }
|
||||
|
||||
if (is_string($this->invoice->tax_name1) && strlen($this->invoice->tax_name1) > 1) {
|
||||
$tax = $this->calcInclusiveLineTax($this->invoice->tax_rate1, $amount);
|
||||
@ -280,10 +279,11 @@ class InvoiceSumInclusive
|
||||
private function setCalculatedAttributes()
|
||||
{
|
||||
/* If amount != balance then some money has been paid on the invoice, need to subtract this difference from the total to set the new balance */
|
||||
if ($this->invoice->status_id != Invoice::STATUS_DRAFT) {
|
||||
if($this->invoice->status_id == Invoice::STATUS_CANCELLED){
|
||||
$this->invoice->balance = 0;
|
||||
}
|
||||
elseif ($this->invoice->status_id != Invoice::STATUS_DRAFT) {
|
||||
if ($this->invoice->amount != $this->invoice->balance) {
|
||||
// $paid_to_date = $this->invoice->amount - $this->invoice->balance;
|
||||
|
||||
$this->invoice->balance = $this->formatValue($this->getTotal(), $this->precision) - $this->invoice->paid_to_date;
|
||||
} else {
|
||||
$this->invoice->balance = $this->formatValue($this->getTotal(), $this->precision);
|
||||
|
@ -258,6 +258,18 @@ class ClientController extends BaseController
|
||||
|
||||
}
|
||||
|
||||
if($action == 'bulk_update' && $user->can('edit', $clients->first())){
|
||||
|
||||
$clients = Client::withTrashed()
|
||||
->company()
|
||||
->whereIn('id', $request->ids);
|
||||
|
||||
$this->client_repo->bulkUpdate($clients, $request->column, $request->new_value);
|
||||
|
||||
return $this->listResponse(Client::query()->withTrashed()->company()->whereIn('id', $request->ids));
|
||||
|
||||
}
|
||||
|
||||
$clients->each(function ($client) use ($action, $user) {
|
||||
if ($user->can('edit', $client)) {
|
||||
$this->client_repo->{$action}($client);
|
||||
|
@ -64,6 +64,9 @@ class SelfUpdateController extends BaseController
|
||||
|
||||
$file_headers = @get_headers($this->getDownloadUrl());
|
||||
|
||||
if(!is_array($file_headers))
|
||||
return response()->json(['message' => 'There was a problem reaching the update server, please try again in a little while.'], 410);
|
||||
|
||||
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);
|
||||
}
|
||||
@ -99,6 +102,9 @@ class SelfUpdateController extends BaseController
|
||||
}
|
||||
}
|
||||
|
||||
if(Storage::disk('base')->directoryExists('resources/lang'))
|
||||
Storage::disk('base')->deleteDirectory('resources/lang');
|
||||
|
||||
nlog('Removing cache files');
|
||||
|
||||
Artisan::call('clear-compiled');
|
||||
|
@ -35,12 +35,14 @@ class BulkClientRequest extends Request
|
||||
$user = auth()->user();
|
||||
|
||||
return [
|
||||
'action' => 'required|string|in:archive,restore,delete,template,assign_group',
|
||||
'action' => 'required|string|in:archive,restore,delete,template,assign_group,bulk_update',
|
||||
'ids' => ['required','bail','array',Rule::exists('clients', 'id')->where('company_id', $user->company()->id)],
|
||||
'template' => 'sometimes|string',
|
||||
'template_id' => 'sometimes|string',
|
||||
'group_settings_id' => ['required_if:action,assign_group',Rule::exists('group_settings', 'id')->where('company_id', $user->company()->id)],
|
||||
'send_email' => 'sometimes|bool'
|
||||
'send_email' => 'sometimes|bool',
|
||||
'column' => ['required_if:action,bulk_update', 'string', Rule::in(\App\Models\Client::$bulk_update_columns)],
|
||||
'new_value' => ['required_if:action,bulk_update|string'],
|
||||
];
|
||||
|
||||
}
|
||||
|
@ -45,12 +45,12 @@ class StorePaymentRequest extends Request
|
||||
|
||||
$rules = [
|
||||
'client_id' => ['bail','required',Rule::exists('clients','id')->where('company_id',$user->company()->id)->where('is_deleted', 0)],
|
||||
'amount' => ['bail', 'numeric', new PaymentAmountsBalanceRule()],
|
||||
'invoices' => ['bail','sometimes', 'nullable', 'array', new ValidPayableInvoicesRule()],
|
||||
'invoices.*.amount' => ['bail','required'],
|
||||
'invoices.*.invoice_id' => ['bail','required','distinct', new ValidInvoicesRules($this->all()),Rule::exists('invoices','id')->where('company_id', $user->company()->id)->where('client_id', $this->client_id)],
|
||||
'credits.*.credit_id' => ['bail','required','distinct', new ValidCreditsRules($this->all()),Rule::exists('credits','id')->where('company_id', $user->company()->id)->where('client_id', $this->client_id)],
|
||||
'credits.*.amount' => ['bail','required', new CreditsSumRule($this->all())],
|
||||
'invoices' => ['bail','sometimes', 'nullable', 'array', new ValidPayableInvoicesRule()],
|
||||
'amount' => ['bail', 'numeric', new PaymentAmountsBalanceRule()],
|
||||
'number' => ['bail', 'nullable', Rule::unique('payments')->where('company_id', $user->company()->id)],
|
||||
'idempotency_key' => ['nullable', 'bail', 'string','max:64', Rule::unique('payments')->where('company_id', $user->company()->id)],
|
||||
];
|
||||
@ -94,7 +94,7 @@ class StorePaymentRequest extends Request
|
||||
|
||||
if (isset($input['invoices']) && is_array($input['invoices']) !== false) {
|
||||
foreach ($input['invoices'] as $key => $value) {
|
||||
if (is_string($value['invoice_id'])) {
|
||||
if (isset($value['invoice_id']) && is_string($value['invoice_id'])) {
|
||||
$input['invoices'][$key]['invoice_id'] = $this->decodePrimaryKey($value['invoice_id']);
|
||||
}
|
||||
|
||||
@ -110,7 +110,7 @@ class StorePaymentRequest extends Request
|
||||
|
||||
if (isset($input['credits']) && is_array($input['credits']) !== false) {
|
||||
foreach ($input['credits'] as $key => $value) {
|
||||
if (array_key_exists('credit_id', $input['credits'][$key])) {
|
||||
if (isset($value['credit_id']) && is_string($value['credit_id'])) {
|
||||
$input['credits'][$key]['credit_id'] = $this->decodePrimaryKey($value['credit_id']);
|
||||
$credits_total += $value['amount'];
|
||||
}
|
||||
|
@ -21,6 +21,8 @@ class BlackListRule implements ValidationRule
|
||||
{
|
||||
/** Bad domains +/- dispoable email domains */
|
||||
private array $blacklist = [
|
||||
'anonaddy.me',
|
||||
'nqmo.com',
|
||||
'wireconnected.com',
|
||||
'secure-coinspot.com',
|
||||
'casasotombo.com',
|
||||
|
@ -229,6 +229,11 @@ class CompanyImport implements ShouldQueue
|
||||
'is_template',
|
||||
]
|
||||
],
|
||||
'5.8.51' => [
|
||||
CompanyGateway::class => [
|
||||
'always_show_required_fields',
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
/**
|
||||
|
@ -77,6 +77,8 @@ class NinjaMailerJob implements ShouldQueue
|
||||
/*Set the correct database*/
|
||||
MultiDB::setDb($this->nmo->company->db);
|
||||
|
||||
nlog("nn");
|
||||
|
||||
/* Serializing models from other jobs wipes the primary key */
|
||||
$this->company = Company::query()->where('company_key', $this->nmo->company->company_key)->first();
|
||||
|
||||
@ -87,7 +89,6 @@ class NinjaMailerJob implements ShouldQueue
|
||||
if (!$this->company || $this->preFlightChecksFail()) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Run time we set Reply To Email*/
|
||||
if (strlen($this->nmo->settings->reply_to_email) > 1) {
|
||||
if (property_exists($this->nmo->settings, 'reply_to_name')) {
|
||||
@ -362,7 +363,7 @@ class NinjaMailerJob implements ShouldQueue
|
||||
return $this;
|
||||
}
|
||||
|
||||
private function configureSmtpMailer(): void
|
||||
private function configureSmtpMailer()
|
||||
{
|
||||
|
||||
$company = $this->company;
|
||||
@ -375,6 +376,16 @@ class NinjaMailerJob implements ShouldQueue
|
||||
$smtp_local_domain = strlen($company->smtp_local_domain) > 2 ? $company->smtp_local_domain : null;
|
||||
$smtp_verify_peer = $company->smtp_verify_peer ?? true;
|
||||
|
||||
if(strlen($smtp_host ?? '') <= 1 ||
|
||||
strlen($smtp_username ?? '') <= 1 ||
|
||||
strlen($smtp_password ?? '') <= 1
|
||||
)
|
||||
{
|
||||
$this->nmo->settings->email_sending_method = 'default';
|
||||
return $this->setMailDriver();
|
||||
}
|
||||
|
||||
|
||||
config([
|
||||
'mail.mailers.smtp' => [
|
||||
'transport' => 'smtp',
|
||||
|
@ -79,7 +79,8 @@ class RequiredClientInfo extends Component
|
||||
public $client_custom_value2;
|
||||
public $client_custom_value3;
|
||||
public $client_custom_value4;
|
||||
|
||||
private ?CompanyGateway $company_gateway;
|
||||
private int $unfilled_fields = 0;
|
||||
|
||||
/**
|
||||
* Mappings for updating the database. Left side is mapping from gateway,
|
||||
@ -194,6 +195,7 @@ class RequiredClientInfo extends Component
|
||||
MultiDB::setDb($this->db);
|
||||
$contact = ClientContact::withTrashed()->find($this->contact_id);
|
||||
$company = $contact->company;
|
||||
$this->company_gateway = CompanyGateway::withTrashed()->find($this->company_gateway_id);
|
||||
|
||||
$this->client_name = $contact->client->name;
|
||||
$this->contact_first_name = $contact->first_name;
|
||||
@ -215,8 +217,6 @@ class RequiredClientInfo extends Component
|
||||
$this->client_custom_value3 = $contact->client->custom_value3;
|
||||
$this->client_custom_value4 = $contact->client->custom_value4;
|
||||
|
||||
// $this->client = $this->contact->client;
|
||||
|
||||
if ($company->settings->show_accept_invoice_terms && request()->query('hash')) {
|
||||
$this->show_terms = true;
|
||||
$this->terms_accepted = false;
|
||||
@ -230,18 +230,12 @@ class RequiredClientInfo extends Component
|
||||
$this->invoice_terms = $invoice->terms;
|
||||
}
|
||||
|
||||
count($this->fields) > 0 || $this->show_terms
|
||||
? $this->checkFields()
|
||||
: $this->show_form = false;
|
||||
if(!$this->company_gateway->always_show_required_fields)
|
||||
$this->checkFields();
|
||||
|
||||
if (request()->query('source') === 'subscriptions') {
|
||||
$this->show_form = false;
|
||||
if($this->unfilled_fields > 0 || $this->company_gateway->always_show_required_fields)
|
||||
$this->show_form = true;
|
||||
|
||||
$this->dispatch(
|
||||
'passed-required-fields-check',
|
||||
client_postal_code: $this->contact->client->postal_code
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#[Computed]
|
||||
@ -327,26 +321,26 @@ class RequiredClientInfo extends Component
|
||||
}
|
||||
|
||||
|
||||
$_contact->first_name = $this->contact_first_name;
|
||||
$_contact->last_name = $this->contact_last_name;
|
||||
$_contact->client->name = $this->client_name;
|
||||
$_contact->email = $this->contact_email;
|
||||
$_contact->client->phone = $this->client_phone;
|
||||
$_contact->client->address1 = $this->client_address_line_1;
|
||||
$_contact->client->city = $this->client_city;
|
||||
$_contact->client->state = $this->client_state;
|
||||
$_contact->client->country_id = $this->client_country_id;
|
||||
$_contact->client->postal_code = $this->client_postal_code;
|
||||
$_contact->client->shipping_address1 = $this->client_shipping_address_line_1;
|
||||
$_contact->client->shipping_city = $this->client_shipping_city;
|
||||
$_contact->client->shipping_state = $this->client_shipping_state;
|
||||
$_contact->client->shipping_postal_code = $this->client_shipping_postal_code;
|
||||
$_contact->client->shipping_country_id = $this->client_shipping_country_id;
|
||||
$_contact->client->custom_value1 = $this->client_custom_value1;
|
||||
$_contact->client->custom_value2 = $this->client_custom_value2;
|
||||
$_contact->client->custom_value3 = $this->client_custom_value3;
|
||||
$_contact->client->custom_value4 = $this->client_custom_value4;
|
||||
$_contact->push();
|
||||
$_contact->first_name = $this->contact_first_name;
|
||||
$_contact->last_name = $this->contact_last_name;
|
||||
$_contact->client->name = $this->client_name;
|
||||
$_contact->email = $this->contact_email;
|
||||
$_contact->client->phone = $this->client_phone;
|
||||
$_contact->client->address1 = $this->client_address_line_1;
|
||||
$_contact->client->city = $this->client_city;
|
||||
$_contact->client->state = $this->client_state;
|
||||
$_contact->client->country_id = $this->client_country_id;
|
||||
$_contact->client->postal_code = $this->client_postal_code;
|
||||
$_contact->client->shipping_address1 = $this->client_shipping_address_line_1;
|
||||
$_contact->client->shipping_city = $this->client_shipping_city;
|
||||
$_contact->client->shipping_state = $this->client_shipping_state;
|
||||
$_contact->client->shipping_postal_code = $this->client_shipping_postal_code;
|
||||
$_contact->client->shipping_country_id = $this->client_shipping_country_id;
|
||||
$_contact->client->custom_value1 = $this->client_custom_value1;
|
||||
$_contact->client->custom_value2 = $this->client_custom_value2;
|
||||
$_contact->client->custom_value3 = $this->client_custom_value3;
|
||||
$_contact->client->custom_value4 = $this->client_custom_value4;
|
||||
$_contact->push();
|
||||
|
||||
|
||||
$contact_update = $_contact
|
||||
@ -378,44 +372,39 @@ $_contact->push();
|
||||
public function checkFields()
|
||||
{
|
||||
|
||||
$this->show_form = true;
|
||||
//@todo - need to make this optional
|
||||
// MultiDB::setDb($this->db);
|
||||
// $_contact = ClientContact::withTrashed()->find($this->contact_id);
|
||||
MultiDB::setDb($this->db);
|
||||
$_contact = ClientContact::withTrashed()->find($this->contact_id);
|
||||
|
||||
// foreach ($this->fields as $index => $field) {
|
||||
// $_field = $this->mappings[$field['name']];
|
||||
foreach ($this->fields as $index => $field) {
|
||||
$_field = $this->mappings[$field['name']];
|
||||
|
||||
// if (Str::startsWith($field['name'], 'client_')) {
|
||||
// if (empty($_contact->client->{$_field})
|
||||
// || is_null($_contact->client->{$_field})
|
||||
// // || in_array($_field, $this->client_address_array)
|
||||
// ) {
|
||||
// $this->show_form = true;
|
||||
// } else {
|
||||
// $this->fields[$index]['filled'] = true;
|
||||
// }
|
||||
// }
|
||||
if (Str::startsWith($field['name'], 'client_')) {
|
||||
if (empty($_contact->client->{$_field})
|
||||
|| is_null($_contact->client->{$_field})
|
||||
) {
|
||||
// $this->show_form = true;
|
||||
$this->unfilled_fields++;
|
||||
} else {
|
||||
// $this->fields[$index]['filled'] = true;
|
||||
}
|
||||
}
|
||||
|
||||
// if (Str::startsWith($field['name'], 'contact_')) {
|
||||
// if (empty($_contact->{$_field}) || is_null($_contact->{$_field}) || str_contains($_contact->{$_field}, '@example.com')) {
|
||||
// $this->show_form = true;
|
||||
// } else {
|
||||
// $this->fields[$index]['filled'] = true;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
if (Str::startsWith($field['name'], 'contact_')) {
|
||||
if (empty($_contact->{$_field}) || is_null($_contact->{$_field}) || str_contains($_contact->{$_field}, '@example.com')) {
|
||||
$this->unfilled_fields++;
|
||||
} else {
|
||||
// $this->fields[$index]['filled'] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// $left = collect($this->fields)
|
||||
// ->filter(fn ($field) => !array_key_exists('filled', $field))
|
||||
// ->count();
|
||||
if ($this->unfilled_fields === 0 && !$this->company_gateway->always_show_required_fields) {
|
||||
$this->dispatch(
|
||||
'passed-required-fields-check',
|
||||
client_postal_code: $this->contact->client->postal_code
|
||||
);
|
||||
}
|
||||
|
||||
// if ($left === 0) {
|
||||
// $this->dispatch(
|
||||
// 'passed-required-fields-check',
|
||||
// client_postal_code: $this->contact->client->postal_code
|
||||
// );
|
||||
// }
|
||||
}
|
||||
|
||||
public function showCopyBillingCheckbox(): bool
|
||||
|
@ -220,12 +220,17 @@ class Client extends BaseModel implements HasLocalePreference
|
||||
'routing_id',
|
||||
];
|
||||
|
||||
// public function scopeExclude($query)
|
||||
// {
|
||||
// $query->makeHidden(['balance','paid_to_date']);
|
||||
public static array $bulk_update_columns = [
|
||||
'public_notes',
|
||||
'industry_id',
|
||||
'size_id',
|
||||
'country_id',
|
||||
'custom_value1',
|
||||
'custom_value2',
|
||||
'custom_value3',
|
||||
'custom_value4',
|
||||
];
|
||||
|
||||
// return $query;
|
||||
// }
|
||||
|
||||
public function getEntityType()
|
||||
{
|
||||
|
@ -47,6 +47,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
* @property bool $require_custom_value2
|
||||
* @property bool $require_custom_value3
|
||||
* @property bool $require_custom_value4
|
||||
* @property bool $always_show_required_fields
|
||||
* @property-read int|null $client_gateway_tokens_count
|
||||
* @property-read \App\Models\Company $company
|
||||
* @property-read \App\Models\Gateway $gateway
|
||||
@ -77,6 +78,7 @@ class CompanyGateway extends BaseModel
|
||||
'updated_at' => 'timestamp',
|
||||
'created_at' => 'timestamp',
|
||||
'deleted_at' => 'timestamp',
|
||||
'always_show_required_fields' => 'bool',
|
||||
];
|
||||
|
||||
protected $with = [
|
||||
@ -107,6 +109,7 @@ class CompanyGateway extends BaseModel
|
||||
'custom_value4',
|
||||
'token_billing',
|
||||
'label',
|
||||
'always_show_required_fields',
|
||||
];
|
||||
|
||||
public static $credit_cards = [
|
||||
|
@ -75,14 +75,14 @@ class Gateway extends StaticModel
|
||||
return $this->getMethods();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if gateway is custom.
|
||||
* @return bool TRUE|FALSE
|
||||
*/
|
||||
public function isCustom(): bool
|
||||
{
|
||||
return in_array($this->id, [62, 67, 68]); //static table ids of the custom gateways
|
||||
}
|
||||
// /**
|
||||
// * Test if gateway is custom.
|
||||
// * @return bool TRUE|FALSE
|
||||
// */
|
||||
// public function isCustom(): bool
|
||||
// {
|
||||
// return in_array($this->id, [62, 67, 68]); //static table ids of the custom gateways
|
||||
// }
|
||||
|
||||
public function getHelp()
|
||||
{
|
||||
|
@ -68,18 +68,18 @@ class PayFastPaymentDriver extends BaseDriver
|
||||
|
||||
public function init()
|
||||
{
|
||||
try {
|
||||
$this->payfast = new \Payfast\PayFastPayment(
|
||||
[
|
||||
'merchantId' => $this->company_gateway->getConfigField('merchantId'),
|
||||
'merchantKey' => $this->company_gateway->getConfigField('merchantKey'),
|
||||
'passPhrase' => $this->company_gateway->getConfigField('passphrase'),
|
||||
'testMode' => $this->company_gateway->getConfigField('testMode'),
|
||||
]
|
||||
);
|
||||
} catch (\Exception $e) {
|
||||
nlog('##PAYFAST## There was an exception: '.$e->getMessage());
|
||||
}
|
||||
// try {
|
||||
// $this->payfast = new \Payfast\PayFastPayment(
|
||||
// [
|
||||
// 'merchantId' => $this->company_gateway->getConfigField('merchantId'),
|
||||
// 'merchantKey' => $this->company_gateway->getConfigField('merchantKey'),
|
||||
// 'passPhrase' => $this->company_gateway->getConfigField('passphrase'),
|
||||
// 'testMode' => $this->company_gateway->getConfigField('testMode'),
|
||||
// ]
|
||||
// );
|
||||
// } catch (\Exception $e) {
|
||||
// nlog('##PAYFAST## There was an exception: '.$e->getMessage());
|
||||
// }
|
||||
|
||||
return $this;
|
||||
}
|
||||
@ -211,7 +211,6 @@ class PayFastPaymentDriver extends BaseDriver
|
||||
|
||||
return response()->json([], 200);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@ -223,7 +222,6 @@ class PayFastPaymentDriver extends BaseDriver
|
||||
|
||||
return response()->json([], 200);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -233,8 +233,8 @@ class PayPalPPCPPaymentDriver extends BaseDriver
|
||||
/**
|
||||
* Presents the Payment View to the client
|
||||
*
|
||||
* @param mixed $data
|
||||
* @return void
|
||||
* @param array $data
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
*/
|
||||
public function processPaymentView($data)
|
||||
{
|
||||
@ -251,7 +251,6 @@ class PayPalPPCPPaymentDriver extends BaseDriver
|
||||
$data['gateway_type_id'] = $this->gateway_type_id;
|
||||
$data['merchantId'] = $this->company_gateway->getConfigField('merchantId');
|
||||
$data['currency'] = $this->client->currency()->code;
|
||||
// nlog($data['merchantId']);
|
||||
|
||||
return render('gateways.paypal.ppcp.pay', $data);
|
||||
|
||||
@ -279,11 +278,11 @@ class PayPalPPCPPaymentDriver extends BaseDriver
|
||||
"op" => "replace",
|
||||
"path" => "/purchase_units/@reference_id=='default'/shipping/address",
|
||||
"value" => [
|
||||
"address_line_1" => strlen($this->client->shipping_address1) > 1 ? $this->client->shipping_address1 : $this->client->address1,
|
||||
"address_line_1" => strlen($this->client->shipping_address1 ?? '') > 1 ? $this->client->shipping_address1 : $this->client->address1,
|
||||
"address_line_2" => $this->client->shipping_address2,
|
||||
"admin_area_2" => strlen($this->client->shipping_city) > 1 ? $this->client->shipping_city : $this->client->city,
|
||||
"admin_area_1" => strlen($this->client->shipping_state) > 1 ? $this->client->shipping_state : $this->client->state,
|
||||
"postal_code" => strlen($this->client->shipping_postal_code) > 1 ? $this->client->shipping_postal_code : $this->client->postal_code,
|
||||
"admin_area_2" => strlen($this->client->shipping_city ?? '') > 1 ? $this->client->shipping_city : $this->client->city,
|
||||
"admin_area_1" => strlen($this->client->shipping_state ?? '') > 1 ? $this->client->shipping_state : $this->client->state,
|
||||
"postal_code" => strlen($this->client->shipping_postal_code ?? '') > 1 ? $this->client->shipping_postal_code : $this->client->postal_code,
|
||||
"country_code" => $this->client->present()->shipping_country_code(),
|
||||
],
|
||||
]];
|
||||
@ -406,21 +405,32 @@ class PayPalPPCPPaymentDriver extends BaseDriver
|
||||
private function injectPayPalPaymentSource(): array
|
||||
{
|
||||
|
||||
return [
|
||||
$order = [
|
||||
"paypal" => [
|
||||
|
||||
"name" => [
|
||||
"given_name" => $this->client->present()->first_name(),
|
||||
"surname" => $this->client->present()->last_name(),
|
||||
],
|
||||
"email_address" => $this->client->present()->email(),
|
||||
"address" => $this->getBillingAddress(),
|
||||
"experience_context" => [
|
||||
"user_action" => "PAY_NOW"
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
if(
|
||||
strlen($this->client->address1 ?? '') > 2 &&
|
||||
strlen($this->client->city ?? '') > 2 &&
|
||||
strlen($this->client->state ?? '') >= 2 &&
|
||||
strlen($this->client->postal_code ?? '') > 2 &&
|
||||
strlen($this->client->country->iso_3166_2 ?? '') >= 2
|
||||
)
|
||||
{
|
||||
$order["paypal"]["address"] = $this->getBillingAddress();
|
||||
}
|
||||
|
||||
return $order;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -488,8 +498,6 @@ class PayPalPPCPPaymentDriver extends BaseDriver
|
||||
|
||||
$r = $this->gatewayRequest('/v2/checkout/orders', 'post', $order);
|
||||
|
||||
// nlog($r->json());
|
||||
|
||||
return $r->json()['id'];
|
||||
|
||||
}
|
||||
@ -497,14 +505,14 @@ class PayPalPPCPPaymentDriver extends BaseDriver
|
||||
private function getBillingAddress(): array
|
||||
{
|
||||
return
|
||||
[
|
||||
"address_line_1" => $this->client->address1,
|
||||
"address_line_2" => $this->client->address2,
|
||||
"admin_area_2" => $this->client->city,
|
||||
"admin_area_1" => $this->client->state,
|
||||
"postal_code" => $this->client->postal_code,
|
||||
"country_code" => $this->client->country->iso_3166_2,
|
||||
];
|
||||
[
|
||||
"address_line_1" => $this->client->address1,
|
||||
"address_line_2" => $this->client->address2,
|
||||
"admin_area_2" => $this->client->city,
|
||||
"admin_area_1" => $this->client->state,
|
||||
"postal_code" => $this->client->postal_code,
|
||||
"country_code" => $this->client->country->iso_3166_2,
|
||||
];
|
||||
}
|
||||
|
||||
private function getShippingAddress(): ?array
|
||||
@ -513,11 +521,11 @@ class PayPalPPCPPaymentDriver extends BaseDriver
|
||||
[
|
||||
"address" =>
|
||||
[
|
||||
"address_line_1" => strlen($this->client->shipping_address1) > 1 ? $this->client->shipping_address1 : $this->client->address1,
|
||||
"address_line_1" => strlen($this->client->shipping_address1 ?? '') > 1 ? $this->client->shipping_address1 : $this->client->address1,
|
||||
"address_line_2" => $this->client->shipping_address2,
|
||||
"admin_area_2" => strlen($this->client->shipping_city) > 1 ? $this->client->shipping_city : $this->client->city,
|
||||
"admin_area_1" => strlen($this->client->shipping_state) > 1 ? $this->client->shipping_state : $this->client->state,
|
||||
"postal_code" => strlen($this->client->shipping_postal_code) > 1 ? $this->client->shipping_postal_code : $this->client->postal_code,
|
||||
"admin_area_2" => strlen($this->client->shipping_city ?? '') > 1 ? $this->client->shipping_city : $this->client->city,
|
||||
"admin_area_1" => strlen($this->client->shipping_state ?? '') > 1 ? $this->client->shipping_state : $this->client->state,
|
||||
"postal_code" => strlen($this->client->shipping_postal_code ?? '') > 1 ? $this->client->shipping_postal_code : $this->client->postal_code,
|
||||
"country_code" => $this->client->present()->shipping_country_code(),
|
||||
],
|
||||
]
|
||||
|
@ -478,26 +478,55 @@ return render('gateways.paypal.pay', $data);
|
||||
|
||||
}
|
||||
|
||||
return [
|
||||
$order = [
|
||||
"paypal" => [
|
||||
"name" => [
|
||||
"given_name" => $this->client->present()->first_name(),
|
||||
"surname" => $this->client->present()->last_name(),
|
||||
],
|
||||
"email_address" => $this->client->present()->email(),
|
||||
"address" => [
|
||||
"experience_context" => [
|
||||
"user_action" => "PAY_NOW"
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
/** If we have a complete address, add it to the order, otherwise leave it blank! */
|
||||
if(
|
||||
strlen($this->client->shipping_address1 ?? '') > 2 &&
|
||||
strlen($this->client->shipping_city ?? '') > 2 &&
|
||||
strlen($this->client->shipping_state ?? '') >= 2 &&
|
||||
strlen($this->client->shipping_postal_code ?? '') > 2 &&
|
||||
strlen($this->client->shipping_country->iso_3166_2 ?? '') >= 2
|
||||
) {
|
||||
$order['paypal']['address'] = [
|
||||
"address_line_1" => $this->client->shipping_address1,
|
||||
"address_line_2" => $this->client->shipping_address2,
|
||||
"admin_area_2" => $this->client->shipping_city,
|
||||
"admin_area_1" => $this->client->shipping_state,
|
||||
"postal_code" => $this->client->shipping_postal_code,
|
||||
"country_code" => $this->client->present()->shipping_country_code(),
|
||||
];
|
||||
}
|
||||
elseif(
|
||||
strlen($this->client->address1 ?? '') > 2 &&
|
||||
strlen($this->client->city ?? '') > 2 &&
|
||||
strlen($this->client->state ?? '') >= 2 &&
|
||||
strlen($this->client->postal_code ?? '') > 2 &&
|
||||
strlen($this->client->country->iso_3166_2 ?? '') >= 2
|
||||
)
|
||||
{
|
||||
$order['paypal']['address'] = [
|
||||
"address_line_1" => $this->client->address1,
|
||||
"address_line_2" => $this->client->address2,
|
||||
"admin_area_2" => $this->client->city,
|
||||
"admin_area_1" => $this->client->state,
|
||||
"postal_code" => $this->client->postal_code,
|
||||
"country_code" => $this->client->country->iso_3166_2,
|
||||
],
|
||||
"experience_context" => [
|
||||
"user_action" => "PAY_NOW"
|
||||
],
|
||||
],
|
||||
];
|
||||
];
|
||||
}
|
||||
|
||||
return $order;
|
||||
|
||||
}
|
||||
|
||||
@ -521,7 +550,6 @@ return render('gateways.paypal.pay', $data);
|
||||
"custom_id" => $this->payment_hash->hash,
|
||||
"description" => ctrans('texts.invoice_number') . '# ' . $invoice->number,
|
||||
"invoice_id" => $invoice->number,
|
||||
$this->getShippingAddress(),
|
||||
"amount" => [
|
||||
"value" => (string) $data['amount_with_fee'],
|
||||
"currency_code" => $this->client->currency()->code,
|
||||
@ -555,12 +583,8 @@ return render('gateways.paypal.pay', $data);
|
||||
if(isset($data['payment_source']))
|
||||
$order['payment_source'] = $data['payment_source'];
|
||||
|
||||
nlog($order);
|
||||
|
||||
$r = $this->gatewayRequest('/v2/checkout/orders', 'post', $order);
|
||||
|
||||
// nlog($r->json());
|
||||
|
||||
return $r->json()['id'];
|
||||
|
||||
}
|
||||
|
@ -145,7 +145,7 @@ class UpdatePaymentMethods
|
||||
|
||||
public function importBankAccounts($customer, $client)
|
||||
{
|
||||
$sources = $customer->sources;
|
||||
$sources = $customer->sources ?? false;
|
||||
|
||||
if (!$customer || is_null($sources) || !property_exists($sources, 'data')) {
|
||||
return;
|
||||
|
@ -379,4 +379,9 @@ class BaseRepository
|
||||
|
||||
return $model->fresh();
|
||||
}
|
||||
|
||||
public function bulkUpdate(\Illuminate\Database\Eloquent\Builder $model, string $column, mixed $new_value) :void
|
||||
{
|
||||
$model->update([$column => $new_value]);
|
||||
}
|
||||
}
|
||||
|
@ -27,6 +27,10 @@ class TaskRepository extends BaseRepository
|
||||
|
||||
private $completed = true;
|
||||
|
||||
private bool $task_round_up = true;
|
||||
|
||||
private int $task_round_to_nearest = 1;
|
||||
|
||||
/**
|
||||
* Saves the task and its contacts.
|
||||
*
|
||||
@ -44,6 +48,8 @@ class TaskRepository extends BaseRepository
|
||||
$task->fill($data);
|
||||
$task->saveQuietly();
|
||||
|
||||
$this->init($task);
|
||||
|
||||
if ($this->new_task && ! $task->status_id) {
|
||||
$task->status_id = $this->setDefaultStatus($task);
|
||||
}
|
||||
@ -105,6 +111,11 @@ class TaskRepository extends BaseRepository
|
||||
$key_values = array_column($time_log, 0);
|
||||
array_multisort($key_values, SORT_ASC, $time_log);
|
||||
|
||||
foreach($time_log as $key => $value)
|
||||
{
|
||||
$time_log[$key][1] = $this->roundTimeLog($time_log[$key][1]);
|
||||
}
|
||||
|
||||
if (isset($data['action'])) {
|
||||
if ($data['action'] == 'start') {
|
||||
$task->is_running = true;
|
||||
@ -126,8 +137,6 @@ class TaskRepository extends BaseRepository
|
||||
|
||||
$task->time_log = json_encode($time_log);
|
||||
|
||||
|
||||
|
||||
$task->saveQuietly();
|
||||
|
||||
if (array_key_exists('documents', $data)) {
|
||||
@ -243,14 +252,27 @@ class TaskRepository extends BaseRepository
|
||||
return $task;
|
||||
}
|
||||
|
||||
public function roundTimeLog(int $end_time): int
|
||||
{
|
||||
if($this->task_round_to_nearest == 1)
|
||||
return $end_time;
|
||||
|
||||
if($this->task_round_up)
|
||||
return (int)ceil($end_time/$this->task_round_to_nearest)*$this->task_round_to_nearest;
|
||||
|
||||
return (int)floor($end_time/$this->task_round_to_nearest) * $this->task_round_to_nearest;
|
||||
}
|
||||
|
||||
public function stop(Task $task)
|
||||
{
|
||||
$this->init($task);
|
||||
|
||||
$log = json_decode($task->time_log, true);
|
||||
|
||||
$last = end($log);
|
||||
|
||||
if (is_array($last) && $last[1] === 0) {
|
||||
$last[1] = time();
|
||||
$last[1] = $this->roundTimeLog(time());
|
||||
|
||||
array_pop($log);
|
||||
$log = array_merge($log, [$last]);//check at this point, it may be prepending here.
|
||||
@ -275,6 +297,15 @@ class TaskRepository extends BaseRepository
|
||||
return $task;
|
||||
}
|
||||
|
||||
private function init(Task $task): self
|
||||
{
|
||||
|
||||
$this->task_round_up = $task->client ? $task->client->getSetting('task_round_up') : $task->company->getSetting('task_round_up');
|
||||
$this->task_round_to_nearest = $task->client ? $task->client->getSetting('task_round_to_nearest') : $task->company->getSetting('task_round_to_nearest');
|
||||
|
||||
return $this;
|
||||
|
||||
}
|
||||
|
||||
private function trySaving(Task $task)
|
||||
{
|
||||
|
@ -122,7 +122,7 @@ class ApplyPayment
|
||||
|
||||
$this->payment
|
||||
->ledger()
|
||||
->updatePaymentBalance($this->amount_applied * -1);
|
||||
->updatePaymentBalance($this->amount_applied * -1, "ApplyPaymentCredit");
|
||||
|
||||
$this->payment
|
||||
->client
|
||||
@ -137,7 +137,6 @@ class ApplyPayment
|
||||
->updateBalance($this->amount_applied * -1)
|
||||
->updatePaidToDate($this->amount_applied)
|
||||
->updateStatus()
|
||||
// ->deletePdf()
|
||||
->save();
|
||||
|
||||
$this->credit
|
||||
@ -147,7 +146,6 @@ class ApplyPayment
|
||||
event(new InvoiceWasUpdated($this->invoice, $this->invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
|
||||
|
||||
if ((int) $this->invoice->balance == 0) {
|
||||
// $this->invoice->service()->deletePdf();
|
||||
$this->invoice = $this->invoice->fresh();
|
||||
event(new InvoiceWasPaid($this->invoice, $this->payment, $this->payment->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
|
||||
}
|
||||
|
@ -102,7 +102,12 @@ class ZugferdEDokument extends AbstractService
|
||||
$this->xdocument->setDocumentShipToAddress($client->shipping_address1, $client->shipping_address2, "", $client->shipping_postal_code, $client->shipping_city, $client->shipping_country->iso_3166_2, $client->shipping_state);
|
||||
}
|
||||
|
||||
$this->xdocument->addDocumentPaymentMean(68, ctrans("texts.xinvoice_online_payment"));
|
||||
//Payment Means - Switcher
|
||||
if($company->settings->custom_value1 == '42'){
|
||||
$this->xdocument->addDocumentPaymentMean(typecode: 42, payeeIban: $company->settings->custom_value2, payeeAccountName: $company->settings->custom_value4, payeeBic: $company->settings->custom_value3);
|
||||
}
|
||||
else
|
||||
$this->xdocument->addDocumentPaymentMean(68, ctrans("texts.xinvoice_online_payment"));
|
||||
|
||||
if (str_contains($company->getSetting('vat_number'), "/")) {
|
||||
$this->xdocument->addDocumentSellerTaxRegistration("FC", $company->getSetting('vat_number'));
|
||||
|
@ -589,7 +589,7 @@ $this->entityEmailFailed($message);
|
||||
return $this;
|
||||
}
|
||||
|
||||
private function configureSmtpMailer(): void
|
||||
private function configureSmtpMailer()
|
||||
{
|
||||
|
||||
$company = $this->company;
|
||||
@ -602,6 +602,14 @@ $this->entityEmailFailed($message);
|
||||
$smtp_local_domain = strlen($company->smtp_local_domain) > 2 ? $company->smtp_local_domain : null;
|
||||
$smtp_verify_peer = $company->smtp_verify_peer ?? true;
|
||||
|
||||
if(strlen($smtp_host ?? '') <= 1 ||
|
||||
strlen($smtp_username ?? '') <= 1 ||
|
||||
strlen($smtp_password ?? '') <= 1
|
||||
) {
|
||||
$this->email_object->settings->email_sending_method = 'default';
|
||||
return $this->setMailDriver();
|
||||
}
|
||||
|
||||
config([
|
||||
'mail.mailers.smtp' => [
|
||||
'transport' => 'smtp',
|
||||
|
@ -73,7 +73,7 @@ class ApplyPayment extends AbstractService
|
||||
|
||||
$this->payment
|
||||
->ledger()
|
||||
->updatePaymentBalance($amount_paid);
|
||||
->updatePaymentBalance($amount_paid, "ApplyPaymentInvoice");
|
||||
|
||||
$this->invoice
|
||||
->client
|
||||
|
@ -101,7 +101,7 @@ class ApplyPaymentAmount extends AbstractService
|
||||
/* Update Invoice balance */
|
||||
|
||||
$payment->ledger()
|
||||
->updatePaymentBalance($payment->amount * -1);
|
||||
->updatePaymentBalance($payment->amount * -1, "ApplyPaymentInvoice-");
|
||||
|
||||
$this->invoice->service()->workFlow()->save();
|
||||
|
||||
|
@ -213,7 +213,7 @@ class AutoBillInvoice extends AbstractService
|
||||
}
|
||||
|
||||
$payment->ledger()
|
||||
->updatePaymentBalance($amount * -1)
|
||||
->updatePaymentBalance($amount * -1, "AutoBill")
|
||||
->save();
|
||||
|
||||
$this->invoice
|
||||
|
@ -107,7 +107,7 @@ class MarkPaid extends AbstractService
|
||||
->save();
|
||||
|
||||
$payment->ledger()
|
||||
->updatePaymentBalance($this->payable_balance * -1);
|
||||
->updatePaymentBalance($this->payable_balance * -1, "Marked Paid Activity");
|
||||
|
||||
//06-09-2022
|
||||
$this->invoice
|
||||
|
@ -70,7 +70,6 @@ class DeletePayment
|
||||
/** @return $this */
|
||||
private function deletePaymentables()
|
||||
{
|
||||
// $this->payment->paymentables()->update(['deleted_at' => now()]);
|
||||
|
||||
$this->payment->paymentables()
|
||||
->each(function ($pp) {
|
||||
@ -156,7 +155,7 @@ class DeletePayment
|
||||
|
||||
$paymentable_credit->service()
|
||||
->updateBalance($paymentable_credit->pivot->amount * $multiplier * -1)
|
||||
->updatePaidToDate($paymentable_credit->pivot->amount * $multiplier)
|
||||
->updatePaidToDate($paymentable_credit->pivot->amount * $multiplier * -1)
|
||||
->setStatus(Credit::STATUS_SENT)
|
||||
->save();
|
||||
|
||||
|
@ -69,7 +69,7 @@ class PaymentService
|
||||
|
||||
$this->payment
|
||||
->ledger()
|
||||
->updatePaymentBalance($this->payment->amount);
|
||||
->updatePaymentBalance($this->payment->amount, "PaymentService");
|
||||
|
||||
$client->service()
|
||||
->updateBalance($this->payment->amount)
|
||||
|
@ -78,19 +78,18 @@ class UpdateInvoicePayment
|
||||
//caution what if we amount paid was less than partial - we wipe it!
|
||||
$invoice->balance -= $paid_amount;
|
||||
$invoice->paid_to_date += $paid_amount;
|
||||
$invoice->save();
|
||||
$invoice->saveQuietly();
|
||||
|
||||
$invoice_service = $invoice->service()
|
||||
$invoice = $invoice->service()
|
||||
->clearPartial()
|
||||
->updateStatus()
|
||||
->workFlow();
|
||||
->workFlow()
|
||||
->save();
|
||||
|
||||
if ($has_partial) {
|
||||
$invoice_service->checkReminderStatus();
|
||||
$invoice->service()->checkReminderStatus()->save();
|
||||
}
|
||||
|
||||
$invoice = $invoice_service->save();
|
||||
|
||||
if ($invoice->is_proforma) {
|
||||
//keep proforma's hidden
|
||||
if (property_exists($this->payment_hash->data, 'pre_payment') && $this->payment_hash->data->pre_payment == "1") {
|
||||
@ -145,7 +144,7 @@ class UpdateInvoicePayment
|
||||
/* Updates the company ledger */
|
||||
$this->payment
|
||||
->ledger()
|
||||
->updatePaymentBalance($paid_amount * -1);
|
||||
->updatePaymentBalance($paid_amount * -1, "UpdateInvoicePayment");
|
||||
|
||||
$pivot_invoice = $this->payment->invoices->first(function ($inv) use ($paid_invoice) {
|
||||
return $inv->hashed_id == $paid_invoice->invoice_id;
|
||||
|
@ -41,7 +41,7 @@ class CreateInvitations extends AbstractService
|
||||
|
||||
public function run()
|
||||
{
|
||||
$contacts = $this->purchase_order->vendor->contacts()->get();
|
||||
$contacts = $this->purchase_order?->vendor?->contacts()->get();
|
||||
|
||||
if ($contacts->count() == 0) {
|
||||
$this->createBlankContact();
|
||||
|
@ -74,6 +74,7 @@ class ARDetailReport extends BaseExport
|
||||
$t->replace(Ninja::transformTranslations($this->company->settings));
|
||||
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
$this->csv->insertOne([]);
|
||||
$this->csv->insertOne([]);
|
||||
|
@ -70,6 +70,7 @@ class ARSummaryReport extends BaseExport
|
||||
$t->replace(Ninja::transformTranslations($this->company->settings));
|
||||
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
$this->csv->insertOne([]);
|
||||
$this->csv->insertOne([]);
|
||||
|
@ -64,6 +64,7 @@ class ClientBalanceReport extends BaseExport
|
||||
$t->replace(Ninja::transformTranslations($this->company->settings));
|
||||
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
$this->csv->insertOne([]);
|
||||
$this->csv->insertOne([]);
|
||||
|
@ -68,6 +68,7 @@ class ClientSalesReport extends BaseExport
|
||||
$t->replace(Ninja::transformTranslations($this->company->settings));
|
||||
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
$this->csv->insertOne([]);
|
||||
$this->csv->insertOne([]);
|
||||
|
@ -63,6 +63,7 @@ class TaxSummaryReport extends BaseExport
|
||||
$t->replace(Ninja::transformTranslations($this->company->settings));
|
||||
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
$this->csv->insertOne([]);
|
||||
$this->csv->insertOne([]);
|
||||
|
@ -61,6 +61,7 @@ class UserSalesReport extends BaseExport
|
||||
$t->replace(Ninja::transformTranslations($this->company->settings));
|
||||
|
||||
$this->csv = Writer::createFromString();
|
||||
\League\Csv\CharsetConverter::addTo($this->csv, 'UTF-8', 'UTF-8');
|
||||
|
||||
$query = Invoice::query()
|
||||
->withTrashed()
|
||||
|
@ -80,6 +80,7 @@ class CompanyGatewayTransformer extends EntityTransformer
|
||||
'label' => (string) $company_gateway->label ?: '',
|
||||
'token_billing' => (string) $company_gateway->token_billing,
|
||||
'test_mode' => (bool) $company_gateway->isTestMode(),
|
||||
'always_show_required_fields' => (bool) $company_gateway->always_show_required_fields,
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -720,7 +720,7 @@ class HtmlEngine
|
||||
$data['$payment.date'] = ['value' => '', 'label' => ctrans('texts.payment_date')];
|
||||
$data['$payment.number'] = ['value' => '', 'label' => ctrans('texts.payment_number')];
|
||||
$data['$payment.transaction_reference'] = ['value' => '', 'label' => ctrans('texts.transaction_reference')];
|
||||
|
||||
$data['$payment.refunded'] = ['value' => '', 'label' => ctrans('texts.refund')];
|
||||
|
||||
if ($this->entity_string == 'invoice' && $this->entity->net_payments()->exists()) {
|
||||
$payment_list = '<br><br>';
|
||||
@ -742,6 +742,7 @@ class HtmlEngine
|
||||
$data['$payment.date'] = ['value' => $this->formatDate($payment->date, $this->client->date_format()), 'label' => ctrans('texts.payment_date')];
|
||||
$data['$payment.number'] = ['value' => $payment->number, 'label' => ctrans('texts.payment_number')];
|
||||
$data['$payment.transaction_reference'] = ['value' => $payment->transaction_reference, 'label' => ctrans('texts.transaction_reference')];
|
||||
$data['$payment.refunded'] = ['value' => $this->getPaymentMeta($payment), 'label' => ctrans('texts.refund')];
|
||||
|
||||
}
|
||||
|
||||
@ -755,6 +756,35 @@ class HtmlEngine
|
||||
return $data;
|
||||
}
|
||||
|
||||
private function getPaymentMeta(\App\Models\Payment $payment) {
|
||||
|
||||
if(!is_array($payment->refund_meta))
|
||||
return '';
|
||||
|
||||
return
|
||||
collect($payment->refund_meta)
|
||||
->map(function ($refund) use ($payment) {
|
||||
|
||||
$date = \Carbon\Carbon::parse($refund['date'] ?? $payment->date)->addSeconds($payment->client->timezone_offset());
|
||||
$date = $this->translateDate($date, $payment->client->date_format(), $payment->client->locale());
|
||||
$entity = ctrans('texts.invoice');
|
||||
|
||||
$map = [];
|
||||
|
||||
foreach($refund['invoices'] as $refunded_invoice) {
|
||||
$invoice = \App\Models\Invoice::withTrashed()->find($refunded_invoice['invoice_id']);
|
||||
$amount = Number::formatMoney($refunded_invoice['amount'], $payment->client);
|
||||
$notes = ctrans('texts.status_partially_refunded_amount', ['amount' => $amount]);
|
||||
|
||||
array_push($map, "{$date} {$entity} #{$invoice->number} {$notes}\n");
|
||||
|
||||
}
|
||||
|
||||
return $map;
|
||||
|
||||
})->flatten()->implode("\n");
|
||||
|
||||
}
|
||||
/**
|
||||
* Returns a localized string for tax compliance purposes
|
||||
*
|
||||
|
@ -127,6 +127,10 @@ class Statics
|
||||
$data['templates'] = Cache::get('templates');
|
||||
}
|
||||
|
||||
$data['bulk_updates'] = [
|
||||
'client' => \App\Models\Client::$bulk_update_columns,
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
@ -288,6 +288,7 @@ trait GeneratesCounter
|
||||
*/
|
||||
public function getNextProjectNumber(Project $project): string
|
||||
{
|
||||
|
||||
$entity_number = $this->getNextEntityNumber(Project::class, $project->client, false);
|
||||
|
||||
return $this->replaceUserVars($project, $entity_number);
|
||||
|
@ -77,7 +77,6 @@
|
||||
"nordigen/nordigen-php": "^1.1",
|
||||
"nwidart/laravel-modules": "^10.0",
|
||||
"omnipay/paypal": "^3.0",
|
||||
"payfast/payfast-php-sdk": "^1.1",
|
||||
"phpoffice/phpspreadsheet": "^1.29",
|
||||
"pragmarx/google2fa": "^8.0",
|
||||
"predis/predis": "^2",
|
||||
|
259
composer.lock
generated
259
composer.lock
generated
@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "853c952c9b8cc2c562748aaaa293c3ea",
|
||||
"content-hash": "c3572d1d9feb7c78007521d6c07b8f42",
|
||||
"packages": [
|
||||
{
|
||||
"name": "adrienrn/php-mimetyper",
|
||||
@ -1330,16 +1330,16 @@
|
||||
},
|
||||
{
|
||||
"name": "aws/aws-crt-php",
|
||||
"version": "v1.2.4",
|
||||
"version": "v1.2.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/awslabs/aws-crt-php.git",
|
||||
"reference": "eb0c6e4e142224a10b08f49ebf87f32611d162b2"
|
||||
"reference": "0ea1f04ec5aa9f049f97e012d1ed63b76834a31b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/eb0c6e4e142224a10b08f49ebf87f32611d162b2",
|
||||
"reference": "eb0c6e4e142224a10b08f49ebf87f32611d162b2",
|
||||
"url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/0ea1f04ec5aa9f049f97e012d1ed63b76834a31b",
|
||||
"reference": "0ea1f04ec5aa9f049f97e012d1ed63b76834a31b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -1378,22 +1378,22 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/awslabs/aws-crt-php/issues",
|
||||
"source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.4"
|
||||
"source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.5"
|
||||
},
|
||||
"time": "2023-11-08T00:42:13+00:00"
|
||||
"time": "2024-04-19T21:30:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "aws/aws-sdk-php",
|
||||
"version": "3.304.8",
|
||||
"version": "3.305.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||
"reference": "0079eaa0a0eaef2d73d0a4a11389cdfce1d33189"
|
||||
"reference": "fc26a2ebf720e0b75a353d7e8fe206796671e00b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/0079eaa0a0eaef2d73d0a4a11389cdfce1d33189",
|
||||
"reference": "0079eaa0a0eaef2d73d0a4a11389cdfce1d33189",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/fc26a2ebf720e0b75a353d7e8fe206796671e00b",
|
||||
"reference": "fc26a2ebf720e0b75a353d7e8fe206796671e00b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -1473,9 +1473,9 @@
|
||||
"support": {
|
||||
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
||||
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.304.8"
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.305.4"
|
||||
},
|
||||
"time": "2024-04-19T18:13:09+00:00"
|
||||
"time": "2024-04-26T18:06:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "bacon/bacon-qr-code",
|
||||
@ -2289,16 +2289,16 @@
|
||||
},
|
||||
{
|
||||
"name": "doctrine/dbal",
|
||||
"version": "3.8.3",
|
||||
"version": "3.8.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/dbal.git",
|
||||
"reference": "db922ba9436b7b18a23d1653a0b41ff2369ca41c"
|
||||
"reference": "b05e48a745f722801f55408d0dbd8003b403dbbd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/db922ba9436b7b18a23d1653a0b41ff2369ca41c",
|
||||
"reference": "db922ba9436b7b18a23d1653a0b41ff2369ca41c",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/b05e48a745f722801f55408d0dbd8003b403dbbd",
|
||||
"reference": "b05e48a745f722801f55408d0dbd8003b403dbbd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2382,7 +2382,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/dbal/issues",
|
||||
"source": "https://github.com/doctrine/dbal/tree/3.8.3"
|
||||
"source": "https://github.com/doctrine/dbal/tree/3.8.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -2398,7 +2398,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-03-03T15:55:06+00:00"
|
||||
"time": "2024-04-25T07:04:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/deprecations",
|
||||
@ -3473,31 +3473,31 @@
|
||||
},
|
||||
{
|
||||
"name": "google/apiclient",
|
||||
"version": "v2.15.3",
|
||||
"version": "v2.16.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/googleapis/google-api-php-client.git",
|
||||
"reference": "e70273c06d18824de77e114247ae3102f8aec64d"
|
||||
"reference": "017400f609c1fb71ab5ad824c50eabd4c3eaf779"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/e70273c06d18824de77e114247ae3102f8aec64d",
|
||||
"reference": "e70273c06d18824de77e114247ae3102f8aec64d",
|
||||
"url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/017400f609c1fb71ab5ad824c50eabd4c3eaf779",
|
||||
"reference": "017400f609c1fb71ab5ad824c50eabd4c3eaf779",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"firebase/php-jwt": "~6.0",
|
||||
"google/apiclient-services": "~0.200",
|
||||
"google/auth": "^1.33",
|
||||
"google/apiclient-services": "~0.350",
|
||||
"google/auth": "^1.37",
|
||||
"guzzlehttp/guzzle": "^6.5.8||^7.4.5",
|
||||
"guzzlehttp/psr7": "^1.8.4||^2.2.1",
|
||||
"guzzlehttp/psr7": "^1.9.1||^2.2.1",
|
||||
"monolog/monolog": "^2.9||^3.0",
|
||||
"php": "^7.4|^8.0",
|
||||
"phpseclib/phpseclib": "^3.0.34"
|
||||
"phpseclib/phpseclib": "^3.0.36"
|
||||
},
|
||||
"require-dev": {
|
||||
"cache/filesystem-adapter": "^1.1",
|
||||
"composer/composer": "^1.10.22",
|
||||
"composer/composer": "^1.10.23",
|
||||
"phpcompatibility/php-compatibility": "^9.2",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
@ -3536,22 +3536,22 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/googleapis/google-api-php-client/issues",
|
||||
"source": "https://github.com/googleapis/google-api-php-client/tree/v2.15.3"
|
||||
"source": "https://github.com/googleapis/google-api-php-client/tree/v2.16.0"
|
||||
},
|
||||
"time": "2024-01-04T19:15:22+00:00"
|
||||
"time": "2024-04-24T00:59:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "google/apiclient-services",
|
||||
"version": "v0.345.0",
|
||||
"version": "v0.350.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/googleapis/google-api-php-client-services.git",
|
||||
"reference": "a975dae4c06d304b020eda3f53e7c3402b32132d"
|
||||
"reference": "a053f7dd118e46845fcefa9036c5b97b1050dfaa"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/a975dae4c06d304b020eda3f53e7c3402b32132d",
|
||||
"reference": "a975dae4c06d304b020eda3f53e7c3402b32132d",
|
||||
"url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/a053f7dd118e46845fcefa9036c5b97b1050dfaa",
|
||||
"reference": "a053f7dd118e46845fcefa9036c5b97b1050dfaa",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -3580,40 +3580,42 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/googleapis/google-api-php-client-services/issues",
|
||||
"source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.345.0"
|
||||
"source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.350.0"
|
||||
},
|
||||
"time": "2024-04-21T01:02:15+00:00"
|
||||
"time": "2024-04-23T21:58:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "google/auth",
|
||||
"version": "v1.37.1",
|
||||
"version": "v1.38.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/googleapis/google-auth-library-php.git",
|
||||
"reference": "1a7de77b72e6ac60dccf0e6478c4c1005bb0ff46"
|
||||
"reference": "5d0c47368fc644d98d0a6299362d4ce03a0ef250"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/1a7de77b72e6ac60dccf0e6478c4c1005bb0ff46",
|
||||
"reference": "1a7de77b72e6ac60dccf0e6478c4c1005bb0ff46",
|
||||
"url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/5d0c47368fc644d98d0a6299362d4ce03a0ef250",
|
||||
"reference": "5d0c47368fc644d98d0a6299362d4ce03a0ef250",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"firebase/php-jwt": "^6.0",
|
||||
"guzzlehttp/guzzle": "^6.5.8||^7.4.5",
|
||||
"guzzlehttp/guzzle": "^7.4.5",
|
||||
"guzzlehttp/psr7": "^2.4.5",
|
||||
"php": "^7.4||^8.0",
|
||||
"psr/cache": "^1.0||^2.0||^3.0",
|
||||
"php": "^8.0",
|
||||
"psr/cache": "^2.0||^3.0",
|
||||
"psr/http-message": "^1.1||^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"guzzlehttp/promises": "^2.0",
|
||||
"kelvinmo/simplejwt": "0.7.1",
|
||||
"phpseclib/phpseclib": "^3.0",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"phpunit/phpunit": "^9.0.0",
|
||||
"phpseclib/phpseclib": "^3.0.35",
|
||||
"phpspec/prophecy-phpunit": "^2.1",
|
||||
"phpunit/phpunit": "^9.6",
|
||||
"sebastian/comparator": ">=1.2.3",
|
||||
"squizlabs/php_codesniffer": "^3.5"
|
||||
"squizlabs/php_codesniffer": "^3.5",
|
||||
"symfony/process": "^6.0||^7.0",
|
||||
"webmozart/assert": "^1.11"
|
||||
},
|
||||
"suggest": {
|
||||
"phpseclib/phpseclib": "May be used in place of OpenSSL for signing strings or for token management. Please require version ^2."
|
||||
@ -3638,9 +3640,9 @@
|
||||
"support": {
|
||||
"docs": "https://googleapis.github.io/google-auth-library-php/main/",
|
||||
"issues": "https://github.com/googleapis/google-auth-library-php/issues",
|
||||
"source": "https://github.com/googleapis/google-auth-library-php/tree/v1.37.1"
|
||||
"source": "https://github.com/googleapis/google-auth-library-php/tree/v1.38.0"
|
||||
},
|
||||
"time": "2024-04-03T18:41:12+00:00"
|
||||
"time": "2024-04-24T18:36:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "graham-campbell/result-type",
|
||||
@ -5527,16 +5529,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v10.48.8",
|
||||
"version": "v10.48.9",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/framework.git",
|
||||
"reference": "8e9ab6da362f268170fe815127aed5ec7d303697"
|
||||
"reference": "ad758500b47964d022addf119600a1b1b0230733"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/8e9ab6da362f268170fe815127aed5ec7d303697",
|
||||
"reference": "8e9ab6da362f268170fe815127aed5ec7d303697",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/ad758500b47964d022addf119600a1b1b0230733",
|
||||
"reference": "ad758500b47964d022addf119600a1b1b0230733",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -5730,20 +5732,20 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2024-04-16T14:26:04+00:00"
|
||||
"time": "2024-04-23T15:01:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/prompts",
|
||||
"version": "v0.1.19",
|
||||
"version": "v0.1.20",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/prompts.git",
|
||||
"reference": "0ab75ac3434d9f610c5691758a6146a3d1940c18"
|
||||
"reference": "bf9a360c484976692de0f3792f30066f4f4b34a2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/prompts/zipball/0ab75ac3434d9f610c5691758a6146a3d1940c18",
|
||||
"reference": "0ab75ac3434d9f610c5691758a6146a3d1940c18",
|
||||
"url": "https://api.github.com/repos/laravel/prompts/zipball/bf9a360c484976692de0f3792f30066f4f4b34a2",
|
||||
"reference": "bf9a360c484976692de0f3792f30066f4f4b34a2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -5785,9 +5787,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/laravel/prompts/issues",
|
||||
"source": "https://github.com/laravel/prompts/tree/v0.1.19"
|
||||
"source": "https://github.com/laravel/prompts/tree/v0.1.20"
|
||||
},
|
||||
"time": "2024-04-16T14:20:35+00:00"
|
||||
"time": "2024-04-18T00:45:25+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/serializable-closure",
|
||||
@ -5912,16 +5914,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/socialite",
|
||||
"version": "v5.13.0",
|
||||
"version": "v5.13.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/socialite.git",
|
||||
"reference": "a03e9b2f63d8125f61952fe4f5b75d70fd7c8286"
|
||||
"reference": "feed1c1ccfd991bc12af59de4aa24f657d9c5cbe"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/socialite/zipball/a03e9b2f63d8125f61952fe4f5b75d70fd7c8286",
|
||||
"reference": "a03e9b2f63d8125f61952fe4f5b75d70fd7c8286",
|
||||
"url": "https://api.github.com/repos/laravel/socialite/zipball/feed1c1ccfd991bc12af59de4aa24f657d9c5cbe",
|
||||
"reference": "feed1c1ccfd991bc12af59de4aa24f657d9c5cbe",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -5980,7 +5982,7 @@
|
||||
"issues": "https://github.com/laravel/socialite/issues",
|
||||
"source": "https://github.com/laravel/socialite"
|
||||
},
|
||||
"time": "2024-04-15T18:09:46+00:00"
|
||||
"time": "2024-04-24T20:36:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/tinker",
|
||||
@ -7181,16 +7183,16 @@
|
||||
},
|
||||
{
|
||||
"name": "livewire/livewire",
|
||||
"version": "v3.4.10",
|
||||
"version": "v3.4.11",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/livewire/livewire.git",
|
||||
"reference": "6f90e2d7f8e80a97a7406c22a0fbc61ca1256ed9"
|
||||
"reference": "8a78d0c3ae9b4c96a2d8932ea4ac0dc782325de0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/livewire/livewire/zipball/6f90e2d7f8e80a97a7406c22a0fbc61ca1256ed9",
|
||||
"reference": "6f90e2d7f8e80a97a7406c22a0fbc61ca1256ed9",
|
||||
"url": "https://api.github.com/repos/livewire/livewire/zipball/8a78d0c3ae9b4c96a2d8932ea4ac0dc782325de0",
|
||||
"reference": "8a78d0c3ae9b4c96a2d8932ea4ac0dc782325de0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -7245,7 +7247,7 @@
|
||||
"description": "A front-end framework for Laravel.",
|
||||
"support": {
|
||||
"issues": "https://github.com/livewire/livewire/issues",
|
||||
"source": "https://github.com/livewire/livewire/tree/v3.4.10"
|
||||
"source": "https://github.com/livewire/livewire/tree/v3.4.11"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -7253,7 +7255,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-04-02T14:22:50+00:00"
|
||||
"time": "2024-04-24T12:14:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "maennchen/zipstream-php",
|
||||
@ -8809,16 +8811,16 @@
|
||||
},
|
||||
{
|
||||
"name": "paragonie/sodium_compat",
|
||||
"version": "v1.21.0",
|
||||
"version": "v1.21.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/paragonie/sodium_compat.git",
|
||||
"reference": "102bcf2312dc21c16c7c93fd44a6d2a2e1343e26"
|
||||
"reference": "bb312875dcdd20680419564fe42ba1d9564b9e37"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/102bcf2312dc21c16c7c93fd44a6d2a2e1343e26",
|
||||
"reference": "102bcf2312dc21c16c7c93fd44a6d2a2e1343e26",
|
||||
"url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/bb312875dcdd20680419564fe42ba1d9564b9e37",
|
||||
"reference": "bb312875dcdd20680419564fe42ba1d9564b9e37",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -8889,63 +8891,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/paragonie/sodium_compat/issues",
|
||||
"source": "https://github.com/paragonie/sodium_compat/tree/v1.21.0"
|
||||
"source": "https://github.com/paragonie/sodium_compat/tree/v1.21.1"
|
||||
},
|
||||
"time": "2024-04-19T09:18:28+00:00"
|
||||
},
|
||||
{
|
||||
"name": "payfast/payfast-php-sdk",
|
||||
"version": "v1.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Payfast/payfast-php-sdk.git",
|
||||
"reference": "015efcd2df3e580e023dae6e16c943328d38bb78"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Payfast/payfast-php-sdk/zipball/015efcd2df3e580e023dae6e16c943328d38bb78",
|
||||
"reference": "015efcd2df3e580e023dae6e16c943328d38bb78",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"guzzlehttp/guzzle": ">=6.0.0",
|
||||
"php": ">=8.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^1.10",
|
||||
"phpunit/phpunit": "^9",
|
||||
"squizlabs/php_codesniffer": "^3.8"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PayFast\\": "lib/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Payfast",
|
||||
"email": "support@payfast.help"
|
||||
}
|
||||
],
|
||||
"description": "Payfast PHP Library",
|
||||
"keywords": [
|
||||
"api",
|
||||
"onsite",
|
||||
"payfast",
|
||||
"php"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/Payfast/payfast-php-sdk/issues",
|
||||
"source": "https://github.com/Payfast/payfast-php-sdk/tree/v1.1.6"
|
||||
},
|
||||
"abandoned": true,
|
||||
"time": "2024-02-28T09:54:10+00:00"
|
||||
"time": "2024-04-22T22:05:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-http/client-common",
|
||||
@ -11868,20 +11816,20 @@
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-data",
|
||||
"version": "3.11.2",
|
||||
"version": "3.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/laravel-data.git",
|
||||
"reference": "21b4d115a502dfd96ab2b11c62746325e9a28924"
|
||||
"reference": "d44e04839407bc32b029be59ba80090a5f720e91"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-data/zipball/21b4d115a502dfd96ab2b11c62746325e9a28924",
|
||||
"reference": "21b4d115a502dfd96ab2b11c62746325e9a28924",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-data/zipball/d44e04839407bc32b029be59ba80090a5f720e91",
|
||||
"reference": "d44e04839407bc32b029be59ba80090a5f720e91",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"illuminate/contracts": "^9.30|^10.0",
|
||||
"illuminate/contracts": "^9.30|^10.0|^11.0",
|
||||
"php": "^8.1",
|
||||
"phpdocumentor/type-resolver": "^1.5",
|
||||
"spatie/laravel-package-tools": "^1.9.0",
|
||||
@ -11941,7 +11889,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/spatie/laravel-data/issues",
|
||||
"source": "https://github.com/spatie/laravel-data/tree/3.11.2"
|
||||
"source": "https://github.com/spatie/laravel-data/tree/3.12.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -11949,7 +11897,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-02-22T08:34:10+00:00"
|
||||
"time": "2024-04-24T09:27:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-package-tools",
|
||||
@ -18129,16 +18077,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "10.5.19",
|
||||
"version": "10.5.20",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "c726f0de022368f6ed103e452a765d3304a996a4"
|
||||
"reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c726f0de022368f6ed103e452a765d3304a996a4",
|
||||
"reference": "c726f0de022368f6ed103e452a765d3304a996a4",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3",
|
||||
"reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -18210,7 +18158,7 @@
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.19"
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -18226,7 +18174,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-04-17T14:06:18+00:00"
|
||||
"time": "2024-04-24T06:32:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/cli-parser",
|
||||
@ -19146,16 +19094,16 @@
|
||||
},
|
||||
{
|
||||
"name": "spatie/backtrace",
|
||||
"version": "1.5.3",
|
||||
"version": "1.6.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/backtrace.git",
|
||||
"reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab"
|
||||
"reference": "8373b9d51638292e3bfd736a9c19a654111b4a23"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/backtrace/zipball/483f76a82964a0431aa836b6ed0edde0c248e3ab",
|
||||
"reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab",
|
||||
"url": "https://api.github.com/repos/spatie/backtrace/zipball/8373b9d51638292e3bfd736a9c19a654111b4a23",
|
||||
"reference": "8373b9d51638292e3bfd736a9c19a654111b4a23",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -19163,6 +19111,7 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-json": "*",
|
||||
"laravel/serializable-closure": "^1.3",
|
||||
"phpunit/phpunit": "^9.3",
|
||||
"spatie/phpunit-snapshot-assertions": "^4.2",
|
||||
"symfony/var-dumper": "^5.1"
|
||||
@ -19192,7 +19141,7 @@
|
||||
"spatie"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/spatie/backtrace/tree/1.5.3"
|
||||
"source": "https://github.com/spatie/backtrace/tree/1.6.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -19204,7 +19153,7 @@
|
||||
"type": "other"
|
||||
}
|
||||
],
|
||||
"time": "2023-06-28T12:59:17+00:00"
|
||||
"time": "2024-04-24T13:22:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/flare-client-php",
|
||||
@ -19277,16 +19226,16 @@
|
||||
},
|
||||
{
|
||||
"name": "spatie/ignition",
|
||||
"version": "1.13.2",
|
||||
"version": "1.14.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/ignition.git",
|
||||
"reference": "952798e239d9969e4e694b124c2cc222798dbb28"
|
||||
"reference": "80385994caed328f6f9c9952926932e65b9b774c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/ignition/zipball/952798e239d9969e4e694b124c2cc222798dbb28",
|
||||
"reference": "952798e239d9969e4e694b124c2cc222798dbb28",
|
||||
"url": "https://api.github.com/repos/spatie/ignition/zipball/80385994caed328f6f9c9952926932e65b9b774c",
|
||||
"reference": "80385994caed328f6f9c9952926932e65b9b774c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -19356,7 +19305,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-04-16T08:49:17+00:00"
|
||||
"time": "2024-04-26T08:45:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-ignition",
|
||||
|
@ -17,8 +17,8 @@ return [
|
||||
'require_https' => env('REQUIRE_HTTPS', true),
|
||||
'app_url' => rtrim(env('APP_URL', ''), '/'),
|
||||
'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
|
||||
'app_version' => env('APP_VERSION', '5.8.51'),
|
||||
'app_tag' => env('APP_TAG', '5.8.51'),
|
||||
'app_version' => env('APP_VERSION', '5.8.52'),
|
||||
'app_tag' => env('APP_TAG', '5.8.52'),
|
||||
'minimum_client_version' => '5.0.16',
|
||||
'terms_version' => '1.0.1',
|
||||
'api_secret' => env('API_SECRET', false),
|
||||
|
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
||||
Schema::table('company_gateways', function (Blueprint $table) {
|
||||
$table->boolean('always_show_required_fields')->default(true);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
};
|
@ -0,0 +1,148 @@
|
||||
<?php
|
||||
|
||||
use App\Models\Timezone;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
|
||||
private array $timezones = [
|
||||
'Pacific/Midway' => 'Pacific/Midway',
|
||||
'US/Samoa' => 'Pacific/Pago_Pago',
|
||||
'US/Hawaii' => 'Pacific/Honolulu',
|
||||
'US/Alaska' => 'America/Anchorage',
|
||||
'US/Pacific' => 'America/Los_Angeles',
|
||||
'America/Tijuana' => 'America/Tijuana',
|
||||
'US/Arizona' => 'America/Phoenix',
|
||||
'US/Mountain' => 'America/Denver',
|
||||
'America/Chihuahua' => 'America/Chihuahua',
|
||||
'America/Mazatlan' => 'America/Mazatlan',
|
||||
'America/Mexico_City' => 'America/Mexico_City',
|
||||
'America/Monterrey' => 'America/Monterrey',
|
||||
'Canada/Saskatchewan' => 'America/Regina',
|
||||
'US/Central' => 'America/Chicago',
|
||||
'US/Eastern' => 'America/New_York',
|
||||
'US/East-Indiana' => 'America/Indiana/Indianapolis',
|
||||
'America/Bogota' => 'America/Bogota',
|
||||
'America/Lima' => 'America/Lima',
|
||||
'America/Caracas' => 'America/Caracas',
|
||||
'Canada/Atlantic' => 'America/Halifax',
|
||||
'America/La_Paz' => 'America/La_Paz',
|
||||
'America/Santiago' => 'America/Santiago',
|
||||
'Canada/Newfoundland' => 'America/St_Johns',
|
||||
'America/Buenos_Aires' => 'America/Argentina/Buenos_Aires',
|
||||
'America/Godthab' => 'America/Godthab',
|
||||
'America/Sao_Paulo' => 'America/Sao_Paulo',
|
||||
'Atlantic/Stanley' => 'Atlantic/Stanley',
|
||||
'Atlantic/Azores' => 'Atlantic/Azores',
|
||||
'Atlantic/Cape_Verde' => 'Atlantic/Cape_Verde',
|
||||
'Africa/Casablanca' => 'Africa/Casablanca',
|
||||
'Europe/Dublin' => 'Europe/Dublin',
|
||||
'Europe/Lisbon' => 'Europe/Lisbon',
|
||||
'Europe/London' => 'Europe/London',
|
||||
'Africa/Monrovia' => 'Africa/Monrovia',
|
||||
'Europe/Amsterdam' => 'Europe/Amsterdam',
|
||||
'Europe/Belgrade' => 'Europe/Belgrade',
|
||||
'Europe/Berlin' => 'Europe/Berlin',
|
||||
'Europe/Bratislava' => 'Europe/Bratislava',
|
||||
'Europe/Brussels' => 'Europe/Brussels',
|
||||
'Europe/Budapest' => 'Europe/Budapest',
|
||||
'Europe/Copenhagen' => 'Europe/Copenhagen',
|
||||
'Europe/Ljubljana' => 'Europe/Ljubljana',
|
||||
'Europe/Madrid' => 'Europe/Madrid',
|
||||
'Europe/Paris' => 'Europe/Paris',
|
||||
'Europe/Prague' => 'Europe/Prague',
|
||||
'Europe/Rome' => 'Europe/Rome',
|
||||
'Europe/Sarajevo' => 'Europe/Sarajevo',
|
||||
'Europe/Skopje' => 'Europe/Skopje',
|
||||
'Europe/Stockholm' => 'Europe/Stockholm',
|
||||
'Europe/Vienna' => 'Europe/Vienna',
|
||||
'Europe/Warsaw' => 'Europe/Warsaw',
|
||||
'Europe/Zagreb' => 'Europe/Zagreb',
|
||||
'Europe/Athens' => 'Europe/Athens',
|
||||
'Europe/Bucharest' => 'Europe/Bucharest',
|
||||
'Africa/Cairo' => 'Africa/Cairo',
|
||||
'Africa/Harare' => 'Africa/Harare',
|
||||
'Europe/Helsinki' => 'Europe/Helsinki',
|
||||
'Asia/Jerusalem' => 'Asia/Jerusalem',
|
||||
'Europe/Kiev' => 'Europe/Kiev',
|
||||
'Europe/Minsk' => 'Europe/Minsk',
|
||||
'Europe/Riga' => 'Europe/Riga',
|
||||
'Europe/Sofia' => 'Europe/Sofia',
|
||||
'Europe/Tallinn' => 'Europe/Tallinn',
|
||||
'Europe/Vilnius' => 'Europe/Vilnius',
|
||||
'Europe/Istanbul' => 'Europe/Istanbul',
|
||||
'Asia/Baghdad' => 'Asia/Baghdad',
|
||||
'Asia/Kuwait' => 'Asia/Kuwait',
|
||||
'Africa/Nairobi' => 'Africa/Nairobi',
|
||||
'Asia/Riyadh' => 'Asia/Riyadh',
|
||||
'Asia/Tehran' => 'Asia/Tehran',
|
||||
'Europe/Moscow' => 'Europe/Moscow',
|
||||
'Asia/Baku' => 'Asia/Baku',
|
||||
'Europe/Volgograd' => 'Europe/Volgograd',
|
||||
'Asia/Muscat' => 'Asia/Muscat',
|
||||
'Asia/Tbilisi' => 'Asia/Tbilisi',
|
||||
'Asia/Yerevan' => 'Asia/Yerevan',
|
||||
'Asia/Kabul' => 'Asia/Kabul',
|
||||
'Asia/Karachi' => 'Asia/Karachi',
|
||||
'Asia/Tashkent' => 'Asia/Tashkent',
|
||||
'Asia/Kolkata' => 'Asia/Kolkata',
|
||||
'Asia/Kathmandu' => 'Asia/Kathmandu',
|
||||
'Asia/Yekaterinburg' => 'Asia/Yekaterinburg',
|
||||
'Asia/Almaty' => 'Asia/Almaty',
|
||||
'Asia/Dhaka' => 'Asia/Dhaka',
|
||||
'Asia/Novosibirsk' => 'Asia/Novosibirsk',
|
||||
'Asia/Bangkok' => 'Asia/Bangkok',
|
||||
'Asia/Ho_Chi_Minh' => 'Asia/Ho_Chi_Minh',
|
||||
'Asia/Jakarta' => 'Asia/Jakarta',
|
||||
'Asia/Krasnoyarsk' => 'Asia/Krasnoyarsk',
|
||||
'Asia/Chongqing' => 'Asia/Chongqing',
|
||||
'Asia/Hong_Kong' => 'Asia/Hong_Kong',
|
||||
'Asia/Kuala_Lumpur' => 'Asia/Kuala_Lumpur',
|
||||
'Australia/Perth' => 'Australia/Perth',
|
||||
'Asia/Singapore' => 'Asia/Singapore',
|
||||
'Asia/Taipei' => 'Asia/Taipei',
|
||||
'Asia/Ulaanbaatar' => 'Asia/Ulaanbaatar',
|
||||
'Asia/Urumqi' => 'Asia/Urumqi',
|
||||
'Asia/Irkutsk' => 'Asia/Irkutsk',
|
||||
'Asia/Seoul' => 'Asia/Seoul',
|
||||
'Asia/Tokyo' => 'Asia/Tokyo',
|
||||
'Australia/Adelaide' => 'Australia/Adelaide',
|
||||
'Australia/Darwin' => 'Australia/Darwin',
|
||||
'Asia/Yakutsk' => 'Asia/Yakutsk',
|
||||
'Australia/Brisbane' => 'Australia/Brisbane',
|
||||
'Australia/Canberra' => 'Australia/Sydney',
|
||||
'Pacific/Guam' => 'Pacific/Guam',
|
||||
'Australia/Hobart' => 'Australia/Hobart',
|
||||
'Australia/Melbourne' => 'Australia/Melbourne',
|
||||
'Pacific/Port_Moresby' => 'Pacific/Port_Moresby',
|
||||
'Australia/Sydney' => 'Australia/Sydney',
|
||||
'Asia/Vladivostok' => 'Asia/Vladivostok',
|
||||
'Asia/Magadan' => 'Asia/Magadan',
|
||||
'Pacific/Auckland' => 'Pacific/Auckland',
|
||||
'Pacific/Fiji' => 'Pacific/Fiji'
|
||||
];
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
foreach($this->timezones as $key => $value){
|
||||
|
||||
Timezone::where('name', $key)->update(['name' => $value]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
};
|
@ -2178,7 +2178,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'مفتاح Mailgun الخاص',
|
||||
'brevo_domain' => 'مجال بريفو',
|
||||
'brevo_private_key' => 'مفتاح بريفو الخاص',
|
||||
'send_test_email' => 'إرسال بريد إلكتروني تجريبي',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'حدد تسمية',
|
||||
'label' => 'ملصق',
|
||||
'service' => 'خدمة',
|
||||
@ -4151,7 +4151,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'عملية شراء لمرة واحدة',
|
||||
'recurring_purchases' => 'مشتريات متكررة',
|
||||
'you_might_be_interested_in_following' => 'قد ترغب في الاطلاع على التالي',
|
||||
'quotes_with_status_sent_can_be_approved' => 'فقط عروض الاسعار المرسلة يمكن التاكيد عليها',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'لاتوجد عروض اسعار للتنزيل',
|
||||
'copyright' => 'حقوق النشر',
|
||||
'user_created_user' => ':user انشاء حساب للمستخدم :created_user في :time',
|
||||
@ -5277,6 +5277,7 @@ $lang = array(
|
||||
'rappen_rounding' => 'تقريب رابين',
|
||||
'rappen_rounding_help' => 'جولة المبلغ إلى 5 سنتات',
|
||||
'assign_group' => 'تعيين المجموعة',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -5296,6 +5296,8 @@ $lang = array(
|
||||
'flutter_web_warning' => 'We recommend using the new web app or the desktop app for the best performance',
|
||||
'rappen_rounding' => 'Rappen Rounding',
|
||||
'rappen_rounding_help' => 'Round amount to 5 cents',
|
||||
'always_show_required_fields' => 'Always display required fields',
|
||||
'always_show_required_fields_help' => 'Will show the form regards if the fields are filled or not'
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2197,7 +2197,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'Mailgun Private Key',
|
||||
'brevo_domain' => 'Domini Brevo',
|
||||
'brevo_private_key' => 'Clau privada Brevo',
|
||||
'send_test_email' => 'Send test email',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Select Label',
|
||||
'label' => 'Label',
|
||||
'service' => 'Service',
|
||||
@ -4170,7 +4170,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'One time purchases',
|
||||
'recurring_purchases' => 'Recurring purchases',
|
||||
'you_might_be_interested_in_following' => 'You might be interested in the following',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'No quotes available for download.',
|
||||
'copyright' => 'Copyright',
|
||||
'user_created_user' => ':user created :created_user at :time',
|
||||
@ -5296,6 +5296,7 @@ $lang = array(
|
||||
'rappen_rounding' => 'Arrodoniment de Rappen',
|
||||
'rappen_rounding_help' => 'Import rodó a 5 cèntims',
|
||||
'assign_group' => 'Assigna un grup',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2198,7 +2198,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'Mailgun Private Key',
|
||||
'brevo_domain' => 'Brevo Domain',
|
||||
'brevo_private_key' => 'Brevo Private Key',
|
||||
'send_test_email' => 'Odeslat zkušební e-mail',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Vybrat štítek',
|
||||
'label' => 'Štítek',
|
||||
'service' => 'Služba',
|
||||
@ -4171,7 +4171,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'Jednorázové nákupy',
|
||||
'recurring_purchases' => 'Pravidelné nákupy',
|
||||
'you_might_be_interested_in_following' => 'Mohlo by vás zajímat',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'No quotes available for download.',
|
||||
'copyright' => 'Copyright',
|
||||
'user_created_user' => ':user vytvořil uživatgele :created_user v :time',
|
||||
@ -5296,6 +5296,8 @@ $lang = array(
|
||||
'flutter_web_warning' => 'We recommend using the new web app or the desktop app for the best performance',
|
||||
'rappen_rounding' => 'Rappen Rounding',
|
||||
'rappen_rounding_help' => 'Round amount to 5 cents',
|
||||
'assign_group' => 'Assign group',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2196,7 +2196,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'Mailgun privat nøgle',
|
||||
'brevo_domain' => 'Brevo domæne',
|
||||
'brevo_private_key' => 'Brevo privat nøgle',
|
||||
'send_test_email' => 'Send test e-mail',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Vælg Label',
|
||||
'label' => 'Etiket',
|
||||
'service' => 'Service',
|
||||
@ -4169,7 +4169,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'Engangskøb',
|
||||
'recurring_purchases' => 'Gentagen indkøb',
|
||||
'you_might_be_interested_in_following' => 'Du kan være interesseret i følgende',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Kun citater med "Sendt"-status kan være Godkendt .',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'Ingen tilbud tilgængelige for download.',
|
||||
'copyright' => 'ophavsret',
|
||||
'user_created_user' => ':user oprettet :created_user på :time',
|
||||
@ -5295,6 +5295,7 @@ $lang = array(
|
||||
'rappen_rounding' => 'Rappen afrunding',
|
||||
'rappen_rounding_help' => 'Rund Beløb til 5 øre',
|
||||
'assign_group' => 'Tildel gruppe',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2198,7 +2198,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese
|
||||
'mailgun_private_key' => 'Mailgun privater Schlüssel',
|
||||
'brevo_domain' => 'Brevo-Domäne',
|
||||
'brevo_private_key' => 'Privater Brevo-Schlüssel',
|
||||
'send_test_email' => 'Test-E-Mail verschicken',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Bezeichnung wählen',
|
||||
'label' => 'Label',
|
||||
'service' => 'Leistung',
|
||||
@ -4172,7 +4172,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
|
||||
'one_time_purchases' => 'Einmalzahlungen',
|
||||
'recurring_purchases' => 'Wiederkehrende Käufe',
|
||||
'you_might_be_interested_in_following' => 'Das könnte Sie interessieren',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Nur Angebote mit dem Status "Gesendet" können genehmigt werden.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'Keine Angebote zum Herunterladen verfügbar.',
|
||||
'copyright' => 'Copyright',
|
||||
'user_created_user' => ':user erstellt :created_user zu :time',
|
||||
@ -5300,6 +5300,7 @@ Leistungsempfängers',
|
||||
'rappen_rounding' => 'Rappenrundung',
|
||||
'rappen_rounding_help' => 'Betrag auf 5 Cent aufrunden',
|
||||
'assign_group' => 'Gruppe zuweisen',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -199,7 +199,7 @@ $lang = array(
|
||||
'removed_logo' => 'Επιτυχής διαγραφή λογότυπου',
|
||||
'sent_message' => 'Επιτυχής αποστολή μηνύματος',
|
||||
'invoice_error' => 'Παρακαλώ σιγουρευτείτε ότι επιλέξατε ένα πελάτη και διορθώσατε τυχόν σφάλματα',
|
||||
'limit_clients' => 'Sorry, this will exceed the limit of :count clients. Please upgrade to a paid plan.',
|
||||
'limit_clients' => 'You\'ve hit the :count client limit on Free accounts. Congrats on your success!.',
|
||||
'payment_error' => 'Προέκυψε ένα σφάλμα κατά τη διαδικασία της πληρωμής. Παρακαλώ, δοκιμάστε ξανά σε λίγο.',
|
||||
'registration_required' => 'Registration Required',
|
||||
'confirmation_required' => 'Παρακαλώ επιβεβαιώστε τη διεύθυνση email, :link για να ξαναστείλετε το email επιβεβαίωσης.',
|
||||
@ -2197,7 +2197,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'Ιδιωτικό Κλειδί Mailgun',
|
||||
'brevo_domain' => 'Brevo Domain',
|
||||
'brevo_private_key' => 'Brevo Private Key',
|
||||
'send_test_email' => 'Αποστολή δοκιμαστικού email',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Επιλογή Ετικέτας',
|
||||
'label' => 'Ετικέτα',
|
||||
'service' => 'Υπηρεσία',
|
||||
@ -4170,7 +4170,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'One time purchases',
|
||||
'recurring_purchases' => 'Recurring purchases',
|
||||
'you_might_be_interested_in_following' => 'You might be interested in the following',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'No quotes available for download.',
|
||||
'copyright' => 'Copyright',
|
||||
'user_created_user' => ':user created :created_user at :time',
|
||||
@ -5277,8 +5277,6 @@ $lang = array(
|
||||
'accept_payments_online' => 'Accept Payments Online',
|
||||
'all_payment_gateways' => 'View all payment gateways',
|
||||
'product_cost' => 'Product cost',
|
||||
'enable_rappen_roudning' => 'Enable Rappen Rounding',
|
||||
'enable_rappen_rounding_help' => 'Rounds totals to nearest 5',
|
||||
'duration_words' => 'Duration in words',
|
||||
'upcoming_recurring_invoices' => 'Upcoming Recurring Invoices',
|
||||
'shipping_country_id' => 'Shipping Country',
|
||||
@ -5292,6 +5290,13 @@ $lang = array(
|
||||
'e_credit' => 'E-Credit',
|
||||
'e_purchase_order' => 'E-Purchase Order',
|
||||
'e_quote_type' => 'E-Quote Type',
|
||||
'unlock_unlimited_clients' => 'Please upgrade to unlock unlimited clients!',
|
||||
'download_e_purchase_order' => 'Download E-Purchase Order',
|
||||
'flutter_web_warning' => 'We recommend using the new web app or the desktop app for the best performance',
|
||||
'rappen_rounding' => 'Rappen Rounding',
|
||||
'rappen_rounding_help' => 'Round amount to 5 cents',
|
||||
'assign_group' => 'Assign group',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -4029,7 +4029,7 @@ $lang = array(
|
||||
'user_detached' => 'User detached from company',
|
||||
'create_webhook_failure' => 'Failed to create Webhook',
|
||||
'payment_message_extended' => 'Thank you for your payment of :amount for :invoice',
|
||||
'online_payments_minimum_note' => 'Note: Online payments are supported only if amount is bigger than $1 or currency equivalent.',
|
||||
'online_payments_minimum_note' => 'Note: Online payments are supported only if amount is larger than $1 or currency equivalent.',
|
||||
'payment_token_not_found' => 'Payment token not found, please try again. If an issue still persist, try with another payment method',
|
||||
'vendor_address1' => 'Vendor Street',
|
||||
'vendor_address2' => 'Vendor Apt/Suite',
|
||||
@ -5297,6 +5297,9 @@ $lang = array(
|
||||
'rappen_rounding_help' => 'Round amount to 5 cents',
|
||||
'assign_group' => 'Assign group',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
'local_domain_help' => 'EHLO domain (optional)',
|
||||
'port_help' => 'ie. 25,587,465',
|
||||
'host_help' => 'ie. smtp.gmail.com',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2196,7 +2196,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'Llave Privada de Mailgun',
|
||||
'brevo_domain' => 'Dominio Brevo',
|
||||
'brevo_private_key' => 'Clave privada de Brevo',
|
||||
'send_test_email' => 'Enviar correo de prueba',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Seleccionar Etiqueta',
|
||||
'label' => 'Etiqueta',
|
||||
'service' => 'Servicio',
|
||||
@ -4169,7 +4169,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'Compras únicas',
|
||||
'recurring_purchases' => 'compras recurrentes',
|
||||
'you_might_be_interested_in_following' => 'Usted podría estar interesado en lo siguiente',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Solo se pueden aprobar cotizaciones con estado "Enviado".',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'No hay cotizaciones disponibles para descargar.',
|
||||
'copyright' => 'Derechos de autor',
|
||||
'user_created_user' => ':user creó :created_user en :time',
|
||||
@ -5295,6 +5295,7 @@ $lang = array(
|
||||
'rappen_rounding' => 'Redondeo de rappen',
|
||||
'rappen_rounding_help' => 'Monto redondo a 5 centavos',
|
||||
'assign_group' => 'Asignar grupo',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2193,7 +2193,7 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c
|
||||
'mailgun_private_key' => 'Mailgun Private Key',
|
||||
'brevo_domain' => 'Dominio Brevo',
|
||||
'brevo_private_key' => 'Clave privada de Brevo',
|
||||
'send_test_email' => 'Enviar email de prueba',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Seleccionar etiqueta',
|
||||
'label' => 'Etiqueta',
|
||||
'service' => 'Servicio',
|
||||
@ -4166,7 +4166,7 @@ Una vez que tenga los montos, vuelva a esta página de métodos de pago y haga c
|
||||
'one_time_purchases' => 'Compras únicas',
|
||||
'recurring_purchases' => 'Pagos recurrentes',
|
||||
'you_might_be_interested_in_following' => 'Puede que te interese lo siguiente',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Solo se pueden aprobar presupuestos con el estado "Enviado".',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'No hay presupuestos disponibles para descargar.',
|
||||
'copyright' => 'Derechos de autor',
|
||||
'user_created_user' => ':user creó :created_user a las :time',
|
||||
@ -5292,6 +5292,8 @@ De lo contrario, este campo deberá dejarse en blanco.',
|
||||
'flutter_web_warning' => 'Recomendamos utilizar la nueva aplicación web o la aplicación de escritorio para obtener el mejor rendimiento.',
|
||||
'rappen_rounding' => 'Redondeo de rappen',
|
||||
'rappen_rounding_help' => 'Cantidad redonda a 5 centimos',
|
||||
'assign_group' => 'Assign group',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -200,7 +200,7 @@ $lang = array(
|
||||
'removed_logo' => 'Logo edukalt eemaldatud',
|
||||
'sent_message' => 'Sõnum edukalt saadetud',
|
||||
'invoice_error' => 'Valige kindlasti klient ja parandage kõik vead',
|
||||
'limit_clients' => 'Sorry, this will exceed the limit of :count clients. Please upgrade to a paid plan.',
|
||||
'limit_clients' => 'You\'ve hit the :count client limit on Free accounts. Congrats on your success!.',
|
||||
'payment_error' => 'Teie makse töötlemisel ilmnes viga. Palun proovi hiljem uuesti.',
|
||||
'registration_required' => 'Registration Required',
|
||||
'confirmation_required' => 'Palun kinnitage oma meiliaadress, :link kinnitusmeili uuesti saatmiseks.',
|
||||
@ -2197,7 +2197,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'Mailgun Privaatvõti',
|
||||
'brevo_domain' => 'Brevo Domain',
|
||||
'brevo_private_key' => 'Brevo Private Key',
|
||||
'send_test_email' => 'Saada test e-kiri',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Vali Silt',
|
||||
'label' => 'Silt',
|
||||
'service' => 'Teenus',
|
||||
@ -4170,7 +4170,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'Ühekordsed ostud',
|
||||
'recurring_purchases' => 'Korduvad ostud',
|
||||
'you_might_be_interested_in_following' => 'Teid võib huvitada järgmine',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Kinnitada saab ainult hinnapakkumisi, mille olek on "Saadetud".',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'Hinapakkumist pole võimalik alla laadida',
|
||||
'copyright' => 'Autoriõigus',
|
||||
'user_created_user' => ':user lõi kasutaja :created_user kell :time',
|
||||
@ -5277,8 +5277,6 @@ $lang = array(
|
||||
'accept_payments_online' => 'Accept Payments Online',
|
||||
'all_payment_gateways' => 'View all payment gateways',
|
||||
'product_cost' => 'Product cost',
|
||||
'enable_rappen_roudning' => 'Enable Rappen Rounding',
|
||||
'enable_rappen_rounding_help' => 'Rounds totals to nearest 5',
|
||||
'duration_words' => 'Duration in words',
|
||||
'upcoming_recurring_invoices' => 'Upcoming Recurring Invoices',
|
||||
'shipping_country_id' => 'Shipping Country',
|
||||
@ -5292,6 +5290,13 @@ $lang = array(
|
||||
'e_credit' => 'E-Credit',
|
||||
'e_purchase_order' => 'E-Purchase Order',
|
||||
'e_quote_type' => 'E-Quote Type',
|
||||
'unlock_unlimited_clients' => 'Please upgrade to unlock unlimited clients!',
|
||||
'download_e_purchase_order' => 'Download E-Purchase Order',
|
||||
'flutter_web_warning' => 'We recommend using the new web app or the desktop app for the best performance',
|
||||
'rappen_rounding' => 'Rappen Rounding',
|
||||
'rappen_rounding_help' => 'Round amount to 5 cents',
|
||||
'assign_group' => 'Assign group',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -199,7 +199,7 @@ $lang = array(
|
||||
'removed_logo' => 'Successfully removed logo',
|
||||
'sent_message' => 'Successfully sent message',
|
||||
'invoice_error' => 'Please make sure to select a client and correct any errors',
|
||||
'limit_clients' => 'Sorry, this will exceed the limit of :count clients. Please upgrade to a paid plan.',
|
||||
'limit_clients' => 'You\'ve hit the :count client limit on Free accounts. Congrats on your success!.',
|
||||
'payment_error' => 'There was an error processing your payment. Please try again later.',
|
||||
'registration_required' => 'Registration Required',
|
||||
'confirmation_required' => 'Please confirm your email address, :link to resend the confirmation email.',
|
||||
@ -2197,7 +2197,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'Mailgun Private Key',
|
||||
'brevo_domain' => 'Brevo Domain',
|
||||
'brevo_private_key' => 'Brevo Private Key',
|
||||
'send_test_email' => 'Send test email',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Select Label',
|
||||
'label' => 'Label',
|
||||
'service' => 'Service',
|
||||
@ -4170,7 +4170,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'One time purchases',
|
||||
'recurring_purchases' => 'Recurring purchases',
|
||||
'you_might_be_interested_in_following' => 'You might be interested in the following',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'No quotes available for download.',
|
||||
'copyright' => 'Copyright',
|
||||
'user_created_user' => ':user created :created_user at :time',
|
||||
@ -5277,8 +5277,6 @@ $lang = array(
|
||||
'accept_payments_online' => 'Accept Payments Online',
|
||||
'all_payment_gateways' => 'View all payment gateways',
|
||||
'product_cost' => 'Product cost',
|
||||
'enable_rappen_roudning' => 'Enable Rappen Rounding',
|
||||
'enable_rappen_rounding_help' => 'Rounds totals to nearest 5',
|
||||
'duration_words' => 'Duration in words',
|
||||
'upcoming_recurring_invoices' => 'Upcoming Recurring Invoices',
|
||||
'shipping_country_id' => 'Shipping Country',
|
||||
@ -5292,6 +5290,13 @@ $lang = array(
|
||||
'e_credit' => 'E-Credit',
|
||||
'e_purchase_order' => 'E-Purchase Order',
|
||||
'e_quote_type' => 'E-Quote Type',
|
||||
'unlock_unlimited_clients' => 'Please upgrade to unlock unlimited clients!',
|
||||
'download_e_purchase_order' => 'Download E-Purchase Order',
|
||||
'flutter_web_warning' => 'We recommend using the new web app or the desktop app for the best performance',
|
||||
'rappen_rounding' => 'Rappen Rounding',
|
||||
'rappen_rounding_help' => 'Round amount to 5 cents',
|
||||
'assign_group' => 'Assign group',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2197,7 +2197,7 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta
|
||||
'mailgun_private_key' => 'Mailgun Private Key',
|
||||
'brevo_domain' => 'Brevo Domain',
|
||||
'brevo_private_key' => 'Brevo Private Key',
|
||||
'send_test_email' => 'lähetä testisähköposti',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Valitse kenttä',
|
||||
'label' => 'Label',
|
||||
'service' => 'Service',
|
||||
@ -4170,7 +4170,7 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta
|
||||
'one_time_purchases' => 'One time purchases',
|
||||
'recurring_purchases' => 'Recurring purchases',
|
||||
'you_might_be_interested_in_following' => 'You might be interested in the following',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'No quotes available for download.',
|
||||
'copyright' => 'Copyright',
|
||||
'user_created_user' => ':user created :created_user at :time',
|
||||
@ -5295,6 +5295,8 @@ Kun saat summat, palaa tälle maksutapasivulle ja klikkaa "Saata loppuun todenta
|
||||
'flutter_web_warning' => 'We recommend using the new web app or the desktop app for the best performance',
|
||||
'rappen_rounding' => 'Rappen Rounding',
|
||||
'rappen_rounding_help' => 'Round amount to 5 cents',
|
||||
'assign_group' => 'Assign group',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2197,7 +2197,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
||||
'mailgun_private_key' => 'Mailgun Private Key',
|
||||
'brevo_domain' => 'Domaine de Brevo',
|
||||
'brevo_private_key' => 'Clé privée Brevo',
|
||||
'send_test_email' => 'Envoyer un courriel de test',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Sélectionnez le label',
|
||||
'label' => 'Intitulé',
|
||||
'service' => 'Service',
|
||||
@ -4170,7 +4170,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
||||
'one_time_purchases' => 'Achat une fois seulement',
|
||||
'recurring_purchases' => 'Achat récurrent',
|
||||
'you_might_be_interested_in_following' => 'Ceci pourrait vous intéresser',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Seuls les devis avec le statut "Envoyé" peuvent être approuvés.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'Aucun devis disponible au téléchargement.',
|
||||
'copyright' => 'droits d\'auteur',
|
||||
'user_created_user' => ':user a créé :created_user à :time',
|
||||
@ -5296,6 +5296,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
||||
'rappen_rounding' => 'Arrondi de Rappen',
|
||||
'rappen_rounding_help' => 'Montant rond à 5 centimes',
|
||||
'assign_group' => 'Attribuer un groupe',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -4167,7 +4167,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
||||
'one_time_purchases' => 'Achat définitif',
|
||||
'recurring_purchases' => 'Achat récurrent',
|
||||
'you_might_be_interested_in_following' => 'Ceci pourrait vous intéresser',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Seules les soumissions avec l\'état "Envoyée" peuvent être approuvées',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Seules les soumission avec l\'état "Envoyée" peuvent être approuvées. Les soumission expires ne peuvent pas être approuvées.',
|
||||
'no_quotes_available_for_download' => 'Aucune soumission disponible pour le téléchargement.',
|
||||
'copyright' => 'Droits d\'auteur',
|
||||
'user_created_user' => ':user a créé :created_user à :time',
|
||||
@ -5293,6 +5293,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
||||
'rappen_rounding' => 'Arrondir au cents',
|
||||
'rappen_rounding_help' => 'Arrondir au 5 cents',
|
||||
'assign_group' => 'Assigner un groupe',
|
||||
'paypal_advanced_cards' => 'Paiements avancés pour carte',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2194,7 +2194,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
||||
'mailgun_private_key' => 'Clé privée Mailgun',
|
||||
'brevo_domain' => 'Domaine de Brevo',
|
||||
'brevo_private_key' => 'Clé privée Brevo',
|
||||
'send_test_email' => 'Envoyer un courriel test',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Sélectionnez le libellé',
|
||||
'label' => 'Libellé',
|
||||
'service' => 'Service',
|
||||
@ -4167,7 +4167,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
||||
'one_time_purchases' => 'Achat définitif',
|
||||
'recurring_purchases' => 'Achat récurrent',
|
||||
'you_might_be_interested_in_following' => 'Ceci pourrait vous intéresser',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Seulement les soumissions avant la mention envoyé peuvent être approuvé.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'Aucune offre disponible pour le téléchargement.',
|
||||
'copyright' => 'Droits d\'auteur',
|
||||
'user_created_user' => ':user a créé :created_user à :time',
|
||||
@ -5293,6 +5293,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
||||
'rappen_rounding' => 'Arrondi de Rappen',
|
||||
'rappen_rounding_help' => 'Montant rond à 5 centimes',
|
||||
'assign_group' => 'Attribuer un groupe',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2195,7 +2195,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'Mailgun Private Key',
|
||||
'brevo_domain' => 'Brevo Domain',
|
||||
'brevo_private_key' => 'מפתח פרטי Brevo',
|
||||
'send_test_email' => 'Send test email',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Select Label',
|
||||
'label' => 'Label',
|
||||
'service' => 'Service',
|
||||
@ -4168,7 +4168,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'רכישות חד פעמיות',
|
||||
'recurring_purchases' => 'רכישות חוזרות',
|
||||
'you_might_be_interested_in_following' => 'אולי יעניין אותך בדברים הבאים',
|
||||
'quotes_with_status_sent_can_be_approved' => 'ניתן לאשר רק ציטוטים בסטטוס "נשלח".',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'אין הצעות מחיר זמינות להורדה.',
|
||||
'copyright' => 'זכויות יוצרים',
|
||||
'user_created_user' => ':user נוצר :created_user ב-:time',
|
||||
@ -5294,6 +5294,7 @@ $lang = array(
|
||||
'rappen_rounding' => 'עיגול רפן',
|
||||
'rappen_rounding_help' => 'סכום עגול עד 5 סנט',
|
||||
'assign_group' => 'הקצה קבוצה',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -199,7 +199,7 @@ $lang = array(
|
||||
'removed_logo' => 'Logo je uspješno uklonjen',
|
||||
'sent_message' => 'Poruka je uspješno poslana',
|
||||
'invoice_error' => 'Molimo provjerite da odaberete klijenta i korigirate greške',
|
||||
'limit_clients' => 'Sorry, this will exceed the limit of :count clients. Please upgrade to a paid plan.',
|
||||
'limit_clients' => 'You\'ve hit the :count client limit on Free accounts. Congrats on your success!.',
|
||||
'payment_error' => 'Došlo je do greške pri procesuiranju vaše uplate. Molimo pokušajte kasnije.',
|
||||
'registration_required' => 'Registration Required',
|
||||
'confirmation_required' => 'Please confirm your email address, :link to resend the confirmation email.',
|
||||
@ -2198,7 +2198,7 @@ Nevažeći kontakt email',
|
||||
'mailgun_private_key' => 'Mailgun Private Key',
|
||||
'brevo_domain' => 'Brevo Domain',
|
||||
'brevo_private_key' => 'Brevo Private Key',
|
||||
'send_test_email' => 'Send test email',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Select Label',
|
||||
'label' => 'Label',
|
||||
'service' => 'Service',
|
||||
@ -4171,7 +4171,7 @@ Nevažeći kontakt email',
|
||||
'one_time_purchases' => 'One time purchases',
|
||||
'recurring_purchases' => 'Recurring purchases',
|
||||
'you_might_be_interested_in_following' => 'You might be interested in the following',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'No quotes available for download.',
|
||||
'copyright' => 'Copyright',
|
||||
'user_created_user' => ':user created :created_user at :time',
|
||||
@ -5278,8 +5278,6 @@ Nevažeći kontakt email',
|
||||
'accept_payments_online' => 'Accept Payments Online',
|
||||
'all_payment_gateways' => 'View all payment gateways',
|
||||
'product_cost' => 'Product cost',
|
||||
'enable_rappen_roudning' => 'Enable Rappen Rounding',
|
||||
'enable_rappen_rounding_help' => 'Rounds totals to nearest 5',
|
||||
'duration_words' => 'Duration in words',
|
||||
'upcoming_recurring_invoices' => 'Upcoming Recurring Invoices',
|
||||
'shipping_country_id' => 'Shipping Country',
|
||||
@ -5293,6 +5291,13 @@ Nevažeći kontakt email',
|
||||
'e_credit' => 'E-Credit',
|
||||
'e_purchase_order' => 'E-Purchase Order',
|
||||
'e_quote_type' => 'E-Quote Type',
|
||||
'unlock_unlimited_clients' => 'Please upgrade to unlock unlimited clients!',
|
||||
'download_e_purchase_order' => 'Download E-Purchase Order',
|
||||
'flutter_web_warning' => 'We recommend using the new web app or the desktop app for the best performance',
|
||||
'rappen_rounding' => 'Rappen Rounding',
|
||||
'rappen_rounding_help' => 'Round amount to 5 cents',
|
||||
'assign_group' => 'Assign group',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2181,7 +2181,7 @@ adva :date',
|
||||
'mailgun_private_key' => 'Mailgun privát kulcs',
|
||||
'brevo_domain' => 'Brevo Domain',
|
||||
'brevo_private_key' => 'Brevo privát kulcs',
|
||||
'send_test_email' => 'Teszt e-mail küldése',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Címke kiválasztása',
|
||||
'label' => 'Címke',
|
||||
'service' => 'Szolgáltatás',
|
||||
@ -4154,7 +4154,7 @@ adva :date',
|
||||
'one_time_purchases' => 'Egyszeri vásárlások',
|
||||
'recurring_purchases' => 'Ismétlődő vásárlások',
|
||||
'you_might_be_interested_in_following' => 'Lehet, hogy érdekli a következő',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Az elküldött státuszú idézetek jóváhagyhatók',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'Nincs letölthető idézet',
|
||||
'copyright' => 'Szerzői jog',
|
||||
'user_created_user' => 'Felhasználó létrehozott felhasználót',
|
||||
@ -5280,6 +5280,7 @@ adva :date',
|
||||
'rappen_rounding' => 'Rappen kerekítés',
|
||||
'rappen_rounding_help' => 'Kerek összeg 5 cent',
|
||||
'assign_group' => 'Csoport hozzárendelése',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2188,7 +2188,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'Chiave privata Mailgun',
|
||||
'brevo_domain' => 'Dominio Brevo',
|
||||
'brevo_private_key' => 'Chiave privata Brevo',
|
||||
'send_test_email' => 'Invia email di test',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Seleziona etichetta',
|
||||
'label' => 'Etichetta',
|
||||
'service' => 'Servizio',
|
||||
@ -4161,7 +4161,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'Acquisti singoli',
|
||||
'recurring_purchases' => 'Acquisti ricorrenti',
|
||||
'you_might_be_interested_in_following' => 'Potresti essere interessato a quanto segue',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Solo i preventivi in stato "inviato" possono essere approvati.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'Nessuna citazione disponibile per il download.',
|
||||
'copyright' => 'Copyright',
|
||||
'user_created_user' => ':user creato :created_user a :time',
|
||||
@ -5287,6 +5287,7 @@ $lang = array(
|
||||
'rappen_rounding' => 'Arrotondamento rapido',
|
||||
'rappen_rounding_help' => 'Ammontare tondo a 5 centesimi',
|
||||
'assign_group' => 'Assegna gruppo',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2177,7 +2177,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'សោឯកជន Mailgun',
|
||||
'brevo_domain' => 'ដែន Brevo',
|
||||
'brevo_private_key' => 'សោឯកជន Brevo',
|
||||
'send_test_email' => 'ផ្ញើអ៊ីមែលសាកល្បង',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'ជ្រើសរើសស្លាក',
|
||||
'label' => 'ស្លាកសញ្ញា',
|
||||
'service' => 'សេវាកម្ម',
|
||||
@ -4150,7 +4150,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'ការទិញតែម្តង',
|
||||
'recurring_purchases' => 'ការទិញដដែលៗ',
|
||||
'you_might_be_interested_in_following' => 'អ្នកប្រហែលជាចាប់អារម្មណ៍នឹងចំណុចខាងក្រោម',
|
||||
'quotes_with_status_sent_can_be_approved' => 'មានតែសម្រង់ដែលមានស្ថានភាព "បានផ្ញើ" ប៉ុណ្ណោះដែលអាចយល់ព្រមបាន។',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'មិនមានសម្រង់សម្រាប់ទាញយកទេ។',
|
||||
'copyright' => 'រក្សាសិទ្ធិ',
|
||||
'user_created_user' => ':user បានបង្កើត :created_user នៅ :time',
|
||||
@ -5276,6 +5276,7 @@ $lang = array(
|
||||
'rappen_rounding' => 'Rappen Rounding',
|
||||
'rappen_rounding_help' => 'ចំនួនទឹកប្រាក់ជុំដល់ 5 សេន',
|
||||
'assign_group' => 'ចាត់តាំងក្រុម',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -2197,7 +2197,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'ກະແຈສ່ວນຕົວຂອງ Mailgun',
|
||||
'brevo_domain' => 'ໂດເມນ Brevo',
|
||||
'brevo_private_key' => 'ກະແຈສ່ວນຕົວ Brevo',
|
||||
'send_test_email' => 'ສົ່ງອີເມວທົດສອບ',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'ເລືອກປ້າຍກຳກັບ',
|
||||
'label' => 'ປ້າຍກຳກັບ',
|
||||
'service' => 'ບໍລິການ',
|
||||
@ -4170,7 +4170,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'ຊື້ຄັ້ງດຽວ',
|
||||
'recurring_purchases' => 'ການຊື້ຊໍ້າ',
|
||||
'you_might_be_interested_in_following' => 'ເຈົ້າອາດຈະສົນໃຈສິ່ງຕໍ່ໄປນີ້',
|
||||
'quotes_with_status_sent_can_be_approved' => 'ພຽງແຕ່ວົງຢືມທີ່ມີສະຖານະ "ສົ່ງ" ສາມາດອະນຸມັດໄດ້.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'ບໍ່ມີວົງຢືມທີ່ສາມາດດາວໂຫລດໄດ້.',
|
||||
'copyright' => 'ລິຂະສິດ',
|
||||
'user_created_user' => ':ຜູ້ໃຊ້ສ້າງ :created_user at :time',
|
||||
@ -5296,6 +5296,7 @@ $lang = array(
|
||||
'rappen_rounding' => 'Rappen Rounding',
|
||||
'rappen_rounding_help' => 'ຈໍານວນຮອບເປັນ 5 ເຊັນ',
|
||||
'assign_group' => 'ກຳນົດກຸ່ມ',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -199,7 +199,7 @@ $lang = array(
|
||||
'removed_logo' => 'Veiksmīgi noņemts logotips',
|
||||
'sent_message' => 'Veiksmīgi nosūtīts ziņojums',
|
||||
'invoice_error' => 'Please make sure to select a client and correct any errors',
|
||||
'limit_clients' => 'Sorry, this will exceed the limit of :count clients. Please upgrade to a paid plan.',
|
||||
'limit_clients' => 'You\'ve hit the :count client limit on Free accounts. Congrats on your success!.',
|
||||
'payment_error' => 'There was an error processing your payment. Please try again later.',
|
||||
'registration_required' => 'Registration Required',
|
||||
'confirmation_required' => 'Please confirm your email address, :link to resend the confirmation email.',
|
||||
@ -2197,7 +2197,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'Mailgun Private Key',
|
||||
'brevo_domain' => 'Brevo Domain',
|
||||
'brevo_private_key' => 'Brevo Private Key',
|
||||
'send_test_email' => 'Send test email',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Select Label',
|
||||
'label' => 'Label',
|
||||
'service' => 'Serviss',
|
||||
@ -4170,7 +4170,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'One time purchases',
|
||||
'recurring_purchases' => 'Recurring purchases',
|
||||
'you_might_be_interested_in_following' => 'You might be interested in the following',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'No quotes available for download.',
|
||||
'copyright' => 'Copyright',
|
||||
'user_created_user' => ':user created :created_user at :time',
|
||||
@ -5277,8 +5277,6 @@ $lang = array(
|
||||
'accept_payments_online' => 'Accept Payments Online',
|
||||
'all_payment_gateways' => 'View all payment gateways',
|
||||
'product_cost' => 'Product cost',
|
||||
'enable_rappen_roudning' => 'Enable Rappen Rounding',
|
||||
'enable_rappen_rounding_help' => 'Rounds totals to nearest 5',
|
||||
'duration_words' => 'Duration in words',
|
||||
'upcoming_recurring_invoices' => 'Upcoming Recurring Invoices',
|
||||
'shipping_country_id' => 'Shipping Country',
|
||||
@ -5292,6 +5290,13 @@ $lang = array(
|
||||
'e_credit' => 'E-Credit',
|
||||
'e_purchase_order' => 'E-Purchase Order',
|
||||
'e_quote_type' => 'E-Quote Type',
|
||||
'unlock_unlimited_clients' => 'Please upgrade to unlock unlimited clients!',
|
||||
'download_e_purchase_order' => 'Download E-Purchase Order',
|
||||
'flutter_web_warning' => 'We recommend using the new web app or the desktop app for the best performance',
|
||||
'rappen_rounding' => 'Rappen Rounding',
|
||||
'rappen_rounding_help' => 'Round amount to 5 cents',
|
||||
'assign_group' => 'Assign group',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -200,7 +200,7 @@ $lang = array(
|
||||
'removed_logo' => 'Успешно отстранување на лого',
|
||||
'sent_message' => 'Успешно пратена порака',
|
||||
'invoice_error' => 'Ве молиме одберете клиент и поправете можни грешки',
|
||||
'limit_clients' => 'Sorry, this will exceed the limit of :count clients. Please upgrade to a paid plan.',
|
||||
'limit_clients' => 'You\'ve hit the :count client limit on Free accounts. Congrats on your success!.',
|
||||
'payment_error' => 'Има грешка при процесирањето на плаќањето. Ве молиме обидете се повторно подоцна.',
|
||||
'registration_required' => 'Registration Required',
|
||||
'confirmation_required' => 'Ве молиме потврдете ја Вашата адреса за е-пошта, :link за повторно испраќање на е-пошта за потврда.',
|
||||
@ -2198,7 +2198,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'Mailgun приватен клуч',
|
||||
'brevo_domain' => 'Brevo Domain',
|
||||
'brevo_private_key' => 'Brevo Private Key',
|
||||
'send_test_email' => 'Прати тест е-пошта',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Избери назнака',
|
||||
'label' => 'Назнака',
|
||||
'service' => 'Услуга',
|
||||
@ -4171,7 +4171,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'One time purchases',
|
||||
'recurring_purchases' => 'Recurring purchases',
|
||||
'you_might_be_interested_in_following' => 'You might be interested in the following',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'No quotes available for download.',
|
||||
'copyright' => 'Copyright',
|
||||
'user_created_user' => ':user created :created_user at :time',
|
||||
@ -5278,8 +5278,6 @@ $lang = array(
|
||||
'accept_payments_online' => 'Accept Payments Online',
|
||||
'all_payment_gateways' => 'View all payment gateways',
|
||||
'product_cost' => 'Product cost',
|
||||
'enable_rappen_roudning' => 'Enable Rappen Rounding',
|
||||
'enable_rappen_rounding_help' => 'Rounds totals to nearest 5',
|
||||
'duration_words' => 'Duration in words',
|
||||
'upcoming_recurring_invoices' => 'Upcoming Recurring Invoices',
|
||||
'shipping_country_id' => 'Shipping Country',
|
||||
@ -5293,6 +5291,13 @@ $lang = array(
|
||||
'e_credit' => 'E-Credit',
|
||||
'e_purchase_order' => 'E-Purchase Order',
|
||||
'e_quote_type' => 'E-Quote Type',
|
||||
'unlock_unlimited_clients' => 'Please upgrade to unlock unlimited clients!',
|
||||
'download_e_purchase_order' => 'Download E-Purchase Order',
|
||||
'flutter_web_warning' => 'We recommend using the new web app or the desktop app for the best performance',
|
||||
'rappen_rounding' => 'Rappen Rounding',
|
||||
'rappen_rounding_help' => 'Round amount to 5 cents',
|
||||
'assign_group' => 'Assign group',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -199,7 +199,7 @@ $lang = array(
|
||||
'removed_logo' => 'Logoen ble fjernet',
|
||||
'sent_message' => 'Melding ble sendt',
|
||||
'invoice_error' => 'Vennligst sørg for å velge en kunde og rette eventuelle feil',
|
||||
'limit_clients' => 'Sorry, this will exceed the limit of :count clients. Please upgrade to a paid plan.',
|
||||
'limit_clients' => 'You\'ve hit the :count client limit on Free accounts. Congrats on your success!.',
|
||||
'payment_error' => 'Det oppstod en feil under din betaling. Vennligst prøv igjen senere.',
|
||||
'registration_required' => 'Registration Required',
|
||||
'confirmation_required' => 'Vennligst bekreft e-postadressen din, :link for å sende bekreftelses-e-posten på nytt.',
|
||||
@ -2197,7 +2197,7 @@ $lang = array(
|
||||
'mailgun_private_key' => 'Mailgun Privat Nøkkel',
|
||||
'brevo_domain' => 'Brevo Domain',
|
||||
'brevo_private_key' => 'Brevo Private Key',
|
||||
'send_test_email' => 'Send test-e-post',
|
||||
'send_test_email' => 'Send Test Email',
|
||||
'select_label' => 'Select Label',
|
||||
'label' => 'Label',
|
||||
'service' => 'Service',
|
||||
@ -4170,7 +4170,7 @@ $lang = array(
|
||||
'one_time_purchases' => 'One time purchases',
|
||||
'recurring_purchases' => 'Recurring purchases',
|
||||
'you_might_be_interested_in_following' => 'You might be interested in the following',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved.',
|
||||
'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved. Expired quotes cannot be approved.',
|
||||
'no_quotes_available_for_download' => 'No quotes available for download.',
|
||||
'copyright' => 'Copyright',
|
||||
'user_created_user' => ':user created :created_user at :time',
|
||||
@ -5277,8 +5277,6 @@ $lang = array(
|
||||
'accept_payments_online' => 'Accept Payments Online',
|
||||
'all_payment_gateways' => 'View all payment gateways',
|
||||
'product_cost' => 'Product cost',
|
||||
'enable_rappen_roudning' => 'Enable Rappen Rounding',
|
||||
'enable_rappen_rounding_help' => 'Rounds totals to nearest 5',
|
||||
'duration_words' => 'Duration in words',
|
||||
'upcoming_recurring_invoices' => 'Upcoming Recurring Invoices',
|
||||
'shipping_country_id' => 'Shipping Country',
|
||||
@ -5292,6 +5290,13 @@ $lang = array(
|
||||
'e_credit' => 'E-Credit',
|
||||
'e_purchase_order' => 'E-Purchase Order',
|
||||
'e_quote_type' => 'E-Quote Type',
|
||||
'unlock_unlimited_clients' => 'Please upgrade to unlock unlimited clients!',
|
||||
'download_e_purchase_order' => 'Download E-Purchase Order',
|
||||
'flutter_web_warning' => 'We recommend using the new web app or the desktop app for the best performance',
|
||||
'rappen_rounding' => 'Rappen Rounding',
|
||||
'rappen_rounding_help' => 'Round amount to 5 cents',
|
||||
'assign_group' => 'Assign group',
|
||||
'paypal_advanced_cards' => 'Advanced Card Payments',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user