Exemple #1
0
 public function deleteBulk(Request $req, Year $Year)
 {
     if (!$req->has('table_records')) {
         return redirect()->route('cities.index');
     }
     $ids = $req->input('table_records');
     $Year->destroy($ids);
     return redirect()->route('academycycle.years.index')->with('success', trans('academycycle::years.delete_bulk_success'));
 }
 public function index(Registration $Registration)
 {
     $registrations = $Registration->with('step', 'period', 'period.year')->orderBy('id', 'desc');
     $steps = RegistrationStep::lists('name', 'id')->toArray();
     $countries = Country::lists('name', 'id')->toArray();
     $search_fields = ['gender', 'registration_step_id', 'nationality_type', 'contact_country_id', 'social_status', 'social_job'];
     $years = AcademycycleYear::lists('name', 'id')->toArray();
     $genders = config('registration.genders');
     foreach ($search_fields as $field) {
         if (request($field)) {
             $registrations->whereIn($field, request($field));
         }
     }
     if (request('academycycle_year')) {
         $registrations->whereHas('period', function ($query) {
             $query->whereHas('year', function ($query2) {
                 $query2->whereIn('id', request('academycycle_year'));
             });
         });
     }
     if (request('national_id')) {
         $registrations->where('national_id', request('national_id'));
     }
     if (request('contact_email')) {
         $registrations->where('contact_email', request('contact_email'));
     }
     $registrations = $registrations->paginate(50);
     return view('registration::registrations.index', compact('registrations', 'steps', 'countries', 'years'));
 }
 /**
  * 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!');
 }
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     Model::unguard();
     if (AcademycycleYear::count()) {
         return;
     }
     $years = [['name' => '2016/2017', 'start_at' => '2016-08-07', 'finish_at' => '2017-08-06']];
     foreach ($years as $year) {
         AcademycycleYear::create($year);
     }
 }
 /**
  * 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();
     }
 }
 /**
  * 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 export(Request $request)
 {
     Excel::create('registrations', function ($excel) {
         $excel->sheet('registrations', function ($sheet) {
             $steps = RegistrationStep::pluck('name', 'id')->toArray();
             $specialties = Specialty::pluck('name', 'id')->toArray();
             $type = RegistrationType::pluck('title', 'id')->toArray();
             $genders = config('registration.genders');
             $countries = Country::pluck('name', 'id')->toArray();
             $cities = City::pluck('name', 'id')->toArray();
             $states = State::pluck('name', 'id')->toArray();
             $years = AcademycycleYear::pluck('name', 'id')->toArray();
             $registration_periods = RegistrationPeriod::pluck('name', 'id')->toArray();
             $registrations = $this->prepQuery(request()->all())->get();
             $sheet->loadView('registration::registrations.export', compact('registration_periods', 'registrations', 'steps', 'countries', 'years', 'specialties', 'type', 'genders', 'cities', 'states'));
         })->download('xlsx');
     });
 }
    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;
    }
 public function edit(Period $period, Year $year)
 {
     $years = $year->notFinished()->lists('name', 'id')->toArray();
     return view('registration::periods.edit', compact('period', 'years'));
 }
 public function edit(Year $year, $id = 0)
 {
     $period = Period::findOrFail($id);
     $years = $year->notFinished()->pluck('name', 'id')->toArray();
     return view('registration::periods.edit', compact('period', 'years'));
 }
Exemple #11
0
 private function checkIntervalsConflict(Request $request, $interval_id = 0)
 {
     $intervals = Year::whereRaw("'" . $request->start_at . "' < finish_at\n                    AND start_at < '" . $request->finish_at . "'")->where('id', '!=', $interval_id)->count();
     return $intervals;
 }
 private function checkIntervalsConflict(Request $request)
 {
     $yearintearvel = Year::where('id', $request->academycycle_year_id)->whereRaw("'" . $request->start_at . "' >=  start_at AND finish_at >= '" . $request->finish_at . "'")->count();
     return $yearintearvel;
 }