diff --git a/admin/assignsample.php b/admin/assignsample.php
index 492ca220..3c1baf25 100644
--- a/admin/assignsample.php
+++ b/admin/assignsample.php
@@ -106,6 +106,7 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET['
if (isset($_GET['generatecases']))
{
include_once("../functions/functions.operator.php");
+ include_once("../functions/functions.limesurvey.php");
$db->StartTrans();
@@ -139,10 +140,11 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET['
$db->Execute($sql);
- //generate one case for each sample record and set outcome to 41
- $sql = "SELECT sample_id
- FROM sample
- WHERE import_id = '$sid'";
+ //generate one case for each sample record and set outcome to 41 (where an email address provided)
+ $sql = "SELECT s.sample_id, sv.val as email
+ FROM sample as s
+ LEFT JOIN (sample_var as sv, sample_import_var_restrict as sivr) ON (sv.sample_id = s.sample_id and sv.var_id = sivr.var_id and sivr.type = 8)
+ WHERE s.import_id = '$sid'";
$rs = $db->GetAll($sql);
@@ -151,9 +153,12 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET['
{
$count++;
set_time_limit(30);
- if (add_case($r['sample_id'],$questionnaire_id,"NULL",$testing,41, true) === false) {
- $error .= "
Failed to add case for record #$count";
- }
+ //only if a valid email
+ if (validate_email($r['email'])) {
+ if (add_case($r['sample_id'],$questionnaire_id,"NULL",$testing,41, true) === false) {
+ $error .= "
Failed to add case for record #$count";
+ }
+ }
}
$db->CompleteTrans();
@@ -415,7 +420,7 @@ if ($questionnaire_id != false)
GetOne("SELECT self_complete FROM questionnaire WHERE questionnaire_id = '$questionnaire_id'");
if ($self_complete) {?>
-
+