Release 2.33.0 (#5438)

This commit is contained in:
Kevin Papst
2025-04-22 20:43:22 +02:00
committed by GitHub
parent a70c803158
commit e663cc2b02
58 changed files with 1404 additions and 899 deletions

View File

@@ -86,14 +86,13 @@ abstract class AbstractCalculatorTestCase extends TestCase
}
$timesheet = new Timesheet();
$timesheet
->setDescription('timesheet description')
->setBegin(new \DateTime())
->setDuration(3600)
->setRate(293.27)
->setUser($user)
->setActivity($activity)
->setProject($project);
$timesheet->setDescription('timesheet description');
$timesheet->setBegin(new \DateTime());
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setUser($user);
$timesheet->setActivity($activity);
$timesheet->setProject($project);
$model = (new InvoiceModelFactoryFactory($this))->create()->createModel(new DebugFormatter(), $customer, $template, $query);
$model->addEntries([$timesheet]);

View File

@@ -54,82 +54,74 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTestCase
$activity3->method('getId')->willReturn(3);
$timesheet = new Timesheet();
$timesheet
->setBegin(new \DateTime('2018-11-29'))
->setEnd(new \DateTime())
->setDuration(3600)
->setRate(293.27)
->setUser($user)
->setActivity($activity1)
->setProject((new Project())->setName('bar'));
$timesheet->setBegin(new \DateTime('2018-11-29'));
$timesheet->setEnd(new \DateTime());
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setUser($user);
$timesheet->setActivity($activity1);
$timesheet->setProject((new Project())->setName('bar'));
$timesheet2 = new Timesheet();
$timesheet2
->setBegin(clone $date)
->setEnd(new \DateTime())
->setDuration(400)
->setRate(84.75)
->setUser($user)
->setActivity($activity2)
->setProject((new Project())->setName('bar'));
$timesheet2->setBegin(clone $date);
$timesheet2->setEnd(new \DateTime());
$timesheet2->setDuration(400);
$timesheet2->setRate(84.75);
$timesheet2->setUser($user);
$timesheet2->setActivity($activity2);
$timesheet2->setProject((new Project())->setName('bar'));
$timesheet3 = new Timesheet();
$timesheet3
->setBegin(new \DateTime('2018-11-28'))
->setEnd(new \DateTime())
->setDuration(1800)
->setRate(111.11)
->setUser($user)
->setActivity($activity1)
->setProject((new Project())->setName('bar'));
$timesheet3->setBegin(new \DateTime('2018-11-28'));
$timesheet3->setEnd(new \DateTime());
$timesheet3->setDuration(1800);
$timesheet3->setRate(111.11);
$timesheet3->setUser($user);
$timesheet3->setActivity($activity1);
$timesheet3->setProject((new Project())->setName('bar'));
$timesheet4 = new Timesheet();
$timesheet4
->setBegin(new \DateTime('2018-11-28'))
->setEnd(new \DateTime())
->setDuration(400)
->setRate(1947.99)
->setUser($user)
->setActivity($activity2)
->setProject((new Project())->setName('bar'));
$timesheet4->setBegin(new \DateTime('2018-11-28'));
$timesheet4->setEnd(new \DateTime());
$timesheet4->setDuration(400);
$timesheet4->setRate(1947.99);
$timesheet4->setUser($user);
$timesheet4->setActivity($activity2);
$timesheet4->setProject((new Project())->setName('bar'));
$timesheet5 = new Timesheet();
$timesheet5
->setBegin(new \DateTime('2018-11-29'))
->setEnd(new \DateTime())
->setDuration(400)
->setRate(84)
->setUser(new User())
->setActivity($activity3)
->setProject((new Project())->setName('bar'));
$timesheet5->setBegin(new \DateTime('2018-11-29'));
$timesheet5->setEnd(new \DateTime());
$timesheet5->setDuration(400);
$timesheet5->setRate(84);
$timesheet5->setUser(new User());
$timesheet5->setActivity($activity3);
$timesheet5->setProject((new Project())->setName('bar'));
$timesheet6 = new Timesheet();
$timesheet6
->setBegin(clone $date)
->setEnd(new \DateTime())
->setDuration(0)
->setRate(0)
->setUser(new User())
->setProject((new Project())->setName('bar'));
$timesheet6->setBegin(clone $date);
$timesheet6->setEnd(new \DateTime());
$timesheet6->setDuration(0);
$timesheet6->setRate(0);
$timesheet6->setUser(new User());
$timesheet6->setProject((new Project())->setName('bar'));
$timesheet7 = new Timesheet();
$timesheet7
->setBegin(clone $date)
->setEnd(new \DateTime('2018-11-18'))
->setDuration(0)
->setRate(0)
->setUser(new User())
->setActivity(new Activity())
->setProject((new Project())->setName('bar'));
$timesheet7->setBegin(clone $date);
$timesheet7->setEnd(new \DateTime('2018-11-18'));
$timesheet7->setDuration(0);
$timesheet7->setRate(0);
$timesheet7->setUser(new User());
$timesheet7->setActivity(new Activity());
$timesheet7->setProject((new Project())->setName('bar'));
$timesheet8 = new Timesheet();
$timesheet8
->setBegin(clone $date)
->setEnd(new \DateTime())
->setDuration(0)
->setRate(0)
->setUser(new User())
->setProject((new Project())->setName('bar'));
$timesheet8->setBegin(clone $date);
$timesheet8->setEnd(new \DateTime());
$timesheet8->setDuration(0);
$timesheet8->setRate(0);
$timesheet8->setUser(new User());
$timesheet8->setProject((new Project())->setName('bar'));
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5, $timesheet6, $timesheet7, $timesheet8];

View File

@@ -57,92 +57,83 @@ class ActivityUserInvoiceCalculatorTest extends AbstractCalculatorTestCase
$activity3->method('getId')->willReturn(3);
$timesheet = new Timesheet();
$timesheet
->setBegin(new \DateTime())
->setEnd(new \DateTime())
->setDuration(3600)
->setRate(293.27)
->setUser($user1)
->setActivity($activity1)
->setProject((new Project())->setName('bar'));
$timesheet->setBegin(new \DateTime());
$timesheet->setEnd(new \DateTime());
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setUser($user1);
$timesheet->setActivity($activity1);
$timesheet->setProject((new Project())->setName('bar'));
$timesheet2 = new Timesheet();
$timesheet2
->setBegin(new \DateTime('2018-11-18'))
->setEnd(new \DateTime())
->setDuration(400)
->setRate(84.75)
->setUser($user1)
->setActivity($activity2)
->setProject((new Project())->setName('bar'));
$timesheet2->setBegin(new \DateTime('2018-11-18'));
$timesheet2->setEnd(new \DateTime());
$timesheet2->setDuration(400);
$timesheet2->setRate(84.75);
$timesheet2->setUser($user1);
$timesheet2->setActivity($activity2);
$timesheet2->setProject((new Project())->setName('bar'));
$timesheet3 = new Timesheet();
$timesheet3
->setBegin(clone $date)
->setEnd(new \DateTime())
->setDuration(1800)
->setRate(111.11)
->setUser($user1)
->setActivity($activity1)
->setProject((new Project())->setName('bar'));
$timesheet3->setBegin(clone $date);
$timesheet3->setEnd(new \DateTime());
$timesheet3->setDuration(1800);
$timesheet3->setRate(111.11);
$timesheet3->setUser($user1);
$timesheet3->setActivity($activity1);
$timesheet3->setProject((new Project())->setName('bar'));
$timesheet4 = new Timesheet();
$timesheet4
->setBegin(new \DateTime('2018-11-29'))
->setEnd(new \DateTime())
->setDuration(400)
->setRate(1947.99)
->setUser($user1)
->setActivity($activity2)
->setProject((new Project())->setName('bar'));
$timesheet4->setBegin(new \DateTime('2018-11-29'));
$timesheet4->setEnd(new \DateTime());
$timesheet4->setDuration(400);
$timesheet4->setRate(1947.99);
$timesheet4->setUser($user1);
$timesheet4->setActivity($activity2);
$timesheet4->setProject((new Project())->setName('bar'));
$timesheet5 = new Timesheet();
$timesheet5
->setBegin(new \DateTime('2018-11-18'))
->setEnd(new \DateTime())
->setDuration(400)
->setRate(84)
->setUser($user2)
->setActivity($activity3)
->setProject((new Project())->setName('bar'));
$timesheet5->setBegin(new \DateTime('2018-11-18'));
$timesheet5->setEnd(new \DateTime());
$timesheet5->setDuration(400);
$timesheet5->setRate(84);
$timesheet5->setUser($user2);
$timesheet5->setActivity($activity3);
$timesheet5->setProject((new Project())->setName('bar'));
$timesheet5a = new Timesheet();
$timesheet5a
->setBegin(new \DateTime('2018-11-08'))
->setEnd(new \DateTime())
->setDuration(400)
->setRate(84)
->setUser($user1)
->setActivity($activity3)
->setProject((new Project())->setName('bar'));
$timesheet5a->setBegin(new \DateTime('2018-11-08'));
$timesheet5a->setEnd(new \DateTime());
$timesheet5a->setDuration(400);
$timesheet5a->setRate(84);
$timesheet5a->setUser($user1);
$timesheet5a->setActivity($activity3);
$timesheet5a->setProject((new Project())->setName('bar'));
$timesheet6 = new Timesheet();
$timesheet6
->setBegin(clone $date)
->setEnd(new \DateTime())
->setDuration(0)
->setRate(0)
->setUser($user1)
->setProject((new Project())->setName('bar'));
$timesheet6->setBegin(clone $date);
$timesheet6->setEnd(new \DateTime());
$timesheet6->setDuration(0);
$timesheet6->setRate(0);
$timesheet6->setUser($user1);
$timesheet6->setProject((new Project())->setName('bar'));
$timesheet7 = new Timesheet();
$timesheet7
->setBegin(clone $date)
->setEnd(new \DateTime())
->setDuration(0)
->setRate(0)
->setUser($user2)
->setActivity(new Activity())
->setProject((new Project())->setName('bar'));
$timesheet7->setBegin(clone $date);
$timesheet7->setEnd(new \DateTime());
$timesheet7->setDuration(0);
$timesheet7->setRate(0);
$timesheet7->setUser($user2);
$timesheet7->setActivity(new Activity());
$timesheet7->setProject((new Project())->setName('bar'));
$timesheet8 = new Timesheet();
$timesheet8
->setBegin(clone $date)
->setEnd(new \DateTime())
->setDuration(0)
->setRate(0)
->setUser($user2)
->setProject((new Project())->setName('bar'));
$timesheet8->setBegin(clone $date);
$timesheet8->setEnd(new \DateTime());
$timesheet8->setDuration(0);
$timesheet8->setRate(0);
$timesheet8->setUser($user2);
$timesheet8->setProject((new Project())->setName('bar'));
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5, $timesheet5a, $timesheet6, $timesheet7, $timesheet8];

View File

@@ -55,54 +55,49 @@ class DateInvoiceCalculatorTest extends AbstractCalculatorTestCase
$project3->method('getId')->willReturn(3);
$timesheet = new Timesheet();
$timesheet
->setBegin(new DateTime('2018-11-29'))
->setEnd(new DateTime())
->setDuration(3600)
->setRate(293.27)
->setUser($user)
->setActivity((new Activity())->setName('sdsd'))
->setProject($project1);
$timesheet->setBegin(new DateTime('2018-11-29'));
$timesheet->setEnd(new DateTime());
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setUser($user);
$timesheet->setActivity((new Activity())->setName('sdsd'));
$timesheet->setProject($project1);
$timesheet2 = new Timesheet();
$timesheet2
->setBegin(new DateTime('2018-11-29'))
->setEnd(new DateTime())
->setDuration(400)
->setRate(84.75)
->setUser($user)
->setActivity((new Activity())->setName('bar'))
->setProject($project2);
$timesheet2->setBegin(new DateTime('2018-11-29'));
$timesheet2->setEnd(new DateTime());
$timesheet2->setDuration(400);
$timesheet2->setRate(84.75);
$timesheet2->setUser($user);
$timesheet2->setActivity((new Activity())->setName('bar'));
$timesheet2->setProject($project2);
$timesheet3 = new Timesheet();
$timesheet3
->setBegin(new DateTime('2018-11-28'))
->setEnd(new DateTime())
->setDuration(1800)
->setRate(111.11)
->setUser($user)
->setActivity((new Activity())->setName('foo'))
->setProject($project1);
$timesheet3->setBegin(new DateTime('2018-11-28'));
$timesheet3->setEnd(new DateTime());
$timesheet3->setDuration(1800);
$timesheet3->setRate(111.11);
$timesheet3->setUser($user);
$timesheet3->setActivity((new Activity())->setName('foo'));
$timesheet3->setProject($project1);
$timesheet4 = new Timesheet();
$timesheet4
->setBegin($date)
->setEnd(new DateTime('2018-11-28'))
->setDuration(400)
->setRate(1947.99)
->setUser($user)
->setActivity((new Activity())->setName('blub'))
->setProject($project2);
$timesheet4->setBegin($date);
$timesheet4->setEnd(new DateTime('2018-11-28'));
$timesheet4->setDuration(400);
$timesheet4->setRate(1947.99);
$timesheet4->setUser($user);
$timesheet4->setActivity((new Activity())->setName('blub'));
$timesheet4->setProject($project2);
$timesheet5 = new Timesheet();
$timesheet5
->setBegin(new DateTime('2018-11-28'))
->setEnd(new DateTime())
->setDuration(400)
->setRate(84)
->setUser(new User())
->setActivity(new Activity())
->setProject($project3);
$timesheet5->setBegin(new DateTime('2018-11-28'));
$timesheet5->setEnd(new DateTime());
$timesheet5->setDuration(400);
$timesheet5->setRate(84);
$timesheet5->setUser(new User());
$timesheet5->setActivity(new Activity());
$timesheet5->setProject($project3);
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];

View File

@@ -57,54 +57,49 @@ class DateUserInvoiceCalculatorTest extends AbstractCalculatorTestCase
$project3->method('getId')->willReturn(3);
$timesheet = new Timesheet();
$timesheet
->setBegin(new DateTime('2018-11-29'))
->setEnd(new DateTime())
->setDuration(3600)
->setRate(293.27)
->setUser($user1)
->setActivity((new Activity())->setName('sdsd'))
->setProject($project1);
$timesheet->setBegin(new DateTime('2018-11-29'));
$timesheet->setEnd(new DateTime());
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setUser($user1);
$timesheet->setActivity((new Activity())->setName('sdsd'));
$timesheet->setProject($project1);
$timesheet2 = new Timesheet();
$timesheet2
->setBegin(new DateTime('2018-11-29'))
->setEnd(new DateTime())
->setDuration(400)
->setRate(84.75)
->setUser($user1)
->setActivity((new Activity())->setName('bar'))
->setProject($project2);
$timesheet2->setBegin(new DateTime('2018-11-29'));
$timesheet2->setEnd(new DateTime());
$timesheet2->setDuration(400);
$timesheet2->setRate(84.75);
$timesheet2->setUser($user1);
$timesheet2->setActivity((new Activity())->setName('bar'));
$timesheet2->setProject($project2);
$timesheet3 = new Timesheet();
$timesheet3
->setBegin(new DateTime('2018-11-28'))
->setEnd(new DateTime())
->setDuration(1800)
->setRate(111.11)
->setUser($user1)
->setActivity((new Activity())->setName('foo'))
->setProject($project1);
$timesheet3->setBegin(new DateTime('2018-11-28'));
$timesheet3->setEnd(new DateTime());
$timesheet3->setDuration(1800);
$timesheet3->setRate(111.11);
$timesheet3->setUser($user1);
$timesheet3->setActivity((new Activity())->setName('foo'));
$timesheet3->setProject($project1);
$timesheet4 = new Timesheet();
$timesheet4
->setBegin(new DateTime())
->setEnd(new DateTime())
->setDuration(400)
->setRate(1947.99)
->setUser($user1)
->setActivity((new Activity())->setName('blub'))
->setProject($project2);
$timesheet4->setBegin(new DateTime());
$timesheet4->setEnd(new DateTime());
$timesheet4->setDuration(400);
$timesheet4->setRate(1947.99);
$timesheet4->setUser($user1);
$timesheet4->setActivity((new Activity())->setName('blub'));
$timesheet4->setProject($project2);
$timesheet5 = new Timesheet();
$timesheet5
->setBegin(new DateTime('2018-11-28'))
->setEnd(new DateTime())
->setDuration(400)
->setRate(84)
->setUser($user2)
->setActivity(new Activity())
->setProject($project3);
$timesheet5->setBegin(new DateTime('2018-11-28'));
$timesheet5->setEnd(new DateTime());
$timesheet5->setDuration(400);
$timesheet5->setRate(84);
$timesheet5->setUser($user2);
$timesheet5->setActivity(new Activity());
$timesheet5->setProject($project3);
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];

View File

@@ -54,58 +54,53 @@ class PriceInvoiceCalculatorTest extends AbstractCalculatorTestCase
$project3->method('getId')->willReturn(3);
$timesheet = new Timesheet();
$timesheet
->setBegin(new DateTime('2018-11-29'))
->setEnd(new DateTime())
->setDuration(3600)
->setHourlyRate(293.27)
->setRate(293.27)
->setUser($user)
->setActivity((new Activity())->setName('sdsd'))
->setProject($project1);
$timesheet->setBegin(new DateTime('2018-11-29'));
$timesheet->setEnd(new DateTime());
$timesheet->setDuration(3600);
$timesheet->setHourlyRate(293.27);
$timesheet->setRate(293.27);
$timesheet->setUser($user);
$timesheet->setActivity((new Activity())->setName('sdsd'));
$timesheet->setProject($project1);
$timesheet2 = new Timesheet();
$timesheet2
->setBegin(new DateTime('2018-11-29'))
->setEnd(new DateTime())
->setDuration(400)
->setHourlyRate(293.27)
->setRate(84.75)
->setUser($user)
->setActivity((new Activity())->setName('bar'))
->setProject($project2);
$timesheet2->setBegin(new DateTime('2018-11-29'));
$timesheet2->setEnd(new DateTime());
$timesheet2->setDuration(400);
$timesheet2->setHourlyRate(293.27);
$timesheet2->setRate(84.75);
$timesheet2->setUser($user);
$timesheet2->setActivity((new Activity())->setName('bar'));
$timesheet2->setProject($project2);
$timesheet3 = new Timesheet();
$timesheet3
->setBegin(new DateTime('2018-11-28'))
->setEnd(new DateTime())
->setDuration(1800)
->setFixedRate(111.11)
->setRate(111.11)
->setUser($user)
->setActivity((new Activity())->setName('foo'))
->setProject($project1);
$timesheet3->setBegin(new DateTime('2018-11-28'));
$timesheet3->setEnd(new DateTime());
$timesheet3->setDuration(1800);
$timesheet3->setFixedRate(111.11);
$timesheet3->setRate(111.11);
$timesheet3->setUser($user);
$timesheet3->setActivity((new Activity())->setName('foo'));
$timesheet3->setProject($project1);
$timesheet4 = new Timesheet();
$timesheet4
->setBegin(new DateTime('2018-11-28'))
->setEnd(new DateTime())
->setDuration(400)
->setHourlyRate(0)
->setRate(1947.99)
->setUser($user)
->setActivity((new Activity())->setName('blub'))
->setProject($project2);
$timesheet4->setBegin(new DateTime('2018-11-28'));
$timesheet4->setEnd(new DateTime());
$timesheet4->setDuration(400);
$timesheet4->setHourlyRate(0);
$timesheet4->setRate(1947.99);
$timesheet4->setUser($user);
$timesheet4->setActivity((new Activity())->setName('blub'));
$timesheet4->setProject($project2);
$timesheet5 = new Timesheet();
$timesheet5
->setBegin(new DateTime('2018-11-28'))
->setEnd(new DateTime())
->setDuration(400)
->setRate(84)
->setUser(new User())
->setActivity(new Activity())
->setProject($project3);
$timesheet5->setBegin(new DateTime('2018-11-28'));
$timesheet5->setEnd(new DateTime());
$timesheet5->setDuration(400);
$timesheet5->setRate(84);
$timesheet5->setUser(new User());
$timesheet5->setActivity(new Activity());
$timesheet5->setProject($project3);
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];

View File

@@ -54,54 +54,49 @@ class ProjectInvoiceCalculatorTest extends AbstractCalculatorTestCase
$project3->method('getId')->willReturn(3);
$timesheet = new Timesheet();
$timesheet
->setBegin(new DateTime('2018-11-29'))
->setEnd(new DateTime())
->setDuration(3600)
->setRate(293.27)
->setUser($user)
->setActivity((new Activity())->setName('sdsd'))
->setProject($project1);
$timesheet->setBegin(new DateTime('2018-11-29'));
$timesheet->setEnd(new DateTime());
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setUser($user);
$timesheet->setActivity((new Activity())->setName('sdsd'));
$timesheet->setProject($project1);
$timesheet2 = new Timesheet();
$timesheet2
->setBegin(new DateTime('2018-11-28'))
->setEnd(new DateTime())
->setDuration(400)
->setRate(84.75)
->setUser($user)
->setActivity((new Activity())->setName('bar'))
->setProject($project2);
$timesheet2->setBegin(new DateTime('2018-11-28'));
$timesheet2->setEnd(new DateTime());
$timesheet2->setDuration(400);
$timesheet2->setRate(84.75);
$timesheet2->setUser($user);
$timesheet2->setActivity((new Activity())->setName('bar'));
$timesheet2->setProject($project2);
$timesheet3 = new Timesheet();
$timesheet3
->setBegin(new DateTime('2018-11-29'))
->setEnd(new DateTime())
->setDuration(1800)
->setRate(111.11)
->setUser($user)
->setActivity((new Activity())->setName('foo'))
->setProject($project1);
$timesheet3->setBegin(new DateTime('2018-11-29'));
$timesheet3->setEnd(new DateTime());
$timesheet3->setDuration(1800);
$timesheet3->setRate(111.11);
$timesheet3->setUser($user);
$timesheet3->setActivity((new Activity())->setName('foo'));
$timesheet3->setProject($project1);
$timesheet4 = new Timesheet();
$timesheet4
->setBegin(new DateTime('2018-11-08'))
->setEnd(new DateTime())
->setDuration(400)
->setRate(1947.99)
->setUser($user)
->setActivity((new Activity())->setName('blub'))
->setProject($project2);
$timesheet4->setBegin(new DateTime('2018-11-08'));
$timesheet4->setEnd(new DateTime());
$timesheet4->setDuration(400);
$timesheet4->setRate(1947.99);
$timesheet4->setUser($user);
$timesheet4->setActivity((new Activity())->setName('blub'));
$timesheet4->setProject($project2);
$timesheet5 = new Timesheet();
$timesheet5
->setBegin(new DateTime('2018-11-28'))
->setEnd(new DateTime())
->setDuration(400)
->setRate(84)
->setUser(new User())
->setActivity(new Activity())
->setProject($project3);
$timesheet5->setBegin(new DateTime('2018-11-28'));
$timesheet5->setEnd(new DateTime());
$timesheet5->setDuration(400);
$timesheet5->setRate(84);
$timesheet5->setUser(new User());
$timesheet5->setActivity(new Activity());
$timesheet5->setProject($project3);
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];

View File

@@ -57,54 +57,49 @@ class ProjectUserInvoiceCalculatorTest extends AbstractCalculatorTestCase
$project3->method('getId')->willReturn(3);
$timesheet = new Timesheet();
$timesheet
->setBegin(new DateTime('2018-11-29'))
->setEnd(new DateTime())
->setDuration(3600)
->setRate(293.27)
->setUser($user1)
->setActivity((new Activity())->setName('sdsd'))
->setProject($project1);
$timesheet->setBegin(new DateTime('2018-11-29'));
$timesheet->setEnd(new DateTime());
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setUser($user1);
$timesheet->setActivity((new Activity())->setName('sdsd'));
$timesheet->setProject($project1);
$timesheet2 = new Timesheet();
$timesheet2
->setBegin(new DateTime('2018-11-28'))
->setEnd(new DateTime())
->setDuration(400)
->setRate(84.75)
->setUser($user1)
->setActivity((new Activity())->setName('bar'))
->setProject($project2);
$timesheet2->setBegin(new DateTime('2018-11-28'));
$timesheet2->setEnd(new DateTime());
$timesheet2->setDuration(400);
$timesheet2->setRate(84.75);
$timesheet2->setUser($user1);
$timesheet2->setActivity((new Activity())->setName('bar'));
$timesheet2->setProject($project2);
$timesheet3 = new Timesheet();
$timesheet3
->setBegin(new DateTime('2018-11-29'))
->setEnd(new DateTime())
->setDuration(1800)
->setRate(111.11)
->setUser($user1)
->setActivity((new Activity())->setName('foo'))
->setProject($project1);
$timesheet3->setBegin(new DateTime('2018-11-29'));
$timesheet3->setEnd(new DateTime());
$timesheet3->setDuration(1800);
$timesheet3->setRate(111.11);
$timesheet3->setUser($user1);
$timesheet3->setActivity((new Activity())->setName('foo'));
$timesheet3->setProject($project1);
$timesheet4 = new Timesheet();
$timesheet4
->setBegin(new DateTime('2018-11-08'))
->setEnd(new DateTime())
->setDuration(400)
->setRate(1947.99)
->setUser($user1)
->setActivity((new Activity())->setName('blub'))
->setProject($project2);
$timesheet4->setBegin(new DateTime('2018-11-08'));
$timesheet4->setEnd(new DateTime());
$timesheet4->setDuration(400);
$timesheet4->setRate(1947.99);
$timesheet4->setUser($user1);
$timesheet4->setActivity((new Activity())->setName('blub'));
$timesheet4->setProject($project2);
$timesheet5 = new Timesheet();
$timesheet5
->setBegin(new DateTime('2018-11-28'))
->setEnd(new DateTime())
->setDuration(400)
->setRate(84)
->setUser($user2)
->setActivity(new Activity())
->setProject($project3);
$timesheet5->setBegin(new DateTime('2018-11-28'));
$timesheet5->setEnd(new DateTime());
$timesheet5->setDuration(400);
$timesheet5->setRate(84);
$timesheet5->setUser($user2);
$timesheet5->setActivity(new Activity());
$timesheet5->setProject($project3);
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];

View File

@@ -49,43 +49,37 @@ class ShortInvoiceCalculatorTest extends AbstractCalculatorTestCase
$activity->setProject($project);
$timesheet = new Timesheet();
$timesheet
->setDuration(3600)
->setRate(293.27)
->setHourlyRate(293.27)
->setUser(new User())
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime('2018-11-29'))
->setEnd(new \DateTime())
->addTag((new Tag())->setName('foo'))
->addTag((new Tag())->setName('bar'))
;
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setHourlyRate(293.27);
$timesheet->setUser(new User());
$timesheet->setActivity($activity);
$timesheet->setProject($project);
$timesheet->setBegin(new \DateTime('2018-11-29'));
$timesheet->setEnd(new \DateTime());
$timesheet->addTag((new Tag())->setName('foo'));
$timesheet->addTag((new Tag())->setName('bar'));
$timesheet2 = new Timesheet();
$timesheet2
->setDuration(400)
->setRate(32.59)
->setHourlyRate(293.27)
->setUser(new User())
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime('2018-11-28'))
->setEnd(new \DateTime())
->addTag((new Tag())->setName('bar1'))
;
$timesheet2->setDuration(400);
$timesheet2->setRate(32.59);
$timesheet2->setHourlyRate(293.27);
$timesheet2->setUser(new User());
$timesheet2->setActivity($activity);
$timesheet2->setProject($project);
$timesheet2->setBegin(new \DateTime('2018-11-28'));
$timesheet2->setEnd(new \DateTime());
$timesheet2->addTag((new Tag())->setName('bar1'));
$timesheet3 = new Timesheet();
$timesheet3
->setDuration(1800)
->setRate(146.64)
->setHourlyRate(293.27)
->setUser(new User())
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime('2018-11-29'))
->setEnd(new \DateTime())
;
$timesheet3->setDuration(1800);
$timesheet3->setRate(146.64);
$timesheet3->setHourlyRate(293.27);
$timesheet3->setUser(new User());
$timesheet3->setActivity($activity);
$timesheet3->setProject($project);
$timesheet3->setBegin(new \DateTime('2018-11-29'));
$timesheet3->setEnd(new \DateTime());
$entries = [$timesheet, $timesheet2, $timesheet3];
@@ -134,40 +128,34 @@ class ShortInvoiceCalculatorTest extends AbstractCalculatorTestCase
$activity->setProject($project);
$timesheet = new Timesheet();
$timesheet
->setDuration(3600)
->setRate(293.27)
->setHourlyRate(293.27)
->setUser(new User())
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime())
->setEnd(new \DateTime())
;
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setHourlyRate(293.27);
$timesheet->setUser(new User());
$timesheet->setActivity($activity);
$timesheet->setProject($project);
$timesheet->setBegin(new \DateTime());
$timesheet->setEnd(new \DateTime());
$timesheet2 = new Timesheet();
$timesheet2
->setDuration(400)
->setRate(84)
->setHourlyRate(756.00)
->setUser(new User())
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime())
->setEnd(new \DateTime())
;
$timesheet2->setDuration(400);
$timesheet2->setRate(84);
$timesheet2->setHourlyRate(756.00);
$timesheet2->setUser(new User());
$timesheet2->setActivity($activity);
$timesheet2->setProject($project);
$timesheet2->setBegin(new \DateTime());
$timesheet2->setEnd(new \DateTime());
$timesheet3 = new Timesheet();
$timesheet3
->setDuration(1800)
->setRate(111.11)
->setHourlyRate(222.22)
->setUser(new User())
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime())
->setEnd(new \DateTime())
;
$timesheet3->setDuration(1800);
$timesheet3->setRate(111.11);
$timesheet3->setHourlyRate(222.22);
$timesheet3->setUser(new User());
$timesheet3->setActivity($activity);
$timesheet3->setProject($project);
$timesheet3->setBegin(new \DateTime());
$timesheet3->setEnd(new \DateTime());
$entries = [$timesheet, $timesheet2, $timesheet3];
@@ -212,38 +200,32 @@ class ShortInvoiceCalculatorTest extends AbstractCalculatorTestCase
$activity->setProject($project);
$timesheet = new Timesheet();
$timesheet
->setDuration(3600)
->setRate(293.27)
->setUser(new User())
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime())
->setEnd(new \DateTime())
;
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setUser(new User());
$timesheet->setActivity($activity);
$timesheet->setProject($project);
$timesheet->setBegin(new \DateTime());
$timesheet->setEnd(new \DateTime());
$timesheet2 = new Timesheet();
$timesheet2
->setDuration(400)
->setFixedRate(84)
->setRate(84)
->setUser(new User())
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime())
->setEnd(new \DateTime())
;
$timesheet2->setDuration(400);
$timesheet2->setFixedRate(84);
$timesheet2->setRate(84);
$timesheet2->setUser(new User());
$timesheet2->setActivity($activity);
$timesheet2->setProject($project);
$timesheet2->setBegin(new \DateTime());
$timesheet2->setEnd(new \DateTime());
$timesheet3 = new Timesheet();
$timesheet3
->setDuration(1800)
->setRate(111.11)
->setUser(new User())
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime())
->setEnd(new \DateTime())
;
$timesheet3->setDuration(1800);
$timesheet3->setRate(111.11);
$timesheet3->setUser(new User());
$timesheet3->setActivity($activity);
$timesheet3->setProject($project);
$timesheet3->setBegin(new \DateTime());
$timesheet3->setEnd(new \DateTime());
$entries = [$timesheet, $timesheet2, $timesheet3];

View File

@@ -52,54 +52,49 @@ class UserInvoiceCalculatorTest extends AbstractCalculatorTestCase
$user3->method('getId')->willReturn(3);
$timesheet = new Timesheet();
$timesheet
->setBegin(new \DateTime('2018-11-29'))
->setEnd(new \DateTime())
->setDuration(3600)
->setRate(293.27)
->setUser($user1)
->setActivity($activity)
->setProject((new Project())->setName('bar'));
$timesheet->setBegin(new \DateTime('2018-11-29'));
$timesheet->setEnd(new \DateTime());
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setUser($user1);
$timesheet->setActivity($activity);
$timesheet->setProject((new Project())->setName('bar'));
$timesheet2 = new Timesheet();
$timesheet2
->setBegin(new \DateTime('2018-11-28'))
->setEnd(new \DateTime())
->setDuration(400)
->setRate(84.75)
->setUser($user2)
->setActivity($activity)
->setProject((new Project())->setName('bar'));
$timesheet2->setBegin(new \DateTime('2018-11-28'));
$timesheet2->setEnd(new \DateTime());
$timesheet2->setDuration(400);
$timesheet2->setRate(84.75);
$timesheet2->setUser($user2);
$timesheet2->setActivity($activity);
$timesheet2->setProject((new Project())->setName('bar'));
$timesheet3 = new Timesheet();
$timesheet3
->setBegin(new \DateTime('2018-11-08'))
->setEnd(new \DateTime())
->setDuration(1800)
->setRate(111.11)
->setUser($user1)
->setActivity($activity)
->setProject((new Project())->setName('bar'));
$timesheet3->setBegin(new \DateTime('2018-11-08'));
$timesheet3->setEnd(new \DateTime());
$timesheet3->setDuration(1800);
$timesheet3->setRate(111.11);
$timesheet3->setUser($user1);
$timesheet3->setActivity($activity);
$timesheet3->setProject((new Project())->setName('bar'));
$timesheet4 = new Timesheet();
$timesheet4
->setBegin(new \DateTime('2018-11-28'))
->setEnd(new \DateTime())
->setDuration(400)
->setRate(1947.99)
->setUser($user2)
->setActivity($activity)
->setProject((new Project())->setName('bar'));
$timesheet4->setBegin(new \DateTime('2018-11-28'));
$timesheet4->setEnd(new \DateTime());
$timesheet4->setDuration(400);
$timesheet4->setRate(1947.99);
$timesheet4->setUser($user2);
$timesheet4->setActivity($activity);
$timesheet4->setProject((new Project())->setName('bar'));
$timesheet5 = new Timesheet();
$timesheet5
->setBegin(new \DateTime())
->setEnd(new \DateTime())
->setDuration(400)
->setRate(84)
->setUser($user3)
->setActivity($activity)
->setProject((new Project())->setName('bar'));
$timesheet5->setBegin(new \DateTime());
$timesheet5->setEnd(new \DateTime());
$timesheet5->setDuration(400);
$timesheet5->setRate(84);
$timesheet5->setUser($user3);
$timesheet5->setActivity($activity);
$timesheet5->setProject((new Project())->setName('bar'));
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];

View File

@@ -57,54 +57,49 @@ class WeeklyInvoiceCalculatorTest extends AbstractCalculatorTestCase
$end = new \DateTime('now', $timezone);
$timesheet = new Timesheet();
$timesheet
->setBegin(new DateTime('2018-11-26 12:00:00', $timezone))
->setEnd(clone $end)
->setDuration(3600)
->setRate(293.27)
->setUser($user)
->setActivity((new Activity())->setName('sdsd'))
->setProject($project1);
$timesheet->setBegin(new DateTime('2018-11-26 12:00:00', $timezone));
$timesheet->setEnd(clone $end);
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setUser($user);
$timesheet->setActivity((new Activity())->setName('sdsd'));
$timesheet->setProject($project1);
$timesheet2 = new Timesheet();
$timesheet2
->setBegin(new DateTime('2018-11-26 12:00:00', $timezone))
->setEnd(clone $end)
->setDuration(400)
->setRate(84.75)
->setUser($user)
->setActivity((new Activity())->setName('bar'))
->setProject($project2);
$timesheet2->setBegin(new DateTime('2018-11-26 12:00:00', $timezone));
$timesheet2->setEnd(clone $end);
$timesheet2->setDuration(400);
$timesheet2->setRate(84.75);
$timesheet2->setUser($user);
$timesheet2->setActivity((new Activity())->setName('bar'));
$timesheet2->setProject($project2);
$timesheet3 = new Timesheet();
$timesheet3
->setBegin(new DateTime('2018-11-25 12:00:00', $timezone))
->setEnd(clone $end)
->setDuration(1800)
->setRate(111.11)
->setUser($user)
->setActivity((new Activity())->setName('foo'))
->setProject($project1);
$timesheet3->setBegin(new DateTime('2018-11-25 12:00:00', $timezone));
$timesheet3->setEnd(clone $end);
$timesheet3->setDuration(1800);
$timesheet3->setRate(111.11);
$timesheet3->setUser($user);
$timesheet3->setActivity((new Activity())->setName('foo'));
$timesheet3->setProject($project1);
$timesheet4 = new Timesheet();
$timesheet4
->setBegin(new DateTime('2018-11-25 12:00:00', $timezone))
->setEnd(clone $end)
->setDuration(400)
->setRate(1947.99)
->setUser($user)
->setActivity((new Activity())->setName('blub'))
->setProject($project2);
$timesheet4->setBegin(new DateTime('2018-11-25 12:00:00', $timezone));
$timesheet4->setEnd(clone $end);
$timesheet4->setDuration(400);
$timesheet4->setRate(1947.99);
$timesheet4->setUser($user);
$timesheet4->setActivity((new Activity())->setName('blub'));
$timesheet4->setProject($project2);
$timesheet5 = new Timesheet();
$timesheet5
->setBegin(new DateTime('2018-11-25 12:00:00', $timezone))
->setEnd(clone $end)
->setDuration(400)
->setRate(84)
->setUser(new User())
->setActivity(new Activity())
->setProject($project3);
$timesheet5->setBegin(new DateTime('2018-11-25 12:00:00', $timezone));
$timesheet5->setEnd(clone $end);
$timesheet5->setDuration(400);
$timesheet5->setRate(84);
$timesheet5->setUser(new User());
$timesheet5->setActivity(new Activity());
$timesheet5->setProject($project3);
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];

View File

@@ -43,7 +43,7 @@ class InvoiceModelCustomerHydratorTest extends TestCase
'customer.vat' => '',
'customer.vat_id' => '',
'customer.number' => '',
'customer.country' => null,
'customer.country' => 'AT',
'customer.homepage' => '',
'customer.comment' => '',
'customer.email' => '',

View File

@@ -12,6 +12,7 @@ namespace App\Tests\Invoice\Hydrator;
use App\Invoice\Hydrator\InvoiceModelDefaultHydrator;
use App\Tests\Invoice\Renderer\RendererTestTrait;
use PHPUnit\Framework\TestCase;
use ReflectionObject;
/**
* @covers \App\Invoice\Hydrator\InvoiceModelDefaultHydrator
@@ -30,6 +31,23 @@ class InvoiceModelDefaultHydratorTest extends TestCase
$this->assertModelStructure($result);
}
public function testHydrateThrowsOnMissing(): void
{
$this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage('InvoiceModel needs a template');
$model = $this->getInvoiceModel();
$obj = new ReflectionObject($model);
$prop = $obj->getProperty('template');
$prop->setAccessible(true);
$prop->setValue($model, null);
$sut = new InvoiceModelDefaultHydrator();
$sut->hydrate($model);
}
protected function assertModelStructure(array $model, bool $hasProject = true): void
{
$keys = [
@@ -60,6 +78,8 @@ class InvoiceModelDefaultHydratorTest extends TestCase
'invoice.subtotal_plain',
'template.name',
'template.company',
'template.country',
'template.country_name',
'template.address',
'template.title',
'template.payment_terms',

View File

@@ -111,6 +111,7 @@ class DebugRendererTest extends TestCase
'invoice.subtotal_plain',
'template.name',
'template.company',
'template.country',
'template.address',
'template.title',
'template.payment_terms',
@@ -118,6 +119,7 @@ class DebugRendererTest extends TestCase
'template.vat_id',
'template.contact',
'template.payment_details',
'template.country_name',
'query.day',
'query.month',
'query.month_number',

View File

@@ -88,6 +88,7 @@ trait RendererTestTrait
$customer = new Customer('customer,with/special#name');
$customer->setAddress('Foo' . PHP_EOL . 'Street' . PHP_EOL . '1111 City');
$customer->setCurrency('EUR');
$customer->setCountry('AT');
$customer->setMetaField((new CustomerMeta())->setName('foo-customer')->setValue('bar-customer')->setIsVisible(true));
$template = new InvoiceTemplate();
@@ -152,61 +153,54 @@ trait RendererTestTrait
$user2->method('getVisiblePreferences')->willReturn([$pref1, $pref2]);
$timesheet = new Timesheet();
$timesheet
->setDuration(3600)
->setRate(293.27)
->setUser($user1)
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime('2020-12-13 14:00:00'))
->setEnd(new \DateTime('2020-12-13 15:00:00'))
->setMetaField((new TimesheetMeta())->setName('foo-timesheet')->setValue('bar-timesheet')->setIsVisible(true));
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setUser($user1);
$timesheet->setActivity($activity);
$timesheet->setProject($project);
$timesheet->setBegin(new \DateTime('2020-12-13 14:00:00'));
$timesheet->setEnd(new \DateTime('2020-12-13 15:00:00'));
$timesheet->setMetaField((new TimesheetMeta())->setName('foo-timesheet')->setValue('bar-timesheet')->setIsVisible(true));
$timesheet2 = new Timesheet();
$timesheet2
->setDuration(400)
->setRate(84.75)
->setUser($user2)
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime('2020-08-13 14:00:00'))
->setEnd(new \DateTime('2020-08-13 14:06:40'))
->setMetaField((new TimesheetMeta())->setName('foo-timesheet')->setValue('bar-timesheet'))
->setMetaField((new TimesheetMeta())->setName('foo-timesheet2')->setValue('bar-timesheet2')->setIsVisible(true))
;
$timesheet2->setDuration(400);
$timesheet2->setRate(84.75);
$timesheet2->setUser($user2);
$timesheet2->setActivity($activity);
$timesheet2->setProject($project);
$timesheet2->setBegin(new \DateTime('2020-08-13 14:00:00'));
$timesheet2->setEnd(new \DateTime('2020-08-13 14:06:40'));
$timesheet2->setMetaField((new TimesheetMeta())->setName('foo-timesheet')->setValue('bar-timesheet'));
$timesheet2->setMetaField((new TimesheetMeta())->setName('foo-timesheet2')->setValue('bar-timesheet2')->setIsVisible(true));
$timesheet3 = new Timesheet();
$timesheet3
->setDuration(1800)
->setRate(111.11)
->setUser($user1)
->setActivity($activity2)
->setDescription('== jhg ljhg ') // make sure that spreadsheets don't render it as formula
->setProject($project2)
->setBegin(new \DateTime('2020-08-12 18:00:00'))
->setEnd(new \DateTime('2020-08-12 18:30:00'))
->setMetaField((new TimesheetMeta())->setName('foo-timesheet')->setValue('bar-timesheet1')->setIsVisible(true))
;
$timesheet3->setDuration(1800);
$timesheet3->setRate(111.11);
$timesheet3->setUser($user1);
$timesheet3->setActivity($activity2);
$timesheet3->setDescription('== jhg ljhg '); // make sure that spreadsheets don't render it as formula
$timesheet3->setProject($project2);
$timesheet3->setBegin(new \DateTime('2020-08-12 18:00:00'));
$timesheet3->setEnd(new \DateTime('2020-08-12 18:30:00'));
$timesheet3->setMetaField((new TimesheetMeta())->setName('foo-timesheet')->setValue('bar-timesheet1')->setIsVisible(true));
$timesheet4 = new Timesheet();
$timesheet4
->setDuration(400)
->setRate(1947.99)
->setUser($user2)
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime('2020-12-13 14:00:00'))
->setEnd(new \DateTime('2020-12-13 14:06:40'))
->setDescription(
"foo\n" .
"foo\r\n" .
'foo' . PHP_EOL .
"bar\n" .
"bar\r\n" .
'Hello'
)
->setMetaField((new TimesheetMeta())->setName('foo-timesheet3')->setValue('bluuuub')->setIsVisible(true))
;
$timesheet4->setDuration(400);
$timesheet4->setRate(1947.99);
$timesheet4->setUser($user2);
$timesheet4->setActivity($activity);
$timesheet4->setProject($project);
$timesheet4->setBegin(new \DateTime('2020-12-13 14:00:00'));
$timesheet4->setEnd(new \DateTime('2020-12-13 14:06:40'));
$timesheet4->setDescription(
"foo\n" .
"foo\r\n" .
'foo' . PHP_EOL .
"bar\n" .
"bar\r\n" .
'Hello'
);
$timesheet4->setMetaField((new TimesheetMeta())->setName('foo-timesheet3')->setValue('bluuuub')->setIsVisible(true));
$userKevin = new User();
$userKevin->setUserIdentifier('kevin');
@@ -214,23 +208,21 @@ trait RendererTestTrait
$userKevin->addPreference($pref2);
$timesheet5 = new Timesheet();
$timesheet5
->setDuration(400)
->setFixedRate(84)
->setUser($userKevin)
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime('2021-03-12 12:13:00'))
->setEnd(new \DateTime('2021-03-12 12:17:40'))
->setDescription(
"foo\n" .
"foo\r\n" .
'foo' . PHP_EOL .
"bar\n" .
"bar\r\n" .
'Hello'
)
;
$timesheet5->setDuration(400);
$timesheet5->setFixedRate(84);
$timesheet5->setUser($userKevin);
$timesheet5->setActivity($activity);
$timesheet5->setProject($project);
$timesheet5->setBegin(new \DateTime('2021-03-12 12:13:00'));
$timesheet5->setEnd(new \DateTime('2021-03-12 12:17:40'));
$timesheet5->setDescription(
"foo\n" .
"foo\r\n" .
'foo' . PHP_EOL .
"bar\n" .
"bar\r\n" .
'Hello'
);
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];
@@ -279,6 +271,7 @@ trait RendererTestTrait
$user->addPreference(new UserPreference('hello', 'world'));
$customer = new Customer('customer,with/special#name');
$customer->setCountry('DE');
$customer->setCurrency('USD');
$customer->setMetaField((new CustomerMeta())->setName('foo-customer')->setValue('bar-customer')->setIsVisible(true));
@@ -307,15 +300,13 @@ trait RendererTestTrait
$user1->method('getVisiblePreferences')->willReturn([$pref1, $pref2]);
$timesheet = new Timesheet();
$timesheet
->setDuration(3600)
->setRate(293.27)
->setUser($user1)
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime('2020-08-12 18:00:00'))
->setEnd(new \DateTime('2021-03-12 18:30:00'))
;
$timesheet->setDuration(3600);
$timesheet->setRate(293.27);
$timesheet->setUser($user1);
$timesheet->setActivity($activity);
$timesheet->setProject($project);
$timesheet->setBegin(new \DateTime('2020-08-12 18:00:00'));
$timesheet->setEnd(new \DateTime('2021-03-12 18:30:00'));
$entries = [$timesheet];