/home2/mshostin/crm.ms-hostingladz.com/app/Http/Controllers/DepartmentController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Department;
use App\Models\ComplaintType;
use App\Models\Complaints;
use App\Models\User;
class DepartmentController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$departments = Department::paginate(10);
return view('pages.departments.index', compact('departments'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$ct = ComplaintType::orderBy('title', 'asc')->get();
return view('pages.departments.create', compact('ct'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
$request->validate([
'comp_type_id' => 'required|integer|exists:complaint_types,id',
'name' => 'required|max:255',
'description' => 'nullable',
'status' => 'required|boolean',
]);
Department::create($request->all());
return redirect()->route('departments.index')->with('success', 'Department created successfully.');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$department = Department::findOrFail($id);
$ct = ComplaintType::orderBy('title', 'asc')->get();
return view('pages.departments.edit', compact('department', 'ct'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
$request->validate([
'comp_type_id' => 'required|integer|exists:complaint_types,id',
'name' => 'required|max:255',
'description' => 'nullable',
'status' => 'required|boolean',
]);
$department = Department::findOrFail($id);
$department->update($request->all());
return redirect()->route('departments.index')->with('success', 'Department updated successfully.');
}
public function detail($id)
{
$depart = User::with('assignedComplaints')->find($id);
$complaints = Complaints::whereIn('id', function ($q) use ($depart) {
$q->select('complaint_id')
->from('complaint_assign_department')
->where('user_id', $depart->id);
})->paginate(20);
// dd($complaints->toArray());
return view('pages.departments.details', compact('depart','complaints'));
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$department = Department::findOrFail($id);
$department->delete();
return redirect()->route('departments.index')->with('success', 'Department deleted successfully.');
}
}