public function updateCheckitemsResults($projectId, $checklistId, Request $request) { $checklist = ProjectChecklist::findOrFail($checklistId); $checklist->update(['passes_amount' => $request->passes_amount]); $checklist->checkitems->each(function ($checkitem) use($request) { $checkitem->update(['passes' => $request->passes[$checkitem->id]]); if (!is_null($checkitem->passes) && !$checkitem->passes) { $checkitem->faultImprovement()->create([]); } else { if ($checkitem->faultImprovement) { $checkitem->faultImprovement->delete(); } } }); if (!$checklist->checkitems()->whereNull('passes')->exists()) { $checklist->update(['finished_at' => new Carbon()]); } return redirect()->route('projects.checklists.show', [$projectId, $checklistId]); }
public function estimations($projectId, $projectWorkId, Request $request) { $projectWork = Project::findOrFail($projectId)->works()->findOrFail($projectWorkId); $date = new Carbon($request->input('date', 'today')); $pChecklists = ProjectChecklist::whereHas('projectWork', function ($q) use($projectWork) { $q->whereProjectWorkId($projectWork->id); })->whereHas('checkitems', function ($q) { $q->whereNull('passes'); }, '=', 0)->whereDate('finished_at', '<=', $date)->get(); return response()->json(['project_checklists' => $pChecklists]); }