Halo, {{ currentUser?.name }}.
Kendaraan
{{ dataKendaraan.length }}
Aset
{{ dataAset.length }}
Total Peminjaman
{{ historyAll.length }}
Menunggu Approval
{{ pendingCount }}
Disetujui
{{ approvedCount }}
Selesai
{{ completedCount }}
{{ modalIzinTitle }}
Approval cuti berjalan berurutan: Kepala Divisi, HRD, lalu Direktur.
{{ isSyncingAttendance ? 'Sedang mengirim ulang...' : 'Data akan otomatis dikirim saat koneksi stabil.' }}
Selfie dan izin lokasi browser wajib aktif untuk verifikasi absensi.
Riwayat Absensi
30 Hari Terakhir| Tanggal | Nama | Masuk | Pulang | Selfie | GPS | Status | Aksi |
|---|---|---|---|---|---|---|---|
| {{ ab.tanggal }} | {{ ab.user_name || currentUser.name }} | {{ ab.keterangan }} {{ ab.jam_masuk }} {{ ab.keterangan }} --:-- | --:-- {{ ab.jam_keluar }} --:-- | +/- {{ formatAccuracy(ab.akurasi_masuk) }}m - | {{ ab.izin_tipe }} {{ ab.jam_keluar ? 'Selesai' : 'Aktif' }} |
-
|
Jatah Cuti
{{ cutiSummary.jatah || 0 }}
Hari per tahun
Cuti Terpakai
{{ cutiSummary.terpakai || 0 }}
Termasuk pemotongan admin
Sisa Cuti
{{ cutiSummary.sisa || 0 }}
Divisi {{ cutiSummary.divisi || currentUser?.divisi || '-' }}
Keterangan Pemotongan Cuti
{{ cuti.keterangan }}
Oleh {{ cuti.admin_name || 'Admin' }} - {{ formatDateTime(cuti.created_at) }}
Permohonan Izin, Sakit & Cuti
| Nama | Divisi | Tipe | Bukti | Tanggal | Alasan | Catatan HRD | Status | Keterangan Status | Aksi |
|---|---|---|---|---|---|---|---|---|---|
| {{ iz.user_name || currentUser.name }} | {{ iz.divisi || currentUser.divisi || '-' }} | {{ iz.tipe }} | Lihat - |
{{ range.tanggal_mulai === range.tanggal_selesai ? range.tanggal_mulai : range.tanggal_mulai + ' s/d ' + range.tanggal_selesai }}
Total {{ iz.cuti_total_hari || 0 }} hari
|
{{ iz.alasan }} | {{ iz.catatan_hrd || '-' }} | {{ izinStatusLabel(iz) }} |
Ditolak oleh: {{ iz.approver_name || '-' }}
Kepala Divisi: {{ iz.manager_approved_at ? 'OK' : 'Pending' }}
- {{ iz.manager_approver_name || '-' }}
HRD: {{ iz.hrd_approved_at ? 'OK' : 'Pending' }}
- {{ iz.hrd_approver_name || '-' }}
Direktur: {{ iz.direktur_approved_at ? 'OK' : 'Pending' }}
- {{ iz.direktur_approver_name || '-' }}
|
-
|
| Belum ada pengajuan izin. | |||||||||
Live Feed
Aktivitas Terbaru
Belum ada aktivitas
{{ activity.title }}
{{ activity.description }}
Riwayat Peminjaman
Semua pengajuan dan status peminjaman tersusun dalam tampilan timeline.
Total
{{ userHistory.length }}
Belum ada peminjaman
Anda belum mengajukan peminjaman apapun
{{ item.userName || 'Peminjam' }} - Peminjaman {{ item.type === 'kendaraan' ? 'Kendaraan' : 'Aset' }}
{{ item.statusLabel }}{{ item.itemName }}
Peminjam: {{ item.userName || '-' }}
Kondisi: {{ item.kondisi }}
Mulai
{{ formatDate(item.startDate) }}
Selesai
{{ formatDate(item.endDate) }}
Durasi
{{ getLoanDuration(item.startDate, item.endDate) }} hari
Jadwal
{{ item.startTime || '-' }} - {{ item.endTime || '-' }}
Pengajuan
{{ item.submittedDate ? formatDate(item.submittedDate) : '-' }} {{ item.submittedTime || '' }}
Selesai Aktual
{{ item.actualReturnDate ? formatDate(item.actualReturnDate) : '-' }} {{ item.actualReturnTime || '' }}
KM Awal
{{ formatNumber(item.kmStart) }} KM
Driver: {{ item.driverName }}
Ajukan Peminjaman
Report Pekerjaan Data Center
Catatan pekerjaan harian divisi teknisi di area data center.
{{ editDcReportMode ? 'Edit Report' : 'Input Report' }}
Format Laporan HarianRiwayat Report Pekerjaan
{{ dcReports.length }} data - {{ filteredDcReportsForExport.length }} siap export| Tanggal | Teknisi | Data Center | Pekerjaan | Aksi |
|---|---|---|---|---|
| {{ formatDate(item.tanggal) }} | {{ item.user_name || currentUser?.name || '-' }} | {{ item.data_center }} |
{{ item.pekerjaan }}
{{ item.detail }}
Catatan: {{ item.catatan }}
|
Report Sales
Sales Marketing
Total Report
{{ salesReports.length }}
{{ editSalesReportMode ? 'Edit Report Sales' : 'Input Report Sales' }}
Riwayat Report Sales
{{ salesReports.length }} data| Tanggal | Sales | Customer | Project | Grade | Aksi |
|---|---|---|---|---|---|
| {{ formatDate(item.tanggal) }} | {{ item.user_name || '-' }} | {{ item.customer }} |
{{ item.kegiatan }}
{{ item.catatan }}
|
{{ formatSalesStatus(item.status) }} |
Tiket Report Trouble IT
Kategori dan laporan gangguan IT internal.
{{ editItTicketMode ? 'Edit Tiket' : 'Input Tiket' }}
| Tanggal | Pelapor | Trouble | Prioritas | Status | Aksi |
|---|---|---|---|---|---|
| {{ formatDate(item.tanggal) }} | {{ item.user_name || '-' }} |
{{ item.judul }}
{{ item.kategori }}{{ item.lokasi ? ' - ' + item.lokasi : '' }}
{{ item.detail }}
Solusi: {{ item.solusi }}
|
{{ item.prioritas }} | {{ item.status }} | DIKONFIRMASI |
Request Pembelian Barang IT
Pengajuan kebutuhan barang IT dan status persetujuannya.
{{ editItPurchaseMode ? 'Edit Request' : 'Input Request' }}
| Tanggal | Pemohon | Barang | Prioritas | Status | Aksi |
|---|---|---|---|---|---|
| {{ formatDate(item.tanggal) }} | {{ item.user_name || '-' }} |
{{ item.nama_barang }}
Jumlah: {{ item.jumlah }}
{{ item.spesifikasi }}
{{ item.alasan }}
Catatan: {{ item.catatan_approval }}
|
{{ item.prioritas }} |
{{ item.status }}
Divisi IT: {{ formatItPurchaseApprovalStatus(item.it_approval_status) }}
oleh {{ item.it_approver_name }}
Direktur: {{ formatItPurchaseApprovalStatus(item.director_approval_status) }}
oleh {{ item.director_approver_name }}
|
Peminjaman Dokumen
Pengajuan dan riwayat peminjaman dokumen perusahaan.
{{ editDocumentLoanMode ? 'Edit Peminjaman' : 'Ajukan Dokumen' }}
| Dokumen | Peminjam | Tanggal | Status | Aksi |
|---|---|---|---|---|
|
{{ item.nama_dokumen }}
{{ item.kategori }}{{ item.nomor_dokumen ? ' - ' + item.nomor_dokumen : '' }}
{{ item.keperluan }}
Catatan: {{ item.catatan }}
|
{{ item.user_name || '-' }} |
{{ formatDate(item.tanggal_pinjam) }}
s/d {{ formatDate(item.tanggal_kembali) }}
|
{{ item.status }} |
Persetujuan
Semua sudah diapprove!
Tidak ada pengajuan yang menunggu persetujuan
Peminjaman {{ item.type === 'kendaraan' ? 'Kendaraan' : 'Aset' }}
{{ item.statusLabel }}{{ item.itemName }} • Oleh: {{ item.userName }} • Driver: {{ item.driverName }}
Kondisi: {{ item.kondisi }}
Keperluan: {{ item.reason }}
Request Pembelian Barang IT
Menunggu {{ getItPurchaseApprovalStageLabel(currentItPurchaseApprovalStage(item)) }}{{ item.nama_barang }} - Oleh: {{ item.user_name || '-' }}
Spesifikasi: {{ item.spesifikasi }}
Alasan: {{ item.alasan }}
Riwayat Persetujuan
Log aktivitas admin dan kepala divisi yang memproses pengajuan
| Penyetuju | Peminjam | Item | Waktu Pinjam | Keperluan | Status Baru | Waktu | Aksi |
|---|---|---|---|---|---|---|---|
|
{{ log.adminName }}
Divisi: {{ log.adminDivisi }}
|
{{ log.borrowerName }} | {{ log.itemName }} | {{ formatDate(log.startDate) }} - {{ formatDate(log.endDate) }} | {{ log.reason }} | {{ log.statusTo }} | {{ formatDateTime(log.createdAt) }} | |
| Belum ada riwayat persetujuan. |
{{ reportMode === 'absensi' ? 'Laporan Absensi Bulanan' : 'Laporan Peminjaman' }}
{{ reportMode === 'absensi' ? 'Rekap kehadiran, jam masuk, jam pulang, dan izin per bulan.' : 'Ringkasan dan detail aktivitas peminjaman aset serta kendaraan.' }}
Laporan Operasional
{{ appSettings.name }}
{{ reportMode === 'absensi' ? 'Rekap Absensi Karyawan Bulanan' : 'Aktivitas Peminjaman Aset & Kendaraan' }}
Periode: {{ activeReportPeriodLabel }}
User: {{ selectedAttendanceReportUserName }}
Dicetak: {{ new Date().toLocaleString('id-ID') }}
Petugas: {{ currentUser?.name || '-' }}
Total
{{ reportSummary.total }}
Kendaraan
{{ reportSummary.kendaraan }}
Aset
{{ reportSummary.aset }}
Menunggu
{{ reportSummary.menunggu }}
Disetujui
{{ reportSummary.disetujui }}
Selesai
{{ reportSummary.selesai }}
Total Hari
{{ attendanceReportSummary.total }}
Hadir
{{ attendanceReportSummary.hadir }}
Aktif
{{ attendanceReportSummary.aktif }}
Selesai
{{ attendanceReportSummary.selesai }}
Izin/Sakit
{{ attendanceReportSummary.izin }}
GPS
{{ attendanceReportSummary.gps }}
Belum ada data laporan untuk periode ini.
| No | ID | Tanggal | Pemohon | Jenis | Item / Driver | Kondisi | Keperluan | KM | Durasi | Status | Aksi |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ index + 1 }} | #{{ item.id }} |
{{ formatDate(item.startDate) }}
s/d {{ formatDate(item.endDate) }}
|
{{ item.userName }}
User ID: {{ item.userId }}
|
{{ item.typeLabel || item.type }} |
{{ item.itemName }}
{{ item.driverName && item.driverName !== 'Tanpa Driver' ? 'Driver: ' + item.driverName : 'Tanpa driver' }}
|
{{ item.kondisi || '-' }} | {{ item.reason || '-' }} |
Awal: {{ formatNumber(item.kmStart) }}
Akhir: {{ formatNumber(item.kmEnd) }}
Pakai: {{ formatNumber(item.kmEnd - item.kmStart) }} KM
-
|
{{ getLoanDuration(item.startDate, item.endDate) }} hari | {{ item.statusLabel || item.status }} |
|
Detail Absensi Bulanan
{{ filteredAttendanceReport.length }} baris data - {{ isLoadingAttendanceReport ? 'sedang menarik data...' : 'siap ditampilkan dan diexport' }}
Menarik data absensi bulanan...
Belum ada data absensi untuk bulan ini.
| No | Tanggal | Nama | Divisi | Masuk | Pulang | Durasi | GPS | Keterangan | Status |
|---|---|---|---|---|---|---|---|---|---|
| {{ index + 1 }} | {{ formatDate(item.tanggal) }} | {{ item.user_name || currentUser.name }} | {{ item.divisi || '-' }} | {{ item.jam_masuk || '-' }} | {{ item.jam_keluar || '-' }} | {{ getAttendanceDuration(item) }} | +/- {{ formatAccuracy(item.akurasi_masuk) }}m - | {{ item.keterangan || '-' }} | {{ getAttendanceStatus(item).label }} |
Chat
Belum ada user untuk chat.
{{ chatTargetName }}
{{ selectedChatUser?.divisi || selectedChatUser?.role || 'Personal chat' }}
Belum ada pesan.
Stok Barang Purchasing
Item
{{ purchasingStockItems.length }}
Masuk
{{ purchasingStockSummary.masuk }}
Keluar
{{ purchasingStockSummary.keluar }}
Sisa
{{ purchasingStockSummary.sisa }}
Belum ada data stok purchasing.
| Part Number | Jenis Barang | Masuk | Keluar | Sisa | Note | Update | Aksi |
|---|---|---|---|---|---|---|---|
| {{ item.part_number }} | {{ item.jenis_barang }} | {{ item.barang_masuk }} | {{ item.barang_keluar }} | {{ item.stok_akhir }} | {{ item.note || '-' }} | {{ formatDateTime(item.updated_at) }} |
Master Data
Data User
| Nama | Username | Role | Divisi | Permission Menu | Cuti | Aksi |
|---|---|---|---|---|---|---|
| {{ item.name }} | {{ item.username }} | {{ roleDisplayLabel(item.role) }} | {{ item.divisi || '-' }} | {{ normalizePermissions(item.menu_permissions).length }} | {{ item.cuti_tahunan || 0 }} hari |
Data Kendaraan
| Nama | Plat Nomor | Status | Aksi |
|---|---|---|---|
| {{ item.nama }} | {{ item.nopol }} | {{ item.active_loans == 0 ? 'Tersedia' : 'Dipinjam' }} |
Data Aset
| Nama | Kategori | Status Aset | Status | Aksi |
|---|---|---|---|---|
| {{ item.nama }} | Unit: {{ item.sisa }} / {{ item.stok }} |
{{ item.kondisi || 'Baik' }}
{{ item.keterangan_kalibrasi }}
|
{{ item.status || (item.sisa > 0 ? 'Tersedia' : 'Habis') }} |
Data Driver
| Nama | No. HP | Status | Aksi |
|---|---|---|---|
| {{ item.nama }} | {{ item.telp || '-' }} | Aktif |