Fix multiple undefined variable errors across pages

- 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 <noreply@anthropic.com>
This commit is contained in:
2026-04-06 15:11:24 +05:00
parent c363c76f31
commit ecaf8790dc
4 changed files with 52 additions and 15 deletions

View File

@@ -120,7 +120,10 @@ class AutoController extends Controller
$order->dillerUser = $dillerUser; $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(); $appraisers = DB::table('users')->whereRaw('LOWER(role) = ?', ['appraiser'])->where('status', 'active')->get();
$isAppraisers = $members->where('user_id', auth()->id())->count() > 0; $isAppraisers = $members->where('user_id', auth()->id())->count() > 0;
$files = DB::table('files')->where('order_id', $order->id ?? 0)->where('order_type', 'auto_')->get(); $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) public function showTeam($order)
{ {
$order = DB::table('auto_orders')->find($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(); $appraisers = DB::table('users')->whereRaw('LOWER(role) = ?', ['appraiser'])->where('status', 'active')->get();
return view('auto.show-team', compact('order', 'members', 'appraisers')); 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); $order = DB::table('auto_orders')->find($order);
$files = DB::table('files')->where('order_id', $order->id ?? 0)->where('order_type', 'auto_')->get(); $type = $request->get('type', 'ALL');
return view('auto.show-documents', compact('order', 'files')); $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) public function orderClone($id)

View File

@@ -4,13 +4,20 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\DB;
class BonusController extends Controller class BonusController extends Controller
{ {
public function index(Request $request) public function index(Request $request)
{ {
$size = $request->get('size', 20); $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; $bonus = null;
return view('bonus.index', compact('bonuses', 'bonus', 'size')); return view('bonus.index', compact('bonuses', 'bonus', 'size'));
} }

View File

@@ -100,7 +100,10 @@ class EstateController extends Controller
$order->dillerUser = $dillerUser; $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(); $appraisers = DB::table('users')->whereRaw('LOWER(role) = ?', ['appraiser'])->where('status', 'active')->get();
$isAppraisers = $members->where('user_id', auth()->id())->count() > 0; $isAppraisers = $members->where('user_id', auth()->id())->count() > 0;
$files = DB::table('files')->where('order_id', $order->id ?? 0)->where('order_type', 'estate_')->get(); $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) public function showTeam($order)
{ {
$order = DB::table('estate_orders')->find($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(); $appraisers = DB::table('users')->whereRaw('LOWER(role) = ?', ['appraiser'])->where('status', 'active')->get();
return view('estate.show-team', compact('order', 'members', 'appraisers')); 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); $order = DB::table('estate_orders')->find($order);
$files = DB::table('files')->where('order_id', $order->id ?? 0)->where('order_type', 'estate_')->get(); $type = $request->get('type', 'ALL');
return view('estate.show-documents', compact('order', 'files')); $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) public function orderClone($id)

View File

@@ -18,21 +18,21 @@ class ProfileController extends Controller
public function profile() public function profile()
{ {
return view('profile.index'); return view('profile.profile');
} }
public function showActivities() public function showActivities()
{ {
return view('profile.show-activities'); return view('profile.activities');
} }
public function showProjects() public function showProjects()
{ {
return view('profile.show-projects'); return view('profile.projects');
} }
public function showDocuments() public function showDocuments()
{ {
return view('profile.show-documents'); return view('profile.documents');
} }
} }