diff --git a/app/DataMapper/CompanySettings.php b/app/DataMapper/CompanySettings.php index edb8b0090816..1a9b7a56b6c2 100644 --- a/app/DataMapper/CompanySettings.php +++ b/app/DataMapper/CompanySettings.php @@ -164,8 +164,8 @@ class CompanySettings extends BaseSettings 'show_accept_quote_terms' => 'false', 'show_accept_invoice_terms' => 'false', 'timezone_id' => 'string', - 'date_format' => 'string', - 'datetime_format' => 'string', + 'date_format_id' => 'string', + 'datetime_format_id' => 'string', 'military_time' => 'bool', 'start_of_week' => 'string', 'financial_year_start' => 'string', @@ -266,9 +266,9 @@ class CompanySettings extends BaseSettings $data->timezone_id = (string)config('ninja.i18n.timezone_id'); $data->language_id = (string)config('ninja.i18n.language_id'); $data->payment_terms = (string)config('ninja.i18n.payment_terms'); - $data->datetime_format = (string)config('ninja.i18n.datetime_format'); + $data->datetime_format_id = (string)config('ninja.i18n.datetime_format_id'); $data->military_time = (bool )config('ninja.i18n.military_time'); - $data->date_format = (string)config('ninja.i18n.date_format'); + $data->date_format_id = (string)config('ninja.i18n.date_format_id'); $data->start_of_week = (int) config('ninja.i18n.start_of_week'); $data->financial_year_start = (int)config('ninja.i18n.financial_year_start'); $data->translations = (object) []; diff --git a/app/Factory/InvoiceToRecurringInvoiceFactory.php b/app/Factory/InvoiceToRecurringInvoiceFactory.php index 3f778f900f40..64d8346da661 100644 --- a/app/Factory/InvoiceToRecurringInvoiceFactory.php +++ b/app/Factory/InvoiceToRecurringInvoiceFactory.php @@ -32,7 +32,7 @@ class InvoiceToRecurringInvoiceFactory $recurring_invoice->terms = $invoice->terms; $recurring_invoice->public_notes = $invoice->public_notes; $recurring_invoice->private_notes = $invoice->private_notes; - $recurring_invoice->invoice_date = date_create()->format(config('ninja.date_format')); + $recurring_invoice->invoice_date = date_create()->format($invoice->client->date_format()); $recurring_invoice->due_date = $invoice->due_date; //todo calculate based on terms $recurring_invoice->is_deleted = $invoice->is_deleted; $recurring_invoice->line_items = $invoice->line_items; diff --git a/app/Factory/RecurringInvoiceToInvoiceFactory.php b/app/Factory/RecurringInvoiceToInvoiceFactory.php index cf4d8ad11a5b..98bd63ec0ae1 100644 --- a/app/Factory/RecurringInvoiceToInvoiceFactory.php +++ b/app/Factory/RecurringInvoiceToInvoiceFactory.php @@ -30,7 +30,7 @@ class recurring_invoiceToInvoiceFactory $invoice->terms = $recurring_invoice->terms; $invoice->public_notes = $recurring_invoice->public_notes; $invoice->private_notes = $recurring_invoice->private_notes; - $invoice->invoice_date = date_create()->format(config('ninja.date_format')); + $invoice->invoice_date = date_create()->format($client->date_format()); $invoice->due_date = $recurring_invoice->due_date; //todo calculate based on terms $invoice->is_deleted = $recurring_invoice->is_deleted; $invoice->line_items = $recurring_invoice->line_items; diff --git a/app/Jobs/Invoice/ApplyPaymentToInvoice.php b/app/Jobs/Invoice/ApplyPaymentToInvoice.php index 3d3cb4b56b94..9f4609b0aa73 100644 --- a/app/Jobs/Invoice/ApplyPaymentToInvoice.php +++ b/app/Jobs/Invoice/ApplyPaymentToInvoice.php @@ -86,7 +86,7 @@ class ApplyPaymentToInvoice implements ShouldQueue if(!$this->invoice->due_date) - $this->invoice->due_date = Carbon::now()->addDays(PaymentTerm::find($this->invoice->settings->payment_terms)->num_days)->format(config('ninja.date_format')); + $this->invoice->due_date = Carbon::now()->addDays(PaymentTerm::find($this->invoice->settings->payment_terms)->num_days)->format($client->date_format()); } diff --git a/app/Models/Client.php b/app/Models/Client.php index 14de710080bb..1035334baae8 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -18,6 +18,8 @@ use App\Models\Company; use App\Models\CompanyGateway; use App\Models\Country; use App\Models\Currency; +use App\Models\DateFormat; +use App\Models\DatetimeFormat; use App\Models\Filterable; use App\Models\GatewayType; use App\Models\GroupSetting; @@ -151,13 +153,13 @@ class Client extends BaseModel } public function date_format() - { - return $this->getSetting('date_format'); + { + return DateFormat::find($this->getSetting('date_format_id'))->format; } public function datetime_format() { - return $this->getSetting('datetime_format'); + return DatetimeFormat::find($this->getSetting('datetime_format_id'))->format; } public function currency() diff --git a/app/Utils/Traits/GeneratesCounter.php b/app/Utils/Traits/GeneratesCounter.php index 02414e2280c5..6ba75277e00d 100644 --- a/app/Utils/Traits/GeneratesCounter.php +++ b/app/Utils/Traits/GeneratesCounter.php @@ -308,7 +308,7 @@ trait GeneratesCounter } $settings = $client->company->settings; - $settings->reset_counter_date = $reset_date->format(config('ninja.date_format')); + $settings->reset_counter_date = $reset_date->format($client->date_format()); $settings->invoice_number_counter = 1; $settings->quote_number_counter = 1; $settings->credit_number_counter = 1; diff --git a/app/Utils/Traits/MakesHash.php b/app/Utils/Traits/MakesHash.php index 9c4c6766cb5d..867e8a0a81da 100644 --- a/app/Utils/Traits/MakesHash.php +++ b/app/Utils/Traits/MakesHash.php @@ -46,14 +46,14 @@ trait MakesHash */ public function getDbCode($db) : string { - $hashids = new Hashids('', 15); + $hashids = new Hashids('', 10); return $hashids->encode( str_replace( MultiDB::DB_PREFIX, "", $db ) ); } public function encodePrimaryKey($value) : string { - $hashids = new Hashids('', 15); + $hashids = new Hashids('', 10); return $hashids->encode($value); } @@ -61,7 +61,7 @@ trait MakesHash public function decodePrimaryKey($value) : string { try{ - $hashids = new Hashids('', 15); + $hashids = new Hashids('', 10); $decoded_array = $hashids->decode($value); diff --git a/tests/MockAccountData.php b/tests/MockAccountData.php index 6624b31283f3..da28a24722a9 100644 --- a/tests/MockAccountData.php +++ b/tests/MockAccountData.php @@ -105,40 +105,40 @@ trait MockAccountData UpdateCompanyLedgerWithInvoice::dispatchNow($this->invoice, $this->invoice->amount); $recurring_invoice = InvoiceToRecurringInvoiceFactory::create($this->invoice); - $recurring_invoice->next_send_date = Carbon::now()->format(config('ninja.date_time_format')); + $recurring_invoice->next_send_date = Carbon::now(); $recurring_invoice->status_id = RecurringInvoice::STATUS_ACTIVE; $recurring_invoice->remaining_cycles = 2; - $recurring_invoice->start_date = Carbon::now()->format(config('ninja.date_format')); + $recurring_invoice->start_date = Carbon::now(); $recurring_invoice->save(); $recurring_invoice->invoice_number = $this->getNextInvoiceNumber($this->invoice->client); $recurring_invoice->save(); $recurring_invoice = InvoiceToRecurringInvoiceFactory::create($this->invoice); - $recurring_invoice->next_send_date = Carbon::now()->addMinutes(2)->format(config('ninja.date_time_format')); + $recurring_invoice->next_send_date = Carbon::now()->addMinutes(2); $recurring_invoice->status_id = RecurringInvoice::STATUS_ACTIVE; $recurring_invoice->remaining_cycles = 2; - $recurring_invoice->start_date = Carbon::now()->format(config('ninja.date_format')); + $recurring_invoice->start_date = Carbon::now(); $recurring_invoice->save(); $recurring_invoice->invoice_number = $this->getNextInvoiceNumber($this->invoice->client); $recurring_invoice->save(); $recurring_invoice = InvoiceToRecurringInvoiceFactory::create($this->invoice); - $recurring_invoice->next_send_date = Carbon::now()->addMinutes(10)->format(config('ninja.date_time_format')); + $recurring_invoice->next_send_date = Carbon::now()->addMinutes(10); $recurring_invoice->status_id = RecurringInvoice::STATUS_ACTIVE; $recurring_invoice->remaining_cycles = 2; - $recurring_invoice->start_date = Carbon::now()->format(config('ninja.date_format')); + $recurring_invoice->start_date = Carbon::now(); $recurring_invoice->save(); $recurring_invoice->invoice_number = $this->getNextInvoiceNumber($this->invoice->client); $recurring_invoice->save(); $recurring_invoice = InvoiceToRecurringInvoiceFactory::create($this->invoice); - $recurring_invoice->next_send_date = Carbon::now()->addMinutes(15)->format(config('ninja.date_time_format')); + $recurring_invoice->next_send_date = Carbon::now()->addMinutes(15); $recurring_invoice->status_id = RecurringInvoice::STATUS_ACTIVE; $recurring_invoice->remaining_cycles = 2; - $recurring_invoice->start_date = Carbon::now()->format(config('ninja.date_format')); + $recurring_invoice->start_date = Carbon::now(); $recurring_invoice->save(); $recurring_invoice->invoice_number = $this->getNextInvoiceNumber($this->invoice->client); @@ -146,20 +146,20 @@ trait MockAccountData $recurring_invoice = InvoiceToRecurringInvoiceFactory::create($this->invoice); - $recurring_invoice->next_send_date = Carbon::now()->addMinutes(20)->format(config('ninja.date_time_format')); + $recurring_invoice->next_send_date = Carbon::now()->addMinutes(20); $recurring_invoice->status_id = RecurringInvoice::STATUS_ACTIVE; $recurring_invoice->remaining_cycles = 2; - $recurring_invoice->start_date = Carbon::now()->format(config('ninja.date_format')); + $recurring_invoice->start_date = Carbon::now(); $recurring_invoice->save(); $recurring_invoice->invoice_number = $this->getNextInvoiceNumber($this->invoice->client); $recurring_invoice->save(); $recurring_invoice = InvoiceToRecurringInvoiceFactory::create($this->invoice); - $recurring_invoice->next_send_date = Carbon::now()->addDays(10)->format(config('ninja.date_time_format')); + $recurring_invoice->next_send_date = Carbon::now()->addDays(10); $recurring_invoice->status_id = RecurringInvoice::STATUS_ACTIVE; $recurring_invoice->remaining_cycles = 2; - $recurring_invoice->start_date = Carbon::now()->format(config('ninja.date_format')); + $recurring_invoice->start_date = Carbon::now(); $recurring_invoice->save(); $recurring_invoice->invoice_number = $this->getNextInvoiceNumber($this->invoice->client);