-- =========================================================================
-- MIGRATION: Selaraskan Kod Anak Syarikat dengan Fail Konsolidasi Rasmi
-- "MBI Group Consol - Jan26 (for IT)"
-- Jalankan di phpMyAdmin > tab SQL, pada database SPMS sedia ada anda.
--
-- APA SKRIP INI BUAT: fail Excel rasmi yang dihantar IT (sheet
-- "CSOPL (Jan - A26)") menyenaraikan 32 kod syarikat. Skrip ini
-- membandingkan 32 kod itu dengan 38 kod yang SUDAH wujud dalam sistem
-- (daripada sql/import_32_subsidiaries_mbi.sql +
-- sql/migration_add_mbi_holding_and_excluded_companies.sql).
--
-- KEPUTUSAN PERBANDINGAN:
--   27 kod SAMA PERSIS — tiada tindakan diperlukan.
--   4 kod jelas SAMA SYARIKAT tapi format kod berbeza sedikit — skrip
--     ini KEMASKINI kod sedia ada (Bahagian 1 di bawah, SELAMAT
--     dijalankan — subsidiary_id/UUID tidak berubah, jadi SEMUA data
--     kewangan sejarah yang sudah dikaitkan dengan syarikat itu KEKAL
--     terpaut betul).
--   Baki (AIS/AISHOLDINGS, INPEN_STDC/STDC, dan 3 kod yang tiada
--     langsung dalam fail baharu) memerlukan PENGESAHAN ANDA dahulu —
--     lihat Bahagian 2 (dikomen/tidak dijalankan automatik) dan nota
--     penuh di penghujung fail ini SEBELUM anda uncomment & jalankan.
-- =========================================================================


-- =========================================================================
-- BAHAGIAN 1 — Kemas Kini Kod (SELAMAT, boleh jalankan terus)
-- 4 syarikat yang kod dalam sistem TIDAK SAMA dengan fail rasmi baharu,
-- tapi jelas syarikat SAMA (nama & konteks sepadan 100%).
-- =========================================================================

-- ISB -> INVEST (Invest Selangor Berhad)
UPDATE subsidiaries SET code = 'INVEST' WHERE code = 'ISB';

-- YANIS -> INSAN (Yayasan Insan Istimewa (Selangor))
UPDATE subsidiaries SET code = 'INSAN' WHERE code = 'YANIS';

-- AIRLESTARI -> "AIR LESTARI" (fail rasmi guna kod dengan ruang;
-- kekalkan format sistem sedia ada TANPA ruang untuk elak isu di URL/
-- CSV masa hadapan — sebaliknya kod SISTEM kekal 'AIRLESTARI', dan
-- baris ini hanya memastikan ia tiada — TIADA tindakan sebenarnya
-- diperlukan sebab kod sedia ada sudah boleh terima; baris ini
-- sengaja DIBIARKAN KOSONG. Kalau anda mahu padan EKSAK dengan fail
-- Excel (termasuk ruang), uncomment baris di bawah:
-- UPDATE subsidiaries SET code = 'AIR LESTARI' WHERE code = 'AIRLESTARI';

-- INPEN_STDC -> INPENS (lihat AMARAN Bahagian 2 di bawah — fail rasmi
-- mungkin anggap INPEN dan STDC sebagai DUA entiti berasingan, bukan
-- sekadar tukar nama. Kod ini kemaskini nama kod sahaja buat masa ini;
-- soal "patut dipecah kepada 2 syarikat atau tidak" perlu keputusan
-- anda — lihat Bahagian 2.)
UPDATE subsidiaries SET code = 'INPENS' WHERE code = 'INPEN_STDC';


-- =========================================================================
-- BAHAGIAN 2 — Memerlukan Pengesahan Anda (TIDAK dijalankan automatik)
-- =========================================================================
--
-- ---- 2a) AIS vs AISHOLDINGS ----
-- Sistem sedia ada ada 4 syarikat berasingan dalam sektor Water:
--   AISHOLDINGS (Air Selangor Holdings Berhad)
--   PASB        (Pengurusan Air Selangor Sdn Bhd)
--   HELIOSEL    (Heliosel Sdn Bhd)
--   CUBIQMETERS (Cubiq Meters Sdn Bhd)
--
-- Fail rasmi Jan 2026 HANYA ada SATU baris untuk sektor Water: kod
-- 'AIS', nama "AIR SELANGOR HOLDINGS BERHAD (GROUP FIGURE)" — perkataan
-- "GROUP FIGURE" menunjukkan angka ini SUDAH KONSOLIDASI (jumlah
-- keseluruhan AISHOLDINGS + PASB + HELIOSEL + CUBIQMETERS bersama),
-- bukan syarikat baharu.
--
-- PERSOALAN untuk anda: adakah mulai Jan 2026, pelaporan bulanan akan
-- terus guna SATU angka konsolidasi 'AIS' sahaja (bukan submit
-- berasingan utk PASB/HELIOSEL/CUBIQMETERS lagi)? Kalau YA, uncomment
-- 3 baris di bawah (tukar kod AISHOLDINGS->AIS, nyahaktifkan 3 syarikat
-- subsidiari supaya tak diminta submit berasingan lagi — data kewangan
-- SEJARAH mereka KEKAL dalam sistem, cuma tak muncul dalam senarai
-- "perlu submit" akan datang):
--
-- UPDATE subsidiaries SET code = 'AIS' WHERE code = 'AISHOLDINGS';
-- UPDATE subsidiaries SET is_active = 0 WHERE code IN ('PASB','HELIOSEL','CUBIQMETERS');
--
-- Kalau TIDAK (anda masih nak submit 4 syarikat berasingan seperti
-- biasa, dan 'AIS' dalam fail Excel cuma JUMLAH untuk rujukan Group),
-- JANGAN jalankan 2 baris di atas — kekalkan sistem seperti sekarang.
--
--
-- ---- 2b) INPEN_STDC: satu syarikat atau dua? ----
-- Sheet "CSOPL (Jan - A26)" ada kod 'INPENS' (INPEN (Selangor) Sdn
-- Bhd) dengan angka kewangan penuh. TETAPI sheet "Sectorial results"
-- (bahagian Healthcare & Education) turut ada baris 'STDC' BERASINGAN
-- dengan sumbangan Revenue sendiri (RM0.517 juta) — bukan sebahagian
-- angka INPENS.
--
-- Ini mencadangkan STDC mungkin SEBENARNYA entiti/syarikat BERASINGAN
-- daripada INPEN (Selangor), bukan sekadar nama panjang yang sama
-- (sistem sedia ada gabungkan kedua-duanya sebagai SATU kod
-- 'INPEN_STDC'). Kalau disahkan BENAR ia 2 syarikat berasingan, anda
-- perlu PECAHKAN rekod ini kepada 2 baris subsidiaries baharu (dan
-- ini AKAN menjejaskan cara data kewangan sejarah INPEN_STDC perlu
-- diagihkan semula antara 2 kod baharu — kerja tambahan yang perlu
-- dirancang berasingan, BUKAN sekadar UPDATE kod).
--
-- TIADA SQL disediakan untuk item ini — sila sahkan dengan pasukan
-- kewangan/pelaporan dahulu sebelum sebarang perubahan struktur dibuat.
--
--
-- ---- 2c) Kod dalam sistem TIADA dalam fail Jan 2026 ----
-- 3 syarikat berikut wujud dalam sistem tapi TIDAK muncul langsung
-- dalam fail konsolidasi Jan 2026 (CSOPL mahupun Sectorial results):
--   CSSB        (Central Spectrum (M) Sdn Bhd)
--   URBANCUBES  (Urbancubes Sdn Bhd)
--   WAVPAY      (Wavpay Fintech Holdings Sdn Bhd)
--
-- Ini TIDAK semestinya bermakna syarikat ini tidak aktif lagi — ada
-- banyak sebab sah (syarikat baharu belum mula lapor, syarikat
-- dorman/tiada operasi bulan ini, atau sekadar tertinggal daripada
-- fail konsolidasi bulan ini). TIADA tindakan diambil secara automatik
-- — sila sahkan status 3 syarikat ini dengan pasukan kewangan sebelum
-- menandakan is_active = 0 (atau kekalkan aktif kalau ia cuma
-- tertinggal daripada fail bulan ini).
-- =========================================================================
