diff --git a/app/Http/Controllers/BantuanController.php b/app/Http/Controllers/BantuanController.php
index 2f6410e7..40a10d75 100644
--- a/app/Http/Controllers/BantuanController.php
+++ b/app/Http/Controllers/BantuanController.php
@@ -22,4 +22,11 @@ public function cetak(Request $request)
return view('bantuan.cetak', compact('filter'));
}
+
+ public function cetakPeserta(Request $request, $id)
+ {
+ $filter = array_filter($request->all());
+
+ return view('bantuan.cetak-peserta', compact('id', 'filter'));
+ }
}
diff --git a/resources/views/bantuan/cetak-peserta.blade.php b/resources/views/bantuan/cetak-peserta.blade.php
new file mode 100644
index 00000000..b76619b0
--- /dev/null
+++ b/resources/views/bantuan/cetak-peserta.blade.php
@@ -0,0 +1,71 @@
+@extends('layouts.cetak.index')
+
+@section('title', 'Data Peserta Bantuan')
+
+@push('css')
+
+@endpush
+
+@section('content')
+@include('partials.breadcrumbs')
+
+
+
+ | No |
+ NIK |
+ No. KK |
+ Nama Penduduk |
+ No. Kartu Peserta |
+ Tempat Lahir |
+ Tanggal Lahir |
+ Jenis Kelamin |
+ Alamat |
+ Keterangan |
+
+
+
+
+@stop
+
+@push('scripts')
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/bantuan/show.blade.php b/resources/views/bantuan/show.blade.php
index 02b3b774..7d49dd5f 100644
--- a/resources/views/bantuan/show.blade.php
+++ b/resources/views/bantuan/show.blade.php
@@ -5,7 +5,7 @@
@section('title', 'Data Peserta Bantuan')
@section('content_header')
- Data Peserta Bantuan
+Data Peserta Bantuan
@stop
@section('content')
@@ -16,6 +16,10 @@
Rincian Program
@@ -49,90 +53,91 @@
@endsection
@section('js')
-
-@endsection
+@endsection
\ No newline at end of file
diff --git a/routes/web.php b/routes/web.php
index 375ea521..78851184 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -82,7 +82,7 @@
});
Route::resource('activities', RiwayatPenggunaController::class)->only(['index', 'show'])->middleware('easyauthorize:pengaturan-activities');
Route::resource('settings', App\Http\Controllers\SettingController::class)->except(['show', 'create', 'delete'])->middleware('easyauthorize:pengaturan-settings');
-
+
// OTP & 2FA Routes - combined into one page
Route::prefix('otp')->group(function () {
Route::get('/', [App\Http\Controllers\OtpController::class, 'index'])->name('otp.index');
@@ -90,21 +90,21 @@
Route::post('/setup', [App\Http\Controllers\OtpController::class, 'setup'])->name('otp.setup');
Route::post('/verify-activation', [App\Http\Controllers\OtpController::class, 'verifyActivation'])->name('otp.verify-activation');
Route::post('/resend', [App\Http\Controllers\OtpController::class, 'resend'])->name('otp.resend');
- Route::post('/disable', [App\Http\Controllers\OtpController::class, 'disable'])->name('otp.disable');
+ Route::post('/disable', [App\Http\Controllers\OtpController::class, 'disable'])->name('otp.disable');
});
-
+
// 2FA Routes - for API calls from the combined page
Route::prefix('2fa')->group(function () {
- Route::get('/', function() {
+ Route::get('/', function () {
return redirect()->route('otp.index');
})->name('2fa.index');
Route::get('/activate', [App\Http\Controllers\TwoFactorController::class, 'activate'])->name('2fa.activate');
- Route::post('/enable', [App\Http\Controllers\TwoFactorController::class, 'enable'])->name('2fa.enable');
+ Route::post('/enable', [App\Http\Controllers\TwoFactorController::class, 'enable'])->name('2fa.enable');
Route::post('/verify', [App\Http\Controllers\TwoFactorController::class, 'verifyEnable'])->name('2fa.verify');
Route::post('/disable', [App\Http\Controllers\TwoFactorController::class, 'disable'])->name('2fa.disable');
Route::post('/resend', [App\Http\Controllers\TwoFactorController::class, 'resend'])->name('2fa.resend');
});
- });
+ });
Route::prefix('cms')->group(function () {
Route::resource('categories', App\Http\Controllers\CMS\CategoryController::class)->except(['show'])->middleware('easyauthorize:website-categories');
@@ -184,6 +184,7 @@
->group(function () {
Route::get('/', 'index')->name('bantuan');
Route::get('/cetak', 'cetak');
+ Route::get('/detail/{id}/cetak', 'cetakPeserta')->name('bantuan.detail.cetak');
Route::get('/detail/{id}', 'show')->name('bantuan.detail');
});
@@ -213,7 +214,7 @@
Route::middleware(['permission:datapokok-agama-adat-read'])->get('/agama/detail', 'detail_agama')->name('detail_agama');
Route::middleware(['permission:datapokok-agama-adat-read'])->get('/agama/cetak', 'cetak_agama')->name('cetak_agama');
Route::middleware(['permission:datapokok-infrastruktur-read'])->get('/infrastruktur', 'infrastruktur')->name('infrastruktur');
- Route::middleware(['permission:datapokok-infrastruktur-read'])->get('/infrastruktur/cetak', 'cetakInfrastruktur')->name('infrastruktur.cetak');
+ Route::middleware(['permission:datapokok-infrastruktur-read'])->get('/infrastruktur/cetak', 'cetakInfrastruktur')->name('infrastruktur.cetak');
Route::middleware(['permission:datapokok-sandang-read'])->get('/sandang', 'sandang')->name('datasandang');
Route::middleware(['permission:datapokok-sandang-read'])->get('/sandang/detail', 'detail_sandang')->name('detail_datasandang');
@@ -237,9 +238,9 @@
// Data > Kependudukan > Laporan Bulanan
Route::controller(LaporanBulananController::class)
- ->middleware(['permission:statistik-laporan-bulanan-read'])
- ->prefix('laporan-bulanan')
- ->group(function () {
+ ->middleware(['permission:statistik-laporan-bulanan-read'])
+ ->prefix('laporan-bulanan')
+ ->group(function () {
Route::get('/', 'index')->name('laporan-bulanan.index');
Route::post('/filter', 'filter')->name('laporan-bulanan.filter');
Route::get('/detail-penduduk/{rincian}/{tipe}', 'detailPenduduk')->name('laporan-bulanan.detail-penduduk');
@@ -279,64 +280,64 @@
Route::prefix('laporan')->group(function () {
Route::get('/', [App\Http\Controllers\DataPresisiLaporanController::class, 'index'])->name('laporan.data-presisi.index');
Route::get('cetak', [App\Http\Controllers\DataPresisiLaporanController::class, 'cetak'])->name('laporan.data-presisi.cetak');
- Route::get('/perdesa', [App\Http\Controllers\DataPresisiLaporanController::class, 'perdesa'])->name('laporan.data-presisi.perdesa');
- Route::get('/cetak-perdesa', [App\Http\Controllers\DataPresisiLaporanController::class, 'cetakPerdesa'])->name('laporan.data-presisi.cetak-perdesa');
+ Route::get('/perdesa', [App\Http\Controllers\DataPresisiLaporanController::class, 'perdesa'])->name('laporan.data-presisi.perdesa');
+ Route::get('/cetak-perdesa', [App\Http\Controllers\DataPresisiLaporanController::class, 'cetakPerdesa'])->name('laporan.data-presisi.cetak-perdesa');
})
- ->middleware(['permission:datapresisi-laporan-read']);
+ ->middleware(['permission:datapresisi-laporan-read']);
Route::prefix('kesehatan')->group(function () {
Route::get('/', [App\Http\Controllers\DataPresisiKesehatanController::class, 'index'])->name('data-pokok.data-presisi.index');
Route::get('/detail', [App\Http\Controllers\DataPresisiKesehatanController::class, 'detail'])->name('data-pokok.data-presisi.detail');
Route::get('cetak', [App\Http\Controllers\DataPresisiKesehatanController::class, 'cetak'])->name('data-pokok.data-presisi.cetak');
})
- ->middleware(['permission:datapresisi-kesehatan-read']);
+ ->middleware(['permission:datapresisi-kesehatan-read']);
Route::prefix('seni-budaya')->group(function () {
Route::get('/', [App\Http\Controllers\DataPresisiSeniBudayaController::class, 'index'])->name('data-pokok.data-presisi-seni-budaya.index');
Route::get('/detail', [App\Http\Controllers\DataPresisiSeniBudayaController::class, 'detail'])->name('data-pokok.data-presisi-seni-budaya.detail');
Route::get('cetak', [App\Http\Controllers\DataPresisiSeniBudayaController::class, 'cetak'])->name('data-pokok.data-presisi-seni-budaya.cetak');
})
- ->middleware(['permission:datapresisi-seni-budaya-read']);
+ ->middleware(['permission:datapresisi-seni-budaya-read']);
Route::prefix('ketenagakerjaan')->group(function () {
Route::get('/', [App\Http\Controllers\DataPresisiKetenagakerjaanController::class, 'index'])->name('data-pokok.data-presisi-ketenagakerjaan.index');
Route::get('/detail', [App\Http\Controllers\DataPresisiKetenagakerjaanController::class, 'detail'])->name('data-pokok.data-presisi-ketenagakerjaan.detail');
Route::get('cetak', [App\Http\Controllers\DataPresisiKetenagakerjaanController::class, 'cetak'])->name('data-pokok.data-presisi-ketenagakerjaan.cetak');
})
- ->middleware(['permission:datapresisi-ketenagakerjaan-read']);
+ ->middleware(['permission:datapresisi-ketenagakerjaan-read']);
Route::prefix('pendidikan')->group(function () {
Route::get('/', [App\Http\Controllers\DataPresisiPendidikanController::class, 'index'])->name('data-pokok.data-presisi-pendidikan.index');
Route::get('/detail', [App\Http\Controllers\DataPresisiPendidikanController::class, 'detail'])->name('data-pokok.data-presisi-pendidikan.detail');
Route::get('cetak', [App\Http\Controllers\DataPresisiPendidikanController::class, 'cetak'])->name('data-pokok.data-presisi-pendidikan.cetak');
})
- ->middleware(['permission:datapresisi-pendidikan-read']);
+ ->middleware(['permission:datapresisi-pendidikan-read']);
Route::prefix('pangan')->group(function () {
Route::get('/', [App\Http\Controllers\DataPresisiPanganController::class, 'index'])->name('data-pokok.data-presisi-pangan.index');
Route::get('/detail', [App\Http\Controllers\DataPresisiPanganController::class, 'detail'])->name('data-pokok.data-presisi-pangan.detail');
Route::get('cetak', [App\Http\Controllers\DataPresisiPanganController::class, 'cetak'])->name('data-pokok.data-presisi-pangan.cetak');
})
- ->middleware(['permission:datapresisi-pangan-read']);
+ ->middleware(['permission:datapresisi-pangan-read']);
Route::prefix('adat')->group(function () {
Route::get('/', [App\Http\Controllers\DataPresisiAdatController::class, 'index'])->name('data-pokok.data-presisi-adat.index');
Route::get('/detail', [App\Http\Controllers\DataPresisiAdatController::class, 'detail'])->name('data-pokok.data-presisi-adat.detail');
Route::get('cetak', [App\Http\Controllers\DataPresisiAdatController::class, 'cetak'])->name('data-pokok.data-presisi-adat.cetak');
})
- ->middleware(['permission:datapresisi-adat-read']);
+ ->middleware(['permission:datapresisi-adat-read']);
- Route::prefix('statistik')->group(function () {
+ Route::prefix('statistik')->group(function () {
Route::get('adat', [App\Http\Controllers\StatistikAdatController::class, 'index']);
Route::get('kesehatan', [App\Http\Controllers\StatistikKesehatanController::class, 'index']);
Route::get('jaminan-sosial', [App\Http\Controllers\StatistikJaminanSosialController::class, 'index']);
Route::get('aktivitas-keagamaan', [App\Http\Controllers\StatistikAktivitasKeagamaanController::class, 'index']);
Route::get('ketenagakerjaan', [App\Http\Controllers\StatistikKetenagakerjaanController::class, 'index']);
- Route::get('pendidikan', [App\Http\Controllers\StatistikPendidikanController::class, 'index']);
- Route::get('sandang', [App\Http\Controllers\StatistikSandangController::class, 'index']);
- Route::get('papan', [App\Http\Controllers\StatistikPapanController::class, 'index']);
- Route::get('senibudaya', [App\Http\Controllers\StatistikSenibudayaController::class, 'index']);
- Route::get('pangan', [App\Http\Controllers\StatistikPanganController::class, 'index']);
+ Route::get('pendidikan', [App\Http\Controllers\StatistikPendidikanController::class, 'index']);
+ Route::get('sandang', [App\Http\Controllers\StatistikSandangController::class, 'index']);
+ Route::get('papan', [App\Http\Controllers\StatistikPapanController::class, 'index']);
+ Route::get('senibudaya', [App\Http\Controllers\StatistikSenibudayaController::class, 'index']);
+ Route::get('pangan', [App\Http\Controllers\StatistikPanganController::class, 'index']);
});
});
diff --git a/tests/Feature/BantuanControllerTest.php b/tests/Feature/BantuanControllerTest.php
new file mode 100644
index 00000000..b685c806
--- /dev/null
+++ b/tests/Feature/BantuanControllerTest.php
@@ -0,0 +1,63 @@
+get(route('bantuan'));
+
+ $response->assertStatus(200);
+ $response->assertViewIs('bantuan.index');
+ }
+
+ /** @test */
+ public function it_can_access_bantuan_detail()
+ {
+ $response = $this->get(route('bantuan.detail', ['id' => 1]));
+
+ $response->assertStatus(200);
+ $response->assertViewIs('bantuan.show');
+ $response->assertViewHas('id', '1');
+ }
+
+ /** @test */
+ public function it_can_access_bantuan_cetak()
+ {
+ $response = $this->get('/bantuan/cetak');
+
+ $response->assertStatus(200);
+ $response->assertViewIs('bantuan.cetak');
+ $response->assertViewHas('filter');
+ }
+
+ /** @test */
+ public function it_can_access_bantuan_detail_cetak_peserta()
+ {
+ $response = $this->get(route('bantuan.detail.cetak', ['id' => 1]));
+
+ $response->assertStatus(200);
+ $response->assertViewIs('bantuan.cetak-peserta');
+ $response->assertViewHas('id', '1');
+ $response->assertViewHas('filter');
+ }
+
+ /** @test */
+ public function it_passes_filter_params_to_cetak_peserta()
+ {
+ $response = $this->get(route('bantuan.detail.cetak', ['id' => 1]) . '?search=test');
+
+ $response->assertStatus(200);
+ $response->assertViewIs('bantuan.cetak-peserta');
+ $response->assertViewHas('filter', function ($filter) {
+ return isset($filter['search']) && $filter['search'] === 'test';
+ });
+ }
+}