done -> next review
This commit is contained in:
parent
f19a414f22
commit
de2c087d93
@ -167,8 +167,16 @@ class DashboardController extends Controller
|
||||
$allKategoriValues = array_values(array_filter(array_merge($kategoriValues, $kategoriHeaderValues)));
|
||||
$kategoriTypes = [];
|
||||
$kategoriIds = [];
|
||||
$kategoriHukumValues = [];
|
||||
foreach ($allKategoriValues as $val) {
|
||||
$lower = strtolower(trim((string) $val));
|
||||
if (str_starts_with($lower, 'hukum:')) {
|
||||
$hukumVal = trim(substr((string) $val, strlen('hukum:')));
|
||||
if ($hukumVal !== '') {
|
||||
$kategoriHukumValues[] = $hukumVal;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (in_array($lower, ['akreditasi', 'akre'], true)) {
|
||||
$kategoriTypes[] = 'akreditasi';
|
||||
continue;
|
||||
@ -195,13 +203,17 @@ class DashboardController extends Controller
|
||||
->whereIn('id_unit_kerja', $unitIds);
|
||||
|
||||
$query = (clone $baseQuery)
|
||||
->when(!empty($kategoriIds) || !empty($kategoriTypes), function ($q) use ($kategoriIds, $kategoriTypes) {
|
||||
$q->where(function ($sub) use ($kategoriIds, $kategoriTypes) {
|
||||
->when(!empty($kategoriIds) || !empty($kategoriTypes) || !empty($kategoriHukumValues), function ($q) use ($kategoriIds, $kategoriTypes, $kategoriHukumValues) {
|
||||
$q->where(function ($sub) use ($kategoriIds, $kategoriTypes, $kategoriHukumValues) {
|
||||
$hasClause = false;
|
||||
if (!empty($kategoriIds)) {
|
||||
$sub->whereIn('master_kategori_directory_id', $kategoriIds);
|
||||
$hasClause = true;
|
||||
}
|
||||
if (!empty($kategoriHukumValues)) {
|
||||
$hasClause ? $sub->orWhereIn('kategori_hukum', $kategoriHukumValues) : $sub->whereIn('kategori_hukum', $kategoriHukumValues);
|
||||
$hasClause = true;
|
||||
}
|
||||
if (in_array('akreditasi', $kategoriTypes, true)) {
|
||||
$sub->where('is_akre', true);
|
||||
$hasClause = true;
|
||||
@ -230,11 +242,8 @@ class DashboardController extends Controller
|
||||
return $item;
|
||||
});
|
||||
$kategoriList = (clone $baseQuery)->get()->map(function($item){
|
||||
if ($item->is_akre) {
|
||||
return ['id' => 'akreditasi', 'label' => 'Kategori Akreditasi'];
|
||||
}
|
||||
if (!empty($item->kategori_hukum)) {
|
||||
return ['id' => 'hukum', 'label' => 'Kategori Hukum'];
|
||||
return ['id' => 'hukum:' . $item->kategori_hukum, 'label' => $item->kategori_hukum];
|
||||
}
|
||||
$label = $item->kategori->nama_kategori_directory ?? $item->nama_kategori_directory ?? 'Kategori';
|
||||
$id = $item->master_kategori_directory_id ?? $label;
|
||||
@ -998,8 +1007,16 @@ class DashboardController extends Controller
|
||||
$allKategoriValues = array_values(array_filter(array_merge($kategoriValues, $kategoriHeaderValues)));
|
||||
$kategoriTypes = [];
|
||||
$kategoriIds = [];
|
||||
$kategoriHukumValues = [];
|
||||
foreach ($allKategoriValues as $val) {
|
||||
$lower = strtolower(trim((string) $val));
|
||||
if (str_starts_with($lower, 'hukum:')) {
|
||||
$hukumVal = trim(substr((string) $val, strlen('hukum:')));
|
||||
if ($hukumVal !== '') {
|
||||
$kategoriHukumValues[] = $hukumVal;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (in_array($lower, ['akreditasi', 'akre'], true)) {
|
||||
$kategoriTypes[] = 'akreditasi';
|
||||
continue;
|
||||
@ -1021,13 +1038,17 @@ class DashboardController extends Controller
|
||||
});
|
||||
|
||||
$query = (clone $baseQuery)
|
||||
->when(!empty($kategoriIds) || !empty($kategoriTypes), function ($q) use ($kategoriIds, $kategoriTypes) {
|
||||
$q->where(function ($sub) use ($kategoriIds, $kategoriTypes) {
|
||||
->when(!empty($kategoriIds) || !empty($kategoriTypes) || !empty($kategoriHukumValues), function ($q) use ($kategoriIds, $kategoriTypes, $kategoriHukumValues) {
|
||||
$q->where(function ($sub) use ($kategoriIds, $kategoriTypes, $kategoriHukumValues) {
|
||||
$hasClause = false;
|
||||
if (!empty($kategoriIds)) {
|
||||
$sub->whereIn('master_kategori_directory_id', $kategoriIds);
|
||||
$hasClause = true;
|
||||
}
|
||||
if (!empty($kategoriHukumValues)) {
|
||||
$hasClause ? $sub->orWhereIn('kategori_hukum', $kategoriHukumValues) : $sub->whereIn('kategori_hukum', $kategoriHukumValues);
|
||||
$hasClause = true;
|
||||
}
|
||||
if (in_array('akreditasi', $kategoriTypes, true)) {
|
||||
$hasClause ? $sub->orWhere('is_akre', true) : $sub->where('is_akre', true);
|
||||
$hasClause = true;
|
||||
@ -1063,11 +1084,8 @@ class DashboardController extends Controller
|
||||
});
|
||||
|
||||
$kategoriList = (clone $baseQuery)->get()->map(function($item){
|
||||
if ($item->is_akre) {
|
||||
return ['id' => 'akreditasi', 'label' => 'Kategori Akreditasi'];
|
||||
}
|
||||
if (!empty($item->kategori_hukum)) {
|
||||
return ['id' => 'hukum', 'label' => 'Kategori Hukum'];
|
||||
return ['id' => 'hukum:' . $item->kategori_hukum, 'label' => $item->kategori_hukum];
|
||||
}
|
||||
$label = $item->kategori->nama_kategori_directory ?? $item->nama_kategori_directory ?? 'Kategori';
|
||||
$id = $item->master_kategori_directory_id ?? $label;
|
||||
@ -1541,7 +1559,6 @@ class DashboardController extends Controller
|
||||
{
|
||||
$rows = FileDirectory::where('statusenabled', true)
|
||||
->whereNotNull('status_action')->where('status_action', 'approved')
|
||||
->where('is_akre')
|
||||
->whereIn('id_unit_kerja', $unitIds)
|
||||
->pluck('file');
|
||||
|
||||
|
||||
@ -93,12 +93,14 @@ class LogActivityController extends Controller
|
||||
$query = LogActivity::select(
|
||||
'pegawai_id_entry',
|
||||
'pegawai_nama_entry',
|
||||
DB::raw('COUNT(*) as total_open'),
|
||||
DB::raw("SUM(CASE WHEN action_type = 'Membuka Dokumen' THEN 1 ELSE 0 END) as total_open"),
|
||||
// Menghitung hanya yang Download Dokumen
|
||||
DB::raw("SUM(CASE WHEN action_type = 'Download Dokumen' THEN 1 ELSE 0 END) as total_download"),
|
||||
DB::raw('MAX(entry_at) as last_open')
|
||||
)
|
||||
->where('file_directory_id', $fileDirectoryId)
|
||||
->where('statusenabled', true)
|
||||
->where('action_type', 'Membuka Dokumen')
|
||||
->whereIn('action_type', ['Membuka Dokumen', 'Download Dokumen'])
|
||||
->groupBy('pegawai_id_entry', 'pegawai_nama_entry')
|
||||
->orderByDesc('total_open');
|
||||
|
||||
@ -121,5 +123,5 @@ class LogActivityController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -30,7 +30,7 @@
|
||||
<thead class="table-light shadow-sm">
|
||||
<tr>
|
||||
<th style="width:5%;" class="text-center">#</th>
|
||||
<th style="width:30%;">Unit</th>
|
||||
<th style="width:30%;">Unit / Akreditasi</th>
|
||||
<th style="width:20%;">Kategori</th>
|
||||
<th style="width:15%;" class="text-center">Jumlah File</th>
|
||||
</tr>
|
||||
@ -101,7 +101,7 @@ function fetchRecap(){
|
||||
}).join('');
|
||||
tbody.innerHTML = html + `
|
||||
<tr class="table-light">
|
||||
<td colspan="3" class="text-end fw-semibold">Total File</td>
|
||||
<td colspan="4" class="text-end fw-semibold">Total File</td>
|
||||
<td class="text-center fw-bold">${grandTotal}</td>
|
||||
</tr>
|
||||
`;
|
||||
|
||||
@ -160,6 +160,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
<td>${((currentPage - 1) * (pagination.per_page || 10)) + idx + 1}</td>
|
||||
<td>${row.pegawai_nama_entry || '-'}</td>
|
||||
<td>${row.total_open || 0}</td>
|
||||
<td>${row.total_download || 0}</td>
|
||||
<td>${formatTanggal(row.last_open)}</td>
|
||||
</tr>
|
||||
`).join('');
|
||||
@ -341,6 +342,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
<th>#</th>
|
||||
<th>Nama</th>
|
||||
<th>Jumlah Membuka</th>
|
||||
<th>Jumlah Mengunduh</th>
|
||||
<th>Terakhir Dilihat</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user