Warenwirtschaft: F-15 — ml-Einkauf bleibt beim Kopieren ml-Bestellung
Einheit, ml-Menge und Dichte-Snapshot werden übernommen; fehlt die Rohstoff-Dichte inzwischen, greift der Snapshot der Vorlage. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
8808ff538f
commit
c2a17835ef
3 changed files with 59 additions and 1 deletions
|
|
@ -50,6 +50,9 @@ class StockEntryRepository
|
|||
protected function applyPurchaseUnit(array $data): array
|
||||
{
|
||||
$orderedUnit = $data['ordered_unit'] ?? 'gram';
|
||||
// F-15: Dichte-Snapshot der Vorlage (Kopie) als Rückfall, falls die Rohstoff-Dichte
|
||||
// inzwischen entfernt wurde — sonst würde die ml-Menge still als Gramm gebucht.
|
||||
$fallbackDensity = isset($data['density_used']) && (float) $data['density_used'] > 0 ? (float) $data['density_used'] : null;
|
||||
unset($data['ordered_unit']);
|
||||
|
||||
if (($data['entry_type'] ?? '') !== 'ingredient') {
|
||||
|
|
@ -63,7 +66,7 @@ class StockEntryRepository
|
|||
$data['density_used'] = null;
|
||||
|
||||
if ($orderedUnit === 'ml') {
|
||||
$density = Ingredient::query()->whereKey($data['ingredient_id'] ?? null)->value('density');
|
||||
$density = Ingredient::query()->whereKey($data['ingredient_id'] ?? null)->value('density') ?? $fallbackDensity;
|
||||
if ($density !== null && (float) $density > 0) {
|
||||
$data['purchase_unit'] = 'ml';
|
||||
$data['density_used'] = (float) $density;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue