diff --git a/admin/assignsample.php b/admin/assignsample.php index a4ce3bda..cc0268f0 100644 --- a/admin/assignsample.php +++ b/admin/assignsample.php @@ -137,11 +137,44 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET[' foreach($rs as $r) { - set_time_limit(30); + $count++; + set_time_limit(30); + //only if a valid email if (validate_email($r['email'])) { - if (add_case($r['sample_id'],$questionnaire_id,"NULL",$testing,41, $addsample) === false) { - $error = "Could not add case - please ensure there enough additional attributes available in your Limesurvey participant table"; - break; + $case_id = add_case($r['sample_id'],$questionnaire_id,"NULL",$testing,41, $addsample); + if ($case_id === false) { + $error .= "Could not add case - please ensure there enough additional attributes available in your Limesurvey participant table"; + $error .= "
Failed to add case for record #$count"; + } else { + //add call and call attempt records + $resp_id = 0; + + $sql = "SELECT respondent_id + FROM respondent + WHERE case_id = $case_id"; + $rsp = $db->GetOne($sql); + + if (!empty($rsp)) { + $resp_id = $rsp; + } + + $sql = "INSERT INTO call_attempt (case_id,operator_id,respondent_id,start,end) + VALUES ($case_id, 1, $resp_id, NOW(), NOW())"; + $db->Execute($sql); + + $call_attempt_id = $db->Insert_ID(); + + $sql = "INSERT INTO `call` (operator_id,respondent_id,case_id,contact_phone_id,call_attempt_id,start,end,outcome_id,state) + VALUES (1,$resp_id,$case_id,0,$call_attempt_id,NOW(),NOW(),41,5)"; + $db->Execute($sql); + + $call_id = $db->Insert_ID(); + + $sql = "UPDATE `case` + SET last_call_id = $call_id + WHERE case_id = $case_id"; + + $db->Execute($sql); } } } diff --git a/admin/samplesearch.php b/admin/samplesearch.php index c8a87431..017d6d29 100644 --- a/admin/samplesearch.php +++ b/admin/samplesearch.php @@ -138,6 +138,24 @@ if (isset($_GET['sample_id'])) print ""; } +if (isset($_POST['questionnaire'])) { + //assign cases + // + $cases = 0; + include_once("../functions/functions.operator.php"); + $questionnaire_id = bigintval($_POST['questionnaire']); + foreach($_POST as $key => $val) { + if (substr($key,0,10) == "assigncase") { + $val = bigintval($val); + if (add_case($val,$questionnaire_id) !== false) { + $cases++; + } + } + } + + print ""; +} + print "
"; if ($sample_import_id != false) @@ -145,7 +163,11 @@ if ($sample_import_id != false) $sql = "SELECT sv.sample_id, CASE WHEN c.case_id IS NULL THEN CONCAT('  ') ELSE CONCAT('', c.case_id ,'') - END as link + END as link, + CASE WHEN c.case_id IS NULL THEN + CONCAT('') + ELSE '' + END as assigncase FROM sample_var AS sv JOIN (sample as s) ON (s.import_id = '$sample_import_id' and sv.sample_id = s.sample_id) LEFT JOIN (`case` AS c, questionnaire AS q) ON ( c.sample_id = sv.sample_id AND q.questionnaire_id = c.questionnaire_id ) @@ -160,6 +182,9 @@ if ($sample_import_id != false) $fnames[] = "link"; $fdesc[] = T_("Case ID"); + + $fnames[] = "assigncase"; + $fdesc[] = T_("Assign Case ID"); $sql = "SELECT var,var_id FROM sample_import_var_restrict @@ -183,9 +208,34 @@ if ($sample_import_id != false) } } - print "
"; - xhtml_table($r,$fnames,$fdesc,"tclass",false,false,"bs-table"); - print "
"; + print "
"; + xhtml_table($r,$fnames,$fdesc,"tclass",false,false,"bs-table"); + + $sql = "SELECT q.description, q.questionnaire_id + FROM questionnaire as q, questionnaire_sample as qs + WHERE qs.sample_import_id = $sample_import_id + AND q.questionnaire_id = qs.questionnaire_id"; + + $rs = $db->GetAll($sql); + + + if (!empty($rs)) { + ?> +
+ +
+
+
+ +
"; } else print ""; }