/home/techb158/ileadtechnology.com/SSM/app/Repositories/calendar
NameSizeModeActions
CelebrationRepository.php88460644editdlrm
EventRepository.php187380644editdlrm
HolidayRepository.php60770644editdlrm
Edit: /home/techb158/ileadtechnology.com/SSM/app/Repositories/calendar/CelebrationRepository.php (8846B)
student = $student; $this->employee = $employee; $this->employee_term = $employee_term; } /** * Get birthdays * * @return Employee or Student */ public function getBirthday($params = array()) { $start_date = gv($params, 'start_date') ? toDate(gv($params, 'start_date')) : date('Y-m-d'); $end_date = gv($params, 'end_date') ? toDate(gv($params, 'end_date')) : date('Y-m-d'); if (dateDiff($end_date, $start_date) > 365) { throw ValidationException::withMessages(['message' => trans('calendar.max_selection_period_is_one_year')]); } $type = gv($params, 'type', 'student'); if ($type == 'student') { $student_ids = $this->student->whereBetween(\DB::raw('DATE_FORMAT(date_of_birth, "%c-%d")'), [\DB::raw('DATE_FORMAT(?, "%c-%d")'), \DB::raw('DATE_FORMAT(?, "%c-%d")')]) ->orWhere(function($q) { $q->whereRaw('MONTH(?) > MONTH(?)') ->where(function($q1) { $q1->whereRaw('MONTH(date_of_birth) >= MONTH(?)') ->orWhereRaw('MONTH(date_of_birth) <= MONTH(?)'); }); })->setBindings([$start_date, $end_date, $start_date, $end_date, $start_date, $end_date])->get()->pluck('id')->all(); if (\Auth::user()->hasRole(config('system.default_role.student'))) { $student_id = \Auth::user()->student->id; $student_ids = in_array($student_id, $student_ids) ? [$student_id] : []; } else if (\Auth::user()->hasRole(config('system.default_role.parent'))) { $parent_student_ids = \Auth::user()->parent->students->pluck('id')->all(); $student_ids = array_intersect($parent_student_ids, $student_ids); } $query = $this->student->with(['studentRecords','studentRecords.batch','studentRecords.batch.course','parent'])->whereHas('studentRecords', function ($q){ $q->whereNull('date_of_exit')->filterBySession(); })->whereIn('id', $student_ids); } else { $employee_ids = $this->employee->whereBetween(\DB::raw('DATE_FORMAT(date_of_birth, "%c-%d")'), [\DB::raw('DATE_FORMAT(?, "%c-%d")'), \DB::raw('DATE_FORMAT(?, "%c-%d")')]) ->orWhere(function($q) { $q->whereRaw('MONTH(?) > MONTH(?)') ->where(function($q1) { $q1->whereRaw('MONTH(date_of_birth) >= MONTH(?)') ->orWhereRaw('MONTH(date_of_birth) <= MONTH(?)'); }); })->setBindings([$start_date, $end_date, $start_date, $end_date, $start_date, $end_date])->get()->pluck('id')->all(); if (\Auth::user()->hasAnyRole([config('system.default_role.student'), config('system.default_role.parent')])) { $employee_ids = []; } $query = $this->employee->with(['employeeDesignations','employeeDesignations.designation','employeeDesignations.designation.employeeCategory'])->whereHas('employeeTerms', function ($q) use($start_date, $end_date) { $q->whereNull('date_of_leaving'); })->whereIn('id', $employee_ids); } return $query->orderBy(\DB::raw('MONTH(date_of_birth)'),'asc')->orderBy(\DB::raw('DAYOFMONTH(date_of_birth)'),'asc'); } /** * Paginate all birthdays using given params. * * @param array $params * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator */ public function paginateBirthday($params) { $page_length = gv($params, 'page_length', config('config.page_length')); return $this->getBirthday($params)->paginate($page_length); } /** * Get all filtered data for printing * * @param array $params * @return Employee or Student */ public function printBirthday($params) { return $this->getBirthday($params)->get(); } /** * Get anniversaries * * @return Employee */ public function getAnniversary($params = array()) { $start_date = gv($params, 'start_date') ? toDate(gv($params, 'start_date')) : date('Y-m-d'); $end_date = gv($params, 'end_date') ? toDate(gv($params, 'end_date')) : date('Y-m-d'); if (dateDiff($end_date, $start_date) > 365) { throw ValidationException::withMessages(['message' => trans('calendar.max_selection_period_is_one_year')]); } $employee_ids = $this->employee->whereBetween(\DB::raw('DATE_FORMAT(date_of_anniversary, "%c-%d")'), [\DB::raw('DATE_FORMAT(?, "%c-%d")'), \DB::raw('DATE_FORMAT(?, "%c-%d")')]) ->orWhere(function($q) { $q->whereRaw('MONTH(?) > MONTH(?)') ->where(function($q1) { $q1->whereRaw('MONTH(date_of_anniversary) >= MONTH(?)') ->orWhereRaw('MONTH(date_of_anniversary) <= MONTH(?)'); }); })->setBindings([$start_date, $end_date, $start_date, $end_date, $start_date, $end_date])->get()->pluck('id')->all(); $query = $this->employee->with(['employeeDesignations','employeeDesignations.designation','employeeDesignations.designation.employeeCategory'])->whereHas('employeeTerms', function ($q) use($start_date, $end_date) { $q->whereNull('date_of_leaving'); })->whereIn('id', $employee_ids); return $query->orderBy(\DB::raw('MONTH(date_of_anniversary)'),'asc')->orderBy(\DB::raw('DAYOFMONTH(date_of_anniversary)'),'asc'); } /** * Paginate all anniversaries using given params. * * @param array $params * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator */ public function paginateAnniversary($params) { $page_length = gv($params, 'page_length', config('config.page_length')); return $this->getAnniversary($params)->paginate($page_length); } /** * Get all filtered data for printing * * @param array $params * @return Employee */ public function printAnniversary($params) { return $this->getAnniversary($params)->get(); } /** * Get work anniversaries * * @return Employee */ public function getWorkAnniversary($params = array()) { $start_date = gv($params, 'start_date') ? toDate(gv($params, 'start_date')) : date('Y-m-d'); $end_date = gv($params, 'end_date') ? toDate(gv($params, 'end_date')) : date('Y-m-d'); if (dateDiff($end_date, $start_date) > 365) { throw ValidationException::withMessages(['message' => trans('calendar.max_selection_period_is_one_year')]); } $query = $this->employee_term->with('employee','employee.employeeDesignations','employee.employeeDesignations.designation','employee.employeeDesignations.designation.employeeCategory')->whereNull('date_of_leaving')->whereBetween(\DB::raw('DATE_FORMAT(date_of_joining, "%c-%d")'), [\DB::raw('DATE_FORMAT(?, "%c-%d")'), \DB::raw('DATE_FORMAT(?, "%c-%d")')]) ->orWhere(function($q) { $q->whereRaw('MONTH(?) > MONTH(?)') ->where(function($q1) { $q1->whereRaw('MONTH(date_of_joining) >= MONTH(?)') ->orWhereRaw('MONTH(date_of_joining) <= MONTH(?)'); }); })->setBindings([$start_date, $end_date, $start_date, $end_date, $start_date, $end_date]); return $query->orderBy(\DB::raw('MONTH(date_of_joining)'),'asc')->orderBy(\DB::raw('DAYOFMONTH(date_of_joining)'),'asc'); } /** * Paginate all work anniversaries using given params. * * @param array $params * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator */ public function paginateWorkAnniversary($params) { $page_length = gv($params, 'page_length', config('config.page_length')); return $this->getWorkAnniversary($params)->paginate($page_length); } /** * Get all filtered data for printing * * @param array $params * @return Employee */ public function printWorkAnniversary($params) { return $this->getWorkAnniversary($params)->get(); } }