74 lines
2.2 KiB
PHP
74 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin\Inventory;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\Inventory\StoreSupplierRequest;
|
|
use App\Http\Requests\Inventory\UpdateSupplierRequest;
|
|
use App\Models\Country;
|
|
use App\Models\Supplier;
|
|
use App\Models\SupplierCategory;
|
|
use App\Repositories\SupplierRepository;
|
|
|
|
class SupplierController extends Controller
|
|
{
|
|
public function __construct(
|
|
protected SupplierRepository $supplierRepository
|
|
) {}
|
|
|
|
public function index()
|
|
{
|
|
return view('admin.inventory.suppliers.index', [
|
|
'values' => Supplier::query()->with(['country', 'supplierCategories'])->orderBy('name')->get(),
|
|
]);
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
$defaultCountryId = Country::where('code', 'DE')->value('id');
|
|
|
|
return view('admin.inventory.suppliers.form', [
|
|
'model' => new Supplier(['active' => true, 'country_id' => $defaultCountryId]),
|
|
'countries' => Country::query()->orderBy('de')->get(),
|
|
'supplierCategories' => SupplierCategory::query()->orderBy('pos')->orderBy('name')->get(),
|
|
]);
|
|
}
|
|
|
|
public function store(StoreSupplierRequest $request)
|
|
{
|
|
$this->supplierRepository->create($request->validated());
|
|
|
|
\Session::flash('alert-save', '1');
|
|
|
|
return redirect()->route('admin.inventory.suppliers.index');
|
|
}
|
|
|
|
public function edit(Supplier $supplier)
|
|
{
|
|
$supplier->load('supplierCategories');
|
|
|
|
return view('admin.inventory.suppliers.form', [
|
|
'model' => $supplier,
|
|
'countries' => Country::query()->orderBy('de')->get(),
|
|
'supplierCategories' => SupplierCategory::query()->orderBy('pos')->orderBy('name')->get(),
|
|
]);
|
|
}
|
|
|
|
public function update(UpdateSupplierRequest $request, Supplier $supplier)
|
|
{
|
|
$this->supplierRepository->update($supplier, $request->validated());
|
|
|
|
\Session::flash('alert-save', '1');
|
|
|
|
return redirect()->route('admin.inventory.suppliers.index');
|
|
}
|
|
|
|
public function destroy(Supplier $supplier)
|
|
{
|
|
$supplier->delete();
|
|
|
|
\Session::flash('alert-success', __('Eintrag gelöscht'));
|
|
|
|
return redirect()->route('admin.inventory.suppliers.index');
|
|
}
|
|
}
|