From 3c6b5c6c1e7a9feedb0d5db9a552b6c534b8676e Mon Sep 17 00:00:00 2001 From: Kevin Papst Date: Tue, 22 Mar 2022 21:02:29 +0100 Subject: [PATCH] fix relative times in budget calculation in export (#3216) --- src/Export/Base/RendererTrait.php | 8 ++++++-- src/Model/BudgetStatisticModel.php | 8 ++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Export/Base/RendererTrait.php b/src/Export/Base/RendererTrait.php index 32b6354c..58cad91f 100644 --- a/src/Export/Base/RendererTrait.php +++ b/src/Export/Base/RendererTrait.php @@ -163,6 +163,8 @@ trait RendererTrait 'money' => $project->getBudget(), 'time_left' => null, 'money_left' => null, + 'time_left_total' => null, + 'money_left_total' => null, ]; } } @@ -175,10 +177,12 @@ trait RendererTrait $project = $statisticModel->getProject(); $id = $project->getCustomer()->getId() . '_' . $projectId; if ($statisticModel->hasTimeBudget()) { - $summary[$id]['time_left'] = $statisticModel->getTimeBudgetOpen(); + $summary[$id]['time_left'] = $statisticModel->getTimeBudgetOpenRelative(); + $summary[$id]['time_left_total'] = $statisticModel->getTimeBudgetOpen(); } if ($statisticModel->hasBudget()) { - $summary[$id]['money_left'] = $statisticModel->getBudgetOpen(); + $summary[$id]['money_left'] = $statisticModel->getBudgetOpenRelative(); + $summary[$id]['money_left_total'] = $statisticModel->getBudgetOpen(); } } diff --git a/src/Model/BudgetStatisticModel.php b/src/Model/BudgetStatisticModel.php index 06b952ec..458a4eeb 100644 --- a/src/Model/BudgetStatisticModel.php +++ b/src/Model/BudgetStatisticModel.php @@ -108,14 +108,14 @@ class BudgetStatisticModel implements BudgetStatisticModelInterface { $value = $this->getTimeBudget() - $this->getDurationBillable(); - return $value > 0 ? $value : 0; + return max($value, 0); } public function getTimeBudgetOpenRelative(): int { $value = $this->getTimeBudget() - $this->getDurationBillableRelative(); - return $value > 0 ? $value : 0; + return max($value, 0); } public function getTimeBudgetSpent(): int @@ -137,14 +137,14 @@ class BudgetStatisticModel implements BudgetStatisticModelInterface { $value = $this->getBudget() - $this->getRateBillable(); - return $value > 0 ? $value : 0; + return max($value, 0); } public function getBudgetOpenRelative(): float { $value = $this->getBudget() - $this->getRateBillableRelative(); - return $value > 0 ? $value : 0; + return max($value, 0); } public function getBudgetSpent(): float