From 3717615f74bd8125347a7671555bdd5c059fbd1d Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 4 Dec 2015 18:55:58 +0300 Subject: [PATCH] wrong fix -> revert changes from rev540 , added GROUP BY to avoid duplicated rows --- admin/casestatus.php | 5 +++-- admin/displayappointments.php | 6 ++++-- admin/supervisor.php | 5 +++-- functions/functions.display.php | 6 ++++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/admin/casestatus.php b/admin/casestatus.php index 9b5f5b3b..6ff38ae8 100644 --- a/admin/casestatus.php +++ b/admin/casestatus.php @@ -110,11 +110,12 @@ function case_status_report($questionnaire_id = false, $sample_id = false, $outc LEFT JOIN outcome as co ON (co.outcome_id = ca.outcome_id) LEFT JOIN case_queue as cq ON (cq.case_id = c.case_id) LEFT JOIN operator as oq ON (cq.operator_id = oq.operator_id) - LEFT JOIN (questionnaire_sample_quota as qsq, questionnaire_sample_quota_row as qsqr) on (s.import_id = qsq.sample_import_id and c.questionnaire_id = qsq.questionnaire_id and s.import_id = qsqr.sample_import_id and c.questionnaire_id = qsqr.questionnaire_id) + LEFT JOIN (questionnaire_sample_quota as qsq) on (s.import_id = qsq.sample_import_id and c.questionnaire_id = qsq.questionnaire_id) + LEFT JOIN (questionnaire_sample_quota_row as qsqr) on (s.import_id = qsqr.sample_import_id and c.questionnaire_id = qsqr.questionnaire_id) WHERE c.current_operator_id IS NULL $q $o AND (qsq.quota_reached IS NULL OR qsq.quota_reached != 1 ) AND (qsqr.quota_reached IS NULL OR qsqr.quota_reached != 1) - ORDER BY c.case_id ASC"; + GROUP BY c.case_id ORDER BY c.case_id ASC"; print ("
"); diff --git a/admin/displayappointments.php b/admin/displayappointments.php index 7c448717..04164974 100644 --- a/admin/displayappointments.php +++ b/admin/displayappointments.php @@ -301,7 +301,8 @@ else { JOIN (`case` as c, respondent as r, questionnaire as q, operator as oo, call_attempt as cc, `sample` as s, sample_import as si) on (c.sample_id = s.sample_id and a.case_id = c.case_id and a.respondent_id = r.respondent_id and q.questionnaire_id = c.questionnaire_id and a.call_attempt_id = cc.call_attempt_id and cc.operator_id = oo.operator_id and si.sample_import_id = s.import_id) LEFT JOIN (`call` as ca, outcome as ou, operator as ooo) ON (ca.call_id = a.completed_call_id and ou.outcome_id = ca.outcome_id and ca.operator_id = ooo.operator_id) LEFT JOIN operator AS ao ON ao.operator_id = a.require_operator_id - LEFT JOIN (questionnaire_sample_quota as qsq, questionnaire_sample_quota_row as qsqr) on (s.import_id = qsq.sample_import_id and c.questionnaire_id = qsq.questionnaire_id and s.import_id = qsqr.sample_import_id and c.questionnaire_id = qsqr.questionnaire_id) + LEFT JOIN (questionnaire_sample_quota as qsq) on (s.import_id = qsq.sample_import_id and c.questionnaire_id = qsq.questionnaire_id) + LEFT JOIN (questionnaire_sample_quota_row as qsqr) on (s.import_id = qsqr.sample_import_id and c.questionnaire_id = qsqr.questionnaire_id) WHERE q.enabled=1 AND si.enabled=1 AND a.end >= CONVERT_TZ(NOW(),'System','UTC') AND c.current_outcome_id IN (19,20,21,22) AND (qsq.quota_reached IS NULL OR qsq.quota_reached != 1) AND (qsqr.quota_reached IS NULL OR qsqr.quota_reached != 1) @@ -323,7 +324,8 @@ else { FROM appointment as a JOIN (`case` as c, respondent as r, questionnaire as q, `sample` as s, sample_import as si) on (a.case_id = c.case_id and a.respondent_id = r.respondent_id and q.questionnaire_id = c.questionnaire_id and s.sample_id = c.sample_id and s.import_id= si.sample_import_id) LEFT JOIN (`call` as ca) ON (ca.call_id = a.completed_call_id) - LEFT JOIN (questionnaire_sample_quota as qsq, questionnaire_sample_quota_row as qsqr) on (s.import_id = qsq.sample_import_id and c.questionnaire_id = qsq.questionnaire_id and s.import_id = qsqr.sample_import_id and c.questionnaire_id = qsqr.questionnaire_id) + LEFT JOIN (questionnaire_sample_quota as qsq) on (s.import_id = qsq.sample_import_id and c.questionnaire_id = qsq.questionnaire_id) + LEFT JOIN (questionnaire_sample_quota_row as qsqr) on (s.import_id = qsqr.sample_import_id and c.questionnaire_id = qsqr.questionnaire_id) WHERE q.enabled=1 AND si.enabled=1 AND a.end < CONVERT_TZ(NOW(),'System','UTC') AND a.completed_call_id IS NULL AND c.current_outcome_id IN (19,20,21,22) AND (qsq.quota_reached IS NULL OR qsq.quota_reached != 1 ) AND (qsqr.quota_reached IS NULL OR qsqr.quota_reached != 1) diff --git a/admin/supervisor.php b/admin/supervisor.php index c3d1107b..ab1905a7 100644 --- a/admin/supervisor.php +++ b/admin/supervisor.php @@ -137,7 +137,8 @@ xhtml_head(T_("Assign outcomes to cases"),true,$css,$js_head); GetAll($sql); diff --git a/functions/functions.display.php b/functions/functions.display.php index cb8a3301..19ff6476 100644 --- a/functions/functions.display.php +++ b/functions/functions.display.php @@ -118,7 +118,8 @@ function display_sample_chooser($questionnaire_id, $sample_import_id = false, $d if (!$disabled) $s = " AND si.enabled = 1 "; else $s = ""; if ($quota_reached){ - $qr = " LEFT JOIN (questionnaire_sample_quota as qsq, questionnaire_sample_quota_row as qsqr) on (si.sample_import_id = qsq.sample_import_id and si.sample_import_id = qsqr.sample_import_id)"; + $qr = " LEFT JOIN (questionnaire_sample_quota as qsq) on (si.sample_import_id = qsq.sample_import_id) + LEFT JOIN (questionnaire_sample_quota_row as qsqr) on (si.sample_import_id = qsqr.sample_import_id)"; $qrq = " AND (qsq.quota_reached IS NULL OR qsq.quota_reached != 1 ) AND (qsqr.quota_reached IS NULL OR qsqr.quota_reached != 1)"; } @@ -127,7 +128,8 @@ function display_sample_chooser($questionnaire_id, $sample_import_id = false, $d $sql = "SELECT s.sample_import_id,si.description,CASE WHEN s.sample_import_id = '$sample_import_id' THEN 'selected=\'selected\'' ELSE '' END AS selected FROM questionnaire_sample as s, sample_import as si $qr WHERE s.questionnaire_id = '$questionnaire_id' - AND s.sample_import_id = si.sample_import_id $s $qrq"; + AND s.sample_import_id = si.sample_import_id $s $qrq + GROUP BY s.sample_import_id"; $rs = $db->GetAll($sql);