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 .= '
';
+
+ 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 .= ' ';
+
+
+ $_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 .= ' ';
+
+
+ $_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 @@
+
+
+
+@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')
+
+
+
+
+
+
+
+
+
+
+
+ | # |
+ Nama |
+ Scope |
+
+
+
+
+
+
+
+
+
+
+@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')
+
+@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')
+
+
+
+
+
+
+
+
+
+
+
+ | # |
+ Nama |
+ Code |
+
+
+
+
+
+
+
+
+
+
+@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')
+
+@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')
+
+
+
+
+
+
+
+
+
+
+
+
+ | # |
+ Nama |
+ Code |
+
+
+
+
+
+
+
+
+
+
+@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');