No description
Lagerplatz-Zuordnung (Raum/Regal/Fach) gab es bisher nur bei Rohstoffen. Jetzt dieselbe Storage-Hierarchie (StorageRoom/Shelf/Slot) auch für Produkte und Verpackungsartikel, inkl. Anzeige an den passenden Stellen. - Migration: storage_room_id/shelf/slot an products + packaging_items (nullable, FK constrained, nullOnDelete). - Models Product + PackagingItem: fillable + storageRoom/Shelf/Slot-Relationen + storageLabel() („Raum 1 | Regal 3 | A"). - Produktformular (Inventar-Abschnitt) + Verpackungsformular: Auswahl-Zeile Raum/Regal/Fach; Optionen kommen aktiv/sortiert aus den zentral pflegbaren Bausteinen (Einstellungen → Allgemein). - Speichern: ProductRepository normalisiert leere Auswahl -> null (FK); PackagingItem-Requests + Repository um die drei Felder erweitert. - Anzeige: Produktbestand (Sub-Zeile mit Marker), Produktverpackung-Übersicht (neue Spalte „Lagerplatz"). - DeletionGuard: Lagerbaustein ist nicht löschbar, solange Produkte/Verpackung darauf verweisen (analog Rohstoffe). Tests: 4 neue (Produkt speichern + leer->null, Verpackung speichern + Anzeige, Löschsperre, freier Baustein löschbar). Migration auf Dev-/Live-DB gelaufen. Suite 331 grün. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .cursor | ||
| .devcontainer | ||
| .idea | ||
| app | ||
| bootstrap | ||
| config | ||
| database | ||
| dev | ||
| docker/8.4 | ||
| docs | ||
| packages | ||
| public | ||
| resources | ||
| routes | ||
| storage | ||
| tests | ||
| tools | ||
| .env | ||
| .gitignore | ||
| .mcp.json | ||
| .php-cs-fixer.php | ||
| .phpstorm.meta.php | ||
| _ide_helper.php | ||
| _ide_helper_models.php | ||
| artisan | ||
| CLAUDE.md | ||
| composer.json | ||
| composer.lock | ||
| docker-compose.yml | ||
| package-lock.json | ||
| package.json | ||
| partner.gruene-seele.bio.code-workspace | ||
| PAYMENT_REMINDER_CRON.md | ||
| phpunit.xml | ||
| pint.json | ||
| server.php | ||
| ssh-cron-info.readme | ||
| ssh-info.readme | ||
| webpack.mix.js | ||