select('master_kategori_directory_id', 'nama_kategori_directory')->get(); $klasifikasiDok = MasterKlasifikasi::where('statusenabled', true)->select('master_klasifikasi_directory_id', 'nama_klasifikasi_directory')->get(); $authMapping = auth()->user()?->dataUser?->mappingUnitKerjaPegawai[0]; $authUnitKerja = $authMapping->objectunitkerjapegawaifk; $authSubUnitKerja = $authMapping->objectsubunitkerjapegawaifk; $allAkses = AksesFile::where(['statusenabled' => true, 'pegawai_id' => auth()->user()?->dataUser->id])->first(); $payload = [ 'title' => 'Dashboard', 'katDok' => $katDok, 'klasifikasiDok' => $klasifikasiDok, 'authUnitKerja' => $authUnitKerja, 'authSubUnitKerja' => $authSubUnitKerja, 'allAkses' => $allAkses ?? null ]; return view('dashboard.index', $payload); } public function dataUnitKerja(){ $authMapping = auth()->user()?->dataUser?->mappingUnitKerjaPegawai[0]; $authUnitKerja = $authMapping->objectunitkerjapegawaifk; $authSubUnitKerja = $authMapping->objectsubunitkerjapegawaifk; $kategori = request('kategori'); $filterUnit = request('unitKerja'); $subUnit = request('subUnit'); $klasifikasi = request('klasifikasi'); if($kategori && $filterUnit && $subUnit && $klasifikasi){ $unitKerja = UnitKerja::where('statusenabled', true) ->where('id', $filterUnit) ->with(['subUnitKerja' => function ($query) use ($kategori, $filterUnit, $subUnit, $klasifikasi) { $query->where('id', $subUnit) ->with(['fileDirectory' => function ($q) use ($kategori, $filterUnit, $subUnit, $klasifikasi) { $q->when($filterUnit, function ($subQ) use ($filterUnit) { $subQ->where('id_unit_kerja', $filterUnit); })->when($subUnit, function ($subQ) use ($subUnit) { $subQ->where('id_sub_unit_kerja', $subUnit); })->when($kategori, function ($subQ) use ($kategori) { $subQ->where('master_kategori_directory_id', $kategori); })->when($klasifikasi, function ($subQ) use ($klasifikasi) { $subQ->where('master_klasifikasi_directory_id', $klasifikasi); }); }]); }]) ->select('id', 'name') ->get(); } $katDok = MasterKategori::where('statusenabled', true)->select('master_kategori_directory_id', 'nama_kategori_directory')->get(); $data = [ 'unitKerja' => $unitKerja ?? null, 'katDok' => $katDok ]; return response()->json([ 'status' => true, 'data' => $data, ], 200); } public function store(){ DB::connection('dbDirectory')->beginTransaction(); try { $datas = request()->input('data'); $result = []; foreach($datas as $index => $value){ $file = request()->file("data.$index.file"); $payload = [ 'master_klasifikasi_directory_id' => $value['klasifikasi'], 'id_unit_kerja' => $value['id_unit_kerja'], 'id_sub_unit_kerja' => $value['id_sub_unit_kerja'], 'master_kategori_directory_id' => $value['master_kategori_directory_id'], 'pegawai_id_entry' => auth()->user()->id ?? 1, 'pegawai_nama_entry' => auth()->user()->namalengkap ?? 'tes', ]; if($file){ $imageName = $file->getClientOriginalName(); Storage::disk('file_directory')->put($imageName, file_get_contents($file)); $payload['file'] =$imageName; } $saved = FileDirectory::create($payload); } DB::connection('dbDirectory')->commit(); return response()->json([ 'status' => true, 'message' => 'Data berhasil disimpan', 'data' => count($result) == 1 ? $result[0] : $result ], 200); } catch (\Throwable $th) { DB::connection('dbDirectory')->rollBack(); return response()->json([ 'status' => false, 'message' => $th->getMessage() ], 500); } } public function OptionUnitKerja(){ $q = request()->get('q'); $authPegawai = auth()->user()?->dataUser; $authUnitKerja = optional($authPegawai->mappingUnitKerjaPegawai[0] ?? null)->objectunitkerjapegawaifk; $authSubUnitKerja = optional($authPegawai->mappingUnitKerjaPegawai[0] ?? null)->objectsubunitkerjapegawaifk; $aksesFile = AksesFile::where('pegawai_id', $authPegawai->id) ->where('statusenabled', true) ->first(); $query = UnitKerja::where('statusenabled', true); if($aksesFile){ if($aksesFile->all_akses){ }elseif($aksesFile->unit_akses){ $query->where('id', $aksesFile->unit_akses); } }else{ $query->where('id', $authUnitKerja) ->with(['subUnitKerja' => function($query) use($authSubUnitKerja){ $query->where('id', $authSubUnitKerja); }]); } $data = $query->when($q, function ($query, $q){ $query->where('name', 'ILIKE', '%' .$q . '%'); }) ->select('id', 'name')->get(); return response()->json([ 'status' => true, 'data' => $data ], 200); } public function deleteFile(string $id){ $data = FileDirectory::where('file_directory_id', $id)->first(); $data->update(['statusenabled' => false]); return response()->json([ 'success' => true, 'message' => 'Berhasil menghapus data' ]); } }