From df9b68ae4684908ee4c0a5128cfb9ec0fd71d7fb Mon Sep 17 00:00:00 2001 From: majid Date: Thu, 5 Sep 2024 14:43:05 +0700 Subject: [PATCH 1/4] update migration and models (penilaian, jenis_penilaian, teams, teams_users --- app/Models/JenisPenilaian.php | 22 ++++++++++ app/Models/Penilaian.php | 38 +++++++++++++++++ app/Models/Regions.php | 26 ++++++++++++ app/Models/Teams.php | 28 +++++++++++++ app/Models/TeamsUsers.php | 32 ++++++++++++++ ...2024_09_05_030302_create_regions_table.php | 36 ++++++++++++++++ ...05_030338_create_jenis_penilaian_table.php | 37 ++++++++++++++++ .../2024_09_05_030405_create_teams_table.php | 41 ++++++++++++++++++ ..._09_05_030417_create_teams_users_table.php | 41 ++++++++++++++++++ ...24_09_05_070712_create_penilaian_table.php | 42 +++++++++++++++++++ module.json | 11 +++++ 11 files changed, 354 insertions(+) create mode 100644 app/Models/JenisPenilaian.php create mode 100644 app/Models/Penilaian.php create mode 100644 app/Models/Regions.php create mode 100644 app/Models/Teams.php create mode 100644 app/Models/TeamsUsers.php create mode 100644 database/migrations/2024_09_05_030302_create_regions_table.php create mode 100644 database/migrations/2024_09_05_030338_create_jenis_penilaian_table.php create mode 100644 database/migrations/2024_09_05_030405_create_teams_table.php create mode 100644 database/migrations/2024_09_05_030417_create_teams_users_table.php create mode 100644 database/migrations/2024_09_05_070712_create_penilaian_table.php diff --git a/app/Models/JenisPenilaian.php b/app/Models/JenisPenilaian.php new file mode 100644 index 0000000..2ac6459 --- /dev/null +++ b/app/Models/JenisPenilaian.php @@ -0,0 +1,22 @@ +hasMany(JenisPenilaian::class); + } + + public function teams(){ + return $this->hasMany(Teams::class); + } + + public function users(){ + return $this->hasMany(User::class); + } + + +} diff --git a/app/Models/Regions.php b/app/Models/Regions.php new file mode 100644 index 0000000..bfa8e0a --- /dev/null +++ b/app/Models/Regions.php @@ -0,0 +1,26 @@ +hasMany(Teams::class, 'region_id', 'id'); + } +} diff --git a/app/Models/Teams.php b/app/Models/Teams.php new file mode 100644 index 0000000..bc9f7fe --- /dev/null +++ b/app/Models/Teams.php @@ -0,0 +1,28 @@ +belongsTo(Regions::class, 'region_id', 'id'); + } + + public function teamsUsers(){ + return $this->hasMany(TeamsUsers::class, 'team_id', 'id'); + } +} diff --git a/app/Models/TeamsUsers.php b/app/Models/TeamsUsers.php new file mode 100644 index 0000000..6516730 --- /dev/null +++ b/app/Models/TeamsUsers.php @@ -0,0 +1,32 @@ +belongsTo(Teams::class, 'team_id'); + } + + public function user() + { + return $this->belongsTo(User::class, 'user_id'); + } +} diff --git a/database/migrations/2024_09_05_030302_create_regions_table.php b/database/migrations/2024_09_05_030302_create_regions_table.php new file mode 100644 index 0000000..3f942ff --- /dev/null +++ b/database/migrations/2024_09_05_030302_create_regions_table.php @@ -0,0 +1,36 @@ +id(); + $table->string('code')->unique()->index(); + $table->string('name'); + $table->char('status')->nullable(); + $table->char('authorized_status', 1)->nullable(); + $table->timestamps(); + $table->timestamp('authorized_at')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + $table->softDeletes(); + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('regions'); + } +}; diff --git a/database/migrations/2024_09_05_030338_create_jenis_penilaian_table.php b/database/migrations/2024_09_05_030338_create_jenis_penilaian_table.php new file mode 100644 index 0000000..bf31ab4 --- /dev/null +++ b/database/migrations/2024_09_05_030338_create_jenis_penilaian_table.php @@ -0,0 +1,37 @@ +id(); + $table->string('code')->unique()->index(); + $table->string('name'); + $table->char('status')->nullable(); + $table->char('authorized_status', 1)->nullable(); + $table->timestamps(); + $table->timestamp('authorized_at')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + $table->softDeletes(); + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('jenis_penilaian'); + } +}; diff --git a/database/migrations/2024_09_05_030405_create_teams_table.php b/database/migrations/2024_09_05_030405_create_teams_table.php new file mode 100644 index 0000000..88ae841 --- /dev/null +++ b/database/migrations/2024_09_05_030405_create_teams_table.php @@ -0,0 +1,41 @@ +id(); + $table->foreignIdFor(Regions::class, 'region_id'); + $table->string('code')->unique()->index(); + $table->string('name'); + $table->char('status')->nullable(); + $table->char('authorized_status', 1)->nullable(); + $table->timestamps(); + $table->timestamp('authorized_at')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + $table->softDeletes(); + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('teams'); + } +}; diff --git a/database/migrations/2024_09_05_030417_create_teams_users_table.php b/database/migrations/2024_09_05_030417_create_teams_users_table.php new file mode 100644 index 0000000..9b4422e --- /dev/null +++ b/database/migrations/2024_09_05_030417_create_teams_users_table.php @@ -0,0 +1,41 @@ +id(); + $table->foreignIdFor(Teams::class); + $table->foreignIdFor(Users::class); + + + $table->char('status')->nullable(); + $table->char('authorized_status', 1)->nullable(); + $table->timestamps(); + $table->timestamp('authorized_at')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + $table->softDeletes(); + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('teams_users'); + } +}; diff --git a/database/migrations/2024_09_05_070712_create_penilaian_table.php b/database/migrations/2024_09_05_070712_create_penilaian_table.php new file mode 100644 index 0000000..14d7766 --- /dev/null +++ b/database/migrations/2024_09_05_070712_create_penilaian_table.php @@ -0,0 +1,42 @@ +id(); + $table->foreignIdFor(Penilaian::class); + $table->foreignIdFor(Teams::class); + $table->foreignIdFor(Users::class); + $table->datetime('tanggal_kunjungan'); + $table->text('keterangan'); + $table->char('status'); + $table->timestamps(); + $table->char('authorized_status', 1)->nullable(); + $table->timestamp('authorized_at')->nullable(); + $table->softDeletes(); + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('penilaian'); + } +}; diff --git a/module.json b/module.json index 40ce5bd..de8b0cc 100644 --- a/module.json +++ b/module.json @@ -65,6 +65,17 @@ "roles": [ "Administrator" ] + }, + { + "title": "Region", + "path": "", + "icon": "ki-filled ki-some-files text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "Administrator" + ] } ], "master": [ -- 2.34.1 From a51d5fbeff77cbc6b3c037b3516a7306fc955faf Mon Sep 17 00:00:00 2001 From: majid Date: Fri, 6 Sep 2024 08:50:57 +0700 Subject: [PATCH 2/4] update model jenispenilaian, penilaian dan teamsusers --- app/Models/JenisPenilaian.php | 3 +++ app/Models/Penilaian.php | 10 +++++----- app/Models/TeamsUsers.php | 8 ++++---- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/Models/JenisPenilaian.php b/app/Models/JenisPenilaian.php index 2ac6459..b809c91 100644 --- a/app/Models/JenisPenilaian.php +++ b/app/Models/JenisPenilaian.php @@ -18,5 +18,8 @@ class JenisPenilaian extends Model 'created_at', 'created_by', 'updated_at', 'updated_by', 'deleted_at', 'deleted_by' ]; + public function penilaian(){ + return $this->hasMany(Penilaian::class , 'jenis_penilaian_id', 'id'); + } } diff --git a/app/Models/Penilaian.php b/app/Models/Penilaian.php index 00064f1..b3620db 100644 --- a/app/Models/Penilaian.php +++ b/app/Models/Penilaian.php @@ -17,21 +17,21 @@ class Penilaian extends Model */ protected $table = 'penilaian'; protected $fillable = [ - 'jenis_penilaian_id', 'team_id', 'user_id', 'tanggal_kunjungan', 'keterangan', - 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_at', + 'jenis_penilaian_id', 'team_id', 'user_id', 'tanggal_kunjungan', 'keterangan', + 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_at', 'created_by', 'updated_at', 'updated_by', 'deleted_at', 'deleted_by' ]; public function jenis_penilaian(){ - return $this->hasMany(JenisPenilaian::class); + return $this->belongsTo(JenisPenilaian::class, 'jenis_penilaian_id', 'id'); } public function teams(){ - return $this->hasMany(Teams::class); + return $this->belongsTo(Teams::class, 'team_id', 'id'); } public function users(){ - return $this->hasMany(User::class); + return $this->belongsTo(User::class, 'user_id', 'id'); } diff --git a/app/Models/TeamsUsers.php b/app/Models/TeamsUsers.php index 6516730..4704fa9 100644 --- a/app/Models/TeamsUsers.php +++ b/app/Models/TeamsUsers.php @@ -15,18 +15,18 @@ class TeamsUsers extends Model */ protected $table = 'teams_users'; protected $fillable = [ - 'team_id', 'user_id', 'status', 'authorized_status', 'authorized_at', - 'authorized_by', 'created_at', 'created_by', 'updated_at', 'updated_by', + 'team_id', 'user_id', 'status', 'authorized_status', 'authorized_at', + 'authorized_by', 'created_at', 'created_by', 'updated_at', 'updated_by', 'deleted_at', 'deleted_by' ]; public function team() { - return $this->belongsTo(Teams::class, 'team_id'); + return $this->belongsTo(Teams::class, 'team_id', 'id'); } public function user() { - return $this->belongsTo(User::class, 'user_id'); + return $this->belongsTo(User::class, 'user_id', 'id'); } } -- 2.34.1 From f9fea10607dbdae3b2101f5131683d8860ef8196 Mon Sep 17 00:00:00 2001 From: majid Date: Wed, 11 Sep 2024 08:31:47 +0700 Subject: [PATCH 3/4] update module senior officer --- app/Exports/RegionExport.php | 49 ++ .../Controllers/JenisPenilaianController.php | 156 ++++++ app/Http/Controllers/PermohonanController.php | 2 +- app/Http/Controllers/RegionController.php | 164 +++++++ app/Http/Controllers/TeamsController.php | 241 ++++++++++ app/Http/Requests/JenisPenilaianRequest.php | 42 ++ app/Http/Requests/RegionRequest.php | 38 ++ app/Http/Requests/TeamsRequest.php | 41 ++ app/Models/JenisPenilaian.php | 2 +- app/Models/Penilaian.php | 8 +- app/Models/Regions.php | 8 +- app/Models/Teams.php | 20 +- app/Models/TeamsUsers.php | 7 +- ...24_08_12_023807_create_debitures_table.php | 54 +++ .../2024_09_05_030405_create_teams_table.php | 4 +- ..._09_05_030417_create_teams_users_table.php | 8 +- ...24_09_05_070712_create_penilaian_table.php | 9 +- module.json | 36 +- .../views/jenis_penilaian/form.blade.php | 64 +++ .../views/jenis_penilaian/index.blade.php | 160 +++++++ resources/views/region/create.blade.php | 61 +++ resources/views/region/index.blade.php | 152 ++++++ resources/views/teams/form.blade.php | 113 +++++ resources/views/teams/index.blade.php | 174 +++++++ routes/breadcrumbs.php | 43 ++ routes/web.php | 452 ++++++++++-------- 26 files changed, 1881 insertions(+), 227 deletions(-) create mode 100644 app/Exports/RegionExport.php create mode 100644 app/Http/Controllers/JenisPenilaianController.php create mode 100644 app/Http/Controllers/RegionController.php create mode 100644 app/Http/Controllers/TeamsController.php create mode 100644 app/Http/Requests/JenisPenilaianRequest.php create mode 100644 app/Http/Requests/RegionRequest.php create mode 100644 app/Http/Requests/TeamsRequest.php create mode 100644 database/migrations/2024_08_12_023807_create_debitures_table.php create mode 100644 resources/views/jenis_penilaian/form.blade.php create mode 100644 resources/views/jenis_penilaian/index.blade.php create mode 100644 resources/views/region/create.blade.php create mode 100644 resources/views/region/index.blade.php create mode 100644 resources/views/teams/form.blade.php create mode 100644 resources/views/teams/index.blade.php diff --git a/app/Exports/RegionExport.php b/app/Exports/RegionExport.php new file mode 100644 index 0000000..a7b2b51 --- /dev/null +++ b/app/Exports/RegionExport.php @@ -0,0 +1,49 @@ +id, + $row->code, + $row->name, + $row->created_at + ]; + } + + public function headings() + : array + { + return [ + 'ID', + 'Code', + 'Name', + 'Created At' + ]; + } + + public function columnFormats() + : array + { + return [ + 'A' => NumberFormat::FORMAT_NUMBER, + 'D' => NumberFormat::FORMAT_DATE_DATETIME + ]; + } + } diff --git a/app/Http/Controllers/JenisPenilaianController.php b/app/Http/Controllers/JenisPenilaianController.php new file mode 100644 index 0000000..c38f673 --- /dev/null +++ b/app/Http/Controllers/JenisPenilaianController.php @@ -0,0 +1,156 @@ +validated(); + + try { + JenisPenilaian::create($validate); + return redirect()->route('basicdata.jenis-penilaian.index')->with('success', 'Jenis Penilaian created successfully'); + } catch (Exception $e) { + return redirect()->route('basicdata.jenis-penilaian.create')->with('error', $e->getMessage()); + } + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + $jenisPenilaian = JenisPenilaian::find($id); + return view('lpj::jenis_penilaian.form', compact('jenisPenilaian')); + } + + /** + * Update the specified resource in storage. + */ + public function update(JenisPenilaianRequest $request, $id) + { + + + $validate = $request->validate(); + + // dump($validate); + + if ($validate) { + try { + $jenisPenilaian = JenisPenilaian::find($id); + $jenisPenilaian->update($validate); + return redirect()->route('basicdata.jenis-penilaian.index')->with('success', 'Jenis Penilaian updated successfully'); + } catch (Exception $e) { + return redirect()->route('basicdata.jenis-penilaian.edit', $id)->with('error', $e->getMessage()); + } + } + + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + try { + $jenisPenilaian = JenisPenilaian::find($id); + $jenisPenilaian->delete(); + echo json_encode(['success' => true, 'message' => 'Jenis Penilaian deleted successfully']); + + } catch (Exception $e) { + echo json_encode(['success' => false, 'message' => 'Failed to delete Jenis Penilaian']); + } + } + + public function dataForDatatables(Request $request) + { + + + if (is_null($this->user) || !$this->user->can('jenis_penilaian.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + $query = JenisPenilaian::query(); + + if ($request->has('search') && !empty($request->get('search'))) { + $search = $request->get('search'); + $query->where(function ($q) use ($search) { + $q->where('code', 'LIKE', "%$search%"); + $q->orWhere('name', 'LIKE', "%$search%"); + }); + } + + if($request->has('sortOrder') && !empty($request->get('sortOrder'))){ + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + $totalRecords = $query->count(); + + + $size = $request->get('size'); + $pageCount = 1; + + if ($size > 0) { + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page'); + $offset = ($page - 1) * $size; + $query->skip($offset)->take($size); + $filteredRecords = $query->count(); + $pageCount = ceil($totalRecords / $size); + } + + $data = $query->get(); + } else { + $filteredRecords = $totalRecords; + $data = $query->get(); + } + + $currentPage = $request->get('page') ?? 1; + + + // Return the response data as a JSON object + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data + ]); + } +} diff --git a/app/Http/Controllers/PermohonanController.php b/app/Http/Controllers/PermohonanController.php index ea6d5f3..a6b3276 100644 --- a/app/Http/Controllers/PermohonanController.php +++ b/app/Http/Controllers/PermohonanController.php @@ -29,7 +29,7 @@ if ($validate) { try { - // Save to database + // Save to database qq Permohonan::create($validate); return redirect() ->route('permohonan.index') diff --git a/app/Http/Controllers/RegionController.php b/app/Http/Controllers/RegionController.php new file mode 100644 index 0000000..e6aa981 --- /dev/null +++ b/app/Http/Controllers/RegionController.php @@ -0,0 +1,164 @@ +validated(); + + if ($validate) { + try { + // Save to database + Regions::create($validate); + return redirect() + ->route('basicdata.region.index') + ->with('success', 'region created successfully'); + } catch (Exception $e) { + return redirect() + ->route('basicdata.region.create') + ->with('error', 'Failed to create region'); + } + } + } + + + public function edit($id) + { + $region = Regions::find($id); + return view('lpj::region.create', compact('region')); + + } + + /** + * Update the specified resource in storage. + */ + public function update(RegionRequest $request, $id) + { + $validate = $request->validated(); + + if ($validate) { + try { + // Update in database + $region = Regions::find($id); + $region->update($validate); + return redirect() + ->route('basicdata.region.index') + ->with('success', 'Region updated successfully'); + } catch (Exception $e) { + return redirect() + ->route('basicdata.region.edit', $id) + ->with('error', 'Failed to update region'); + } + } + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + try { + // Delete from database + $region = Regions::find($id); + $region->delete(); + + echo json_encode(['success' => true, 'message' => 'Region deleted successfully']); + } catch (Exception $e) { + echo json_encode(['success' => false, 'message' => 'Failed to delete region']); + } + } + + public function dataForDatatables(Request $request) + { + + + if (is_null($this->user) || !$this->user->can('region.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + $query = Regions::query(); + + if ($request->has('search') && !empty($request->get('search'))) { + $search = $request->get('search'); + $query->where(function ($q) use ($search) { + $q->where('code', 'LIKE', "%$search%"); + $q->orWhere('name', 'LIKE', "%$search%"); + }); + } + + if($request->has('sortOrder') && !empty($request->get('sortOrder'))){ + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + $totalRecords = $query->count(); + + // Apply pagination if provided + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page'); + $size = $request->get('size'); + $offset = ($page - 1) * $size; // Calculate the offset + + $query->skip($offset)->take($size); + } + + // Get the filtered count of records + $filteredRecords = $query->count(); + + // Get the data for the current page + $data = $query->get(); + + // Calculate the page count + $pageCount = ceil($totalRecords / $request->get('size')); + + // Calculate the current page number + $currentPage = 0 + 1; + + // dump($data); + + // Return the response data as a JSON object + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data + ]); + } + + public function export() + { + return Excel::download(new RegionExport, 'region.xlsx'); + } +} diff --git a/app/Http/Controllers/TeamsController.php b/app/Http/Controllers/TeamsController.php new file mode 100644 index 0000000..fa6fbe7 --- /dev/null +++ b/app/Http/Controllers/TeamsController.php @@ -0,0 +1,241 @@ +validated(); + + DB::beginTransaction(); + try { + $teams = Teams::create($validate); + + $users = $request->input('user', []); + + // loop untuk insert data users ke tabel teams_users + foreach ($users as $user) { + TeamsUsers::create([ + 'teams_id' => $teams->id, + 'user_id' => $user + ]); + } + + DB::commit(); + + return redirect() + ->route('basicdata.teams.index') + ->with('success', 'Data saved successfully. '); + } catch (Exception $e) { + + DB::rollBack(); + + return redirect() + ->route('basicdata.teams.create') + ->with('error', 'Failed to save data. '); + } + } + + /** + * Show the specified resource. + */ + public function show($id) + { + return view('lpj::show'); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + $teams = Teams::find($id); + $region = Regions::all(); + $user = User::all(); + $selectedUsers = $teams->teamsUsers->pluck('user_id')->toArray(); + + return view('lpj::teams.form', compact('teams', 'region', 'user', 'selectedUsers')); + } + + /** + * Update the specified resource in storage. + */ + public function update(TeamsRequest $request, $id) + { + $validate = $request->validated(); + + DB::beginTransaction(); + try { + $teams = Teams::findOrFail($id); + + // Update data tim + $teams->update($validate); + $userIds = $request->input('user', []); + + $teams->teamsUsers()->delete(); + + + foreach ($userIds as $userId) { + TeamsUsers::create([ + 'teams_id' => $teams->id, + 'user_id' => $userId + ]); + } + + DB::commit(); + + return redirect() + ->route('basicdata.teams.index') + ->with('success', 'Data updated successfully. '); + } catch (Exception $e) { + + DB::rollBack(); + + return redirect() + ->route('basicdata.teams.create') + ->with('error', 'Failed to update data. '); + } + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + DB::beginTransaction(); + try { + + $teams = Teams::findOrFail($id); + $teams->teamsUsers()->delete(); + + // Hapus tim + $teams->delete(); + + DB::commit(); + + return redirect() + ->route('basicdata.teams.index') + ->with('success', 'Team has been deleted successfully.'); + } catch (Exception $e) { + DB::rollBack(); + + return redirect() + ->route('basicdata.teams.index') + ->with('error', 'Failed to delete team. '); + } + } + + + public function dataForDatatables(Request $request) + { + if (is_null($this->user) || !$this->user->can('debitur.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + $query = Teams::select('teams.id as id', 'teams.name as team_name', 'regions.name as region_name') + ->join('regions', 'teams.regions_id', '=', 'regions.id') + ->leftJoin('teams_users', 'teams.id', '=', 'teams_users.teams_id') + ->leftJoin('users', 'teams_users.user_id', '=', 'users.id') + ->addSelect('users.name as user_name'); + + // search filter + if ($request->has('search') && !empty($request->get('search'))) { + $search = $request->get('search'); + $query->where(function ($q) use ($search) { + $q->where('teams.name', 'LIKE', "%$search%") + ->orWhere('regions.name', 'LIKE', "%$search%") + ->orWhere('users.name', 'LIKE', "%$search%"); + }); + } + + // sorting + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + $totalRecords = $query->count(); + + $size = $request->get('size'); + $pageCount = 1; + + if ($size > 0) { + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page'); + $offset = ($page - 1) * $size; + $query->skip($offset)->take($size); + $filteredRecords = $query->count(); + $pageCount = ceil($totalRecords / $size); + } + + $data = $query->get(); + } else { + $filteredRecords = $totalRecords; + $data = $query->get(); + } + + $currentPage = $request->get('page') ?? 1; + + $formattedData = $data->groupBy('id')->map(function ($group) { + $team = $group->first(); + $team->user_team = $group->map(function ($item) { + return [ + 'nama' => $item->user_name, + // 'role' => $item->role_name, + ]; + })->toArray(); + return $team; + })->values(); + + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $formattedData + ]); + } + + + + +} diff --git a/app/Http/Requests/JenisPenilaianRequest.php b/app/Http/Requests/JenisPenilaianRequest.php new file mode 100644 index 0000000..58562ea --- /dev/null +++ b/app/Http/Requests/JenisPenilaianRequest.php @@ -0,0 +1,42 @@ + 'required|string|max:255', + 'status' => 'nullable|boolean', + 'authorized_at' => 'nullable|datetime', + 'authorized_status' => 'nullable|string|max:1', + 'authorized_by' => 'nullable|exists:users,id', + ]; + + if ($this->method() == 'PUT') { + + $rules['code'] = 'required|string|max:3|unique:jenis_penilaian,code,' . $this->route('id'); + + + } else { + $rules['code'] = 'required|string|max:3|unique:jenis_penilaian,code'; + } + + return $rules; + } + + /** + * Determine if the user is authorized to make this request. + */ + public function authorize(): bool + { + return true; + } +} diff --git a/app/Http/Requests/RegionRequest.php b/app/Http/Requests/RegionRequest.php new file mode 100644 index 0000000..fd9ab1d --- /dev/null +++ b/app/Http/Requests/RegionRequest.php @@ -0,0 +1,38 @@ + 'required|string|max:255', + 'status' => 'nullable|boolean', + 'authorized_at' => 'nullable|datetime', + 'authorized_status' => 'nullable|string|max:1', + 'authorized_by' => 'nullable|exists:users,id', + ]; + + if ($this->method() == 'PUT') { + $rules['code'] = 'required|string|max:3|unique:regions,code,' . $this->id; + } else { + $rules['code'] = 'required|string|max:3|unique:regions,code'; + } + + return $rules; + } + + /** + * Determine if the user is authorized to make this request. + */ + public function authorize(): bool + { + return true; + } +} diff --git a/app/Http/Requests/TeamsRequest.php b/app/Http/Requests/TeamsRequest.php new file mode 100644 index 0000000..0f1be4b --- /dev/null +++ b/app/Http/Requests/TeamsRequest.php @@ -0,0 +1,41 @@ + 'required|string|max:255', + 'status' => 'nullable|boolean', + 'regions_id' => 'nullable|exists:regions,id', + 'user.*' => 'nullable|exists:users,id', + 'authorized_at' => 'nullable|datetime', + 'authorized_status' => 'nullable|string|max:1', + 'authorized_by' => 'nullable|exists:users,id', + + ]; + + if ($this->method() == 'PUT') { + $rules['code'] = 'required|string|max:3|unique:teams,code,' . $this->id; + } else { + $rules['code'] = 'required|string|max:3|unique:teams,code'; + } + + return $rules; + } + + /** + * Determine if the user is authorized to make this request. + */ + public function authorize(): bool + { + return true; + } +} diff --git a/app/Models/JenisPenilaian.php b/app/Models/JenisPenilaian.php index b809c91..f072a82 100644 --- a/app/Models/JenisPenilaian.php +++ b/app/Models/JenisPenilaian.php @@ -4,7 +4,7 @@ namespace Modules\Lpj\Models; use Illuminate\Database\Eloquent\Model; use Modules\Lpj\Database\Factories\JenisPenilaianFactory; - +use Modules\Lpj\Models\Penilaian; class JenisPenilaian extends Model { diff --git a/app/Models/Penilaian.php b/app/Models/Penilaian.php index b3620db..e4d6bdd 100644 --- a/app/Models/Penilaian.php +++ b/app/Models/Penilaian.php @@ -7,7 +7,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Modules\Lpj\Database\Factories\PenilaianFactory; use Modules\Lpj\Models\JenisPenilaian; use Modules\Lpj\Models\Teams; -use Modules\Usermanagement\Models\User; +// use Modules\Usermanagement\Models\User; class Penilaian extends Model { @@ -30,9 +30,9 @@ class Penilaian extends Model return $this->belongsTo(Teams::class, 'team_id', 'id'); } - public function users(){ - return $this->belongsTo(User::class, 'user_id', 'id'); - } + // public function users(){ + // return $this->belongsTo(User::class, 'user_id', 'id'); + // } } diff --git a/app/Models/Regions.php b/app/Models/Regions.php index bfa8e0a..28836b5 100644 --- a/app/Models/Regions.php +++ b/app/Models/Regions.php @@ -5,6 +5,7 @@ namespace Modules\Lpj\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Factories\HasFactory; use Modules\Lpj\Database\Factories\RegionsFactory; +use Modules\Lpj\Models\Teams; class Regions extends Model { @@ -14,13 +15,12 @@ class Regions extends Model * The attributes that are mass assignable. */ protected $table = 'regions'; - + protected $fillable = [ - 'code', 'name', 'status', 'authorized_status', 'authorized_at', 'authorized_by', - 'created_at', 'created_by', 'updated_at', 'updated_by', 'deleted_at', 'deleted_by' + 'code', 'name', 'status', 'authorized_status', 'authorized_at', 'authorized_by' ]; public function teams(){ - return $this->hasMany(Teams::class, 'region_id', 'id'); + return $this->hasMany(Teams::class, 'regions_id', 'id'); } } diff --git a/app/Models/Teams.php b/app/Models/Teams.php index bc9f7fe..0fd48a8 100644 --- a/app/Models/Teams.php +++ b/app/Models/Teams.php @@ -5,6 +5,10 @@ namespace Modules\Lpj\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Factories\HasFactory; use Modules\Lpj\Database\Factories\TeamsFactory; +use Modules\Lpj\Models\TeamsUsers; +use Modules\Lpj\Models\Regions; +use Modules\Lpj\Models\Penilaian; + class Teams extends Model { @@ -13,16 +17,24 @@ class Teams extends Model */ protected $table = 'teams'; protected $fillable = [ - 'region_id', 'code', 'name', 'status', 'authorized_status', 'authorized_at', - 'authorized_by', 'created_at', 'created_by', 'updated_at', 'updated_by', + 'regions_id', 'code', 'name', 'status', 'authorized_status', 'authorized_at', + 'authorized_by', 'created_at', 'created_by', 'updated_at', 'updated_by', 'deleted_at', 'deleted_by' ]; public function regions(){ - return $this->belongsTo(Regions::class, 'region_id', 'id'); + return $this->belongsTo(Regions::class, 'regions_id', 'id'); } public function teamsUsers(){ - return $this->hasMany(TeamsUsers::class, 'team_id', 'id'); + return $this->hasMany(TeamsUsers::class, 'teams_id', 'id'); } + + public function penilaian(){ + return $this->hasMany(Penilaian::class, 'teams_id', 'id'); + } + + + } + diff --git a/app/Models/TeamsUsers.php b/app/Models/TeamsUsers.php index 4704fa9..c98b6d0 100644 --- a/app/Models/TeamsUsers.php +++ b/app/Models/TeamsUsers.php @@ -4,7 +4,7 @@ namespace Modules\Lpj\Models; use Illuminate\Database\Eloquent\Model; use Modules\Lpj\Database\Factories\TeamsUsersFactory; -use Modules\User\Models\User; +// use Modules\User\Models\User; use Modules\Lpj\Models\Teams; class TeamsUsers extends Model @@ -15,16 +15,17 @@ class TeamsUsers extends Model */ protected $table = 'teams_users'; protected $fillable = [ - 'team_id', 'user_id', 'status', 'authorized_status', 'authorized_at', + 'teams_id', 'user_id', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_at', 'created_by', 'updated_at', 'updated_by', 'deleted_at', 'deleted_by' ]; public function team() { - return $this->belongsTo(Teams::class, 'team_id', 'id'); + return $this->belongsTo(Teams::class, 'teams_id', 'id'); } + public function user() { return $this->belongsTo(User::class, 'user_id', 'id'); diff --git a/database/migrations/2024_08_12_023807_create_debitures_table.php b/database/migrations/2024_08_12_023807_create_debitures_table.php new file mode 100644 index 0000000..583c859 --- /dev/null +++ b/database/migrations/2024_08_12_023807_create_debitures_table.php @@ -0,0 +1,54 @@ +id(); + $table->foreignIdFor(Branch::class)->constrained()->onDelete('cascade'); + $table->string('cif', 10)->unique(); + $table->string('name'); + $table->date('registered_at')->nullable(); + $table->string('npwp', 16)->nullable(); + $table->string('nomor_id', 16)->nullable(); + $table->string('email', 100)->nullable(); + $table->string('phone', 15)->nullable(); + $table->string('nomor_rekening', 50)->nullable(); + $table->string('province_code')->nullable()->index(); + $table->string('city_code')->nullable()->index(); + $table->string('district_code')->nullable()->index(); + $table->string('village_code')->nullable()->index(); + $table->string('postal_code', 5)->nullable(); + $table->text('address')->nullable(); + + $table->boolean('status')->default(true)->nullable(); + $table->timestamps(); + $table->timestamp('authorized_at')->nullable(); + $table->char('authorized_status', 1)->nullable(); + $table->softDeletes(); + + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down() + : void + { + Schema::dropIfExists('debitures'); + } + }; diff --git a/database/migrations/2024_09_05_030405_create_teams_table.php b/database/migrations/2024_09_05_030405_create_teams_table.php index 88ae841..8ecffde 100644 --- a/database/migrations/2024_09_05_030405_create_teams_table.php +++ b/database/migrations/2024_09_05_030405_create_teams_table.php @@ -3,7 +3,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -use Mudels\Lpj\Models\Regions; +use Modules\Lpj\Models\Regions; return new class extends Migration @@ -15,7 +15,7 @@ return new class extends Migration { Schema::create('teams', function (Blueprint $table) { $table->id(); - $table->foreignIdFor(Regions::class, 'region_id'); + $table->foreignIdFor(Regions::class)->constrained()->onDelete('cascade'); $table->string('code')->unique()->index(); $table->string('name'); $table->char('status')->nullable(); diff --git a/database/migrations/2024_09_05_030417_create_teams_users_table.php b/database/migrations/2024_09_05_030417_create_teams_users_table.php index 9b4422e..32167ee 100644 --- a/database/migrations/2024_09_05_030417_create_teams_users_table.php +++ b/database/migrations/2024_09_05_030417_create_teams_users_table.php @@ -15,11 +15,9 @@ return new class extends Migration { Schema::create('teams_users', function (Blueprint $table) { $table->id(); - $table->foreignIdFor(Teams::class); - $table->foreignIdFor(Users::class); - - - $table->char('status')->nullable(); + $table->foreignIdFor(Teams::class)->constrained()->onDelete('cascade'); + $table->unsignedBigInteger('user_id'); + $table->boolean('status')->default(true)->nullable(); $table->char('authorized_status', 1)->nullable(); $table->timestamps(); $table->timestamp('authorized_at')->nullable(); diff --git a/database/migrations/2024_09_05_070712_create_penilaian_table.php b/database/migrations/2024_09_05_070712_create_penilaian_table.php index 14d7766..9764f04 100644 --- a/database/migrations/2024_09_05_070712_create_penilaian_table.php +++ b/database/migrations/2024_09_05_070712_create_penilaian_table.php @@ -3,7 +3,8 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -use Modules\Lpj\Models\Penilaian; +use Modules\Lpj\Models\JenisPenilaian; +use Modules\Lpj\Models\Teams; return new class extends Migration { @@ -14,9 +15,9 @@ return new class extends Migration { Schema::create('penilaian', function (Blueprint $table) { $table->id(); - $table->foreignIdFor(Penilaian::class); + $table->foreignIdFor(JenisPenilaian::class); $table->foreignIdFor(Teams::class); - $table->foreignIdFor(Users::class); + $table->unsignedBigInteger('user_id'); $table->datetime('tanggal_kunjungan'); $table->text('keterangan'); $table->char('status'); @@ -28,7 +29,7 @@ return new class extends Migration $table->unsignedBigInteger('updated_by')->nullable(); $table->unsignedBigInteger('deleted_by')->nullable(); $table->unsignedBigInteger('authorized_by')->nullable(); - + }); } diff --git a/module.json b/module.json index 559e479..568f490 100644 --- a/module.json +++ b/module.json @@ -65,17 +65,6 @@ "roles": [ "Administrator" ] - }, - { - "title": "Region", - "path": "", - "icon": "ki-filled ki-some-files text-lg", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "Administrator" - ] } ], "master": [ @@ -193,7 +182,32 @@ "attributes": [], "permission": "", "roles": [] + }, + { + "title": "Region", + "path": "basicdata.region", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Team Penilai", + "path": "basicdata.teams", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Jenis Penilaian", + "path": "basicdata.jenispenilaian", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] } + ] } ], diff --git a/resources/views/jenis_penilaian/form.blade.php b/resources/views/jenis_penilaian/form.blade.php new file mode 100644 index 0000000..ee73abe --- /dev/null +++ b/resources/views/jenis_penilaian/form.blade.php @@ -0,0 +1,64 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection + +@section('content') +
+ +
+ + @if (isset($jenisPenilaian->id)) + @method('PUT') + + @endif + + @csrf +
+
+

+ {{ isset($jenisPenilaian->id) ? 'Edit' : 'Tambah' }} jenis penilaian +

+
+ Back +
+
+
+
+ +
+ + @error('code') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('name') + {{ $message }} + @enderror +
+
+
+ +
+
+
+
+
+@endsection diff --git a/resources/views/jenis_penilaian/index.blade.php b/resources/views/jenis_penilaian/index.blade.php new file mode 100644 index 0000000..4d027a6 --- /dev/null +++ b/resources/views/jenis_penilaian/index.blade.php @@ -0,0 +1,160 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('basicdata.jenispenilaian') }} +@endsection + +@section('content') +
+
+
+

+ Daftar Jenis penilaian +

+ +
+
+
+ + + + + + + + + +
+ + + Code + + + Jenis penilaian + + Action
+
+ + + +
+
+
+@endsection + + + +@push('scripts') + + + +@endpush diff --git a/resources/views/region/create.blade.php b/resources/views/region/create.blade.php new file mode 100644 index 0000000..ed8ca6f --- /dev/null +++ b/resources/views/region/create.blade.php @@ -0,0 +1,61 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection + +@section('content') +
+ @if (isset($region->id)) +
+ + @method('PUT') + @else + + @endif + @csrf +
+
+

+ {{ isset($region->id) ? 'Edit' : 'Tambah' }} region +

+
+ Back +
+
+
+
+ +
+ + @error('code') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('name') + {{ $message }} + @enderror +
+
+
+ +
+
+
+
+
+@endsection diff --git a/resources/views/region/index.blade.php b/resources/views/region/index.blade.php new file mode 100644 index 0000000..2d0bd32 --- /dev/null +++ b/resources/views/region/index.blade.php @@ -0,0 +1,152 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('basicdata.region') }} +@endsection + +@section('content') +
+
+
+

+ Daftar Region +

+ +
+
+
+ + + + + + + + + +
+ + + Code + + + Region + + Action
+
+ +
+
+
+@endsection + + + +@push('scripts') + + + +@endpush + + + diff --git a/resources/views/teams/form.blade.php b/resources/views/teams/form.blade.php new file mode 100644 index 0000000..2070f8c --- /dev/null +++ b/resources/views/teams/form.blade.php @@ -0,0 +1,113 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection + +@section('content') + +
+ +
+ + @if (isset($teams->id)) + @method('PUT') + + @endif + @csrf +
+
+

+ {{ isset($teams->id) ? 'Edit' : 'Tambah' }} Teams +

+
+ Back +
+
+
+
+ +
+ + @error('name') + {{ $message }} + @enderror +
+
+ +
+ +
+ + @error('code') + {{ $message }} + @enderror +
+
+ + +
+ +
+ +
+
+ +
+ +
+ +
+
+ + +
+ +
+ +
+
+
+
+@endsection diff --git a/resources/views/teams/index.blade.php b/resources/views/teams/index.blade.php new file mode 100644 index 0000000..dff81d8 --- /dev/null +++ b/resources/views/teams/index.blade.php @@ -0,0 +1,174 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('basicdata.teams') }} +@endsection + +@section('content') +
+
+
+

+ Daftar Teams +

+
+
+ +
+ +
+
+
+
+ + + + + + + + + + +
+ + + Region Name + + + Anggota Team + + Action
+
+ +
+
+
+@endsection + + + +@push('scripts') + + + +@endpush diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index f39cfcc..b850459 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -267,3 +267,46 @@ $trail->push('Data Permohonan'); }); + + Breadcrumbs::for('basicdata.region', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Region', route('basicdata.region.index')); + }); + Breadcrumbs::for('basicdata.region.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.region'); + $trail->push('Tambah Region', route('basicdata.region.create')); + }); + Breadcrumbs::for('basicdata.region.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.region'); + $trail->push('Edit Region'); + }); + + + Breadcrumbs::for('basicdata.teams', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Team', route('basicdata.teams.index')); + }); + Breadcrumbs::for('basicdata.teams.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.teams'); + $trail->push('Tambah Team', route('basicdata.teams.create')); + }); + + Breadcrumbs::for('basicdata.teams.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.teams'); + $trail->push('Edit Team'); + }); + + + Breadcrumbs::for('basicdata.jenispenilaian', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Penilaian', route('basicdata.jenispenilaian.index')); + }); + Breadcrumbs::for('basicdata.jenispenilaian.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenispenilaian'); + $trail->push('Tambah Jenis Penilaian', route('basicdata.jenispenilaian.create')); + }); + + Breadcrumbs::for('basicdata.jenispenilaian.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenispenilaian'); + $trail->push('Edit Jenis Penilaian'); + }); diff --git a/routes/web.php b/routes/web.php index d1737ef..e79efeb 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,203 +1,279 @@ group(function () { - Route::name('basicdata.')->prefix('basic-data')->group(function () { - Route::name('jenis-fasilitas-kredit.')->prefix('jenis-fasilitas-kredit')->group(function () { - Route::get('restore/{id}', [JenisFasilitasKreditController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisFasilitasKreditController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [JenisFasilitasKreditController::class, 'export'])->name('export'); - }); - Route::resource('jenis-fasilitas-kredit', JenisFasilitasKreditController::class); +Route::middleware(['auth'])->group(function () { - Route::name('jenis-legalitas-jaminan.')->prefix('jenis-legalitas-jaminan')->group(function () { - Route::get('restore/{id}', [JenisLegalitasJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisLegalitasJaminanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [JenisLegalitasJaminanController::class, 'export'])->name('export'); - }); - Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class); - - Route::name('jenis-jaminan.')->prefix('jenis-jaminan')->group(function () { - Route::get('legalitas/{id}', [JenisJaminanController::class, 'legalitasJaminan'])->name('legalitas'); - Route::get('restore/{id}', [JenisJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisJaminanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [JenisJaminanController::class, 'export'])->name('export'); - }); - Route::resource('jenis-jaminan', JenisJaminanController::class); - - Route::name('tujuan-penilaian.')->prefix('tujuan-penilaian')->group(function () { - Route::get('restore/{id}', [TujuanPenilaianController::class, 'restore'])->name('restore'); - Route::get('datatables', [TujuanPenilaianController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [TujuanPenilaianController::class, 'export'])->name('export'); - }); - Route::resource('tujuan-penilaian', TujuanPenilaianController::class); - - Route::name('jenis-aset.')->prefix('jenis-aset')->group(function () { - Route::get('restore/{id}', [JenisAsetController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisAsetController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [JenisAsetController::class, 'export'])->name('export'); - }); - Route::resource('jenis-aset', JenisAsetController::class); - - Route::name('jenis-dokumen.')->prefix('jenis-dokumen')->group(function () { - Route::get('restore/{id}', [JenisDokumenController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisDokumenController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [JenisDokumenController::class, 'export'])->name('export'); - }); - Route::resource('jenis-dokumen', JenisDokumenController::class); - - Route::name('currency.')->prefix('mata-uang')->group(function () { - Route::get('restore/{id}', [CurrencyController::class, 'restore'])->name('restore'); - Route::get('datatables', [CurrencyController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [CurrencyController::class, 'export'])->name('export'); - }); - - Route::resource('mata-uang', CurrencyController::class, [ - 'names' => [ - 'index' => 'currency.index', - 'show' => 'currency.show', - 'create' => 'currency.create', - 'store' => 'currency.store', - 'edit' => 'currency.edit', - 'update' => 'currency.update', - 'destroy' => 'currency.destroy', - ], - ]); - - Route::name('branch.')->prefix('cabang')->group(function () { - Route::get('restore/{id}', [BranchController::class, 'restore'])->name('restore'); - Route::get('datatables', [BranchController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [BranchController::class, 'export'])->name('export'); - }); - - Route::resource('cabang', BranchController::class, [ - 'names' => [ - 'index' => 'branch.index', - 'show' => 'branch.show', - 'create' => 'branch.create', - 'store' => 'branch.store', - 'edit' => 'branch.edit', - 'update' => 'branch.update', - 'destroy' => 'branch.destroy', - ], - ]); - - Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { - Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); - Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); - }); - Route::resource('nilai-plafond', NilaiPlafondController::class); - - Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); - - Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); - - Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { - Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); - Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); - }); - Route::resource('arah-mata-angin', ArahMataAnginController::class); - - - Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { - Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); - Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); - }); - Route::resource('status-permohonan', StatusPermohonanController::class); - }); - - Route::name('permohonan.')->prefix('permohonan')->group(function () { - Route::get('{id}/create', [PermohonanController::class, 'createPermohonan'])->name('create.debitur'); - Route::get('download/{id}', [PermohonanController::class, 'download'])->name('download'); - Route::get('restore/{id}', [PermohonanController::class, 'restore'])->name('restore'); - Route::get('datatables', [PermohonanController::class, 'dataForDatatables']) + /** ROUTE BASIC DATA ***/ + Route::name('basicdata.')->prefix('basic-data')->group(function () { + Route::name('jenis-fasilitas-kredit.')->prefix('jenis-fasilitas-kredit')->group(function () { + Route::get('restore/{id}', [JenisFasilitasKreditController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisFasilitasKreditController::class, 'dataForDatatables']) ->name('datatables'); - Route::get('export', [PermohonanController::class, 'export'])->name('export'); + Route::get('export', [JenisFasilitasKreditController::class, 'export'])->name('export'); }); + Route::resource('jenis-fasilitas-kredit', JenisFasilitasKreditController::class); - Route::resource('permohonan', PermohonanController::class); - - Route::name('debitur.')->prefix('debitur')->group(function () { - Route::get('download/{id}', [DebitureController::class, 'download'])->name('download'); - Route::get('restore/{id}', [DebitureController::class, 'restore'])->name('restore'); - Route::get('datatables', [DebitureController::class, 'dataForDatatables']) + Route::name('jenis-legalitas-jaminan.')->prefix('jenis-legalitas-jaminan')->group(function () { + Route::get('restore/{id}', [JenisLegalitasJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisLegalitasJaminanController::class, 'dataForDatatables']) ->name('datatables'); - Route::get('export', [DebitureController::class, 'export'])->name('export'); + Route::get('export', [JenisLegalitasJaminanController::class, 'export'])->name('export'); + }); + Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class); + Route::name('jenis-jaminan.')->prefix('jenis-jaminan')->group(function () { + Route::get('legalitas/{id}', [JenisJaminanController::class, 'legalitasJaminan'])->name('legalitas'); + Route::get('restore/{id}', [JenisJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisJaminanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [JenisJaminanController::class, 'export'])->name('export'); + }); + Route::resource('jenis-jaminan', JenisJaminanController::class); - Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () { - Route::get('/', [DokumenJaminanController::class, 'index'])->name('index'); - Route::get('create', [DokumenJaminanController::class, 'create'])->name('create'); - Route::get('{jaminan}/edit', [DokumenJaminanController::class, 'edit'])->name('edit'); - Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update'); - Route::post('store', [DokumenJaminanController::class, 'store'])->name('store'); - Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy'); - }); + Route::name('tujuan-penilaian.')->prefix('tujuan-penilaian')->group(function () { + Route::get('restore/{id}', [TujuanPenilaianController::class, 'restore'])->name('restore'); + Route::get('datatables', [TujuanPenilaianController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [TujuanPenilaianController::class, 'export'])->name('export'); + }); + Route::resource('tujuan-penilaian', TujuanPenilaianController::class); - Route::name('pemilik.')->prefix('{id}/pemilik')->group(function () { - Route::get('/', [PemilikJaminanController::class, 'index'])->name('index'); - Route::get('create', [PemilikJaminanController::class, 'create'])->name('create'); - Route::get('{pemilik}/edit', [PemilikJaminanController::class, 'edit'])->name('edit'); - Route::put('{pemilik}', [PemilikJaminanController::class, 'update'])->name('update'); - Route::post('store', [PemilikJaminanController::class, 'store'])->name('store'); - Route::delete('{pemilik}', [PemilikJaminanController::class, 'destroy'])->name('destroy'); - }); + Route::name('jenis-aset.')->prefix('jenis-aset')->group(function () { + Route::get('restore/{id}', [JenisAsetController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisAsetController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [JenisAsetController::class, 'export'])->name('export'); + }); + Route::resource('jenis-aset', JenisAsetController::class); + + Route::name('jenis-dokumen.')->prefix('jenis-dokumen')->group(function () { + Route::get('restore/{id}', [JenisDokumenController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisDokumenController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [JenisDokumenController::class, 'export'])->name('export'); + }); + Route::resource('jenis-dokumen', JenisDokumenController::class); + + Route::name('currency.')->prefix('mata-uang')->group(function () { + Route::get('restore/{id}', [CurrencyController::class, 'restore'])->name('restore'); + Route::get('datatables', [CurrencyController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [CurrencyController::class, 'export'])->name('export'); }); - Route::resource('debitur', DebitureController::class); + Route::resource('mata-uang', CurrencyController::class, [ + 'names' => [ + 'index' => 'currency.index', + 'show' => 'currency.show', + 'create' => 'currency.create', + 'store' => 'currency.store', + 'edit' => 'currency.edit', + 'update' => 'currency.update', + 'destroy' => 'currency.destroy', + ], + ]); + + Route::name('branch.')->prefix('cabang')->group(function () { + Route::get('restore/{id}', [BranchController::class, 'restore'])->name('restore'); + Route::get('datatables', [BranchController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [BranchController::class, 'export'])->name('export'); + }); + + Route::resource('cabang', BranchController::class, [ + 'names' => [ + 'index' => 'branch.index', + 'show' => 'branch.show', + 'create' => 'branch.create', + 'store' => 'branch.store', + 'edit' => 'branch.edit', + 'update' => 'branch.update', + 'destroy' => 'branch.destroy', + ], + ]); + + Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { + Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); + Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); + }); + Route::resource('nilai-plafond', NilaiPlafondController::class); + + Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); + + Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); + + Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { + Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); + Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); + }); + Route::resource('arah-mata-angin', ArahMataAnginController::class); + + + Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { + Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); + Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); + }); + Route::resource('status-permohonan', StatusPermohonanController::class); + + Route::name('region.')->prefix('region')->group(function () { + Route::get('restore/{id}', [RegionController::class, 'restore'])->name('restore'); + Route::get('datatables', [RegionController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [RegionController::class, 'export'])->name('export'); + }); + + + Route::resource('region', RegionController::class, [ + 'names' => [ + 'index' => 'region.index', + 'show' => 'region.show', + 'create' => 'region.create', + 'store' => 'region.store', + 'edit' => 'region.edit', + 'update' => 'region.update', + 'destroy' => 'region.destroy', + ], + ]); + + Route::resource('region', RegionController::class); + + + Route::name('teams.')->prefix('teams')->group(function () { + Route::get('restore/{id}', [TeamsController::class, 'restore'])->name('restore'); + Route::get('datatables', [TeamsController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [TeamsController::class, 'export'])->name('export'); + }); + + Route::resource('teams', TeamsController::class, [ + 'names' => [ + 'index' => 'teams.index', + 'show' => 'teams.show', + 'create' => 'teams.create', + 'store' => 'teams.store', + 'edit' => 'teams.edit', + 'update' => 'teams.update', + 'destroy' => 'teams.destroy', + ], + ]); + + Route::name('jenispenilaian.')->prefix('jenispenilaian')->group(function () { + Route::get('restore/{id}', [JenisPenilaianController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisPenilaianController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [JenisPenilaianController::class, 'export'])->name('export'); + }); + + Route::resource('jenispenilaian', JenisPenilaianController::class, [ + 'names' => [ + 'index' => 'jenispenilaian.index', + 'show' => 'jenispenilaian.show', + 'create' => 'jenispenilaian.create', + 'store' => 'jenispenilaian.store', + 'edit' => 'jenispenilaian.edit', + 'update' => 'jenispenilaian.update', + 'destroy' => 'jenispenilaian.destroy', + ], + ]); + + }); + /** END ROUTE BASIC DATA ***/ + + Route::name('permohonan.')->prefix('permohonan')->group(function () { + Route::get('{id}/create', [PermohonanController::class, 'createPermohonan'])->name('create.debitur'); + Route::get('download/{id}', [PermohonanController::class, 'download'])->name('download'); + Route::get('restore/{id}', [PermohonanController::class, 'restore'])->name('restore'); + Route::get('datatables', [PermohonanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [PermohonanController::class, 'export'])->name('export'); + }); + + Route::resource('permohonan', PermohonanController::class); + + Route::name('debitur.')->prefix('debitur')->group(function () { + Route::get('download/{id}', [DebitureController::class, 'download'])->name('download'); + Route::get('restore/{id}', [DebitureController::class, 'restore'])->name('restore'); + Route::get('datatables', [DebitureController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [DebitureController::class, 'export'])->name('export'); + + + Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () { + Route::get('/', [DokumenJaminanController::class, 'index'])->name('index'); + Route::get('create', [DokumenJaminanController::class, 'create'])->name('create'); + Route::get('{jaminan}/edit', [DokumenJaminanController::class, 'edit'])->name('edit'); + Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update'); + Route::post('store', [DokumenJaminanController::class, 'store'])->name('store'); + Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy'); + }); + + Route::name('pemilik.')->prefix('{id}/pemilik')->group(function () { + Route::get('/', [PemilikJaminanController::class, 'index'])->name('index'); + Route::get('create', [PemilikJaminanController::class, 'create'])->name('create'); + Route::get('{pemilik}/edit', [PemilikJaminanController::class, 'edit'])->name('edit'); + Route::put('{pemilik}', [PemilikJaminanController::class, 'update'])->name('update'); + Route::post('store', [PemilikJaminanController::class, 'store'])->name('store'); + Route::delete('{pemilik}', [PemilikJaminanController::class, 'destroy'])->name('destroy'); + }); + }); + + Route::resource('debitur', DebitureController::class); + + + + + + Route::get('/cities/{province_code}', [DebitureController::class, 'getCities']); + Route::get('/districts/{city_code}', [DebitureController::class, 'getDistricts']); + Route::get('/villages/{district_code}', [DebitureController::class, 'getVillages']); + + +}); -- 2.34.1 From e7d69c4e837976dcd3288f45a59ba0f16936aac9 Mon Sep 17 00:00:00 2001 From: majid Date: Wed, 11 Sep 2024 08:39:12 +0700 Subject: [PATCH 4/4] delete route city, district, vilage --- routes/web.php | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/routes/web.php b/routes/web.php index e79efeb..fc30aa1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -35,7 +35,7 @@ use Modules\Lpj\Http\Controllers\JenisPenilaianController; Route::middleware(['auth'])->group(function () { - /** ROUTE BASIC DATA ***/ + /** ROUTE BASIC DATA ***/ Route::name('basicdata.')->prefix('basic-data')->group(function () { Route::name('jenis-fasilitas-kredit.')->prefix('jenis-fasilitas-kredit')->group(function () { Route::get('restore/{id}', [JenisFasilitasKreditController::class, 'restore'])->name('restore'); @@ -266,14 +266,4 @@ Route::middleware(['auth'])->group(function () { }); Route::resource('debitur', DebitureController::class); - - - - - - Route::get('/cities/{province_code}', [DebitureController::class, 'getCities']); - Route::get('/districts/{city_code}', [DebitureController::class, 'getDistricts']); - Route::get('/villages/{district_code}', [DebitureController::class, 'getVillages']); - - }); -- 2.34.1