belongsTo(Country::class); } public function language() { return $this->belongsTo(Language::class); } public function payments() { return $this->hasMany(Payment::class); } public function services() { return $this->hasMany(Service::class); } public function user() { return $this->belongsTo(\App\User::class); } public function getActiveDisplayAttribute($value) { return sprintf('%s',$this->active ? 'success' : 'danger',$this->active ? 'Active' : 'Inactive'); } public function getAccountIdAttribute() { return sprintf('%02s-%04s',$this->site_id,$this->id); } public function getAccountIdUrlAttribute() { return sprintf('%s',$this->id,$this->account_id); } public function getNameAttribute() { return $this->company ?: $this->user->SurFirstName; } public function getServicesCountHtmlAttribute() { return sprintf('%s /%s',$this->services->where('active',TRUE)->count(),$this->services->count()); } public function getSwitchUrlAttribute() { return sprintf('',$this->user_id); } private function _address() { $return = []; if ($this->address1) array_push($return,$this->address1); if ($this->address2) array_push($return,$this->address2); if ($this->city) array_push($return,sprintf('%s %s %s',$this->city.(($this->state OR $this->zip) ? ',' : ''),$this->state,$this->zip)); if (! $return) $return = ['No Address']; return $return; } public function address($type='plain') { switch ($type) { case 'html' : return join('
',$this->_address()); case 'newline': return join("\m",$this->_address()); default: return join("\n",$this->_address()); } } }