Пример #1
0
 /**
  * @param int paper
  * save reviewer evaluation
  * @return \Illuminate\Http\Response
  */
 public function postEvaluate($paper)
 {
     $paper = Paper::findOrFail($paper);
     if ($paper->department_id != auth()->user()->department_id || !systemAccess(2)) {
         if (!$this->systemAdmin) {
             return redirect()->action('Admin\\PaperController@index')->with('error', 'access-denied');
         }
     }
     $criteriaPaper = $rules = $params = $errors = [];
     $criteria = Criteria::where('department_id', $paper->department_id)->with(['langs' => function ($query) {
         $query->lang();
     }])->get();
     foreach ($criteria as $value) {
         $errors[$value->id] = $value->langs->first()->title;
         if (request()->has($value->id)) {
             $params[$value->id] = request($value->id);
             $criteriaPaper[$value->id] = ['value' => request($value->id)];
         }
         if ($value->required) {
             $rules[$value->id] = 'required';
         }
         if ($value->type_id == 1) {
             $max = 'max:1500';
             if (isset($rules[$value->id])) {
                 $rules[$value->id] .= '|' . $max;
             } else {
                 $rules[$value->id] = $max;
             }
         }
     }
     $validator = Validator::make($params, $rules);
     $validator->setAttributeNames($errors);
     if ($validator->fails()) {
         return redirect()->back()->withErrors($validator)->withInput();
     }
     DB::transaction(function () use($criteriaPaper, $paper) {
         $paper->update(['status_id' => 4, 'reviewed_at' => Carbon::now()]);
         $paper->criteria()->sync($criteriaPaper);
     });
     if (request()->get('email')) {
         event(new PaperWasFinished($paper));
     }
     return redirect()->action('Admin\\PaperController@index')->with('success', 'paper-evaluated');
 }
Пример #2
0
 public function delCriteriasByGpId($asgId, $criteriaGpId)
 {
     Criteria::where("criteria_gp_id", $criteriaGpId)->where("asg_id", $asgId)->delete();
 }