diff --git a/app/Http/Controllers/KuesionerController.php b/app/Http/Controllers/KuesionerController.php index f1bc189..33fcf20 100644 --- a/app/Http/Controllers/KuesionerController.php +++ b/app/Http/Controllers/KuesionerController.php @@ -18,6 +18,8 @@ use App\Models\Master\Provinsi; use App\Models\Master\Kabupaten; use App\Models\Master\Sekolah; use App\Models\DokumenAdministrasi; +use App\Models\Master\FormKriteria; +use Dompdf\Dompdf; class KuesionerController extends Controller { @@ -756,4 +758,25 @@ class KuesionerController extends Controller return response()->json(['status' => true,'message' => 'Data Berhasil Di Update','type' => 'success']); } + + function dokumen($id) { + $keyId = decode_id($id); + $kuesioner = Kuesioner::find($keyId); + $data = [ + 'kuesioner' => $kuesioner, + 'kriteria' => FormKriteria::where('tahun','2026')->orderBy('MsFormKriteriaId','ASC')->get(), + ]; + + $html = view('pdf.dokumen', $data)->render(); + + $dompdf = new Dompdf(); + $dompdf->loadHtml($html); + $dompdf->setPaper('A4', 'portrait'); + $dompdf->render(); + + return response($dompdf->output(), 200) + ->header('Content-Type', 'application/pdf') + ->header('Content-Disposition', 'attachment; filename="Dokumen Evaluasi - '.$kuesioner->sekolah->nama_sekolah.'.pdf"'); + + } } diff --git a/composer.json b/composer.json index 0d6bd55..faefa4b 100644 --- a/composer.json +++ b/composer.json @@ -6,6 +6,7 @@ "license": "MIT", "require": { "php": "^8.1", + "dompdf/dompdf": "^3.1", "guzzlehttp/guzzle": "^7.9", "laravel/framework": "^10.0", "laravel/sanctum": "^3.2", diff --git a/public/assets/check.png b/public/assets/check.png new file mode 100644 index 0000000..9f472f3 Binary files /dev/null and b/public/assets/check.png differ diff --git a/resources/views/modules/usulan/csap/form.blade.php b/resources/views/modules/usulan/csap/form.blade.php index 1d537e6..037a491 100644 --- a/resources/views/modules/usulan/csap/form.blade.php +++ b/resources/views/modules/usulan/csap/form.blade.php @@ -277,8 +277,9 @@
-
+

Form Validasi

+  Hasil Evaluasi Dokumen
@@ -331,11 +332,11 @@
Pemenuhan Kriteria
{{count(@$penilaian)}} / {{count(@$page)}}   - @if(count(@$penilaian) == count(@$page)) - Sudah Lengkap - @else - Belum Lengkap - @endif + @if(count(@$penilaian) == count(@$page)) + Sudah Lengkap + @else + Belum Lengkap + @endif
diff --git a/resources/views/pdf/dokumen.blade.php b/resources/views/pdf/dokumen.blade.php new file mode 100644 index 0000000..c7b1d4f --- /dev/null +++ b/resources/views/pdf/dokumen.blade.php @@ -0,0 +1,103 @@ + + + + + + + + Dokumen Evaluasi + + + + + + + + + + + + + + + + + + + + +
Nama Sekolah:{{$kuesioner->sekolah->nama_sekolah}}
Usulan Adiwiyata:{{getUsulan($kuesioner->ms_sekolah_id)}}
Wilayah:{{wilayah($kuesioner->npsn)}}
+

Data Indikator :

+ @foreach ($kriteria as $data) + where('page_number',$data->page_number)->where('ms_sekolah_id',$kuesioner->ms_sekolah_id)->where('status',1)->first(); + if(@$type == 'kota'){ + $penilaian = App\Models\Penilaian::where('tahun',$kuesioner->tahun)->where('key',$data->key)->where('ms_sekolah_id',$kuesioner->ms_sekolah_id)->where('status',$status)->first(); + $penilaianOld = App\Models\Penilaian::where('tahun',$kuesioner->tahun)->where('key',$data->key)->where('ms_sekolah_id',$kuesioner->ms_sekolah_id)->where('status',($status-1))->first(); + }elseif(@$type == 'provinsi'){ + $penilaian = App\Models\Penilaian::where('tahun',$kuesioner->tahun)->where('key',$data->key)->where('ms_sekolah_id',$kuesioner->ms_sekolah_id)->where('status',$status)->first(); + $penilaianOld = App\Models\Penilaian::where('tahun',$kuesioner->tahun)->where('key',$data->key)->where('ms_sekolah_id',$kuesioner->ms_sekolah_id)->where('status',($status-1))->first(); + }else{ + $penilaian = App\Models\Penilaian::where('tahun',$kuesioner->tahun)->where('key',$data->key)->where('ms_sekolah_id',$kuesioner->ms_sekolah_id)->where('status',$status)->first(); + } + ?> +
+
+ {{ $data->page_number }}. {{ $data->judul }} +
+
+
+ type == 'textarea' || $data->type == 'freetext' || $data->type == 'number'){ + $value = json_decode(@$penilaian->value); + $valueOld = json_decode(@$penilaianOld->value); + + if(@$value){ + $nilai = @$value; + }else{ + $nilai = @$valueOld; + } ?> + {{ @$nilai }} + type == 'checkbox' || $data->type == 'radio_button'){ + + $option = json_decode($data->option); + $value = json_decode(@$penilaian->value); + $valueOld = json_decode(@$penilaianOld->value); + foreach($option as $keyOption => $dataOption){ + $selectedValues = is_array($value) ? $value : (isset($value) ? [$value] : (is_array($valueOld) ? $valueOld : [$valueOld])); + if (in_array($dataOption, $selectedValues)) { + $checked = ' '; + }else{ + $checked = ' '; + } + ?> +
+ +
+
+ Catatan : +

{{@$catatan->value != 'null' ? $catatan->value : '-'}}

+
+
+
+
+ @endforeach + + \ No newline at end of file diff --git a/routes/modules/modules.php b/routes/modules/modules.php index debae81..3f14312 100644 --- a/routes/modules/modules.php +++ b/routes/modules/modules.php @@ -84,6 +84,7 @@ Route::name('kuesioner.')->prefix('kuesioner')->group(function () { Route::get('/verifikasi/{id?}',[KuesionerController::class,'verifikasi'])->name('verifikasi'); Route::get('/tolak/{id?}',[KuesionerController::class,'tolak'])->name('tolak'); Route::get('/kembalikan/{id?}',[KuesionerController::class,'kembalikan'])->name('kembalikan'); + Route::get('/dokumen/{id?}',[KuesionerController::class,'dokumen'])->name('dokumen'); }); Route::name('sampah.')->prefix('sampah')->group(function () {