2
0
mirror of https://github.com/ACSPRI/queXS synced 2024-04-02 12:12:16 +00:00

limesurvey querries adjusted for sample_import_var_restrict table

This commit is contained in:
Alex
2015-05-17 17:14:53 +03:00
parent ee3eac2234
commit 790933c7bd
4 changed files with 43 additions and 41 deletions

View File

@@ -283,11 +283,11 @@ function validate_email($email){
* @param int $questionnaire_id The questionnaire ID * @param int $questionnaire_id The questionnaire ID
* @param int $sample_import_id The sample import ID * @param int $sample_import_id The sample import ID
* @param string $val The value to compare * @param string $val The value to compare
* @param string $var The variable to compare * --- changed @param string $var the variable to compare
* to @param string $var_id - ID for variable to compare
* @return bool|int False if failed, otherwise the number of completions * @return bool|int False if failed, otherwise the number of completions
*
*/ */
function limesurvey_quota_replicate_completions($lime_sid,$questionnaire_id,$sample_import_id,$val,$var) function limesurvey_quota_replicate_completions($lime_sid,$questionnaire_id,$sample_import_id,$val,$var_id)
{ {
global $db; global $db;
@@ -305,7 +305,7 @@ function limesurvey_quota_replicate_completions($lime_sid,$questionnaire_id,$sam
FROM " . LIME_PREFIX . "survey_$lime_sid as s FROM " . LIME_PREFIX . "survey_$lime_sid as s
JOIN `case` as c ON (c.questionnaire_id = '$questionnaire_id') JOIN `case` as c ON (c.questionnaire_id = '$questionnaire_id')
JOIN `sample` as sam ON (c.sample_id = sam.sample_id AND sam.import_id = '$sample_import_id') JOIN `sample` as sam ON (c.sample_id = sam.sample_id AND sam.import_id = '$sample_import_id')
JOIN `sample_var` as sv ON (sv.sample_id = sam.sample_id AND sv.var LIKE '$var' AND sv.val LIKE '$val') JOIN `sample_var` as sv ON (sv.sample_id = sam.sample_id AND sv.var_id = '$var_id' AND sv.val LIKE '$val')
WHERE s.submitdate IS NOT NULL WHERE s.submitdate IS NOT NULL
AND s.token = c.token"; AND s.token = c.token";
@@ -355,14 +355,15 @@ function limesurvey_quota_match($lime_sgqa,$lime_sid,$case_id,$value,$comparison
* @param int $lime_sid The Limesurvey survey id * @param int $lime_sid The Limesurvey survey id
* @param int $case_id The case id * @param int $case_id The case id
* @param string $val The sample value to compare * @param string $val The sample value to compare
* @param string $var The sample variable to compare * --- changed @param string $var the variable to compare
* to @param string $var_id - ID for variable to compare
* @param int $sample_import_id The sample import id we are looking at * @param int $sample_import_id The sample import id we are looking at
* *
* @return bool|int False if failed, otherwise 1 if matched, 0 if doesn't * @return bool|int False if failed, otherwise 1 if matched, 0 if doesn't
* @author Adam Zammit <adam.zammit@acspri.org.au> * @author Adam Zammit <adam.zammit@acspri.org.au>
* @since 2012-04-30 * @since 2012-04-30
*/ */
function limesurvey_quota_replicate_match($lime_sid,$case_id,$val,$var,$sample_import_id) function limesurvey_quota_replicate_match($lime_sid,$case_id,$val,$var_id,$sample_import_id)
{ {
global $db; global $db;
@@ -370,7 +371,7 @@ function limesurvey_quota_replicate_match($lime_sid,$case_id,$val,$var,$sample_i
FROM " . LIME_PREFIX . "survey_$lime_sid as s FROM " . LIME_PREFIX . "survey_$lime_sid as s
JOIN `case` as c ON (c.case_id = '$case_id') JOIN `case` as c ON (c.case_id = '$case_id')
JOIN `sample` as sam ON (c.sample_id = sam.sample_id and sam.import_id = $sample_import_id) JOIN `sample` as sam ON (c.sample_id = sam.sample_id and sam.import_id = $sample_import_id)
JOIN `sample_var` as sv ON (sv.sample_id = sam.sample_id AND sv.var LIKE '$var' AND sv.val LIKE '$val') JOIN `sample_var` as sv ON (sv.sample_id = sam.sample_id AND sv.var_id = '$var_id' AND sv.val LIKE '$val')
WHERE s.token = c.token"; WHERE s.token = c.token";
$rs = $db->GetRow($sql); $rs = $db->GetRow($sql);

View File

@@ -267,13 +267,13 @@ $quexsfilterstate = questionnaireSampleFilterstate();
."<option value='shiftr' id='shiftr' />".T_("Shift report")."</option>\n"; ."<option value='shiftr' id='shiftr' />".T_("Shift report")."</option>\n";
$sql = "SELECT sv.var,sv.val $sql = "SELECT sivr.var,sv.val
FROM `questionnaire` as q, questionnaire_sample as qs, sample as s, sample_var as sv FROM `questionnaire` as q, questionnaire_sample as qs, sample_var as sv, `sample_import_var_restrict` as sivr
WHERE q.lime_sid = $surveyid WHERE q.lime_sid = $surveyid
AND qs.questionnaire_id = q.questionnaire_id AND qs.questionnaire_id = q.questionnaire_id
AND s.import_id = qs.sample_import_id AND sivr.sample_import_id = qs.sample_import_id
AND sv.sample_id = s.sample_id AND sv.var_id = sivr.var_id
GROUP BY qs.sample_import_id,sv.var"; GROUP BY qs.sample_import_id,sivr.var";
$queXSrs = $connect->GetAssoc($sql); $queXSrs = $connect->GetAssoc($sql);
@@ -305,13 +305,13 @@ if ($tokenTableExists)
{ {
$aTokenFieldNames=GetTokenFieldsAndNames($surveyid,false,true); $aTokenFieldNames=GetTokenFieldsAndNames($surveyid,false,true);
$sql = "SELECT sv.var,sv.val $sql = "SELECT sivr.var,sv.val
FROM `questionnaire` as q, questionnaire_sample as qs, sample as s, sample_var as sv FROM `questionnaire` as q, questionnaire_sample as qs, sample_var as sv, `sample_import_var_restrict` as sivr
WHERE q.lime_sid = $surveyid WHERE q.lime_sid = $surveyid
AND qs.questionnaire_id = q.questionnaire_id AND qs.questionnaire_id = q.questionnaire_id
AND s.import_id = qs.sample_import_id AND sivr.sample_import_id = qs.sample_import_id
AND sv.sample_id = s.sample_id AND sv.var_id = sivr.var_id
GROUP BY qs.sample_import_id,sv.var"; GROUP BY qs.sample_import_id,sivr.var";
$attributeFields = $connect->GetAssoc($sql); $attributeFields = $connect->GetAssoc($sql);
@@ -554,10 +554,11 @@ if ($tokenTableExists && $thissurvey['anonymized']=='N' && isset($_POST['attribu
if (in_array("SAMPLE:$attr_name",$_POST['attribute_select'])) if (in_array("SAMPLE:$attr_name",$_POST['attribute_select']))
{ {
$dquery .= ", ( SELECT sv.val $dquery .= ", ( SELECT sv.val
FROM sample_var as sv, `case` as c3 FROM sample_var as sv, `case` as c3,`sample_import_var_restrict` as sivr
WHERE c3.token = {$dbprefix}survey_$surveyid.token WHERE c3.token = {$dbprefix}survey_$surveyid.token
AND c3.sample_id = sv.sample_id AND c3.sample_id = sv.sample_id
AND sv.var LIKE '$attr_name') as attribute_$i "; AND sivr.var_id = sv.var_id
AND sivr.var LIKE '$attr_name') as attribute_$i ";
$attributeFieldAndNames["attribute_$i"] = $attr_name; $attributeFieldAndNames["attribute_$i"] = $attr_name;
@@ -1362,4 +1363,4 @@ function strip_tags_full($string) {
$string=str_replace('-oth-','',$string); $string=str_replace('-oth-','',$string);
return FlattenText($string,true,'UTF-8',false); return FlattenText($string,true,'UTF-8',false);
} }
?> ?>

View File

@@ -3422,17 +3422,19 @@
if ($use_call) if ($use_call)
{ {
$sql = "SELECT sv.var,sv.val $sql = "SELECT sivr.var,sv.val
FROM sample_var as sv, `case` as c, `call` as cl FROM sample_var as sv, `case` as c, `call` as cl, `sample_import_var_restrict` as sivr
WHERE c.sample_id = sv.sample_id WHERE c.sample_id = sv.sample_id
AND c.case_id = cl.case_id AND c.case_id = cl.case_id
AND sv.var_id = sivr.var_id
AND cl.call_id = '{$_SESSION['token']}'"; AND cl.call_id = '{$_SESSION['token']}'";
} }
else else
{ {
$sql = "SELECT sv.var,sv.val $sql = "SELECT sivr.var,sv.val
FROM sample_var as sv, `case` as c FROM sample_var as sv, `case` as c, `sample_import_var_restrict` as sivr
WHERE c.sample_id = sv.sample_id WHERE c.sample_id = sv.sample_id
AND sv.var_id = sivr.var_id
AND c.token = '{$_SESSION['token']}'"; AND c.token = '{$_SESSION['token']}'";
} }
@@ -3504,10 +3506,6 @@
'jsName'=>'', 'jsName'=>'',
'readWrite'=>'N', 'readWrite'=>'N',
); );
} }
else else
@@ -3535,13 +3533,13 @@
//Add all sample variables for this questionnaire //Add all sample variables for this questionnaire
global $connect; global $connect;
$sql = "SELECT sv.var,sv.val $sql = "SELECT sivr.var,sv.val
FROM `questionnaire` as q, questionnaire_sample as qs, sample as s, sample_var as sv FROM `questionnaire` as q, questionnaire_sample as qs, sample_var as sv, `sample_import_var_restrict` as sivr
WHERE q.lime_sid = $surveyid WHERE q.lime_sid = $surveyid
AND qs.questionnaire_id = q.questionnaire_id AND qs.questionnaire_id = q.questionnaire_id
AND s.import_id = qs.sample_import_id AND sivr.sample_import_id = qs.sample_import_id
AND sv.sample_id = s.sample_id AND sv.var_id = sivr.var_id
GROUP BY qs.sample_import_id,sv.var"; GROUP BY qs.sample_import_id,sivr.var";
$queXSrs = $connect->GetAssoc($sql); $queXSrs = $connect->GetAssoc($sql);

View File

@@ -419,10 +419,11 @@ function quexs_update_sample($lime_sid,$id,$postedfieldnames)
$sgqa = $r['sid'] . 'X' . $r['gid'] . 'X' . $r['qid'] . $r['title']; $sgqa = $r['sid'] . 'X' . $r['gid'] . 'X' . $r['qid'] . $r['title'];
$var = $r['answer']; $var = $r['answer'];
$sql = "UPDATE sample_var as sv, ".LIME_PREFIX."survey_$lime_sid as ld $sql = "UPDATE sample_var as sv, ".LIME_PREFIX."survey_$lime_sid as ld, `sample_import_var_restrict` as sivr
SET sv.val = ld.$sgqa SET sv.val = ld.$sgqa
WHERE sv.var LIKE '$var' WHERE sivr.var LIKE '$var'
AND sv.sample_id = '$sample_id' AND sv.sample_id = '$sample_id'
AND sivr.var_id = sv.var_id
AND ld.id = '$id'"; AND ld.id = '$id'";
$db->Execute($sql); $db->Execute($sql);
@@ -477,8 +478,9 @@ function get_sample_variable($variable,$case_id)
$sql = "SELECT s.val as r $sql = "SELECT s.val as r
FROM sample_var as s FROM sample_var as s
JOIN `case` as c on (c.case_id = '$case_id' and s.sample_id = c.sample_id) JOIN `case` as c on (c.case_id = '$case_id' and s.sample_id = c.sample_id), `sample_import_var_restrict` as sivr
WHERE s.var = '$variable'"; WHERE sivr.var = '$variable'
AND s.var_id = sivr.var_id";
$rs = $db->GetRow($sql); $rs = $db->GetRow($sql);