Skip to main content

Versi 1

FieldIsi
Dokumen IDVBS-FIN-006
DeskripsiPencatatan pembayaran gaji karyawan per masa gaji, baik melalui invoice gaji biasa (jenis pekerja, tunjangan, potongan PPh, BPJS) maupun dengan mengubah pengeluaran kas/bank yang sudah tercatat menjadi invoice gaji
Nomor Revisi1
Tanggal2026-10-04
KeteranganDokumentasi baseline dari dokumentasi fitur demo dan kode FE

1. Ringkasan​

a. In scope​

  • User melihat daftar pembayaran gaji (tanggal, masa gaji, nomor invoice, kandang / gudang / cabang, klaster, total gaji, total tunjangan, total BPJS, total potongan PPh, status invoice) dan memfilternya berdasarkan tanggal, masa gaji, akun kas/bank, cabang, klaster, status invoice, dan karyawan.
  • User membuat invoice gaji biasa: cabang, masa gaji, klaster, keterangan, dan baris karyawan berisi jenis pekerja, nominal gaji, akun dan nominal tunjangan, potongan PPh, pihak penanggung PPh, akun pembayaran, tanggal dibayar, serta komponen BPJS.
  • Jenis pekerja: pegawai tetap, pegawai tidak tetap bulanan, pegawai tidak tetap harian, asing, badan, tenaga ahli. PPh ditanggung oleh: pegawai, perusahaan, atau pemerintah.
  • User membuat pengeluaran gaji dari transaksi kas/bank keluar: memilih akun lawan (beban), jenis pekerja, dan rentang tanggal, lalu menandai baris pengeluaran sebagai gaji / tunjangan per karyawan dan masa gaji.
  • User menyimpan invoice gaji biasa sebagai draft atau final, mengubah / menghapus draft, mengatur ulang BPJS Kesehatan dan Ketenagakerjaan, mengubah final ke draft, memposting ulang, serta mencetak slip gaji dan nota gaji.

b. Catatan​

c. Kesimpulan​

  • [FE] -
  • [BE] -

2. Functional Requirement​

KodeDeskripsi
FR-01Sistem menampilkan daftar invoice gaji dengan total gaji, tunjangan, BPJS, potongan PPh, dan status
FR-02User dapat memfilter daftar berdasarkan tanggal, masa gaji, akun kas/bank, cabang, klaster, status, dan karyawan
FR-03User dapat membuat invoice gaji dengan banyak baris karyawan
FR-04Setiap baris karyawan memuat jenis pekerja, gaji, tunjangan, potongan PPh, penanggung PPh, akun pembayaran, tanggal bayar, dan BPJS
FR-05User dapat menyimpan invoice gaji sebagai draft atau final
FR-06User dapat mengubah pengeluaran kas/bank keluar menjadi invoice gaji
FR-07User dapat mengubah dan menghapus invoice gaji draft
FR-08User dapat menghitung dan memperbarui BPJS Ketenagakerjaan / Kesehatan pada invoice draft
FR-09User dengan hak draft dapat mengubah invoice gaji final kembali ke draft
FR-10User dapat memposting ulang invoice gaji final
FR-11User dapat mencetak slip gaji dan nota invoice gaji

3. Use Case List​

KodeDeskripsi
UC-01Melihat dan memfilter daftar pembayaran gaji
UC-02Membuat invoice gaji
UC-03Membuat pengeluaran gaji dari transaksi kas bank
UC-04Mengubah invoice gaji draft
UC-05Memperbarui BPJS pada invoice gaji draft
UC-06Membuka kembali (unlock) invoice gaji final ke draft
UC-07Menghapus invoice gaji draft
UC-08Memposting ulang invoice gaji
UC-09Mencetak slip gaji dan nota gaji

4. Use Case Scenario​

UC-01 : Melihat dan memfilter daftar pembayaran gaji​

AktorUser keuangan / HR
DeskripsiUser melihat dan memfilter daftar invoice gaji
PrekondisiUser sudah login dan memiliki akses menu Pembayaran Gaji
Alur utama1. User membuka menu Keuangan, Pembayaran Gaji.
2. Sistem menampilkan daftar invoice gaji beserta penanda rekap.
3. User mengisi filter tanggal, masa gaji, akun kas/bank, cabang, klaster, status invoice, atau karyawan.
4. Sistem memuat ulang daftar.
Alur negatif- Jika daftar kosong atau gagal dimuat, sistem menampilkan keadaan kosong / alert error.
Bisnis rule- Masa gaji dikirim dalam format tahun-bulan (YYYYMM).
- Status invoice: selesai / draft.
PostkondisiDaftar invoice gaji tampil
TriggerUser membuka halaman atau mengubah filter
Kode FRFR-01
FR-02

UC-02 : Membuat invoice gaji​

AktorUser keuangan / HR
DeskripsiUser mencatat pembayaran gaji karyawan untuk satu masa gaji
PrekondisiUser memiliki hak dasar, data karyawan dan akun kas/bank tersedia
Alur utama1. User memilih Tambah Invoice.
2. User mengisi cabang, masa gaji, klaster, nomor invoice (opsional), dan keterangan.
3. User mengatur kolom yang dipakai (gaji, tunjangan, potongan PPh, BPJS Kesehatan, BPJS Ketenagakerjaan) beserta tanggal dan akun bayar BPJS.
4. User menambah baris karyawan: karyawan, jenis pekerja, gaji, akun dan nominal tunjangan, potongan PPh, PPh ditanggung oleh, akun pembayaran, tanggal dibayar, komponen BPJS.
5. User menyimpan sebagai draft atau final.
6. Sistem menampilkan "Berhasil buat Invoice Gaji" atau "Draft Invoice Gaji Berhasil dibuat".
Alur negatif- Jika header belum lengkap (misal masa gaji kosong), muncul "Tolong lengkapi form dengan benar!".
- Jika rincian karyawan belum lengkap, muncul "Tolong lengkapi rincian dengan benar!".
- Jika user membatalkan konfirmasi final, data tidak disimpan.
- Jika server menolak, muncul notifikasi error.
Bisnis rule- Masa gaji wajib diisi.
- Jika PPh ditanggung pegawai, baris ditandai sebagai beban karyawan.
- Tanggal invoice diisi otomatis tanggal hari ini.
- Total gaji, tunjangan, dan potongan PPh dihitung dari seluruh baris.
PostkondisiInvoice gaji tersimpan sebagai draft atau final
TriggerUser memilih Tambah Invoice
Kode FRFR-03
FR-04
FR-05

UC-03 : Membuat pengeluaran gaji dari transaksi kas bank​

AktorUser keuangan / HR
DeskripsiUser mengubah pengeluaran kas/bank yang sudah tercatat menjadi invoice gaji
PrekondisiSudah ada transaksi kas/bank keluar pada akun beban terkait
Alur utama1. User memilih Tambah Pengeluaran Gaji.
2. User memilih akun lawan, jenis pekerja, dan rentang tanggal.
3. Sistem memuat rincian transaksi kas/bank keluar pada akun dan periode tersebut.
4. User mencentang baris yang dijadikan upah, lalu mengisi karyawan, jenis upah (gaji / tunjangan), dan masa gaji. Satu baris dapat dipecah ke beberapa karyawan.
5. Sistem menampilkan total pengeluaran ditandai upah, total gaji, dan total tunjangan.
6. User menyimpan.
7. Sistem menampilkan notifikasi pengeluaran invoice gaji berhasil dibuat.
Alur negatif- Jika akun lawan atau jenis pekerja belum dipilih, muncul "Tolong lengkapi form dengan benar!".
- Jika tidak ada baris dicentang atau baris tanpa karyawan, muncul "Tidak ada data yang dipilih!".
- Jika server menolak, muncul notifikasi error.
Bisnis rule- Akun lawan dibatasi rekening berawalan 5, 6, 8, dan 9.
- Hanya satu aksi simpan, tanpa draft / final terpisah.
- Jenis upah gaji mengisi nominal gaji, jenis upah tunjangan mengisi nominal tunjangan.
PostkondisiInvoice gaji terbentuk dari pengeluaran kas/bank
TriggerUser memilih Tambah Pengeluaran Gaji
Kode FRFR-06

UC-04 : Mengubah invoice gaji draft​

AktorUser keuangan / HR
DeskripsiUser memperbaiki invoice gaji yang masih draft
PrekondisiInvoice gaji berstatus draft dan user memiliki hak dasar
Alur utama1. User memilih Edit.
2. Sistem memuat detail invoice gaji.
3. User mengubah header atau baris karyawan.
4. User menyimpan sebagai draft atau final.
5. Sistem menampilkan "Berhasil update Invoice Gaji" atau "Draft Invoice Gaji Berhasil diupdate".
Alur negatif- Validasi sama dengan UC-02.
- Jika server menolak, muncul notifikasi error.
Bisnis rule- Menu Edit hanya untuk invoice draft.
PostkondisiInvoice gaji terbarui
TriggerUser memilih Edit
Kode FRFR-07

UC-05 : Memperbarui BPJS pada invoice gaji draft​

AktorUser keuangan / HR
DeskripsiUser menghitung dan menyimpan komponen BPJS Ketenagakerjaan / Kesehatan
PrekondisiInvoice gaji berstatus draft
Alur utama1. User memilih Edit BPJS Kesehatan, Ketenagakerjaan.
2. User mengisi persentase komponen BPJS TK (JHT, JKK, JKM, JKP, JP, porsi karyawan).
3. Sistem menghitung BPJS per karyawan.
4. User menyimpan.
5. Sistem menampilkan "Berhasil Memperharui data BPJS invoice NOMOR".
Alur negatif- Jika tidak ada karyawan, muncul "Tidak ada data karyawan yg mau diupdate!".
- Jika kalkulasi gagal, muncul notifikasi error.
Bisnis rule- Kalkulasi BPJS dilakukan oleh server berdasarkan invoice gaji.
PostkondisiKomponen BPJS invoice terbarui
TriggerUser memilih Edit BPJS
Kode FRFR-08

UC-06 : Membuka kembali (unlock) invoice gaji final ke draft​

AktorUser keuangan / HR dengan hak draft
DeskripsiUser mengembalikan invoice gaji final menjadi draft
PrekondisiInvoice gaji berstatus final
Alur utama1. User memilih Ubah ke Simpan Draft.
2. Sistem membuka kunci invoice.
3. Sistem menampilkan "Berhasil Ubah ke Simpan Draft Invoice NOMOR".
Alur negatif- Jika user tidak punya hak draft, menu tidak muncul.
- Jika server menolak, muncul alert error.
Bisnis rule- Membutuhkan hak draft Pembayaran Gaji.
PostkondisiInvoice kembali draft
TriggerUser memilih Ubah ke Simpan Draft
Kode FRFR-09

UC-07 : Menghapus invoice gaji draft​

AktorUser keuangan / HR
DeskripsiUser menghapus invoice gaji draft
PrekondisiInvoice gaji berstatus draft
Alur utama1. User memilih Hapus.
2. Sistem menampilkan konfirmasi "Anda yakin ingin menghapus NOMOR?".
3. Sistem menghapus invoice dan menampilkan "Berhasil hapus Invoice Gaji".
Alur negatif- Jika user membatalkan konfirmasi, data tidak dihapus.
- Jika server menolak, muncul alert error.
Bisnis rule- Menu Hapus hanya untuk invoice draft dengan hak dasar.
PostkondisiInvoice gaji terhapus
TriggerUser memilih Hapus
Kode FRFR-07

UC-08 : Memposting ulang invoice gaji​

AktorUser keuangan / HR
DeskripsiUser memicu ulang posting jurnal invoice gaji final
PrekondisiInvoice final dengan status proses posting atau belum berstatus
Alur utama1. User memilih Posting Ulang.
2. Sistem memproses ulang posting.
3. Sistem menampilkan notifikasi berhasil posting ulang.
Alur negatif- Jika server menolak, muncul alert error.
Bisnis rule- Menu hanya muncul jika status invoice "proses posting" atau kosong.
PostkondisiJurnal invoice gaji terbentuk ulang
TriggerUser memilih Posting Ulang
Kode FRFR-10

UC-09 : Mencetak slip gaji dan nota gaji​

AktorUser keuangan / HR
DeskripsiUser mencetak slip gaji per karyawan atau nota invoice gaji
PrekondisiInvoice gaji berstatus final
Alur utama1. User memilih Cetak Slip Gaji atau Cetak Nota.
2. Sistem memuat detail invoice siap cetak.
3. Sistem membuat PDF "SLIP GAJI" atau "INVOICE GAJI".
Alur negatif- Jika rincian gaji kosong, cetak tidak dilanjutkan.
- Cetak ulang dibatasi riwayat cetak dan hak reprint.
Bisnis rule- Cetak hanya untuk invoice final.
PostkondisiPDF slip / nota gaji tampil
TriggerUser memilih menu cetak
Kode FRFR-11

5. Data Flow Diagram​

DFD-01 — Alur data pembayaran gaji​

6. Sequence Diagram​

SD-01 — UC-01 : Melihat dan memfilter daftar pembayaran gaji​

SD-02 — UC-02 : Membuat invoice gaji​

SD-03 — UC-03 : Membuat pengeluaran gaji dari transaksi kas bank​

SD-04 — UC-04 : Mengubah invoice gaji draft​

SD-05 — UC-05 : Memperbarui BPJS pada invoice gaji draft​

SD-06 — UC-06 : Membuka kembali (unlock) invoice gaji final ke draft​

SD-07 — UC-07 : Menghapus invoice gaji draft​

SD-08 — UC-08 : Memposting ulang invoice gaji​

SD-09 — UC-09 : Mencetak slip gaji dan nota gaji​

7. Table Schema​

8. API Schema​

EndpointStatusPerubahan
GET /invoice-gajiexisting-
GET /invoice-gaji/:idexisting-
POST /invoice-gajiexisting-
PUT /invoice-gaji/:idexisting-
PUT /invoice-gaji/unlock/:idexisting-
DELETE /invoice-gaji/:idexisting-
POST /invoice-gaji/syncexisting-
POST /invoice-gaji/cashflow-to-gajiexisting-
POST /invoice-gaji/bpjs-tkexisting-
GET /invoice-kasbank-harianexisting-
GET /rekeningexisting-