IMMREX7

aku nok ndi : /home/spdtg/www/schoolmis/app/Http/Controllers/School/
File Up :
aku nok ndi : /home/spdtg/www/schoolmis/app/Http/Controllers/School/VisitorController.php

<?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 - 2025 IMMREX7