middleware('auth'); $this->table = new TahunProgramDetail; } public function index () { $data = $this->table->whereHas('tahunProgram',function($q){ $q->where('status',1); }); $getStatus = Role::where('id',Auth::user()->role_id)->value('akses'); if($getStatus!='administrator'){ $data = $data->whereHas('templateProgram',function($qTemplateProgram){ $qTemplateProgram->whereHas('templateProgramRole',function($qTemplateProgramRole){ $qTemplateProgramRole->where('id_role',Auth::user()->role_id); }); }); } $data = $data->orderBy('id')->get(); return view('penentuan-target/index',compact('data')); } public function edit($id) { $data = $this->table->with('tahunProgram','templateProgram','tahunProgramDetailUpt')->find($id); $upt = UPTSModel::distinct('office_id')->get(); return view('penentuan-target/edit', compact('id','data','upt')); } public function detail($id) { $data = $this->table->with('tahunProgram','templateProgram','tahunProgramDetailUpt')->find($id); $upt = UPTSModel::distinct('office_id')->get(); return view('penentuan-target/detail', compact('id','data','upt')); } public function update($id,Request $request){ ini_set('max_input_vars',10000); $upt = UPTSModel::distinct('office_id')->get(); $query = $this->table->find($id); $query->tipe_target = $request->tipe_target; $query->satuan_target = $request->satuan_target; $tmp = null; // dd($request->all()); if($query->save()){ //0 = spesifik upt; 1 = semua; if($request->tipe_target==0){ $periode = $request->periode; $attributes = []; foreach($upt as $row){ $attr = new TahunProgramDetailUpt; $attr->id_upt = $row->office_id; $attr->periode = $request->get('spesifik_periode_'.$periode.'_'.$row->office_id); $attr->target = $request->get('spesifik_target_'.$periode.'_'.$row->office_id); $attributes[] = $attr; } //for redirect to previous periode $tmp = $periode; $query->tahunProgramDetailUpt()->where('periode',$periode)->delete(); $query->tahunProgramDetailUpt()->saveMany($attributes); }else{ $attributes = []; for($periode=1;$periode<=($query->jumlah);$periode++){ foreach($upt as $row){ $attr = new TahunProgramDetailUpt; $attr->id_upt = $row->office_id; $attr->periode = $request->get('semua_periode_'.$periode); $attr->target = $request->get('semua_target_'.$periode); $attributes[] = $attr; } } $query->tahunProgramDetailUpt()->delete(); $query->tahunProgramDetailUpt()->saveMany($attributes); } if($query){ Session::flash('info', 'Penentuan Target Tahun '.$query->value); Session::flash('colors', 'green'); Session::flash('icons', 'fas fa-clipboard-check'); Session::flash('alert', 'Berhasil Menyimpan Data!'); Session::flash('previous_periode', $tmp); }else{ Session::flash('info', 'Penentuan Target Tahun '.$query->value); Session::flash('colors', 'red'); Session::flash('icons', 'fas fa-times'); Session::flash('alert', 'Gagal Menyimpan Data!'); } }else{ Session::flash('info', 'Penentuan Target Tahun '.$query->value); Session::flash('colors', 'red'); Session::flash('icons', 'fas fa-times'); Session::flash('alert', 'Gagal Menyimpan Data!'); } //return to previous page return redirect()->back(); } }