public function works($projectId, Request $request)
 {
     $mainflowTypeId = $request->query('mainflow_type_id');
     $detailingflowTypeId = $request->query('detailingflow_type_id');
     $project = \App\Entities\Project::findOrFail($projectId);
     $query = \App\Entities\ProjectWork::query();
     if (!empty($mainflowTypeId)) {
         $query->whereHas('detailingflowType', function ($query) use($mainflowTypeId) {
             $query->whereMainflowTypeId($mainflowTypeId);
         });
         $mainflowTypeName = \App\Entities\MainflowType::findOrFail($mainflowTypeId)->name;
     }
     if (!empty($detailingflowTypeId)) {
         $query->whereDetailingflowTypeId($detailingflowTypeId);
         $detailingflowTypeName = \App\Entities\DetailingflowType::findOrFail($detailingflowTypeId)->name;
     }
     $works = $query->get();
     return view('bids.works', compact('project', 'works', 'mainflowTypeName', 'detailingflowTypeName'));
 }
 public function index($projectId, Request $request)
 {
     $mainflowTypeId = $request->query('mainflow_type_id');
     $detailingflowTypeId = $request->query('detailingflow_type_id');
     $project = \App\Entities\Project::findOrFail($projectId);
     $query = \App\Entities\ProjectWork::query();
     if (!empty($mainflowTypeId)) {
         $query->whereHas('detailingflowType', function ($query) use($mainflowTypeId) {
             $query->whereMainflowTypeId($mainflowTypeId);
         });
         $mainflowTypeName = \App\Entities\MainflowType::findOrFail($mainflowTypeId)->name;
     }
     if (!empty($detailingflowTypeId)) {
         $query->whereDetailingflowTypeId($detailingflowTypeId);
         $detailingflowTypeName = \App\Entities\DetailingflowType::findOrFail($detailingflowTypeId)->name;
     }
     $works = $query->whereProjectId($project->id)->with('detailingflowType.mainflowType', 'unit', 'workitems.costType')->get();
     return response()->json(compact('works'));
 }