belongsTo('Account'); } public function invoices() { return $this->hasMany('Invoice'); } public function payments() { return $this->hasMany('Payment'); } public function contacts() { return $this->hasMany('Contact'); } public function projects() { return $this->hasMany('Project'); } public function country() { return $this->belongsTo('Country'); } public function currency() { return $this->belongsTo('Currency'); } public function size() { return $this->belongsTo('Size'); } public function industry() { return $this->belongsTo('Industry'); } public function getTotalCredit() { return DB::table('credits') ->where('client_id', '=', $this->id) ->whereNull('deleted_at') ->sum('balance'); } public function getName() { return $this->getDisplayName(); } public function getDisplayName() { if ($this->name) { return $this->name; } $this->load('contacts'); $contact = $this->contacts()->first(); return $contact->getDisplayName(); } public function getEntityType() { return ENTITY_CLIENT; } public function getAddress() { $str = ''; if ($this->address1) { $str .= $this->address1.'
'; } if ($this->address2) { $str .= $this->address2.'
'; } if ($this->city) { $str .= $this->city.', '; } if ($this->state) { $str .= $this->state.' '; } if ($this->postal_code) { $str .= $this->postal_code; } if ($this->country) { $str .= '
'.$this->country->name; } if ($str) { $str = '

'.$str.'

'; } return $str; } public function getPhone() { $str = ''; if ($this->work_phone) { $str .= ''.Utils::formatPhoneNumber($this->work_phone); } return $str; } public function getIdNumber() { $str = ''; if ($this->id_number) { $str .= ''.trans('texts.id_number').': '.$this->id_number; } return $str; } public function getVatNumber() { $str = ''; if ($this->vat_number) { $str .= ''.trans('texts.vat_number').': '.$this->vat_number; } return $str; } public function getNotes() { $str = ''; if ($this->private_notes) { $str .= ''.$this->private_notes.''; } return $str; } public function getIndustry() { $str = ''; if ($this->client_industry) { $str .= $this->client_industry->name.' '; } if ($this->client_size) { $str .= $this->client_size->name; } return $str; } public function getCustomFields() { $str = ''; $account = $this->account; if ($account->custom_client_label1 && $this->custom_value1) { $str .= "{$account->custom_client_label1}: {$this->custom_value1}
"; } if ($account->custom_client_label2 && $this->custom_value2) { $str .= "{$account->custom_client_label2}: {$this->custom_value2}
"; } return $str; } public function getWebsite() { if (!$this->website) { return ''; } $link = $this->website; $title = $this->website; $prefix = 'http://'; if (strlen($link) > 7 && substr($link, 0, 7) === $prefix) { $title = substr($title, 7); } else { $link = $prefix.$link; } return link_to($link, $title, array('target' => '_blank')); } public function getDateCreated() { if ($this->created_at == '0000-00-00 00:00:00') { return '---'; } else { return $this->created_at->format('m/d/y h:i a'); } } public function getGatewayToken() { $this->account->load('account_gateways'); if (!count($this->account->account_gateways)) { return false; } $accountGateway = $this->account->getGatewayConfig(GATEWAY_STRIPE); if (!$accountGateway) { return false; } $token = AccountGatewayToken::where('client_id', '=', $this->id) ->where('account_gateway_id', '=', $accountGateway->id)->first(); return $token ? $token->token : false; } public function getGatewayLink() { $token = $this->getGatewayToken(); return $token ? "https://dashboard.stripe.com/customers/{$token}" : false; } } /* Client::created(function($client) { Activity::createClient($client); }); */ Client::updating(function ($client) { Activity::updateClient($client); }); Client::deleting(function ($client) { Activity::archiveClient($client); }); Client::restoring(function ($client) { Activity::restoreClient($client); });