added invoice archive & configurable invoice numbers (#1541)

This commit is contained in:
Kevin Papst
2020-03-14 01:16:58 +01:00
committed by GitHub
parent dd64eb98f9
commit e6e6a1eeea
106 changed files with 2587 additions and 339 deletions

View File

@@ -33,33 +33,6 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest
$this->assertEmptyModel(new ActivityInvoiceCalculator());
}
public function testExceptionNoActivity()
{
$this->expectException('Exception');
$this->expectExceptionMessage('Cannot work with invoice items that do not have an activity');
$timesheet = new Timesheet();
$sut = new ActivityInvoiceCalculator();
$model = $this->getEmptyModel();
$model->addEntries([$timesheet]);
$sut->setModel($model);
$sut->getEntries();
}
public function testExceptionNoId()
{
$this->expectException('Exception');
$this->expectExceptionMessage('Cannot handle un-persisted activities');
$timesheet = new Timesheet();
$timesheet->setActivity(new Activity());
$sut = new ActivityInvoiceCalculator();
$model = $this->getEmptyModel();
$model->addEntries([$timesheet]);
$sut->setModel($model);
$sut->getEntries();
}
public function testWithMultipleEntries()
{
$customer = new Customer();
@@ -128,7 +101,35 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest
->setActivity($activity3)
->setProject((new Project())->setName('bar'));
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];
$timesheet6 = new Timesheet();
$timesheet6
->setBegin(new \DateTime())
->setEnd(new \DateTime())
->setDuration(0)
->setRate(0)
->setUser(new User())
->setProject((new Project())->setName('bar'));
$timesheet7 = new Timesheet();
$timesheet7
->setBegin(new \DateTime())
->setEnd(new \DateTime())
->setDuration(0)
->setRate(0)
->setUser(new User())
->setActivity(new Activity())
->setProject((new Project())->setName('bar'));
$timesheet8 = new Timesheet();
$timesheet8
->setBegin(new \DateTime())
->setEnd(new \DateTime())
->setDuration(0)
->setRate(0)
->setUser(new User())
->setProject((new Project())->setName('bar'));
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5, $timesheet6, $timesheet7, $timesheet8];
$query = new InvoiceQuery();
$query->setActivity($activity1);
@@ -148,7 +149,7 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest
$this->assertEquals('EUR', $model->getCurrency());
$this->assertEquals(2521.12, $sut->getSubtotal());
$this->assertEquals(6600, $sut->getTimeWorked());
$this->assertEquals(3, count($sut->getEntries()));
$this->assertEquals(5, count($sut->getEntries()));
$entries = $sut->getEntries();
$this->assertEquals(404.38, $entries[0]->getRate());