74 lines
1.6 KiB
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');
|
|
}
|
|
} |