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
+
+
+
+
+
+
+
+
+
+
+
+
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