Compare commits
No commits in common. "main" and "revisi2" have entirely different histories.
@ -1956,37 +1956,28 @@ class DashboardController extends Controller
|
|||||||
$hasAtasanScope = !empty($objectpegawaifk);
|
$hasAtasanScope = !empty($objectpegawaifk);
|
||||||
// 51 / Komite Mutu
|
// 51 / Komite Mutu
|
||||||
// 22 / turt
|
// 22 / turt
|
||||||
$query = FileDirectory::query()
|
$query = FileDirectory::where('statusenabled', true);
|
||||||
->from('public.file_directory as fd')
|
|
||||||
->select([
|
|
||||||
'fd.*',
|
|
||||||
'k.nama_kategori_directory',
|
|
||||||
'u.name as nama_unit',
|
|
||||||
])
|
|
||||||
->where('fd.statusenabled', true)
|
|
||||||
->leftJoin('public.master_kategori_directory as k', 'k.master_kategori_directory_id', '=','fd.master_kategori_directory_id')
|
|
||||||
->leftJoin('public.unitkerjapegawai_m as u', 'u.id', '=', 'fd.id_unit_kerja');
|
|
||||||
$query->where(function ($root) use ($isKomiteMutu, $isTurt, $hasAtasanScope, $objectpegawaifk) {
|
$query->where(function ($root) use ($isKomiteMutu, $isTurt, $hasAtasanScope, $objectpegawaifk) {
|
||||||
if ($hasAtasanScope) {
|
if ($hasAtasanScope) {
|
||||||
$root->where(function ($atasanQuery) use ($objectpegawaifk, $hasAtasanScope) {
|
$root->where(function ($atasanQuery) use ($objectpegawaifk, $hasAtasanScope) {
|
||||||
$atasanQuery->whereIn('fd.pegawai_id_entry', $objectpegawaifk)->where(function ($qsa) {
|
$atasanQuery->whereIn('pegawai_id_entry', $objectpegawaifk)->where(function ($qsa) {
|
||||||
$qsa->where('fd.status_action', '!=', 'approved')
|
$qsa->where('status_action', '!=', 'approved')
|
||||||
->orWhereNull('fd.status_action')
|
->orWhereNull('status_action')
|
||||||
->orWhere(function ($approvedButPending) {
|
->orWhere(function ($approvedButPending) {
|
||||||
$approvedButPending->where(function ($needFurtherApproval) {
|
$approvedButPending->where(function ($needFurtherApproval) {
|
||||||
$needFurtherApproval
|
$needFurtherApproval
|
||||||
->where(function ($needTurt) {
|
->where(function ($needTurt) {
|
||||||
$needTurt->whereNotNull('fd.master_kategori_directory_id')
|
$needTurt->whereNotNull('master_kategori_directory_id')
|
||||||
->where(function ($pendingTurt) {
|
->where(function ($pendingTurt) {
|
||||||
$pendingTurt->whereNull('fd.status_turt')
|
$pendingTurt->whereNull('status_turt')
|
||||||
->orWhereIn('fd.status_turt', ['rejected Turt', 'revised Turt']);
|
->orWhereIn('status_turt', ['rejected Turt', 'revised Turt']);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
->orWhere(function ($needMutu) {
|
->orWhere(function ($needMutu) {
|
||||||
$needMutu->where('fd.is_akre', true)
|
$needMutu->where('is_akre', true)
|
||||||
->where(function ($pendingMutu) {
|
->where(function ($pendingMutu) {
|
||||||
$pendingMutu->whereNull('fd.status_mutu')
|
$pendingMutu->whereNull('status_mutu')
|
||||||
->orWhereIn('fd.status_mutu', ['rejected Mutu', 'revised Mutu']);
|
->orWhereIn('status_mutu', ['rejected Mutu', 'revised Mutu']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -1998,24 +1989,24 @@ class DashboardController extends Controller
|
|||||||
if ($isKomiteMutu || $isTurt) {
|
if ($isKomiteMutu || $isTurt) {
|
||||||
$method = $hasAtasanScope ? 'orWhere' : 'where';
|
$method = $hasAtasanScope ? 'orWhere' : 'where';
|
||||||
$root->{$method}(function ($roleQuery) use ($isKomiteMutu, $isTurt) {
|
$root->{$method}(function ($roleQuery) use ($isKomiteMutu, $isTurt) {
|
||||||
$roleQuery->where('fd.status_action', 'approved')
|
$roleQuery->where('status_action', 'approved')
|
||||||
->where(function ($q) use ($isKomiteMutu, $isTurt) {
|
->where(function ($q) use ($isKomiteMutu, $isTurt) {
|
||||||
if ($isTurt) {
|
if ($isTurt) {
|
||||||
$q->where(function ($sub) {
|
$q->where(function ($sub) {
|
||||||
$sub->whereNotNull('fd.master_kategori_directory_id')
|
$sub->whereNotNull('master_kategori_directory_id')
|
||||||
->where(function ($pendingTurt) {
|
->where(function ($pendingTurt) {
|
||||||
$pendingTurt->whereNull('fd.status_turt')
|
$pendingTurt->whereNull('status_turt')
|
||||||
->orWhereIn('fd.status_turt', ['rejected Turt', 'revised Turt']);
|
->orWhereIn('status_turt', ['rejected Turt', 'revised Turt']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if ($isKomiteMutu) {
|
if ($isKomiteMutu) {
|
||||||
$innerMethod = $isTurt ? 'orWhere' : 'where';
|
$innerMethod = $isTurt ? 'orWhere' : 'where';
|
||||||
$q->{$innerMethod}(function ($sub) {
|
$q->{$innerMethod}(function ($sub) {
|
||||||
$sub->where('fd.is_akre', true)
|
$sub->where('is_akre', true)
|
||||||
->where(function ($pendingMutu) {
|
->where(function ($pendingMutu) {
|
||||||
$pendingMutu->whereNull('fd.status_mutu')
|
$pendingMutu->whereNull('status_mutu')
|
||||||
->orWhereIn('fd.status_mutu', ['rejected Mutu', 'revised Mutu']);
|
->orWhereIn('status_mutu', ['rejected Mutu', 'revised Mutu']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -2025,47 +2016,20 @@ class DashboardController extends Controller
|
|||||||
});
|
});
|
||||||
$query->when($keyword, function ($q) use ($keyword) {
|
$query->when($keyword, function ($q) use ($keyword) {
|
||||||
$q->where(function ($sub) use ($keyword) {
|
$q->where(function ($sub) use ($keyword) {
|
||||||
$sub->where('fd.nama_dokumen', 'ILIKE', "%{$keyword}%")
|
$sub->where('nama_dokumen', 'ILIKE', "%{$keyword}%")
|
||||||
->orWhere('fd.no_dokumen', 'ILIKE', "%{$keyword}%");
|
->orWhere('no_dokumen', 'ILIKE', "%{$keyword}%");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
if($start){
|
if($start){
|
||||||
$query->whereDate('fd.entry_at','>=',$start);
|
$query->whereDate('entry_at','>=',$start);
|
||||||
}
|
}
|
||||||
if($end){
|
if($end){
|
||||||
$query->whereDate('fd.entry_at','<=',$end);
|
$query->whereDate('entry_at','<=',$end);
|
||||||
}
|
}
|
||||||
|
|
||||||
$paginated = $query->paginate($perPage);
|
$paginated = $query->paginate($perPage);
|
||||||
$data = $paginated->getCollection()->map(function($item) use($objectpegawaifk, $pegawaiId){
|
$data = $paginated->getCollection()->map(function($item) use($objectpegawaifk, $pegawaiId){
|
||||||
$dataSlice = array_values(array_filter(explode('/', $item->file)));
|
$dataSlice = array_values(array_filter(explode('/', $item->file)));
|
||||||
$kategori = null;
|
|
||||||
if ($item->is_akre) {
|
|
||||||
$kategori = 'Dokumen Akreditasi (' . $dataSlice[0] . '/' . $dataSlice[1] . ')';
|
|
||||||
|
|
||||||
if (!empty($item->nama_kategori_directory)) {
|
|
||||||
$kategori .= ' ' . $item->nama_kategori_directory;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($item->kategori_hukum)) {
|
|
||||||
$kategori .= ' - ' . $item->kategori_hukum;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$kategori = '';
|
|
||||||
|
|
||||||
if (!empty($item->nama_kategori_directory)) {
|
|
||||||
$kategori .= $item->nama_kategori_directory;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($item->kategori_hukum)) {
|
|
||||||
$kategori .= ($kategori ? ' - ' : '') . $item->kategori_hukum;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Jika keduanya kosong
|
|
||||||
if ($kategori === '') {
|
|
||||||
$kategori = '-';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return [
|
return [
|
||||||
'file_directory_id' => $item->file_directory_id,
|
'file_directory_id' => $item->file_directory_id,
|
||||||
'pegawai_nama_entry' => $item->pegawai_nama_entry,
|
'pegawai_nama_entry' => $item->pegawai_nama_entry,
|
||||||
@ -2091,8 +2055,6 @@ class DashboardController extends Controller
|
|||||||
'can_approve_atasan' => in_array($item->pegawai_id_entry, $objectpegawaifk),
|
'can_approve_atasan' => in_array($item->pegawai_id_entry, $objectpegawaifk),
|
||||||
'can_edit_submission' => (int) $item->pegawai_id_entry === (int) $pegawaiId,
|
'can_edit_submission' => (int) $item->pegawai_id_entry === (int) $pegawaiId,
|
||||||
'revision' => $item->revision,
|
'revision' => $item->revision,
|
||||||
'kategori' => $kategori,
|
|
||||||
'nama_unit' => $item->nama_unit,
|
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
return response()->json([
|
return response()->json([
|
||||||
@ -2911,60 +2873,51 @@ class DashboardController extends Controller
|
|||||||
})
|
})
|
||||||
->exists();
|
->exists();
|
||||||
|
|
||||||
$query = FileDirectory::query()
|
$query = FileDirectory::with('kategori')->where('statusenabled', true);
|
||||||
->from('public.file_directory as fd')
|
|
||||||
->select([
|
|
||||||
'fd.*',
|
|
||||||
'k.nama_kategori_directory',
|
|
||||||
'u.name as nama_unit',
|
|
||||||
])
|
|
||||||
->leftJoin('public.master_kategori_directory as k', 'k.master_kategori_directory_id', '=', 'fd.master_kategori_directory_id')
|
|
||||||
->leftJoin('public.unitkerjapegawai_m as u', 'u.id', '=', 'fd.id_unit_kerja')
|
|
||||||
->where('fd.statusenabled', true);
|
|
||||||
|
|
||||||
if ($mode === 'persetujuan' && ($isKomiteMutu || $isTurt || $isAtasan)) {
|
if ($mode === 'persetujuan' && ($isKomiteMutu || $isTurt || $isAtasan)) {
|
||||||
$query->where(function ($root) use ($isKomiteMutu, $isTurt, $isAtasan, $pegawaiId) {
|
$query->where(function ($root) use ($isKomiteMutu, $isTurt, $isAtasan, $pegawaiId) {
|
||||||
if ($isKomiteMutu || $isTurt) {
|
if ($isKomiteMutu || $isTurt) {
|
||||||
$root->where(function ($q) use ($isKomiteMutu, $isTurt) {
|
$root->where(function ($q) use ($isKomiteMutu, $isTurt) {
|
||||||
if ($isTurt) {
|
if ($isTurt) {
|
||||||
$q->whereNotNull('fd.master_kategori_directory_id')
|
$q->whereNotNull('master_kategori_directory_id')
|
||||||
->where(function ($pendingTurt) {
|
->where(function ($pendingTurt) {
|
||||||
$pendingTurt->whereNull('fd.status_turt')
|
$pendingTurt->whereNull('status_turt')
|
||||||
->orWhereIn('fd.status_turt', ['rejected Turt', 'revised Turt']);
|
->orWhereIn('status_turt', ['rejected Turt', 'revised Turt']);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if ($isKomiteMutu) {
|
if ($isKomiteMutu) {
|
||||||
$method = $isTurt ? 'orWhere' : 'where';
|
$method = $isTurt ? 'orWhere' : 'where';
|
||||||
$q->{$method}(function ($sub) {
|
$q->{$method}(function ($sub) {
|
||||||
$sub->where('fd.is_akre', true)
|
$sub->where('is_akre', true)
|
||||||
->where(function ($pendingMutu) {
|
->where(function ($pendingMutu) {
|
||||||
$pendingMutu->whereNull('fd.status_mutu')
|
$pendingMutu->whereNull('status_mutu')
|
||||||
->orWhereIn('fd.status_mutu', ['rejected Mutu', 'revised Mutu']);
|
->orWhereIn('status_mutu', ['rejected Mutu', 'revised Mutu']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
})->where('fd.status_action', 'approved');
|
})->where('status_action', 'approved');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($isAtasan) {
|
if ($isAtasan) {
|
||||||
$method = ($isKomiteMutu || $isTurt) ? 'orWhere' : 'where';
|
$method = ($isKomiteMutu || $isTurt) ? 'orWhere' : 'where';
|
||||||
$root->{$method}(function ($ownSubmission) use ($pegawaiId) {
|
$root->{$method}(function ($ownSubmission) use ($pegawaiId) {
|
||||||
$ownSubmission->where('fd.pegawai_id_entry', $pegawaiId)
|
$ownSubmission->where('pegawai_id_entry', $pegawaiId)
|
||||||
->where('fd.status_action', 'approved')
|
->where('status_action', 'approved')
|
||||||
->where(function ($needFurtherApproval) {
|
->where(function ($needFurtherApproval) {
|
||||||
$needFurtherApproval
|
$needFurtherApproval
|
||||||
->where(function ($needTurt) {
|
->where(function ($needTurt) {
|
||||||
$needTurt->whereNotNull('fd.master_kategori_directory_id')
|
$needTurt->whereNotNull('master_kategori_directory_id')
|
||||||
->where(function ($pendingTurt) {
|
->where(function ($pendingTurt) {
|
||||||
$pendingTurt->whereNull('fd.status_turt')
|
$pendingTurt->whereNull('status_turt')
|
||||||
->orWhereIn('fd.status_turt', ['rejected Turt', 'revised Turt']);
|
->orWhereIn('status_turt', ['rejected Turt', 'revised Turt']);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
->orWhere(function ($needMutu) {
|
->orWhere(function ($needMutu) {
|
||||||
$needMutu->where('fd.is_akre', true)
|
$needMutu->where('is_akre', true)
|
||||||
->where(function ($pendingMutu) {
|
->where(function ($pendingMutu) {
|
||||||
$pendingMutu->whereNull('fd.status_mutu')
|
$pendingMutu->whereNull('status_mutu')
|
||||||
->orWhereIn('fd.status_mutu', ['rejected Mutu', 'revised Mutu']);
|
->orWhereIn('status_mutu', ['rejected Mutu', 'revised Mutu']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -2972,38 +2925,38 @@ class DashboardController extends Controller
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
$query->where('fd.pegawai_id_entry', $pegawaiId)
|
$query->where('pegawai_id_entry', $pegawaiId)
|
||||||
->when($isHistory, function($q){
|
->when($isHistory, function($q){
|
||||||
$q->where('fd.status_action', 'approved')
|
$q->where('status_action', 'approved')
|
||||||
->where(function ($sub) {
|
->where(function ($sub) {
|
||||||
$sub->whereNull('fd.master_kategori_directory_id')
|
$sub->whereNull('master_kategori_directory_id')
|
||||||
->orWhere('fd.status_turt', 'approved');
|
->orWhere('status_turt', 'approved');
|
||||||
})
|
})
|
||||||
->where(function ($sub) {
|
->where(function ($sub) {
|
||||||
$sub->where('fd.is_akre', '!=', true)
|
$sub->where('is_akre', '!=', true)
|
||||||
->orWhereNull('fd.is_akre')
|
->orWhereNull('is_akre')
|
||||||
->orWhere('fd.status_mutu', 'approved');
|
->orWhere('status_mutu', 'approved');
|
||||||
});
|
});
|
||||||
}, function($q){
|
}, function($q){
|
||||||
$q->where(function($sub){
|
$q->where(function($sub){
|
||||||
$sub->where('fd.status_action', '!=', 'approved')
|
$sub->where('status_action', '!=', 'approved')
|
||||||
->orWhereNull('fd.status_action')
|
->orWhereNull('status_action')
|
||||||
->orWhere(function ($approvedButPending) {
|
->orWhere(function ($approvedButPending) {
|
||||||
$approvedButPending->where('fd.status_action', 'approved')
|
$approvedButPending->where('status_action', 'approved')
|
||||||
->where(function ($needFurtherApproval) {
|
->where(function ($needFurtherApproval) {
|
||||||
$needFurtherApproval
|
$needFurtherApproval
|
||||||
->where(function ($needTurt) {
|
->where(function ($needTurt) {
|
||||||
$needTurt->whereNotNull('fd.master_kategori_directory_id')
|
$needTurt->whereNotNull('master_kategori_directory_id')
|
||||||
->where(function ($pendingTurt) {
|
->where(function ($pendingTurt) {
|
||||||
$pendingTurt->whereNull('fd.status_turt')
|
$pendingTurt->whereNull('status_turt')
|
||||||
->orWhereIn('fd.status_turt', ['revised Turt', 'rejected Turt']);
|
->orWhere('status_turt', ['revised Turt', 'rejected Turt']);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
->orWhere(function ($needMutu) {
|
->orWhere(function ($needMutu) {
|
||||||
$needMutu->where('fd.is_akre', true)
|
$needMutu->where('is_akre', true)
|
||||||
->where(function ($pendingMutu) {
|
->where(function ($pendingMutu) {
|
||||||
$pendingMutu->whereNull('fd.status_mutu')
|
$pendingMutu->whereNull('status_mutu')
|
||||||
->orWhereIn('fd.status_mutu', ['revised Mutu', 'rejected Mutu']);
|
->orWhereIn('status_mutu', ['revised Mutu', 'rejected Mutu']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -3012,50 +2965,23 @@ class DashboardController extends Controller
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$query->orderBy('fd.entry_at','desc');
|
$query->orderBy('entry_at','desc');
|
||||||
if($keyword){
|
if($keyword){
|
||||||
$query->where(function($q) use ($keyword){
|
$query->where(function($q) use ($keyword){
|
||||||
$q->where('fd.file', 'ILIKE', "%{$keyword}%")
|
$q->where('file', 'ILIKE', "%{$keyword}%")
|
||||||
->orWhere('fd.no_dokumen', 'ILIKE', "%{$keyword}%")
|
->orWhere('no_dokumen', 'ILIKE', "%{$keyword}%")
|
||||||
->orWhere('fd.nama_dokumen', 'ILIKE', "%{$keyword}%");
|
->orWhere('nama_dokumen', 'ILIKE', "%{$keyword}%");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if($start){
|
if($start){
|
||||||
$query->whereDate('fd.entry_at','>=',$start);
|
$query->whereDate('entry_at','>=',$start);
|
||||||
}
|
}
|
||||||
if($end){
|
if($end){
|
||||||
$query->whereDate('fd.entry_at','<=',$end);
|
$query->whereDate('entry_at','<=',$end);
|
||||||
}
|
}
|
||||||
$paginated = $query->paginate($perPage);
|
$paginated = $query->paginate($perPage);
|
||||||
$data = $paginated->getCollection()->map(function($item){
|
$data = $paginated->getCollection()->map(function($item){
|
||||||
$dataSlice = array_values(array_filter(explode('/', $item->file)));
|
$dataSlice = array_values(array_filter(explode('/', $item->file)));
|
||||||
$kategori = null;
|
|
||||||
if ($item->is_akre) {
|
|
||||||
$kategori = 'Dokumen Akreditasi (' . $dataSlice[0] . '/' . $dataSlice[1] . ')';
|
|
||||||
|
|
||||||
if (!empty($item->nama_kategori_directory)) {
|
|
||||||
$kategori .= ' ' . $item->nama_kategori_directory;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($item->kategori_hukum)) {
|
|
||||||
$kategori .= ' - ' . $item->kategori_hukum;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$kategori = '';
|
|
||||||
|
|
||||||
if (!empty($item->nama_kategori_directory)) {
|
|
||||||
$kategori .= $item->nama_kategori_directory;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($item->kategori_hukum)) {
|
|
||||||
$kategori .= ($kategori ? ' - ' : '') . $item->kategori_hukum;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Jika keduanya kosong
|
|
||||||
if ($kategori === '') {
|
|
||||||
$kategori = '-';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return [
|
return [
|
||||||
'file_directory_id' => $item->file_directory_id,
|
'file_directory_id' => $item->file_directory_id,
|
||||||
'pegawai_nama_entry' => $item->pegawai_nama_entry,
|
'pegawai_nama_entry' => $item->pegawai_nama_entry,
|
||||||
@ -3080,9 +3006,9 @@ class DashboardController extends Controller
|
|||||||
'master_kategori_directory_id' => $item->master_kategori_directory_id,
|
'master_kategori_directory_id' => $item->master_kategori_directory_id,
|
||||||
'is_akre' => $item->is_akre,
|
'is_akre' => $item->is_akre,
|
||||||
'kategori_hukum' => $item->kategori_hukum,
|
'kategori_hukum' => $item->kategori_hukum,
|
||||||
'name_kategori' => $item->kategori_hukum ?? $item->nama_kategori_directory ?? null,
|
'name_kategori' => $item->kategori_hukum ?? $item->kategori?->nama_kategori_directory ?? null,
|
||||||
'nama_unit' => $item->nama_unit,
|
'name_unit' => $item->unit?->name ?? null,
|
||||||
'kategori' => $kategori,
|
'unit_kerja_name' => $item->unit?->name ?? null
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
return response()->json([
|
return response()->json([
|
||||||
@ -3370,8 +3296,6 @@ class DashboardController extends Controller
|
|||||||
$query = LogActivity::query()
|
$query = LogActivity::query()
|
||||||
->from('logging.log_activity_file_directory as log')
|
->from('logging.log_activity_file_directory as log')
|
||||||
->leftJoin('public.file_directory as fd', 'fd.file_directory_id', '=', 'log.file_directory_id')
|
->leftJoin('public.file_directory as fd', 'fd.file_directory_id', '=', 'log.file_directory_id')
|
||||||
->leftJoin('public.master_kategori_directory as k', 'k.master_kategori_directory_id', '=','fd.master_kategori_directory_id')
|
|
||||||
->leftJoin('public.unitkerjapegawai_m as u', 'u.id', '=', 'log.id_unit_kerja')
|
|
||||||
->where('log.statusenabled', true)
|
->where('log.statusenabled', true)
|
||||||
->whereNotIn('log.action_type', ['Membuka Dokumen', 'Download Dokumen'])
|
->whereNotIn('log.action_type', ['Membuka Dokumen', 'Download Dokumen'])
|
||||||
->select([
|
->select([
|
||||||
@ -3387,10 +3311,6 @@ class DashboardController extends Controller
|
|||||||
'fd.permission_file',
|
'fd.permission_file',
|
||||||
'fd.tanggal_terbit',
|
'fd.tanggal_terbit',
|
||||||
'fd.tgl_expired',
|
'fd.tgl_expired',
|
||||||
'fd.is_akre',
|
|
||||||
'fd.kategori_hukum',
|
|
||||||
'u.name as nama_unit',
|
|
||||||
'k.nama_kategori_directory'
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($isAtasan) {
|
if ($isAtasan) {
|
||||||
@ -3402,7 +3322,7 @@ class DashboardController extends Controller
|
|||||||
->values()
|
->values()
|
||||||
->all();
|
->all();
|
||||||
if (!empty($unitIds)) {
|
if (!empty($unitIds)) {
|
||||||
$query->whereIn('log.id_unit_kerja', $unitIds)->orWhere('log.pegawai_id_entry', auth()->user()->objectpegawaifk);
|
$query->whereIn('log.id_unit_kerja', $unitIds);
|
||||||
} else {
|
} else {
|
||||||
$query->whereRaw('1 = 0');
|
$query->whereRaw('1 = 0');
|
||||||
}
|
}
|
||||||
@ -3428,33 +3348,6 @@ class DashboardController extends Controller
|
|||||||
$paginated = $query->orderBy('log.entry_at', 'desc')->paginate($perPage);
|
$paginated = $query->orderBy('log.entry_at', 'desc')->paginate($perPage);
|
||||||
$data = $paginated->getCollection()->map(function ($item) {
|
$data = $paginated->getCollection()->map(function ($item) {
|
||||||
$parts = array_values(array_filter(explode('/', (string) $item->file)));
|
$parts = array_values(array_filter(explode('/', (string) $item->file)));
|
||||||
$kategori = null;
|
|
||||||
if ($item->is_akre) {
|
|
||||||
$kategori = 'Dokumen Akreditasi (' . $parts[0] . '/' . $parts[1] . ')';
|
|
||||||
|
|
||||||
if (!empty($item->nama_kategori_directory)) {
|
|
||||||
$kategori .= ' ' . $item->nama_kategori_directory;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($item->kategori_hukum)) {
|
|
||||||
$kategori .= ' - ' . $item->kategori_hukum;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$kategori = '';
|
|
||||||
|
|
||||||
if (!empty($item->nama_kategori_directory)) {
|
|
||||||
$kategori .= $item->nama_kategori_directory;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($item->kategori_hukum)) {
|
|
||||||
$kategori .= ($kategori ? ' - ' : '') . $item->kategori_hukum;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Jika keduanya kosong
|
|
||||||
if ($kategori === '') {
|
|
||||||
$kategori = '-';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return [
|
return [
|
||||||
'file_directory_id' => $item->file_directory_id,
|
'file_directory_id' => $item->file_directory_id,
|
||||||
'pegawai_nama_entry' => $item->pegawai_nama_entry,
|
'pegawai_nama_entry' => $item->pegawai_nama_entry,
|
||||||
@ -3469,8 +3362,6 @@ class DashboardController extends Controller
|
|||||||
'tgl_expired' => $item->tgl_expired,
|
'tgl_expired' => $item->tgl_expired,
|
||||||
'permission_file' => $item->permission_file,
|
'permission_file' => $item->permission_file,
|
||||||
'action_type' => $item->action_type,
|
'action_type' => $item->action_type,
|
||||||
'nama_unit' => $item->nama_unit,
|
|
||||||
'kategori' => $kategori ?? '-',
|
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -3964,25 +3855,9 @@ class DashboardController extends Controller
|
|||||||
'mod_change' => null,
|
'mod_change' => null,
|
||||||
'id_unit_kerja' => $data ? $data->id_unit_kerja : null,
|
'id_unit_kerja' => $data ? $data->id_unit_kerja : null,
|
||||||
'id_sub_unit_kerja' => $data ? $data->id_sub_unit_kerja : null,
|
'id_sub_unit_kerja' => $data ? $data->id_sub_unit_kerja : null,
|
||||||
'action_type' => 'Approved Dokumen Mutu By ' . auth()->user()?->dataUser?->namalengkap,
|
|
||||||
];
|
|
||||||
LogActivity::create($payloadLog);
|
|
||||||
|
|
||||||
$payloadLogApprovedByMutu = [
|
|
||||||
'file_directory_id' => $data->file_directory_id,
|
|
||||||
'pegawai_id_entry' => auth()->user()->objectpegawaifk,
|
|
||||||
'pegawai_nama_entry' => auth()->user()?->dataUser?->namalengkap,
|
|
||||||
'entry_at' => now(),
|
|
||||||
'file' => $data->file,
|
|
||||||
'statusenabled' => true,
|
|
||||||
'nama_dokumen' => $data->nama_dokumen ?? null,
|
|
||||||
'no_dokumen' => $data->no_dokumen ?? null,
|
|
||||||
'mod_change' => null,
|
|
||||||
'id_unit_kerja' => $data ? $data->id_unit_kerja : null,
|
|
||||||
'id_sub_unit_kerja' => $data ? $data->id_sub_unit_kerja : null,
|
|
||||||
'action_type' => 'Approved Dokumen Mutu',
|
'action_type' => 'Approved Dokumen Mutu',
|
||||||
];
|
];
|
||||||
LogActivity::create($payloadLogApprovedByMutu);
|
LogActivity::create($payloadLog);
|
||||||
|
|
||||||
DB::connection('dbDirectory')->commit();
|
DB::connection('dbDirectory')->commit();
|
||||||
return response()->json([
|
return response()->json([
|
||||||
@ -4052,25 +3927,9 @@ class DashboardController extends Controller
|
|||||||
'mod_change' => null,
|
'mod_change' => null,
|
||||||
'id_unit_kerja' => $data ? $data->id_unit_kerja : null,
|
'id_unit_kerja' => $data ? $data->id_unit_kerja : null,
|
||||||
'id_sub_unit_kerja' => $data ? $data->id_sub_unit_kerja : null,
|
'id_sub_unit_kerja' => $data ? $data->id_sub_unit_kerja : null,
|
||||||
'action_type' => 'Approved Dokumen Turt By '. auth()->user()?->dataUser?->namalengkap ,
|
|
||||||
];
|
|
||||||
LogActivity::create($payloadLog);
|
|
||||||
|
|
||||||
$payloadLogApprovedTurt = [
|
|
||||||
'file_directory_id' => $data->file_directory_id,
|
|
||||||
'pegawai_id_entry' => auth()->user()?->objectpegawaifk,
|
|
||||||
'pegawai_nama_entry' => auth()->user()?->dataUser?->namalengkap,
|
|
||||||
'entry_at' => now(),
|
|
||||||
'file' => $data->file,
|
|
||||||
'statusenabled' => true,
|
|
||||||
'nama_dokumen' => $data->nama_dokumen ?? null,
|
|
||||||
'no_dokumen' => $data->no_dokumen ?? null,
|
|
||||||
'mod_change' => null,
|
|
||||||
'id_unit_kerja' => $data ? $data->id_unit_kerja : null,
|
|
||||||
'id_sub_unit_kerja' => $data ? $data->id_sub_unit_kerja : null,
|
|
||||||
'action_type' => 'Approved Dokumen Turt',
|
'action_type' => 'Approved Dokumen Turt',
|
||||||
];
|
];
|
||||||
LogActivity::create($payloadLogApprovedTurt);
|
LogActivity::create($payloadLog);
|
||||||
|
|
||||||
DB::connection('dbDirectory')->commit();
|
DB::connection('dbDirectory')->commit();
|
||||||
return response()->json([
|
return response()->json([
|
||||||
@ -4147,25 +4006,9 @@ class DashboardController extends Controller
|
|||||||
'no_dokumen' => $data->no_dokumen ?? null,
|
'no_dokumen' => $data->no_dokumen ?? null,
|
||||||
'id_unit_kerja' => $data ? $data->id_unit_kerja : null,
|
'id_unit_kerja' => $data ? $data->id_unit_kerja : null,
|
||||||
'id_sub_unit_kerja' => $data ? $data->id_sub_unit_kerja : null,
|
'id_sub_unit_kerja' => $data ? $data->id_sub_unit_kerja : null,
|
||||||
'action_type' => 'Rejected Dokumen Mutu By '. auth()->user()?->dataUser?->namalengkap,
|
'action_type' => 'Rejected Dokumen Mutu',
|
||||||
];
|
];
|
||||||
LogActivity::create($payloadLog);
|
LogActivity::create($payloadLog);
|
||||||
|
|
||||||
$payloadLogRejectedByMutu = [
|
|
||||||
'file_directory_id' => $data->file_directory_id,
|
|
||||||
'pegawai_id_entry' => auth()->user()->objectpegawaifk,
|
|
||||||
'pegawai_nama_entry' => auth()->user()?->dataUser?->namalengkap,
|
|
||||||
'entry_at' => now(),
|
|
||||||
'file' => $data->file,
|
|
||||||
'statusenabled' => true,
|
|
||||||
'nama_dokumen' => $data->nama_dokumen ?? null,
|
|
||||||
'no_dokumen' => $data->no_dokumen ?? null,
|
|
||||||
'mod_change' => null,
|
|
||||||
'id_unit_kerja' => $data ? $data->id_unit_kerja : null,
|
|
||||||
'id_sub_unit_kerja' => $data ? $data->id_sub_unit_kerja : null,
|
|
||||||
'action_type' => 'Rejected Dokumen Mutu',
|
|
||||||
];
|
|
||||||
LogActivity::create($payloadLogRejectedByMutu);
|
|
||||||
DB::connection('dbDirectory')->commit();
|
DB::connection('dbDirectory')->commit();
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => true,
|
'status' => true,
|
||||||
@ -4241,25 +4084,9 @@ class DashboardController extends Controller
|
|||||||
'mod_change' => null,
|
'mod_change' => null,
|
||||||
'id_unit_kerja' => $data ? $data->id_unit_kerja : null,
|
'id_unit_kerja' => $data ? $data->id_unit_kerja : null,
|
||||||
'id_sub_unit_kerja' => $data ? $data->id_sub_unit_kerja : null,
|
'id_sub_unit_kerja' => $data ? $data->id_sub_unit_kerja : null,
|
||||||
'action_type' => 'Rejected Dokumen Turt By ' . auth()->user()?->dataUser?->namalengkap
|
'action_type' => 'Rejected Dokumen Turt',
|
||||||
];
|
];
|
||||||
LogActivity::create($payloadLog);
|
LogActivity::create($payloadLog);
|
||||||
|
|
||||||
$payloadLogApprovedByTurt = [
|
|
||||||
'file_directory_id' => $data->file_directory_id,
|
|
||||||
'pegawai_id_entry' => auth()->user()->objectpegawaifk,
|
|
||||||
'pegawai_nama_entry' => auth()->user()?->dataUser?->namalengkap,
|
|
||||||
'entry_at' => now(),
|
|
||||||
'file' => $data->file,
|
|
||||||
'statusenabled' => true,
|
|
||||||
'nama_dokumen' => $data->nama_dokumen ?? null,
|
|
||||||
'no_dokumen' => $data->no_dokumen ?? null,
|
|
||||||
'mod_change' => null,
|
|
||||||
'id_unit_kerja' => $data ? $data->id_unit_kerja : null,
|
|
||||||
'id_sub_unit_kerja' => $data ? $data->id_sub_unit_kerja : null,
|
|
||||||
'action_type' => 'Rejected Dokumen Turt',
|
|
||||||
];
|
|
||||||
LogActivity::create($payloadLogApprovedByTurt);
|
|
||||||
DB::connection('dbDirectory')->commit();
|
DB::connection('dbDirectory')->commit();
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => true,
|
'status' => true,
|
||||||
|
|||||||
@ -1,10 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Foundation\Application;
|
use Illuminate\Foundation\Application;
|
||||||
use Illuminate\Foundation\Configuration\Exceptions;
|
use Illuminate\Foundation\Configuration\Exceptions;
|
||||||
use Illuminate\Foundation\Configuration\Middleware;
|
use Illuminate\Foundation\Configuration\Middleware;
|
||||||
use Illuminate\Session\TokenMismatchException;
|
|
||||||
|
|
||||||
return Application::configure(basePath: dirname(__DIR__))
|
return Application::configure(basePath: dirname(__DIR__))
|
||||||
->withRouting(
|
->withRouting(
|
||||||
@ -19,24 +17,5 @@ return Application::configure(basePath: dirname(__DIR__))
|
|||||||
]);
|
]);
|
||||||
})
|
})
|
||||||
->withExceptions(function (Exceptions $exceptions): void {
|
->withExceptions(function (Exceptions $exceptions): void {
|
||||||
$exceptions->render(function (TokenMismatchException $exception, Request $request) {
|
//
|
||||||
$message = 'Sesi halaman sudah habis. Silakan login ulang.';
|
|
||||||
|
|
||||||
if ($request->is('login')) {
|
|
||||||
return redirect()
|
|
||||||
->route('login')
|
|
||||||
->withInput($request->only('namauser'))
|
|
||||||
->with('alertError', 'expired');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$request->expectsJson()) {
|
|
||||||
return redirect()
|
|
||||||
->guest(route('login'))
|
|
||||||
->with('alertError', 'expired-session');
|
|
||||||
}
|
|
||||||
|
|
||||||
return response()->json([
|
|
||||||
'message' => $message,
|
|
||||||
], 419);
|
|
||||||
});
|
|
||||||
})->create();
|
})->create();
|
||||||
|
|||||||
@ -323,8 +323,8 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
data-no_dokumen="${item.no_dokumen || '-'}"
|
data-no_dokumen="${item.no_dokumen || '-'}"
|
||||||
data-tanggal_terbit="${item.tanggal_terbit || '-'}"
|
data-tanggal_terbit="${item.tanggal_terbit || '-'}"
|
||||||
data-permission_file="${item.permission_file || '-'}">${item.nama_dokumen}</a></td>
|
data-permission_file="${item.permission_file || '-'}">${item.nama_dokumen}</a></td>
|
||||||
<td class="col-kategori"><div class="cell-wrap">${safeText(item.kategori)}</div></td>
|
<td class="col-kategori"><div class="cell-wrap">${safeText(item.folder)}</div></td>
|
||||||
<td class="col-unit"><div class="cell-wrap">${safeText(item.nama_unit)}</div></td>
|
<td class="col-unit"><div class="cell-wrap">${safeText(item.part)}</div></td>
|
||||||
<td class="text-nowrap">${tanggalTerbit}</td>
|
<td class="text-nowrap">${tanggalTerbit}</td>
|
||||||
<td class="text-nowrap">${tanggalExp}</td>
|
<td class="text-nowrap">${tanggalExp}</td>
|
||||||
<td class="text-nowrap">${tanggal}</td>
|
<td class="text-nowrap">${tanggal}</td>
|
||||||
@ -334,7 +334,6 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function buildHistoryRow(item){
|
function buildHistoryRow(item){
|
||||||
|
|
||||||
const tanggal = item.entry_at ? formatTanggal(item.entry_at) : '-';
|
const tanggal = item.entry_at ? formatTanggal(item.entry_at) : '-';
|
||||||
const tanggalExp = item.tgl_expired ? formatTanggal(item.tgl_expired) : '-';
|
const tanggalExp = item.tgl_expired ? formatTanggal(item.tgl_expired) : '-';
|
||||||
const tanggalTerbit = item.tanggal_terbit ? formatTanggal(item.tanggal_terbit) : '-';
|
const tanggalTerbit = item.tanggal_terbit ? formatTanggal(item.tanggal_terbit) : '-';
|
||||||
@ -350,9 +349,11 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
data-no_dokumen="${item.no_dokumen || '-'}"
|
data-no_dokumen="${item.no_dokumen || '-'}"
|
||||||
data-tanggal_terbit="${item.tanggal_terbit || '-'}"
|
data-tanggal_terbit="${item.tanggal_terbit || '-'}"
|
||||||
data-permission_file="${item.permission_file || '-'}">${safeText(item.nama_dokumen)}</a></td>
|
data-permission_file="${item.permission_file || '-'}">${safeText(item.nama_dokumen)}</a></td>
|
||||||
<td>${safeText(item.kategori)}</td>
|
<td>${safeText(item.folder)}</td>
|
||||||
<td>${safeText(item.nama_unit)}</td>
|
<td>${safeText(item.part)}</td>
|
||||||
<td><span class="badge bg-info">${actionType}</span></td>
|
<td><span class="badge bg-info">${actionType}</span></td>
|
||||||
|
<td class="text-nowrap">${tanggalTerbit}</td>
|
||||||
|
<td class="text-nowrap">${tanggalExp}</td>
|
||||||
<td class="text-nowrap">${tanggal}</td>
|
<td class="text-nowrap">${tanggal}</td>
|
||||||
</tr>
|
</tr>
|
||||||
`;
|
`;
|
||||||
|
|||||||
@ -285,8 +285,15 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
data-no_dokumen="${item.no_dokumen || '-'}"
|
data-no_dokumen="${item.no_dokumen || '-'}"
|
||||||
data-tanggal_terbit="${item.tanggal_terbit || '-'}"
|
data-tanggal_terbit="${item.tanggal_terbit || '-'}"
|
||||||
data-permission_file="${item.permission_file || '-'}">${item.nama_dokumen}</a></td>
|
data-permission_file="${item.permission_file || '-'}">${item.nama_dokumen}</a></td>
|
||||||
<td class="">${item.kategori}</td>
|
${item.is_akre ? `<td colspan="2" class="text-center">Dokumen akreditasi</td>` :
|
||||||
<td class="text-nowrap">${item.nama_unit}</td>
|
`
|
||||||
|
<td>${item.name_kategori || '-'}</td>
|
||||||
|
<td>${item.name_unit || '-'}</td>
|
||||||
|
`
|
||||||
|
}
|
||||||
|
|
||||||
|
<td class="text-nowrap">${tanggalTerbit}</td>
|
||||||
|
<td class="text-nowrap">${tanggalExp}</td>
|
||||||
<td class="text-nowrap">${tanggal}</td>
|
<td class="text-nowrap">${tanggal}</td>
|
||||||
</tr>
|
</tr>
|
||||||
`;
|
`;
|
||||||
@ -342,8 +349,9 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
data-no_dokumen="${item.no_dokumen || '-'}"
|
data-no_dokumen="${item.no_dokumen || '-'}"
|
||||||
data-tanggal_terbit="${item.tanggal_terbit || '-'}"
|
data-tanggal_terbit="${item.tanggal_terbit || '-'}"
|
||||||
data-permission_file="${item.permission_file || '-'}">${item.nama_dokumen}</a></td>
|
data-permission_file="${item.permission_file || '-'}">${item.nama_dokumen}</a></td>
|
||||||
<td>${item?.kategori}</td>
|
${item.is_akre ? `<td colspan="2" class="text-center">Dokumen akreditasi</td>` : `<td>${item.name_kategori || '-'}</td><td>${item.name_unit || '-'}</td>`}
|
||||||
<td>${item?.nama_unit}</td>
|
<td class="text-nowrap">${tanggalTerbit}</td>
|
||||||
|
<td class="text-nowrap">${tanggalExp}</td>
|
||||||
<td class="text-nowrap">${tanggal}</td>
|
<td class="text-nowrap">${tanggal}</td>
|
||||||
</tr>
|
</tr>
|
||||||
`;
|
`;
|
||||||
@ -365,8 +373,8 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
data-no_dokumen="${item.no_dokumen || '-'}"
|
data-no_dokumen="${item.no_dokumen || '-'}"
|
||||||
data-tanggal_terbit="${item.tanggal_terbit || '-'}"
|
data-tanggal_terbit="${item.tanggal_terbit || '-'}"
|
||||||
data-permission_file="${item.permission_file || '-'}">${item.nama_dokumen || '-'}</a></td>
|
data-permission_file="${item.permission_file || '-'}">${item.nama_dokumen || '-'}</a></td>
|
||||||
<td>${item.kategori || '-'}</td>
|
<td>${item.folder || '-'}</td>
|
||||||
<td>${item.nama_unit || '-'}</td>
|
<td>${item.part || '-'}</td>
|
||||||
<td><span class="badge bg-info">${item.action_type}</span></td>
|
<td><span class="badge bg-info">${item.action_type}</span></td>
|
||||||
<td class="text-nowrap">${tanggal}</td>
|
<td class="text-nowrap">${tanggal}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@ -159,11 +159,7 @@
|
|||||||
@csrf
|
@csrf
|
||||||
@if (session()->has('alertError'))
|
@if (session()->has('alertError'))
|
||||||
<div class="alert alert-danger fw-bold" role="alert">
|
<div class="alert alert-danger fw-bold" role="alert">
|
||||||
@if(session('alertError') === 'expired')
|
@if(session('alertError') === 'captcha')
|
||||||
Sesi login sudah habis karena halaman terlalu lama terbuka. Silakan coba lagi.
|
|
||||||
@elseif(session('alertError') === 'expired-session')
|
|
||||||
Sesi Anda sudah habis. Silakan login kembali.
|
|
||||||
@elseif(session('alertError') === 'captcha')
|
|
||||||
Captcha salah!
|
Captcha salah!
|
||||||
@elseif(session('alertError') === 'rate')
|
@elseif(session('alertError') === 'rate')
|
||||||
Terlalu banyak percobaan login. Coba lagi dalam 1 menit.
|
Terlalu banyak percobaan login. Coba lagi dalam 1 menit.
|
||||||
@ -181,7 +177,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="exampleInputEmail1" class="form-label">Username</label>
|
<label for="exampleInputEmail1" class="form-label">Username</label>
|
||||||
<input type="text" name="namauser" value="{{ old('namauser') }}" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" required>
|
<input type="text" name="namauser" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
<label for="exampleInputPassword1" class="form-label">Password</label>
|
<label for="exampleInputPassword1" class="form-label">Password</label>
|
||||||
|
|||||||
@ -53,24 +53,18 @@
|
|||||||
<li class="nav-small-cap"><span class="hide-menu">Aktivitas</span></li>
|
<li class="nav-small-cap"><span class="hide-menu">Aktivitas</span></li>
|
||||||
@php
|
@php
|
||||||
$pegawaiId = auth()->user()->objectpegawaifk;
|
$pegawaiId = auth()->user()->objectpegawaifk;
|
||||||
$userUnitIds = auth()->user()->dataUser?->mappingUnitKerjaPegawai()
|
$userUnitIds = auth()->user()->dataUser->mappingUnitKerjaPegawai()
|
||||||
->where('statusenabled', true)
|
->where('statusenabled', true)
|
||||||
->pluck('objectunitkerjapegawaifk')
|
->pluck('objectunitkerjapegawaifk')
|
||||||
->unique()
|
->unique()
|
||||||
->values()
|
->values()
|
||||||
->all();
|
->all();
|
||||||
if($userUnitIds){
|
$isAtasan = \App\Models\MappingUnitKerjaPegawai::where('statusenabled', true)
|
||||||
$isAtasan = \App\Models\MappingUnitKerjaPegawai::where('statusenabled', true)
|
->where(function ($q) use ($pegawaiId) {
|
||||||
->where(function ($q) use ($pegawaiId) {
|
$q->where('objectatasanlangsungfk', $pegawaiId)
|
||||||
$q->where('objectatasanlangsungfk', $pegawaiId)
|
->orWhere('objectpejabatpenilaifk', $pegawaiId);
|
||||||
->orWhere('objectpejabatpenilaifk', $pegawaiId);
|
})->exists();
|
||||||
})->exists();
|
$isRoleApprover = in_array(51, $userUnitIds, true) || in_array(22, $userUnitIds, true);
|
||||||
$isRoleApprover = in_array(51, $userUnitIds, true) || in_array(22, $userUnitIds, true);
|
|
||||||
}else{
|
|
||||||
$isAtasan = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
@if($isAtasan)
|
@if($isAtasan)
|
||||||
@if(!Auth::guard('admin')->check())
|
@if(!Auth::guard('admin')->check())
|
||||||
|
|||||||
@ -1,22 +1,3 @@
|
|||||||
{{-- @php
|
|
||||||
$globalUpdateItems = [
|
|
||||||
[
|
|
||||||
'date' => '29 Juni 2026',
|
|
||||||
'title' => 'Metadata preview dokumen diperluas',
|
|
||||||
'description' => 'Modal preview sekarang menampilkan nomor dokumen, tanggal terbit, tanggal kedaluwarsa, tanggal upload, akses dokumen, jenis dokumen akreditasi/non-akreditasi, dan kategori.',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'date' => '29 Juni 2026',
|
|
||||||
'title' => 'Nama unit ditampilkan lebih jelas',
|
|
||||||
'description' => 'Data persetujuan dan pengajuan file sekarang memakai nama unit langsung dari tabel unit agar lebih mudah dibaca.',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'date' => '29 Juni 2026',
|
|
||||||
'title' => 'Perbaikan query persetujuan',
|
|
||||||
'description' => 'Query halaman persetujuan dan pengajuan file dirapikan supaya aman saat join tabel dan tidak gagal karena kolom ambigu.',
|
|
||||||
],
|
|
||||||
];
|
|
||||||
@endphp --}}
|
|
||||||
<style>
|
<style>
|
||||||
|
|
||||||
.message-body {
|
.message-body {
|
||||||
@ -76,12 +57,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="navbar-collapse justify-content-end px-0" id="navbarNav">
|
<div class="navbar-collapse justify-content-end px-0" id="navbarNav">
|
||||||
<ul class="navbar-nav flex-row ms-auto align-items-center justify-content-end">
|
<ul class="navbar-nav flex-row ms-auto align-items-center justify-content-end">
|
||||||
{{-- <li class="nav-item me-2">
|
|
||||||
<button type="button" class="btn btn-outline-primary btn-sm" data-bs-toggle="modal" data-bs-target="#updatesInfoModal">
|
|
||||||
<i class="fa-solid fa-bullhorn me-1"></i> Info Update
|
|
||||||
</button>
|
|
||||||
</li> --}}
|
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link position-relative" href="javascript:void(0)" id="dropExpired" data-bs-toggle="dropdown" aria-expanded="false">
|
<a class="nav-link position-relative" href="javascript:void(0)" id="dropExpired" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
<span class="d-inline-flex align-items-center justify-content-center rounded-circle bg-light" style="width:46px;height:46px;">
|
<span class="d-inline-flex align-items-center justify-content-center rounded-circle bg-light" style="width:46px;height:46px;">
|
||||||
@ -201,33 +177,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{-- <div class="modal fade" id="updatesInfoModal" tabindex="-1" aria-labelledby="updatesInfoModalLabel" aria-hidden="true">
|
|
||||||
<div class="modal-dialog modal-lg modal-dialog-centered">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<h5 class="modal-title" id="updatesInfoModalLabel">Info Update Terbaru</h5>
|
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<div class="d-flex flex-column gap-3">
|
|
||||||
@foreach ($globalUpdateItems as $update)
|
|
||||||
<div class="border rounded p-3">
|
|
||||||
<div class="d-flex flex-column flex-md-row align-items-md-center justify-content-between gap-2 mb-2">
|
|
||||||
<h6 class="mb-0">{{ $update['title'] }}</h6>
|
|
||||||
<span class="badge bg-light text-dark border">{{ $update['date'] }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="text-muted small">{{ $update['description'] }}</div>
|
|
||||||
</div>
|
|
||||||
@endforeach
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary btn-sm" data-bs-dismiss="modal">Tutup</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> --}}
|
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
const csrfToken = document.querySelector('meta[name="csrf-token"]')?.content || '';
|
const csrfToken = document.querySelector('meta[name="csrf-token"]')?.content || '';
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
@extends('layout.main')
|
@extends('layout.main')
|
||||||
@section('body_main')
|
@section('body_main')
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@ -95,7 +96,9 @@
|
|||||||
<th>Kategori</th>
|
<th>Kategori</th>
|
||||||
<th>Unit</th>
|
<th>Unit</th>
|
||||||
<th>Aksi</th>
|
<th>Aksi</th>
|
||||||
<th>Tanggal Aksi</th>
|
<th>Tanggal Terbit</th>
|
||||||
|
<th>Tanggal Kedaluwarsa Dokumen</th>
|
||||||
|
<th>Tanggal Upload</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="tableHistoryFile">
|
<tbody id="tableHistoryFile">
|
||||||
|
|||||||
@ -122,6 +122,8 @@
|
|||||||
<th>Nama</th>
|
<th>Nama</th>
|
||||||
<th>Kategori</th>
|
<th>Kategori</th>
|
||||||
<th>Unit</th>
|
<th>Unit</th>
|
||||||
|
<th>Tanggal Terbit</th>
|
||||||
|
<th>Tanggal Kedaluwarsa Dokumen</th>
|
||||||
<th>Tanggal Upload</th>
|
<th>Tanggal Upload</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user