![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/dceprojects.corals.io/Corals/modules/ProjectPlan/Http/Controllers/ |
<?php namespace Corals\Modules\ProjectPlan\Http\Controllers; use Corals\Foundation\Http\Controllers\BaseController; use Corals\Modules\ProjectPlan\DataTables\ProjectsDataTable; use Corals\Modules\ProjectPlan\Models\Project; use Corals\User\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class CrewController extends BaseController { public function crewProjects(ProjectsDataTable $dataTable) { $this->resource_model = new User(); return $dataTable->render('ProjectPlan::projects.index'); } public function getAddCrewModal(Request $request, Project $project) { $position = $request->target; return view('ProjectPlan::projects.partials.search_position_user', compact('position', 'project'))->render(); } /** * @param Request $request * @param Project|null $project * @return \Illuminate\Http\JsonResponse * @throws \Illuminate\Validation\ValidationException */ public function getValidateUser(Request $request, Project $project = null) { $this->validate($request, [ 'user_id' => 'required', 'starts_date' => 'required', 'ends_date' => 'required|after_or_equal:starts_date' ]); $userId = hashids_decode($request->user_id); $notAvailableProjects = DB::table('pp_project_crew') ->where('user_id', '=', $userId) ->join('pp_projects', 'pp_project_crew.project_id', '=', 'pp_projects.id') ->select('pp_projects.name', 'pp_project_crew.starts_date', 'pp_project_crew.ends_date') ->where(function ($q) use ($request) { $q->where('starts_date', '<=', $request->ends_date) ->where('ends_date', '>', $request->starts_date); })->get(); $status = $notAvailableProjects->isEmpty() ? 'Available' : 'Not Available'; $notAvailableProjects = $notAvailableProjects->map(function ($project) { return sprintf("Project : %s - From : %s -To : %s", $project->name, $project->starts_date, $project->ends_date); }); return response()->json([ 'message' => trans('ProjectPlan::exceptions.user.assigned_user_to_project'), 'status' => $status, 'projects' => $notAvailableProjects ]); } }