Warenwirtschaft: AP-23 Rezeptur-Phasen (Hersteller-Rezeptur)

- Tabelle recipe_phases + product_ingredients.recipe_phase_id (nullable,
  rueckwaertskompatibel: Bestandsrezepturen bleiben phasenlos)
- Produktformular: Hersteller-Rezeptur in Phasen-Bloecke gegliedert
  (Name, Notiz, Rohstoffe je Phase, Drag&Drop auch zwischen Phasen,
  "+ Neue Phase", 100%-Summe global ueber alle Phasen)
- Repository: Phasen-Persistierung (Auto-Name Phase A/B..., einzelner
  unbenannter Block bleibt phasenlos), copy() uebernimmt Phasenstruktur
- Produktions-Sollmengen rechnen unveraendert ueber alle Zeilen
- Blade-Fix: inline @php() + @php-Block im selben Template paarten sich
  falsch (Raw-Block verschluckte halbes Formular) - auf Block-Form vereinheitlicht
- Hinweise-Doku fortgeschrieben

Tests: RecipePhaseTest (6 gruen), volle Suite 178 gruen, 649 Assertions

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-07-06 12:02:39 +00:00
parent ea36067831
commit 97d420c98a
10 changed files with 592 additions and 100 deletions

View file

@ -50,6 +50,7 @@ class ProductIngredient extends Model
'gram',
'factor',
'recipe_type',
'recipe_phase_id',
];
public function ingredient()
@ -61,4 +62,9 @@ class ProductIngredient extends Model
{
return $this->belongsTo(Product::class, 'product_id');
}
public function phase()
{
return $this->belongsTo(RecipePhase::class, 'recipe_phase_id');
}
}