akaunting/app/Utilities/Overrider.php

84 lines
2.7 KiB
PHP
Raw Normal View History

2018-02-20 18:24:17 +03:00
<?php
namespace App\Utilities;
use App\Models\Setting\Currency;
class Overrider
{
public static $company_id;
public static function load($type)
{
// Overrides apply per company
$company_id = session('company_id');
if (empty($company_id)) {
return;
}
static::$company_id = $company_id;
$method = 'load' . ucfirst($type);
static::$method();
}
protected static function loadSettings()
{
// Set the active company settings
setting()->setExtraColumns(['company_id' => static::$company_id]);
setting()->load(true);
// Timezone
2019-11-16 10:21:14 +03:00
config(['app.timezone' => setting('localisation.timezone', 'UTC')]);
2019-01-14 16:36:28 +03:00
date_default_timezone_set(config('app.timezone'));
2018-02-20 18:24:17 +03:00
// Email
2019-11-16 10:21:14 +03:00
$email_protocol = setting('email.protocol', 'mail');
2018-02-20 18:24:17 +03:00
config(['mail.driver' => $email_protocol]);
2019-11-16 10:21:14 +03:00
config(['mail.from.name' => setting('company.name')]);
config(['mail.from.address' => setting('company.email')]);
2018-02-20 18:24:17 +03:00
if ($email_protocol == 'sendmail') {
2019-11-16 10:21:14 +03:00
config(['mail.sendmail' => setting('email.sendmail_path')]);
2018-02-20 18:24:17 +03:00
} elseif ($email_protocol == 'smtp') {
2019-11-16 10:21:14 +03:00
config(['mail.host' => setting('email.smtp_host')]);
config(['mail.port' => setting('email.smtp_port')]);
config(['mail.username' => setting('email.smtp_username')]);
config(['mail.password' => setting('email.smtp_password')]);
config(['mail.encryption' => setting('email.smtp_encryption')]);
2018-02-20 18:24:17 +03:00
}
// Locale
if (session('locale') == '') {
2019-11-16 10:21:14 +03:00
//App::setLocale(setting('default.locale'));
//Session::put('locale', setting('default.locale'));
config(['app.locale' => setting('default.locale')]);
2018-02-20 18:24:17 +03:00
}
2019-03-09 19:31:03 +03:00
// Set app url dynamically
config(['app.url' => url('/')]);
2018-02-20 18:24:17 +03:00
}
protected static function loadCurrencies()
{
$currencies = Currency::all();
foreach ($currencies as $currency) {
if (!isset($currency->precision)) {
continue;
}
config(['money.' . $currency->code . '.precision' => $currency->precision]);
config(['money.' . $currency->code . '.symbol' => $currency->symbol]);
config(['money.' . $currency->code . '.symbol_first' => $currency->symbol_first]);
config(['money.' . $currency->code . '.decimal_mark' => $currency->decimal_mark]);
config(['money.' . $currency->code . '.thousands_separator' => $currency->thousands_separator]);
}
// Set currencies with new settings
\Akaunting\Money\Currency::setCurrencies(config('money'));
}
2019-11-16 10:21:14 +03:00
}