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

fixed issues after merging with rev.448 to operate with var_id and exclude_var_id instead of sample_var

added "$db->HasFailedTrans()" handler to function close_row_quota
This commit is contained in:
Alex
2015-07-08 14:37:54 +03:00
parent 7d15d24457
commit 8a700c8ecc

View File

@@ -1536,11 +1536,13 @@ function close_row_quota($questionnaire_sample_quota_row_id,$update = true)
$x++; $x++;
} }
$sql = "JOIN questionnaire_sample_quota_row as qs ON (qs.questionnaire_sample_quota_row_id = $questionnaire_sample_quota_row_id) $sql .= "JOIN questionnaire_sample_quota_row as qs ON (qs.questionnaire_sample_quota_row_id = $questionnaire_sample_quota_row_id)
WHERE s.import_id = qs.sample_import_id"; WHERE s.import_id = qs.sample_import_id";
$db->Execute($sql); $db->Execute($sql);
if ($db->HasFailedTrans()) die ($sql);
if ($update) if ($update)
{ {
if (!empty($rs)) if (!empty($rs))
@@ -1921,7 +1923,7 @@ function update_quota_priorities($questionnaire_id)
$sql = "INSERT INTO questionnaire_sample_exclude_priority (questionnaire_id,sample_id,exclude,priority) $sql = "INSERT INTO questionnaire_sample_exclude_priority (questionnaire_id,sample_id,exclude,priority)
SELECT '$questionnaire_id', s.sample_id, 0, 50 SELECT '$questionnaire_id', s.sample_id, 0, 50
FROM sample AS s, questionnaire_sample as qs FROM `sample` as s, questionnaire_sample as qs
WHERE qs.questionnaire_id = '$questionnaire_id' WHERE qs.questionnaire_id = '$questionnaire_id'
AND s.import_id = qs.sample_import_id AND s.import_id = qs.sample_import_id
ON DUPLICATE KEY UPDATE exclude = 0, priority = 50"; ON DUPLICATE KEY UPDATE exclude = 0, priority = 50";
@@ -1949,44 +1951,38 @@ function update_quota_priorities($questionnaire_id)
$qsqri = $r['questionnaire_sample_quota_row_id']; $qsqri = $r['questionnaire_sample_quota_row_id'];
$priority = $r['priority']; $priority = $r['priority'];
$sql2 = "SELECT exclude_val,exclude_var,exclude_var_id,comparison $sql2 = "SELECT exclude_val,exclude_var,exclude_var_id,comparison
FROM qsqr_sample FROM qsqr_sample
WHERE questionnaire_sample_quota_row_id = $qsqri"; WHERE questionnaire_sample_quota_row_id = $qsqri";
$rev = $db->GetAll($sql2); $rev = $db->GetAll($sql2);
//find all cases that match this quota, and update it to the new priority //find all cases that match this quota, and update it to the new priority
$sql = "UPDATE sample as s, questionnaire_sample_quota_row as qs, questionnaire_sample_exclude_priority as qsep "; $sql = "UPDATE sample as s, questionnaire_sample_quota_row as qs, questionnaire_sample_exclude_priority as qsep ";
//reduce sample by every item in the qsqr_sample table //reduce sample by every item in the qsqr_sample table
$x = 1; $x = 1;
foreach ($rev as $ev) foreach ($rev as $ev)
{ {
$sql .= ", sample_var as sv$x"; $sql .= ", sample_var as sv$x";
$x++; $x++;
} }
$sql .= " $sql .= " SET qsep.priority = '$priority'
SET qsep.priority = '$priority'
WHERE s.import_id = qs.sample_import_id WHERE s.import_id = qs.sample_import_id
AND qs.questionnaire_sample_quota_row_id = '$qsqri' AND qs.questionnaire_sample_quota_row_id = '$qsqri'
AND s.sample_id = sv$x.sample_id
AND sv$x.var_id = qs.exclude_var_id
AND qsep.questionnaire_id = qs.questionnaire_id AND qsep.questionnaire_id = qs.questionnaire_id
AND qsep.sample_id = s.sample_id "; AND qsep.sample_id = s.sample_id ";
$x = 1;
foreach ($rev as $ev)
{
$sql .= " AND sv$x.sample_id = s.sample_id AND sv$x.var_id = '{$ev['exclude_var_id']}' AND sv$x.val {$ev['comparison']} '{$ev['exclude_val']}' ";
$x++;
}
$x = 1;
foreach ($rev as $ev)
{
$sql .= " AND sv$x.sample_id = s.sample_id AND sv$x.var_id = '{$ev['exclude_var_id']}' AND sv$x.val {$ev['comparison']} '{$ev['exclude_val']}' ";
$x++;
}
$db->Execute($sql); $db->Execute($sql);
if ($db->HasFailedTrans()) die ($sql); if ($db->HasFailedTrans()) die ($sql);
} }