From ecaf8790dce7f55486dfa1519987b12c6b5c148e Mon Sep 17 00:00:00 2001 From: husanjon Date: Mon, 6 Apr 2026 15:11:24 +0500 Subject: [PATCH] Fix multiple undefined variable errors across pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - show-documents: add $type, $countDocs, $countMediaFiles, $otherFiles, paginate files - show-team + show: JOIN users to order_members for name/avatar/phone - BonusController: load appraiser and order per bonus row - ProfileController: fix wrong view names (index→profile, show-*→activities/projects/documents) Co-Authored-By: Claude Sonnet 4.6 --- app/Http/Controllers/AutoController.php | 25 +++++++++++++++++----- app/Http/Controllers/BonusController.php | 9 +++++++- app/Http/Controllers/EstateController.php | 25 +++++++++++++++++----- app/Http/Controllers/ProfileController.php | 8 +++---- 4 files changed, 52 insertions(+), 15 deletions(-) diff --git a/app/Http/Controllers/AutoController.php b/app/Http/Controllers/AutoController.php index 6bdd7ca..a7f5c5c 100644 --- a/app/Http/Controllers/AutoController.php +++ b/app/Http/Controllers/AutoController.php @@ -120,7 +120,10 @@ class AutoController extends Controller $order->dillerUser = $dillerUser; } - $members = DB::table('order_members')->where('order_id', $order->id ?? 0)->where('order_type', 'auto_')->get(); + $members = DB::table('order_members as om') + ->leftJoin('users as u', 'u.id', '=', 'om.user_id') + ->select('om.*', 'u.name', 'u.avatar', 'u.phone', 'u.role') + ->where('om.order_id', $order->id ?? 0)->where('om.order_type', 'auto_')->get(); $appraisers = DB::table('users')->whereRaw('LOWER(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(); @@ -138,16 +141,28 @@ class AutoController extends Controller public function showTeam($order) { $order = DB::table('auto_orders')->find($order); - $members = DB::table('order_members')->where('order_id', $order->id ?? 0)->where('order_type', 'auto_')->get(); + $members = DB::table('order_members as om') + ->leftJoin('users as u', 'u.id', '=', 'om.user_id') + ->select('om.*', 'u.name', 'u.avatar', 'u.phone', 'u.role') + ->where('om.order_id', $order->id ?? 0)->where('om.order_type', 'auto_')->get(); $appraisers = DB::table('users')->whereRaw('LOWER(role) = ?', ['appraiser'])->where('status', 'active')->get(); return view('auto.show-team', compact('order', 'members', 'appraisers')); } - public function showDocuments($order) + public function showDocuments($order, Request $request) { $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')); + $type = $request->get('type', 'ALL'); + $filesQuery = DB::table('files')->where('order_id', $order->id ?? 0)->where('order_type', 'auto_'); + if ($type !== 'ALL') { + $filesQuery->where('type', $type); + } + $files = $filesQuery->paginate(20)->withQueryString(); + $allFiles = DB::table('files')->where('order_id', $order->id ?? 0)->where('order_type', 'auto_')->get(); + $countDocs = $allFiles->whereIn('type', ['passport_customer', 'certificate', 'appraiser_certificate', 'insurance_policy', 'participate_certificate'])->count(); + $countMediaFiles = $allFiles->whereIn('type', ['object_photo', 'object_files', 'compares'])->count(); + $otherFiles = $allFiles->where('type', 'additional')->count(); + return view('auto.show-documents', compact('order', 'files', 'type', 'countDocs', 'countMediaFiles', 'otherFiles')); } public function orderClone($id) diff --git a/app/Http/Controllers/BonusController.php b/app/Http/Controllers/BonusController.php index 3e37ccc..dfb936c 100644 --- a/app/Http/Controllers/BonusController.php +++ b/app/Http/Controllers/BonusController.php @@ -4,13 +4,20 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\DB; class BonusController extends Controller { public function index(Request $request) { $size = $request->get('size', 20); - $bonuses = DB::table('bonuses')->orderByDesc('id')->paginate($size); + $rawBonuses = DB::table('bonuses')->orderByDesc('id')->paginate($size)->withQueryString(); + $bonuses = $rawBonuses->through(function ($b) { + $b->appraiser = $b->appraiser_id ? DB::table('users')->select('id', 'name', 'phone')->find($b->appraiser_id) : null; + $table = ($b->order_type ?? '') === 'auto_' ? 'auto_orders' : 'estate_orders'; + $b->order = $b->order_id ? DB::table($table)->select('id', 'number')->find($b->order_id) : null; + return $b; + }); $bonus = null; return view('bonus.index', compact('bonuses', 'bonus', 'size')); } diff --git a/app/Http/Controllers/EstateController.php b/app/Http/Controllers/EstateController.php index e7e5b11..c1e0e30 100644 --- a/app/Http/Controllers/EstateController.php +++ b/app/Http/Controllers/EstateController.php @@ -100,7 +100,10 @@ class EstateController extends Controller $order->dillerUser = $dillerUser; } - $members = DB::table('order_members')->where('order_id', $order->id ?? 0)->where('order_type', 'estate_')->get(); + $members = DB::table('order_members as om') + ->leftJoin('users as u', 'u.id', '=', 'om.user_id') + ->select('om.*', 'u.name', 'u.avatar', 'u.phone', 'u.role') + ->where('om.order_id', $order->id ?? 0)->where('om.order_type', 'estate_')->get(); $appraisers = DB::table('users')->whereRaw('LOWER(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(); @@ -118,16 +121,28 @@ class EstateController extends Controller public function showTeam($order) { $order = DB::table('estate_orders')->find($order); - $members = DB::table('order_members')->where('order_id', $order->id ?? 0)->where('order_type', 'estate_')->get(); + $members = DB::table('order_members as om') + ->leftJoin('users as u', 'u.id', '=', 'om.user_id') + ->select('om.*', 'u.name', 'u.avatar', 'u.phone', 'u.role') + ->where('om.order_id', $order->id ?? 0)->where('om.order_type', 'estate_')->get(); $appraisers = DB::table('users')->whereRaw('LOWER(role) = ?', ['appraiser'])->where('status', 'active')->get(); return view('estate.show-team', compact('order', 'members', 'appraisers')); } - public function showDocuments($order) + public function showDocuments($order, Request $request) { $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')); + $type = $request->get('type', 'ALL'); + $filesQuery = DB::table('files')->where('order_id', $order->id ?? 0)->where('order_type', 'estate_'); + if ($type !== 'ALL') { + $filesQuery->where('type', $type); + } + $files = $filesQuery->paginate(20)->withQueryString(); + $allFiles = DB::table('files')->where('order_id', $order->id ?? 0)->where('order_type', 'estate_')->get(); + $countDocs = $allFiles->whereIn('type', ['passport_customer', 'certificate', 'appraiser_certificate', 'insurance_policy', 'participate_certificate'])->count(); + $countMediaFiles = $allFiles->whereIn('type', ['object_photo', 'object_files', 'compares'])->count(); + $otherFiles = $allFiles->where('type', 'additional')->count(); + return view('estate.show-documents', compact('order', 'files', 'type', 'countDocs', 'countMediaFiles', 'otherFiles')); } public function orderClone($id) diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 2c1a954..9116fc0 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -18,21 +18,21 @@ class ProfileController extends Controller public function profile() { - return view('profile.index'); + return view('profile.profile'); } public function showActivities() { - return view('profile.show-activities'); + return view('profile.activities'); } public function showProjects() { - return view('profile.show-projects'); + return view('profile.projects'); } public function showDocuments() { - return view('profile.show-documents'); + return view('profile.documents'); } }