Example #1
0
 public function actionBulk(Request $request)
 {
     if (!$request->has('table_records')) {
         return redirect()->route('registration.files.index');
     }
     $action = $request->input('action', 'delete');
     $ids = $request->input('table_records');
     $file = RegistrationFile::find($ids[0]);
     switch ($action) {
         case 'delete':
             RegistrationFile::destroy($ids);
             $message = trans('registration::files.delete_bulk_success');
             break;
         case 'update':
             foreach ($ids as $id) {
                 RegistrationFile::where('id', $id)->update(['valid' => $request->input('valid')]);
             }
             $message = trans('registration::files.update_bulk_success');
             break;
     }
     return redirect()->route('registration.files.index', $file->registration_id)->with('success', $message);
 }
 public function store(RegisterRequest $request)
 {
     $error = 0;
     $message = '';
     $period = Period::current()->first();
     if (!$period) {
         $error = 1;
         $message = 'لا يوجد فترة تسجيل حاليا';
         return response()->json(compact('error', 'message'), 200, [], JSON_NUMERIC_CHECK);
     }
     $input = $request->all();
     $registration = new Registration();
     $registration->fill(array_filter($input));
     if (!$request->has('academystructure_specialty_id') || empty($request->input('academystructure_specialty_id'))) {
         if ($specialty = Specialty::where('code', 'G')->first()) {
             $registration->academystructure_specialty_id = $specialty->id;
         } else {
             $registration->academystructure_specialty_id = 1;
         }
     }
     $step = RegistrationStep::verifyEmail()->first();
     if (($reason = $this->canApply($input)) !== true) {
         $error = 1;
         switch ($reason) {
             case 'ACTIVE':
                 $message = 'الرقم المدني الذي تحاول التسجيل به، مستخدم من طرف طالب منتظم.';
                 break;
             case 'DELAYED':
                 $message = 'الرقم المدني الذي تحاول التسجيل به، مستخدم من طرف طالب مؤجل.';
                 break;
             case 'NO_DEGREES':
                 $message = 'لم تقم بادخال بيانات الشهادة';
                 break;
             case 'NO_SPECIALITY':
                 $message = 'لم تقم باختيار تخصص المرجو اعادة اختيار تخصص.';
                 break;
         }
         return response()->json(compact('error', 'message'), 200, [], JSON_NUMERIC_CHECK);
     }
     $password = !empty($registration->password) ? $registration->password : mt_rand(6, 10);
     $username = daress_generate_username();
     $registration->username = $username;
     $registration->password = bcrypt($password);
     $registration->registration_period_id = $period->id;
     $registration->registration_step_id = $step ? $step->id : NULL;
     $registration->passeport_country_id = !empty($input['passeport_country_id']) ? $input['passeport_country_id'] : null;
     if (!$registration->save()) {
         $error = 1;
         $message = 'لم يتم تسجيل طلبك المرجو اعادة المحاولة لاحقا.';
     } else {
         $registration->generateCode();
         /** check for extra degrees an dstore them */
         foreach ($input['degrees'] as $degree) {
             $registration->degrees()->create($degree);
         }
         foreach ($input['files'] as $file) {
             $file = RegistrationFile::find($file['id']);
             $file->update(['registration_id' => $registration->id]);
         }
         /** end check for extra degrees */
         event(new RegistrationCreated($registration));
         event(new RegistrationEmailChanged($registration, ['password' => $password]));
         event(new RegistrationUpdated($registration));
         event(new RegistrationStepChanged($registration, ['password' => $password, 'comment' => 'تفعيل البريد الإلكتروني']));
     }
     if ($error == 1) {
         return response()->json(compact('error', 'message'), 200, [], JSON_NUMERIC_CHECK);
     }
     $message = 'أحسنت ـ تم ارسال رسالة الى بريدك الالكتروني تحتوي على المعلومات التي تحتاجها من أجل الولوج لبوابة المتقدم.';
     $token = Auth::guard('api_registration')->generateTokenById($registration->id);
     return response()->json(compact('token'), 200, [], JSON_NUMERIC_CHECK);
 }