user(); $activeBranchId = $user->active_branch_id; $transfers = Transfer::with(['fromWarehouse:id,name', 'toWarehouse:id,name', 'toBranch:id,name', 'fromBranch:id,name', 'transferProducts']) ->where('business_id', $user->business_id) ->when($activeBranchId, function ($q) use ($activeBranchId) { $q->where(function ($query) use ($activeBranchId) { $query->where('from_branch_id', $activeBranchId) ->orWhere('to_branch_id', $activeBranchId); }); }) ->when(request('branch_id') && !$activeBranchId, function ($q) { $q->where(function ($query) { $query->where('from_branch_id', request('branch_id'))->orWhere('to_branch_id', request('branch_id')); }); }) ->when(request('search'), function ($q) { $search = request('search'); $q->where(function ($q) use ($search) { $q->where('note', 'like', '%' . $search . '%') ->orWhere('status', 'like', '%' . $search . '%') ->orWhere('invoice_no', 'like', '%' . $search . '%') ->orWhereHas('fromWarehouse', function ($q) use ($search) { $q->where('name', 'like', '%' . $search . '%'); }) ->orWhereHas('toWarehouse', function ($q) use ($search) { $q->where('name', 'like', '%' . $search . '%'); }) ->orWhereHas('toBranch', function ($q) use ($search) { $q->where('name', 'like', '%' . $search . '%'); }) ->orWhereHas('fromBranch', function ($q) use ($search) { $q->where('name', 'like', '%' . $search . '%'); }); }); }) ->latest() ->limit(request('per_page') ?? 20)->get(); return view('business::transfers.excel-csv', compact('transfers')); } }