osb/app/Http/Controllers/UserController.php

74 lines
1.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use Carbon\Carbon;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Session;
use App\Http\Requests\{AccountSupplierAdd,UserEdit};
use App\Models\{Account,Supplier,User};
class UserController extends Controller
{
/**
* Update user settings
*
* @param UserEdit $request
* @param User $o
* @return RedirectResponse
*/
public function edit(UserEdit $request,User $o): RedirectResponse
{
foreach (Arr::except($request->validated(),['password']) as $field => $value)
$o->{$field} = $value;
if ($x=$request->validated('password'))
$o->password = Hash::make($x);
return redirect()
->back()
->with('success',($o->isDirty() && $o->save()) ? 'User Updated' : 'No Changes');
}
/**
* Add a supplier to a user's profile
*
* @param AccountSupplierAdd $request
* @param Account $o
* @return RedirectResponse
*/
public function supplier_addedit(AccountSupplierAdd $request,Account $o): RedirectResponse
{
$o->suppliers()->attach([
$request->validated('supplier_id') => [
'supplier_ref'=>$request->validated('supplier_ref'),
'created_at'=>Carbon::now(),
]
]);
return redirect()
->back()
->with('success','Supplier Added');
}
/**
* Remove a supplier from a user's profile
*
* @param Account $o
* @param Supplier $so
* @return RedirectResponse
*/
public function supplier_delete(Account $o,Supplier $so): RedirectResponse
{
Session::put('supplier_update',TRUE);
$o->suppliers()->detach([$so->id]);
return redirect()
->back()
->with('success','Supplier Deleted');
}
}