assert(array_key_exists('customer_nr_prefix', $settings), 'customer_nr_prefix-Spalte existiert in company_settings'); // Präfix in den Einstellungen speichern und lesen $originalPrefix = $settings['customer_nr_prefix'] ?? 'K-'; $testPrefix = 'TEST-'; Setting::update(array_merge($settings, ['customer_nr_prefix' => $testPrefix])); $updated = Setting::get(); $this->assertEquals($testPrefix, $updated['customer_nr_prefix'], 'customer_nr_prefix wird korrekt gespeichert'); // Kundennummer mit neuem Präfix generieren $nr = Customer::generateKundennummer(); $this->assert(str_starts_with($nr, $testPrefix), 'Generierte Kundennummer beginnt mit neuem Präfix'); $numericPart = substr($nr, strlen($testPrefix)); $this->assert(ctype_digit($numericPart), 'Numerischer Teil der Kundennummer enthält nur Ziffern'); $this->assert((int)$numericPart > 0, 'Numerischer Teil > 0'); // Zurücksetzen auf Standard-Präfix Setting::update(array_merge($updated, ['customer_nr_prefix' => 'K-'])); $reset = Setting::get(); $this->assertEquals('K-', $reset['customer_nr_prefix'], 'Präfix auf K- zurückgesetzt'); // Kundennummer mit Default-Präfix K- $nrDefault = Customer::generateKundennummer(); $this->assert(str_starts_with($nrDefault, 'K-'), 'Generierte Kundennummer beginnt mit K-'); // Originalwert wiederherstellen Setting::update(array_merge($reset, ['customer_nr_prefix' => $originalPrefix])); } }