/** * @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'); }
public function delCriteriasByGpId($asgId, $criteriaGpId) { Criteria::where("criteria_gp_id", $criteriaGpId)->where("asg_id", $asgId)->delete(); }