From f1d9e6fa5273e1177693e1267578aabfdd4cf4b7 Mon Sep 17 00:00:00 2001 From: Ilham Wara Nugroho Date: Tue, 16 Dec 2025 15:49:41 +0700 Subject: [PATCH] update --- .../Controllers/Pengaturan/EFController.php | 145 +++++++++++++++- .../Pengaturan/SumberDataEFController.php | 2 +- app/Models/EF.php | 23 +++ app/Models/Master/Activity.php | 15 ++ .../2025_12_16_064703_create_e_f_s_table.php | 38 +++++ ...5_12_16_064802_create_activities_table.php | 34 ++++ .../2025_12_16_070810_add_relation_p_ef.php | 29 ++++ resources/views/layouts/master.blade.php | 9 +- .../modules/pengaturan/ef/form.blade.php | 160 ++++++++++++++++++ .../modules/pengaturan/ef/index.blade.php | 130 ++++++++++++++ .../unit-conversion/index.blade.php | 16 +- routes/modules/modules.php | 8 + 12 files changed, 590 insertions(+), 19 deletions(-) create mode 100644 app/Models/EF.php create mode 100644 app/Models/Master/Activity.php create mode 100644 database/migrations/2025_12_16_064703_create_e_f_s_table.php create mode 100644 database/migrations/2025_12_16_064802_create_activities_table.php create mode 100644 database/migrations/2025_12_16_070810_add_relation_p_ef.php create mode 100644 resources/views/modules/pengaturan/ef/form.blade.php create mode 100644 resources/views/modules/pengaturan/ef/index.blade.php diff --git a/app/Http/Controllers/Pengaturan/EFController.php b/app/Http/Controllers/Pengaturan/EFController.php index 6d7a93c..074e3d7 100644 --- a/app/Http/Controllers/Pengaturan/EFController.php +++ b/app/Http/Controllers/Pengaturan/EFController.php @@ -4,15 +4,82 @@ namespace App\Http\Controllers\Pengaturan; use App\Http\Controllers\Controller; use Illuminate\Http\Request; +use App\Models\EF; +use App\Models\SumberDataEF; +use App\Models\Master\Activity; + class EFController extends Controller { + protected $title = 'Data EF'; + protected $template = 'modules.pengaturan.ef'; + protected $route = 'modules.pengaturan.ef'; + /** * Display a listing of the resource. */ public function index() { - // + permission('is_read', $this->route, 'module',true); + + $data['breadcrumbs'] = [ + ['name' => 'Dashboard'], + ['name' => 'Pengaturan'], + ['name' => 'EF','active' => true], + ]; + $data['title'] = $this->title; + $data['route'] = $this->route; + $data['activity'] = Activity::all(); + + return view($this->template.'.index',$data); + } + + public function grid(Request $request) + { + if(request()->activity){ + $data = EF::with(['activity','sumberdata'])->where('ms_activity_id',decode_id(request()->activity))->orderBy('nomor_baris','ASC')->get(); + }else{ + $data = EF::with(['activity','sumberdata'])->orderBy('nomor_baris','ASC')->get(); + } + $_data = []; + + + foreach ($data as $key => $row) { + + + $action = ''; + $status = ''; + if($row->status == 0){ + $status = ' Tidak Aktif '; + }else{ + $status = ' Aktif '; + } + $action .= '
'; + if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){ + $action .= ''; + if(session('group_id') == 1){ + $action .= ''; + } + } + $action .= '
'; + + $_data[] = [ + 'no' => $key+1, + 'id' => encode_id($row->EFId), + 'activity' => @$row->activity->nama, + 'sumberdata' => @$row->sumberdata->nama, + 'kategori' => @$row->category, + 'kode' => @$row->kode, + 'nilai' => @$row->value, + 'status' => @$status, + 'action' => @$action, + ]; + + } + + // return response()->json($_data); // Return the data as a JSON response + return response()->json($_data); + } /** @@ -28,7 +95,55 @@ class EFController extends Controller */ public function store(Request $request) { - // + $request->validate([ + 'ms_activity_id' => 'required', + 'sumberdata_ef_id' => 'required', + 'value' => 'required', + 'category' => 'required|string|max:255', + 'tag_1' => 'nullable|string|max:255', + 'tag_2' => 'nullable|string|max:255', + 'tag_3' => 'nullable|string|max:255', + ]); + + try { + if(@request()->secure_id){ + $keyId = decode_id(@request()->secure_id); + $data = EF::find($keyId); + $data->ms_activity_id = decode_id($request->ms_activity_id); + $data->tag_1 = $request->tag_1; + $data->tag_2 = $request->tag_2; + $data->tag_3 = $request->tag_3; + $data->category = $request->category; + $data->sumberdata_ef_id = decode_id($request->sumberdata_ef_id); + $data->value = $request->value; + $data->deskripsi = $request->deskripsi; + $data->status = $request->status; + $data->save(); + }else{ + $data = new EF; + $data->ms_activity_id = decode_id($request->ms_activity_id); + $data->tag_1 = $request->tag_1; + $data->tag_2 = $request->tag_2; + $data->tag_3 = $request->tag_3; + $data->category = $request->category; + $data->sumberdata_ef_id = decode_id($request->sumberdata_ef_id); + $data->value = $request->value; + $data->deskripsi = $request->deskripsi; + $data->status = $request->status; + $data->save(); + } + + + return redirect()->back()->with([ + 'message' => 'Berhasil update data', + 'type' => 'success', + ]); + } catch (\Exception $e) { + return redirect()->back()->with([ + 'message' => 'Gagal disimpan. Silakan coba lagi. Error: ' . $e->getMessage(), + 'type' => 'error', + ]); + } } /** @@ -50,9 +165,31 @@ class EFController extends Controller /** * Update the specified resource in storage. */ - public function update(Request $request, string $id) + public function update($id = null) { - // + $data['breadcrumbs'] = [ + ['name' => 'Dashboard'], + ['name' => 'Pengaturan'], + ['name' => 'AR','active' => true], + ]; + $keyId = decode_id($id); + $data['title'] = $this->title; + $data['route'] = $this->route; + $data['keyId'] = $id; + $data['item'] = EF::where('EFId',$keyId)->first(); + $data['activity'] = Activity::all(); + $data['sumberdata'] = SumberDataEF::all(); + + return view($this->template.'.form',$data); + } + + public function delete($id) + { + $keyId = decode_id($id); + + $data = EF::where('EFId',$keyId)->delete(); + + return response()->json(['success' => true,'message' => 'Berhasil update data','type' => 'success']); } /** diff --git a/app/Http/Controllers/Pengaturan/SumberDataEFController.php b/app/Http/Controllers/Pengaturan/SumberDataEFController.php index d78f392..060d913 100644 --- a/app/Http/Controllers/Pengaturan/SumberDataEFController.php +++ b/app/Http/Controllers/Pengaturan/SumberDataEFController.php @@ -22,7 +22,7 @@ class SumberDataEFController extends Controller $data['breadcrumbs'] = [ ['name' => 'Dashboard'], ['name' => 'Pengaturan'], - ['name' => 'AR','active' => true], + ['name' => 'Sumber Data EF','active' => true], ]; $data['title'] = $this->title; $data['route'] = $this->route; diff --git a/app/Models/EF.php b/app/Models/EF.php new file mode 100644 index 0000000..485a796 --- /dev/null +++ b/app/Models/EF.php @@ -0,0 +1,23 @@ +belongsTo(\App\Models\Master\Activity::class,'ms_activity_id'); + } + + function sumberdata(){ + return $this->belongsTo(\App\Models\SumberDataEF::class,'sumberdata_ef_id'); + } +} diff --git a/app/Models/Master/Activity.php b/app/Models/Master/Activity.php new file mode 100644 index 0000000..47a9627 --- /dev/null +++ b/app/Models/Master/Activity.php @@ -0,0 +1,15 @@ +id('EFId'); + $table->integer('ms_activity_id'); + $table->integer('sumberdata_ef_id'); + $table->string('tag_1')->nullable(); + $table->string('tag_2')->nullable(); + $table->string('tag_3')->nullable(); + $table->string('category')->nullable(); + $table->string('value')->nullable(); + $table->text('deskripsi')->nullable(); + $table->integer('status')->nullable(); + $table->integer('nomor_baris'); + $table->timestampsTz(); + $table->softdeletesTz(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('p_ef'); + } +}; diff --git a/database/migrations/2025_12_16_064802_create_activities_table.php b/database/migrations/2025_12_16_064802_create_activities_table.php new file mode 100644 index 0000000..7c908ac --- /dev/null +++ b/database/migrations/2025_12_16_064802_create_activities_table.php @@ -0,0 +1,34 @@ +id('MsActivityId'); + $table->string('kode')->nullable(); + $table->string('nama')->nullable(); + $table->string('unit_category')->nullable(); + $table->integer('nomor_baris'); + $table->text('deskripsi')->nullable(); + $table->integer('status')->default(0); + $table->timestampsTz(); + $table->softdeletesTz(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('ms_activity'); + } +}; diff --git a/database/migrations/2025_12_16_070810_add_relation_p_ef.php b/database/migrations/2025_12_16_070810_add_relation_p_ef.php new file mode 100644 index 0000000..64953b0 --- /dev/null +++ b/database/migrations/2025_12_16_070810_add_relation_p_ef.php @@ -0,0 +1,29 @@ +foreign('ms_activity_id')->references('MsActivityId')->on('ms_activity')->cascadeOnDelete(); + $table->foreign('sumberdata_ef_id')->references('SumberDataId')->on('p_sumberdata_ef')->cascadeOnDelete(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // Schema::table('p_ef', function (Blueprint $table) { + // // + // }); + } +}; diff --git a/resources/views/layouts/master.blade.php b/resources/views/layouts/master.blade.php index fd306f7..4254857 100644 --- a/resources/views/layouts/master.blade.php +++ b/resources/views/layouts/master.blade.php @@ -72,11 +72,10 @@ + + @yield('js') - @yield('js') - \ No newline at end of file diff --git a/resources/views/modules/pengaturan/ef/form.blade.php b/resources/views/modules/pengaturan/ef/form.blade.php new file mode 100644 index 0000000..fe833a3 --- /dev/null +++ b/resources/views/modules/pengaturan/ef/form.blade.php @@ -0,0 +1,160 @@ +@extends('layouts.master') +@section('content') +
+
+
+
+
+
+ {{$title}} +
+
+ {{csrf_field()}} +
+
+
+ +
+ +
+
+ +
+ + @error('kode') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+ + @error('tag_1') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+ + @error('tag_2') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+ + @error('tag_3') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+ + @error('category') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+ + @error('kode') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+ + @error('value') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+ + @error('deskripsi') + {{$message}} + @enderror +
+
+
+ + + +
+
+ +
+ + @error('status') + {{$message}} + @enderror +
+
+
+ +
+
+ +
+
+
+
+
+
+@endsection +@section('js') +@endsection \ No newline at end of file diff --git a/resources/views/modules/pengaturan/ef/index.blade.php b/resources/views/modules/pengaturan/ef/index.blade.php new file mode 100644 index 0000000..427ef56 --- /dev/null +++ b/resources/views/modules/pengaturan/ef/index.blade.php @@ -0,0 +1,130 @@ +@extends('layouts.master') + +@section('css') +@endsection +@section('content') +
+
+
+
+
+ +
+
+
+
+ +
+
+
+ + + + + + + + + + + + + +
#AktivitasKategoriSumber Data EFNilaiStatus
+
+
+
+
+
+
+@endsection +@section('js') + +@endsection \ No newline at end of file diff --git a/resources/views/modules/pengaturan/unit-conversion/index.blade.php b/resources/views/modules/pengaturan/unit-conversion/index.blade.php index c754afc..6073fbb 100644 --- a/resources/views/modules/pengaturan/unit-conversion/index.blade.php +++ b/resources/views/modules/pengaturan/unit-conversion/index.blade.php @@ -11,15 +11,15 @@
{{csrf_field()}}
-
- -