-- DEPLOY PRODUKSI 2026-10-15 (2/2): perbaiki master unit akun kas + sinkron saldo.
-- 110111 milik 99 (yayasan utama) sesuai konfirmasi bendahara; kas SD ikut kas_unit.
-- BACKUP DATABASE DULU sebelum menjalankan.
START TRANSACTION;
UPDATE akun SET unit_id = '99', updated_at = NOW() WHERE kode_akun = '110111';
UPDATE akun AS a
JOIN kas_unit AS ku ON ku.kode_akun = a.kode_akun
SET a.unit_id = ku.kode_unit, a.updated_at = NOW()
WHERE a.is_kas = 1 AND a.unit_id IS NULL;
-- Verifikasi: harus 0 baris
SELECT COUNT(*) AS akun_kas_null FROM akun WHERE is_kas = 1 AND unit_id IS NULL;
-- Hitung ulang saldo seluruh akun kas dari jurnal (ganti angka inkremental basi)
UPDATE akun a
LEFT JOIN (
    SELECT akun_id, SUM(COALESCE(debit, 0) - COALESCE(kredit, 0)) AS m
    FROM jurnal_entry GROUP BY akun_id
) x ON x.akun_id = a.kode_akun
SET a.saldo = COALESCE(x.m, 0), a.updated_at = NOW()
WHERE a.is_kas = 1;
-- Verifikasi utama: harus 2251744466.71 (bergerak hanya bila ada input baru hari ini)
SELECT kode_akun, FORMAT(saldo, 2) AS saldo FROM akun WHERE kode_akun = '110214';
COMMIT;
