From 2787e75b812434ffef869f7e83ce7b0b9450009f Mon Sep 17 00:00:00 2001 From: Ilham Wara Nugroho Date: Mon, 20 Apr 2026 13:22:53 +0700 Subject: [PATCH] update --- .../Controllers/Master/AgencyController.php | 140 +++++++++++++++++ .../Controllers/Master/SectorController.php | 136 +++++++++++++++++ .../Master/SubSectorController.php | 143 ++++++++++++++++++ app/Models/Sector.php | 13 ++ app/Models/SubSector.php | 14 ++ .../modules/master/agency/form.blade.php | 61 ++++++++ .../modules/master/agency/index.blade.php | 91 +++++++++++ .../modules/master/sector/form.blade.php | 73 +++++++++ .../modules/master/sector/index.blade.php | 91 +++++++++++ .../modules/master/subsector/form.blade.php | 85 +++++++++++ .../modules/master/subsector/index.blade.php | 97 ++++++++++++ routes/modules/modules.php | 23 +++ 12 files changed, 967 insertions(+) create mode 100644 app/Http/Controllers/Master/AgencyController.php create mode 100644 app/Http/Controllers/Master/SectorController.php create mode 100644 app/Http/Controllers/Master/SubSectorController.php create mode 100644 app/Models/Sector.php create mode 100644 app/Models/SubSector.php create mode 100644 resources/views/modules/master/agency/form.blade.php create mode 100644 resources/views/modules/master/agency/index.blade.php create mode 100644 resources/views/modules/master/sector/form.blade.php create mode 100644 resources/views/modules/master/sector/index.blade.php create mode 100644 resources/views/modules/master/subsector/form.blade.php create mode 100644 resources/views/modules/master/subsector/index.blade.php diff --git a/app/Http/Controllers/Master/AgencyController.php b/app/Http/Controllers/Master/AgencyController.php new file mode 100644 index 0000000..b07c9e7 --- /dev/null +++ b/app/Http/Controllers/Master/AgencyController.php @@ -0,0 +1,140 @@ +route; + $data['title'] = $this->title; + + return view($this->template.'.index',$data); + } + + public function grid() + { + $data = Agency::all(); + $_data = []; + + foreach ($data as $key => $row) { + + $btn = 'Edit'; + $btn .= '
'; + $btn .= csrf_field(); + $btn .= method_field('DELETE'); + $btn .= ''; + $btn .= '
'; + + if ($row->row_status == 1) { + $status = 'Aktif'; + } else { + $status = 'Tidak Aktif'; + } + + $_data[] = [ + 'no' => $key+1, + 'name' => $row->name, + 'scope' => $row->scope, + 'status' => $status, + 'action' => @$btn, + ]; + + } + + return response()->json($_data); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + $data['route'] = $this->route; + $data['title'] = $this->title; + + return view($this->template.'.form',$data); + } + + public function update($id = null) + { + $keyId = decode_id($id); + $data['title'] = $this->title; + $data['route'] = $this->route; + $data['keyId'] = $id; + $data['item'] = Agency::where('id',$keyId)->first(); + return view($this->template.'.form',$data); + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + $request->validate([ + 'name' => 'required|string|max:255', + 'scope' => 'nullable|string', + ]); + + try { + if(@$request->secure_id){ + $ag = Agency::find(decode_id(@$request->secure_id)); + $ag->name = $request->name; + $ag->scope = $request->scope; + $ag->save(); + }else{ + $ag = new Agency; + $ag->name = $request->name; + $ag->scope = $request->scope; + $ag->row_status = 1; + $ag->save(); + } + + return redirect()->route($this->route.'.index')->with('success', 'Agency berhasil ditambahkan.'); + } catch (\Exception $e) { + return back()->withErrors(['error' => 'Agency gagal disimpan. Silakan coba lagi. Error: ' . $e->getMessage()]); + } + } + + /** + * Display the specified resource. + */ + public function show(string $id) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(string $id) + { + $data['ar'] = Agency::find($id); + $data['route'] = $this->route; + $data['title'] = $this->title; + return view($this->template.'.form', $data); + } + + /** + * Update the specified resource in storage. + */ + + /** + * Remove the specified resource from storage. + */ + public function destroy(string $id) + { + // + } +} diff --git a/app/Http/Controllers/Master/SectorController.php b/app/Http/Controllers/Master/SectorController.php new file mode 100644 index 0000000..1e26e41 --- /dev/null +++ b/app/Http/Controllers/Master/SectorController.php @@ -0,0 +1,136 @@ +route; + $data['title'] = $this->title; + + return view($this->template.'.index',$data); + } + + public function grid() + { + $data = Sector::all(); + $_data = []; + + foreach ($data as $key => $row) { + + $btn = 'Sub Sector'; + $btn .= 'Edit'; + $btn .= '
'; + $btn .= csrf_field(); + $btn .= method_field('DELETE'); + $btn .= ''; + $btn .= '
'; + + + $_data[] = [ + 'no' => $key+1, + 'name' => $row->name, + 'code' => $row->code, + 'action' => @$btn, + ]; + + } + + return response()->json($_data); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + $data['route'] = $this->route; + $data['title'] = $this->title; + + return view($this->template.'.form',$data); + } + + public function update($id = null) + { + $keyId = decode_id($id); + $data['title'] = $this->title; + $data['route'] = $this->route; + $data['keyId'] = $id; + $data['item'] = Sector::where('id',$keyId)->first(); + return view($this->template.'.form',$data); + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + $request->validate([ + 'name' => 'required|string|max:255', + 'code' => 'nullable|string', + ]); + + try { + if(@$request->secure_id){ + $data = Sector::find(decode_id(@$request->secure_id)); + $data->name = $request->name; + $data->code = $request->code; + $data->save(); + }else{ + $data = new Sector; + $data->name = $request->name; + $data->code = $request->code; + $data->row_num = $request->row_num; + $data->row_status = 1; + $data->save(); + } + + return redirect()->route($this->route.'.index')->with('success', 'Sector berhasil ditambahkan.'); + } catch (\Exception $e) { + return back()->withErrors(['error' => 'Sector gagal disimpan. Silakan coba lagi. Error: ' . $e->getMessage()]); + } + } + + /** + * Display the specified resource. + */ + public function show(string $id) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(string $id) + { + $data['ar'] = Sector::find($id); + $data['route'] = $this->route; + $data['title'] = $this->title; + return view($this->template.'.form', $data); + } + + /** + * Update the specified resource in storage. + */ + + /** + * Remove the specified resource from storage. + */ + public function destroy(string $id) + { + // + } +} diff --git a/app/Http/Controllers/Master/SubSectorController.php b/app/Http/Controllers/Master/SubSectorController.php new file mode 100644 index 0000000..1cb6f6c --- /dev/null +++ b/app/Http/Controllers/Master/SubSectorController.php @@ -0,0 +1,143 @@ +route; + $data['url'] = $this->url.''.$code.'/subsector'; + $data['title'] = $this->title; + $data['code'] = $code; + + return view($this->template.'.index',$data); + } + + public function grid($code) + { + $data = SubSector::where('sector_code',$code)->get(); + $_data = []; + + foreach ($data as $key => $row) { + + $btn = 'Edit'; + // $btn .= '
'; + // $btn .= csrf_field(); + // $btn .= method_field('DELETE'); + // $btn .= ''; + // $btn .= '
'; + + + $_data[] = [ + 'no' => $key+1, + 'name' => $row->name, + 'code' => $row->code, + 'action' => @$btn, + ]; + + } + + return response()->json($_data); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + $data['route'] = $this->route; + $data['title'] = $this->title; + + return view($this->template.'.form',$data); + } + + public function update($code,$id = null) + { + $keyId = decode_id($id); + $data['title'] = $this->title; + $data['route'] = $this->route; + $data['keyId'] = $id; + $data['code'] = $code; + $data['url'] = $this->url.''.$code.'/subsector'; + $data['item'] = SubSector::where('id',$keyId)->first(); + return view($this->template.'.form',$data); + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + // dd($request->all()); + $request->validate([ + 'name' => 'required|string|max:255', + 'code' => 'string', + ]); + + try { + if(@$request->secure_id){ + $data = SubSector::find(decode_id(@$request->secure_id)); + $data->name = $request->name; + $data->code = $request->code; + $data->save(); + }else{ + $data = new SubSector; + $data->sector_code = $request->sector_code; + $data->name = $request->name; + $data->code = $request->code; + $data->row_num = $request->row_num; + $data->row_status = 1; + $data->save(); + } + + return redirect()->back()->with('success', 'SubcSector berhasil diupdate.'); + } catch (\Exception $e) { + return back()->withErrors(['error' => 'SubcSector gagal disimpan. Silakan coba lagi. Error: ' . $e->getMessage()]); + } + } + + /** + * Display the specified resource. + */ + public function show(string $id) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(string $id) + { + $data['ar'] = SubSector::find($id); + $data['route'] = $this->route; + $data['title'] = $this->title; + return view($this->template.'.form', $data); + } + + /** + * Update the specified resource in storage. + */ + + /** + * Remove the specified resource from storage. + */ + public function destroy(string $id) + { + // + } +} diff --git a/app/Models/Sector.php b/app/Models/Sector.php new file mode 100644 index 0000000..ec5d6c9 --- /dev/null +++ b/app/Models/Sector.php @@ -0,0 +1,13 @@ + +
+
+
+
+
+ {{$title}} +
+
+ {{csrf_field()}} +
+
+
+ +
+ +
+
+ +
+ + @error('scope') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+ + @error('name') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+
+
+
+
+ +@endsection +@section('js') +@endsection \ No newline at end of file diff --git a/resources/views/modules/master/agency/index.blade.php b/resources/views/modules/master/agency/index.blade.php new file mode 100644 index 0000000..7c92f6b --- /dev/null +++ b/resources/views/modules/master/agency/index.blade.php @@ -0,0 +1,91 @@ +@extends('layouts.master') + +@section('css') +@endsection +@section('content') +
+
+
+
+
+
+ + + + + + + + + + + +
#NamaScope
+
+
+
+
+
+
+@endsection +@section('js') + +@endsection \ No newline at end of file diff --git a/resources/views/modules/master/sector/form.blade.php b/resources/views/modules/master/sector/form.blade.php new file mode 100644 index 0000000..c992085 --- /dev/null +++ b/resources/views/modules/master/sector/form.blade.php @@ -0,0 +1,73 @@ +@extends('layouts.master') +@section('content') +
+
+
+
+
+
+ {{$title}} +
+
+ {{csrf_field()}} +
+
+
+ +
+ +
+
+ +
+ + @error('code') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+ + @error('name') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+ + @error('row_num') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+
+
+
+
+
+@endsection +@section('js') +@endsection \ No newline at end of file diff --git a/resources/views/modules/master/sector/index.blade.php b/resources/views/modules/master/sector/index.blade.php new file mode 100644 index 0000000..b479da7 --- /dev/null +++ b/resources/views/modules/master/sector/index.blade.php @@ -0,0 +1,91 @@ +@extends('layouts.master') + +@section('css') +@endsection +@section('content') +
+
+
+
+
+
+ + + + + + + + + + + +
#NamaCode
+
+
+
+
+
+
+@endsection +@section('js') + +@endsection \ No newline at end of file diff --git a/resources/views/modules/master/subsector/form.blade.php b/resources/views/modules/master/subsector/form.blade.php new file mode 100644 index 0000000..b0f2ddf --- /dev/null +++ b/resources/views/modules/master/subsector/form.blade.php @@ -0,0 +1,85 @@ +@extends('layouts.master') +@section('content') +
+
+
+
+
+
+ {{$title}} +
+
+ {{csrf_field()}} +
+
+
+ +
+ +
+
+ +
+ + @error('sector_code') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+ + @error('code') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+ + @error('name') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+ + @error('row_num') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+
+
+
+
+
+@endsection +@section('js') +@endsection \ No newline at end of file diff --git a/resources/views/modules/master/subsector/index.blade.php b/resources/views/modules/master/subsector/index.blade.php new file mode 100644 index 0000000..5a46b0c --- /dev/null +++ b/resources/views/modules/master/subsector/index.blade.php @@ -0,0 +1,97 @@ +@extends('layouts.master') + +@section('css') +@endsection +@section('content') +
+
+
+
+
+
+
Sector {{ \Str::title($code) }}
+
+
+ + + + + + + + + + + +
#NamaCode
+
+
+
+
+
+
+@endsection +@section('js') + +@endsection \ No newline at end of file diff --git a/routes/modules/modules.php b/routes/modules/modules.php index 968f5d3..d1ab015 100644 --- a/routes/modules/modules.php +++ b/routes/modules/modules.php @@ -9,6 +9,8 @@ use App\Http\Controllers\Management\UserSekolahController; use App\Http\Controllers\Management\RoleController; use App\Http\Controllers\Management\AksesController; use App\Http\Controllers\Master\AgencyController; +use App\Http\Controllers\Master\SectorController; +use App\Http\Controllers\Master\SubSectorController; use App\Http\Controllers\Activity\FormController; use App\Http\Controllers\Activity\FormKehutananController; use App\Http\Controllers\Activity\FormMetadataController; @@ -111,6 +113,27 @@ Route::name('management.')->prefix('management')->group(function () { Route::get('user/profile', [AuthController::class, 'show'])->name('profile.show'); Route::get('user/profile/edit', [AuthController::class, 'edit'])->name('profile.edit'); + Route::prefix('master')->group(function () { + Route::prefix('agency')->group(function () { + Route::resource('/', AgencyController::class)->names('master.agency'); + Route::get('/grid', [AgencyController::class,'grid'])->name('master.agency.grid'); + Route::get('update/{id?}',[AgencyController::class,'update'])->name('master.agency.update'); + }); + Route::prefix('sector')->group(function () { + Route::resource('/', SectorController::class)->names('master.sector'); + Route::get('/grid', [SectorController::class,'grid'])->name('master.sector.grid'); + Route::get('update/{id?}',[SectorController::class,'update'])->name('master.sector.update'); + + Route::prefix('{code}/subsector')->group(function () { + Route::resource('/', SubSectorController::class)->names('master.subsector'); + Route::get('/grid', [SubSectorController::class,'grid'])->name('master.subsector.grid'); + Route::post('/store', [SubSectorController::class,'store'])->name('master.subsector.store'); + Route::get('update/{id?}',[SubSectorController::class,'update'])->name('master.subsector.update'); + }); + + }); + + }); Route::prefix('pengaturan')->group(function () { Route::get('ar/grid', [ArController::class, 'grid'])->name('pengaturan.ar.grid'); Route::resource('ar', ArController::class)->names('pengaturan.ar');