diff --git a/app/Helpers/custom.php b/app/Helpers/custom.php index c9c7148..3cdde3f 100644 --- a/app/Helpers/custom.php +++ b/app/Helpers/custom.php @@ -4,9 +4,62 @@ use Illuminate\Support\Str; use App\Models\Master\Menu; use App\Models\Master\AccessMenu; use App\Models\User; +use App\Models\Agency; use App\Models\Master\Group; use App\Models\UnitKonversi; use App\Models\GWP; +use App\Services\DashboardMitigationService; +use App\Services\DashboardAdaptationService; +use App\Models\KegiatanMitigasi; +use App\Models\KegiatanAdaptasi; + +if (!function_exists('sumberData')) { + /** + * @param $val + * + * @return string + */ + function sumberData($data,$type) + { + + $res = ""; + $res = []; + $d = ''; + + if($type == 'mitigasi'){ + $dashboardData = KegiatanMitigasi::whereIn('id',$data)->get(); + foreach ($dashboardData as $key => $value) { + $d .= $value->nama_kegiatan; + } + }elseif($type == 'adaptasi'){ + $dashboardData = KegiatanAdaptasi::whereIn('id',$data)->get(); + foreach ($dashboardData as $key => $value) { + $d .= $value->nama_kegiatan; + } + }elseif($type == 'inventory'){ + $d .= $value; + } + + array_push($res, $d); + + $res = implode(",", $res); + + return $res; + } +} + +if (!function_exists('getAgency')) { + /** + * @param $val + * + * @return string + */ + function getAgency($val) + { + $data = Agency::where('id',$val)->first(); + return $data; + } +} if (!function_exists('taskLabel')) { /** diff --git a/app/Http/Controllers/LembarPengesahanController.php b/app/Http/Controllers/LembarPengesahanController.php index 1d0e6c5..df638e8 100644 --- a/app/Http/Controllers/LembarPengesahanController.php +++ b/app/Http/Controllers/LembarPengesahanController.php @@ -50,7 +50,7 @@ class LembarPengesahanController extends Controller } if(auth()->user()->ms_group_id == 1){ if($row->status == 0){ - $btn .= 'Verifikasi'; + $btn .= 'Upload Berkas'; $btn .= 'Tolak Verifikasi'; } } @@ -293,4 +293,80 @@ class LembarPengesahanController extends Controller { // } + + function generate(Request $request) { + // dd($request->all()); + + $phpWord = new \PhpOffice\PhpWord\PhpWord(); + + $templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor(asset('assets/dokumen_pengesahan.docx')); + + $templateProcessor->setValue('tahun_dokumen', date('Y')); + $templateProcessor->setValue('tahun_data', date('Y')-1); + $templateProcessor->setValue('pengampu_data', $request->nama_instansi); + $templateProcessor->setValue('sektor', \Str::title($request->type)); + $templateProcessor->setValue('jenis_data', $request->jenis_data); + if($request->type == 'mitigasi'){ + $templateProcessor->setValue('sumber_data', sumberData($request->kegiatan_mitigasi,$request->type)); + }elseif($request->type == 'adaptasi'){ + $templateProcessor->setValue('sumber_data', sumberData($request->kegiatan_adaptasi,$request->type)); + }elseif($request->type == 'inventory'){ + $templateProcessor->setValue('sumber_data', sumberData($request->sektor,$request->type)); + } + $templateProcessor->setValue('kepala_pengampu_data', $request->kepala_pengampu_data); + $templateProcessor->setValue('nama_instansi', $request->nama_instansi); + + // Simpan hasil sementara + // $tempDocx = public_path('123.docx'); + + + // Buat file temporary + $tempFile = tempnam(sys_get_temp_dir(), 'dokumen_') . '.docx'; + $templateProcessor->saveAs($tempFile); + + // Nama file saat didownload + $downloadName = 'dokumen_pengesahan_' . date('YmdHis') . '.docx'; + + return response() + ->download($tempFile, $downloadName) + ->deleteFileAfterSend(true); + } + + function upload(Request $request){ + + if (@$request->hasFile('file')) { + $file = $request->file('file'); + $destinationPath = public_path('uploads/pengesahan'); + $current = Carbon::now()->format('Y/m/d'); + $path = $destinationPath . '/' . $current; + $fileExtension = $file->getClientOriginalExtension(); + $fileSize = $file->getSize(); + if($fileExtension != 'pdf'){ + return redirect()->back()->with([ + 'message' => 'Maaf File Harus Berupa PDF!', + 'type' => "error" + ]); + } + $newFilename = session('id').'_'.uniqid('file_') . '.' . $fileExtension; + + if (!File::exists($path)) { + File::isDirectory($path) or File::makeDirectory($path, 0777, true, true); + } + + $filePathTim = 'pengesahan/' . $current . '/' . $newFilename; + $uploaded = $file->move($path, $newFilename); + + $ag = LembarPengesahan::find(decode_id(@$request->secure_id)); + $ag->file = $filePathTim; + // if(auth()->user()->ms_group_id != 1){ + $ag->status = 1; + // } + $ag->save(); + return redirect()->route($this->route.'.index')->with('success', 'Lembar Pengesahan berhasil diverifikasi.'); + }else{ + return back()->withErrors(['error' => 'Lembar Pengesahan gagal disimpan. Silakan coba lagi']); + } + + + } } diff --git a/resources/views/modules/pengesahan/form.blade.php b/resources/views/modules/pengesahan/form.blade.php index b3db17b..1383102 100644 --- a/resources/views/modules/pengesahan/form.blade.php +++ b/resources/views/modules/pengesahan/form.blade.php @@ -15,161 +15,11 @@
- {{-- -
-
- -
- - @error('type') - {{$message}} - @enderror -
-
-
- -
-
- -
- @php - $selectedSektor = json_decode(@$item->sektor, true) ?? []; - - $options = [ - 'Energi' => [ - 'Pembangkit Listrik', - 'Industri Manufaktur', - 'Transportasi', - 'Komersial', - 'Rumah Tangga', - 'Energi Lainnya', - 'Penggunaan Listrik PLN', - 'Transmisi & Distribusi', - 'Penyulingan', - 'Penggunaan Listrik', - 'Bahan Bakar Listrik', - 'Emisi Fugitive Batu Bara', - 'Emisi Fugitive Migas', - ], - 'IPPU' => [ - 'Produksi', - 'Pelumas & Parafin', - 'Karbonat Kaca', - 'Karbonat Keramik', - 'Karbonat Lainnya', - 'Karbonat Pulp Paper', - 'Karbonat Makanan & Minuman', - 'Penggunaan AC', - ], - 'Pertanian & Lahan' => [ - 'Pengelolaan Kotoran Ternak', - 'Populasi Ternak', - 'Sawah', - 'Tanaman Pangan', - 'Konsumsi Pupuk', - 'Hortikultura', - 'Pengairan Sawah', - 'Sistem Air Sebelum Penananman Padi Sawah', - 'Matriks Transisi Pertumbuhan Tutupan Lahan', - 'Kehilangan Kayu', - 'Perubahan Lahan Pemukiman', - ], - 'Limbah' => [ - 'Kependudukan', - 'Timbulan Sampah', - 'Distribusi Sampah Domestik', - 'Sarana Air Limbah Domestik', - 'Limbah Cair Industri', - ] - ]; - @endphp - - @error('type') - {{$message}} - @enderror -
-
-
- --}} - form_id, true) ?? []; - ?> - {{-- -
-
- -
- - - @error('kegiatan') - {{$message}} - @enderror -
-
-
- -
-
- -
- - @error('kegiatan') - {{$message}} - @enderror -
-
-
- -
-
- -
- - @error('keterangan') - {{$message}} - @enderror -
-
-
- --}}
@@ -201,9 +51,227 @@ + + + + @endsection @section('js')