PT CITRA KENCANA SOLUSINDO

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 berjalan berurutan sesuai jabatan/divisi pemohon.

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

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' }}
-
Belum ada data absensi.

Jatah Cuti

{{ cutiSummary.jatah || 0 }}

Hari per tahun

Cuti Terpakai

{{ cutiSummary.cuti_disetujui || 0 }}

Dari cuti yang disetujui

Pemotongan Cuti

{{ cutiSummary.pemotongan_admin || 0 }}

Input oleh HRD/Admin

Catatan: {{ cutiSummary.penyesuaian[0].keterangan }}

Sisa Cuti

{{ cutiSummary.sisa || 0 }}

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

Status Cuti Saya

Total terpakai {{ cutiSummary.terpakai || 0 }} hari, sisa {{ cutiSummary.sisa || 0 }} hari.

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

{{ cuti.keterangan }}

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

-{{ cuti.jumlah }} hari

Pemotongan Cuti Karyawan

Input pemotongan cuti per karyawan oleh HRD/Admin.

{{ dataUser.length }} karyawan
Nama Email Role Divisi Jatah Cuti Terpotong Sisa Cuti Aksi
{{ item.name }} {{ item.email || '-' }} {{ roleDisplayLabel(item.role) }} {{ item.divisi || '-' }} {{ item.cuti_tahunan || 0 }} hari
{{ Number(item.total_pemotongan_cuti || 0) > 0 ? '-' : '' }}{{ item.total_pemotongan_cuti || 0 }} hari
{{ item.catatan_pemotongan_cuti_terakhir }}
{{ item.sisa_cuti_setelah_pemotongan ?? Math.max(0, Number(item.cuti_tahunan || 0) - Number(item.total_pemotongan_cuti || 0)) }} hari
Belum ada data karyawan.

Permohonan Izin, Sakit & Cuti

Nama Divisi Tipe Bukti Tanggal Alasan Catatan HRD Digantikan Oleh 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 || '-' }} {{ iz.tipe === 'cuti' ? (iz.pengganti_nama || '-') : '-' }} {{ 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 Report Teknisi & Support

Teknisi & Support

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

Format Harian Individu

Laporan Harian

Data Center

Logo CKS CKS

Teknisi

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

Divisi

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

Hari

{{ formatDateFull(new Date(formDcReport.tanggal || new Date())).split(',')[0] }}

Jam Kerja

Sesuai absensi

Harian teknisi/Support
Kolom
Isi Data

Riwayat Report Pekerjaan

{{ dcReports.length }} data - {{ filteredDcReportsForExport.length }} siap export
Belum ada report pekerjaan data center.
Tanggal Teknisi Nama Projek Owner Projek Data Center Pekerjaan Status Aksi
{{ formatDate(item.tanggal) }} {{ item.user_name || currentUser?.name || '-' }} {{ item.nama_projek || '-' }} {{ item.owner_projek || '-' }} {{ item.data_center }}
{{ item.pekerjaan }}
{{ item.detail }}
Catatan: {{ item.catatan }}
{{ formatDcStatus(item.status) }}

Report Sales Dan Support

Sales Marketing

Total Report

{{ salesReports.length }}

{{ editSalesReportMode ? 'Edit Report Sales' : 'Input Report Sales' }}

Riwayat Report Sales

{{ filteredSalesReports.length }} dari {{ salesReports.length }} data
Belum ada report sales marketing.
Tidak ada report sales untuk filter ini.
Tanggal Sales Customer Project Grade Aksi
{{ formatDate(item.tanggal) }} {{ item.user_name || '-' }} {{ item.customer }}
{{ item.kegiatan }}
{{ item.catatan }}
{{ formatSalesStatus(item.status) }}

Laporan Keruskan IT

Kategori dan laporan gangguan IT

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

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

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' : 'Laporan Peminjaman' }}

Ringkasan dan detail aktivitas peminjaman aset serta kendaraan.

Laporan Operasional

{{ appSettings.name }}

Aktivitas Peminjaman Aset & Kendaraan

Periode : {{ activeReportPeriodLabel }} 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

{{ filteredAttendanceReport.length }} baris data - {{ isLoadingAttendanceReport ? 'sedang menarik data...' : 'siap ditampilkan dan diexport' }}

Menarik data absensi...

Belum ada data absensi untuk periode ini.

No Tanggal Nama Divisi Masuk Pulang Durasi GPS Keterangan Status
{{ index + 1 }} {{ formatDate(item.tanggal) }} {{ attendanceReportRowUserName(item) }} {{ 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.

User tidak ditemukan.

{{ chatAvatarText(selectedChatUser) }}

{{ chatTargetName }}

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

Belum ada pesan.

{{ chatAvatarText({ name: chat.user_name }) }}
{{ chat.user_name }}
{{ chat.message }}
{{ formatDateTime(chat.created_at) }}
{{ chatAvatarText(currentUser) }}

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

Foto Nama Username Email Role Divisi Permission Menu Cuti Aksi
{{ item.name?.charAt(0) || '-' }}
{{ item.name }} {{ item.username }} {{ item.email || '-' }} {{ 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

Hapus Histori Chat Otomatis

Pesan chat yang lebih lama dari batas ini akan dibersihkan otomatis.

Current logo Logo saat ini

Alasan Penolakan

Silakan masukkan alasan penolakan permohonan.

{{ absensiPhotoPreviewTitle || 'Preview Foto' }}

Lihat hasil selfie absensi dengan tombol kembali

Foto tidak dapat ditampilkan.

{{ izinPdfPreviewTitle || 'Review PDF' }}

Review form cuti sebelum dicetak atau diunduh

PDF tidak dapat ditampilkan.

Selesaikan Peminjaman

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

{{ masterForm.name?.charAt(0) || 'U' }}

Kosongkan untuk mengikuti akses default berdasarkan role dan divisi.

Ubah Password

{{ cutiEditMode ? 'Edit Pemotongan Cuti' : 'Pemotongan Cuti' }}

{{ cutiForm.user_name }}

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

{{ modalIzinTitle }}

Approval berjalan berurutan sesuai jabatan/divisi pemohon.

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