Beispiel #1
0
 function getXoa($id)
 {
     $data['list_students'] = Student::findOrFail($id);
     $data['list_students']->delete();
     return redirect()->route('student');
 }
 /**
  *
  * @return Response
  */
 public function studentEditSubmit($id)
 {
     $student = Student::findOrFail($id);
     // WEI payment form
     if (Request::has(['wei', 'sandwich', 'wei-total'])) {
         $input = Request::only(['wei', 'sandwich', 'wei-total', 'mean', 'cash-number', 'cash-color', 'check-number', 'check-bank', 'check-name', 'check-write', 'card-write']);
         $rules = ['wei' => 'required', 'sandwich' => 'required', 'wei-total' => 'required', 'mean' => 'required|in:card,check,cash'];
         $informations = [];
         switch ($input['mean']) {
             case 'card':
                 $rules['card-write'] = 'accepted';
                 break;
             case 'cash':
                 $rules['cash-number'] = 'required';
                 $rules['cash-color'] = 'required';
                 $informations = Request::only(['cash-number', 'cash-color']);
                 break;
             case 'check':
                 $rules['check-number'] = 'required';
                 $rules['check-bank'] = 'required';
                 $rules['check-name'] = 'required';
                 $rules['check-write'] = 'accepted';
                 $informations = Request::only(['check-number', 'check-bank', 'check-name']);
                 break;
         }
         $this->validate(Request::instance(), $rules, ['mean.required' => 'Le champ Moyen de paiement est obligatoire.', 'card-write.accepted' => 'Vous devez avoir écris le numéro indiqué derrière le ticket de CB', 'check-write.accepted' => 'Vous devez avoir écris le numéro indiqué derrière le chèque', 'check-number.required' => 'Le champ Numéro de chèque est obligatoire.', 'check-bank.required' => 'Le champ Banque du chèque est obligatoire.', 'check-name.required' => 'Le champ Émetteur du chèque est obligatoire.', 'cash-number.required' => 'Le champ Numéro de caisse est obligatoire.', 'cash-color.required' => 'Le champ Couleur de caisse est obligatoire.']);
         // Check errors
         $oldSandwich = $student->sandwichPayment && in_array($student->sandwichPayment->state, ['paid']) ? 1 : 0;
         $oldWei = $student->weiPayment && in_array($student->weiPayment->state, ['paid']) ? 1 : 0;
         $sandwich = $input['sandwich'] ? 1 : 0;
         $wei = $input['wei'] ? 1 : 0;
         if ($input['sandwich'] && $oldSandwich) {
             return Redirect::back()->withError('Vous ne pouvez pas prendre un deuxieme panier repas')->withInput();
         }
         if ($input['wei'] && $oldWei) {
             return Redirect::back()->withError('Vous ne pouvez pas prendre un deuxieme weekend d\'intégration')->withInput();
         }
         if (!$input['wei'] && !$oldWei && $input['sandwich']) {
             return Redirect::back()->withError('Vous ne pouvez pas prendre un panier repas sans prendre le weekend')->withInput();
         }
         //calculate price
         $price = Config::get('services.wei.price-other');
         if ($student->ce && $student->team_accepted && $student->team_id) {
             $price = Config::get('services.wei.price-ce');
         } elseif ($student->orga) {
             $price = Config::get('services.wei.price-orga');
         }
         // Calculate amount
         $amount = ($sandwich * Config::get('services.wei.sandwichPrice') + $wei * $price) * 100;
         if ($amount / 100 != $input['wei-total']) {
             return Redirect::back()->withError('Erreur interne sur le calcul des montants, contactez un administrateur')->withInput();
         }
         // Create payment
         $payment = new Payment(['type' => 'payment', 'mean' => $input['mean'], 'amount' => $amount, 'state' => 'paid', 'informations' => $informations]);
         $payment->save();
         // Save paiement in user object
         $user = $student;
         if ($wei) {
             $user->wei_payment = $payment->id;
         }
         if ($sandwich) {
             $user->sandwich_payment = $payment->id;
         }
         $user->updateWei();
         $user->save();
         return Redirect(route('dashboard.wei.student.edit', ['id' => $student->student_id]))->withSuccess('Vos modifications ont été enregistrées.');
     }
     // Guarantee payment form
     if (Request::has(['guarantee', 'guarantee-total'])) {
         $input = Request::only(['guarantee', 'guarantee-total', 'check2-number', 'check2-bank', 'check2-name', 'check2-write']);
         $informations = Request::only(['check-number', 'check-bank', 'check-name']);
         $this->validate(Request::instance(), ['guarantee' => 'required', 'guarantee-total' => 'required', 'check2-number' => 'required', 'check2-bank' => 'required', 'check2-name' => 'required', 'check2-write' => 'accepted'], ['check2-write.accepted' => 'Vous devez avoir écris le numéro indiqué derrière le chèque', 'check2-number.required' => 'Le champ Numéro de chèque est obligatoire.', 'check2-bank.required' => 'Le champ Banque du chèque est obligatoire.', 'check2-name.required' => 'Le champ Émetteur du chèque est obligatoire.']);
         // Check errors
         $oldGuarantee = $student->guaranteePayment && in_array($student->guaranteePayment->state, ['paid']) ? 1 : 0;
         $guarantee = $input['guarantee'] ? 1 : 0;
         if ($input['guarantee'] && $oldGuarantee) {
             return Redirect::back()->withError('Vous ne pouvez pas payer deux fois la caution')->withInput();
         }
         // Calculate amount
         $amount = $guarantee * Config::get('services.wei.guaranteePrice') * 100;
         if ($amount / 100 != $input['guarantee-total']) {
             return Redirect::back()->withError('Erreur interne sur le calcul des montants, contactez un administrateur')->withInput();
         }
         // Create payment
         $payment = new Payment(['type' => 'guarantee', 'mean' => 'check', 'amount' => $amount, 'state' => 'paid', 'informations' => $informations]);
         $payment->save();
         // Save paiement in user object
         if ($guarantee) {
             $student->guarantee_payment = $payment->id;
         }
         $student->updateWei();
         $student->save();
         return Redirect(route('dashboard.wei.student.edit', ['id' => $student->student_id]))->withSuccess('Vos modifications ont été enregistrées.');
     }
     return Redirect(route('dashboard.wei.student.edit', ['id' => $student->student_id]))->withError('Y\'a un soucis !');
 }
 /**
  * Execute edit form for a student from admin dashboard
  *
  * @param  int $id
  * @return RedirectResponse|array
  */
 public function editSubmit($id)
 {
     $student = Student::findOrFail($id);
     $data = Request::only(['surname', 'sex', 'email', 'phone', 'branch', 'level', 'facebook', 'city', 'postal_code', 'country', 'referral', 'referral_max', 'referral_text', 'referral_validated', 'admin', 'orga']);
     $this->validate(Request::instance(), ['surname' => 'max:50', 'sex' => 'boolean', 'email' => 'email', 'phone' => 'min:8|max:20', 'facebook' => 'url', 'postal_code' => 'integer', 'referral_max' => 'integer|max:5|min:1']);
     // Add or remove from sympa
     if (!$student->orga && $data['orga']) {
         $sent = Mail::raw('QUIET ADD integration-liste ' . $student->email . ' ' . $student->first_name . ' ' . $student->last_name, function ($message) use($student) {
             $message->from('*****@*****.**', 'Intégration UTT');
             $message->to('*****@*****.**');
         });
     } elseif ($student->orga && !$data['orga']) {
         $sent = Mail::raw('QUIET DELETE integration-liste ' . $student->email, function ($message) use($student) {
             $message->from('*****@*****.**', 'Intégration UTT');
             $message->to('*****@*****.**');
         });
     }
     // Update team informations
     $student->surname = $data['surname'];
     $student->sex = $data['sex'];
     $student->email = $data['email'];
     $student->phone = $data['phone'];
     $student->branch = $data['branch'];
     $student->level = $data['level'];
     $student->facebook = $data['facebook'];
     $student->city = $data['city'];
     $student->postal_code = $data['postal_code'];
     $student->country = $data['country'];
     $student->referral = !empty($data['referral']);
     $student->referral_max = $data['referral_max'];
     $student->referral_text = $data['referral_text'];
     $student->referral_validated = !empty($data['referral_validated']);
     $student->admin = !empty($data['admin']) ? 100 : 0;
     $student->orga = !empty($data['orga']);
     $student->save();
     return Redirect::back()->withSuccess('Vos modifications ont été sauvegardées.');
 }
 public function getStudentAttribute()
 {
     return \App\Models\Student::findOrFail($this->userable_id);
 }
 /**
  * Handle text validation.
  *
  * @return RedirectResponse
  */
 public function postValidation()
 {
     $id = Request::input('student-id');
     $referral = Student::findOrFail($id);
     if ($referral->referral_validated) {
         return Redirect::back()->withError('Quelqu\'un a déjà validé cette personne :-(');
     }
     $referral->referral_validated = 1;
     $referral->referral_text = Request::input('referral_text');
     $referral->save();
     return Redirect::back()->withSuccess('Texte validé pour ' . $referral->first_name . ' ' . $referral->last_name . ' !');
 }