Flowchart Siklus Entry Transaksi Global
Diagram alir holistik mulai dari validasi form, pemeriksaan periode tutup buku, pembentukan jurnal otomatis, hingga pembaruan laporan keuangan.
PeriodLockTrait"} PeriodCheck -- "Periode Ditutup - Closed" --> ErrPeriod["Flash Error: Periode Akuntansi Sudah Ditutup"] ErrPeriod --> FormInput PeriodCheck -- "Periode Aktif - Open" --> SelectType{"Pilih Jenis Transaksi"} SelectType --> FlowJU["Entry Jurnal Umum Manual"] SelectType --> FlowKas["Entry Kas dan Bank"] SelectType --> FlowPJ["Entry Faktur Penjualan"] SelectType --> FlowPB["Entry Faktur Pembelian"] SelectType --> FlowPay["Entry Pembayaran / Penerimaan"] SelectType --> FlowAdj["Entry Produksi dan Penyesuaian"] FlowJU --> Validation["Validasi Data dan Keseimbangan Debit = Kredit"] FlowKas --> Validation FlowPJ --> Validation FlowPB --> Validation FlowPay --> Validation FlowAdj --> Validation Validation -- "Gagal / Tidak Seimbang" --> Rollback["Batalkan dan Tampilkan Flash Message"] Rollback --> FormInput Validation -- "Lolos Validasi" --> DBTransaction["Begin DB Transaction - PDO"] DBTransaction --> InsertHeaderDetail["Simpan Header dan Detail Dokumen Transaksi"] DBTransaction --> AutoJournal["Otomatis Posting ke jurnal_umum dan jurnal_detail"] DBTransaction --> AuxUpdate["Update Stok / Saldo Kontak / Kartu Stok"] AuxUpdate --> Commit["Commit Transaction"] Commit --> Finish["Laporan Keuangan dan Buku Besar Terupdate Otomatis"]
Setiap request dicek oleh PeriodLockTrait::checkPeriodLock(). Jika tanggal transaksi masuk dalam bulan yang sudah ditutup di tabel periode_akuntansi, transaksi diblokir seketika.
Menggunakan beginTransaction() dan commit(). Jika gagal saat menyimpan detail atau mutasi stok, otomatis rollBack() sehingga database selalu bersih tanpa data parsial.
Semua transaksi langsung mengalir ke jurnal_umum & jurnal_detail. Neraca Lajur, Laba Rugi, Posisi Keuangan, dan Arus Kas langsung mencerminkan data terbaru tanpa proses batch.
Matriks Aturan Entry & Penguncian Transaksi
Tinjauan cepat efek basis data dan penjurnalan untuk setiap jenis transaksi.
| Modul / Transaksi | Tabel Database Utama | Dampak Jurnal Otomatis | Penguncian (is_locked) | Efek Sampingan (Auxiliary) |
|---|---|---|---|---|
| Jurnal Umum Manual | jurnal_umum, jurnal_detail | Sesuai baris input pengguna | 0 (Bisa Diedit Langsung) | - |
| Kas Masuk / Keluar | kas_transaksi | Debit Kas vs Kredit Lawan (atau sebaliknya) | 1 (Terkunci di Jurnal) | Validasi Saldo Minimum Kas |
| Faktur Penjualan | penjualan, penjualan_detail | Kas/Piutang vs Pendapatan, Pajak, HPP & Persediaan | 1 (Terkunci di Jurnal) | Potong Stok Barang & Tambah Piutang |
| Faktur Pembelian | pembelian, pembelian_detail | Persediaan, PPN vs Kas/Utang & Diskon | 1 (Terkunci di Jurnal) | Tambah Stok, Kartu Stok & Tambah Utang |
| Pelunasan Piutang / Utang | pembayaran, penerimaan | Kas/Bank vs Piutang (atau Utang vs Kas/Bank) | 1 (Terkunci di Jurnal) | Kurangi sisa_tagihan faktur & saldo kontak |
| Produksi & BOM | produksi, produksi_detail | Persediaan Barang Jadi vs Persediaan Bahan Baku | 1 (Terkunci di Jurnal) | Konversi Stok Bahan Baku -> Barang Jadi |