diff --git a/Changes.md b/Changes.md index f377105..70b67bd 100644 --- a/Changes.md +++ b/Changes.md @@ -2,6 +2,17 @@ --- +## 2026-08-11 – belege/detail.php in Teil-Views und externe JS-Dateien aufgeteilt (#157) + +- `src/Views/belege/detail.php` war mit 1.548 Zeilen die mit Abstand größte Datei der Anwendung, davon 827 Zeilen JavaScript in neun ` - - - -
Dieser Beleg ist gesperrt (GoBD). Keine weiteren Buchungen möglich.
- - - - - - - - - [ - 'id' => (int)$a['id'], - 'lfd_nr' => (int)$a['lfd_nr'], - 'bezeichnung' => $a['bezeichnung'], - 'anschaffungsdatum' => $a['anschaffungsdatum'], - 'anschaffungskosten' => (float)$a['anschaffungskosten'], - 'account_id' => $a['account_id'] !== null ? (int)$a['account_id'] : null, -], $assets ?? []), JSON_HEX_TAG); -?> - - - - - - - - + + + + - - - - + - - + + + + - - - - - + + + diff --git a/tests/14_UstBruttoAnzeigeTest.php b/tests/14_UstBruttoAnzeigeTest.php index d793b5b..83045e8 100644 --- a/tests/14_UstBruttoAnzeigeTest.php +++ b/tests/14_UstBruttoAnzeigeTest.php @@ -5,8 +5,9 @@ declare(strict_types=1); /** * Test 14: USt- und Brutto-Anzeige im Buchungsformular * - * Prüft, dass die notwendigen HTML-Elemente und die JS-Funktion - * updateNettoAnzeige() im Beleg-Detailview vorhanden sind. + * Prüft, dass die notwendigen HTML-Elemente (Teil-View _buchungsform.php) + * und die JS-Funktion updateNettoAnzeige() (static/js/beleg-form.js) + * vorhanden sind. */ class UstBruttoAnzeigeTest extends TestCase { @@ -14,12 +15,20 @@ class UstBruttoAnzeigeTest extends TestCase public function run(): void { - $viewFile = __DIR__ . '/../src/Views/belege/detail.php'; - $content = file_get_contents($viewFile); + $viewFile = __DIR__ . '/../src/Views/belege/_buchungsform.php'; + $jsFile = __DIR__ . '/../public/static/js/beleg-form.js'; + $viewContent = file_get_contents($viewFile); + $jsContent = file_get_contents($jsFile); + $content = $viewContent . "\n" . $jsContent; $this->assert( - $content !== false, - 'View-Datei belege/detail.php ist lesbar' + $viewContent !== false, + 'Teil-View belege/_buchungsform.php ist lesbar' + ); + + $this->assert( + $jsContent !== false, + 'JS-Datei static/js/beleg-form.js ist lesbar' ); $this->assert( diff --git a/tests/61_BetragModusToggleTest.php b/tests/61_BetragModusToggleTest.php index b6ee142..9023234 100644 --- a/tests/61_BetragModusToggleTest.php +++ b/tests/61_BetragModusToggleTest.php @@ -5,9 +5,10 @@ declare(strict_types=1); /** * Test 61: Netto/Brutto-Umschalter im Buchungsformular * - * Prüft, dass im Beleg-Detailview die beiden Umschalt-Buttons für - * Netto- bzw. Bruttobetrag vorhanden sind und die zugehörige JS-Logik - * (Moduswechsel, Umrechnung, Konvertierung vor dem Absenden) existiert. + * Prüft, dass in der Teil-View _buchungsform.php die beiden Umschalt-Buttons + * für Netto- bzw. Bruttobetrag vorhanden sind und die zugehörige JS-Logik + * (Moduswechsel, Umrechnung, Konvertierung vor dem Absenden) in + * static/js/beleg-form.js existiert. */ class BetragModusToggleTest extends TestCase { @@ -15,12 +16,20 @@ class BetragModusToggleTest extends TestCase public function run(): void { - $viewFile = __DIR__ . '/../src/Views/belege/detail.php'; - $content = file_get_contents($viewFile); + $viewFile = __DIR__ . '/../src/Views/belege/_buchungsform.php'; + $jsFile = __DIR__ . '/../public/static/js/beleg-form.js'; + $viewContent = file_get_contents($viewFile); + $jsContent = file_get_contents($jsFile); + $content = $viewContent . "\n" . $jsContent; $this->assert( - $content !== false, - 'View-Datei belege/detail.php ist lesbar' + $viewContent !== false, + 'Teil-View belege/_buchungsform.php ist lesbar' + ); + + $this->assert( + $jsContent !== false, + 'JS-Datei static/js/beleg-form.js ist lesbar' ); $this->assert( diff --git a/tests/86_BelegDetailStrukturTest.php b/tests/86_BelegDetailStrukturTest.php new file mode 100644 index 0000000..dad3f89 --- /dev/null +++ b/tests/86_BelegDetailStrukturTest.php @@ -0,0 +1,98 @@ +-Blöcken) die mit Abstand größte View der Anwendung. Dieser Test + * hält die im Zuge der Aufteilung entstandene Struktur fest: detail.php ist + * nur noch ein Gerüst aus Includes und