Viewing file: TeacherController.php (26.37 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\CommonController; use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use App\Models\User; use App\Models\Session; use App\Models\Exam; use App\Models\ExamCategory; use App\Models\Classes; use App\Models\Subject; use App\Models\Gradebook; use App\Models\Grade; use App\Models\ClassList; use App\Models\Section; use App\Models\Enrollment; use App\Models\DailyAttendances; use App\Models\Routine; use App\Models\Syllabus; use App\Models\Noticeboard; use App\Models\FrontendEvent; use App\Models\Admin; use App\Models\ExpenseCategory; use App\Models\Expense; use App\Models\StudentFeeManager; use App\Models\TeacherPermission; use Illuminate\Foundation\Auth\User as AuthUser; use Stripe\Exception\PermissionException;
class TeacherController extends Controller { /** * Show the teacher dashboard. * * @return \Illuminate\Contracts\Support\Renderable */ public function teacherDashboard() { return view('teacher.dashboard'); }
/** * Show the grade list. * * @return \Illuminate\Contracts\Support\Renderable */ public function marks($value = '') { $exam_categories = ExamCategory::where('school_id', auth()->user()->school_id)->get(); $sessions = Session::where('school_id', auth()->user()->school_id)->get(); $permissions=TeacherPermission::where('teacher_id', auth()->user()->id)->where('marks', 1)->get()->toArray(); $permitted_classes=array();
foreach ($permissions as $key => $distinct_class) {
$class_details = Classes::where('id', $distinct_class['class_id'])->first()->toArray(); $permitted_classes[$key] = $class_details; }
$classes = $permitted_classes; return view('teacher.marks.index', ['exam_categories' => $exam_categories, 'classes' => $classes, 'sessions' => $sessions]); }
public function marksFilter(Request $request) { $data = $request->all();
$page_data['exam_category_id'] = $data['exam_category_id']; $page_data['class_id'] = $data['class_id']; $page_data['section_id'] = $data['section_id']; $page_data['subject_id'] = $data['subject_id']; $page_data['session_id'] = $data['session_id'];
$page_data['class_name'] = Classes::find($data['class_id'])->name; $page_data['section_name'] = Section::find($data['section_id'])->name; $page_data['subject_name'] = Subject::find($data['subject_id'])->name; $page_data['session_title'] = Session::find($data['session_id'])->session_title;
$enroll_students = Enrollment::where('class_id', $page_data['class_id']) ->where('section_id', $page_data['section_id']) ->get();
$page_data['exam_categories'] = ExamCategory::where('school_id', auth()->user()->school_id)->get(); $permissions=TeacherPermission::where('class_id', $data['class_id'])->where('section_id', $data['section_id'])->where('marks', 1)->where('teacher_id',auth()->user()->id)->get()->toArray(); $permitted_classes=array();
foreach ($permissions as $key => $distinct_class) {
$class_details = Classes::where('id', $distinct_class['class_id'])->first()->toArray(); $permitted_classes[$key] = $class_details; }
$page_data['classes'] = $permitted_classes;
return view('teacher.marks.marks_list', ['enroll_students' => $enroll_students, 'page_data' => $page_data]); }
/** * Show the exam list. * * @return \Illuminate\Contracts\Support\Renderable */ public function offlineExamList() { $id = "all"; $exams = Exam::where('exam_type', 'offline')->paginate(10); $classes = Classes::where('school_id', auth()->user()->school_id)->get(); return view('teacher.examination.offline_exam_list', compact('exams', 'classes', 'id')); }
public function offlineExamExport($id = "") { if ($id != "all") { $exams = Exam::where([ 'exam_type' => 'offline', 'class_id' => $id ])->get(); } else { $exams = Exam::get()->where('exam_type', 'offline'); } $classes = Classes::where('school_id', auth()->user()->school_id)->get(); return view('teacher.examination.offline_exam_export', ['exams' => $exams, 'classes' => $classes]); }
public function classWiseOfflineExam($id) { $exams = Exam::where([ 'exam_type' => 'offline', 'class_id' => $id ])->get(); $classes = Classes::where('school_id', auth()->user()->school_id)->get(); return view('teacher.examination.exam_list', ['exams' => $exams, 'classes' => $classes, 'id' => $id]); }
/** * Show the routine. * * @return \Illuminate\Contracts\Support\Renderable */ public function routine() { $classes = Classes::where('school_id', auth()->user()->school_id)->get(); return view('teacher.routine.routine', ['classes' => $classes]); }
public function routineList(Request $request) { $data = $request->all();
$class_id = $data['class_id']; $section_id = $data['section_id']; $classes = Classes::where('school_id', auth()->user()->school_id)->get();
return view('teacher.routine.routine_list', ['class_id' => $class_id, 'section_id' => $section_id, 'classes' => $classes]); }
/** * Show the subject list. * * @return \Illuminate\Contracts\Support\Renderable */ public function subjectList(Request $request) { $classes = Classes::where('school_id', auth()->user()->school_id)->get();
if (count($request->all()) > 0 && $request->class_id != '') {
$data = $request->all(); $class_id = $data['class_id']; $subjects = Subject::where('class_id', $class_id)->paginate(10); } else { $subjects = Subject::where('school_id', auth()->user()->school_id)->paginate(10); $class_id = ''; }
return view('teacher.subject.subject_list', compact('subjects','classes', 'class_id')); }
/** * Show the gradebook. * * @return \Illuminate\Contracts\Support\Renderable */ public function gradebook(Request $request) {
$classes = Classes::get()->where('school_id', auth()->user()->school_id); $exam_categories = ExamCategory::get()->where('school_id', auth()->user()->school_id);
$active_session = get_school_settings(auth()->user()->school_id)->value('running_session');
if (count($request->all()) > 0) {
$data = $request->all();
$filter_list = Gradebook::where(['class_id' => $data['class_id'], 'section_id' => $data['section_id'], 'exam_category_id' => $data['exam_category_id'], 'school_id' => auth()->user()->school_id, 'session_id' => $active_session])->get();
$class_id = $data['class_id']; $section_id = $data['section_id']; $exam_category_id = $data['exam_category_id']; $subjects = Subject::where(['class_id' => $class_id, 'school_id' => auth()->user()->school_id])->get(); } else { $filter_list = [];
$class_id = ''; $section_id = ''; $exam_category_id = ''; $subjects = ''; }
return view('teacher.gradebook.gradebook', ['filter_list' => $filter_list, 'class_id' => $class_id, 'section_id' => $section_id, 'exam_category_id' => $exam_category_id, 'classes' => $classes, 'exam_categories' => $exam_categories, 'subjects' => $subjects]); }
public function gradebookList(Request $request) { $data = $request->all();
$active_session = get_school_settings(auth()->user()->school_id)->value('running_session');
$exam_wise_student_list = Gradebook::where(['class_id' => $data['class_id'], 'section_id' => $data['section_id'], 'exam_category_id' => $data['exam_category_id'], 'school_id' => auth()->user()->school_id, 'session_id' => $active_session])->get(); echo view('teacher.gradebook.list', ['exam_wise_student_list' => $exam_wise_student_list, 'class_id' => $data['class_id'], 'section_id' => $data['section_id'], 'exam_category_id' => $data['exam_category_id'], 'school_id' => auth()->user()->school_id, 'session_id' => $active_session]); }
public function subjectWiseMarks(Request $request, $student_id = "") { $data = $request->all();
$active_session = get_school_settings(auth()->user()->school_id)->value('running_session');
$subject_wise_mark_list = Gradebook::where(['class_id' => $data['class_id'], 'section_id' => $data['section_id'], 'exam_category_id' => $data['exam_category_id'], 'student_id' => $student_id, 'school_id' => auth()->user()->school_id, 'session_id' => $active_session])->first(); echo view('teacher.gradebook.subject_marks', ['subject_wise_mark_list' => $subject_wise_mark_list]); }
public function list_of_syllabus(Request $request) { $data=$request->all(); $permissions=TeacherPermission::where('teacher_id',auth()->user()->id)->select('class_id')->distinct()->get()->toArray(); $permitted_classes=array();
foreach ($permissions as $key => $distinct_class) {
$class_details = Classes::where('id', $distinct_class['class_id'])->first()->toArray(); $permitted_classes[$key] = $class_details; }
return view('teacher.syllabus.index', ['permitted_classes' => $permitted_classes]); }
public function class_wise_section_for_syllabus(Request $request) { $data=$request->all(); $permissions=TeacherPermission::where('class_id',$data['classId'])->where('teacher_id',auth()->user()->id)->get()->toArray(); $permitted_sections=array();
foreach ($permissions as $key => $distinct_section) {
$section_details = Section::where('id', $distinct_section['section_id'])->first()->toArray(); $permitted_sections[$key] = $section_details; }
$options = '<option value="">' . 'Select a section' . '</option>'; foreach ($permitted_sections as $section) : $options .= '<option value="' . $section['id'] . '">' . $section['name'] . '</option>'; endforeach; echo $options; }
public function syllabus_details(Request $request) { $data = $request->all(); $syllabuses = Syllabus::where('class_id', $data['class_id']) ->where('section_id', $data['section_id']) ->where('school_id', auth()->user()->school_id) ->get()->toArray();
return view('teacher.syllabus.list', ['syllabuses' => $syllabuses]); }
public function show_syllabus_modal(Request $request) { $data = $request->all();
$permissions=TeacherPermission::where('teacher_id',auth()->user()->id)->select('class_id')->distinct()->get()->toArray(); $classes=array();
foreach ($permissions as $key => $distinct_class) { $class_details = Classes::where('id', $distinct_class['class_id'])->first()->toArray(); $classes[$key] = $class_details; }
return view('teacher.syllabus.create', ['classes' => $classes]); } public function show_syllabus_modal_post(Request $request) { $data = $request->all();
$active_session = get_school_settings(auth()->user()->school_id)->value('running_session');
$file = $data['syllabus_file'];
if ($file) { $filename = $file->getClientOriginalName(); $extension = $file->getClientOriginalExtension(); //Get extension of uploaded file
$file->move(public_path('assets/uploads/syllabus/'), $filename);
$filepath = asset('public/assets/uploads/syllabus/' . $filename); }
Syllabus::create([ 'title' => $data['title'], 'class_id' => $data['class_id'], 'section_id' => $data['section_id'], 'subject_id' => $data['subject_id'], 'file' => $filename, 'school_id' => auth()->user()->school_id, 'session_id' => $active_session, ]);
return redirect()->back()->with('message', 'You have successfully create a syllabus.'); }
public function syllabusDelete($id = '') { $syllabus = Syllabus::find($id); $syllabus->delete(); return redirect()->back()->with('message', 'You have successfully delete syllabus.'); }
function profile(){ return view('teacher.profile.view'); }
function profile_update(Request $request){ $data['name'] = $request->name; $data['email'] = $request->email; $data['designation'] = $request->designation; $user_info['birthday'] = strtotime($request->eDefaultDateRange); $user_info['gender'] = $request->gender; $user_info['phone'] = $request->phone; $user_info['address'] = $request->address;
if(empty($request->photo)){ $user_info['photo'] = $request->old_photo; }else{ $file_name = random(10).'.png'; $user_info['photo'] = $file_name;
$request->photo->move(public_path('assets/uploads/user-images/'), $file_name); }
$data['user_information'] = json_encode($user_info);
User::where('id', auth()->user()->id)->update($data); return redirect(route('teacher.profile'))->with('message', get_phrase('Profile info updated successfully')); }
function password($action_type = null, Request $request){
if($action_type == 'update'){
if($request->new_password != $request->confirm_password){ return back()->with("error", "Confirm Password Doesn't match!"); }
if(!Hash::check($request->old_password, auth()->user()->password)){ return back()->with("error", "Current Password Doesn't match!"); }
$data['password'] = Hash::make($request->new_password); User::where('id', auth()->user()->id)->update($data);
return redirect(route('teacher.password', 'edit'))->with('message', get_phrase('Password changed successfully')); }
return view('teacher.profile.password'); }
/** * Show the noticeboard list. * * @return \Illuminate\Contracts\Support\Renderable */ public function noticeboardList() { $notices = Noticeboard::get()->where('school_id', auth()->user()->school_id);
$events = array();
foreach ($notices as $notice) { if ($notice['end_date'] != "") { if ($notice['start_date'] != $notice['end_date']) { $end_date = strtotime($notice['end_date']) + 24 * 60 * 60; $end_date = date('Y-m-d', $end_date); } else { $end_date = date('Y-m-d', strtotime($notice['end_date'])); } }
if ($notice['end_date'] == "" && $notice['start_time'] == "" && $notice['end_time'] == "") { $info = array( 'id' => $notice['id'], 'title' => $notice['notice_title'], 'start' => date('Y-m-d', strtotime($notice['start_date'])) ); } else if ($notice['start_time'] != "" && ($notice['end_date'] == "" && $notice['end_time'] == "")) { $info = array( 'id' => $notice['id'], 'title' => $notice['notice_title'], 'start' => date('Y-m-d', strtotime($notice['start_date'])) . 'T' . $notice['start_time'] ); } else if ($notice['end_date'] != "" && ($notice['start_time'] == "" && $notice['end_time'] == "")) { $info = array( 'id' => $notice['id'], 'title' => $notice['notice_title'], 'start' => date('Y-m-d', strtotime($notice['start_date'])), 'end' => $end_date ); } else if ($notice['end_date'] != "" && $notice['start_time'] != "" && $notice['end_time'] != "") { $info = array( 'id' => $notice['id'], 'title' => $notice['notice_title'], 'start' => date('Y-m-d', strtotime($notice['start_date'])) . 'T' . $notice['start_time'], 'end' => date('Y-m-d', strtotime($notice['end_date'])) . 'T' . $notice['end_time'] ); } else { $info = array( 'id' => $notice['id'], 'title' => $notice['notice_title'], 'start' => date('Y-m-d', strtotime($notice['start_date'])) ); } array_push($events, $info); }
$events = json_encode($events);
return view('teacher.noticeboard.noticeboard', ['events' => $events]); }
public function editNoticeboard($id = "") { $notice = Noticeboard::find($id); return view('teacher.noticeboard.edit', ['notice' => $notice]); }
/** * Show the event list. * * @return \Illuminate\Contracts\Support\Renderable */ public function eventList(Request $request) { $search = $request['search'] ?? "";
if($search != "") {
$events = FrontendEvent::where(function ($query) use($search) { $query->where('title', 'LIKE', "%{$search}%"); })->paginate(10);
} else { $events = FrontendEvent::where('school_id', auth()->user()->school_id)->paginate(10); }
return view('teacher.events.events', compact('events', 'search')); }
/** * Show the grade daily attendance. * * @return \Illuminate\Contracts\Support\Renderable */
public function dailyAttendance() { $permissions=TeacherPermission::where('teacher_id', auth()->user()->id)->select('class_id')->distinct()->get()->toArray(); $classes=array();
foreach ($permissions as $key => $distinct_class) {
$class_details = Classes::where('id', $distinct_class['class_id'])->first()->toArray(); $classes[$key] = $class_details; }
$attendance_of_students = array(); $no_of_users = 0;
return view('teacher.attendance.daily_attendance', ['classes' => $classes, 'attendance_of_students' => $attendance_of_students, 'no_of_users' => $no_of_users]); }
public function dailyAttendanceFilter(Request $request) { $data = $request->all();
$date = '01 '.$data['month'].' '.$data['year']; $first_date = strtotime($date); $last_date = date("Y-m-t", strtotime($date)); $last_date = strtotime($last_date);
$page_data['attendance_date'] = strtotime($date); $page_data['class_id'] = $data['class_id']; $page_data['section_id'] = $data['section_id']; $page_data['month'] = $data['month']; $page_data['year'] = $data['year'];
$active_session = get_school_settings(auth()->user()->school_id)->value('running_session');
$attendance_of_students = DailyAttendances::whereBetween('timestamp', [$first_date, $last_date])->where(['class_id' => $data['class_id'], 'section_id' => $data['section_id'], 'school_id' => auth()->user()->school_id, 'session_id' => $active_session])->get()->toArray();
$no_of_users = DailyAttendances::where(['class_id' => $data['class_id'], 'section_id' => $data['section_id'], 'school_id' => auth()->user()->school_id, 'session_id' => $active_session])->distinct()->count('student_id');
$permissions=TeacherPermission::where('teacher_id', auth()->user()->id)->select('class_id')->distinct()->get()->toArray(); $classes=array();
foreach ($permissions as $key => $distinct_class) {
$class_details = Classes::where('id', $distinct_class['class_id'])->first()->toArray(); $classes[$key] = $class_details; }
return view('teacher.attendance.attendance_list', ['page_data' => $page_data, 'classes' => $classes, 'attendance_of_students' => $attendance_of_students, 'no_of_users' => $no_of_users]); }
public function takeAttendance() { $permissions=TeacherPermission::where('teacher_id', auth()->user()->id)->select('class_id')->distinct()->get()->toArray(); $classes=array();
foreach ($permissions as $key => $distinct_class) {
$class_details = Classes::where('id', $distinct_class['class_id'])->first()->toArray(); $classes[$key] = $class_details; } return view('teacher.attendance.take_attendance', ['classes' => $classes]); }
public function studentListAttendance(Request $request) { $data = $request->all();
$page_data['attendance_date'] = $data['date']; $page_data['class_id'] = $data['class_id']; $page_data['section_id'] = $data['section_id'];
return view('teacher.attendance.student', ['page_data' => $page_data]); }
public function attendanceTake(Request $request) { $att_data = $request->all();
$students = $att_data['student_id']; $active_session = get_school_settings(auth()->user()->school_id)->value('running_session');
$data['timestamp'] = strtotime($att_data['date']); $data['class_id'] = $att_data['class_id']; $data['section_id'] = $att_data['section_id']; $data['school_id'] = auth()->user()->school_id; $data['session_id'] = $active_session;
$check_data = DailyAttendances::where(['timestamp' => $data['timestamp'], 'class_id' => $data['class_id'], 'section_id' => $data['section_id'], 'session_id' => $active_session, 'school_id' => auth()->user()->school_id])->get(); if(count($check_data) > 0){ foreach($students as $key => $student): $data['status'] = $att_data['status-'.$student]; $data['student_id'] = $student; $attendance_id = $att_data['attendance_id'];
DailyAttendances::where('id', $attendance_id[$key])->update($data);
endforeach; }else{ foreach($students as $student): $data['status'] = $att_data['status-'.$student]; $data['student_id'] = $student;
DailyAttendances::create($data);
endforeach; }
return redirect()->back()->with('message','Student attendance updated successfully.'); }
public function dailyAttendanceFilter_csv(Request $request) {
$data = $request->all();
$store_get_data=array_keys($data);
$data['month']= substr($store_get_data[0],0,3); $data['year']= substr($store_get_data[0],4,4); $data['role_id']=substr($store_get_data[0],9,5);
$active_session = get_school_settings(auth()->user()->school_id)->value('running_session');
$date = '01 ' . $data['month'] . ' ' . $data['year'];
$first_date = strtotime($date);
$last_date = date("Y-m-t", strtotime($date)); $last_date = strtotime($last_date);
$page_data['month'] = $data['month']; $page_data['year'] = $data['year']; $page_data['attendance_date'] = $first_date; $no_of_users = 0;
$no_of_users = DailyAttendances::whereBetween('timestamp', [$first_date, $last_date])->where(['school_id' => auth()->user()->school_id, 'session_id' => $active_session])->distinct()->count('student_id'); $attendance_of_students = DailyAttendances::whereBetween('timestamp', [$first_date, $last_date])->where(['school_id' => auth()->user()->school_id, 'session_id' => $active_session])->get()->toArray();
$csv_content ="Student"."/".get_phrase('Date'); $number_of_days = date('m', $page_data['attendance_date']) == 2 ? (date('Y', $page_data['attendance_date']) % 4 ? 28 : (date('m', $page_data['attendance_date']) % 100 ? 29 : (date('m', $page_data['attendance_date']) % 400 ? 28 : 29))) : ((date('m', $page_data['attendance_date']) - 1) % 7 % 2 ? 30 : 31); for ($i = 1; $i <= $number_of_days; $i++) { $csv_content .=','.get_phrase($i);
}
$file = "Attendence_report.csv";
$student_id_count = 0;
foreach(array_slice($attendance_of_students, 0, $no_of_users) as $attendance_of_student ){ $csv_content .= "\n";
$user_details = (new CommonController)->get_user_by_id_from_user_table($attendance_of_student['student_id']); if(date('m', $page_data['attendance_date']) == date('m', $attendance_of_student['timestamp'])) {
if($student_id_count != $attendance_of_student['student_id']) {
$csv_content .= $user_details['name'] . ',';
for ($i = 1; $i <= $number_of_days; $i++) { $page_data['date'] = $i.' '.$page_data['month'].' '.$page_data['year']; $timestamp = strtotime($page_data['date']);
$attendance_by_id = DailyAttendances::where([ 'student_id' => $attendance_of_student['student_id'], 'school_id' => auth()->user()->school_id, 'timestamp' => $timestamp])->first(); if(isset($attendance_by_id->status) && $attendance_by_id->status == 1){ $csv_content .= "P,"; }elseif(isset($attendance_by_id->status) && $attendance_by_id->status == 0){ $csv_content .= "A,"; } else { $csv_content .= ",";
}
if($i==$number_of_days) { $csv_content= substr_replace($csv_content,"", -1); } } }
$student_id_count = $attendance_of_student['student_id']; } }
$txt = fopen($file, "w") or die("Unable to open file!"); fwrite($txt, $csv_content); fclose($txt);
header('Content-Description: File Transfer'); header('Content-Disposition: attachment; filename=' . $file); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); header("Content-type: text/csv"); readfile($file); } }
|