From be47e0678a31ca554e1b2b2bb1bb04ce18485561 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Tue, 3 Sep 2024 13:41:05 +0700 Subject: [PATCH 01/68] Update Module Permohonan - Update Automaticly get branch id by user login - change static status permohonan to dynamic and database base - update create permohonan, update selection debiture to table base --- app/Http/Controllers/PermohonanController.php | 45 ++--- app/Http/Requests/JenisJaminanRequest.php | 23 ++- app/Http/Requests/PermohonanRequest.php | 3 +- ...073834_create_permohonan_jaminan_table.php | 38 ++++ resources/views/debitur/edit.blade.php | 12 +- resources/views/permohonan/create.blade.php | 184 ++++++++++++++++++ resources/views/permohonan/form.blade.php | 37 +--- routes/web.php | 2 +- 8 files changed, 266 insertions(+), 78 deletions(-) create mode 100644 database/migrations/2024_08_23_073834_create_permohonan_jaminan_table.php create mode 100644 resources/views/permohonan/create.blade.php diff --git a/app/Http/Controllers/PermohonanController.php b/app/Http/Controllers/PermohonanController.php index d45c873..1392157 100644 --- a/app/Http/Controllers/PermohonanController.php +++ b/app/Http/Controllers/PermohonanController.php @@ -11,6 +11,7 @@ use Modules\Lpj\Models\Branch; use Modules\Lpj\Models\Debiture; use Modules\Lpj\Models\Permohonan; + use Modules\Lpj\Models\StatusPermohonan; use Modules\Lpj\Models\TujuanPenilaian; class PermohonanController extends Controller @@ -24,7 +25,6 @@ public function store(PermohonanRequest $request) { - $validate = $request->validated(); if ($validate) { @@ -37,7 +37,7 @@ } catch (Exception $e) { return redirect() ->route('permohonan.create') - ->with('error', 'Failed to create permohonan'. $e->getMessage()); + ->with('error', 'Failed to create permohonan' . $e->getMessage()); } } else { return redirect() @@ -47,26 +47,19 @@ } } - public function create() + public function create(){ + + return view('lpj::permohonan.create'); + } + + public function createPermohonan($debitur) { $branches = Branch::all(); - $debitures = Debiture::all(); + $debitur = Debiture::find($debitur); $tujuanPenilaian = TujuanPenilaian::all(); - $status = [ - 'order' => 'Order', - 'revisi' => 'Revisi', - 'register' => 'Register', - 'assign' => 'Assign', - 'survey' => 'Survey', - 'finalisasi' => 'Proses Laporan', - 'approved' => 'Diterima', - 'rejected' => 'Ditolak', - 'cancel' => 'Dibatalkan', - 'finished' => 'Selesai', - 'not_started' => 'Belum dimulai', - ]; + $status = StatusPermohonan::all(); - return view('lpj::permohonan.form', compact('branches', 'debitures', 'tujuanPenilaian','status')); + return view('lpj::permohonan.form', compact('branches', 'debitur', 'tujuanPenilaian', 'status')); } public function edit($id) @@ -75,23 +68,11 @@ $branches = Branch::all(); $debitures = Debiture::all(); $tujuanPenilaian = TujuanPenilaian::all(); - $status = [ - 'order' => 'Order', - 'revisi' => 'Revisi', - 'register' => 'Register', - 'assign' => 'Assign', - 'survey' => 'Survey', - 'finalisasi' => 'Proses Laporan', - 'approved' => 'Diterima', - 'rejected' => 'Ditolak', - 'cancel' => 'Dibatalkan', - 'finished' => 'Selesai', - 'not_started' => 'Belum dimulai', - ]; + $status = StatusPermohonan::all(); return view( 'lpj::permohonan.form', - compact('permohonan', 'branches', 'debitures', 'tujuanPenilaian','status'), + compact('permohonan', 'branches', 'debitures', 'tujuanPenilaian', 'status'), ); } diff --git a/app/Http/Requests/JenisJaminanRequest.php b/app/Http/Requests/JenisJaminanRequest.php index 4e2da8f..0295054 100644 --- a/app/Http/Requests/JenisJaminanRequest.php +++ b/app/Http/Requests/JenisJaminanRequest.php @@ -2,6 +2,7 @@ namespace Modules\Lpj\Http\Requests; + use Haruncpi\LaravelIdGenerator\IdGenerator; use Illuminate\Foundation\Http\FormRequest; class JenisJaminanRequest extends FormRequest @@ -12,16 +13,10 @@ public function rules() : array { - $rules = [ + return [ + 'code' => 'required|max:5', 'name' => 'required|max:255', ]; - - if ($this->method() == 'PUT') { - $rules['code'] = 'required|max:50|unique:jenis_jaminan,code,' . $this->id; - } else { - $rules['code'] = 'required|max:50|unique:jenis_jaminan,code'; - } - return $rules; } /** @@ -32,4 +27,16 @@ { return true; } + + public function prepareForValidation() + : void + { + if ($this->method() == 'POST') { + $this->merge([ + 'code' => IdGenerator::generate( + ['table' => 'jenis_jaminan', 'length' => 5, 'prefix' => 'JJ', 'field' => 'code'], + ), + ]); + } + } } diff --git a/app/Http/Requests/PermohonanRequest.php b/app/Http/Requests/PermohonanRequest.php index 5a576dd..e4c4bd8 100644 --- a/app/Http/Requests/PermohonanRequest.php +++ b/app/Http/Requests/PermohonanRequest.php @@ -40,10 +40,11 @@ if (!$this->id) { $this->merge([ 'nomor_registrasi' => IdGenerator::generate( - ['table' => 'permohonan', 'length' => 10, 'prefix'=>'REG', 'field' => 'nomor_registrasi'], + ['table' => 'permohonan', 'length' => 10, 'prefix' => 'REG', 'field' => 'nomor_registrasi'], ), 'tanggal_permohonan' => date('Y-m-d'), 'user_id' => auth()->user()->id, + 'branch_id' => auth()->user()->branch_id, ]); } } diff --git a/database/migrations/2024_08_23_073834_create_permohonan_jaminan_table.php b/database/migrations/2024_08_23_073834_create_permohonan_jaminan_table.php new file mode 100644 index 0000000..ad46f00 --- /dev/null +++ b/database/migrations/2024_08_23_073834_create_permohonan_jaminan_table.php @@ -0,0 +1,38 @@ +id(); + $table->foreignIdFor(Permohonan::class)->constrained('permohonan'); + $table->foreignIdFor(DokumenJaminan::class)->constrained('dokumen_jaminan'); + $table->boolean('status')->default(true)->nullable(); + $table->timestamps(); + $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('permohonan_jaminan'); + } + }; diff --git a/resources/views/debitur/edit.blade.php b/resources/views/debitur/edit.blade.php index a8cca46..8e2935a 100644 --- a/resources/views/debitur/edit.blade.php +++ b/resources/views/debitur/edit.blade.php @@ -10,12 +10,16 @@
- Back + @if(request()->get('from') == 'permohonan') + Back + @else + Back + @endif
diff --git a/resources/views/permohonan/create.blade.php b/resources/views/permohonan/create.blade.php new file mode 100644 index 0000000..eaf9e31 --- /dev/null +++ b/resources/views/permohonan/create.blade.php @@ -0,0 +1,184 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection + +@section('content') +
+
+
+

+ Daftar Debitur +

+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + +
+ + + Cif + + + Nomor Rekening + + + Debitur + + + Cabang + + + Email + + + Phone + + + Alamat + + Action
+
+ +
+
+
+@endsection + +@push('scripts') + + + +@endpush diff --git a/resources/views/permohonan/form.blade.php b/resources/views/permohonan/form.blade.php index 091c4d5..8dbe82f 100644 --- a/resources/views/permohonan/form.blade.php +++ b/resources/views/permohonan/form.blade.php @@ -50,33 +50,6 @@
-
- -
- - @error('branch_id') - {{ $message }} - @enderror -
-
-
+ @endif
- + @error('name') {{ $message }} @enderror From 3a787fb1767b46407856539f95e7c2a763481e63 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 4 Sep 2024 20:27:13 +0700 Subject: [PATCH 04/68] Update Module Jenis Jaminan - Penambahan Slug - Penambahan Funtcion to get legalitas jaminan by id jenis jaminan --- .../Controllers/JenisJaminanController.php | 18 ++++++-- app/Http/Requests/JenisJaminanRequest.php | 16 +++++-- app/Models/JenisJaminan.php | 4 +- ...9_04_082059_update_jenis_jaminan_table.php | 28 ++++++++++++ .../views/jenis_jaminan/create.blade.php | 44 ++++++++++++++----- routes/web.php | 1 + 6 files changed, 90 insertions(+), 21 deletions(-) create mode 100644 database/migrations/2024_09_04_082059_update_jenis_jaminan_table.php diff --git a/app/Http/Controllers/JenisJaminanController.php b/app/Http/Controllers/JenisJaminanController.php index f9736d2..e1cbe82 100644 --- a/app/Http/Controllers/JenisJaminanController.php +++ b/app/Http/Controllers/JenisJaminanController.php @@ -9,6 +9,7 @@ use Modules\Lpj\Exports\JenisJaminanExport; use Modules\Lpj\Http\Requests\JenisJaminanRequest; use Modules\Lpj\Models\JenisJaminan; + use Modules\Lpj\Models\JenisLegalitasJaminan; class JenisJaminanController extends Controller { @@ -40,13 +41,15 @@ public function create() { - return view('lpj::jenis_jaminan.create'); + $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); + return view('lpj::jenis_jaminan.create', compact('jenisLegalitasJaminan')); } public function edit($id) { - $jenisJaminan = JenisJaminan::find($id); - return view('lpj::jenis_jaminan.create', compact('jenisJaminan')); + $jenisJaminan = JenisJaminan::find($id); + $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); + return view('lpj::jenis_jaminan.create', compact('jenisJaminan', 'jenisLegalitasJaminan')); } public function update(JenisJaminanRequest $request, $id) @@ -147,4 +150,13 @@ { return Excel::download(new JenisJaminanExport, 'jenis_jaminan.xlsx'); } + + public function legalitasJaminan($id) + { + $jenisJaminan = JenisJaminan::find($id); + $legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id; + + $legalitas = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get(); + echo json_encode($legalitas); + } } diff --git a/app/Http/Requests/JenisJaminanRequest.php b/app/Http/Requests/JenisJaminanRequest.php index 0295054..6f0325c 100644 --- a/app/Http/Requests/JenisJaminanRequest.php +++ b/app/Http/Requests/JenisJaminanRequest.php @@ -2,8 +2,9 @@ namespace Modules\Lpj\Http\Requests; - use Haruncpi\LaravelIdGenerator\IdGenerator; + use daengdeni\LaravelIdGenerator\IdGenerator; use Illuminate\Foundation\Http\FormRequest; + use Illuminate\Support\Str; class JenisJaminanRequest extends FormRequest { @@ -14,8 +15,10 @@ : array { return [ - 'code' => 'required|max:5', - 'name' => 'required|max:255', + 'code' => 'required|max:5', + 'name' => 'required|max:255', + 'slug' => 'required|max:255', + 'jenis_legalitas_jaminan_id' => 'nullable', ]; } @@ -35,8 +38,13 @@ $this->merge([ 'code' => IdGenerator::generate( ['table' => 'jenis_jaminan', 'length' => 5, 'prefix' => 'JJ', 'field' => 'code'], - ), + ) ]); } + + $this->merge([ + 'jenis_legalitas_jaminan_id' => json_encode($this->jenis_legalitas_jaminan_id), + 'slug' => Str::slug($this->name), + ]); } } diff --git a/app/Models/JenisJaminan.php b/app/Models/JenisJaminan.php index 1820e50..43ab899 100644 --- a/app/Models/JenisJaminan.php +++ b/app/Models/JenisJaminan.php @@ -2,10 +2,8 @@ namespace Modules\Lpj\Models; - use Modules\Lpj\Database\Factories\JenisJaminanFactory; - class JenisJaminan extends Base { protected $table = 'jenis_jaminan'; - protected $fillable = ['code', 'name']; + protected $fillable = ['code', 'name','slug','jenis_legalitas_jaminan_id']; } diff --git a/database/migrations/2024_09_04_082059_update_jenis_jaminan_table.php b/database/migrations/2024_09_04_082059_update_jenis_jaminan_table.php new file mode 100644 index 0000000..0f96b67 --- /dev/null +++ b/database/migrations/2024_09_04_082059_update_jenis_jaminan_table.php @@ -0,0 +1,28 @@ +string('jenis_legalitas_jaminan_id')->nullable()->after('slug'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('jenis_jaminan', function (Blueprint $table) { + $table->dropColumn('jenis_legalitas_jaminan_id'); + }); + } +}; diff --git a/resources/views/jenis_jaminan/create.blade.php b/resources/views/jenis_jaminan/create.blade.php index e627502..ed04b81 100644 --- a/resources/views/jenis_jaminan/create.blade.php +++ b/resources/views/jenis_jaminan/create.blade.php @@ -24,28 +24,50 @@
-
- -
- - @error('code') - {{ $message }} - @enderror + @if(isset($jenisJaminan->id)) +
+ +
+ + @error('code') + {{ $message }} + @enderror +
-
+ @endif
- + @error('name') {{ $message }} @enderror
+ +
+ +
+ @foreach($jenisLegalitasJaminan as $row) + + @endforeach +
+
+ +@push('scripts') + +@endpush From df9b68ae4684908ee4c0a5128cfb9ec0fd71d7fb Mon Sep 17 00:00:00 2001 From: majid Date: Thu, 5 Sep 2024 14:43:05 +0700 Subject: [PATCH 09/68] 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": [ From a51d5fbeff77cbc6b3c037b3516a7306fc955faf Mon Sep 17 00:00:00 2001 From: majid Date: Fri, 6 Sep 2024 08:50:57 +0700 Subject: [PATCH 10/68] 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'); } } From 797cf6bb5bacfb7e81ff9e62748f5780a78587c7 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Tue, 10 Sep 2024 17:53:46 +0700 Subject: [PATCH 11/68] update Module Dokumen Jaminan --- .../Controllers/DokumenJaminanController.php | 54 +++++-- .../Requests/DetailDokumenJaminanRequest.php | 43 +++++ app/Http/Requests/DokumenJaminanRequest.php | 4 - app/Models/DetailDokumenJaminan.php | 34 ++++ app/Models/DokumenJaminan.php | 8 - ...5_030400_create_dokumen_jaminan_table.php} | 4 - ...10_create_detail_dokumen_jaminan_table.php | 44 ++++++ .../debitur/components/dokumen.blade.php | 148 ++++++++---------- .../debitur/components/jaminan.blade.php | 9 +- 9 files changed, 231 insertions(+), 117 deletions(-) create mode 100644 app/Http/Requests/DetailDokumenJaminanRequest.php create mode 100644 app/Models/DetailDokumenJaminan.php rename database/migrations/{2024_08_20_090400_create_dokumen_jaminan_table.php => 2024_09_05_030400_create_dokumen_jaminan_table.php} (88%) create mode 100644 database/migrations/2024_09_05_035110_create_detail_dokumen_jaminan_table.php diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index 1907fbf..520c20e 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -4,12 +4,14 @@ use App\Http\Controllers\Controller; use Exception; + use Illuminate\Support\Facades\DB; use Modules\Location\Models\City; use Modules\Location\Models\District; use Modules\Location\Models\Province; use Modules\Location\Models\Village; use Modules\Lpj\Http\Requests\DokumenJaminanRequest; use Modules\Lpj\Models\Debiture; + use Modules\Lpj\Models\DetailDokumenJaminan; use Modules\Lpj\Models\DokumenJaminan; use Modules\Lpj\Models\JenisJaminan; use Modules\Lpj\Models\JenisLegalitasJaminan; @@ -36,8 +38,10 @@ $debitur = Debiture::find($id); $validate = $request->validated(); + if ($validate) { try { + DB::beginTransaction(); $validate['debiture_id'] = $id; if ($validate['pemilik_jaminan_id'] == 0) { @@ -61,22 +65,54 @@ $validate['pemilik_jaminan_id'] = $pemilikJaminan->id; } - if ($request->hasFile('dokumen_jaminan')) { - $file = $request->file('dokumen_jaminan'); - $file_name = $file->getClientOriginalName(); - $file->storeAs('public/jaminan/' . $debitur->id, $file_name); - $validate['dokumen_jaminan'] = 'jaminan/' . $debitur->id . '/' . $file_name; + $document = DokumenJaminan::create($validate); + + try { + + foreach ($request->dokumen_jaminan as $key => $value) { + $file_name = $value->getClientOriginalName(); + + if ($file_name) { + try { + $file_name = $value->getClientOriginalName(); + $value->storeAs( + 'public/jaminan/' . $debitur->id . '/' . $document->id . '/', + $file_name + ); + + $detail = [ + 'dokumen_jaminan_id' => $document->id, + 'jenis_legalitas_jaminan_id' => $request->jenis_legalitas_jaminan_id[$key], + 'dokumen_jaminan' => 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name, + 'name' => $request->name[$key], + 'keterangan' => $request->keterangan[$key], + ]; + DetailDokumenJaminan::create($detail); + } catch (Exception $e) { + DB::rollBack(); + return redirect()->route('debitur.jaminan.index', $id)->with( + 'error', + 'Gagal upload file dokumen jaminan '. $key. ': '. $e->getMessage(), + ); + } + } + } + DB::commit(); + }catch (Exception $e) { + DB::rollBack(); + return redirect()->route('debitur.jaminan.index', $id)->with( + 'error', + 'gg'.$e->getMessage(), + ); } - - DokumenJaminan::create($validate); - return redirect()->route('debitur.jaminan.index', $id)->with( 'success', 'Dokumen Jaminan berhasil ditambahkan', ); } catch (Exception $e) { - return redirect()->route('debitur.jaminan.index', $id)->with('error', $e->getMessage()); + DB::rollBack(); + return redirect()->route('debitur.jaminan.index', $id)->with('error','ggl'. $e->getMessage()); } } } diff --git a/app/Http/Requests/DetailDokumenJaminanRequest.php b/app/Http/Requests/DetailDokumenJaminanRequest.php new file mode 100644 index 0000000..4cb22ce --- /dev/null +++ b/app/Http/Requests/DetailDokumenJaminanRequest.php @@ -0,0 +1,43 @@ + 'required|exists:debitures,id', + 'pemilik_jaminan_id' => 'required', + 'jenis_jaminan_id' => 'required', + 'jenis_legalitas_jaminan_id' => 'required', + 'dokumen_jaminan' => 'nullable|file|mimes:pdf', + 'keterangan' => 'nullable|string|max:255', + 'province_code' => 'nullable|exists:provinces,code', + 'city_code' => 'nullable|exists:cities,code', + 'district_code' => 'nullable|exists:districts,code', + 'village_code' => 'nullable|exists:villages,code', + 'name' => 'required', + 'address' => 'nullable|string', + 'postal_code' => 'nullable|string|max:10', + 'status' => 'nullable|boolean', + ]; + + return $rules; + } + + /** + * Determine if the user is authorized to make this request. + */ + public function authorize() + : bool + { + return true; + } + } diff --git a/app/Http/Requests/DokumenJaminanRequest.php b/app/Http/Requests/DokumenJaminanRequest.php index 4cb22ce..bc5cad4 100644 --- a/app/Http/Requests/DokumenJaminanRequest.php +++ b/app/Http/Requests/DokumenJaminanRequest.php @@ -16,14 +16,10 @@ 'debiture_id' => 'required|exists:debitures,id', 'pemilik_jaminan_id' => 'required', 'jenis_jaminan_id' => 'required', - 'jenis_legalitas_jaminan_id' => 'required', - 'dokumen_jaminan' => 'nullable|file|mimes:pdf', - 'keterangan' => 'nullable|string|max:255', 'province_code' => 'nullable|exists:provinces,code', 'city_code' => 'nullable|exists:cities,code', 'district_code' => 'nullable|exists:districts,code', 'village_code' => 'nullable|exists:villages,code', - 'name' => 'required', 'address' => 'nullable|string', 'postal_code' => 'nullable|string|max:10', 'status' => 'nullable|boolean', diff --git a/app/Models/DetailDokumenJaminan.php b/app/Models/DetailDokumenJaminan.php new file mode 100644 index 0000000..e164ea5 --- /dev/null +++ b/app/Models/DetailDokumenJaminan.php @@ -0,0 +1,34 @@ +belongsTo(JenisLegalitasJaminan::class, 'jenis_legalitas_jaminan_id', 'id'); + } + + public function dokumenJaminan(){ + return $this->belongsTo(DokumenJaminan::class, 'dokumen_jaminan_id', 'id'); + } + } diff --git a/app/Models/DokumenJaminan.php b/app/Models/DokumenJaminan.php index 83886f6..274f3c8 100644 --- a/app/Models/DokumenJaminan.php +++ b/app/Models/DokumenJaminan.php @@ -16,10 +16,6 @@ 'permohonan_id', 'pemilik_jaminan_id', 'jenis_jaminan_id', - 'jenis_legalitas_jaminan_id', - 'name', - 'dokumen_jaminan', - 'keterangan', 'province_code', 'city_code', 'district_code', @@ -64,10 +60,6 @@ return $this->belongsTo(JenisJaminan::class, 'jenis_jaminan_id', 'id'); } - public function jenisLegalitasJaminan(){ - return $this->belongsTo(JenisLegalitasJaminan::class, 'jenis_legalitas_jaminan_id', 'id'); - } - public function permohonan(){ return $this->belongsTo(Permohonan::class, 'permohonan_id', 'id'); } diff --git a/database/migrations/2024_08_20_090400_create_dokumen_jaminan_table.php b/database/migrations/2024_09_05_030400_create_dokumen_jaminan_table.php similarity index 88% rename from database/migrations/2024_08_20_090400_create_dokumen_jaminan_table.php rename to database/migrations/2024_09_05_030400_create_dokumen_jaminan_table.php index 979d973..2e663c9 100644 --- a/database/migrations/2024_08_20_090400_create_dokumen_jaminan_table.php +++ b/database/migrations/2024_09_05_030400_create_dokumen_jaminan_table.php @@ -18,20 +18,16 @@ use Illuminate\Support\Facades\Schema; { Schema::create('dokumen_jaminan', function (Blueprint $table) { $table->id(); - $table->string('name'); $table->foreignIdFor(Debiture::class)->constrained('debitures')->onDelete('cascade'); $table->foreignIdFor(Permohonan::class)->nullable()->constrained('permohonan')->onDelete('cascade'); $table->foreignIdFor(JenisJaminan::class)->constrained('jenis_jaminan')->onDelete('cascade'); $table->foreignIdFor(PemilikJaminan::class)->constrained('pemilik_jaminan')->onDelete('cascade'); - $table->foreignIdFor(JenisLegalitasJaminan::class)->constrained('jenis_legalitas_jaminan')->onDelete('cascade'); $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->string('dokumen_jaminan')->nullable(); - $table->string('keterangan')->nullable(); $table->boolean('status')->default(true)->nullable(); $table->timestamps(); diff --git a/database/migrations/2024_09_05_035110_create_detail_dokumen_jaminan_table.php b/database/migrations/2024_09_05_035110_create_detail_dokumen_jaminan_table.php new file mode 100644 index 0000000..cef5294 --- /dev/null +++ b/database/migrations/2024_09_05_035110_create_detail_dokumen_jaminan_table.php @@ -0,0 +1,44 @@ +id(); + $table->string('name'); + $table->foreignIdFor(DokumenJaminan::class)->constrained('dokumen_jaminan')->onDelete('cascade'); + $table->foreignIdFor(JenisLegalitasJaminan::class)->constrained('jenis_legalitas_jaminan')->onDelete('cascade'); + $table->string('dokumen_jaminan')->nullable(); + $table->string('keterangan')->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('detail_dokumen_jaminan'); + } +}; diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index 5c77732..67063bf 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -73,67 +73,9 @@ @enderror
-
- -
- - @error('jenis_legalitas_jaminan_id') - {{ $message }} - @enderror -
-
-
- -
- - @error('name') - {{ $message }} - @enderror -
-
+
-
- -
- - @if(isset($document->dokumen_jaminan)) - {{ basename($document->dokumen_jaminan) }} - - @endif - @error('dokumen_jaminan') - {{ $message }} - @enderror -
-
- -
- -
- - @error('keterangan') - {{ $message }} - @enderror -
@@ -155,7 +97,8 @@ {{ $province->name }} @endif - ; @endforeach + ; + @endforeach @error('province_code') {{ $message }} @@ -253,29 +196,66 @@ @push('scripts') @endpush diff --git a/resources/views/debitur/components/jaminan.blade.php b/resources/views/debitur/components/jaminan.blade.php index d5009fc..4cfeb65 100644 --- a/resources/views/debitur/components/jaminan.blade.php +++ b/resources/views/debitur/components/jaminan.blade.php @@ -19,14 +19,7 @@
-
- - {{ $document->name }} - - - {{ $document->jenisJaminan->name }} | {{ $document->jenisLegalitasJaminan->name }} - -
+ + +@endsection + +@push('scripts') + +@endpush diff --git a/resources/views/penilaian/form.blade.php b/resources/views/penilaian/form.blade.php index 4112b0a..63b642c 100644 --- a/resources/views/penilaian/form.blade.php +++ b/resources/views/penilaian/form.blade.php @@ -27,6 +27,10 @@

Data Permohonan

+
+ + Back +
@@ -330,7 +334,7 @@ Surveyor yang di tunjuk
- @@ -414,56 +418,65 @@
-