Move user suppliers to account suppliers
This commit is contained in:
@@ -4,14 +4,12 @@ namespace App\Http\Controllers;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
use App\Http\Requests\UserEdit;
|
||||
use App\Models\{Supplier,User};
|
||||
use App\Http\Requests\{AccountSupplierAdd,UserEdit};
|
||||
use App\Models\{Account,Supplier,User};
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
@@ -38,23 +36,15 @@ class UserController extends Controller
|
||||
/**
|
||||
* Add a supplier to a user's profile
|
||||
*
|
||||
* @param Request $request
|
||||
* @param User $o
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @param AccountSupplierAdd $request
|
||||
* @param Account $o
|
||||
* @return RedirectResponse
|
||||
*/
|
||||
public function supplier_addedit(Request $request,User $o)
|
||||
public function supplier_addedit(AccountSupplierAdd $request,Account $o): RedirectResponse
|
||||
{
|
||||
Session::put('supplier_update',true);
|
||||
|
||||
$validated = $request->validate([
|
||||
'id'=> ['required','string',Rule::unique('supplier_user')->where(fn ($query) => $query->where('supplier_id',$request->supplier_id)->where('user_id','<>',$o->id))],
|
||||
'supplier_id'=>'required|exists:suppliers,id',
|
||||
]);
|
||||
|
||||
$o->suppliers()->attach([
|
||||
$validated['supplier_id'] => [
|
||||
'id'=>$validated['id'],
|
||||
'site_id'=>$o->site_id,
|
||||
$request->validated('supplier_id') => [
|
||||
'supplier_ref'=>$request->validated('supplier_ref'),
|
||||
'created_at'=>Carbon::now(),
|
||||
]
|
||||
]);
|
||||
@@ -67,13 +57,13 @@ class UserController extends Controller
|
||||
/**
|
||||
* Remove a supplier from a user's profile
|
||||
*
|
||||
* @param User $o
|
||||
* @param Account $o
|
||||
* @param Supplier $so
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @return RedirectResponse
|
||||
*/
|
||||
public function supplier_delete(User $o,Supplier $so)
|
||||
public function supplier_delete(Account $o,Supplier $so): RedirectResponse
|
||||
{
|
||||
Session::put('supplier_update',true);
|
||||
Session::put('supplier_update',TRUE);
|
||||
|
||||
$o->suppliers()->detach([$so->id]);
|
||||
|
||||
|
42
app/Http/Requests/AccountSupplierAdd.php
Normal file
42
app/Http/Requests/AccountSupplierAdd.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class AccountSupplierAdd extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return Gate::allows('wholesaler');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
Session::put('supplier_update',true);
|
||||
|
||||
return [
|
||||
'supplier_ref'=> [
|
||||
'required',
|
||||
'string',
|
||||
'min:2',
|
||||
Rule::unique('account_supplier')
|
||||
->where(fn($query)=>$query
|
||||
->where('account_id',request()->get('account_id')))
|
||||
->where('supplier_id',request()->get('supplier_id')),
|
||||
],
|
||||
'supplier_id'=>'required|exists:suppliers,id',
|
||||
];
|
||||
}
|
||||
}
|
@@ -159,6 +159,15 @@ class Account extends Model implements IDs
|
||||
->active();
|
||||
}
|
||||
|
||||
/**
|
||||
* Supplier configuration for this account
|
||||
*/
|
||||
public function suppliers()
|
||||
{
|
||||
return $this->belongsToMany(Supplier::class)
|
||||
->withPivot('supplier_ref','created_at');
|
||||
}
|
||||
|
||||
/**
|
||||
* Taxes applicable for this account
|
||||
*/
|
||||
|
@@ -132,17 +132,6 @@ class User extends Authenticatable implements IDs
|
||||
return $this->hasOneThrough(Rtm::class,Account::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Supplier configuration for this user
|
||||
*
|
||||
* @deprecated To move to account->suppliers()
|
||||
*/
|
||||
public function suppliers()
|
||||
{
|
||||
return $this->belongsToMany(Supplier::class)
|
||||
->withPivot('id','created_at');
|
||||
}
|
||||
|
||||
/* ATTRIBUTES */
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user