Пример #1
0
 public function save()
 {
     //De facut verificare cu db daca aprobarea era null si s-a modificat sa se trimita mail cu confirmare
     if (auth()->user()->hasRole('Buyer')) {
         if ((int) auth()->user()->credit <= config('credit.pret_vanzator')) {
             return redirect()->back()->withFlashError('Nu mai aveti credit');
         }
     }
     $data = Input::get('data');
     $data['color_text'] = User::color();
     $validator = Validator::make($data, Terrain::generalValidatorRules(), Terrain::generalValidatorMessages());
     if ($validator->passes()) {
         try {
             $user_ud = (int) $data['user_owner'] > 0 ? $data['user_owner'] : Auth::user()->id;
             unset($data['user_owner']);
             if (auth()->user()->hasRole('Administrator')) {
                 $out['aprobat'] = 1;
             }
             $out = Terrain::create($data + ['user_id' => $user_ud]);
             if (!auth()->user()->hasRole('Administrator')) {
                 User::credit(-config('credit.pret_vanzator'));
             }
             if ($data['id_tip_caracteristici']) {
                 $out->characteristics()->attach($data['id_tip_caracteristici']);
             }
             $out = Terrain::with('characteristics')->where('id', $out->id)->first();
             $result = ['success' => true, 'message' => 'Datele au fost salvate cu succes!', 'out' => $out, 'has_abonament' => User::hasAbonament()];
         } catch (Exception $e) {
             $result = ['success' => false, 'runtime' => 1, 'exception' => ['message' => $e->getMessage(), 'method' => __METHOD__, 'line' => $e->getLine(), 'file' => $e->getFile()]];
         }
         $result['credit'] = auth()->user()->credit;
         return $result;
     }
     $alert = ['caption' => 'Atentie', 'message' => 'Vă rugăm să completați câmpurile obligatorii.', 'type' => 'warning'];
     return ['success' => false, 'runtime' => 0, 'messages' => $validator->messages(), 'alert' => $alert];
 }