fixed #224
This commit is contained in:
83
app/Utilities/Overrider.php
Normal file
83
app/Utilities/Overrider.php
Normal file
@ -0,0 +1,83 @@
|
||||
<?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
|
||||
config(['app.timezone' => setting('general.timezone', 'UTC')]);
|
||||
|
||||
// Email
|
||||
$email_protocol = setting('general.email_protocol', 'mail');
|
||||
config(['mail.driver' => $email_protocol]);
|
||||
config(['mail.from.name' => setting('general.company_name')]);
|
||||
config(['mail.from.address' => setting('general.company_email')]);
|
||||
|
||||
if ($email_protocol == 'sendmail') {
|
||||
config(['mail.sendmail' => setting('general.email_sendmail_path')]);
|
||||
} elseif ($email_protocol == 'smtp') {
|
||||
config(['mail.host' => setting('general.email_smtp_host')]);
|
||||
config(['mail.port' => setting('general.email_smtp_port')]);
|
||||
config(['mail.username' => setting('general.email_smtp_username')]);
|
||||
config(['mail.password' => setting('general.email_smtp_password')]);
|
||||
config(['mail.encryption' => setting('general.email_smtp_encryption')]);
|
||||
}
|
||||
|
||||
// Session
|
||||
config(['session.driver' => setting('general.session_handler', 'file')]);
|
||||
config(['session.lifetime' => setting('general.session_lifetime', '30')]);
|
||||
|
||||
// Locale
|
||||
if (session('locale') == '') {
|
||||
//App::setLocale(setting('general.default_language'));
|
||||
//Session::put('locale', setting('general.default_language'));
|
||||
config(['app.locale' => setting('general.default_locale')]);
|
||||
}
|
||||
}
|
||||
|
||||
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'));
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user