Warenwirtschaft: AP-00 bis AP-08 + aktualisierter Entwicklungsplan
Umsetzung der Warenwirtschafts-/Produktmanagement-Erweiterung gemaess Entwicklungsplan V4.0: - AP-00: Regressionsbasis fuer 5.1-Features (ProductPhase51Test) - AP-01: URL-Bugfixes B1/B2 (suppliers/packaging-items, breitere url-Spalten) - AP-04/04.1: iPad-taugliche, vereinheitlichte Tabellen-Aktionen - AP-05: Einstellungen "Allgemein" mit UST-Saetzen (tax_rates) und Lieferzeit-Vorlagen (delivery_times, inkl. Tage-Feld) - AP-06: Lieferanten um Bestellweg, Bestell-Mail/-URL und Lieferzeit erweitert - AP-07/07.1: INCI um Lieferanten-Mehrfachwahl, UST und Lieferzeit erweitert; Lieferanten-Detailansicht im Modal mit pflegbaren INCI-/Verpackungslisten - AP-08: Einkauf um UST-Snapshot, Netto/Brutto-Automatik und Duplizieren erweitert Entwicklungsplan aktualisiert: alle Klaerungspunkte (§5) vom Kunden beantwortet und in die jeweiligen APs eingearbeitet (AP-02/03/09/13/15), neues AP-18 (Hinweise-Doku unter Einstellungen) ergaenzt. Naechster Schritt eindeutig markiert: AP-09 (Produktion auf Hersteller-Rezeptur, kein Fallback, Warnung).
This commit is contained in:
parent
ca3eb663fe
commit
78679e0c55
67 changed files with 3523 additions and 101 deletions
|
|
@ -2,9 +2,12 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\StoreIngredientRequest;
|
||||
use App\Models\DeliveryTime;
|
||||
use App\Models\Ingredient;
|
||||
use App\Models\ProductIngredient;
|
||||
use Request;
|
||||
use App\Models\Supplier;
|
||||
use App\Models\TaxRate;
|
||||
|
||||
class IngredientController extends Controller
|
||||
{
|
||||
|
|
@ -29,40 +32,35 @@ class IngredientController extends Controller
|
|||
$model = new Ingredient;
|
||||
$model->active = true;
|
||||
} else {
|
||||
$model = Ingredient::findOrFail($id);
|
||||
$model = Ingredient::with('suppliers')->findOrFail($id);
|
||||
}
|
||||
$data = [
|
||||
'model' => $model,
|
||||
// 'trans' => array_keys(config('localization.supportedLocales')),
|
||||
|
||||
'taxRates' => TaxRate::query()->active()->orderBy('pos')->orderBy('name')->get(),
|
||||
'deliveryTimes' => DeliveryTime::query()->active()->orderBy('pos')->orderBy('label')->get(),
|
||||
'suppliers' => Supplier::query()->where('active', true)->orderBy('name')->get(),
|
||||
];
|
||||
|
||||
return view('admin.ingredient.edit', $data);
|
||||
}
|
||||
|
||||
public function store()
|
||||
public function store(StoreIngredientRequest $request)
|
||||
{
|
||||
$data = $request->validated();
|
||||
$data['default_factor'] = $data['default_factor'] ?? 1.10;
|
||||
|
||||
$data = Request::all();
|
||||
$data['active'] = isset($data['active']) ? true : false;
|
||||
if (isset($data['default_factor']) && $data['default_factor'] !== '') {
|
||||
$data['default_factor'] = reFormatNumber($data['default_factor']) ?: 1.10;
|
||||
}
|
||||
if (isset($data['min_stock_alert']) && $data['min_stock_alert'] === '') {
|
||||
$data['min_stock_alert'] = null;
|
||||
} elseif (isset($data['min_stock_alert']) && $data['min_stock_alert'] !== null) {
|
||||
$data['min_stock_alert'] = reFormatNumber($data['min_stock_alert']);
|
||||
}
|
||||
if (empty($data['material_quality_id'])) {
|
||||
$data['material_quality_id'] = null;
|
||||
}
|
||||
if ($data['id'] === 'new') {
|
||||
$supplierIds = $request->input('supplier_ids', []);
|
||||
unset($data['supplier_ids']);
|
||||
|
||||
if ($request->input('id') === 'new') {
|
||||
$model = Ingredient::create($data);
|
||||
} else {
|
||||
$model = Ingredient::find($data['id']);
|
||||
$model = Ingredient::findOrFail($request->input('id'));
|
||||
$model->fill($data)->save();
|
||||
}
|
||||
|
||||
$model->suppliers()->sync($supplierIds);
|
||||
|
||||
\Session()->flash('alert-save', '1');
|
||||
|
||||
return redirect(route('admin_product_ingredients'));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue