diff --git a/tests/78_NummernkreisFreigabeTest.php b/tests/78_NummernkreisFreigabeTest.php index b1574ad..f366b4e 100644 --- a/tests/78_NummernkreisFreigabeTest.php +++ b/tests/78_NummernkreisFreigabeTest.php @@ -19,6 +19,7 @@ class NummernkreisFreigabeTest extends TestCase public function run(): void { + $this->nummernkreisAufAktuellenMonat(); $this->rechnungsnummerWirdFreigegeben(); $this->aeltereRechnungsnummerBleibtVerbraucht(); $this->belegnummerWirdFreigegeben(); @@ -114,6 +115,25 @@ class NummernkreisFreigabeTest extends TestCase // ── Hilfsfunktionen ───────────────────────────────────────────────────── + /** + * Setzt den gespeicherten Monat des Rechnungsnummernkreises auf den + * laufenden Monat. + * + * Ohne das misst der Test am Monatswechsel vorbei: Steht in + * company_settings noch ein früherer Monat, beginnt generateRechnungsNr() + * den Zähler planmäßig wieder bei 1, und die Deltas dieses Tests + * (vorher + 1, danach wieder vorher) gehen nicht auf. Der Monatsreset ist + * gewolltes Verhalten und hat mit der hier geprüften Freigabe nichts zu + * tun. Die Änderung fällt mit dem Transaktions-Rollback wieder weg. + */ + private function nummernkreisAufAktuellenMonat(): void + { + \Steuerkram\Database::execute( + 'UPDATE company_settings SET invoice_nr_year=?, invoice_nr_month=? WHERE id=1', + [(int)date('Y'), (int)date('n')] + ); + } + private function invoiceNrNext(): int { $row = \Steuerkram\Database::fetchOne('SELECT invoice_nr_next FROM company_settings WHERE id=1');