コード例 #1
0
/**
 * 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;
}
コード例 #2
0
ファイル: quota.php プロジェクト: ddrmoscow/queXS
 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}&amp;sample_import_id={$sample_import_id}&amp;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, '&ensp;->&ensp;' , 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}&amp;sample_import_id={$sample_import_id}", true, true, false, true, "form-group");
     print "<div class='clearfix'></div>";
     if ($sgqa != false) {