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){ $katArray = explode(',', $kategori); $subArray = explode(',', $subUnit); $klaArray = explode(',', $klasifikasi); $unitKerja = UnitKerja::where('statusenabled', true) ->where('id', $filterUnit) ->with(['subUnitKerja' => function ($query) use ($katArray, $filterUnit, $subArray, $klaArray) { $query->whereIn('id', $subArray) ->with(['fileDirectory' => function ($q) use ($katArray, $filterUnit, $subArray, $klaArray) { $q->when($filterUnit, function ($subQ) use ($filterUnit) { $subQ->where('id_unit_kerja', $filterUnit); })->when(!empty($subArray), function ($subQ) use ($subArray) { $subQ->whereIn('id_sub_unit_kerja', $subArray); })->when(!empty($katArray), function ($subQ) use ($katArray) { $subQ->whereIn('master_kategori_directory_id', $katArray); })->when(!empty($klaArray), function ($subQ) use ($klaArray) { $subQ->whereIn('master_klasifikasi_directory_id', $klaArray); }); }]); }]) ->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"); list($id_unit_kerja, $nama_unit_kerja) = explode('/', $value['id_unit_kerja'],2); list($id_sub_unit_kerja, $nama_sub_unit_kerja) = explode('/', $value['id_sub_unit_kerja'],2); list($master_kategori_directory_id, $nama_kategori) = explode('/', $value['master_kategori_directory_id'],2); list($klasifikasi, $nama_klasifikasi) = explode('/', $value['klasifikasi'],2); $payload = [ 'master_klasifikasi_directory_id' => $klasifikasi, 'id_unit_kerja' => $id_unit_kerja, 'id_sub_unit_kerja' => $id_sub_unit_kerja, 'master_kategori_directory_id' => $master_kategori_directory_id, 'pegawai_id_entry' => auth()->user()->id ?? 1, 'pegawai_nama_entry' => auth()->user()->namalengkap ?? 'tes', ]; if($file){ $imageName = $file->getClientOriginalName(); $path = "{$nama_unit_kerja}/{$nama_sub_unit_kerja}/{$nama_kategori}/{$nama_klasifikasi}"; $file->storeAs($path, $imageName, 'file_directory'); $payload['file'] =$path .'/' .$imageName; } 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{ $data= $query->where('id', $authUnitKerja) ->with(['subUnitKerja' => function($query) use($authSubUnitKerja){ $query->where('id', $authSubUnitKerja); }])->select('id', 'name')->get(); return response()->json([ 'status' => true, 'data' => $data ], 200); } $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(); if(!$data){ return response()->json([ 'success' => false, 'message' => 'File tidak ditemukan' ]); } $oldPath= public_path('file/' . $data->file); $fileInfo = pathinfo($data->file); $newFileName = $fileInfo['filename'] . '_deleted.' . $fileInfo['extension']; $newPath = public_path('file/' . $fileInfo['dirname'] . '/' . $newFileName); if (file_exists($oldPath)) { // pastikan folder tujuan ada if (!is_dir(dirname($newPath))) { mkdir(dirname($newPath), 0777, true); } rename($oldPath, $newPath); } $data->update(['statusenabled' => false, 'file' => $fileInfo['dirname'].'/'. $newFileName]); return response()->json([ 'success' => true, 'message' => 'Berhasil menghapus data' ]); } }