IMMREX7
<?php
namespace App\Http\Controllers\School;
use Illuminate\Http\Request;
use Session;
use Auth;
use PDF;
use Carbon\Carbon;
use DB;
class VisitorController extends SchoolController {
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request) {
$today_date = Carbon::today()->format('Y-m-d');
if ($request->has('fromDate') && $request->fromDate != null) {
$from_date = Carbon::createFromFormat('d-m-Y', $request->fromDate);
}
if ($request->has('toDate') && $request->toDate != null) {
$to_date = Carbon::createFromFormat('d-m-Y', $request->toDate);
}
$visitors = \App\Visitor::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->orderBy('idVisitor', 'desc');
if ($request->toDate != null && $request->fromDate != null) {
$visitors = $visitors->whereBetween('created_at', [$from_date->format('Y-m-d') . " 00:00:00", $to_date->format('Y-m-d') . " 23:59:59"])->get();
} else if ($request->has('fromDate') && $request->fromDate != null) {
$visitors = $visitors->whereBetween('created_at', [$from_date->format('Y-m-d') . " 00:00:00", $today_date . " 23:59:59"])->get();
} else if ($request->has('toDate') && $request->toDate != null) {
$visitors = $visitors->whereDate('created_at', '<=', $to_date)->get();
} else {
$visitors = $visitors->get();
}
return view('schools.visitors.visitor_list', compact('visitors'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create() {
$employee = \App\Employee::select('employees.*',DB::raw('CONCAT(firstName," ",middleName," ",lastName) as name'))->where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idEmployee', 'desc')->get()->pluck('name','idEmployee')->toArray();
return view('schools.visitors.form',compact('employee'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request) {
// dd($request->all());
$rules = [
'employee' => 'required',
'firstName' => 'required',
'lastName' => 'required',
'mobile' => 'required',
'purpose' => 'required',
'address' => 'required'
];
$this->validate($request, $rules);
$school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
$otp = mt_rand(100000, 999999);
$visitor = new \App\Visitor();
$visitor->idEmployee = $request->employee;
$visitor->idFinancialYear = Session::get('idFinancialYear');
$visitor->fill($request->all());
if ($request->has('visitorImage')) {
$file = $request->visitorImage;
$visitor->visitorImage = $file;
}
$visitor->otp = $otp;
$next_no = next_vno();
$v_no = 'V000' . $next_no;
$visitor->idSchool = Auth::guard('school')->user()->idSchool;
$visitor->visitorNo = $v_no;
$visitor->save();
$message = 'Your OTP for verifying mobile no is ' . $otp . ' Kindly Share with Receptionist. Regards ' .$school->sms_regard_text .'.';
$phone_number = $request->mobile;
$template = \App\SchoolSmsTemplate::where('idSchool', '=', $school->idSchool)->where('template_name', '=', 'mobile_verify_otp')->first();
if (!empty($template)) {
$tempid = $template->template_id;
\App\Http\SendSmsApi::getUserNumber($phone_number, $message, $school, $tempid);
}
// $pdf = PDF::loadView('schools.visitors.visitorpass', ['margin_top' => 20], compact('visitor','school'));
// return $pdf->stream('visitor-pass.pdf');
return redirect('school/visitors');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id) {
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id) {
$visitor = \App\Visitor::where('idVisitor', '=', $id)->first();
return view('schools.visitors.form', compact('visitor'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id) {
$rules = [
'firstName' => 'required',
'lastName' => 'required',
'mobile' => 'required',
'purpose' => 'required',
'address' => 'required'
];
$this->validate($request, $rules);
$visitor = \App\Visitor::where('idVisitor', '=', $id)->first();
$visitor->fill($request->all());
$visitor->update();
return redirect('school/visitors');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id) {
$visitor = \App\Visitor::where('idVisitor', '=', $id)->first();
$visitor->delete();
return response()->json(['success' => "SUCCESS"], 200, ['app-status' => 'success']);
}
public function printPass($id) {
$visitor = \App\Visitor::where('idVisitor', '=', $id)->first();
$school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
$pdf = PDF::loadView('schools.visitors.visitorpass', ['margin_top' => 40], compact('visitor', 'school'));
return $pdf->stream('visitor-pass.pdf');
// return view('schools.visitors.visitorpass',compact('visitor','school'));
}
public function visitorOut($id) {
$school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
$visitor = \App\Visitor::where('idVisitor', '=', $id)->first();
$visitor->outTime = Carbon::now();
$message = 'Thank you for visiting '.$school->schoolName.' Regards '.$school->sms_regard_text.'.';
$phone_number = $visitor->mobile;
$template = \App\SchoolSmsTemplate::where('idSchool', '=', $school->idSchool)->where('template_name', '=', 'visitor')->first();
if (!empty($template)) {
$tempid = $template->template_id;
\App\Http\SendSmsApi::getUserNumber($phone_number, $message, $school, $tempid);
}
$visitor->update();
return redirect('school/visitors');
}
public function verifyotp($id) {
$visitor = \App\Visitor::where('idVisitor', '=', $id)->first();
$visitor->verified = 'Y';
$visitor->update();
return redirect('school/visitors');
}
}
Copyright © 2021 -