validate($request, [ 'name_version' => 'required', 'proyek_id' => 'required' ]); $data = $request->all(); $data['created_by'] = $this->currentName; $result = VersionGantt::create($data); if ($result) { return response()->json(['status' => 'success', 'message' => 'version gantt Project successfull created', 'code' => 200, 'id' => $result->id]); } else { return response()->json(['status' => 'failed', 'message' => 'version gantt Project failed created', 'code' => 400]); } } public function update(Request $request, $id) { if (!$id || (int) $id < 0 || $id == "") { return response()->json(['status' => 'failed', 'message' => 'id is required!', 'code' => 400], 400); } $data = VersionGantt::find($id); if ($data) { $result = $data->update($request->all()); } else { return response()->json(['status' => 'failed', 'message' => 'data version gantt Project not found!', 'code' => 400], 400); die(); } if ($result) { return response()->json(['status' => 'success', 'message' => 'version gantt Project successfully updated!', 'code' => 200], 200); } else { return response()->json(['status' => 'failed', 'message' => 'version gantt Project failed updated!', 'code' => 400], 400); } } public function delete($id) { $data = VersionGantt::find($id); if ($data) { $delete = $data->delete(); $this->deleteRelative($data['id']); } else { return response()->json(['status' => 'failed', 'message' => 'data version gantt Project not found!', 'code' => 400], 400); die(); } if ($delete) { return response()->json(['status' => 'success', 'message' => 'version gantt Project successfully deleted!', 'code' => 200], 200); } else { return response()->json(['status' => 'failed', 'message' => 'version gantt Project failed deleted!', 'code' => 400], 400); } } private function deleteRelative($version_gantt_id) { UserToActivity::where('version_gantt_id', $version_gantt_id)->delete(); Activity::where('version_gantt_id', $version_gantt_id)->delete(); ShowHideColumn::where('version_gantt_id', $version_gantt_id)->delete(); Link::where('version_gantt_id', $version_gantt_id)->delete(); UserToVersionGantt::where('version_gantt_id', $version_gantt_id)->delete(); Holiday::where('version_gantt_id', $version_gantt_id)->delete(); ActivityProgressLog::where('version_gantt_id', $version_gantt_id)->delete(); } public function edit($id) { if (!$id || (int) $id < 0 || $id == "") { return response()->json(['status' => 'failed', 'message' => 'id is required!', 'code' => 400], 400); die(); } $result = VersionGantt::find($id); if ($result) { return response()->json(['status' => 'success', 'code' => 200, 'data' => $result], 200); } else { return response()->json(['status' => 'failed', 'message' => 'failed get data version gantt, please try again later!', 'code' => 400], 400); } } public function search(Request $request) { $payload = $request->all(); $dataBuilder = $this->setUpPayload($payload, 'm_version_gantt'); $builder = $dataBuilder['builder']; // $countBuilder = $dataBuilder['count']; $this->ganttProgress($request->columns[0]["name"], $request->columns[0]["value"]); $dataGet = $builder->get(); // $totalRecord = $countBuilder->count(); return response()->json(['status' => 'success', 'code' => 200, 'data' => $dataGet], 200); } public function ganttProgress($column, $value) { $progress = VersionGantt::select('m_version_gantt.id', 'm_activity.persentase_progress', 'm_activity.bobot_planning') ->join('m_activity', 'm_version_gantt.id', '=', 'm_activity.version_gantt_id') ->where("m_version_gantt." . $column, $value) // ->where('m_activity.type_activity', "project") ->where('m_activity.parent_id', null) ->get(); foreach ($progress as $item) { $item->progress = $item->persentase_progress; $item->bobot = $item->bobot_planning; $item->save(); } } public function list() { $data = VersionGantt::all(); $countData = $data->count(); if ($data) { return response()->json(['status' => 'success', 'code' => 200, 'data' => $data, 'totalRecord' => $countData], 200); } else { return response()->json(['status' => 'failed', 'message' => 'failed get list version gantt, please try again later!', 'code' => 400], 400); } } }