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]);
 }
Example #2
0
 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]);
 }