1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-08 20:22:42 +01:00
invoiceninja/app/Ninja/Presenters/ClientPresenter.php

131 lines
3.2 KiB
PHP
Raw Normal View History

2017-01-30 20:40:43 +01:00
<?php
namespace App\Ninja\Presenters;
2015-11-12 21:36:28 +01:00
2017-08-13 15:03:00 +02:00
use Utils;
2017-01-30 17:05:31 +01:00
class ClientPresenter extends EntityPresenter
{
2015-11-12 21:36:28 +01:00
public function country()
{
return $this->entity->country ? $this->entity->country->getName() : '';
2015-11-12 21:36:28 +01:00
}
2016-02-04 19:36:39 +01:00
2017-11-19 13:52:42 +01:00
public function shipping_country()
{
return $this->entity->shipping_country ? $this->entity->shipping_country->getName() : '';
2017-11-19 13:52:42 +01:00
}
2016-08-07 21:42:32 +02:00
public function balance()
{
$client = $this->entity;
$account = $client->account;
return $account->formatMoney($client->balance, $client);
}
2017-08-13 15:03:00 +02:00
public function websiteLink()
{
$client = $this->entity;
if (! $client->website) {
return '';
}
$link = Utils::addHttp($client->website);
return link_to($link, $client->website, ['target' => '_blank']);
}
2016-08-07 21:42:32 +02:00
public function paid_to_date()
{
$client = $this->entity;
$account = $client->account;
return $account->formatMoney($client->paid_to_date, $client);
}
2017-02-01 12:09:26 +01:00
public function paymentTerms()
{
$client = $this->entity;
if (! $client->payment_terms) {
return '';
}
return sprintf('%s: %s %s', trans('texts.payment_terms'), trans('texts.payment_terms_net'), $client->defaultDaysDue());
}
public function address($addressType = ADDRESS_BILLING, $showHeader = false)
2017-11-19 13:52:42 +01:00
{
$str = '';
$prefix = $addressType == ADDRESS_BILLING ? '' : 'shipping_';
$client = $this->entity;
if ($address1 = $client->{$prefix . 'address1'}) {
$str .= e($address1) . '<br/>';
}
if ($address2 = $client->{$prefix . 'address2'}) {
$str .= e($address2) . '<br/>';
}
if ($cityState = $this->getCityState($addressType)) {
$str .= e($cityState) . '<br/>';
}
if ($country = $client->{$prefix . 'country'}) {
$str .= e($country->getName()) . '<br/>';
2017-11-19 13:52:42 +01:00
}
if ($str && $showHeader) {
2017-11-19 13:52:42 +01:00
$str = '<b>' . trans('texts.' . $addressType) . '</b><br/>' . $str;
}
return $str;
}
/**
* @return string
*/
public function getCityState($addressType = ADDRESS_BILLING)
{
$client = $this->entity;
$prefix = $addressType == ADDRESS_BILLING ? '' : 'shipping_';
$swap = $client->{$prefix . 'country'} && $client->{$prefix . 'country'}->swap_postal_code;
$city = e($client->{$prefix . 'city'});
$state = e($client->{$prefix . 'state'});
2018-02-14 14:41:40 +01:00
$postalCode = e($client->{$prefix . 'postal_code'});
2017-11-19 13:52:42 +01:00
2017-11-19 18:52:28 +01:00
if ($city || $state || $postalCode) {
return Utils::cityStateZip($city, $state, $postalCode, $swap);
} else {
return false;
}
2017-11-19 13:52:42 +01:00
}
/**
* @return string
*/
public function taskRate()
{
2017-12-25 11:24:39 +01:00
if (floatval($this->entity->task_rate)) {
return Utils::roundSignificant($this->entity->task_rate);
} else {
return '';
}
}
2017-12-25 11:24:39 +01:00
/**
* @return string
*/
public function defaultTaskRate()
{
if ($rate = $this->taskRate()) {
return $rate;
} else {
return $this->entity->account->present()->taskRate;
}
}
2016-05-23 11:26:08 +02:00
}