From 3586b708d84595eb473d53be98005355f83c7742 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sat, 24 Oct 2026 14:18:31 +0200 Subject: [PATCH] Fill in e-invoicing settings for the public demo The host's demo reset runs a module's Demo\DemoSeeder for the demo company. This one switches e-invoicing on with an example IBAN and BIC and payment terms, so the demo's invoices show as e-invoices straight away. A company that already has an IBAN is left alone. Version 0.1.1. --- app/Demo/DemoSeeder.php | 40 +++++++++++++++++++++++++++++++++++ module.json | 2 +- tests/Unit/DemoSeederTest.php | 35 ++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 app/Demo/DemoSeeder.php create mode 100644 tests/Unit/DemoSeederTest.php diff --git a/app/Demo/DemoSeeder.php b/app/Demo/DemoSeeder.php new file mode 100644 index 0000000..b6e0d48 --- /dev/null +++ b/app/Demo/DemoSeeder.php @@ -0,0 +1,40 @@ +iban($companyId) !== null) { + return; + } + + $settings->save($companyId, [ + 'enabled' => true, + 'iban' => self::IBAN, + 'bic' => self::BIC, + 'payment_terms' => self::PAYMENT_TERMS, + ]); + } +} diff --git a/module.json b/module.json index f9baf7b..8fc2084 100644 --- a/module.json +++ b/module.json @@ -17,7 +17,7 @@ "requires": {}, "schema_version": 2, "slug": "e-invoicing", - "version": "0.1.0", + "version": "0.1.1", "license": "AGPL-3.0-only", "compatibility": { "invoiceshelf": ">=3.0.0-alpha.13 <4.0.0", diff --git a/tests/Unit/DemoSeederTest.php b/tests/Unit/DemoSeederTest.php new file mode 100644 index 0000000..808ccff --- /dev/null +++ b/tests/Unit/DemoSeederTest.php @@ -0,0 +1,35 @@ +setContainer(app())->__invoke(['companyId' => self::COMPANY]); + + self::assertSame([ + 'enabled' => true, + 'iban' => DemoSeeder::IBAN, + 'bic' => DemoSeeder::BIC, + 'payment_terms' => DemoSeeder::PAYMENT_TERMS, + ], app(EInvoicingSettings::class)->forCompany(self::COMPANY)); + } + + public function test_a_company_that_already_has_an_iban_is_left_alone(): void + { + $settings = app(EInvoicingSettings::class); + $settings->save(self::COMPANY, ['enabled' => false, 'iban' => self::IBAN]); + + app(DemoSeeder::class)->setContainer(app())->__invoke(['companyId' => self::COMPANY]); + + self::assertSame(['enabled' => false, 'iban' => self::IBAN, 'bic' => null, 'payment_terms' => null], $settings->forCompany(self::COMPANY)); + } +}