'array', 'trans_content' => 'array', 'partner_provision' => 'bool', 'payment_year' => 'bool', 'exclude_single_commission' => 'bool', 'hide_registration' => 'bool', ]; protected $fillable = [ 'name', 'content', 'pos', 'payment_year', 'active', 'partner_provision', 'exclude_single_commission', 'hide_registration', ]; public function user_level_margins() { return $this->hasMany('App\Models\UserLevelMargin', 'user_level_id', 'id'); } public function user_level_margins_re() { return $this->hasMany('App\Models\UserLevelMargin', 'user_level_id', 'id')->orderBy('price_from', 'DESC'); } public function setPosAttribute($value) { $this->attributes['pos'] = is_numeric($value) ? $value : null; } public function _format_number($value) { return preg_replace('/[^0-9,]/', '', $value); } public function setMarginAttribute($value) { $value = $this->_format_number($value); $this->attributes['margin'] = floatval(str_replace(',', '.', $value)); } public function getFormattedMargin() { if (! isset($this->attributes['margin'])) { return ''; } if (\App::getLocale() === 'en') { return number_format($this->attributes['margin'], 2, '.', ','); } return number_format($this->attributes['margin'], 2, ',', '.'); } public function getLang($key) { $lang = \App::getLocale(); if ($lang === 'de') { return $this->{$key}; } $trans = $this->getTrans($key, $lang); if (! $trans || $trans == '') { return $this->{$key}; } return $trans; } public function getTrans($key, $lang) { $key = 'trans_'.$key; if (! empty($this->{$key}[$lang])) { return $this->{$key}[$lang]; } } public function getTranNames() { $ret = ''; foreach ((array) $this->trans_name as $value) { $ret .= $value.', '; } return rtrim($ret, ', '); } }