{{ pageTitle }}

Halo, {{ currentUser?.name }} 👋

System PT Citra Kencana Solusindo

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.

PT CITRA KENCANA SOLUSINDO

FORMULIR PERMOHONAN CUTI KARYAWAN

Data Karyawan

Nama Lengkap

{{ currentUser?.name || '-' }}

Divisi / Bagian / Unit Kerja

{{ currentUser?.divisi || '-' }}

Keterangan Cuti

{{ cutiDurationLabel }}

{{ currentTime }}
{{ formatDateFull(new Date()) }}
Selfie absensi
Selfie wajib
Lokasi {{ attendancePosition ? 'Terdeteksi' : 'Belum dicek' }}
{{ attendancePosition.latitude.toFixed(6) }}, {{ attendancePosition.longitude.toFixed(6) }} +/- {{ formatAccuracy(attendancePosition.accuracy) }}m
{{ networkOnline ? 'Sinkronisasi absensi' : 'Mode offline' }} {{ attendanceSyncQueue.length }} antrean

{{ isSyncingAttendance ? 'Sedang mengirim ulang...' : 'Data akan otomatis dikirim saat koneksi stabil.' }}

Sudah Masuk: {{ absensiToday.jam_masuk }}
Sudah Pulang: {{ absensiToday.jam_keluar }}

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

{{ cutiSummary.pemotongan_admin || 0 }} hari
Belum ada pemotongan cuti dari admin.

{{ cuti.keterangan }}

Oleh {{ cuti.admin_name || 'Admin' }} - {{ formatDateTime(cuti.created_at) }}

-{{ cuti.jumlah }} hari

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.tanggal_mulai }} s/d {{ iz.tanggal_selesai }}
{{ iz.alasan }} {{ iz.catatan_hrd || '-' }} {{ izinStatusLabel(iz) }}
Ditolak oleh: {{ iz.approver_name || '-' }}
{{ iz.approver_name || '-' }}
-
Belum ada pengajuan izin.

Live Feed

Aktivitas Terbaru

Belum ada aktivitas

{{ activity.title }}

{{ activity.description }}

{{ activity.statusLabel }} {{ formatDate(activity.date) }}
Loan Timeline

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 }}

Jadwal Pengajuan: {{ item.startTime || '-' }} - {{ item.endTime || '-' }} Tanggal/Jam Pengajuan: {{ item.submittedDate ? formatDate(item.submittedDate) : '-' }} {{ item.submittedTime || '' }} Selesai Aktual: {{ item.actualReturnDate ? formatDate(item.actualReturnDate) : '-' }} {{ item.actualReturnTime || '' }} KM Akhir: {{ formatNumber(item.kmEnd) }} ({{ formatNumber(item.kmEnd - item.kmStart) }} KM digunakan)

Ajukan Peminjaman

{{ selectedAsetForLoan.nama }}

Status aset: {{ selectedAsetForLoan.kondisi || 'Baik' }}

Stok tersedia: {{ selectedAsetForLoan.sisa }} / {{ selectedAsetForLoan.stok }}

{{ selectedAsetForLoan.status || 'Tersedia' }}

Info kalibrasi Fluke

{{ selectedAsetForLoan.keterangan_kalibrasi || 'Barang Fluke ini sedang dalam proses kalibrasi.' }}

Report Pekerjaan Data Center

Catatan pekerjaan harian divisi teknisi di area data center.

Teknisi

{{ editDcReportMode ? 'Edit Report' : 'Input Report' }}

Format Laporan Harian
LAPORAN HARIAN
PROJECT NAME OWNER : MITRA PELAKSANA : PT. CITRA KENCANA SOLUSINDO
Hari Kerja Hari Tanggal Jam Kerja
SCOPE OF JOB
CABLING WORK NO ITEM PEKERJAAN VOL SAT KETERANGAN / SKETSA LOKASI / FOTO
1
2
3
4
Tenaga Kerja VOL SAT Keterangan :
1. Supervisor
3. Team Civil
4. Team Teknisi
5. Lain-lain
RENCANA BESOK

Riwayat Report Pekerjaan

{{ dcReports.length }} data - {{ filteredDcReportsForExport.length }} siap export
Belum ada report pekerjaan data center.
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
Belum ada report sales marketing.
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.

{{ itTicketReports.length }} tiket

{{ editItTicketMode ? 'Edit Tiket' : 'Input Tiket' }}

Belum ada tiket trouble IT.
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.

{{ itPurchaseRequests.length }} request

{{ editItPurchaseMode ? 'Edit Request' : 'Input Request' }}

Belum ada request pembelian barang IT.
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.

{{ documentLoans.length }} data

{{ editDocumentLoanMode ? 'Edit Peminjaman' : 'Ajukan Dokumen' }}

Belum ada peminjaman 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 }}

📅 {{ formatDate(item.startDate) }} - {{ formatDate(item.endDate) }} 🕒 {{ item.startTime || '-' }} - {{ item.endTime || '-' }} Pengajuan: {{ item.submittedDate ? formatDate(item.submittedDate) : '-' }} {{ item.submittedTime || '' }} ⛽ {{ item.kmStart }} KM
Jadwal: {{ item.startTime || '-' }} - {{ item.endTime || '-' }} Pengajuan: {{ item.submittedDate ? formatDate(item.submittedDate) : '-' }} {{ item.submittedTime || '' }} | Selesai Aktual: {{ item.actualReturnDate ? formatDate(item.actualReturnDate) : '-' }} {{ item.actualReturnTime || '' }}
Laporan KM Pengembalian: {{ item.kmStart }} → {{ item.kmEnd }} ({{ item.kmEnd - item.kmStart }} KM)

Keperluan: {{ item.reason }}

Request Pembelian Barang IT

Menunggu {{ getItPurchaseApprovalStageLabel(currentItPurchaseApprovalStage(item)) }}

{{ item.nama_barang }} - Oleh: {{ item.user_name || '-' }}

{{ formatDate(item.tanggal) }} Jumlah: {{ item.jumlah }} {{ item.prioritas }}

Spesifikasi: {{ item.spesifikasi }}

Alasan: {{ item.alasan }}

Divisi IT
{{ formatItPurchaseApprovalStatus(item.it_approval_status) }}
oleh {{ item.it_approver_name }}
Direktur
{{ formatItPurchaseApprovalStatus(item.director_approval_status) }}
oleh {{ item.director_approver_name }}

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 || '-' }} - {{ 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.

{{ chatAvatarText(selectedChatUser) }}

{{ chatTargetName }}

{{ selectedChatUser?.divisi || selectedChatUser?.role || 'Personal chat' }}

Belum ada pesan.

{{ chat.user_name }}
{{ chat.message }}
{{ formatDateTime(chat.created_at) }}

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

Pengaturan Aplikasi

Current logo Logo saat ini

Alasan Penolakan

Silakan masukkan alasan penolakan permohonan.

Selesaikan Peminjaman

{{ editMode ? 'Edit' : 'Tambah' }} {{ modalType === 'kendaraan' ? 'Kendaraan' : modalType === 'aset' ? 'Aset' : modalType === 'driver' ? 'Driver' : 'User' }}

Kosongkan untuk mengikuti akses default berdasarkan role dan divisi.

Ubah Password

Pemotongan Cuti

{{ cutiForm.user_name }}

Sisa cuti saat ini: {{ selectedCutiSummary.sisa !== undefined ? selectedCutiSummary.sisa : '-' }} hari

{{ modalIzinTitle }}

Approval cuti berjalan berurutan: Kepala Divisi, HRD, lalu Direktur.

PT CITRA KENCANA SOLUSINDO

FORMULIR PERMOHONAN CUTI KARYAWAN

Data Karyawan

Nama Lengkap

{{ currentUser?.name || '-' }}

Divisi / Bagian / Unit Kerja

{{ currentUser?.divisi || '-' }}

Keterangan Cuti

{{ cutiDurationLabel }}

Edit Peminjaman #{{ editPeminjamanForm.id }}

{{ notification.message }}