From c58c12ea3d2527769cf56565ea0420f68c381f5e Mon Sep 17 00:00:00 2001 From: Kevin Papst Date: Mon, 3 Dec 2018 22:36:38 +0100 Subject: [PATCH] fixed null project for advanced invoice calculator (#462) --- src/Invoice/Calculator/AbstractMergedCalculator.php | 4 ++++ src/Invoice/Renderer/RendererTrait.php | 1 + tests/Invoice/Calculator/ActivityInvoiceCalculatorTest.php | 6 ++++++ tests/Invoice/Calculator/UserInvoiceCalculatorTest.php | 6 ++++++ tests/Invoice/Renderer/DebugRendererTest.php | 1 + 5 files changed, 18 insertions(+) diff --git a/src/Invoice/Calculator/AbstractMergedCalculator.php b/src/Invoice/Calculator/AbstractMergedCalculator.php index 69509032..5dc86932 100644 --- a/src/Invoice/Calculator/AbstractMergedCalculator.php +++ b/src/Invoice/Calculator/AbstractMergedCalculator.php @@ -44,6 +44,10 @@ abstract class AbstractMergedCalculator extends AbstractCalculator $timesheet->setActivity($entry->getActivity()); } + if (null === $timesheet->getProject()) { + $timesheet->setProject($entry->getProject()); + } + if (empty($timesheet->getDescription())) { $timesheet->setDescription($entry->getActivity()->getName()); } diff --git a/src/Invoice/Renderer/RendererTrait.php b/src/Invoice/Renderer/RendererTrait.php index d423fcff..db362b0a 100644 --- a/src/Invoice/Renderer/RendererTrait.php +++ b/src/Invoice/Renderer/RendererTrait.php @@ -176,6 +176,7 @@ trait RendererTrait 'entry.date' => $this->getFormattedDateTime($begin), 'entry.user_id' => $user->getId(), 'entry.user_name' => $user->getUsername(), + 'entry.user_title' => $user->getTitle(), 'entry.user_alias' => $user->getAlias(), 'entry.activity' => $activity->getName(), 'entry.activity_id' => $activity->getId(), diff --git a/tests/Invoice/Calculator/ActivityInvoiceCalculatorTest.php b/tests/Invoice/Calculator/ActivityInvoiceCalculatorTest.php index 1e2928c0..831a4762 100644 --- a/tests/Invoice/Calculator/ActivityInvoiceCalculatorTest.php +++ b/tests/Invoice/Calculator/ActivityInvoiceCalculatorTest.php @@ -12,6 +12,7 @@ namespace App\Tests\Invoice\Calculator; use App\Entity\Activity; use App\Entity\Customer; use App\Entity\InvoiceTemplate; +use App\Entity\Project; use App\Entity\Timesheet; use App\Entity\User; use App\Invoice\Calculator\ActivityInvoiceCalculator; @@ -50,6 +51,7 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest ->setRate(293.27) ->setUser($user) ->setActivity($activity1) + ->setProject((new Project())->setName('bar')); ; $timesheet2 = new Timesheet(); @@ -58,6 +60,7 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest ->setRate(84.75) ->setUser($user) ->setActivity($activity2) + ->setProject((new Project())->setName('bar')); ; $timesheet3 = new Timesheet(); @@ -66,6 +69,7 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest ->setRate(111.11) ->setUser($user) ->setActivity($activity1) + ->setProject((new Project())->setName('bar')); ; $timesheet4 = new Timesheet(); @@ -74,6 +78,7 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest ->setRate(1947.99) ->setUser($user) ->setActivity($activity2) + ->setProject((new Project())->setName('bar')); ; $timesheet5 = new Timesheet(); @@ -82,6 +87,7 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest ->setRate(84) ->setUser(new User()) ->setActivity(new Activity()) + ->setProject((new Project())->setName('bar')); ; $entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5]; diff --git a/tests/Invoice/Calculator/UserInvoiceCalculatorTest.php b/tests/Invoice/Calculator/UserInvoiceCalculatorTest.php index da0edb93..13059a8a 100644 --- a/tests/Invoice/Calculator/UserInvoiceCalculatorTest.php +++ b/tests/Invoice/Calculator/UserInvoiceCalculatorTest.php @@ -12,6 +12,7 @@ namespace App\Tests\Invoice\Calculator; use App\Entity\Activity; use App\Entity\Customer; use App\Entity\InvoiceTemplate; +use App\Entity\Project; use App\Entity\Timesheet; use App\Entity\User; use App\Invoice\Calculator\UserInvoiceCalculator; @@ -50,6 +51,7 @@ class UserInvoiceCalculatorTest extends AbstractCalculatorTest ->setRate(293.27) ->setUser($user1) ->setActivity($activity) + ->setProject((new Project())->setName('bar')); ; $timesheet2 = new Timesheet(); @@ -58,6 +60,7 @@ class UserInvoiceCalculatorTest extends AbstractCalculatorTest ->setRate(84.75) ->setUser($user2) ->setActivity($activity) + ->setProject((new Project())->setName('bar')); ; $timesheet3 = new Timesheet(); @@ -66,6 +69,7 @@ class UserInvoiceCalculatorTest extends AbstractCalculatorTest ->setRate(111.11) ->setUser($user1) ->setActivity($activity) + ->setProject((new Project())->setName('bar')); ; $timesheet4 = new Timesheet(); @@ -74,6 +78,7 @@ class UserInvoiceCalculatorTest extends AbstractCalculatorTest ->setRate(1947.99) ->setUser($user2) ->setActivity($activity) + ->setProject((new Project())->setName('bar')); ; $timesheet5 = new Timesheet(); @@ -82,6 +87,7 @@ class UserInvoiceCalculatorTest extends AbstractCalculatorTest ->setRate(84) ->setUser(new User()) ->setActivity($activity) + ->setProject((new Project())->setName('bar')); ; $entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5]; diff --git a/tests/Invoice/Renderer/DebugRendererTest.php b/tests/Invoice/Renderer/DebugRendererTest.php index e06a3dea..b1b3ba2b 100644 --- a/tests/Invoice/Renderer/DebugRendererTest.php +++ b/tests/Invoice/Renderer/DebugRendererTest.php @@ -111,6 +111,7 @@ class DebugRendererTest extends AbstractRendererTest 'entry.user_id', 'entry.user_name', 'entry.user_alias', + 'entry.user_title', 'entry.activity', 'entry.activity_id', 'entry.project',