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 / 57
LeaveController
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 8
132
0.00% covered (danger)
0.00%
0 / 57
 index
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 8
 create
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 6
 store
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 17
 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 / 7
 update
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 10
 destroy
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 3
 updateLeaveStatus
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 5
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\Admin\UserDetail;
use App\Models\Admin\Leave;
use Session;
use Illuminate\Support\Facades\Validator;
use App\Helpers\AttendanceHelper;
class LeaveController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        $title = '/Setup/Leave';
        $backurl = route('home');
        // For Attendance Marking
        $val = AttendanceHelper::getAttendanceMarkValue();
        $valTeam = AttendanceHelper::getAttendanceTeam($request);
        $valUser = AttendanceHelper::getAttendanceUser($request);
        // $leave_status = Leave::select('status')
        //                 ->where('id', $userId)
        //                 ->get();
        $leave_status = Leave::select('id', 'status')->get();
        // dd($leave_status);
        return view('administrationForms.LeavePolicy.LeaveTable', compact('title','backurl','val',
                    'valTeam','valUser','leave_status'))->with('leaves',Leave::where('system_generated', 0)->get());
    }
    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create(Request $request)
    {
        $title = '/Setup/Create Leave';
        $backurl = route('leave.index');
        // For Attendance Marking
        $val = AttendanceHelper::getAttendanceMarkValue();
        $valTeam = AttendanceHelper::getAttendanceTeam($request);
        $valUser = AttendanceHelper::getAttendanceUser($request);
        return view('administrationForms.LeavePolicy.LeaveForm',compact('title','backurl','val','valTeam','valUser'));
    }
    /**
     * 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',
            'abbr' => 'required',
            'type' => 'required',
            'leave_allocation_type' => 'required',
            'description' => 'required',
            'n_days' => 'required',
            'to_carry' => 'required'
        ]);
        if ($validator->fails())
        {
            return redirect()->back()->withErrors($validator);
        }
        $leave = new Leave();
        $leave->name =$request->name;
        $leave->abbr =$request->abbr;
        $leave->type = $request->type;
        $leave->leave_allocation_type =$request->leave_allocation_type;
        $leave->applied_before = $request->applied_before;
        $leave->n_days =$request->n_days;
        $leave->to_carry =$request->to_carry;
        $leave->carry_days = isset($request->carry_days) ? $request->carry_days : 0;
        $leave->description = $request->description;
        $leave->save();
        Session::flash('success', 'Leave Added Successfully!');
        return redirect()->route('leave.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 Leave';
        $backurl = route('leave.index');
        Session::flash('warning', 'Edit Leave');
        // For Attendance Marking
        $val = AttendanceHelper::getAttendanceMarkValue();
        $valTeam = AttendanceHelper::getAttendanceTeam($request);
        $valUser = AttendanceHelper::getAttendanceUser($request);
        return view('administrationForms.LeavePolicy.LeaveForm', compact('title','backurl','val','valTeam','valUser'))->with('leave',Leave::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',
            'abbr' => 'required',
            'type' => 'required',
            'leave_allocation_type' => 'required',
            'description' => 'required',
            'n_days' => 'required',
            'to_carry' => 'required'
        ]);
        if ($validator->fails())
        {
            return redirect()->back()->withErrors($validator);
        }
        $leaves = Leave::find($id);
        $leaves->update($request->only(['name','abbr','n_days','type','leave_allocation_type','description','to_carry','carry_days']));
        // Leave::query()->update(['applied_before'=> $request->applied_before]);
        $leaves->applied_before = $request->applied_before;
        $leaves->save();
        Session::flash('success', 'Leave Updated Successfully!');
        return redirect()->route('leave.index')->withErrors($this);
    }
    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $leave = Leave::find($id);
        $leave->delete();
        return redirect()->route('leave.index')->with('success','Leave Deleted Successfully');
    }
    public function updateLeaveStatus(Request $request){
        // dd($request);
        $leaveId = $request->leaveId;
        $leaveStatus = $request->newStatus;
        leave::where('id', $leaveId)
                ->update(['status' => $leaveStatus]);
    }
}