Add labels for tasks and expenses

This commit is contained in:
Hillel Coren 2016-12-26 20:09:49 +02:00
parent 751ff62632
commit ffd7e7bdc6
6 changed files with 134 additions and 46 deletions

View File

@ -221,6 +221,53 @@ class Expense extends EntityModel
return $statuses;
}
public static function calcStatusLabel($shouldBeInvoiced, $invoiceId, $balance)
{
if ($invoiceId) {
if (floatval($balance) > 0) {
$label = 'invoiced';
} else {
$label = 'paid';
}
} elseif ($shouldBeInvoiced) {
$label = 'pending';
} else {
$label = 'logged';
}
return trans("texts.{$label}");
}
public static function calcStatusClass($shouldBeInvoiced, $invoiceId, $balance)
{
if ($invoiceId) {
if (floatval($balance) > 0) {
return 'default';
} else {
return 'success';
}
} elseif ($shouldBeInvoiced) {
return 'warning';
} else {
return 'primary';
}
}
public function statusClass()
{
$balance = $this->invoice ? $this->invoice->balance : 0;
return static::calcStatusClass($this->should_be_invoiced, $this->invoice_id, $balance);
}
public function statusLabel()
{
$balance = $this->invoice ? $this->invoice->balance : 0;
return static::calcStatusLabel($this->should_be_invoiced, $this->invoice_id, $balance);
}
}
Expense::creating(function ($expense) {

View File

@ -215,8 +215,64 @@ class Task extends EntityModel
return $statuses;
}
public static function calcStatusLabel($isRunning, $balance, $invoiceNumber)
{
if ($invoiceNumber) {
if (floatval($balance) > 0) {
$label = 'invoiced';
} else {
$label = 'paid';
}
} elseif ($isRunning) {
$label = 'running';
} else {
$label = 'logged';
}
return trans("texts.{$label}");
}
public static function calcStatusClass($isRunning, $balance, $invoiceNumber)
{
if ($invoiceNumber) {
if (floatval($balance)) {
return 'default';
} else {
return 'success';
}
} elseif ($isRunning) {
return 'primary';
} else {
return 'warning';
}
}
public function statusClass()
{
if ($this->invoice) {
$balance = $this->invoice->balance;
$invoiceNumber = $this->invoice->invoice_number;
} else {
$balance = 0;
$invoiceNumber = false;
}
return static::calcStatusClass($this->is_running, $balance, $invoiceNumber);
}
public function statusLabel()
{
if ($this->invoice) {
$balance = $this->invoice->balance;
$invoiceNumber = $this->invoice->invoice_number;
} else {
$balance = 0;
$invoiceNumber = false;
}
return static::calcStatusLabel($this->is_running, $balance, $invoiceNumber);
}
}
Task::created(function ($task) {

View File

@ -3,6 +3,7 @@
use Utils;
use URL;
use Auth;
use App\Models\Expense;
class ExpenseDatatable extends EntityDatatable
{
@ -123,24 +124,10 @@ class ExpenseDatatable extends EntityDatatable
];
}
private function getStatusLabel($invoiceId, $shouldBeInvoiced, $balance)
{
if ($invoiceId) {
if (floatval($balance)) {
$label = trans('texts.invoiced');
$class = 'default';
} else {
$label = trans('texts.paid');
$class = 'success';
}
} elseif ($shouldBeInvoiced) {
$label = trans('texts.pending');
$class = 'warning';
} else {
$label = trans('texts.logged');
$class = 'primary';
}
$label = Expense::calcStatusLabel($shouldBeInvoiced, $invoiceId, $balance);
$class = Expense::calcStatusClass($shouldBeInvoiced, $invoiceId, $balance);
return "<h4><div class=\"label label-{$class}\">$label</div></h4>";
}

View File

@ -108,21 +108,8 @@ class TaskDatatable extends EntityDatatable
private function getStatusLabel($model)
{
if ($model->invoice_number) {
if (floatval($model->balance)) {
$label = trans('texts.invoiced');
$class = 'default';
} else {
$class = 'success';
$label = trans('texts.paid');
}
} elseif ($model->is_running) {
$class = 'primary';
$label = trans('texts.running');
} else {
$class = 'warning';
$label = trans('texts.logged');
}
$label = Task::calcStatusLabel($model->is_running, $model->balance, $model->invoice_number);
$class = Task::calcStatusClass($model->is_running, $model->balance, $model->invoice_number);
return "<h4><div class=\"label label-{$class}\">$label</div></h4>";
}

View File

@ -34,4 +34,19 @@ class ExpensePresenter extends EntityPresenter
return $this->entity->expense_category ? $this->entity->expense_category->name : '';
}
/**
* @return string
*/
public function statusLabel()
{
if ($label = parent::statusLabel()) {
return $label;
}
$class = $this->entity->statusClass();
$label = $this->entity->statusLabel();
return "<span style=\"font-size:13px\" class=\"label label-{$class}\">{$label}</span>";
}
}

View File

@ -57,24 +57,20 @@ class TaskPresenter extends EntityPresenter
return implode("\n", $times);
}
/**
* @return string
*/
public function status()
public function statusLabel()
{
$class = $text = '';
if ($this->entity->is_deleted) {
$class = 'danger';
$text = trans('texts.deleted');
} elseif ($this->entity->trashed()) {
$class = 'warning';
$text = trans('texts.archived');
} else {
$class = 'success';
$text = trans('texts.active');
if ($label = parent::statusLabel()) {
return $label;
}
return "<span class=\"label label-{$class}\">{$text}</span>";
$class = $this->entity->statusClass();
$label = $this->entity->statusLabel();
return "<span style=\"font-size:13px\" class=\"label label-{$class}\">{$label}</span>";
}
}