Change supplier resources to use components

This commit is contained in:
2024-08-18 13:58:18 +10:00
parent 283ae06a5c
commit 5139b26a05
12 changed files with 255 additions and 558 deletions

View File

@@ -4,10 +4,11 @@ namespace App\Http\Controllers;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use App\Http\Requests\{SupplierAddEdit,SupplierProductAddEdit};
use App\Models\{Cost,Supplier,SupplierDetail};
use App\Jobs\ImportCosts;
use App\Models\{Cost,Supplier,SupplierDetail};
class SupplierController extends Controller
{
@@ -20,9 +21,7 @@ class SupplierController extends Controller
*/
public function addedit(SupplierAddEdit $request,Supplier $o)
{
$this->middleware(['auth','wholesaler']);
foreach ($request->except(['_token','supplier_details','api_key','api_secret','submit']) as $key => $item)
foreach (Arr::except($request->validated(),['supplier_details','api_key','api_secret','submit']) as $key => $item)
$o->{$key} = $item;
$o->active = (bool)$request->active;
@@ -51,19 +50,6 @@ class SupplierController extends Controller
->with('success','Supplier Saved');
}
/**
* Site up site wide suppliers, or a site's supplier details
*
* @note This method is protected by the routes
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View
*/
public function admin_home()
{
$this->middleware(['auth','wholesaler']);
return view('theme.backend.adminlte.supplier.home');
}
/**
* Show the suppliers invoice
*
@@ -99,19 +85,9 @@ class SupplierController extends Controller
$filename,
)->onQueue('low');
return redirect()->back()->with('success','File uploaded');
}
/**
* New Product from a supplier
*
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View
*/
public function product_add()
{
return view('theme.backend.adminlte.supplier.product.addedit')
->with('o',new Supplier)
->with('oo',NULL);
return redirect()
->back()
->with('success','File uploaded');
}
public function product_addedit(SupplierProductAddEdit $request,Supplier $o,int $id,string $type)
@@ -127,7 +103,7 @@ class SupplierController extends Controller
$oo = Supplier\Broadband::findOrNew($id);
// @todo these are broadband requirements - get them from the broadband class.
foreach ($request->only([
foreach (Arr::only($request->validated(),[
'supplier_detail_id',
'product_id'.
'product_desc',
@@ -151,8 +127,8 @@ class SupplierController extends Controller
$oo->$key = $value;
// Our boolean values
foreach ($request->only(['active','extra_shaped','extra_charged']) as $key => $value)
$oo->$key = ($value == 'on' ? 1 : 0);
foreach (Arr::only($request->validated(),['active','extra_shaped','extra_charged']) as $key => $value)
$oo->{$key} = ($value == 'on' ? 1 : 0);
break;
@@ -162,28 +138,11 @@ class SupplierController extends Controller
$oo->save();
return redirect()->back()
return redirect()
->back()
->with('success','Saved');
}
/**
* Edit a supplier product
*
* @param Supplier $o
* @param int $id
* @param string $type
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View
*/
public function product_view(Supplier $o,int $id,string $type)
{
$oo = $o->detail->find($type,$id);
$oo->load(['products.product.services.product.type']);
return view('theme.backend.adminlte.supplier.product.addedit')
->with('o',$o)
->with('oo',$oo);
}
/**
* Return the form for a specific product type
*
@@ -200,24 +159,10 @@ class SupplierController extends Controller
$request->session()->flashInput($request->old);
if ($o)
$o->load(['products.product.services']);
$o->load(['products.products.services']);
return view('theme.backend.adminlte.supplier.product.widget.'.$type)
->with('o',$id ? $o : NULL)
->withErrors($request->errors);
}
/**
* View a supplier.
*
* @param Supplier|null $o
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View
*/
public function view(?Supplier $o)
{
$this->middleware(['auth','wholesaler']);
return view('theme.backend.adminlte.supplier.details')
->with('o',$o);
}
}