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]); }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); } } }