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) {?> - +
" data-off="" data-width="85"/>
*