Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 8
CRAP
0.00% covered (danger)
0.00%
0 / 62
WorkplaceLocationController
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 8
110
0.00% covered (danger)
0.00%
0 / 62
 index
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 7
 create
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 8
 fetchLocation
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 13
 store
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 12
 show
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 edit
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 10
 update
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 8
 destroy
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 3
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\Admin\UserDetail;
use App\Models\Admin\WorkplaceLocation;
use App\Models\Admin\HolidayList;
use Session;
use Illuminate\Support\Facades\Validator;
use App\Helpers\AttendanceHelper;
use App\Models\Admin\Setting;
use App\Models\Admin\Timezone;
use GuzzleHttp\Client;
class WorkplaceLocationController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        $title = '/Setup/Workplace';
        $backurl = route('home');
        // For Attendance Marking
        $val = AttendanceHelper::getAttendanceMarkValue();
        $valTeam = AttendanceHelper::getAttendanceTeam($request);
        $valUser = AttendanceHelper::getAttendanceUser($request);
        $leaves = WorkplaceLocation::orderBy('id', 'desc')->get();
       return view('administrationForms.WorkplaceLocation.LocationTable', compact('title', 'backurl', 'val', 'valTeam', 'valUser', 'leaves'));
    }
    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create(Request $request)
    {
        $title = '/Setup/Add New Office';
        $backurl = route('locations.index');
        $timezones = Timezone::Orderby('name')->get();
        $holidaylists = HolidayList::Orderby('name')->get();
        // $setting = Setting::pluck('value', 'name')->all(); // Setting::all();
        // For Attendance Marking
        $val = AttendanceHelper::getAttendanceMarkValue();
        $valTeam = AttendanceHelper::getAttendanceTeam($request);
        $valUser = AttendanceHelper::getAttendanceUser($request);
        return view('administrationForms.WorkplaceLocation.LocationForm',compact('title','timezones','holidaylists','backurl','val','valTeam','valUser'));
    }
    public function fetchLocation(Request $request)
    {
        $latitude = $request->input('latitude');
        $longitude = $request->input('longitude');
        // $timeZone = $request->input('time_zone'); 
        // $timeZoneOffset = $request->input('time_zone_offset'); 
        // $client = new Client(['verify' => storage_path("cert.pem")]);
        $client = new Client();
        $response = $client->request('GET', 'https://nominatim.openstreetmap.org/reverse', [
            'query' => ['format' => 'json',
            'lat' => $latitude,
            'lon' => $longitude]
        ]);
        $stream = $response->getBody();
        $address = json_decode($stream->getContents());
        $decodeAddress = $address->display_name;
        return response()->json([
            'success' => true,
            'address' => $decodeAddress,
            // 'time_zone' => $timeZone ,
            // 'time_zone_offset' => $timeZoneOffset
        ]);   
     }
    
    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'name' =>  'required',
            'Address' => 'required|unique:workplace_location,Address',
            'time_zone' => 'required',
            'holiday_list' => 'required',
            
        ]);
        if ($validator->fails())
        {
            return redirect()->back()->withErrors($validator);
        }
        $leave = new WorkplaceLocation();
        $leave->name =$request->name;     
        $leave->Address =$request->Address;
        $leave->time_zone = $request->time_zone;
        $leave->holiday_list = $request->holiday_list;
        $leave->save();
        Session::flash('success', 'Workspace Added Successfully!');
        return redirect()->route('locations.index');
    }
    /**
     * 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(Request $request,$id)
    {
        $title = '/Setup/Edit Workplace';
        $backurl = route('locations.index');
        $timezones = Timezone::Orderby('name')->get();
        $holidaylists = HolidayList::Orderby('name')->get();
        $user = WorkplaceLocation::find($id);
        Session::flash('warning', 'Edit Workplace');
        // For Attendance Marking
        $val = AttendanceHelper::getAttendanceMarkValue();
        $valTeam = AttendanceHelper::getAttendanceTeam($request);
        $valUser = AttendanceHelper::getAttendanceUser($request);
        return view('administrationForms.WorkplaceLocation.LocationForm', compact('title','timezones','holidaylists','user','backurl','val','valTeam','valUser'))->with('leave',WorkplaceLocation::find($id));
    }
    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $validator = Validator::make($request->all(), [
            'name' =>  'required',
            'Address' => 'required',
            'time_zone' => 'required',
            'holiday_list' => 'required',          
        ]);
        //dd($validator);
        if ($validator->fails())
        {
            return redirect()->back()->withErrors($validator);
        }
        $leaves = WorkplaceLocation::find($id);
        $leaves->update($request->only(['name','Address','time_zone','holiday_list']));
        Session::flash('success', 'Workplace Updated Successfully!');
        return redirect()->route('locations.index')->withErrors($this);
    }
    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $leave = WorkplaceLocation::find($id);
        $leave->delete();
        return redirect()->route('locations.index')->with('success','Workplace Deleted Successfully');
    }
}