function raisedbyteam($gid) { //dbg("group: $gid"); $raised = 0; $sql = "select id, last_name from users where active=1 and group_id={$gid} and user_type='s'"; $rs = dbExec($sql); $rc = $rs->RecordCount(); if ($rc >= 1) { //dbg("rc=$rc"); assert($rc <= 4); $add = 0; $avg = 0; $raised = 0; $addedComp = false; for ($i = 0; $i < 4; $i++) { if ($i < $rc) { $stud = $rs->FetchNextObj(); $name = $stud->last_name; $tvc = 0; $rm = raisedbystudent($stud->id, $tvc); $raised += $rm; $add += $rm; $avg = $add / ($i + 1); //dbg("id=".$stud->id." name=$name raised=$rm tot=$raised add=$add avg=$avg"); } else { if ($addedComp == false) { $raised += $avg; //dbg("(no one) tot=$raised ($raised + $avg)"); $addedComp = true; } } } $raised = round($raised); //dbg("final tot=$raised"); } dbExec("update groups set raisedmoney={$raised} where id=" . $gid); return $raised; }
p("cleared tracking.raisedmoney"); dbExec("update groups set raisedmoney=0"); p("cleared groups.raisedmoney"); dbExec("delete from results"); dbExec("insert into results (uid,gid)\n\t\t\t\tselect id,group_id from users where active=1 and user_type='s' and group_id!=0 and gamedata != ''"); p("Done"); } b("updating raised money for students"); $tr = array(); $rs = dbExec("select uid,gid from results where raised is NULL"); $rc = $rs->RecordCount(); p("Records to process: {$rc}"); $j = $rs->RecordCount() / 10; while ($o = $rs->FetchNextObj()) { $tvc = 0; $raised = raisedbystudent($o->uid, $tvc); $tr[$o->gid] = true; if ($rs->CurrentRow() % $j == 0) { echo $rs->CurrentRow() . "—"; } ob_flush(); flush(); } p("Done"); b("updating raised money for teams"); $rc = count($tr); p("Records to process: {$rc}"); $j = $rc / 10; $cr = 0; foreach ($tr as $gid => $v) { $raised = dbGetFld("select sum(raised) + (avg(raised) * CEIL((4-count(raised))/4)) from results where gid={$gid}");