Warenwirtschaft: F-09 — Ausschuss ohne Charge standort- und chargenkonsistent
Ohne Charge wird gegen den Restbestand des gewählten Lagerorts geprüft und die Menge FEFO auf die dort verfügbaren Chargen verteilt (je Charge gebucht, in einer Transaktion) — wie der Produktionsverbrauch. Gesamt-, Standort- und Chargenbestand stimmen damit überein. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
2796b1103e
commit
db27f040e6
3 changed files with 107 additions and 5 deletions
|
|
@ -88,11 +88,14 @@ class StoreStockDisposalRequest extends FormRequest
|
|||
$ingredientId = (int) $this->input('ingredient_id');
|
||||
|
||||
if (! $this->filled('stock_entry_id')) {
|
||||
if ($ingredientId > 0 && $quantity > 0) {
|
||||
// Prüfung 08.09.2026 F-09: ohne Charge gegen den gewählten Lagerort prüfen,
|
||||
// nicht gegen den globalen Bestand (sonst geht ein leerer Standort ins Minus).
|
||||
$locationId = (int) $this->input('location_id');
|
||||
if ($ingredientId > 0 && $quantity > 0 && $locationId > 0) {
|
||||
$remaining = app(InventoryService::class)
|
||||
->remainingByIngredient([$ingredientId])[$ingredientId] ?? 0.0;
|
||||
->remainingByLocationForIngredient($ingredientId)[$locationId] ?? 0.0;
|
||||
if ($quantity > $remaining) {
|
||||
$validator->errors()->add('quantity', __('Die Menge (:qty g) übersteigt den Restbestand (:rest g).', [
|
||||
$validator->errors()->add('quantity', __('Die Menge (:qty g) übersteigt den Restbestand am gewählten Lagerort (:rest g).', [
|
||||
'qty' => number_format($quantity, 2, ',', '.'),
|
||||
'rest' => number_format(max(0, $remaining), 2, ',', '.'),
|
||||
]));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue