/** * Update the quota table (sample wide) * * @param int $questionnaire_id The questionnaire ID to update */ function update_quota($questionnaire_id) { global $db; $sql = "SELECT questionnaire_sample_quota_id,q.questionnaire_id,sample_import_id,lime_sgqa,value,comparison,completions,quota_reached,q.lime_sid\r\n\t\tFROM questionnaire_sample_quota as qsq, questionnaire as q\r\n\t\tWHERE qsq.questionnaire_id = '{$questionnaire_id}'\r\n\t\tAND q.questionnaire_id = '{$questionnaire_id}'\r\n\t\tand qsq.quota_reached != '1'"; $rs = $db->GetAll($sql); if (isset($rs) && !empty($rs)) { //include limesurvey functions include_once dirname(__FILE__) . '/functions.limesurvey.php'; //update all quotas for this questionnaire foreach ($rs as $r) { $completions = limesurvey_quota_completions($r['lime_sgqa'], $r['lime_sid'], $r['questionnaire_id'], $r['sample_import_id'], $r['value'], $r['comparison']); if ($completions >= $r['completions']) { //set quota to reached $sql = "UPDATE questionnaire_sample_quota\r\n\t\t\t\t\tSET quota_reached = '1'\r\n\t\t\t\t\tWHERE questionnaire_sample_quota_id = {$r['questionnaire_sample_quota_id']}"; $db->Execute($sql); } } } return false; }
if ($sample_import_id != false) { print "<h2>" . T_("Current quotas") . ":</h2>"; //(click to delete) $sql = "SELECT questionnaire_sample_quota_id,lime_sgqa,value,completions,quota_reached,lime_sid,comparison\r\n\t\t\tFROM questionnaire_sample_quota as qsq, questionnaire as q\r\n\t\t\tWHERE qsq.questionnaire_id = '{$questionnaire_id}'\r\n\t\t\tAND qsq.sample_import_id = '{$sample_import_id}'\r\n\t\t\tAND q.questionnaire_id = '{$questionnaire_id}'"; $r = $db->GetAll($sql); if (empty($r)) { print "<p class='well text-info'>" . T_("Currently no quotas") . "</p>"; } else { foreach ($r as $v) { print "<div><a href='?questionnaire_id={$questionnaire_id}&sample_import_id={$sample_import_id}&questionnaire_sample_quota_id={$v['questionnaire_sample_quota_id']}'>" . T_("Stop calling this sample when:") . " {$v['lime_sgqa']} {$v['comparison']} {$v['value']} " . T_("for") . ": {$v['completions']} " . T_("completions") . "</a> - "; if ($v['quota_reached'] == 1) { print T_("Quota reached"); } else { print T_("Quota not yet reached"); } print " - " . T_("Current completions: ") . limesurvey_quota_completions($v['lime_sgqa'], $v['lime_sid'], $questionnaire_id, $sample_import_id, $v['value'], $v['comparison']); print "</div>"; } } print "<h3 class=' '>" . T_("Select a question for the quota") . "</h3>"; $sql = "SELECT lime_sid\r\n\t\t\tFROM questionnaire\r\n\t\t\tWHERE questionnaire_id = '{$questionnaire_id}'"; $r = $db->GetRow($sql); $lime_sid = $r['lime_sid']; $sgqa = false; if (isset($_GET['sgqa'])) { $sgqa = $_GET['sgqa']; } $sql = "SELECT CONCAT( lq.sid, 'X', lq.gid, 'X', CASE WHEN lq.parent_qid = 0 THEN lq.qid ELSE CONCAT(lq.parent_qid, lq.title) END) as value,\r\n\t\tCONCAT( lq.sid, 'X', lq.gid, 'X', CASE WHEN lq.parent_qid = 0 THEN lq.qid ELSE CONCAT(lq.parent_qid, lq.title) END, ' -> ' , CASE WHEN lq.parent_qid = 0 THEN lq.question ELSE CONCAT(lq2.question, ' : ', lq.question) END) as description,\r\n\t\tCASE WHEN CONCAT( lq.sid, 'X', lq.gid, 'X', CASE WHEN lq.parent_qid = 0 THEN lq.qid ELSE CONCAT(lq.parent_qid, lq.title) END) = '{$sgqa}' THEN 'selected=\\'selected\\'' ELSE '' END AS selected\r\n\t\t\tFROM `" . LIME_PREFIX . "questions` AS lq\r\n\t\t\tLEFT JOIN `" . LIME_PREFIX . "questions` AS lq2 ON ( lq2.qid = lq.parent_qid )\r\n\t\t\tJOIN `" . LIME_PREFIX . "groups` as g ON (g.gid = lq.gid)\r\n\t\t\tWHERE lq.sid = '{$lime_sid}'\r\n\t\t\tORDER BY CASE WHEN lq2.question_order IS NULL THEN lq.question_order ELSE lq2.question_order + (lq.question_order / 1000) END ASC"; display_chooser($db->GetAll($sql), "sgqa", "sgqa", true, "questionnaire_id={$questionnaire_id}&sample_import_id={$sample_import_id}", true, true, false, true, "form-group"); print "<div class='clearfix'></div>"; if ($sgqa != false) {