public function assignToAgent(Request $request, $id) { $viewingSchedule = ViewingSchedule::findOrFail($id); if ($request->isMethod('POST')) { $conversation = $viewingSchedule->user->getPropertyConversation($viewingSchedule->property); if ($request->has('agent')) { $agent = User::findOrFail($request->input('agent')); $viewingSchedule->agent()->associate($agent); if ($conversation) { $conversation->recipient()->associate($agent); $conversation->save(); } $message = 'Viewing Schedule has been assigned to ' . $agent->profile->singleName . '.'; } else { $viewingSchedule->agent()->dissociate(); if ($conversation) { $conversation->recipient()->dissociate(); $conversation->save(); } $message = 'Viewing Schedule is detached from Agent.'; } $viewingSchedule->save(); return redirect($request->get('backUrl', route('admin.viewing_schedule.index')))->with('messages', [$message]); } $agentOptions = AgentHelper::getAgentOptions(); return view('admin.viewing_schedules.assign_to_agent', ['viewingSchedule' => $viewingSchedule, 'agentOptions' => $agentOptions]); }
public function all() { if ($this->get('role') == 'agent' && !$this->route()->hasParameter('id')) { $attributes = parent::all(); // you can add fields $attributes['username'] = AgentHelper::getNextAgentCode(); $this->replace($attributes); } return parent::all(); }
/** * Run the migrations. * * @return void */ public function up() { $qb = \GoProp\Models\User::orderBy('id', 'ASC'); $qb->whereHas('roles', function ($query) { $query->where('slug', 'agent'); }); $agents = $qb->get(); foreach ($agents as $idx => $agent) { $agent->username = time() + $idx; $agent->save(); $agent->username = \GoProp\Facades\AgentHelper::formatAgentCode($idx + 1); $agent->save(); } }
public function assignToAgent(Request $request, $id) { $conversation = Message::findOrFail($id); if ($request->isMethod('POST')) { if ($request->has('agent')) { $agent = User::findOrFail($request->input('agent')); $conversation->recipient()->associate($agent); $message = 'Conversation has been assigned to ' . $agent->profile->singleName . '.'; } else { $conversation->recipient()->dissociate(); $message = 'Conversation is detached from Agent.'; } $conversation->save(); return redirect($request->get('backUrl', route('admin.customer_inquiry.index', ['type' => str_replace('_message', '', $conversation->type)])))->with('messages', [$message]); } $agentOptions = AgentHelper::getAgentOptions(); return view('admin.customer_inquiry.assign_to_agent', ['conversation' => $conversation, 'agentOptions' => $agentOptions]); }
/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { $user = Auth::user(); $qb = ReferralInformation::orderBy('created_at', 'DESC'); AddressHelper::addAddressQueryScope($qb); if ($request->has('search')) { if ($request->has('search.keyword')) { $qb->where(function ($query) use($request) { $query->orWhere('name', 'LIKE', '%' . $request->input('search.keyword') . '%')->orWhere('contact_number', 'LIKE', '%' . $request->input('search.keyword') . '%')->orWhere('other_contact_number', 'LIKE', '%' . $request->input('search.keyword') . '%')->orWhere('name', 'LIKE', '%' . $request->input('search.keyword') . '%')->orWhere('email', 'LIKE', '%' . $request->input('search.keyword') . '%')->orWhere('address', 'LIKE', '%' . $request->input('search.keyword') . '%')->orWhere('province_name', 'LIKE', '%' . $request->input('search.keyword') . '%')->orWhere('city_name', 'LIKE', '%' . $request->input('search.keyword') . '%')->orWhere('subdistrict_name', 'LIKE', '%' . $request->input('search.keyword') . '%'); }); } if ($request->has('search.agent')) { $qb->whereHas('user', function ($query) use($request) { $query->where('id', $request->input('search.agent')); }); } if ($request->input('search.status', 'all') != 'all') { $qb->where('status', $request->input('search.status')); } if ($request->input('search.followed_up', 'all') != 'all') { $followedUp = $request->input('search.followed_up') == 'yes'; $qb->where('followed_up', $followedUp); } } $agentOptions = []; if ($user->is('agent')) { $qb->where('user_id', $user->id); } elseif ($user->is('property_manager')) { $qb->where('province', $user->profile->province); } else { $agentOptions = AgentHelper::getAgentOptions(); } $referrals = $qb->paginate(50); $referrals->appends(['search' => $request->input('search')]); $statusOptions = ['all' => 'Status'] + ReferralInformation::getStatusOptions(); $followedUpOptions = ['all' => 'Follow Up Status', 'yes' => 'Followed Up', 'no' => 'Unfollowed Up']; return view('admin.referrals.index', ['referrals' => $referrals, 'statusOptions' => $statusOptions, 'followedUpOptions' => $followedUpOptions, 'agentOptions' => $agentOptions]); }
public function assignToAgent(Request $request, $id) { $property = Property::findOrFail($id); $backUrl = $request->get('backUrl', route('admin.property.index')); if ($request->isMethod('POST')) { $backUrl = $request->input('backUrl', route('admin.property.index')); //Get remaining schedules for this property $viewingSchedules = $property->viewingSchedules()->where('viewing_from', '>', Carbon::now())->get(); $conversations = $property->conversations; if ($request->has('agent')) { $agent = User::findOrFail($request->input('agent')); $property->agentList()->associate($agent); foreach ($viewingSchedules as $viewingSchedule) { $viewingSchedule->agent()->associate($agent); $viewingSchedule->save(); } foreach ($conversations as $conversation) { $conversation->recipient()->associate($agent); $conversation->save(); } $message = 'Property, Viewing Schedules and Conversation have been assigned to ' . $agent->profile->singleName . '.'; } else { $property->agentList()->dissociate(); foreach ($viewingSchedules as $viewingSchedule) { $viewingSchedule->agent()->dissociate(); $viewingSchedule->save(); } foreach ($conversations as $conversation) { $conversation->recipient()->dissociate(); $conversation->save(); } $message = 'Property, Viewing Schedules and Conversation have been detached from Agent.'; } $property->save(); return redirect($backUrl)->with('messages', [$message]); } $agentOptions = AgentHelper::getAgentOptions(); return view('admin.property.assign_to_agent', ['property' => $property, 'agentOptions' => $agentOptions, 'backUrl' => $backUrl]); }