Warenwirtschaft: AP-48 — Produktbestand-Buchungsgründe pflegbar, getrennt Ein/Aus
Kundenentscheid 26.08. (D-5): Eingang und Ausgang haben eigene, pflegbare Gründe-Listen statt einer festen Liste im Controller. - Neues Modell/Tabelle stock_movement_reasons (label, direction in/out, pos, active, SoftDeletes) inkl. Seed der bisherigen Gründe sinnvoll auf Ein-/Ausgang aufgeteilt. - CRUD wie DisposalReason (SettingCrudController + FormRequest + Formular mit Richtungs-Auswahl); zwei Listen (Eingangs-/Ausgangs-Gründe) auf der Seite Einstellungen → Allgemeines, „Neu anlegen" mit vorbelegter Richtung. - Produktbestand-Maske: das Grund-Dropdown wird jetzt je nach Eingang/Ausgang per JS aus den passenden, gepflegten Gründen befüllt (manualReasons entfernt). - DeletionGuard: StockMovementReason immer löschbar. Migration create_stock_movement_reasons auf Dev-/Live-DB. 4 Tests, Suite 326 grün. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
e08c8dec40
commit
190713c21b
12 changed files with 381 additions and 22 deletions
|
|
@ -16,6 +16,7 @@ use App\Http\Controllers\Admin\Inventory\ProductStockController as InventoryProd
|
|||
use App\Http\Controllers\Admin\Inventory\RawMaterialStockController as InventoryRawMaterialStockController;
|
||||
use App\Http\Controllers\Admin\Inventory\StockDisposalController as InventoryStockDisposalController;
|
||||
use App\Http\Controllers\Admin\Inventory\StockEntryController as InventoryStockEntryController;
|
||||
use App\Http\Controllers\Admin\Inventory\StockMovementReasonController;
|
||||
use App\Http\Controllers\Admin\Inventory\StorageRoomController as InventoryStorageRoomController;
|
||||
use App\Http\Controllers\Admin\Inventory\StorageShelfController as InventoryStorageShelfController;
|
||||
use App\Http\Controllers\Admin\Inventory\StorageSlotController as InventoryStorageSlotController;
|
||||
|
|
@ -294,6 +295,7 @@ Route::domain(config('app.domain'))->group(function () {
|
|||
Route::resource('tax-rates', InventoryTaxRateController::class)->except(['index', 'show']);
|
||||
Route::resource('delivery-times', InventoryDeliveryTimeController::class)->except(['index', 'show']);
|
||||
Route::resource('disposal-reasons', InventoryDisposalReasonController::class)->except(['index', 'show']);
|
||||
Route::resource('stock-movement-reasons', StockMovementReasonController::class)->except(['index', 'show']);
|
||||
Route::resource('storage-rooms', InventoryStorageRoomController::class)->except(['index', 'show']);
|
||||
Route::resource('storage-shelves', InventoryStorageShelfController::class)->except(['index', 'show']);
|
||||
Route::resource('storage-slots', InventoryStorageSlotController::class)->except(['index', 'show']);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue