Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 7 |
CRAP | |
0.00% |
0 / 86 |
| AdminApplyLeaveController | |
0.00% |
0 / 1 |
|
0.00% |
0 / 7 |
380 | |
0.00% |
0 / 86 |
| index | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 17 |
|||
| create | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| store | |
0.00% |
0 / 1 |
132 | |
0.00% |
0 / 53 |
|||
| show | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| edit | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| destroy | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| adminGetLeaveCount | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 12 |
|||
| <?php | |
| namespace App\Http\Controllers\Leave; | |
| use Illuminate\Http\Request; | |
| use App\Http\Controllers\Controller; | |
| use App\Models\Admin\Leave; | |
| use App\Models\Auth\User; | |
| use App\Models\Leave\ApplyLeave; | |
| use App\Models\Leave\LeaveEntitlement; | |
| use App\Models\Admin\Weekend; | |
| use Session; | |
| use Carbon\Carbon; | |
| use Auth; | |
| use Illuminate\Support\Facades\Log; | |
| use Illuminate\Support\Facades\Validator; | |
| use GetShiftDetailHelper; | |
| use App\Models\Admin\Holiday; | |
| use App\Helpers\LeaveHelper; | |
| use App\Models\Leave\CompOffLeave; | |
| use App\Helpers\AttendanceHelper; | |
| class AdminApplyLeaveController extends Controller | |
| { | |
| /** | |
| * Display a listing of the resource. | |
| * | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function index(Request $request) | |
| { | |
| $title = '/Leave/Apply Leave Employee'; | |
| $users=[]; | |
| if(auth()->user()->can('Can mark leave for all employees')){ | |
| $users = User::all(); | |
| }else{ | |
| //Can mark leave for reporting employees | |
| $userIds = GetShiftDetailHelper::getMyReportingEmployees(); | |
| $users = User::whereIn('id', $userIds)->get(); | |
| } | |
| $leaves = Leave::all(); | |
| $currentYear = Carbon::now(config('settings.time_zone'))->format('Y'); | |
| //get holdays for current year | |
| $getHolidays = Holiday::whereYear('date',$currentYear)->get(); | |
| $holidays = []; | |
| foreach($getHolidays as $holiday){ | |
| $holidays[] = $holiday->date; | |
| } | |
| // For returning attendance marking for home controller | |
| $val = AttendanceHelper::getAttendanceMarkValue(); | |
| $valTeam = AttendanceHelper::getAttendanceTeam($request); | |
| $valUser = AttendanceHelper::getAttendanceUser($request); | |
| return view('administrationForms.LeavePolicy.adminApplyLeaveForm',compact('title','leaves','users','holidays', | |
| 'val','valTeam','valUser')); | |
| } | |
| /** | |
| * Show the form for creating a new resource. | |
| * | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function create() | |
| { | |
| // | |
| } | |
| /** | |
| * Store a newly created resource in storage. | |
| * | |
| * @param \Illuminate\Http\Request $request | |
| * @return \Illuminate\Http\Response | |
| */ | |
| ///function for the direct apply leave | |
| public function store(Request $request) | |
| { | |
| $today = Carbon::now(config('settings.time_zone')); | |
| $from_date = Carbon::parse( Carbon::createFromFormat( config('settings.php_date_format') , $request->from_date ) )->format('Y-m-d'); | |
| $to_date = Carbon::parse( Carbon::createFromFormat( config('settings.php_date_format') , $request->to_date ) )->format('Y-m-d'); | |
| $t = $to_date; $f = $from_date; | |
| $request->request->add(['f' =>$f ]); | |
| $request->request->add(['t' =>$t ]); | |
| if ($request->leavetype == 'full_day') { | |
| $validator = Validator::make($request->all(), [ | |
| 'reason' => 'required', | |
| 'f' => 'required|unique:apply_leaves,from_date,' . $f . ',id,user_id,' . Auth::user()->id, | |
| 't' => 'required|unique:apply_leaves,to_date,' . $t . ',id,user_id,' . Auth::user()->id, | |
| ]); | |
| } else { | |
| $validator = Validator::make($request->all(), [ | |
| 'reason' => 'required', | |
| 'f' => 'required|unique:apply_leaves,from_date,' . $f . ',id,user_id,' . Auth::user()->id, | |
| 'halfDayType' => 'required', | |
| ]); | |
| } | |
| if ($validator->fails()) { | |
| if ($validator->messages()->has('reason')) { | |
| Session::flash('warning', 'Reason field is required'); | |
| } else if ($validator->messages()->has('halfDayType')) { | |
| Session::flash('warning', 'Duration field is required'); | |
| } else { | |
| Session::flash('warning', 'Already Taken Leave On This Date!'); | |
| } | |
| return redirect()->route('admin-apply-leave.index')->withErrors($validator); | |
| } else { | |
| $leaveBalance = LeaveHelper::getEntitlementLeave($request->user_id, $request->leave_id); | |
| if ($leaveBalance < $request->leave_length && LeaveHelper::checkTotalLeaves($request->leave_id)) { | |
| Session::flash('warning', ' Not Enough Leave Balance!'); | |
| return redirect()->route('admin-apply-leave.index'); | |
| } | |
| // Create or update leave records directly without creating a leave request | |
| $leave = ApplyLeave::where('user_id', $request->user_id) | |
| ->where('leave_id', $request->leave_id) | |
| ->where('from_date', $from_date) | |
| ->where('to_date', $to_date) | |
| ->first(); | |
| if (!$leave) { | |
| $leave = new ApplyLeave(); | |
| $leave->user_id = $request->user_id; | |
| $leave->leave_id = $request->leave_id; | |
| $leave->from_date = $from_date; | |
| if ($request->leavetype == 'full_day') { | |
| $leave->to_date = $to_date; | |
| } else { | |
| $leave->to_date = $from_date; | |
| } | |
| } | |
| $leave->leave_length = $request->leave_length; | |
| $leave->leave_type = $request->leavetype; | |
| $leave->half_day_type = $request->halfDayType; | |
| if ($leave->leave_type == "half_day") { | |
| $leave->leave_length = 0.5; | |
| } | |
| if ($leave->leave_type == "full_day") { | |
| $leave->half_day_type = null; | |
| } | |
| $leave->reason = $request->reason; | |
| $leave->is_process = 'true'; | |
| $leave->status = 'Approve'; // Mark the leave as directly approved by admin | |
| $leave->save(); | |
| LeaveHelper::updateUserLeaveBalance($leave->user_id, $leave->leave_id, $leave->leave_length); | |
| Session::flash('success', 'Leave Marked Successfully!'); | |
| return redirect()->route('admin-apply-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($id) | |
| { | |
| // | |
| } | |
| /** | |
| * Update the specified resource in storage. | |
| * | |
| * @param \Illuminate\Http\Request $request | |
| * @param int $id | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function destroy($id) | |
| { | |
| // | |
| } | |
| public function adminGetLeaveCount(Request $request) | |
| { | |
| $leaveBalance = LeaveHelper::getEntitlementLeave($request->userId, $request->leaveId); | |
| //get leave | |
| $leave = Leave::find($request->leaveId); | |
| // For returning attendance marking for home controller | |
| $val = AttendanceHelper::getAttendanceMarkValue(); | |
| $valTeam = AttendanceHelper::getAttendanceTeam($request); | |
| $valUser = AttendanceHelper::getAttendanceUser($request); | |
| return response()->json([ | |
| 'leaveBalance' => $leaveBalance, | |
| 'totalLeaves' => $leave->n_days, | |
| 'leave_allocation_type' => $leave->leave_allocation_type, | |
| 'val' => $val, | |
| 'valTeam' => $valTeam, | |
| 'valUser' => $valUser, | |
| ]); | |
| } | |
| } | |