Cpone-BUG-00024 - hitung Mcu_ProjectTotalParticipant dari mcu_preregister_patients

Sebelumnya ikut m.Mgm_McuTotalParticipant (field target manual di source
yang bisa 0/belum diisi admin MGM), sekarang dihitung dari COUNT baris
aktif di cpone.mcu_preregister_patients per project supaya selalu sesuai
jumlah peserta yang benar-benar terdaftar. Sudah diverifikasi di devcpone:
mcu_id 1589 sekarang menampilkan 5 (sebelumnya 0/17).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sas.fajri
2026-08-28 14:13:41 +07:00
parent 000066c3de
commit a35df69be9

View File

@@ -12,6 +12,9 @@
-- 4. Kolom PK di INSERT INTO mcu_checkinout diperbaiki dari Mcu_CheckinoutCheckinoutID -- 4. Kolom PK di INSERT INTO mcu_checkinout diperbaiki dari Mcu_CheckinoutCheckinoutID
-- (tidak ada) menjadi Mcu_CheckinoutID, sesuai skema cpone_dashboard.mcu_checkinout -- (tidak ada) menjadi Mcu_CheckinoutID, sesuai skema cpone_dashboard.mcu_checkinout
-- yang sebenarnya. -- yang sebenarnya.
-- 5. Mcu_ProjectTotalParticipant tidak lagi ikut m.Mgm_McuTotalParticipant (field target
-- manual di source yang bisa 0/belum diisi), melainkan dihitung langsung dari COUNT
-- baris aktif di cpone.mcu_preregister_patients untuk project tsb.
DROP PROCEDURE IF EXISTS sp_generate_dashboard_data; DROP PROCEDURE IF EXISTS sp_generate_dashboard_data;
@@ -33,9 +36,16 @@ BEGIN
m.Mgm_McuID, m.Mgm_McuCorporateID, c.CorporateName, m.Mgm_McuID, m.Mgm_McuCorporateID, c.CorporateName,
m.Mgm_McuNumber, m.Mgm_McuLabel, m.Mgm_McuM_BranchID, m.Mgm_McuNumber, m.Mgm_McuLabel, m.Mgm_McuM_BranchID,
m.Mgm_McuStartDate, m.Mgm_McuEndDate, m.Mgm_McuIsActive, m.Mgm_McuStartDate, m.Mgm_McuEndDate, m.Mgm_McuIsActive,
m.Mgm_McuTotalParticipant, NOW() COALESCE(pp.total, 0), NOW()
FROM cpone.mgm_mcu m FROM cpone.mgm_mcu m
LEFT JOIN cpone.corporate c ON c.CorporateID = m.Mgm_McuCorporateID LEFT JOIN cpone.corporate c ON c.CorporateID = m.Mgm_McuCorporateID
LEFT JOIN (
SELECT Mcu_PreregisterPatientsMgm_McuID AS mcu_id, COUNT(*) AS total
FROM cpone.mcu_preregister_patients
WHERE Mcu_PreregisterPatientsMgm_McuID = p_mcu_id
AND Mcu_PreregisterPatientsIsActive = 'Y'
GROUP BY Mcu_PreregisterPatientsMgm_McuID
) pp ON pp.mcu_id = m.Mgm_McuID
WHERE m.Mgm_McuID = p_mcu_id WHERE m.Mgm_McuID = p_mcu_id
ON DUPLICATE KEY UPDATE ON DUPLICATE KEY UPDATE
Mcu_ProjectCorporateName = VALUES(Mcu_ProjectCorporateName), Mcu_ProjectCorporateName = VALUES(Mcu_ProjectCorporateName),