Fix all page controllers and missing enums
- Update all controllers to pass required variables to views - Add MediaTypeEnum, OrderTypeEnum, TrackingActionTypeEnum enums - Fix RoleEnum, OrderStatusEnum completeness Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
33
app/Enums/MediaTypeEnum.php
Normal file
33
app/Enums/MediaTypeEnum.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
enum MediaTypeEnum: string
|
||||
{
|
||||
case ALL = 'all';
|
||||
case PASSPORT_CUSTOMER = 'passport_customer';
|
||||
case OBJECT_PHOTO = 'object_photo';
|
||||
case OBJECT_FILES = 'object_files';
|
||||
case CERTIFICATE = 'certificate';
|
||||
case APPRAISER_CERTIFICATE = 'appraiser_certificate';
|
||||
case INSURANCE_POLICY = 'insurance_policy';
|
||||
case COMPARES = 'compares';
|
||||
case PARTICIPATE_CERTIFICATE = 'participate_certificate';
|
||||
case ADDITIONAL = 'additional';
|
||||
|
||||
public static function getLabel(string $type): string
|
||||
{
|
||||
return match($type) {
|
||||
'passport_customer' => 'translation.passport-customer',
|
||||
'object_photo' => 'translation.object-photo',
|
||||
'object_files' => 'translation.object-files',
|
||||
'certificate' => 'translation.certificate',
|
||||
'appraiser_certificate' => 'translation.appraiser-certificate',
|
||||
'insurance_policy' => 'translation.insurance-policy',
|
||||
'compares' => 'translation.compares',
|
||||
'participate_certificate'=> 'translation.participate-certificate',
|
||||
'additional' => 'translation.additional',
|
||||
default => $type,
|
||||
};
|
||||
}
|
||||
}
|
||||
9
app/Enums/OrderTypeEnum.php
Normal file
9
app/Enums/OrderTypeEnum.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
enum OrderTypeEnum: string
|
||||
{
|
||||
case AUTO = 'auto_';
|
||||
case ESTATE = 'estate_';
|
||||
}
|
||||
12
app/Enums/TrackingActionTypeEnum.php
Normal file
12
app/Enums/TrackingActionTypeEnum.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
enum TrackingActionTypeEnum: string
|
||||
{
|
||||
case ORDER = 'order_created';
|
||||
case MEMBERS = 'members_added';
|
||||
case ATTACHMENTS = 'attachment';
|
||||
case COMPLETED = 'completed';
|
||||
case REJECTED = 'rejected';
|
||||
}
|
||||
@@ -3,17 +3,51 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class AutoController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
return view('auto.index');
|
||||
$filters = $request->only(['search', 'period', 'status', 'appraiser', 'diller', 'purpose']);
|
||||
$size = $request->get('size', 20);
|
||||
|
||||
$query = DB::table('auto_orders')->orderByDesc('id');
|
||||
|
||||
if (!empty($filters['search'])) {
|
||||
$s = '%' . $filters['search'] . '%';
|
||||
$query->where(function ($q) use ($s) {
|
||||
$q->where('number', 'like', $s)
|
||||
->orWhere('ordered_customer', 'like', $s);
|
||||
});
|
||||
}
|
||||
if (!empty($filters['status'])) {
|
||||
$query->where('status', $filters['status']);
|
||||
}
|
||||
if (!empty($filters['purpose'])) {
|
||||
$query->where('purpose', $filters['purpose']);
|
||||
}
|
||||
|
||||
$orders = $query->paginate($size)->withQueryString();
|
||||
|
||||
$stats = DB::table('auto_orders')
|
||||
->selectRaw('status, count(*) as cnt')
|
||||
->groupBy('status')
|
||||
->pluck('cnt', 'status');
|
||||
|
||||
$purposeCases = DB::table('auto_orders')->distinct()->pluck('purpose');
|
||||
$concerns = DB::table('concerns')->get();
|
||||
|
||||
return view('auto.index', compact('orders', 'stats', 'filters', 'size', 'purposeCases', 'concerns'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('auto.create');
|
||||
$concerns = DB::table('concerns')->get();
|
||||
$purposes = DB::table('purposes')->get();
|
||||
$regions = DB::table('regions')->get();
|
||||
$appraisers = DB::table('users')->where('role', 'appraiser')->where('status', 'active')->get();
|
||||
return view('auto.create', compact('concerns', 'purposes', 'regions', 'appraisers'));
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
@@ -23,7 +57,11 @@ class AutoController extends Controller
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
return view('auto.edit', compact('id'));
|
||||
$order = DB::table('auto_orders')->find($id);
|
||||
$concerns = DB::table('concerns')->get();
|
||||
$purposes = DB::table('purposes')->get();
|
||||
$regions = DB::table('regions')->get();
|
||||
return view('auto.edit', compact('order', 'concerns', 'purposes', 'regions'));
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
@@ -33,22 +71,34 @@ class AutoController extends Controller
|
||||
|
||||
public function show($order)
|
||||
{
|
||||
return view('auto.show', compact('order'));
|
||||
$order = DB::table('auto_orders')->find($order);
|
||||
$members = DB::table('order_members')->where('order_id', $order->id ?? 0)->where('order_type', 'auto_')->get();
|
||||
$appraisers = DB::table('users')->where('role', 'appraiser')->where('status', 'active')->get();
|
||||
$isAppraisers = $members->where('user_id', auth()->id())->count() > 0;
|
||||
$files = DB::table('files')->where('order_id', $order->id ?? 0)->where('order_type', 'auto_')->get();
|
||||
return view('auto.show', compact('order', 'members', 'appraisers', 'isAppraisers', 'files'));
|
||||
}
|
||||
|
||||
public function showActivities($order)
|
||||
{
|
||||
return view('auto.show-activities', compact('order'));
|
||||
$order = DB::table('auto_orders')->find($order);
|
||||
$actions = DB::table('tracking_actions')->where('order_id', $order->id ?? 0)->latest()->get();
|
||||
return view('auto.show-activities', compact('order', 'actions'));
|
||||
}
|
||||
|
||||
public function showTeam($order)
|
||||
{
|
||||
return view('auto.show-team', compact('order'));
|
||||
$order = DB::table('auto_orders')->find($order);
|
||||
$members = DB::table('order_members')->where('order_id', $order->id ?? 0)->where('order_type', 'auto_')->get();
|
||||
$appraisers = DB::table('users')->where('role', 'appraiser')->where('status', 'active')->get();
|
||||
return view('auto.show-team', compact('order', 'members', 'appraisers'));
|
||||
}
|
||||
|
||||
public function showDocuments($order)
|
||||
{
|
||||
return view('auto.show-documents', compact('order'));
|
||||
$order = DB::table('auto_orders')->find($order);
|
||||
$files = DB::table('files')->where('order_id', $order->id ?? 0)->where('order_type', 'auto_')->get();
|
||||
return view('auto.show-documents', compact('order', 'files'));
|
||||
}
|
||||
|
||||
public function orderClone($id)
|
||||
|
||||
@@ -3,12 +3,16 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class BonusController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
return view('bonus.index');
|
||||
$size = $request->get('size', 20);
|
||||
$bonuses = DB::table('bonuses')->orderByDesc('id')->paginate($size);
|
||||
$bonus = null;
|
||||
return view('bonus.index', compact('bonuses', 'bonus', 'size'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
@@ -23,12 +27,14 @@ class BonusController extends Controller
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
return view('bonus.show', compact('id'));
|
||||
$bonus = DB::table('bonuses')->find($id);
|
||||
return view('bonus.show', compact('bonus'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
return view('bonus.edit', compact('id'));
|
||||
$bonus = DB::table('bonuses')->find($id);
|
||||
return view('bonus.edit', compact('bonus'));
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
|
||||
@@ -3,12 +3,17 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class CertificateController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
return view('certificate.index');
|
||||
$size = $request->get('size', 20);
|
||||
$certificates = DB::table('certificates')->orderByDesc('id')->paginate($size);
|
||||
$certificate = null;
|
||||
$message = session('message');
|
||||
return view('certificate.index', compact('certificates', 'certificate', 'message', 'size'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
@@ -23,12 +28,14 @@ class CertificateController extends Controller
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
return view('certificate.show', compact('id'));
|
||||
$certificate = DB::table('certificates')->find($id);
|
||||
return view('certificate.show', compact('certificate'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
return view('certificate.edit', compact('id'));
|
||||
$certificate = DB::table('certificates')->find($id);
|
||||
return view('certificate.edit', compact('certificate'));
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
|
||||
@@ -3,41 +3,46 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class ConcernController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
return view('concerns.index');
|
||||
$concerns = DB::table('concerns')->get();
|
||||
$concern = null;
|
||||
return view('concerns.index', compact('concerns', 'concern'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('concerns.create');
|
||||
}
|
||||
public function create() { return view('concerns.create'); }
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
DB::table('concerns')->insert(['name' => $request->name, 'created_at' => now(), 'updated_at' => now()]);
|
||||
return redirect()->route('concerns.index');
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
return view('concerns.show', compact('id'));
|
||||
$concern = DB::table('concerns')->find($id);
|
||||
return view('concerns.show', compact('concern'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
return view('concerns.edit', compact('id'));
|
||||
$concern = DB::table('concerns')->find($id);
|
||||
return view('concerns.edit', compact('concern'));
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
DB::table('concerns')->where('id', $id)->update(['name' => $request->name, 'updated_at' => now()]);
|
||||
return redirect()->route('concerns.index');
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
DB::table('concerns')->delete($id);
|
||||
return redirect()->route('concerns.index');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,17 +3,31 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class DebitController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
return view('debit.index');
|
||||
$filters = $request->only(['search', 'status', 'appraiser']);
|
||||
$size = $request->get('size', 20);
|
||||
|
||||
$query = DB::table('debits')->orderByDesc('id');
|
||||
if (!empty($filters['appraiser'])) $query->where('appraiser_id', $filters['appraiser']);
|
||||
if (!empty($filters['status'])) $query->where('status', $filters['status']);
|
||||
|
||||
$debits = $query->paginate($size)->withQueryString();
|
||||
$appraisers = DB::table('users')->where('role', 'appraiser')->get();
|
||||
$debit = null;
|
||||
$appraiser = null;
|
||||
|
||||
return view('debit.index', compact('debits', 'appraisers', 'filters', 'debit', 'appraiser', 'size'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('debit.create');
|
||||
$appraisers = DB::table('users')->where('role', 'appraiser')->get();
|
||||
return view('debit.create', compact('appraisers'));
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
@@ -23,12 +37,15 @@ class DebitController extends Controller
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
return view('debit.show', compact('id'));
|
||||
$debit = DB::table('debits')->find($id);
|
||||
return view('debit.show', compact('debit'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
return view('debit.edit', compact('id'));
|
||||
$debit = DB::table('debits')->find($id);
|
||||
$appraisers = DB::table('users')->where('role', 'appraiser')->get();
|
||||
return view('debit.edit', compact('debit', 'appraisers'));
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
|
||||
@@ -3,11 +3,15 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class DillerController extends Controller
|
||||
{
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
return view('diller.index');
|
||||
$size = $request->get('size', 20);
|
||||
$dillers = DB::table('users')->where('role', 'diller')->paginate($size);
|
||||
$user = auth()->user();
|
||||
return view('diller.index', compact('dillers', 'user', 'size'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,41 +3,46 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class DistrictController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
return view('districts.index');
|
||||
$districts = DB::table('districts')->get();
|
||||
$district = null;
|
||||
return view('districts.index', compact('districts', 'district'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('districts.create');
|
||||
}
|
||||
public function create() { return view('districts.create'); }
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
DB::table('districts')->insert(['name' => $request->name, 'region_id' => $request->region_id, 'created_at' => now(), 'updated_at' => now()]);
|
||||
return redirect()->route('districts.index');
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
return view('districts.show', compact('id'));
|
||||
$district = DB::table('districts')->find($id);
|
||||
return view('districts.show', compact('district'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
return view('districts.edit', compact('id'));
|
||||
$district = DB::table('districts')->find($id);
|
||||
return view('districts.edit', compact('district'));
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
DB::table('districts')->where('id', $id)->update(['name' => $request->name, 'updated_at' => now()]);
|
||||
return redirect()->route('districts.index');
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
DB::table('districts')->delete($id);
|
||||
return redirect()->route('districts.index');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,17 +3,50 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class EstateController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
return view('estate.index');
|
||||
$filters = $request->only(['search', 'period', 'status', 'appraiser', 'diller', 'purpose']);
|
||||
$size = $request->get('size', 20);
|
||||
|
||||
$query = DB::table('estate_orders')->orderByDesc('id');
|
||||
|
||||
if (!empty($filters['search'])) {
|
||||
$s = '%' . $filters['search'] . '%';
|
||||
$query->where(function ($q) use ($s) {
|
||||
$q->where('number', 'like', $s)
|
||||
->orWhere('ordered_customer', 'like', $s);
|
||||
});
|
||||
}
|
||||
if (!empty($filters['status'])) {
|
||||
$query->where('status', $filters['status']);
|
||||
}
|
||||
if (!empty($filters['purpose'])) {
|
||||
$query->where('purpose', $filters['purpose']);
|
||||
}
|
||||
|
||||
$orders = $query->paginate($size)->withQueryString();
|
||||
|
||||
$stats = DB::table('estate_orders')
|
||||
->selectRaw('status, count(*) as cnt')
|
||||
->groupBy('status')
|
||||
->pluck('cnt', 'status');
|
||||
|
||||
$purposeCases = DB::table('estate_orders')->distinct()->pluck('purpose');
|
||||
|
||||
return view('estate.index', compact('orders', 'stats', 'filters', 'size', 'purposeCases'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('estate.create');
|
||||
$purposes = DB::table('purposes')->get();
|
||||
$regions = DB::table('regions')->get();
|
||||
$concerns = DB::table('concerns')->get();
|
||||
$appraisers = DB::table('users')->where('role', 'appraiser')->where('status', 'active')->get();
|
||||
return view('estate.create', compact('purposes', 'regions', 'concerns', 'appraisers'));
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
@@ -23,7 +56,11 @@ class EstateController extends Controller
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
return view('estate.edit', compact('id'));
|
||||
$order = DB::table('estate_orders')->find($id);
|
||||
$purposes = DB::table('purposes')->get();
|
||||
$regions = DB::table('regions')->get();
|
||||
$concerns = DB::table('concerns')->get();
|
||||
return view('estate.edit', compact('order', 'purposes', 'regions', 'concerns'));
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
@@ -33,22 +70,34 @@ class EstateController extends Controller
|
||||
|
||||
public function show($order)
|
||||
{
|
||||
return view('estate.show', compact('order'));
|
||||
$order = DB::table('estate_orders')->find($order);
|
||||
$members = DB::table('order_members')->where('order_id', $order->id ?? 0)->where('order_type', 'estate_')->get();
|
||||
$appraisers = DB::table('users')->where('role', 'appraiser')->where('status', 'active')->get();
|
||||
$isAppraisers = $members->where('user_id', auth()->id())->count() > 0;
|
||||
$files = DB::table('files')->where('order_id', $order->id ?? 0)->where('order_type', 'estate_')->get();
|
||||
return view('estate.show', compact('order', 'members', 'appraisers', 'isAppraisers', 'files'));
|
||||
}
|
||||
|
||||
public function showActivities($order)
|
||||
{
|
||||
return view('estate.show-activities', compact('order'));
|
||||
$order = DB::table('estate_orders')->find($order);
|
||||
$actions = DB::table('tracking_actions')->where('order_id', $order->id ?? 0)->latest()->get();
|
||||
return view('estate.show-activities', compact('order', 'actions'));
|
||||
}
|
||||
|
||||
public function showTeam($order)
|
||||
{
|
||||
return view('estate.show-team', compact('order'));
|
||||
$order = DB::table('estate_orders')->find($order);
|
||||
$members = DB::table('order_members')->where('order_id', $order->id ?? 0)->where('order_type', 'estate_')->get();
|
||||
$appraisers = DB::table('users')->where('role', 'appraiser')->where('status', 'active')->get();
|
||||
return view('estate.show-team', compact('order', 'members', 'appraisers'));
|
||||
}
|
||||
|
||||
public function showDocuments($order)
|
||||
{
|
||||
return view('estate.show-documents', compact('order'));
|
||||
$order = DB::table('estate_orders')->find($order);
|
||||
$files = DB::table('files')->where('order_id', $order->id ?? 0)->where('order_type', 'estate_')->get();
|
||||
return view('estate.show-documents', compact('order', 'files'));
|
||||
}
|
||||
|
||||
public function orderClone($id)
|
||||
|
||||
@@ -3,41 +3,46 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class PurposeController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
return view('purposes.index');
|
||||
$purposes = DB::table('purposes')->get();
|
||||
$purpose = null;
|
||||
return view('purposes.index', compact('purposes', 'purpose'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('purposes.create');
|
||||
}
|
||||
public function create() { return view('purposes.create'); }
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
DB::table('purposes')->insert(['name' => $request->name, 'type' => $request->type, 'created_at' => now(), 'updated_at' => now()]);
|
||||
return redirect()->route('purposes.index');
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
return view('purposes.show', compact('id'));
|
||||
$purpose = DB::table('purposes')->find($id);
|
||||
return view('purposes.show', compact('purpose'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
return view('purposes.edit', compact('id'));
|
||||
$purpose = DB::table('purposes')->find($id);
|
||||
return view('purposes.edit', compact('purpose'));
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
DB::table('purposes')->where('id', $id)->update(['name' => $request->name, 'updated_at' => now()]);
|
||||
return redirect()->route('purposes.index');
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
DB::table('purposes')->delete($id);
|
||||
return redirect()->route('purposes.index');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,46 +3,52 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class RegionController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
return view('regions.index');
|
||||
$regions = DB::table('regions')->get();
|
||||
$region = null;
|
||||
return view('regions.index', compact('regions', 'region'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('regions.create');
|
||||
}
|
||||
public function create() { return view('regions.create'); }
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
DB::table('regions')->insert(['name' => $request->name, 'created_at' => now(), 'updated_at' => now()]);
|
||||
return redirect()->route('regions.index');
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
return view('regions.show', compact('id'));
|
||||
$region = DB::table('regions')->find($id);
|
||||
return view('regions.show', compact('region'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
return view('regions.edit', compact('id'));
|
||||
$region = DB::table('regions')->find($id);
|
||||
return view('regions.edit', compact('region'));
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
DB::table('regions')->where('id', $id)->update(['name' => $request->name, 'updated_at' => now()]);
|
||||
return redirect()->route('regions.index');
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
DB::table('regions')->delete($id);
|
||||
return redirect()->route('regions.index');
|
||||
}
|
||||
|
||||
public function districts($id)
|
||||
{
|
||||
return response()->json([]);
|
||||
$districts = DB::table('districts')->where('region_id', $id)->get();
|
||||
return response()->json($districts);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,16 +3,30 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class RoleController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
return view('role.index');
|
||||
$role = $request->get('role', 'user');
|
||||
$size = $request->get('size', 20);
|
||||
|
||||
$users = DB::table('users')->where('role', $role)->paginate($size)->withQueryString();
|
||||
$roleStats = DB::table('users')->selectRaw('role, count(*) as cnt')->groupBy('role')->pluck('cnt', 'role');
|
||||
$statusStats = DB::table('users')->selectRaw('status, count(*) as cnt')->groupBy('status')->pluck('cnt', 'status');
|
||||
$user = auth()->user();
|
||||
|
||||
return view('role.index', compact('users', 'role', 'roleStats', 'statusStats', 'user', 'size'));
|
||||
}
|
||||
|
||||
public function permit(Request $request)
|
||||
{
|
||||
$userId = $request->get('user_id');
|
||||
$role = $request->get('role');
|
||||
if ($userId && $role) {
|
||||
DB::table('users')->where('id', $userId)->update(['role' => $role]);
|
||||
}
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,27 +3,59 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
return view('user.index');
|
||||
$size = $request->get('size', 20);
|
||||
$role = $request->get('role');
|
||||
$status = $request->get('status');
|
||||
$search = $request->get('search');
|
||||
|
||||
$query = DB::table('users')->orderByDesc('id');
|
||||
if ($role) $query->where('role', $role);
|
||||
if ($status) $query->where('status', $status);
|
||||
if ($search) $query->where('name', 'like', "%$search%")->orWhere('phone', 'like', "%$search%");
|
||||
|
||||
$users = $query->paginate($size)->withQueryString();
|
||||
|
||||
$roleStats = DB::table('users')->selectRaw('role, count(*) as cnt')->groupBy('role')->pluck('cnt', 'role');
|
||||
$statusStats = DB::table('users')->selectRaw('status, count(*) as cnt')->groupBy('status')->pluck('cnt', 'status');
|
||||
$user = auth()->user();
|
||||
$message = session('message');
|
||||
|
||||
return view('user.index', compact('users', 'roleStats', 'statusStats', 'user', 'message', 'size'));
|
||||
}
|
||||
|
||||
public function create(Request $request)
|
||||
{
|
||||
return redirect()->route('user.index');
|
||||
DB::table('users')->insert([
|
||||
'name' => $request->name,
|
||||
'phone' => $request->phone,
|
||||
'password' => Hash::make($request->password ?? '12345678'),
|
||||
'avatar' => '/assets/images/users/avatar-5.jpg',
|
||||
'status' => 'active',
|
||||
'role' => $request->role ?? 'user',
|
||||
'balance' => 0,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
]);
|
||||
return redirect()->route('user.index')->with('message', 'User created');
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
return view('user.show', compact('id'));
|
||||
$user = DB::table('users')->find($id);
|
||||
return view('user.show', compact('user'));
|
||||
}
|
||||
|
||||
public function edit()
|
||||
{
|
||||
return view('user.edit');
|
||||
$user = auth()->user();
|
||||
return view('user.edit', compact('user'));
|
||||
}
|
||||
|
||||
public function update(Request $request)
|
||||
@@ -43,22 +75,30 @@ class UserController extends Controller
|
||||
|
||||
public function activate($id)
|
||||
{
|
||||
DB::table('users')->where('id', $id)->update(['status' => 'active']);
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
public function block($id)
|
||||
{
|
||||
DB::table('users')->where('id', $id)->update(['status' => 'inactive']);
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
public function appraisers()
|
||||
public function appraisers(Request $request)
|
||||
{
|
||||
return view('user.appraisers');
|
||||
$size = $request->get('size', 20);
|
||||
$users = DB::table('users')->where('role', 'appraiser')->paginate($size);
|
||||
$roleStats = DB::table('users')->selectRaw('role, count(*) as cnt')->groupBy('role')->pluck('cnt', 'role');
|
||||
$statusStats = DB::table('users')->selectRaw('status, count(*) as cnt')->groupBy('status')->pluck('cnt', 'status');
|
||||
$user = auth()->user();
|
||||
return view('user.appraisers', compact('users', 'roleStats', 'statusStats', 'user', 'size'));
|
||||
}
|
||||
|
||||
public function appraisersBonus()
|
||||
{
|
||||
return view('user.appraisers-bonus');
|
||||
$users = DB::table('users')->where('role', 'appraiser')->get();
|
||||
return view('user.appraisers-bonus', compact('users'));
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
|
||||
Reference in New Issue
Block a user