From b93fe090ccc3e6890006189eb9c38cda9382bf3e Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 17 May 2015 16:52:28 +0300 Subject: [PATCH] operator panel querries adjusted for sample_import_var_restrict table --- contactdetails.php | 12 +++++------ email.php | 15 +++++++------- referral.php | 51 ++++++++++++++++++++++++++++++---------------- respondent.php | 13 ++++++------ 4 files changed, 54 insertions(+), 37 deletions(-) diff --git a/contactdetails.php b/contactdetails.php index 186af2ce..5d5f5d02 100644 --- a/contactdetails.php +++ b/contactdetails.php @@ -148,12 +148,12 @@ else //display sample details // use sample_import_var_restrict to limit - $sql = "SELECT s.var,s.val - FROM sample_var as s - JOIN `case` as c on (c.case_id = '$case_id' and c.sample_id = s.sample_id) - JOIN `sample` as sa ON (sa.sample_id = c.sample_id) - LEFT JOIN sample_import_var_restrict as sv ON (sv.var LIKE s.var AND sa.import_id = sv.sample_import_id) - WHERE (sv.restrict IS NULL OR sv.restrict = 0)"; + $sql = "SELECT sivr.var,sv.val + FROM `sample_var` as sv, `sample_import_var_restrict` as sivr, `case` as c + WHERE c.case_id = '$case_id' + AND sv.sample_id = c.sample_id + AND sivr.var_id = sv.var_id + AND (sivr.restrict IS NULL OR sivr.restrict = 0)"; $rs = $db->GetAll($sql); diff --git a/email.php b/email.php index 3c5076ab..a5e9f823 100644 --- a/email.php +++ b/email.php @@ -97,10 +97,11 @@ if (isset($_POST['firstname'])) $fieldsarray["{SID}"]=$fieldsarray["{SURVEYID}"]=$lime_sid; //$fieldsarray["{SURVEYNAME}"]=$thissurvey["surveyls_title"]; - $sql = "SELECT s.var,s.val - FROM `sample_var` as s, `case` as c + $sql = "SELECT sivr.var,sv.val + FROM `sample_var` as sv, `sample_import_var_restrict` as sivr, `case` as c WHERE c.case_id = $case_id - AND s.sample_id = c.sample_id"; + AND sv.sample_id = c.sample_id + AND sivr.var_id = sv.var_id"; $attributes = $db->GetAssoc($sql); @@ -317,11 +318,11 @@ $sc = $db->GetOne($sql); if ($sc == 1) { - $sql = "SELECT sv1.val as firstname, sv2.val as lastname, sv3.val as email + $sql = "SELECT +(SELECT sv.val from sample_var as sv, `sample_import_var_restrict` as sivr WHERE sivr.var_id = sv.var_id AND sv.sample_id = c.sample_id AND sivr.type =6) as firstname, +(SELECT sv.val from sample_var as sv, `sample_import_var_restrict` as sivr WHERE sivr.var_id = sv.var_id AND sv.sample_id = c.sample_id AND sivr.type =7) as lastname, +(SELECT sv.val from sample_var as sv, `sample_import_var_restrict` as sivr WHERE sivr.var_id = sv.var_id AND sv.sample_id = c.sample_id AND sivr.type =8) as email FROM `case` as c - LEFT JOIN sample_var as sv1 on (sv1.sample_id = c.sample_id AND sv1.type = 6) - LEFT JOIN sample_var as sv2 on (sv2.sample_id = c.sample_id AND sv2.type = 7) - LEFT JOIN sample_var as sv3 on (sv3.sample_id = c.sample_id AND sv3.type = 8) WHERE c.case_id = $case_id"; $rs = $db->GetRow($sql); diff --git a/referral.php b/referral.php index 7f08adfe..97964d6b 100644 --- a/referral.php +++ b/referral.php @@ -69,11 +69,12 @@ if (isset($_POST['submit'])) { $case_id = get_case_id($operator_id); - $sql = "SELECT s.var - FROM sample_var as s, `case` as c - WHERE c.case_id = '$case_id' - AND s.sample_id = c.sample_id - AND s.type = 3"; + $sql = "SELECT sivr.var + FROM `sample_import_var_restrict` as sivr, `sample_var` as s, `case` as c + WHERE c.case_id = '$case_id' + AND s.var_id = sivr.var_id + AND s.sample_id = c.sample_id + AND sivr.type = 3"; $pphone = $db->GetOne($sql); @@ -94,10 +95,11 @@ if (isset($_POST['submit'])) $import_id = $db->GetOne($sql); //get all sample records - $sql = "SELECT s.var,s.val, s.type - FROM sample_var as s, `case` as c + $sql = "SELECT sivr.var,s.val, sivr.type + FROM `sample_import_var_restrict` as sivr, `sample_var` as s, `case` as c WHERE c.case_id = '$case_id' - AND s.sample_id = c.sample_id"; + AND s.sample_id = c.sample_id + AND s.var_id = sivr.var_id"; $rs = $db->GetAll($sql); @@ -124,14 +126,28 @@ if (isset($_POST['submit'])) //insert sample var records foreach($rs as $r) { - $sql = "INSERT INTO `sample_var` (`sample_id`,`var`,`val`,`type`) - VALUES ('$sample_id','{$r['var']}'," . $db->qstr($_POST['v_' . $r['var']]) . ",'{$r['type']}')"; + + $sql = "INSERT INTO `sample_import_var_restrict` (`var`,`type`) + VALUES ('{$r['var']}','{$r['type']}')"; $db->Execute($sql); + + $varid = $db->Insert_ID(); + + $sql = "INSERT INTO `sample_var` (`sample_id`,`var_id`,`val`) + VALUES ('$sample_id','$varid'," . $db->qstr($_POST['v_' . $r['var']]) . ")"; + $db->Execute($sql); + } //Add CASEREFERREDFROM record - $sql = "INSERT INTO `sample_var` (`sample_id`,`var`,`val`,`type`) - VALUES ('$sample_id','CASEREFERREDFROM','$case_id','1')"; + $sql = "INSERT INTO `sample_import_var_restrict` (`var`,`type`) + VALUES ('CASEREFERREDFROM','1')"; + $db->Execute($sql); + + $varid = $db->Insert_ID(); + + $sql = "INSERT INTO `sample_var` (`sample_id`,`var_id`,`val`) + VALUES ('$sample_id','$varid','$case_id')"; $db->Execute($sql); @@ -212,11 +228,12 @@ if ($sc == 1) //Create a list of sample records matching this current case - $sql = "SELECT sv.var,t.description,sv.type - FROM sample_var as sv, `case` as c, sample_var_type as t - WHERE sv.sample_id = c.sample_id - AND c.case_id = '$case_id' - AND sv.type = t.type"; + $sql = "SELECT sivr.var,t.description,sivr.type + FROM `sample_import_var_restrict` as sivr,`sample_var` as sv, `case` as c, `sample_var_type` as t + WHERE c.case_id = '$case_id' + AND sv.sample_id = c.sample_id + AND sv.var_id = sivr.var_id + AND sivr.type = t.type"; $rs = $db->GetAll($sql); diff --git a/respondent.php b/respondent.php index 70287003..35fadc5b 100644 --- a/respondent.php +++ b/respondent.php @@ -154,13 +154,12 @@ else //display sample details //limit to those allowed by admin - $sql = "SELECT s.var,s.val - FROM sample_var as s - JOIN `case` as c on (c.case_id = '$case_id' and c.sample_id = s.sample_id) - JOIN `sample` as sa ON (sa.sample_id = c.sample_id) - LEFT JOIN sample_import_var_restrict as sv ON (sv.var LIKE s.var AND sa.import_id = sv.sample_import_id) - WHERE (sv.restrict IS NULL OR sv.restrict = 0)"; - + $sql = "SELECT sivr.var,sv.val + FROM `sample_var` as sv, `sample_import_var_restrict` as sivr, `case` as c + WHERE c.case_id = '$case_id' + AND sv.sample_id = c.sample_id + AND sivr.var_id = sv.var_id + AND (sivr.restrict IS NULL OR sivr.restrict = 0)"; $rs = $db->GetAll($sql);