diff --git a/admin/assignsample.php b/admin/assignsample.php index fc3798fe..61c563a0 100644 --- a/admin/assignsample.php +++ b/admin/assignsample.php @@ -92,6 +92,57 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET[' VALUES('$questionnaire_id','$sid','$cm','$cam','$selecttype','$am', '$an')"; $db->Execute($sql); + + if (isset($_GET['generatecases'])) + { + include_once("../functions/functions.operator.php"); + + $db->StartTrans(); + + $lime_sid = $db->GetOne("SELECT lime_sid FROM questionnaire WHERE questionnaire_id = '$questionnaire_id'"); + $testing = $db->GetOne("SELECT testing FROM questionnaire WHERE questionnaire_id = '$questionnaire_id'"); + + //add limesurvey attribute for each sample var record + $sql = "SELECT var,type + FROM sample_import_var_restrict + WHERE sample_import_id = '$sid'"; + + $rs = $db->GetAll($sql); + + $i = 1; + + $fields = array(); + $fieldcontents=''; + foreach($rs as $r) + { + $fields[]=array('attribute_'.$i,'C','255'); + $fieldcontents.='attribute_'.$i.'='.$r['var']."\n"; + $i++; + } + $dict = NewDataDictionary($db); + $sqlarray = $dict->ChangeTableSQL(LIME_PREFIX ."tokens_$lime_sid", $fields); + $execresult=$dict->ExecuteSQLArray($sqlarray, false); + + $sql = "UPDATE " . LIME_PREFIX . "surveys + SET attributedescriptions = " . $db->qstr($fieldcontents) . " + WHERE sid='$lime_sid'"; + + $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'"; + + $rs = $db->GetAll($sql); + + foreach($rs as $r) + { + add_case($r['sample_id'],$questionnaire_id,"NULL",$testing,41, true); + } + + $db->CompleteTrans(); + } } if (isset($_POST['edit'])) @@ -266,7 +317,14 @@ if ($questionnaire_id != false)
" data-off="" data-width="85"/>



+ + GetOne("SELECT self_complete FROM questionnaire WHERE questionnaire_id = '$questionnaire_id'"); + if ($self_complete) {?> + +
" data-off="" data-width="85"/>



+ +
diff --git a/functions/functions.operator.php b/functions/functions.operator.php index 50fbea9d..e8367ab6 100644 --- a/functions/functions.operator.php +++ b/functions/functions.operator.php @@ -345,17 +345,19 @@ function is_respondent_selection($operator_id) * @param int $questionnaire_id The questionnaire id * @param int $operator_id The operator id (Default NULL) * @param int $testing 0 if a live case otherwise 1 for a testing case + * @param int $current_outcome_id The current outcome id (defaults to 1 - not attempted) + * @param bool $addlimeattributes If true, add sample values as lime attributes * * @return int The case id */ -function add_case($sample_id,$questionnaire_id,$operator_id = "NULL",$testing = 0) +function add_case($sample_id,$questionnaire_id,$operator_id = "NULL",$testing = 0, $current_outcome_id = 1, $addlimeattributes = false) { global $db; $token = sRandomChars(); $sql = "INSERT INTO `case` (case_id, sample_id, questionnaire_id, last_call_id, current_operator_id, current_call_id, current_outcome_id,token) - VALUES (NULL, $sample_id, $questionnaire_id, NULL, $operator_id, NULL, 1, '$token')"; + VALUES (NULL, $sample_id, $questionnaire_id, NULL, $operator_id, NULL, '$current_outcome_id','$token')"; $db->Execute($sql); @@ -440,10 +442,75 @@ function add_case($sample_id,$questionnaire_id,$operator_id = "NULL",$testing = if ($lime_sid) { + $lfirstname = ''; + $llastname = ''; + $lemail = ''; + + if ($addlimeattributes) + { + $lfirstname = $db->GetOne("SELECT sv.val + FROM sample_var as sv, sample_import_var_restrict as s + WHERE sv.var_id = s.var_id + AND sv.sample_id = '$sample_id' + AND s.type = '6'"); + + $llastname = $db->GetOne("SELECT sv.val + FROM sample_var as sv, sample_import_var_restrict as s + WHERE sv.var_id = s.var_id + AND sv.sample_id = '$sample_id' + AND s.type = '7'"); + + $lemail = $db->GetOne("SELECT sv.val + FROM sample_var as sv, sample_import_var_restrict as s + WHERE sv.var_id = s.var_id + AND sv.sample_id = '$sample_id' + AND s.type = '8'"); + + } + $sql = "INSERT INTO ".LIME_PREFIX."tokens_$lime_sid (tid,firstname,lastname,email,token,language,sent,completed,mpid) - VALUES (NULL,'','','','$token','".DEFAULT_LOCALE."','N','N',NULL)"; + VALUES (NULL,'$lfirstname','$llastname','$lemail','$token','".DEFAULT_LOCALE."','N','N',NULL)"; $db->Execute($sql); + + $tid = $db->Insert_Id(); + + if ($addlimeattributes) + { + //also add sample values as attributes + //match by name + + $sql = "SELECT attributedescriptions + FROM " . LIME_PREFIX . "surveys + WHERE sid = '$lime_sid'"; + + $names = $db->GetOne($sql); + + $attdescriptiondata=explode("\n",$names); + $atts=array(); + + foreach ($attdescriptiondata as $attdescription) + { + if (!empty($attdescription)) + $atts['attribute_'.substr($attdescription,10,strpos($attdescription,'=')-10)] = substr($attdescription,strpos($attdescription,'=')+1); + } + + foreach($atts as $key => $val) + { + $lval = $db->GetOne("SELECT sv.val + FROM sample_var as sv, sample_import_var_restrict as s + WHERE sv.var_id = s.var_id + AND sv.sample_id = '$sample_id' + AND s.var LIKE '$val'"); + + $sql = "UPDATE " . LIME_PREFIX . "tokens_$lime_sid + SET $key = '$lval' + WHERE tid = '$tid'"; + + $db->Execute($sql); + } + + } } } diff --git a/locale/quexs.pot b/locale/quexs.pot index a9fd1cd0..a567574d 100644 --- a/locale/quexs.pot +++ b/locale/quexs.pot @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: queXS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-08-05 10:48+1000\n" +"POT-Creation-Date: 2015-08-07 15:48+1000\n" "PO-Revision-Date: \n" "Last-Translator: Adam Zammit \n" "Language-Team: \n" @@ -146,32 +146,6 @@ msgstr "" msgid "Show to operator?" msgstr "" -#: functions/functions.freepbx.php:138 -#, php-format -msgid "Reload failed because retrieve_conf encountered an error: %s" -msgstr "" - -#: functions/functions.freepbx.php:140 -msgid "retrieve_conf failed, config not applied" -msgstr "" - -#: functions/functions.freepbx.php:146 -msgid "" -"Reload failed because FreePBX could not connect to the asterisk manager " -"interface." -msgstr "" - -#: functions/functions.freepbx.php:165 -msgid "" -"Could not reload the FOP operator panel server using the bounce_op.sh " -"script. Configuration changes may not be reflected in the panel display." -msgstr "" - -#: functions/functions.freepbx.php:174 -#, php-format -msgid "Exit code was %s and output was: %s" -msgstr "" - #: functions/functions.operator.php:167 include/limesurvey/quexs.php:362 msgid "morning" msgstr "" @@ -184,7 +158,7 @@ msgstr "" msgid "evening" msgstr "" -#: functions/functions.operator.php:905 +#: functions/functions.operator.php:972 msgid "" "ERROR: You do not have server side authentication enabled therefore queXS " "cannot determine which user is accessing the system." @@ -506,7 +480,7 @@ msgstr "" #: admin/operatorlist.php:184 admin/operatorlist.php:372 #: admin/casesbyoutcome.php:88 admin/supervisor.php:372 #: admin/supervisor.php:399 admin/supervisor.php:416 -#: admin/operatorskill.php:244 admin/operatorperformance.php:81 +#: admin/operatorskill.php:246 admin/operatorperformance.php:81 #: admin/operatorperformance.php:104 admin/shiftreport.php:104 #: admin/extensionstatus.php:257 admin/operatorquestionnaire.php:242 msgid "Operator" @@ -540,7 +514,7 @@ msgstr "" #: admin/questionnairelist.php:538 admin/callhistory.php:137 #: admin/availability.php:121 admin/operatorlist.php:182 admin/import.php:43 #: admin/import.php:81 admin/import.php:112 admin/casesbyoutcome.php:54 -#: admin/assignsample.php:150 admin/assignsample.php:203 +#: admin/assignsample.php:201 admin/assignsample.php:254 #: admin/casestatus.php:205 admin/extensionstatus.php:185 respondent.php:95 #: contactdetails.php:92 msgid "Go back" @@ -598,11 +572,12 @@ msgstr "" #: admin/questionnairelist.php:388 admin/questionnairelist.php:392 #: admin/questionnairelist.php:396 admin/questionnairelist.php:400 #: admin/operatorlist.php:239 admin/operatorlist.php:251 -#: admin/operatorlist.php:255 admin/assignsample.php:173 -#: admin/assignsample.php:176 admin/assignsample.php:264 -#: admin/assignsample.php:268 admin/supervisor.php:185 admin/quotarow.php:392 -#: admin/quotarow.php:596 admin/new.php:199 admin/new.php:206 -#: admin/new.php:213 admin/new.php:220 admin/new.php:227 +#: admin/operatorlist.php:255 admin/assignsample.php:224 +#: admin/assignsample.php:227 admin/assignsample.php:315 +#: admin/assignsample.php:319 admin/assignsample.php:325 +#: admin/supervisor.php:185 admin/quotarow.php:392 admin/quotarow.php:596 +#: admin/new.php:199 admin/new.php:206 admin/new.php:213 admin/new.php:220 +#: admin/new.php:227 msgid "Yes" msgstr "" @@ -1078,14 +1053,14 @@ msgstr "" #: nocaseavailable.php:116 admin/samplelist.php:320 admin/quotareport.php:294 #: admin/assigntimeslots.php:260 admin/outcomes.php:122 admin/outcomes.php:178 #: admin/callhistory.php:124 admin/callhistory.php:149 -#: admin/callhistory.php:160 admin/quota.php:131 admin/assignsample.php:152 -#: admin/assignsample.php:228 admin/supervisor.php:298 admin/quotarow.php:306 +#: admin/callhistory.php:160 admin/quota.php:131 admin/assignsample.php:203 +#: admin/assignsample.php:279 admin/supervisor.php:298 admin/quotarow.php:306 #: admin/casestatus.php:116 admin/casestatus.php:234 msgid "Sample" msgstr "" #: nocaseavailable.php:141 admin/callhistory.php:124 admin/callhistory.php:149 -#: admin/callhistory.php:154 admin/quota.php:110 admin/assignsample.php:151 +#: admin/callhistory.php:154 admin/quota.php:110 admin/assignsample.php:202 #: admin/quotarow.php:288 admin/casestatus.php:231 #: admin/displayappointments.php:258 admin/displayappointments.php:277 #: admin/new.php:127 admin/new.php:135 shifts.php:103 @@ -1245,7 +1220,7 @@ msgstr "" msgid "Delete ?" msgstr "" -#: admin/samplelist.php:346 admin/addshift.php:263 admin/assignsample.php:179 +#: admin/samplelist.php:346 admin/addshift.php:263 admin/assignsample.php:230 #: admin/quotarow.php:394 admin/extensionstatus.php:202 #: admin/displayappointments.php:231 msgid "Save changes" @@ -1405,7 +1380,7 @@ msgid "Added operator :" msgstr "" #: admin/operators.php:150 -msgid "FreePBX has been reloaded for the new VoIP extension to take effect" +msgid "FreePBX needs to be reloaded for the new VoIP extension to take effect" msgstr "" #: admin/operators.php:172 @@ -1430,7 +1405,7 @@ msgstr "" #: admin/operators.php:242 admin/clientquestionnaire.php:238 #: admin/operatorlist.php:200 admin/operatorlist.php:372 -#: admin/operatorskill.php:244 admin/operatorquestionnaire.php:242 +#: admin/operatorskill.php:246 admin/operatorquestionnaire.php:242 msgid "Username" msgstr "" @@ -1453,7 +1428,7 @@ msgstr "" #: admin/operators.php:267 admin/operators.php:276 #: admin/questionnairelist.php:380 admin/operatorlist.php:225 -#: admin/operatorlist.php:233 admin/assignsample.php:228 +#: admin/operatorlist.php:233 admin/assignsample.php:279 #: admin/quotarow.php:582 admin/shiftreport.php:104 #: admin/displayappointments.php:258 admin/displayappointments.php:277 msgid "Edit" @@ -1478,11 +1453,12 @@ msgstr "" #: admin/questionnairelist.php:392 admin/questionnairelist.php:396 #: admin/questionnairelist.php:400 admin/operatorlist.php:239 #: admin/operatorlist.php:251 admin/operatorlist.php:255 -#: admin/assignsample.php:173 admin/assignsample.php:174 -#: admin/assignsample.php:176 admin/assignsample.php:264 -#: admin/assignsample.php:265 admin/assignsample.php:268 -#: admin/quotarow.php:392 admin/quotarow.php:596 admin/new.php:199 -#: admin/new.php:206 admin/new.php:213 admin/new.php:220 admin/new.php:227 +#: admin/assignsample.php:224 admin/assignsample.php:225 +#: admin/assignsample.php:227 admin/assignsample.php:315 +#: admin/assignsample.php:316 admin/assignsample.php:319 +#: admin/assignsample.php:325 admin/quotarow.php:392 admin/quotarow.php:596 +#: admin/new.php:199 admin/new.php:206 admin/new.php:213 admin/new.php:220 +#: admin/new.php:227 msgid "No" msgstr "" @@ -1516,7 +1492,7 @@ msgstr "" #: admin/quotareport.php:111 admin/assigntimeslots.php:156 #: admin/questionnaireprefill.php:100 admin/outcomes.php:68 -#: admin/addshift.php:168 admin/assignsample.php:204 +#: admin/addshift.php:168 admin/assignsample.php:255 msgid "Select a questionnaire" msgstr "" @@ -2349,7 +2325,7 @@ msgstr "" msgid "Select columns to import" msgstr "" -#: admin/import.php:97 admin/import.php:145 admin/assignsample.php:272 +#: admin/import.php:97 admin/import.php:145 admin/assignsample.php:330 msgid "Add sample" msgstr "" @@ -2458,7 +2434,7 @@ msgstr "" msgid "Assign operators to questionnaires" msgstr "" -#: admin/index.php:134 admin/operatorskill.php:268 +#: admin/index.php:134 admin/operatorskill.php:270 msgid "Modify operator skills" msgstr "" @@ -2679,82 +2655,89 @@ msgstr "" msgid "Code value" msgstr "" -#: admin/assignsample.php:131 +#: admin/assignsample.php:182 msgid "Edit assignment parameters" msgstr "" -#: admin/assignsample.php:132 admin/assignsample.php:201 +#: admin/assignsample.php:183 admin/assignsample.php:252 msgid "Assign samples to questionnaire: " msgstr "" -#: admin/assignsample.php:163 admin/assignsample.php:228 -#: admin/assignsample.php:251 +#: admin/assignsample.php:214 admin/assignsample.php:279 +#: admin/assignsample.php:302 msgid "Max calls" msgstr "" -#: admin/assignsample.php:165 admin/assignsample.php:168 -#: admin/assignsample.php:253 admin/assignsample.php:257 +#: admin/assignsample.php:216 admin/assignsample.php:219 +#: admin/assignsample.php:304 admin/assignsample.php:308 msgid "Unlimited" msgstr "" -#: admin/assignsample.php:166 admin/assignsample.php:228 -#: admin/assignsample.php:255 +#: admin/assignsample.php:217 admin/assignsample.php:279 +#: admin/assignsample.php:306 msgid "Max call attempts" msgstr "" -#: admin/assignsample.php:169 admin/assignsample.php:259 +#: admin/assignsample.php:220 admin/assignsample.php:310 msgid "Number of answering machine messages to leave per case" msgstr "" -#: admin/assignsample.php:171 admin/assignsample.php:261 +#: admin/assignsample.php:222 admin/assignsample.php:312 msgid "Never" msgstr "" -#: admin/assignsample.php:172 admin/assignsample.php:263 +#: admin/assignsample.php:223 admin/assignsample.php:314 msgid "Select from sample randomly?" msgstr "" -#: admin/assignsample.php:174 admin/assignsample.php:265 +#: admin/assignsample.php:225 admin/assignsample.php:316 msgid "Sequentially" msgstr "" -#: admin/assignsample.php:175 admin/assignsample.php:228 -#: admin/assignsample.php:267 +#: admin/assignsample.php:226 admin/assignsample.php:279 +#: admin/assignsample.php:318 msgid "Allow new numbers to be drawn?" msgstr "" -#: admin/assignsample.php:200 +#: admin/assignsample.php:251 msgid "List & Add Sample" msgstr "" -#: admin/assignsample.php:211 +#: admin/assignsample.php:262 msgid "Samples selected for this questionnaire" msgstr "" -#: admin/assignsample.php:228 +#: admin/assignsample.php:279 msgid "Answering machine messages" msgstr "" -#: admin/assignsample.php:228 +#: admin/assignsample.php:279 msgid "Selection type" msgstr "" -#: admin/assignsample.php:228 +#: admin/assignsample.php:279 msgid "Unassign sample" msgstr "" -#: admin/assignsample.php:230 +#: admin/assignsample.php:281 msgid "No samples selected for this questionnaire" msgstr "" -#: admin/assignsample.php:244 +#: admin/assignsample.php:295 msgid "Add a sample to this questionnaire:" msgstr "" -#: admin/assignsample.php:247 +#: admin/assignsample.php:298 msgid "Select sample:" msgstr "" +#: admin/assignsample.php:324 +msgid "" +"Generate cases for all sample records and set outcome to 'Self completion " +"email invitation sent'? (Ideal if you intend to send an email invitation to " +"sample members before attempting to call using queXS)" +msgstr "" + #: admin/supervisor.php:126 respondent.php:101 contactdetails.php:98 msgid "Case id:" msgstr ""