From c3fe8d1c3927d0fca673d9259fd1c621f8acba2d Mon Sep 17 00:00:00 2001 From: Kevin Papst Date: Wed, 9 Dec 2020 10:49:48 +0100 Subject: [PATCH] access custom-fields in twig invoice templates (#2168) --- src/Invoice/InvoiceItem.php | 9 +++++++++ tests/Invoice/InvoiceItemTest.php | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/src/Invoice/InvoiceItem.php b/src/Invoice/InvoiceItem.php index 488c6c47..b71efb4a 100644 --- a/src/Invoice/InvoiceItem.php +++ b/src/Invoice/InvoiceItem.php @@ -88,6 +88,15 @@ final class InvoiceItem return $this->additionalFields; } + public function getAdditionalField(string $name, $default = null) + { + if (isset($this->additionalFields[$name])) { + return $this->additionalFields[$name]; + } + + return $default; + } + public function getActivity(): ?Activity { return $this->activity; diff --git a/tests/Invoice/InvoiceItemTest.php b/tests/Invoice/InvoiceItemTest.php index 5ddb969d..59851baa 100644 --- a/tests/Invoice/InvoiceItemTest.php +++ b/tests/Invoice/InvoiceItemTest.php @@ -30,6 +30,10 @@ class InvoiceItemTest extends TestCase self::assertNull($sut->getProject()); self::assertIsArray($sut->getAdditionalFields()); self::assertEmpty($sut->getAdditionalFields()); + self::assertNull($sut->getAdditionalField('foo')); + self::assertEquals('bar', $sut->getAdditionalField('foo', 'bar')); + self::assertInstanceOf(InvoiceItem::class, $sut->addAdditionalField('foo', 'bar2')); + self::assertEquals('bar2', $sut->getAdditionalField('foo')); self::assertEquals(0, $sut->getAmount()); self::assertNull($sut->getBegin()); self::assertNull($sut->getActivity());