mirror of
https://github.com/ACSPRI/queXS
synced 2024-04-02 12:12:16 +00:00
functions querries adjusted for sample_import_var_restrict table and exclude_var_id in row quotas instead of exclude_var
This commit is contained in:
@@ -130,7 +130,7 @@ function display_table($data)
|
||||
global $db;
|
||||
|
||||
$sql = "SELECT description,type
|
||||
FROM sample_var_type";
|
||||
FROM sample_var_type ORDER BY type ASC";
|
||||
|
||||
$rs = $db->GetAll($sql);
|
||||
|
||||
@@ -145,11 +145,11 @@ function display_table($data)
|
||||
<td><input type=\"text\" value=\"$val\" name=\"n_$row\" class=\"form-control\" /></td>
|
||||
<td>";
|
||||
print "<select name=\"t_$row\" class=\"form-control\">";
|
||||
print "<option value=\"\" $selected></option>";
|
||||
//print "<option value=\"\" $selected></option>";
|
||||
$selected = "selected=\"selected\"";
|
||||
foreach($rs as $r)
|
||||
{
|
||||
print "<option value=\"{$r['type']}\" >" . T_($r['description']) . "</option>";
|
||||
print "<option value=\"{$r['type']}\" $selected>" . T_($r['description']) . "</option>";
|
||||
$selected = "";
|
||||
}
|
||||
print "</select></td>";
|
||||
@@ -212,6 +212,7 @@ function import_file($file, $description, $fields, $firstrow = 2)
|
||||
|
||||
$selected_type = array();
|
||||
$selected_name = array();
|
||||
$sirv_id = array();
|
||||
|
||||
foreach($fields as $key => $val)
|
||||
{
|
||||
@@ -229,10 +230,12 @@ function import_file($file, $description, $fields, $firstrow = 2)
|
||||
}
|
||||
|
||||
$sql = "INSERT INTO sample_import_var_restrict
|
||||
(`sample_import_id`,`var`,`restrict`)
|
||||
VALUES ($id,'" . $fields["n_" . substr($key,2)] . "',$restrict)";
|
||||
(`sample_import_id`,`var`,`type`,`restrict`)
|
||||
VALUES ($id,'" . $fields["n_" . substr($key,2)] . "','" . $fields["t_" . substr($key,2)] . "',$restrict)";
|
||||
|
||||
$db->Execute($sql);
|
||||
$db->Execute($sql);
|
||||
|
||||
$sirv_id[substr($key,2)] = $db->Insert_ID(); //
|
||||
}
|
||||
}
|
||||
|
||||
@@ -312,8 +315,8 @@ function import_file($file, $description, $fields, $firstrow = 2)
|
||||
{
|
||||
$dkey = $db->Quote($data[$key - 1]);
|
||||
|
||||
$sql = "INSERT INTO sample_var (sample_id,var,val,type)
|
||||
VALUES ('$sid','$val',{$dkey},'{$selected_type[$key]}')";
|
||||
$sql = "INSERT INTO sample_var (sample_id,var_id,var,val,type)
|
||||
VALUES ('$sid','{$sirv_id[$key]}','$val',{$dkey},'{$selected_type[$key]}')";
|
||||
|
||||
$db->Execute($sql);
|
||||
|
||||
|
||||
@@ -184,8 +184,9 @@ function get_sample_variable($variable,$case_id)
|
||||
|
||||
$sql = "SELECT s.val as r
|
||||
FROM sample_var as s
|
||||
JOIN `case` as c on (c.case_id = '$case_id' and s.sample_id = c.sample_id)
|
||||
WHERE s.var = '$variable'";
|
||||
JOIN `case` as c on (c.case_id = '$case_id' and s.sample_id = c.sample_id), `sample_import_var_restrict` as sivr
|
||||
WHERE sivr.var = '$variable'
|
||||
AND s.var_id = sivr.var_id";
|
||||
|
||||
$rs = $db->GetRow($sql);
|
||||
|
||||
@@ -238,7 +239,6 @@ function get_respondent_variable($variable,$respondent_id)
|
||||
|
||||
$rs = $db->GetRow($sql);
|
||||
|
||||
|
||||
if (empty($rs)) return "";
|
||||
|
||||
return $rs['r'];
|
||||
@@ -380,14 +380,15 @@ function add_case($sample_id,$questionnaire_id,$operator_id = "NULL",$testing =
|
||||
|
||||
//$db->Execute("SET @row := 0");
|
||||
|
||||
$sql = "SELECT val as phone
|
||||
FROM sample_var
|
||||
WHERE sample_id = '$sample_id'
|
||||
AND val > 0
|
||||
AND val is NOT NULL
|
||||
AND val != \"\"
|
||||
AND (`type` = 2 or `type` = 3)
|
||||
ORDER BY `type` DESC";
|
||||
$sql = "SELECT sv.val as phone
|
||||
FROM sample_var as sv, sample_import_var_restrict as sivr
|
||||
WHERE sv.sample_id = '$sample_id'
|
||||
AND sv.var_id = sivr.var_id
|
||||
AND sv.val > 0
|
||||
AND sv.val is NOT NULL
|
||||
AND sv.val != \"\"
|
||||
AND sivr.`type` IN (2,3)
|
||||
ORDER BY sivr.`type` DESC";
|
||||
|
||||
$r5 = $db->GetAll($sql);
|
||||
|
||||
@@ -418,8 +419,8 @@ function add_case($sample_id,$questionnaire_id,$operator_id = "NULL",$testing =
|
||||
$sql = "INSERT INTO respondent (case_id,firstName,lastName,Time_zone_name)
|
||||
SELECT $case_id as case_id, IFNULL(s1.val,'') as firstName, IFNULL(s2.val,'') as lastName, s3.Time_zone_name as Time_zone_name
|
||||
FROM sample as s3
|
||||
LEFT JOIN sample_var as s2 on (s2.sample_id = '$sample_id' and s2.type = 7)
|
||||
LEFT JOIN sample_var as s1 on (s1.sample_id = '$sample_id' and s1.type = 6)
|
||||
LEFT JOIN (sample_var as s2 , sample_import_var_restrict as sivr2) on (s2.sample_id = '$sample_id' and s2.var_id = sivr2.var_id and sivr2.type = 7)
|
||||
LEFT JOIN (sample_var as s1 , sample_import_var_restrict as sivr1) on (s1.sample_id = '$sample_id' and s1.var_id = sivr1.var_id and sivr1.type = 6)
|
||||
WHERE s3.sample_id = '$sample_id'";
|
||||
|
||||
$db->Execute($sql);
|
||||
@@ -637,8 +638,8 @@ function get_case_id($operator_id, $create = false)
|
||||
AND ((qsep.questionnaire_id is NULL) or qsep.exclude = 0)
|
||||
AND !(q.restrict_work_shifts = 1 AND sh.shift_id IS NULL AND os.outcome_type_id != 2)
|
||||
AND !(si.call_restrict = 1 AND cr.day_of_week IS NULL AND os.outcome_type_id != 2)
|
||||
AND ((apn.appointment_id IS NOT NULL) or qs.call_attempt_max = 0 or ((SELECT count(*) FROM call_attempt WHERE case_id = c.case_id) < qs.call_attempt_max))
|
||||
AND ((apn.appointment_id IS NOT NULL) or qs.call_max = 0 or ((SELECT count(*) FROM `call` WHERE case_id = c.case_id) < qs.call_max))
|
||||
AND ((apn.appointment_id IS NOT NULL) or qs.call_attempt_max = 0 or ((SELECT count(*) FROM call_attempt WHERE call_attempt.case_id = c.case_id) < qs.call_attempt_max))
|
||||
AND ((apn.appointment_id IS NOT NULL) or qs.call_max = 0 or ((SELECT count(*) FROM `call` WHERE `call`.case_id = c.case_id) < qs.call_max))
|
||||
AND (apn.require_operator_id IS NULL OR apn.require_operator_id = '$operator_id')
|
||||
AND (SELECT count(*) FROM `questionnaire_sample_quota` WHERE questionnaire_id = c.questionnaire_id AND sample_import_id = s.import_id AND quota_reached = 1) = 0
|
||||
ORDER BY IF(ISNULL(apn.end),1,0),apn.end ASC, qsep.priority DESC, a.start ASC
|
||||
@@ -1515,7 +1516,7 @@ function close_row_quota($questionnaire_sample_quota_row_id,$update = true)
|
||||
WHERE s.import_id = qs.sample_import_id
|
||||
AND qs.questionnaire_sample_quota_row_id = $questionnaire_sample_quota_row_id
|
||||
AND s.sample_id = sv.sample_id
|
||||
AND sv.var = qs.exclude_var
|
||||
AND sv.var_id = qs.exclude_var_id
|
||||
AND qs.exclude_val LIKE sv.val";
|
||||
|
||||
$db->Execute($sql);
|
||||
@@ -1549,8 +1550,8 @@ function copy_row_quota($questionnaire_id,$sample_import_id,$copy_sample_import_
|
||||
|
||||
//Set quota_reached to 0 always
|
||||
|
||||
$sql = "INSERT INTO questionnaire_sample_quota_row (questionnaire_id,sample_import_id,lime_sgqa,value,comparison,completions,exclude_var,exclude_val,quota_reached,description)
|
||||
SELECT questionnaire_id, $copy_sample_import_id, lime_sgqa,value,comparison,completions,exclude_var,exclude_val,0,description
|
||||
$sql = "INSERT INTO questionnaire_sample_quota_row (questionnaire_id,sample_import_id,lime_sgqa,value,comparison,completions,exclude_var_id,exclude_var,exclude_val,quota_reached,description)
|
||||
SELECT questionnaire_id, $copy_sample_import_id, lime_sgqa,value,comparison,completions,exclude_var_id,exclude_var,exclude_val,0,description
|
||||
FROM questionnaire_sample_quota_row
|
||||
WHERE questionnaire_id = '$questionnaire_id'
|
||||
AND sample_import_id = '$sample_import_id'";
|
||||
@@ -1578,8 +1579,8 @@ function copy_row_quota_with_blocking($questionnaire_id,$sample_import_id,$copy_
|
||||
|
||||
//Set quota_reached to 0 always
|
||||
|
||||
$sql = "INSERT INTO questionnaire_sample_quota_row (questionnaire_id,sample_import_id,lime_sgqa,value,comparison,completions,exclude_var,exclude_val,quota_reached,description)
|
||||
SELECT questionnaire_id, $copy_sample_import_id, lime_sgqa,value,comparison,completions,exclude_var,exclude_val,quota_reached,description
|
||||
$sql = "INSERT INTO questionnaire_sample_quota_row (questionnaire_id,sample_import_id,lime_sgqa,value,comparison,completions,exclude_var_id,exclude_var,exclude_val,quota_reached,description)
|
||||
SELECT questionnaire_id, $copy_sample_import_id, lime_sgqa,value,comparison,completions, exclude_var_id,exclude_var,exclude_val, quota_reached,description
|
||||
FROM questionnaire_sample_quota_row
|
||||
WHERE questionnaire_id = '$questionnaire_id'
|
||||
AND sample_import_id = '$sample_import_id'";
|
||||
@@ -1609,7 +1610,7 @@ function copy_row_quota_with_adjusting($questionnaire_id,$sample_import_id,$copy
|
||||
$db->StartTrans();
|
||||
|
||||
// Select quotas from the old sample rows and calculate
|
||||
$sql = "SELECT questionnaire_sample_quota_row_id,q.questionnaire_id,sample_import_id,lime_sgqa,value,comparison,completions,quota_reached,q.lime_sid,qsq.exclude_var,qsq.exclude_val
|
||||
$sql = "SELECT questionnaire_sample_quota_row_id,q.questionnaire_id,sample_import_id,lime_sgqa,value,comparison,completions,quota_reached,q.lime_sid,qsq.exclude_var_id,qsq.exclude_var,qsq.exclude_val
|
||||
FROM questionnaire_sample_quota_row as qsq, questionnaire as q
|
||||
WHERE qsq.questionnaire_id = '$questionnaire_id'
|
||||
AND q.questionnaire_id = '$questionnaire_id'
|
||||
@@ -1664,7 +1665,7 @@ function update_row_quota($questionnaire_id,$case_id = false)
|
||||
|
||||
$db->StartTrans();
|
||||
|
||||
$sql = "SELECT questionnaire_sample_quota_row_id,q.questionnaire_id,sample_import_id,lime_sgqa,value,comparison,completions,quota_reached,q.lime_sid,qsq.exclude_var,qsq.exclude_val,qsq.current_completions,qsq.priority,qsq.autoprioritise
|
||||
$sql = "SELECT questionnaire_sample_quota_row_id,q.questionnaire_id,sample_import_id,lime_sgqa,value,comparison,completions,quota_reached,q.lime_sid, qsq.exclude_var_id,qsq.exclude_var,qsq.exclude_val,qsq.current_completions,qsq.priority,qsq.autoprioritise
|
||||
FROM questionnaire_sample_quota_row as qsq, questionnaire as q
|
||||
WHERE qsq.questionnaire_id = '$questionnaire_id'
|
||||
AND q.questionnaire_id = '$questionnaire_id'
|
||||
@@ -1688,7 +1689,7 @@ function update_row_quota($questionnaire_id,$case_id = false)
|
||||
if ($case_id != false)
|
||||
{
|
||||
if ($r['lime_sgqa'] == -2)
|
||||
$match = limesurvey_quota_replicate_match($r['lime_sid'],$case_id,$r['exclude_val'],$r['exclude_var'],$r['sample_import_id']);
|
||||
$match = limesurvey_quota_replicate_match($r['lime_sid'],$case_id,$r['exclude_val'],$r['exclude_var_id'],$r['sample_import_id']);
|
||||
else
|
||||
$match = limesurvey_quota_match($r['lime_sgqa'],$r['lime_sid'],$case_id,$r['value'],$r['comparison'],$r['sample_import_id']);
|
||||
|
||||
@@ -1709,7 +1710,7 @@ function update_row_quota($questionnaire_id,$case_id = false)
|
||||
else
|
||||
{
|
||||
if ($r['lime_sgqa'] == -2)
|
||||
$completions = limesurvey_quota_replicate_completions($r['lime_sid'],$r['questionnaire_id'],$r['sample_import_id'],$r['exclude_val'],$r['exclude_var']);
|
||||
$completions = limesurvey_quota_replicate_completions($r['lime_sid'],$r['questionnaire_id'],$r['sample_import_id'],$r['exclude_val'],$r['exclude_var_id']);
|
||||
else
|
||||
$completions = limesurvey_quota_completions($r['lime_sgqa'],$r['lime_sid'],$r['questionnaire_id'],$r['sample_import_id'],$r['value'],$r['comparison']);
|
||||
$updatequota = true;
|
||||
@@ -1832,7 +1833,7 @@ function update_quota_priorities($questionnaire_id)
|
||||
WHERE s.import_id = qs.sample_import_id
|
||||
AND qs.questionnaire_sample_quota_row_id = '$qsqri'
|
||||
AND s.sample_id = sv.sample_id
|
||||
AND sv.var = qs.exclude_var
|
||||
AND sv.var_id = qs.exclude_var_id
|
||||
AND qs.exclude_val LIKE sv.val
|
||||
AND qsep.questionnaire_id = qs.questionnaire_id
|
||||
AND qsep.sample_id = s.sample_id";
|
||||
|
||||
Reference in New Issue
Block a user