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