From c4d8bfb4d93d2526ffcc1c939c475e756837fe09 Mon Sep 17 00:00:00 2001 From: annajwasz Date: Sat, 17 May 2025 11:08:50 +0700 Subject: [PATCH] fix testing --- app/Filament/Pages/ProgresDataPage.php | 89 ++++++++-- app/Filament/Resources/FormulirResource.php | 3 +- app/Filament/Resources/HasilResource.php | 73 +------- .../HasilResource/Pages/HasilAkreditasiA.php | 18 +- .../HasilResource/Pages/HasilAkreditasiB.php | 18 +- .../HasilResource/Pages/HasilAkreditasiC.php | 18 +- app/Filament/Resources/KriteriaResource.php | 2 + app/Filament/Resources/ParameterResource.php | 17 +- app/Filament/Resources/PengumumanResource.php | 134 +++++++------- .../Resources/SubKriteriaResource.php | 2 + app/Models/Pengumuman.php | 44 ++--- app/Models/parameter.php | 10 ++ ...5_02_20_222431_create_parameters_table.php | 2 +- ..._02_20_222432_create_pengumumans_table.php | 24 --- database/seeders/KriteriaSeeder.php | 19 +- database/seeders/SubKriteriaSeeder.php | 72 +++++--- resources/views/surat/keterangan.blade.php | 165 ++++++++++++++++++ 17 files changed, 438 insertions(+), 272 deletions(-) delete mode 100644 database/migrations/2025_02_20_222432_create_pengumumans_table.php create mode 100644 resources/views/surat/keterangan.blade.php diff --git a/app/Filament/Pages/ProgresDataPage.php b/app/Filament/Pages/ProgresDataPage.php index caf6f1f2..7b2633cb 100644 --- a/app/Filament/Pages/ProgresDataPage.php +++ b/app/Filament/Pages/ProgresDataPage.php @@ -3,12 +3,16 @@ namespace App\Filament\Pages; use App\Models\Parameter; +use App\Models\Mahasiswa; use Filament\Pages\Page; use Filament\Infolists\Infolist; use Filament\Infolists\Components\Section; use Filament\Infolists\Components\TextEntry; use Filament\Infolists\Components\Grid; use Filament\Navigation\NavigationItem; +use Filament\Actions\Action; +use Barryvdh\DomPDF\Facade\Pdf; +use Illuminate\Support\Facades\Storage; class ProgresDataPage extends Page { @@ -27,7 +31,46 @@ public function getTitle(): string public function infolist(Infolist $infolist): Infolist { $user = auth()->user(); - $data = Parameter::where('mahasiswa_id', $user->id)->first(); + + // Cari data mahasiswa berdasarkan user_id + $mahasiswa = Mahasiswa::where('user_id', $user->id)->first(); + + // Jika mahasiswa ditemukan, cari data parameter + $data = $mahasiswa ? Parameter::where('mahasiswa_id', $mahasiswa->id)->first() : null; + + // Siapkan state untuk infolist + $state = [ + 'status' => 'Belum Mengisi Form', + 'hasil' => 'Belum Ada Hasil', + 'keterangan' => 'Silahkan lengkapi form pendaftaran KIP-K terlebih dahulu.' + ]; + + // Jika data ada, update state sesuai data di database + if ($data) { + $state['status'] = match($data->status) { + 'valid' => 'Berkas Valid', + 'tidak_valid' => 'Berkas Tidak Valid', + 'belum_validasi' => 'Belum Divalidasi', + default => 'Belum Mengisi Form' + }; + + $state['hasil'] = match($data->hasil) { + 'Diterima' => 'Diterima', + 'Tidak Diterima' => 'Tidak Diterima', + default => 'Belum Ada Hasil' + }; + + $state['keterangan'] = match($data->status) { + 'valid' => match($data->hasil) { + 'Diterima' => 'Selamat! Anda telah diterima sebagai penerima KIP-K. Silahkan cek pengumuman resmi untuk informasi lebih lanjut.', + 'Tidak Diterima' => 'Mohon maaf, Anda belum berhasil menjadi penerima KIP-K. Tetap semangat dan jangan menyerah!', + default => 'Berkas Anda telah divalidasi. Hasil seleksi akan diumumkan segera.' + }, + 'tidak_valid' => "Berkas Anda tidak valid. Alasan: {$data->alasan_tidak_valid}", + 'belum_validasi' => 'Berkas Anda sedang dalam proses validasi. Mohon tunggu informasi selanjutnya.', + default => 'Silahkan lengkapi form pendaftaran KIP-K terlebih dahulu.' + }; + } return $infolist ->schema([ @@ -39,18 +82,17 @@ public function infolist(Infolist $infolist): Infolist ->label('Status Berkas') ->badge() ->color(fn (string $state): string => match ($state) { - 'valid' => 'success', - 'tidak_valid' => 'danger', - 'belum_validasi' => 'warning', + 'Berkas Valid' => 'success', + 'Berkas Tidak Valid' => 'danger', + 'Belum Divalidasi' => 'warning', default => 'gray', }), TextEntry::make('hasil') ->label('Hasil Seleksi') ->badge() ->color(fn (string $state): string => match ($state) { - 'Layak' => 'success', - 'Dipertimbangkan' => 'warning', - 'Tidak Layak' => 'danger', + 'Diterima' => 'success', + 'Tidak Diterima' => 'danger', default => 'gray', }), ]), @@ -63,11 +105,34 @@ public function infolist(Infolist $infolist): Infolist ->columnSpanFull(), ]), ]) - ->state([ - 'status' => $data?->status ?? 'belum_validasi', - 'hasil' => $data?->hasil ?? 'Belum Ada Hasil', - 'keterangan' => $data?->keterangan ?? 'Data Anda sedang dalam proses validasi', - ]); + ->state($state); + } + + protected function getHeaderActions(): array + { + $user = auth()->user(); + $mahasiswa = Mahasiswa::with(['prodi', 'jurusan'])->where('user_id', $user->id)->first(); + $data = $mahasiswa ? Parameter::where('mahasiswa_id', $mahasiswa->id)->first() : null; + + if ($data && $data->status === 'valid' && $data->hasil === 'Diterima') { + return [ + Action::make('exportSurat') + ->label('Download Surat Keterangan') + ->icon('heroicon-o-document-arrow-down') + ->action(function () use ($mahasiswa) { + $pdf = PDF::loadView('surat.keterangan', [ + 'mahasiswa' => $mahasiswa, + 'tanggal' => now()->format('Y-m-d'), + ]); + + return response()->streamDownload(function () use ($pdf) { + echo $pdf->output(); + }, 'surat-keterangan-kipk.pdf'); + }) + ]; + } + + return []; } public static function shouldRegisterNavigation(): bool diff --git a/app/Filament/Resources/FormulirResource.php b/app/Filament/Resources/FormulirResource.php index 2322027e..de615a7f 100644 --- a/app/Filament/Resources/FormulirResource.php +++ b/app/Filament/Resources/FormulirResource.php @@ -61,7 +61,8 @@ public static function table(Table $table): Table TextColumn::make('nama'), TextColumn::make('tgl_pembuatan') ->label('Tanggal'), - TextColumn::make('kuota'), + TextColumn::make('kuota') + ->visible(fn () => !Auth::user()->hasRole('mahasiswa')), TextColumn::make('status') ->badge() ->color(fn (string $state): string => match ($state) { diff --git a/app/Filament/Resources/HasilResource.php b/app/Filament/Resources/HasilResource.php index f92e7d11..41912b3f 100644 --- a/app/Filament/Resources/HasilResource.php +++ b/app/Filament/Resources/HasilResource.php @@ -70,64 +70,6 @@ public static function table(Table $table): Table ->url(fn () => route('filament.admin.resources.hasil-penilaian.akreditasi-c')) ->color('danger') ->icon('heroicon-o-bookmark'), - - // Tables\Actions\Action::make('setKuota') - // ->label('Set Kuota Penerimaan') - // ->form([ - // TextInput::make('kuota') - // ->label('Jumlah Kuota') - // ->numeric() - // ->required() - // ->minValue(1) - // ->helperText('Masukkan jumlah kuota penerimaan. Hanya mahasiswa dengan nilai tertinggi dan berkas valid yang akan diterima.'), - // ]) - // ->action(function (array $data): void { - // DB::beginTransaction(); - // try { - // // Reset semua hasil terlebih dahulu - // Parameter::query()->update(['hasil' => 'Tidak Layak']); - - // // Ambil semua data parameter yang valid dan urutkan berdasarkan total nilai - // $validParameters = Parameter::where('status', 'valid') - // ->orderBy('total_nilai', 'desc') - // ->get(); - - // $kuota = (int) $data['kuota']; - // $index = 0; - - // foreach ($validParameters as $parameter) { - // // Gunakan update langsung ke database untuk memastikan perubahan tersimpan - // if ($index < $kuota) { - // DB::table('parameters') - // ->where('id', $parameter->id) - // ->update(['hasil' => 'Layak']); - // } elseif ($index < ($kuota + 3)) { - // DB::table('parameters') - // ->where('id', $parameter->id) - // ->update(['hasil' => 'Dipertimbangkan']); - // } - // $index++; - // } - - // DB::commit(); - - // Notification::make() - // ->title("Berhasil mengatur kuota penerimaan untuk {$kuota} mahasiswa") - // ->success() - // ->send(); - // } catch (\Exception $e) { - // DB::rollBack(); - // Notification::make() - // ->title('Terjadi kesalahan: ' . $e->getMessage()) - // ->danger() - // ->send(); - // } - // }) - // ->requiresConfirmation() - // ->modalHeading('Set Kuota Penerimaan') - // ->modalDescription('Apakah Anda yakin ingin mengatur kuota penerimaan? Tindakan ini akan mengubah status kelayakan semua mahasiswa.') - // ->modalSubmitActionLabel('Ya, Set Kuota') - // ->successNotificationTitle('Kuota berhasil diatur'), ]) ->modifyQueryUsing(fn ($query) => $query->where('status', 'valid')) ->columns([ @@ -165,24 +107,17 @@ public static function table(Table $table): Table ->label('Hasil') ->badge() ->color(fn (string $state): string => match ($state) { - 'Layak' => 'success', - 'Dipertimbangkan' => 'warning', - 'Tidak Layak' => 'danger', + 'Diterima' => 'success', + 'Tidak Diterima' => 'danger', default => 'gray', - }) - ->formatStateUsing(fn (string $state): string => match ($state) { - 'Layak' => 'Diterima', - 'Tidak Layak' => 'Tidak Diterima', - default => $state, }), ]) ->defaultSort('total_nilai', 'desc') ->filters([ Tables\Filters\SelectFilter::make('hasil') ->options([ - 'Layak' => 'Layak', - 'Dipertimbangkan' => 'Dipertimbangkan', - 'Tidak Layak' => 'Tidak Layak', + 'Diterima' => 'Diterima', + 'Tidak Diterima' => 'Tidak Diterima', ]), ]); } diff --git a/app/Filament/Resources/HasilResource/Pages/HasilAkreditasiA.php b/app/Filament/Resources/HasilResource/Pages/HasilAkreditasiA.php index 050f0c8d..2766947f 100644 --- a/app/Filament/Resources/HasilResource/Pages/HasilAkreditasiA.php +++ b/app/Filament/Resources/HasilResource/Pages/HasilAkreditasiA.php @@ -38,7 +38,7 @@ public function table(Table $table): Table // Reset hasil untuk akreditasi A Parameter::whereHas('mahasiswa.prodi', function ($query) { $query->where('akreditasi', 'A'); - })->update(['hasil' => 'Tidak Layak']); + })->update(['hasil' => 'Tidak Diterima']); // Ambil data parameter yang valid dengan akreditasi A $validParameters = Parameter::where('status', 'valid') @@ -55,11 +55,7 @@ public function table(Table $table): Table if ($index < $kuota) { DB::table('parameters') ->where('id', $parameter->id) - ->update(['hasil' => 'Layak']); - } elseif ($index < ($kuota + 3)) { - DB::table('parameters') - ->where('id', $parameter->id) - ->update(['hasil' => 'Dipertimbangkan']); + ->update(['hasil' => 'Diterima']); } $index++; } @@ -139,9 +135,8 @@ public function table(Table $table): Table ->label('Hasil') ->badge() ->color(fn (string $state): string => match ($state) { - 'Layak' => 'success', - 'Dipertimbangkan' => 'warning', - 'Tidak Layak' => 'danger', + 'Diterima' => 'success', + 'Tidak Diterima' => 'danger', default => 'gray', }), ]) @@ -149,9 +144,8 @@ public function table(Table $table): Table ->filters([ \Filament\Tables\Filters\SelectFilter::make('hasil') ->options([ - 'Layak' => 'Layak', - 'Dipertimbangkan' => 'Dipertimbangkan', - 'Tidak Layak' => 'Tidak Layak', + 'Diterima' => 'success', + 'Tidak Diterima' => 'danger', ]), ]); } diff --git a/app/Filament/Resources/HasilResource/Pages/HasilAkreditasiB.php b/app/Filament/Resources/HasilResource/Pages/HasilAkreditasiB.php index d888dc90..2ad332a9 100644 --- a/app/Filament/Resources/HasilResource/Pages/HasilAkreditasiB.php +++ b/app/Filament/Resources/HasilResource/Pages/HasilAkreditasiB.php @@ -39,7 +39,7 @@ public function table(Table $table): Table // Reset hasil untuk akreditasi B Parameter::whereHas('mahasiswa.prodi', function ($query) { $query->where('akreditasi', 'B'); - })->update(['hasil' => 'Tidak Layak']); + })->update(['hasil' => 'Tidak Diterima']); // Ambil data parameter yang valid dengan akreditasi B $validParameters = Parameter::where('status', 'valid') @@ -56,11 +56,7 @@ public function table(Table $table): Table if ($index < $kuota) { DB::table('parameters') ->where('id', $parameter->id) - ->update(['hasil' => 'Layak']); - } elseif ($index < ($kuota + 3)) { - DB::table('parameters') - ->where('id', $parameter->id) - ->update(['hasil' => 'Dipertimbangkan']); + ->update(['hasil' => 'Diterima']); } $index++; } @@ -140,9 +136,8 @@ public function table(Table $table): Table ->label('Hasil') ->badge() ->color(fn (string $state): string => match ($state) { - 'Layak' => 'success', - 'Dipertimbangkan' => 'warning', - 'Tidak Layak' => 'danger', + 'Diterima' => 'success', + 'Tidak Diterima' => 'danger', default => 'gray', }), ]) @@ -150,9 +145,8 @@ public function table(Table $table): Table ->filters([ \Filament\Tables\Filters\SelectFilter::make('hasil') ->options([ - 'Layak' => 'Layak', - 'Dipertimbangkan' => 'Dipertimbangkan', - 'Tidak Layak' => 'Tidak Layak', + 'Diterima' => 'success', + 'Tidak Diterima' => 'danger', ]), ]); } diff --git a/app/Filament/Resources/HasilResource/Pages/HasilAkreditasiC.php b/app/Filament/Resources/HasilResource/Pages/HasilAkreditasiC.php index 5596910b..d16c13c5 100644 --- a/app/Filament/Resources/HasilResource/Pages/HasilAkreditasiC.php +++ b/app/Filament/Resources/HasilResource/Pages/HasilAkreditasiC.php @@ -39,7 +39,7 @@ public function table(Table $table): Table // Reset hasil untuk akreditasi C Parameter::whereHas('mahasiswa.prodi', function ($query) { $query->where('akreditasi', 'C'); - })->update(['hasil' => 'Tidak Layak']); + })->update(['hasil' => 'Tidak Diterima']); // Ambil data parameter yang valid dengan akreditasi C $validParameters = Parameter::where('status', 'valid') @@ -56,11 +56,7 @@ public function table(Table $table): Table if ($index < $kuota) { DB::table('parameters') ->where('id', $parameter->id) - ->update(['hasil' => 'Layak']); - } elseif ($index < ($kuota + 3)) { - DB::table('parameters') - ->where('id', $parameter->id) - ->update(['hasil' => 'Dipertimbangkan']); + ->update(['hasil' => 'Diterima']); } $index++; } @@ -140,9 +136,8 @@ public function table(Table $table): Table ->label('Hasil') ->badge() ->color(fn (string $state): string => match ($state) { - 'Layak' => 'success', - 'Dipertimbangkan' => 'warning', - 'Tidak Layak' => 'danger', + 'Diterima' => 'success', + 'Tidak Diterima' => 'danger', default => 'gray', }), ]) @@ -150,9 +145,8 @@ public function table(Table $table): Table ->filters([ \Filament\Tables\Filters\SelectFilter::make('hasil') ->options([ - 'Layak' => 'Layak', - 'Dipertimbangkan' => 'Dipertimbangkan', - 'Tidak Layak' => 'Tidak Layak', + 'Diterima' => 'success', + 'Tidak Diterima' => 'danger', ]), ]); } diff --git a/app/Filament/Resources/KriteriaResource.php b/app/Filament/Resources/KriteriaResource.php index 8ab7f423..807b7ee4 100644 --- a/app/Filament/Resources/KriteriaResource.php +++ b/app/Filament/Resources/KriteriaResource.php @@ -36,6 +36,8 @@ public static function form(Form $form): Form TextInput::make('prioritas') ->required(), TextInput::make('bobot') + ->disabled() + ->helperText('Bobot akan dihitung otomatis oleh sistem') // ->required(), ]); } diff --git a/app/Filament/Resources/ParameterResource.php b/app/Filament/Resources/ParameterResource.php index 7babcd4f..4881c78a 100644 --- a/app/Filament/Resources/ParameterResource.php +++ b/app/Filament/Resources/ParameterResource.php @@ -38,6 +38,11 @@ class ParameterResource extends Resource protected static ?string $title = 'Validasi Data'; + public static function canCreate(): bool + { + return false; + } + public static function form(Form $form): Form { return $form @@ -304,9 +309,8 @@ public static function table(Table $table): Table // ->label('Hasil') // ->badge() // ->color(fn (string $state): string => match ($state) { - // 'Layak' => 'success', - // 'Dipertimbangkan' => 'warning', - // 'Tidak Layak' => 'danger', + // 'Diterima' => 'success', + // 'Tidak Diterima' => 'danger', // default => 'gray', // }), @@ -376,6 +380,12 @@ public static function table(Table $table): Table 'valid' => 'Valid', 'tidak_valid' => 'Tidak Valid', ]), + + Tables\Filters\SelectFilter::make('hasil') + ->options([ + 'Diterima' => 'Diterima', + 'Tidak Diterima' => 'Tidak Diterima', + ]), ]) ->actions([ Tables\Actions\Action::make('validasi') @@ -590,7 +600,6 @@ public static function getPages(): array { return [ 'index' => Pages\ListParameters::route('/'), - 'create' => Pages\CreateParameter::route('/create'), 'edit' => Pages\EditParameter::route('/{record}/edit'), ]; } diff --git a/app/Filament/Resources/PengumumanResource.php b/app/Filament/Resources/PengumumanResource.php index 584b8971..d5402013 100644 --- a/app/Filament/Resources/PengumumanResource.php +++ b/app/Filament/Resources/PengumumanResource.php @@ -1,78 +1,78 @@ columns([ - TextColumn::make('mahasiswa.nama') - ->label('Nama Mahasiswa') - ->searchable() - ->sortable(), +// public static function table(Table $table): Table +// { +// return $table +// ->columns([ +// TextColumn::make('mahasiswa.nama') +// ->label('Nama Mahasiswa') +// ->searchable() +// ->sortable(), - TextColumn::make('status') - ->label('Status Berkas') - ->badge() - ->color(fn (string $state): string => match ($state) { - 'valid' => 'success', - 'tidak_valid' => 'danger', - 'belum_validasi' => 'warning', - default => 'gray', - }), +// TextColumn::make('status') +// ->label('Status Berkas') +// ->badge() +// ->color(fn (string $state): string => match ($state) { +// 'valid' => 'success', +// 'tidak_valid' => 'danger', +// 'belum_validasi' => 'warning', +// default => 'gray', +// }), - TextColumn::make('hasil') - ->label('Hasil Seleksi') - ->badge() - ->color(fn (string $state): string => match ($state) { - 'Layak' => 'success', - 'Dipertimbangkan' => 'warning', - 'Tidak Layak' => 'danger', - default => 'gray', - }), +// TextColumn::make('hasil') +// ->label('Hasil Seleksi') +// ->badge() +// ->color(fn (string $state): string => match ($state) { +// 'Layak' => 'success', +// 'Dipertimbangkan' => 'warning', +// 'Tidak Layak' => 'danger', +// default => 'gray', +// }), - ViewColumn::make('keterangan') - ->label('Keterangan') - ->view('filament.tables.columns.keterangan-pengumuman'), - ]) - ->defaultSort('total_nilai', 'desc') - ->modifyQueryUsing(function (Builder $query): Builder { - $user = auth()->user(); - if ($user->roles[0]->name == 'Mahasiswa') { - return $query->where('mahasiswa_id', $user->id); - } - return $query; - }); - } +// ViewColumn::make('keterangan') +// ->label('Keterangan') +// ->view('filament.tables.columns.keterangan-pengumuman'), +// ]) +// ->defaultSort('total_nilai', 'desc') +// ->modifyQueryUsing(function (Builder $query): Builder { +// $user = auth()->user(); +// if ($user->roles[0]->name == 'Mahasiswa') { +// return $query->where('mahasiswa_id', $user->id); +// } +// return $query; +// }); +// } - public static function getPages(): array - { - return [ - 'index' => Pages\ListPengumuman::route('/'), - ]; - } -} +// public static function getPages(): array +// { +// return [ +// 'index' => Pages\ListPengumuman::route('/'), +// ]; +// } +// } diff --git a/app/Filament/Resources/SubKriteriaResource.php b/app/Filament/Resources/SubKriteriaResource.php index 99bbbdb4..7779a647 100644 --- a/app/Filament/Resources/SubKriteriaResource.php +++ b/app/Filament/Resources/SubKriteriaResource.php @@ -55,6 +55,8 @@ public static function form(Form $form): Form ->required(), TextInput::make('bobot') ->numeric() + ->disabled() + ->helperText('Bobot akan dihitung otomatis oleh sistem') // ->required(), ]); } diff --git a/app/Models/Pengumuman.php b/app/Models/Pengumuman.php index 911b8cc7..0ee0bb44 100644 --- a/app/Models/Pengumuman.php +++ b/app/Models/Pengumuman.php @@ -1,30 +1,30 @@ belongsTo(Parameter::class); - } +// public function parameter(): BelongsTo +// { +// return $this->belongsTo(Parameter::class); +// } - public function user(): BelongsTo - { - return $this->belongsTo(User::class); - } -} \ No newline at end of file +// public function user(): BelongsTo +// { +// return $this->belongsTo(User::class); +// } +// } \ No newline at end of file diff --git a/app/Models/parameter.php b/app/Models/parameter.php index b8c32ba7..2705c8af 100644 --- a/app/Models/parameter.php +++ b/app/Models/parameter.php @@ -117,6 +117,16 @@ protected static function boot() } break; + case 'Terdata DTKS': + // Ambil SubKriteria berdasarkan status terdata DTKS + $subKriteria = SubKriteria::where('kriteria_id', $kriteria->id) + ->where('nama', $parameter->terdata_dtks) + ->first(); + if ($subKriteria) { + $totalNilai += $subKriteria->bobot; + } + break; + case 'Kondisi Ekonomi': // Hitung jumlah berkas yang diupload $berkasCount = 0; diff --git a/database/migrations/2025_02_20_222431_create_parameters_table.php b/database/migrations/2025_02_20_222431_create_parameters_table.php index 238320d0..8ab44251 100644 --- a/database/migrations/2025_02_20_222431_create_parameters_table.php +++ b/database/migrations/2025_02_20_222431_create_parameters_table.php @@ -75,7 +75,7 @@ public function up() $table->decimal('total_nilai', 10, 7)->default(0); // Hasil penilaian - $table->enum('hasil', ['Layak', 'Dipertimbangkan', 'Tidak Layak'])->nullable(); + $table->enum('hasil', ['Diterima', 'Tidak Diterima'])->nullable(); $table->timestamps(); diff --git a/database/migrations/2025_02_20_222432_create_pengumumans_table.php b/database/migrations/2025_02_20_222432_create_pengumumans_table.php deleted file mode 100644 index 3b0c33cb..00000000 --- a/database/migrations/2025_02_20_222432_create_pengumumans_table.php +++ /dev/null @@ -1,24 +0,0 @@ -id(); - $table->foreignId('parameter_id')->constrained('parameters')->cascadeOnDelete(); - $table->foreignId('user_id')->constrained('users')->cascadeOnDelete(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); - } - - public function down() - { - Schema::dropIfExists('pengumumans'); - } -}; \ No newline at end of file diff --git a/database/seeders/KriteriaSeeder.php b/database/seeders/KriteriaSeeder.php index ea8de3f7..5e895b25 100644 --- a/database/seeders/KriteriaSeeder.php +++ b/database/seeders/KriteriaSeeder.php @@ -17,22 +17,27 @@ public function run(): void [ 'nama' => 'Kepemilikan KIP', 'prioritas' => 1, - 'bobot' => 0.5208333, + 'bobot' => 0.4566667, + ], + [ + 'nama' => 'Terdata DTKS', + 'prioritas' => 2, + 'bobot' => 0.2566667, ], [ 'nama' => 'Tingkatan Desil', - 'prioritas' => 2, - 'bobot' => 0.2708333, + 'prioritas' => 3, + 'bobot' => 0.1566667, ], [ 'nama' => 'Kondisi Ekonomi', - 'prioritas' => 3, - 'bobot' => 0.1458333, + 'prioritas' => 4, + 'bobot' => 0.09, ], [ 'nama' => 'Status Orang Tua', - 'prioritas' => 4, - 'bobot' => 0.0625000, + 'prioritas' => 5, + 'bobot' => 0.04, ], ]; diff --git a/database/seeders/SubKriteriaSeeder.php b/database/seeders/SubKriteriaSeeder.php index 6dd80ad5..78840476 100644 --- a/database/seeders/SubKriteriaSeeder.php +++ b/database/seeders/SubKriteriaSeeder.php @@ -20,104 +20,118 @@ public function run(): void 'nama' => 'Memiliki KIP', 'deskripsi' => 'Mahasiswa memiliki Kartu Indonesia Pintar', 'prioritas' => 1, - 'bobot' => 0.3906250, + 'bobot' => 0.3425000, ], [ 'kriteria_id' => 1, 'nama' => 'Tidak Memiliki KIP', 'deskripsi' => 'Mahasiswa tidak memiliki Kartu Indonesia Pintar', 'prioritas' => 2, - 'bobot' => 0.1302083, + 'bobot' => 0.1141667, ], - - // Subkriteria untuk Tingkatan Desil (kriteria_id: 2) + // Subkriteria untuk Terdata dalam DTKS (kriteria_id: 2) [ 'kriteria_id' => 2, + 'nama' => 'Terdata', + 'deskripsi' => 'Mahasiswa yang datanya tercatat dalam Data Terpadu Kesejahteraan Sosial (DTKS).', + 'prioritas' => 1, + 'bobot' => 0.1925000, + ], + [ + 'kriteria_id' => 2, + 'nama' => 'Tidak Terdata', + 'deskripsi' => 'Mahasiswa yang datanya tidak tercatat dalam Data Terpadu Kesejahteraan Sosial (DTKS).', + 'prioritas' => 2, + 'bobot' => 0.0641667, + ], + // Subkriteria untuk Tingkatan Desil (kriteria_id: 3) + [ + 'kriteria_id' => 3, 'nama' => 'Desil 1', 'deskripsi' => 'Tingkat kesejahteraan terendah', 'prioritas' => 1, - 'bobot' => 0.1238805, + 'bobot' => 0.0715445, ], [ - 'kriteria_id' => 2, + 'kriteria_id' => 3, 'nama' => 'Desil 2', 'deskripsi' => 'Tingkat kesejahteraan sangat rendah', 'prioritas' => 2, - 'bobot' => 0.0695139, + 'bobot' => 0.0402111, ], [ - 'kriteria_id' => 2, + 'kriteria_id' => 3, 'nama' => 'Desil 3', 'deskripsi' => 'Tingkat kesejahteraan rendah', 'prioritas' => 3, - 'bobot' => 0.0424306, + 'bobot' => 0.0245444, ], [ - 'kriteria_id' => 2, + 'kriteria_id' => 3, 'nama' => 'Desil 4', 'deskripsi' => 'Tingkat kesejahteraan menengah bawah', 'prioritas' => 4, - 'bobot' => 0.0243750, + 'bobot' => 0.0141000, ], [ - 'kriteria_id' => 2, + 'kriteria_id' => 3, 'nama' => 'Desil 5', 'deskripsi' => 'Tingkat kesejahteraan menengah', 'prioritas' => 5, - 'bobot' => 0.0108333, + 'bobot' => 0.0062667, ], - // Subkriteria untuk Kondisi Ekonomi (kriteria_id: 3) + // Subkriteria untuk Kondisi Ekonomi (kriteria_id: 4) [ - 'kriteria_id' => 3, + 'kriteria_id' => 4, 'nama' => 'Sangat Kurang Mampu', 'deskripsi' => 'Memiliki lebih dari 2 bantuan pemerintah', 'prioritas' => 1, - 'bobot' => 0.0759548, + 'bobot' => 0.0468750, ], [ - 'kriteria_id' => 3, + 'kriteria_id' => 4, 'nama' => 'Kurang Mampu', 'deskripsi' => 'Memiliki 2 bantuan pemerintah', 'prioritas' => 2, - 'bobot' => 0.0394965, + 'bobot' => 0.0243750, ], [ - 'kriteria_id' => 3, + 'kriteria_id' => 4, 'nama' => 'Cukup Mampu', 'deskripsi' => 'Mahasiswa memiliki 1 bantuan pemerintah', 'prioritas' => 3, - 'bobot' => 0.0212674, + 'bobot' => 0.0131250, ], [ - 'kriteria_id' => 3, + 'kriteria_id' => 4, 'nama' => 'Tidak Menerima Bantuan', 'deskripsi' => 'Mahasiswa tidak memiliki bantuan pemerintah', 'prioritas' => 4, - 'bobot' => 0.0091146, + 'bobot' => 0.0056250, ], - // Subkriteria untuk Status Orang Tua (kriteria_id: 4) + // Subkriteria untuk Status Orang Tua (kriteria_id: 5) [ - 'kriteria_id' => 4, + 'kriteria_id' => 5, 'nama' => 'Kedua Orang Tua Wafat', 'deskripsi' => 'Ayah dan Ibu wafat', 'prioritas' => 1, - 'bobot' => 0.0381944, + 'bobot' => 0.0244444, ], [ - 'kriteria_id' => 4, + 'kriteria_id' => 5, 'nama' => 'Salah Satu Orang Tua Wafat', 'deskripsi' => 'Ayah atau Ibu-nya wafat', 'prioritas' => 2, - 'bobot' => 0.0173611, + 'bobot' => 0.0111111, ], [ - 'kriteria_id' => 4, + 'kriteria_id' => 5, 'nama' => 'Kedua Orang Tua Masih Hidup', 'deskripsi' => 'Ayah dan Ibu-nya masih hidup', 'prioritas' => 3, - 'bobot' => 0.0069444, + 'bobot' => 0.0044444, ], ]; diff --git a/resources/views/surat/keterangan.blade.php b/resources/views/surat/keterangan.blade.php new file mode 100644 index 00000000..3a27e17c --- /dev/null +++ b/resources/views/surat/keterangan.blade.php @@ -0,0 +1,165 @@ + + + + + Surat Keterangan KIP-K + + + + + + + + + +
+ + + KEMENTERIAN PENDIDIKAN TINGGI, SAINS, DAN TEKNOLOGI
+ POLITEKNIK NEGERI JEMBER
+ JL. Mastrip PO BOX 164 Jember 68101 +
+ +
+ +
+

SURAT KETERANGAN

+

PENERIMA KIP-K

+

Nomor: {{ date('Y') }}/KIP-K/{{ str_pad($mahasiswa->id, 4, '0', STR_PAD_LEFT) }}

+
+ +
+

Yang bertanda tangan di bawah ini, Kepala Program Studi {{ $mahasiswa->prodi->nama ?? '-' }}, menyatakan bahwa:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
No. Registrasi KIP-K: {{ $mahasiswa->noreg_kipk }}
Nama Lengkap: {{ $mahasiswa->nama }}
NIM: {{ $mahasiswa->NIM }}
Program Studi: {{ $mahasiswa->prodi->nama ?? '-' }}
Jurusan: {{ $mahasiswa->jurusan->nama ?? '-' }}
Akreditasi Prodi: {{ $mahasiswa->akreditasi }}
Angkatan: {{ $mahasiswa->angkatan }}
Jalur Masuk: {{ $mahasiswa->jalur_masuk }}
No. Handphone: {{ $mahasiswa->ponsel }}
Alamat: {{ $mahasiswa->alamat }}
+ +

+ Telah dinyatakan DITERIMA sebagai penerima Kartu Indonesia Pintar Kuliah (KIP-K) + berdasarkan hasil seleksi yang telah dilakukan. +

+
+ + + + \ No newline at end of file