middleware('auth'); $this->table = new TahunProgram; } public function index () { return view('aktivasi-program/aktivasi-program'); } public function edit($id) { $data = $this->table->with('tahunProgramDetail')->find($id); $templateProgram = TemplateProgram::get(); $templateProgramDetail = TemplateProgramDetail::get(); $upt = UPTSModel::get(); return view('aktivasi-program/edit', compact('id','data','templateProgram','templateProgramDetail','upt')); } public function detail($id) { $data = $this->table->with('tahunProgramDetail')->find($id); $templateProgram = TemplateProgram::get(); $templateProgramDetail = TemplateProgramDetail::get(); $upt = UPTSModel::get(); return view('aktivasi-program/detail', compact('id','data','templateProgram','templateProgramDetail','upt')); } public function add() { $nama = Auth::user()->name; $templateProgram = TemplateProgram::get(); $upt = UPTSModel::get(); return view('aktivasi-program/add', compact('nama','templateProgram','upt')); } function checkActiveTahunProgram($id){ $ok = true; $query = $this->table->where('status',1); if(!empty($id)){ $query = $query->where('id','!=',$id); } if($query->count() > 0){ $ok = false; } return $ok; } public function update($id,Request $request){ $query = $this->table->find($id); $query->value = $request->value; $query->label_tahun_program = $request->value; $query->status = $request->status; if($query->status == 1 && !$this->checkActiveTahunProgram($id)){ Session::flash('info', 'Program Tahun '.$query->value); Session::flash('colors', 'red'); Session::flash('icons', 'fas fa-times'); Session::flash('alert', 'Gagal Menyimpan Data. masih terdapat tahun program yang "Aktif" di tahun program lainnya'); return redirect()->back(); } if($query->save()){ $tahunProgramIds = []; if($request->has('uniqids') && $request->uniqids != ""){ $uniqids = explode(",",$request->uniqids); foreach($uniqids as $row){ $attribute = []; $attribute['id_template_program_detail'] = $request->get('id_template_program_detail_'.$row); $attribute['id_template_program'] = $request->get('id_template_program_'.$row); $attribute['satuan'] = $request->get('satuan_'.$row); $attribute['jumlah'] = $request->get('jumlah_'.$row); $id = !empty($request->get('id_'.$row))?$request->get('id_'.$row):null; $qTahunProgramDetail = $query->tahunProgramDetail()->updateOrCreate(['id'=>$id],$attribute); $tahunProgramIds[] = $qTahunProgramDetail->id; } } //delete unused data TahunProgramDetail::where('id_tahun_program',$query->id)->whereNotIn('id',$tahunProgramIds)->delete(); if($query){ Session::flash('info', 'Program Tahun '.$query->value); Session::flash('colors', 'green'); Session::flash('icons', 'fas fa-clipboard-check'); Session::flash('alert', 'Berhasil Menyimpan Data!'); return redirect()->back(); }else{ Session::flash('info', 'Program Tahun '.$query->value); Session::flash('colors', 'red'); Session::flash('icons', 'fas fa-times'); Session::flash('alert', 'Gagal Menyimpan Data!'); return redirect()->back(); } }else{ Session::flash('info', 'Program Tahun '.$query->value); Session::flash('colors', 'red'); Session::flash('icons', 'fas fa-times'); Session::flash('alert', 'Gagal Menyimpan Data!'); return redirect()->back(); } } public function create(Request $request){ $query = $this->table; $query->value = $request->value; $query->label_tahun_program = $request->value; $query->status = $request->status; if($query->status == 1 && !$this->checkActiveTahunProgram(null)){ Session::flash('info', 'Program Tahun '.$query->value); Session::flash('colors', 'red'); Session::flash('icons', 'fas fa-times'); Session::flash('alert', 'Gagal Menyimpan Data, masih terdapat tahun program yang "Aktif" di tahun program lainnya'); return redirect()->back(); } if($query->save()){ if($request->has('uniqids') && $request->uniqids != ""){ $uniqids = explode(",",$request->uniqids); foreach($uniqids as $row){ $attribute = []; $attribute['id_template_program_detail'] = $request->get('id_template_program_detail_'.$row); $attribute['id_template_program'] = $request->get('id_template_program_'.$row); $attribute['satuan'] = $request->get('satuan_'.$row); $attribute['jumlah'] = $request->get('jumlah_'.$row); $id = !empty($request->get('id_'.$row))?$request->get('id_'.$row):null; $qItemProgram = $query->tahunProgramDetail()->updateOrCreate(['id'=>$id],$attribute); } } if($query){ Session::flash('info', 'Program Tahun '.$query->value); Session::flash('colors', 'green'); Session::flash('icons', 'fas fa-clipboard-check'); Session::flash('alert', 'Berhasil Menyimpan Data!'); return redirect('pengaturan/aktivasi-program/edit/'.$query->id); }else{ Session::flash('info', 'Program Tahun '.$query->value); Session::flash('colors', 'red'); Session::flash('icons', 'fas fa-times'); Session::flash('alert', 'Gagal Menyimpan Data!'); return redirect()->back(); } }else{ Session::flash('info', 'Program Tahun '.$query->value); Session::flash('colors', 'red'); Session::flash('icons', 'fas fa-times'); Session::flash('alert', 'Gagal Menyimpan Data!'); return redirect()->back(); } } public function delete($id, Request $request){ $query = $this->table->find($id); if($query->delete()){ Session::flash('info', 'Sukses'); Session::flash('colors', 'green'); Session::flash('icons', 'fas fa-clipboard-check'); Session::flash('alert', 'Berhasil Menghapus Data!'); return redirect()->back(); }else{ Session::flash('info', 'Gagal'); Session::flash('colors', 'red'); Session::flash('icons', 'fas fa-times'); Session::flash('alert', 'Gagal Menghapus Data!'); return redirect()->back(); } } }