efSourceService = $efSourceService; } public static function middleware(): array { return [ //new Middleware('permission:/setting/ef_source'), ]; } public function index(Request $request) { $data['route'] = $this->route; $data['title'] = $this->title; return view($this->template.'.index',$data); } public function create() { $data['route'] = $this->route; $data['title'] = $this->title; return view($this->template.'.create',$data); } public function store(Request $request) { $request->validate([ 'code' => [ 'required', 'string', 'max:255', new UniqueInSchema('reference', 'ef_source', 'code'), ], 'name' => 'required|string|max:255', 'description' => 'nullable|string', 'row_num' => 'required|numeric', ]); try { $this->efSourceService->create($request->all()); return redirect()->route($this->route.'.index')->with('success', 'Sumber Data EF berhasil ditambahkan.'); } catch (\Exception $e) { return back()->withErrors(['error' => 'Sumber Data EF gagal disimpan. Silakan coba lagi. Error: ' . $e->getMessage()]); } } public function edit($id) { $data['efSource'] = $this->efSourceService->find($id); $data['route'] = $this->route; $data['title'] = $this->title; return view($this->template.'.edit', $data); } public function update(Request $request, ReferenceEfSource $efSource) { $request->validate([ 'code' => [ 'required', 'string', 'max:255', new UniqueInSchema('reference', 'ef_source', 'code', $efSource->id), ], 'name' => 'required|string|max:255', 'description' => 'nullable|string', 'row_num' => 'required|numeric', ]); try { $this->efSourceService->update($efSource, $request->all()); return redirect()->route($this->route.'.index')->with('success', 'Sumber Data EF berhasil diperbarui.'); } catch (\Exception $e) { return back()->withErrors(['error' => 'Sumber Data EF gagal diperbarui. Silakan coba lagi. Error: ' . $e->getMessage()]); } } public function destroy(ReferenceEfSource $efSource) { try { $this->efSourceService->delete($efSource); return redirect()->route($this->route.'.index')->with('success', 'Sumber Data EF berhasil dihapus.'); } catch (\Exception $e) { return back()->withErrors(['error' => 'Sumber Data EF gagal dihapus. Silakan coba lagi. Error: ' . $e->getMessage()]); } } public function grid(Request $request) { $data = $this->efSourceService->getAll(); $_data = []; foreach ($data as $key => $row) { $btn = 'Edit'; $btn .= '
'; $btn .= csrf_field(); $btn .= method_field('DELETE'); $btn .= ''; $btn .= '
'; $_data[] = [ 'no' => $key+1, 'no_baris' => @$row->row_num, 'code' => $row->code, 'name' => $row->name, 'description' => $row->description, 'no_baris' => $row->row_num, 'action' => @$btn, ]; } return response()->json($_data); } }