Exemplo n.º 1
0
 /**
  * Delete overflow submissions.
  * If three submissions within the period central is delete
  * @param $userid
  * @return void
  **/
 function delete_overflow_submissions($userid)
 {
     global $CFG, $DB;
     $plugincfg = get_config('mod_vpl');
     if (!isset($plugincfg->discard_submission_period)) {
         return;
     }
     if ($plugincfg->discard_submission_period == 0) {
         //Keep all submissions
         return;
     }
     if ($plugincfg->discard_submission_period > 0) {
         $select = "(userid = ?) AND (vpl = ?)";
         $params = array($userid, $this->instance->id);
         $res = $DB->get_records_select(VPL_SUBMISSIONS, $select, $params, 'id DESC', '*', 0, 3);
         if (count($res) == 3) {
             $i = 0;
             foreach ($res as $sub) {
                 switch ($i) {
                     case 0:
                         $last = $sub;
                         break;
                     case 1:
                         $second = $sub;
                         break;
                     case 2:
                         $first = $sub;
                         break;
                 }
                 $i++;
             }
             //Check time consistence
             if (!($last->datesubmitted > $second->datesubmitted && $second->datesubmitted > $first->datesubmitted)) {
                 return;
             }
             if ($last->datesubmitted - $first->datesubmitted < $plugincfg->discard_submission_period) {
                 //Remove second submission
                 $submission = new mod_vpl_submission($this, $second);
                 $submission->delete();
             }
         }
     }
 }