diff --git a/app/Models/Company.php b/app/Models/Company.php index 6f69002cdff9..653bd5497070 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -16,6 +16,7 @@ use App\Models\Presenters\CompanyPresenter; use App\Models\User; use App\Services\Notification\NotificationService; use App\Utils\Ninja; +use App\Utils\Traits\AppSetup; use App\Utils\Traits\CompanySettingsSaver; use App\Utils\Traits\MakesHash; use App\Utils\Traits\ThrottlesEmail; @@ -31,6 +32,7 @@ class Company extends BaseModel use MakesHash; use CompanySettingsSaver; use ThrottlesEmail; + use AppSetup; const ENTITY_RECURRING_INVOICE = 'recurring_invoice'; const ENTITY_CREDIT = 'credit'; @@ -311,7 +313,17 @@ class Company extends BaseModel public function timezone() { - return Timezone::find($this->settings->timezone_id); + + $timezones = Cache::get('timezones'); + + if(!$timezones) + $this->buildCache(true); + + return $timezones->filter(function ($item) { + return $item->id == $this->settings->timezone_id; + })->first(); + + // return Timezone::find($this->settings->timezone_id); } public function designs() @@ -339,7 +351,18 @@ class Company extends BaseModel */ public function language() { - return Language::find($this->settings->language_id); + + $languages = Cache::get('languages'); + + if(!$languages) + $this->buildCache(true); + + return $languages->filter(function ($item) { + return $item->id == $this->settings->language_id; + })->first(); + + + // return Language::find($this->settings->language_id); } public function getLocale() diff --git a/app/Utils/Traits/AppSetup.php b/app/Utils/Traits/AppSetup.php index f8ef0670e31e..91c3cf5298b5 100644 --- a/app/Utils/Traits/AppSetup.php +++ b/app/Utils/Traits/AppSetup.php @@ -48,7 +48,7 @@ trait AppSetup $orderBy = 'num_days'; } elseif ($name == 'fonts') { $orderBy = 'sort_order'; - } elseif (in_array($name, ['currencies', 'industries', 'languages', 'countries', 'banks'])) { + } elseif (in_array($name, ['currencies', 'industries', 'languages', 'countries', 'banks', 'timezones'])) { $orderBy = 'name'; } else { $orderBy = 'id';