Warenwirtschaft: Anforderungsrunde 12.06. — Plan V5.0 + AP-26/AP-25/AP-22
Neue Anforderungen (docs/) interpretiert und als Entwicklungsplan V5.0 (AP-20 bis AP-28) aufgenommen; erste drei Pakete umgesetzt: AP-26 Ausschuss-Gründe konfigurierbar: - Stammdaten-Tabelle disposal_reasons + CRUD unter Einstellungen → Allgemein - StockDisposalController liest aktive DB-Gründe statt hartkodierter Liste - Seeder übernimmt die bisherigen 6 Gründe idempotent AP-25 Lieferbestand — Datum statt Tage: - "Nicht vorrätig" wird über Datepicker "Wieder lieferbar ab" gepflegt; Resttage-Hinweis zählt täglich automatisch herunter - Interne Bestellliste wieder kaufbar: Hinweis erscheint zusätzlich zu den Mengen-Buttons (VP entscheidet selbst) AP-22 Produktbestand-Erweiterungen: - Default-Sortierung nach Dringlichkeit, Status-Kopf toggelt - Alle vier Status-Kacheln als Filter klickbar - Neue Spalte "Verbrauch/Monat" (Ø Abgänge der letzten 6 Monate) - Produkt-Flag "Im Produktbestand anzeigen" (products.show_in_product_stock) Tests: 77 grün (DisposalReasonSettings 8, ProductOutOfStock 8, ProductStock 13 + Regression). Hinweise-Doku + Plan-Protokoll fortgeschrieben; nächster Schritt laut Plan: AP-21 (INCI-Erweiterungen). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a8f6fef38e
commit
e53201f229
32 changed files with 1377 additions and 94 deletions
|
|
@ -103,18 +103,18 @@
|
|||
<div class="card mb-2" id="product-section-verfuegbarkeit">
|
||||
<h5 class="card-header">{{ __('Verfügbarkeit') }}</h5>
|
||||
<div class="card-body">
|
||||
@php($outOfStockDays = $product->outOfStockRemainingDays())
|
||||
@php($outOfStockActive = $product->out_of_stock_until !== null && $product->out_of_stock_until->endOfDay()->isFuture())
|
||||
<div class="form-group">
|
||||
<label class="custom-control custom-checkbox">
|
||||
{!! Form::checkbox('out_of_stock_active', 1, old('out_of_stock_active', $outOfStockDays !== null), ['class' => 'custom-control-input', 'id' => 'out_of_stock_active']) !!}
|
||||
<span class="custom-control-label">{{ __('Vorübergehend nicht vorrätig (mit Zeitangabe)') }}</span>
|
||||
{!! Form::checkbox('out_of_stock_active', 1, old('out_of_stock_active', $outOfStockActive), ['class' => 'custom-control-input', 'id' => 'out_of_stock_active']) !!}
|
||||
<span class="custom-control-label">{{ __('Vorübergehend nicht vorrätig (mit Datum)') }}</span>
|
||||
</label>
|
||||
<p class="text-muted small mb-0">{{ __('Zeigt im Shop den Hinweis „In ca. X Tagen wieder da!". Der Kauf bleibt weiterhin möglich.') }}</p>
|
||||
<p class="text-muted small mb-0">{{ __('Zeigt im Shop den Hinweis „In ca. X Tagen wieder da!" – die Tage zählen täglich automatisch herunter. Der Kauf bleibt weiterhin möglich.') }}</p>
|
||||
</div>
|
||||
<div class="form-row js-out-of-stock-days" style="display:none;">
|
||||
<div class="form-row js-out-of-stock-date" style="display:none;">
|
||||
<div class="form-group col-sm-4">
|
||||
<label class="form-label" for="out_of_stock_days">{{ __('Wieder verfügbar in (Tagen)') }}</label>
|
||||
{{ Form::number('out_of_stock_days', old('out_of_stock_days', $outOfStockDays), ['placeholder' => __('z. B. 14'), 'class' => 'form-control', 'id' => 'out_of_stock_days', 'min' => 0, 'step' => 1]) }}
|
||||
<label class="form-label" for="out_of_stock_date">{{ __('Wieder lieferbar ab') }}</label>
|
||||
{{ Form::text('out_of_stock_date', old('out_of_stock_date', optional($product->out_of_stock_until)->format('d.m.Y')), ['placeholder' => __('tt.mm.jjjj'), 'class' => 'form-control datepicker-base', 'id' => 'out_of_stock_date', 'autocomplete' => 'off']) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -1029,6 +1029,14 @@
|
|||
</div>
|
||||
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
<label class="custom-control custom-checkbox">
|
||||
{!! Form::checkbox('show_in_product_stock', 1, old('show_in_product_stock', $product->exists ? $product->show_in_product_stock : true), ['class' => 'custom-control-input', 'id' => 'show_in_product_stock']) !!}
|
||||
<span class="custom-control-label">{{ __('Im Produktbestand anzeigen') }}</span>
|
||||
</label>
|
||||
<p class="text-muted small mb-0">{{ __('Abwählen für Positionen ohne Lagerführung (z. B. Abrechnung Druckkosten, Logo-Etiketten).') }}</p>
|
||||
</div>
|
||||
|
||||
<p class="text-muted small mb-2">{{ __('Produktbestand-Schwellwerte (Stück). Bei Erreichen wird das Produkt im Produktbestand farblich markiert.') }}</p>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-6">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue