Model: attendance_machine_import
Menu: Attendance → Import Data → Mesin Kehadiran
Import Data Kehadiran Mesin adalah dokumen transaksi untuk mengimport data kehadiran dari mesin fisik. Dokumen ini membaca file CSV yang diekspor dari mesin, membuat data mentah (raw data), kemudian memproses melalui queue job untuk membuat/memperbarui record kehadiran karyawan (hr.timesheet.attendance).
Setiap baris Import Data diproses satu per satu. Baris yang gagal diproses (kode karyawan tidak terdaftar, mapping CSV belum dikonfigurasi, format datetime tidak cocok, dsb.) tidak menggagalkan queue job — baris tersebut ditandai status Error dengan pesan kesalahan tersimpan pada baris. Dokumen baru berpindah otomatis dari queue_done ke done setelah seluruh queue job selesai dan tidak ada lagi baris berstatus Error (baris error harus di-Retry atau di-Ignore terlebih dahulu).
Workflow: draft → confirm → queue_done → done (otomatis, setelah tidak ada baris Error) (atau cancel)
Tanggal import data kehadiran. Diisi otomatis dengan tanggal hari ini saat dokumen dibuat, tetapi dapat diubah saat dokumen masih dalam status draft.
Nilai Default: Tanggal hari ini (diisi otomatis)
Wajib Diisi: Ya
Dapat Dirubah: Ya (hanya saat draft)
Mekanisme Pengisian Otomatis: N/A
Referensi ke mesin kehadiran yang file datanya akan diimport. Pemilihan mesin menentukan konfigurasi CSV dan daftar karyawan yang terdaftar pada mesin.
Nilai Default: (kosong, harus diisi)
Wajib Diisi: Ya
Dapat Dirubah: Ya (hanya saat draft)
Pembatasan Pilihan: Hanya mesin kehadiran yang aktif
Mekanisme Pengisian Otomatis: N/A
File CSV yang akan diimport berisi data kehadiran mentah (raw data) yang diekspor dari mesin kehadiran fisik.
Nilai Default: (kosong)
Wajib Diisi: Tidak (tetapi IK akan lebih bermakna jika diisi)
Dapat Dirubah: Ya (hanya saat draft)
Mekanisme Pengisian Otomatis: N/A
Nama file CSV yang diupload. Diisi otomatis berdasarkan nama file yang dipilih saat upload.
Nilai Default: (kosong, diisi otomatis)
Wajib Diisi: Tidak
Dapat Dirubah: Ya (hanya saat draft)
Mekanisme Pengisian Otomatis: Diisi otomatis saat file diupload
SHA-256 hash dari file CSV yang diupload. Digunakan untuk mendeteksi duplikat import dan mencegah import file yang sama dua kali. Field ini dihitung otomatis dan tidak dapat diedit.
Nilai Default: (kosong, dihitung otomatis saat file diupload)
Wajib Diisi: Tidak
Dapat Dirubah: Tidak (dihitung otomatis)
Mekanisme Pengisian Otomatis: Dihitung dari konten file CSV saat action "Load Data" dilakukan
Tabel baris data mentah (raw data) yang dibaca dari file CSV, sekaligus melacak status pemrosesan tiap baris menjadi record kehadiran karyawan. Setiap baris berisi data dalam format JSON dari satu baris CSV. Baris-baris ini kemudian diproses untuk membuat/memperbarui record kehadiran karyawan.
Nilai Default: (kosong)
Wajib Diisi: Tidak
Dapat Dirubah: Ya (hanya saat queue_done, untuk koreksi manual sebelum finalisasi)
Mekanisme Pengisian Otomatis: Diisi otomatis saat action "Load Data" dilakukan, dibaca dari file CSV
Setiap baris pada tabel Import Data memiliki field berikut:
Nomor urut baris, mengikuti urutan baris pada file CSV sumber.
Nilai Default: N/A
Wajib Diisi: Ya
Dapat Dirubah: Tidak
Data mentah satu baris CSV dalam format JSON, ditampilkan dengan widget JSON viewer.
Nilai Default: (kosong)
Wajib Diisi: Tidak
Dapat Dirubah: Ya, hanya saat baris berstatus Draft atau Error, melalui wizard Edit Data — lihat Memvalidasi Queue Import Data Kehadiran bagian Edit Data — Koreksi Lalu Retry
Mekanisme Pengisian Otomatis: Diisi otomatis saat action "Load Data" dilakukan
Karyawan yang dipadankan, diturunkan dari timesheet pada record Attendance yang terbentuk dari baris ini.
Nilai Default: (kosong)
Wajib Diisi: Tidak
Dapat Dirubah: Tidak
Mekanisme Pengisian Otomatis: Diisi otomatis mengikuti field Attendance
Referensi ke record hr.timesheet.attendance yang terbentuk/diperbarui dari baris ini.
Nilai Default: (kosong)
Wajib Diisi: Tidak
Dapat Dirubah: Tidak
Mekanisme Pengisian Otomatis: Diisi otomatis saat baris berhasil diproses (status Done)
Status pemrosesan baris. Nilai yang mungkin: Draft (belum diproses), Done (berhasil dikonversi menjadi record kehadiran), Error (gagal diproses — lihat Error Message), atau Ignored (sengaja dikecualikan dari import melalui aksi Ignore).
Nilai Default: Draft
Wajib Diisi: Ya
Dapat Dirubah: Tidak (berubah otomatis melalui pemrosesan queue job, atau aksi Retry/Edit Data/Ignore)
Mekanisme Pengisian Otomatis: Berubah otomatis saat baris diproses, di-Retry, dikoreksi lewat Edit Data (kembali ke Draft), atau di-Ignore
Pesan penyebab kegagalan pemrosesan baris. Terisi otomatis saat baris berstatus Error, dan dikosongkan kembali saat baris di-Retry.
Nilai Default: (kosong)
Wajib Diisi: Tidak
Dapat Dirubah: Tidak
Mekanisme Pengisian Otomatis: Diisi otomatis saat pemrosesan baris gagal
Alasan mengapa baris dikecualikan dari import. Wajib diisi sebelum baris dapat di-Ignore.
Nilai Default: (kosong)
Wajib Diisi: Tidak (wajib hanya saat melakukan aksi Ignore)
Dapat Dirubah: Ya
Jumlah total baris pada tabel Import Data.
Nilai Default: N/A
Wajib Diisi: N/A
Dapat Dirubah: Tidak
Mekanisme Pengisian Otomatis: Dihitung otomatis dari jumlah baris Import Data
Jumlah baris Import Data yang berhasil dikonversi menjadi record kehadiran (status Done).
Nilai Default: N/A
Wajib Diisi: N/A
Dapat Dirubah: Tidak
Mekanisme Pengisian Otomatis: Dihitung otomatis dari baris berstatus Done
Jumlah baris Import Data yang gagal diproses (status Error). Dokumen tidak dapat berpindah ke status done selama jumlah ini lebih dari nol.
Nilai Default: N/A
Wajib Diisi: N/A
Dapat Dirubah: Tidak
Mekanisme Pengisian Otomatis: Dihitung otomatis dari baris berstatus Error
Jumlah baris Import Data yang dikecualikan dari import (status Ignored).
Nilai Default: N/A
Wajib Diisi: N/A
Dapat Dirubah: Tidak
Mekanisme Pengisian Otomatis: Dihitung otomatis dari baris berstatus Ignored
Status dokumen dalam workflow import. Field ini menunjukkan posisi dokumen dalam alur proses.
Nilai Default: draft
Wajib Diisi: N/A
Dapat Dirubah: Tidak (berubah otomatis melalui workflow)
Mekanisme Pengisian Otomatis: Berubah otomatis melalui aksi workflow