adaptationService = $adaptationService; $this->mitigationService = $mitigationService; } /** * Display a listing of the resource. */ public function index() { $data['route'] = $this->route; $data['title'] = $this->title; return view($this->template.'.index',$data); } public function grid() { if(auth()->user()->ms_group_id == 1){ $data = LembarPengesahan::with(['agency'])->where('tahun',date('Y'))->get(); }else{ $data = LembarPengesahan::with(['agency'])->where('tahun',date('Y'))->where('agency_id',auth()->user()->ms_agency_id)->get(); } $_data = []; foreach ($data as $key => $row) { $btn = 'Edit'; $btn .= '
'; $btn .= csrf_field(); $btn .= method_field('DELETE'); $btn .= ''; $btn .= '
'; $download = 'Download File'; $datanya = ''; if($row->type == 'inventory'){ $sektor = json_decode($row->sektor); foreach($sektor as $datasek){ $datanya .= ''.$datasek.'
'; } }elseif($row->type == 'adaptasi'){ $datanya .= ''; }elseif($row->type == 'mitigasi'){ $datanya .= ''; } if ($row->row_status == 1) { $status = 'Aktif'; } else { $status = 'Tidak Aktif'; } $_data[] = [ 'no' => $key+1, 'name' => $row->name, 'type' => \Str::title($row->type), 'agency' => $row->agency->name, 'file' => $download, 'data' => @$datanya, 'status' => $status, 'action' => @$btn, ]; } return response()->json($_data); } /** * Show the form for creating a new resource. */ public function create() { $year = (int) request()->input('adaptationYear', date('Y')); $adaptasi = $this->adaptationService->getDashboardData($year); $mitigasi = $this->mitigationService->getDashboardData($year); $data['route'] = $this->route; $data['title'] = $this->title; $data['kegiatanAdaptasi'] = $adaptasi['tableData']; $data['kegiatanMitigasi'] = $mitigasi['tableData']; return view($this->template.'.form',$data); } public function update($id = null) { $year = (int) request()->input('adaptationYear', date('Y')); $adaptasi = $this->adaptationService->getDashboardData($year); $mitigasi = $this->mitigationService->getDashboardData($year); $keyId = decode_id($id); $data['title'] = $this->title; $data['route'] = $this->route; $data['keyId'] = $id; $data['kegiatanAdaptasi'] = $adaptasi['tableData']; $data['kegiatanMitigasi'] = $mitigasi['tableData']; $data['item'] = LembarPengesahan::find($keyId); return view($this->template.'.form',$data); } /** * Store a newly created resource in storage. */ public function store(Request $request) { $request->validate([ // 'file' => 'required', 'type' => 'required', ]); try { if(@$request->secure_id){ $ag = LembarPengesahan::find(decode_id(@$request->secure_id)); $ag->keterangan = $request->keterangan; if($request->type == 'inventory'){ $ag->sektor = json_encode($request->sektor); }elseif($request->type == 'adaptasi'){ $ag->form_id = json_encode($request->kegiatan_adaptasi); }elseif($request->type == 'mitigasi'){ $ag->form_id = json_encode($request->kegiatan_mitigasi); } 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->file = $filePathTim; } $ag->save(); }else{ $ag = new LembarPengesahan; $ag->user_id = auth()->user()->id; $ag->agency_id = auth()->user()->ms_agency_id; $ag->tahun = date('Y'); $ag->type = $request->type; $ag->keterangan = $request->keterangan; if($request->type == 'inventory'){ $ag->sektor = json_encode($request->sektor); }elseif($request->type == 'adaptasi'){ $ag->form_id = json_encode($request->kegiatan_adaptasi); }elseif($request->type == 'mitigasi'){ $ag->form_id = json_encode($request->kegiatan_mitigasi); } 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->file = $filePathTim; $ag->status = 1; $ag->save(); } return redirect()->route($this->route.'.index')->with('success', 'Lembar Pengesahan berhasil ditambahkan.'); } catch (\Exception $e) { return back()->withErrors(['error' => 'Lembar Pengesahan gagal disimpan. Silakan coba lagi. Error: ' . $e->getMessage()]); } } /** * Display the specified resource. */ public function show(string $id) { // } /** * Show the form for editing the specified resource. */ public function edit(string $id) { $data['ar'] = LembarPengesahan::find($id); $data['route'] = $this->route; $data['title'] = $this->title; return view($this->template.'.form', $data); } /** * Update the specified resource in storage. */ /** * Remove the specified resource from storage. */ public function destroy(string $id) { // } }