public function deleteBulk(validationRequest $request, Semester $Semester, $rr)
 {
     return "fd";
     dd($request);
     if (!$request->has('table_records')) {
         return redirect()->route('academycycle.years.index');
     }
     $ids = $request->input('table_records');
     dd($ids);
     $Semester->destroy($ids);
     return redirect()->route('ac.semesters.index')->with('success', trans('academycycle::semesters.delete_bulk_success'));
 }
    public function create($student_id)
    {
        $semesters = Semester::select(\DB::raw('CONCAT(academycycle_semesters.name , "-", academycycle_years.name) as name ,
		 academycycle_semesters.id as id'))->join('academycycle_years', 'academycycle_years.id', '=', 'academycycle_semesters.academycycle_year_id')->pluck('name', 'id')->toArray();
        $subjects = Subject::all()->pluck('name', 'id')->toArray();
        return view('students::subjects.create', compact('student_id', 'subjects', 'semesters'));
    }
Beispiel #3
0
 public function create()
 {
     $subjects = Subject::lists('name', 'id')->toArray();
     $questions_types = config('questionbank.types');
     $questions_difficulties = config('questionbank.difficulty');
     $questions_levels = config('questionbank.level');
     $semesters = Semester::select('academycycle_semesters.id', DB::raw('CONCAT(academycycle_semesters.name ,"-", ay.name ) as name '))->join('academycycle_years as ay', 'academycycle_semesters.academycycle_year_id', '=', 'ay.id')->pluck('name', 'id')->toArray();
     $types = config('exams.types');
     return view('exams::exams.create', compact('subjects', 'types', 'questions_types', 'questions_difficulties', 'questions_levels', 'semesters'));
 }
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     Model::unguard();
     if (Semester::count() > 0) {
         return;
     }
     Semester::where('id', '>', 0)->delete();
     Year::where('id', '>', 0)->delete();
     $years = DB::connection('old')->table('eduyears')->get();
     foreach ($years as $year) {
         $new_year = new Year();
         //new_year->id = $year->sub_id;
         $new_year->name = $year->eyear_title;
         //$new_year->start_at = $year->eyear_created ;
         //$new_year->finish_at = $year->eyear_created + 1 year;
         $new_year->save();
     }
     $this->command->info('year table seeded!');
     $sems = DB::connection('old')->table('semesters')->get();
     foreach ($sems as $sem) {
         $new_semester = new Semester();
         $new_semester->id = $sem->sem_id;
         $new_semester->name = $sem->sem_name;
         // $new_semester->start_at = $sem->sem_from ;
         // $new_semester->finish_at = $sem->sem_to;
         $new_semester->active = $sem->sem_current;
         $new_semester->Academycycle_year_id = $sem->sem_eyearid;
         $term = '';
         if ($sem->sem_term == 1) {
             $term = 'first';
         }
         if ($sem->sem_term == 2) {
             $term = 'second';
         }
         if ($sem->sem_term == 3) {
             $term = 'summer';
         }
         $new_semester->order = $term;
         $new_semester->save();
     }
     $this->command->info('Semester table seeded!');
 }
Beispiel #5
0
 function semester()
 {
     $semester = Cache::remember('users', 180, function () {
         $semester = \Modules\Academycycle\Entities\Semester::whereActive(1)->first();
         if (empty($semester)) {
             $semester = new stdClass();
             $semester->id = 0;
             $semester->name = "لا يوجد فصل";
             $semester->start_at = Carbon\Carbon::now();
             $semester->finish_at = Carbon\Carbon::parse('08-08-2016');
         }
         return $semester;
     });
     return $semester;
     // });
 }
 /**
  * Execute the job.
  *
  * @return void
  */
 public function handle()
 {
     $student = Student::find($this->student_id);
     if ($student) {
         $failed_subjects = [];
         $success_subjects = [];
         $semester = semester();
         $subjects = StudentSubject::selectRaw("subsub.id as subject_id,SUM(stugr.value) AS subject_points,student_subjects.state as subject_state,subsub.name AS subject_name, subsub.hour AS subject_hours")->join('subject_subjects AS subsub', function ($join) {
             $join->on('subsub.id', '=', 'student_subjects.subject_id');
         })->where('student_subjects.student_id', $student->id)->leftJoin('student_grades AS stugr', function ($join) use($student, $semester) {
             $join->on('stugr.subject_id', '=', 'subsub.id')->where('stugr.semester_id', '=', $semester->id)->where('stugr.student_id', '=', $student->id);
         })->whereIn('state', ['study', 'success', 'fail'])->where('student_subjects.semester_id', '=', $semester->id)->where('student_subjects.student_id', $student->id)->groupBy('subsub.id')->get();
         $subjects->each(function ($subject) use(&$failed_subjects, $success_subjects) {
             $subject->details = grade_details($subject->subject_points, $subject->subject_hours);
             if ((double) $subject->subject_points < 50) {
                 $failed_subjects[] = $subject->subject_id;
             } else {
                 $success_subjects[] = $subject->subject_id;
             }
         });
         $semester->load('year');
         $currentYear = $semester->year;
         $nextYear = AcademycycleYear::where('start_at', '>', $currentYear->start_at)->first();
         $repeatSemester = Semester::where('order', $semester->order)->where('academycycle_year_id', $nextYear->id)->first();
         $currentHistory = StudentHistory::where('student_id', $student->id)->where('academycycle_semester_id', $semester->id)->first();
         $repeatSubjects = [];
         foreach ($failed_subjects as $subject_id) {
             $repeatSubjects[$subject_id] = ['semester_id' => $repeatSemester->id, 'academystructure_department_id' => $currentHistory->academystructure_department_id, 'state' => 'study'];
         }
         $student->subjects()->attach($repeatSubjects);
         StudentSubject::where('semester_id', $semester->id)->where('student_id', $student->id)->whereIn('subject_id', $success_subjects)->update(['state' => 'success']);
         StudentSubject::where('semester_id', $semester->id)->where('student_id', $student->id)->whereIn('subject_id', $failed_subjects)->update(['state' => 'fail']);
         $currentHistory->study_state = 'repeat';
         $currentHistory->save();
         $repeatHistory = $currentHistory->replicate();
         $repeatHistory->study_state = 'active';
         $repeatHistory->academycycle_semester_id = $repeatSemester->id;
         $repeatHistory->save();
         $student->study_state = 'repeat';
         $student->save();
     }
 }
Beispiel #7
0
 public function __construct()
 {
     $this->student = Auth::guard('api_student')->user();
     // if ($this->student) {
     // $this->student->load('joyrides');
     // }
     if ($this->student) {
         $this->semester = Semester::select('academycycle_semesters.id', 'academycycle_semesters.academycycle_year_id as year_id', 'academycycle_semesters.start_at', 'academycycle_semesters.finish_at', 'academycycle_semesters.name', 'academycycle_semesters.order')->join('student_histories as sh', function ($j) {
             $j->on('sh.academycycle_semester_id', '=', 'academycycle_semesters.id')->where('sh.student_id', '=', $this->student->id);
         })->where(function ($query) {
             $query->orWhere('academycycle_semester_id', semester()->id);
             $query->orWhere('academycycle_semester_id', '>', semester()->id);
         })->orderBy('academycycle_semesters.id', 'ASC')->first();
         if (!$this->semester) {
             $this->semester = semester();
             $this->semester->year_id = $this->semester->academycycle_year_id;
         }
         // Cache::put('student_'.$this->student->id.'_api_semester', $this->semester, 300);
         // Cache::put('student_'.$this->student->id.'_api_student', $this->student, 300);
     }
 }
 /**
  * Register the service provider.
  *
  * @return void
  */
 public function register()
 {
     Year::created(function ($year) {
         UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'year', 'reference_id' => $year->id]);
     });
     Year::updated(function ($year) {
         UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'year', 'reference_id' => $year->id]);
     });
     Year::deleted(function ($year) {
         UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'year', 'reference_id' => $year->id]);
     });
     Semester::created(function ($semester) {
         UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semester', 'reference_id' => $semester->id]);
     });
     Semester::updated(function ($semester) {
         UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semester', 'reference_id' => $semester->id]);
     });
     Semester::deleted(function ($semester) {
         UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semester', 'reference_id' => $semester->id]);
     });
     SemesterEvent::created(function ($semesterEvent) {
         UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semesterEvent', 'reference_id' => $semesterEvent->id]);
     });
     SemesterEvent::updated(function ($semesterEvent) {
         UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semesterEvent', 'reference_id' => $semesterEvent->id]);
     });
     SemesterEvent::deleted(function ($semesterEvent) {
         UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semesterEvent', 'reference_id' => $semesterEvent->id]);
     });
     SemesterEventType::created(function ($semesterEventType) {
         UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semesterEventType', 'reference_id' => $semesterEventType->id]);
     });
     SemesterEventType::updated(function ($semesterEventType) {
         UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semesterEventType', 'reference_id' => $semesterEventType->id]);
     });
     SemesterEventType::deleted(function ($semesterEventType) {
         UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semesterEventType', 'reference_id' => $semesterEventType->id]);
     });
 }
 public function index(Request $request)
 {
     $invoices = FinancialInvoice::with('student')->where('type', 'credit')->orderBy('id', 'desc');
     if ($request->has('transaction_wid')) {
         $invoices->where('transaction_wid', 'LIKE', "%" . $request->input('transaction_wid') . "%");
     }
     if ($request->has('student_id')) {
         $invoices->where('student_id', $request->input('student_id'));
     }
     $filter_semester_id = 0;
     if (request('semester_id')) {
         $filter_semester_id = request('semester_id');
     } else {
         $filter_semester_id = semester()->id;
     }
     if ($request->has('semester_id')) {
         $invoices->where('semester_id', $filter_semester_id);
     }
     $semesters = Semester::select(\DB::raw('CONCAT(academycycle_semesters.name , "-", academycycle_years.name) as name , academycycle_semesters.id as id'))->join('academycycle_years', 'academycycle_years.id', '=', 'academycycle_semesters.academycycle_year_id')->pluck('name', 'id')->toArray();
     $per_page = request('per_page') ? request('per_page') : 50;
     $invoices = $invoices->paginate($per_page);
     $invoices->appends($request->except("page"));
     return view('financials::invoices.index', compact('invoices', 'semesters'));
 }
Beispiel #10
0
 /**
  * Show the form for editing the specified resource.
  * @return Response
  */
 public function edit($doc_id)
 {
     $doc = PaperDoc::with('paper', 'pfiles')->find($doc_id);
     $paper = $doc->paper;
     $student = Student::find($paper->student_id);
     $category = $doc->category;
     $types = config('papers.' . $doc->category);
     $diff[$doc->type] = $types[$doc->type];
     if ($category == 'semester_type') {
         //semester case
         $Semesters = Semester::select('academycycle_semesters.id', DB::raw('CONCAT(academycycle_semesters.name ,"-", ay.name ) as name '))->join('academycycle_years as ay', 'academycycle_semesters.academycycle_year_id', '=', 'ay.id')->pluck('name', 'id')->toArray();
         $users = User::pluck('name', 'id')->toArray();
         return view('papers::edit', compact('doc_id', 'student', 'paper', 'diff', 'doc', 'category', 'Semesters', 'users'));
     } else {
         return view('papers::edit', compact('doc_id', 'student', 'paper', 'diff', 'doc', 'category'));
     }
 }
    public function editInvoice($invoice_id)
    {
        $semesters = Semester::select(\DB::raw('CONCAT(academycycle_semesters.name , "-",academycycle_years.name) as name ,
			 academycycle_semesters.id as id'))->join('academycycle_years', 'academycycle_years.id', '=', 'academycycle_semesters.academycycle_year_id')->pluck('name', 'id')->toArray();
        $Invoices = FinancialInvoice::findOrFail($invoice_id);
        return view('financials::reports.edit', compact('semesters', 'student_id', 'Invoices'));
    }
Beispiel #12
0
 /**
  * Handle the event.
  *
  * @param  RegistrationStepChanged  $event
  * @return void
  */
 public function handle(RegistrationStepChanged $event)
 {
     $registration = $event->registration;
     $semester = semester();
     $finish = $semester ? $semester->finish_at : date('Y-m-d');
     if ($semester->order != 'first') {
         $semester = Semester::where('order', 'first')->where('start_at', '>', $finish)->orderBy('start_at', 'ASC')->first();
     }
     if (empty($semester)) {
         return false;
     }
     $registration->load('step', 'student', 'contactcountry', 'files');
     if ($registration->step->enroll == 1 && !$registration->student) {
         $equation_subjects_ids = RegistrationEquationSubject::whereNotNull('subject_id')->where('status', 'accepted')->whereHas('equation', function ($w) use($registration) {
             $w->where('registration_id', $registration->id);
         })->pluck('subject_id')->toArray();
         $subject_ids = [];
         $i = 0;
         $department = 0;
         while (count(array_diff($subject_ids, $equation_subjects_ids)) == 0) {
             $department = Department::where('spec_id', $registration->academystructure_specialty_id)->where(function ($w) use($department) {
                 $w->orWhere('parent_id', !empty($department->id) ? $department->id : 0);
                 $w->orWhereNull('parent_id');
             })->first();
             $subject_ids = json_decode($department->subject_ids, TRUE);
             $i++;
             if ($i == 20) {
                 break;
             }
         }
         if (empty($subject_ids)) {
             return false;
         }
         $subjects = Subject::whereIn('id', $subject_ids)->get();
         $mobile = ($registration->contactcountry ? $registration->contactcountry->calling_code : "968") . $registration->contact_mobile;
         $data = ['username' => $registration->username, 'username_prefix' => $registration->enroll_code, 'password' => bcrypt($registration->contact_mobile), 'name' => $registration->fullname, 'email' => $registration->contact_email, 'mobile' => $mobile, 'state' => 'active', 'study_state' => 'active', 'national_id' => $registration->national_id, 'gender' => $registration->gender, 'registration_id' => $registration->id, 'academystructure_department_id' => $department->id, 'registration_type_id' => $registration->registration_type_id];
         if ($registration->files) {
             $photo = $registration->files->first(function ($key, $value) {
                 return $key == 'photo';
             });
             if ($photo) {
                 // $data['photo'] = asset($photo->file->url());
             }
         }
         Eloquent::unguard();
         $student = Student::create($data);
         $invoiceItem = FinancialInvoiceItem::where('slug', 'study_fee')->first();
         $study_fee = $registration->study_fee > 0 ? $registration->study_fee : $invoiceItem->amount;
         $total_amount = $subjects->sum(function ($s) use($equation_subjects_ids, $study_fee) {
             $amount = 0;
             if (!in_array($s->id, $equation_subjects_ids)) {
                 $amount = !$s->is_quran ? $s->hour * (int) $study_fee : $s->hour * ((int) $study_fee / 2);
             }
             return $amount;
         });
         if ($student) {
             if ($registration->debit && $invoiceItem) {
                 $invoiceData = ['ref_key' => 'registrations', 'ref_value' => $registration->id, 'student_id' => $student->id, 'amount' => $registration->debit, 'type' => 'credit', 'item_id' => $invoiceItem->id, 'pay_type' => 'epay', 'bank_code' => $registration->reason_code, 'transaction_wid' => $registration->transaction_uuid, 'note' => 'ايصال دفع مصاريف التسجيل.'];
                 FinancialInvoice::create($invoiceData);
                 // create debit invoice
                 $invoiceData = ['ref_key' => 'registrations', 'ref_value' => $registration->id, 'student_id' => $student->id, 'amount' => $total_amount, 'type' => 'debit', 'item_id' => $invoiceItem->id, 'pay_type' => 'epay', 'note' => 'فاتةورة التسجيل.'];
                 FinancialInvoice::create($invoiceData);
             }
             foreach ($subjects as $subject) {
                 $subject_state = in_array($subject->id, $equation_subjects_ids) ? 'equal' : 'study';
                 $subject_payed = in_array($subject->id, $equation_subjects_ids) ? 0 : 1;
                 if (!$registration->debit && $registration->step->make_payment) {
                     $subject_payed = 0;
                 }
                 $data = ['student_id' => $student->id, 'subject_id' => $subject->id, 'semester_id' => $semester->id, 'academystructure_department_id' => $department->id, 'state' => $subject_state, 'note' => '', 'payed' => $subject_payed];
                 $studentSubject = StudentSubject::create($data);
             }
             $historyData = ['student_id' => $student->id, 'state' => 'active', 'study_state' => 'active', 'academycycle_semester_id' => $semester->id, 'academystructure_department_id' => $department->id];
             StudentHistory::create($historyData);
             $this->createStudentEmail($student, $registration->contact_mobile);
             try {
                 if (!empty($photo)) {
                     $student->photo = $photo;
                     $student->save();
                 }
             } catch (\Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException $e) {
             }
         }
         //\Log::info('turn to student '.$response);
     }
 }
 public function show($order_id)
 {
     $Semesters = Semester::select('academycycle_semesters.id', DB::raw('CONCAT(academycycle_semesters.name ,"-", ay.name ) as name '))->join('academycycle_years as ay', 'academycycle_semesters.academycycle_year_id', '=', 'ay.id')->pluck('name', 'id')->toArray();
     $withdraw_order = Withdraw::with(['student', 'files', 'history', 'history.user', 'student.financials' => function ($query) {
         $query->where('semester_id', semester()->id)->where('type', 'credit');
     }])->findOrFail($order_id);
     $old_order = Withdraw::where('student_id', $withdraw_order->student_id)->where('semester_id', '!=', semester()->id)->get();
     return view('orders::withdraw.show', compact('withdraw_order', 'old_order', 'Semesters'));
 }
 /**
  * Display a listing of the resource.
  * @return Response
  */
 public function index()
 {
     $semesters = Semester::select('start_at', 'finish_at', 'name', 'id', 'order', 'academycycle_year_id as year_id')->orderBy('id', 'asc')->get();
     return response()->json($semesters, 200, [], JSON_NUMERIC_CHECK);
 }
Beispiel #15
0
 public function create($event_type, $type, SemesterEvent $SemesterEvent)
 {
     $current_semester_id = semester()->id;
     $student_id = student()->id;
     $semesters = Semester::with('year')->get();
     $semester_id = [];
     /////////////////////////////////////delay/////////////////////////////
     if ($event_type == 'delay') {
         // get delay order period
         //dd($semesters);
         $delay_semester_events = $SemesterEvent->where('semester_id', '=', $current_semester_id)->whereHas('event_type', function ($query) {
             $query->where('academycycle_semesterevent_types.category', 'delay');
         })->first();
         // get delay order for student in current semeter if exist and not refuse or cancel
         $delayOrders = new DelayOrders();
         $student_delay_order = $delayOrders->where('semester_id', '=', $current_semester_id)->where('student_id', '=', $student_id)->whereNotIn('state', array('الغاء بناء على طلب الطالب', 'الغاء لعدم الاستكمال', 'رفض'))->first();
         if ($student_delay_order and $type == 0) {
             return redirect()->route('student.orders.list', $event_type);
         } else {
             //check if period available
             if ($type == 0) {
                 foreach ($semesters as $semester) {
                     if ($semester->active == 1) {
                         $semester_id[$semester->id] = $semester->year->name . " --  " . $semester->name;
                     }
                 }
                 return view('orders::delay.create', compact('semester_id'));
             } elseif ($type == '1') {
                 // bring all semester
                 foreach ($semesters as $semester) {
                     $semester_id[$semester->id] = $semester->year->name . " --  " . $semester->name;
                 }
                 return view('orders::delay.create', compact('semester_id'));
             } else {
                 return redirect()->route('orders.index');
             }
         }
         //////////////////////////////////////withdraw/////////////////////////////
     } elseif ($event_type == 'withdraw') {
         // get delay order period
         $withdraw_semester_events = $SemesterEvent->where('semester_id', '=', $current_semester_id)->whereHas('event_type', function ($query) {
             $query->where('academycycle_semesterevent_types.category', 'withdraw');
         })->first();
         // get withdraw order for student in current semeter if exist and not refuse or cancel
         $withdrawOrders = new WithdrawOrders();
         $student_withdraw_order = $withdrawOrders->where('semester_id', '=', $current_semester_id)->where('student_id', '=', $student_id)->whereNotIn('state', array('الغاء بناء على طلب الطالب', 'الغاء لعدم الاستكمال', 'رفض'))->first();
         if ($student_withdraw_order) {
             return redirect()->route('student.orders.list', $event_type);
         } else {
             //check if period available
             if ($type == 0) {
                 foreach ($semesters as $semester) {
                     if ($semester->active == 1) {
                         $semester_id[$semester->id] = $semester->year->name . " --  " . $semester->name;
                     }
                 }
                 return view('orders::withdraw.create', compact('semester_id'));
             } elseif ($type == '1') {
                 //  all semester
                 foreach ($semesters as $semester) {
                     $semester_id[$semester->id] = $semester->year->name . " --  " . $semester->name;
                 }
                 return view('orders::withdraw.create', compact('semester_id'));
             } else {
                 return redirect()->route('orders.index');
             }
         }
         /////////////////////////////////////Equal/////////////////////////////
     } elseif ($event_type == 'equal_subject') {
         // get equal_subject order period
         $equal_subject_semester_events = $SemesterEvent->where('semester_id', '=', $current_semester_id)->whereHas('event_type', function ($query) {
             $query->where('academycycle_semesterevent_types.category', 'equal_subject');
         })->first();
         // get delay order for student in current semeter if exist and not review
         $equalOrders = new EqualOrders();
         $student_equal_subject_order = $equalOrders->where('semester_id', '=', $current_semester_id)->where('student_id', '=', $student_id)->whereNotIn('state', array('الغاء بناء على طلب الطالب', 'الغاء لعدم الاستكمال', 'رفض', 'مكتمل'))->first();
         if ($student_equal_subject_order) {
             return redirect()->route('student.orders.list', $event_type);
         } else {
             //check if period available
             //if($equal_subject_semester_events->start_at <= date("Y-m-d") && $equal_subject_semester_events->finish_at >= date("Y-m-d")){
             $country_list = Country::pluck('name', 'id')->toArray();
             return view('orders::equal.create', compact('country_list'));
             //}else{
             //return redirect()->route('orders.index');
             //}
         }
         ///////////////////////////////////////////excuse/////////////////////////////
     } elseif ($event_type == 'excuse') {
         // same same
         return view('orders::delay.excuse');
     }
 }
 private function checkIntervalsConflictSemester($request, $semester_id = 0)
 {
     $total = Semester::where('id', '!=', $semester_id)->whereRaw("'" . $request->start_at . "' < finish_at AND start_at < '" . $request->finish_at . "'")->count();
     return $total;
 }
Beispiel #17
0
    public function getGraduateCertificate($background = false)
    {
        $student = Student::select('students.*')->joinTermName()->findOrFail($this->student_id);
        $semesters = get_student_grades($student->id);
        if ($this->student_id == 1821) {
            $gpa = 3.59;
        } else {
            $gpa = GPA($semesters);
        }
        $year_id = $semesters = Semester::where('id', $student->histories->first()->academycycle_semester_id)->first()->id;
        $year_name = Year::where('id', '=', $year_id - 1)->first()->name;
        $pdf = $this->preparePdf($background);
        $html = '<h2>إفادة بإكمال درجة</h2>';
        $pdf->writeHTMLCell(210, 20, 10, 50, $html, 0, 0, false, true, "R");
        $valuation = check_final_valuation($gpa);
        if ($student->histories->where('state', 'graduate')->first()) {
            $graduated_date = $student->histories->where('state', 'graduate')->first()->updated_at->format('Y/m/d');
        } else {
            $graduated_date = '';
        }
        $fourth = ' ';
        if ($student->registration->fourth_name) {
            $fourth = ' بن ' . $student->registration->fourth_name . ' ';
        }
        $pdf->SetFontSize(16, 'B');
        if ($student->gender == 'f') {
            $html = '<p>تشهد كلية العلوم الشرعية - التعليم عن بعد بأن:<br>' . $student->registration->first_name . ' بنت ' . $student->registration->second_name . ' بن ' . $student->registration->third_name . $fourth . $student->registration->last_name . '<br>الرقم الجامعي:' . $student->username . '<br>
      الجنسيـة: ' . $student->registration->birthcountry->name . ' <br>
    </p>';
            $pdf->writeHTMLCell(100, 20, 10, 60, $html, 0, 0, false, true, "R");
            $pdf->SetFontSize(16, 'B');
            $html = '<p>قد أكملت متطلبات درجة الدبلوم في العلوم الشرعية<br>في العام الأكاديمي: ' . $year_name . '<br>بمعدل تراكمي ' . $gpa . ' بتقدير ' . $valuation . '<br><br>بتاريخ ' . $graduated_date . 'م<br><br>وسوف تمنح الدرجة رسمياً بعد اعتمادها.

      <p>';
            $pdf->writeHTMLCell(100, 20, 10, 110, $html, 0, 0, false, true, "R");
        } else {
            $html = '<p>تشهد كلية العلوم الشرعية - التعليم عن بعد بأن:<br>' . $student->registration->first_name . ' بن ' . $student->registration->second_name . ' بن ' . $student->registration->third_name . $fourth . $student->registration->last_name . '<br> الرقم الجامعي:' . $student->username . '<br>
       الجنسيـة: ' . $student->registration->birthcountry->name . '<br>
    </p>';
            $pdf->writeHTMLCell(100, 20, 10, 60, $html, 0, 0, false, true, "R");
            $pdf->SetFontSize(16, 'B');
            $html = '<p> قد أكمل متطلبات درجة الدبلوم في العلوم الشرعية
        <br>في العام الأكاديمي: ' . $year_name . '
        <br>بمعدل تراكمي ' . $gpa . ' بتقدير ' . $valuation . '
         <br><br>بتاريخ ' . $graduated_date . 'م
         <br><br>وسوف تمنح الدرجة رسمياً بعد اعتمادها.

      <p>';
            $pdf->writeHTMLCell(100, 20, 10, 110, $html, 0, 0, false, true, "R");
        }
        $pdf->SetFontSize(20, 'B');
        $html = 'المشرف العام على التعليم عن بعد<br>مستشار معالي وزير الأوقاف والشؤون الدينية';
        $pdf->writeHTMLCell(210, 20, 0, 200, $html, 0, 0, false, true, "C");
        $pdf->SetFontSize(16, 'B');
        $html = '<table cellpadding="3">
      <tr><td align="right">لمزيد من التفاصيل يمكن طلب كشف الدرجات الأصلي</td></tr>

    </table>';
        $pdf->writeHTMLCell(100, 20, 10, 250, $html, 0, 0, false, true, "R");
        //English language
        switch ($valuation) {
            case 'امتياز':
                $valuation = 'excellence';
                break;
            case 'امتياز مع مرتبة الشرف':
                $valuation = 'excellent with honors';
                break;
            case 'جيد جدا':
                $valuation = 'very good';
                break;
            case 'جيد':
                $valuation = 'good';
                break;
            case 'مقبول':
                $valuation = 'fairly good';
                break;
            default:
                $valuation = '';
        }
        $html = '<h2>Notification of Degree Completion</h2>';
        $pdf->writeHTMLCell(205, 20, 0, 50, $html, 0, 0, false, true, "L");
        $pdf->SetFontSize(14, 'B');
        $fourth = '';
        if ($student->registration->fourth_name_latin) {
            $fourth = ' bin ' . $student->registration->fourth_name_latin . ' ';
        }
        if ($student->gender == 'f') {
            $html = '<p>College of Shari’a Sciences - Distance learning
                  <br>attests that:<br>' . $student->registration->first_name_latin . ' bint ' . $student->registration->second_name_latin . ' bin ' . $student->registration->third_name_latin . $fourth . $student->registration->last_name_latin . '
                  <br>Student ID: ' . $student->username . '<br> Nationality: ' . $student->registration->birthcountry->nationality_en . '  <br>
               </p>';
        } else {
            $html = '<p>College of Shari’a Sciences - Distance learning
                  <br>attests that:<br>' . $student->registration->first_name_latin . ' bin ' . $student->registration->second_name_latin . ' bin <br>' . $student->registration->third_name_latin . $fourth . $student->registration->last_name_latin . '
                  <br>Student ID: ' . $student->username . '<br> Nationality: ' . $student->registration->birthcountry->nationality_en . '  <br>
               </p>';
        }
        $pdf->writeHTMLCell(205, 10, 0, 60, $html, 0, 0, false, true, "L");
        $pdf->SetFontSize(14, 'B');
        $html = '<p>Has successfully fulfilled the graduation
    <br>requirements of the Diploma degree in Sharia
    <br>Sciences on the academic year ' . $year_name . ' with
    <br>accumulative grade of ' . $gpa . ' ' . $valuation . '<br><br> on ' . $graduated_date . '
             <br><br>The degree will be officially awarded after <br>the endorsement.</p>';
        $pdf->writeHTMLCell(205, 10, 0, 110, $html, 0, 0, false, true, "L");
        $pdf->SetFontSize(14, 'B');
        $html = '<p>For more details, the official transcript could be<br>requested.</p>';
        $pdf->writeHTMLCell(205, 10, 0, 250, $html, 0, 0, false, true, "L");
        ob_clean();
        return $pdf;
    }
 /**
  * Execute the job.
  *
  * @return void
  */
 public function handle()
 {
     $student = Student::find($this->student_id);
     $currentSemester = semester();
     $summerSemester = Semester::where('id', '>', $currentSemester->id)->where('order', 'summer')->orderBy('id', 'ASC')->first();
     // Log::info($student->id, $currentSemester->id, $summerSemester->id);
     if ($student && $currentSemester && $summerSemester) {
         $nextSemester = Semester::where('id', '>', $currentSemester->id)->where('order', '!=', 'summer')->orderBy('id', 'ASC')->first();
         if (!$nextSemester) {
             return false;
         }
         $current_department_id = $student->academystructure_department_id;
         if ($currentSemester->order != 'summer') {
             $nextDepartment = Department::where('parent_id', $student->academystructure_department_id)->first();
             if ($nextDepartment) {
                 $student->state = 'active';
                 $student->study_state = 'success';
                 $student->academystructure_department_id = $nextDepartment->id;
             }
         }
         $history = StudentHistory::where('student_id', $student->id)->orderBy('id', 'desc')->where('academycycle_semester_id', $currentSemester->id)->first();
         if ($history) {
             $history->study_state = 'success';
             $history->save();
         }
         if ($student->save()) {
             // get current semester subjects and make them fail or success for current semester
             $subjects = StudentSubject::selectRaw("subsub.id as subject_id,SUM(stugr.value) AS subject_points,student_subjects.state as subject_state,subsub.name AS subject_name, subsub.hour AS subject_hours")->join('subject_subjects AS subsub', function ($join) {
                 $join->on('subsub.id', '=', 'student_subjects.subject_id');
             })->where('student_subjects.student_id', $student->id)->leftJoin('student_grades AS stugr', function ($join) use($currentSemester, $student) {
                 $join->on('stugr.subject_id', '=', 'subsub.id')->where('stugr.semester_id', '=', $currentSemester->id)->where('stugr.student_id', '=', $student->id);
             })->whereIn('state', ['study'])->where('student_subjects.semester_id', '=', $currentSemester->id)->where('student_subjects.student_id', $student->id)->groupBy('subsub.id')->get();
             $failed_subjects_ids = [];
             $passed_subjects_ids = [];
             foreach ($subjects as $subject) {
                 if ($subject->subject_points < 50) {
                     $failed_subjects_ids[] = $subject->subject_id;
                 } elseif ($subject->subject_points >= 50) {
                     $passed_subjects_ids[] = $subject->subject_id;
                 }
             }
             StudentSubject::where('student_id', $student->id)->whereIn('subject_id', $failed_subjects_ids)->update(['state' => 'fail']);
             StudentSubject::where('student_id', $student->id)->whereIn('subject_id', $passed_subjects_ids)->update(['state' => 'success']);
             // end success and fail
             if ($currentSemester->order != 'summer' && $nextDepartment) {
                 $next_subject_ids = json_decode($nextDepartment->subject_ids, TRUE);
                 $equal_subject_ids = EqualSubject::whereHas('order', function ($w) use($student) {
                     $w->where('student_id', $student->id);
                 })->pluck('equal_subject_id')->toArray();
                 $next_subject_study_ids = array_diff($next_subject_ids, $equal_subject_ids);
                 $next_subject_equal_ids = array_intersect($next_subject_ids, $equal_subject_ids);
                 $student->subjects()->attach($next_subject_study_ids, ['semester_id' => $nextSemester->id, 'academystructure_department_id' => $nextDepartment->id, 'state' => 'study']);
                 $student->subjects()->attach($next_subject_equal_ids, ['semester_id' => $nextSemester->id, 'academystructure_department_id' => $nextDepartment->id, 'state' => 'equal']);
                 $data = ['state' => 'active', 'study_state' => 'active', 'academycycle_semester_id' => $nextSemester->id, 'academystructure_department_id' => $nextDepartment->id];
                 $student->histories()->create($data);
                 // create invoice for student
                 if ($next_subject_equal_ids) {
                     $item = FinancialInvoiceItem::where('slug', 'study_fee')->first();
                     $subjects_count = Subject::whereIn('id', $next_subject_equal_ids)->where('is_quran', 0)->count();
                     $data = ['student_id' => $student->id, 'type' => 'debit', 'item_id' => $item->id, 'pay_type' => NULL, 'semester_id' => $nextSemester->id, 'amount' => $subjects_count * $item->amount];
                     FinancialInvoice::create($data);
                 }
             }
             // move any failed subjects if less than 3 to summer semester
             $all_failed_subjects = StudentSubject::groupBy('subject_id')->where('state', 'fail')->pluck('subject_id')->toArray();
             $all_passed_subjects = StudentSubject::groupBy('subject_id')->where('state', 'success')->pluck('subject_id')->toArray();
             $failed_subjects = array_diff($all_failed_subjects, $all_passed_subjects);
             if (COUNT($failed_subjects) <= 3) {
                 $summerSemester = Semester::where('id', '>', $currentSemester->id)->where('order', 'summer')->orderBy('id', 'ASC')->first();
                 $student->subjects()->attach($failed_subjects, ['semester_id' => $summerSemester->id, 'academystructure_department_id' => $current_department_id, 'state' => 'study']);
                 $data = ['state' => 'active', 'study_state' => 'active', 'academycycle_semester_id' => $summerSemester->id, 'academystructure_department_id' => $current_department_id];
                 $student->histories()->create($data);
             }
         }
     }
 }
Beispiel #19
0
 private function getSemesters()
 {
     $semesters = Semester::select('start_at', 'finish_at', 'name', 'id', 'order', 'academycycle_year_id as year_id')->orderBy('id', 'asc')->get();
     return $semesters;
 }
Beispiel #20
0
 public function orderlist(Request $request)
 {
     $equal_order_model = new Equal();
     $equal_orders = $equal_order_model->where('semester_id', semester()->id)->with('student');
     if (request('order_state')) {
         $equal_orders->where('state', request('order_state'));
     }
     if (request('student_name')) {
         $equal_orders->whereHas('student', function ($query) {
             $query->where('name', 'like', "%" . request('student_name') . "%");
         });
     }
     if (request('semester_id')) {
         $equal_orders->where('semester_id', request('semester_id'));
     }
     if (request('student_code')) {
         $equal_orders->whereHas('student', function ($query) {
             $query->where('username', 'like', "%" . request('student_code') . "%");
         });
     }
     $per_page = request('per_page') ? request('per_page') : 30;
     $equal_orders = $equal_orders->paginate($per_page);
     $equal_orders->appends($request->except("page"));
     //get all states for search
     $states = array_flatten(config('orders.equal_states'));
     $states = array_combine($states, $states);
     $semesters = Semester::select('academycycle_semesters.id', DB::raw('CONCAT(academycycle_semesters.name ,"-", ay.name ) as name '))->join('academycycle_years as ay', 'academycycle_semesters.academycycle_year_id', '=', 'ay.id')->pluck('name', 'id')->toArray();
     return view('orders::equal.list', compact('equal_orders', 'states', 'semesters'));
 }
Beispiel #21
0
 public function studentexam(Request $request)
 {
     $subjects = Subject::lists('name', 'id')->toArray();
     $semesters = Semester::select(\DB::raw('CONCAT(academycycle_semesters.name , "-", academycycle_years.name) as name , academycycle_semesters.id as id'))->join('academycycle_years', 'academycycle_years.id', '=', 'academycycle_semesters.academycycle_year_id')->pluck('name', 'id')->toArray();
     $year_term = Year::join('academystructure_terms', 'academystructure_years.id', '=', 'academystructure_terms.year_id')->join('academystructure_departments', 'academystructure_terms.id', '=', 'academystructure_departments.term_id')->select(\DB::raw('CONCAT(academystructure_years.name, "-", academystructure_terms.name) as name,
                                     GROUP_CONCAT(DISTINCT(academystructure_departments.subject_ids)) as sid'))->groupBy('academystructure_terms.name', 'academystructure_years.name')->get()->toArray();
     $year_term_options;
     foreach ($year_term as $key => &$aa) {
         $a = implode(',', array_unique(array_merge(json_decode(str_replace('],[', ',', $aa['sid']), TRUE))));
         $year_term_options[$a] = $aa['name'];
     }
     $types = config('exams.types');
     if (request('student_id')) {
         $semester_id = semester()->id;
         $student_id = request('student_id');
         $exam_type = request('exam_type');
         $camera_work = request('camera_work');
         $results = DB::select("SELECT student_subjects.subject_id,\n                exams.id as exam_id,\n                exam_results.id as exam_result_id,\n                s.id,\n                s.name,\n                s.username,\n                s.mobile,\n                exam_results.id as attendees,\n                exam_results.enter_at,\n                exam_results.exit_at,\n                exam_results.created_at,\n                exam_results.filename,\n                student_grades.value,subject_subjects.name as subject_name,\n                exam_recordings.id as record,\n                (select COUNT(*) from exam_result_answers  where  exam_result_answers.exam_result_id = exam_results.id and exam_result_answers.answer != '') as count_q\n\n                from students as s\n                inner join student_subjects on student_subjects.student_id = s.id\n                and student_subjects.state = 'study' and student_subjects.semester_id = " . $semester_id . "\n                left join subject_subjects on  subject_subjects.id = student_subjects.subject_id\n                inner join exams on student_subjects.subject_id = exams.subject_id and exams.semester_id = " . $semester_id . "\n                and (exams.type in ('midterm', 'remidterm') or exams.id IN (\n                SELECT ce.exam_id FROM classrooms_exam as ce\n                JOIN classrooms as c ON c.id = ce.classroom_id\n                JOIN classroom_students as cs ON cs.classroom_id = c.id\n                WHERE exam_id = exams.id AND cs.student_id = s.id GROUP BY ce.exam_id)\n                )\n                left join exam_results on exams.id = exam_results.exam_id and s.id = exam_results.student_id\n                left join `exam_recordings` on `exam_recordings`.`student_id` = exam_results.`student_id` and `exam_recordings`.`exam_id` = exam_results.`exam_id` \n                \n                left join student_grades on s.id = student_grades.student_id and student_grades.ref_key = 'exam' and exams.id = student_grades.ref_value\n                where s.id  = " . $student_id . " and finish_at  < '" . date("Y/m/d H:i:s") . "' and exams.type = '" . $exam_type . "' group by exam_id ORDER BY s.id ASC");
         $exams = collect($results);
         return view('exams::reports.studentexamdetails', compact('subjects', 'semesters', 'year_term_options', 'types', 'exams'));
     } else {
         if (request('exam_attendee') == 1) {
             $exams = Exam::selectRaw('exam_recordings.student_id, s.id , exams.id as exam_id,
                         er.id as erid,
                         s.name,
                         s.username,
                         er.id as attendees,
                         er.enter_at,
                         er.created_at ,
                         er.exit_at,
                         er.filename,
                         sg.value,exam_recordings.id as record,
                         (select COUNT(*) from exam_result_answers  where  exam_result_answers.exam_result_id = er.id and exam_result_answers.answer != "") as count_q')->leftJoin('exam_results AS er', function ($join) {
                 $join->on('er.exam_id', '=', 'exams.id');
             })->leftJoin('students AS s', function ($join) {
                 $join->on('s.id', '=', 'student_id');
             })->leftJoin('student_grades AS sg', function ($join) {
                 $join->on('sg.student_id', '=', 's.id');
                 $join->on('exam_id', '=', 'sg.ref_value');
             })->leftJoin('exam_recordings', function ($join) {
                 $join->on('exam_recordings.student_id', '=', 'er.student_id');
                 $join->on('exam_recordings.exam_id', '=', 'er.exam_id');
             })->where('finish_at', '<', date("Y/m/d H:i:s"))->where('exams.subject_id', request('exam_subject'))->where('exams.semester_id', request('exam_semester'))->where('exams.type', request('exam_type'));
             if (request('camera_work') == 'not_work') {
                 $exams = $exams->where('exam_recordings.id', '=', null);
             } else {
                 $exams = $exams->where('exam_recordings.id', '!=', null);
             }
             $exams = $exams->groupBy('s.id')->orderBy('exams.id', 'desc')->get();
         } else {
             $exams = StudentSubject::whereIn('student_subjects.state', ['study'])->selectRaw('s.id,
                     s.name,
                     s.username')->leftJoin('students AS s', function ($join) {
                 $join->on('student_subjects.student_id', '=', 's.id');
             })->where('student_subjects.semester_id', request('exam_semester'))->where('subject_id', request('exam_subject'))->whereNotIn('s.id', function ($query) {
                 $query->select('s.id')->from('exams')->leftJoin('exam_results AS er', function ($join) {
                     $join->on('er.exam_id', '=', 'exams.id');
                 })->leftJoin('students AS s', function ($join) {
                     $join->on('s.id', '=', 'student_id');
                 })->where('finish_at', '<', date("Y/m/d H:i:s"))->where('exams.subject_id', request('exam_subject'))->where('exams.semester_id', request('exam_semester'))->where('exams.type', request('exam_type'))->orderBy('exams.id', 'desc')->get();
             })->get();
         }
         return view('exams::reports.studentexam', compact('subjects', 'semesters', 'year_term_options', 'types', 'exams'));
     }
 }
 public function activitycreate()
 {
     # code...
     $subjects = Subject::whereHas('teachers', function ($query) {
         $query->where('teacher_id', teacher()->id);
     })->lists('name', 'id')->toArray();
     $semesters = Semester::select('academycycle_semesters.id', DB::raw('CONCAT(academycycle_semesters.name ,"-", ay.name ) as name '))->join('academycycle_years as ay', 'academycycle_semesters.academycycle_year_id', '=', 'ay.id')->pluck('name', 'id')->toArray();
     $types = config('teachers.types');
     $classrooms = Classroom::where('teacher_id', teacher()->id)->inCurrentSemester()->pluck('code', 'id')->toArray();
     return view('teachers::profile.activity.create', compact('subjects', 'types', 'semesters', 'classrooms'));
 }