From 50f5c33a9f8392f13e35e5bbf5f784cbf6a8281e Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 2 Dec 2015 00:28:13 +0300 Subject: [PATCH] FIX duplicated rows appear in selctor/result list If more than 1 quota set per questionnaire/ sample --- admin/casestatus.php | 3 +-- admin/displayappointments.php | 8 +++----- admin/supervisor.php | 3 +-- functions/functions.display.php | 3 +-- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/admin/casestatus.php b/admin/casestatus.php index 72bbee47..9b5f5b3b 100644 --- a/admin/casestatus.php +++ b/admin/casestatus.php @@ -110,8 +110,7 @@ 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) 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) + 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) 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) diff --git a/admin/displayappointments.php b/admin/displayappointments.php index 04164974..857cd15f 100644 --- a/admin/displayappointments.php +++ b/admin/displayappointments.php @@ -301,9 +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) 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) + 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) + WHERE q.enabled=1 AND si.enabled=1 AND a.end >= CONVERT_TZ(NOW(),'System','UTC') AND ou.outcome_type 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) GROUP BY c.case_id ORDER BY a.start ASC"; @@ -324,8 +323,7 @@ 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) 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) + 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) 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 524e1388..c3d1107b 100644 --- a/admin/supervisor.php +++ b/admin/supervisor.php @@ -137,8 +137,7 @@ xhtml_head(T_("Assign outcomes to cases"),true,$css,$js_head);