if (count($tf) != 0) { array_multisort($tf, SORT_DESC); } $tlObjects = Tavling::getHallOfFameLag(); $tl = array(); foreach ($tlObjects as $l) { if (!empty($l)) { // $foretag = Foretag::loadById($f['foretag_id']); $tl[] = array("stegindex" => $l['steg'] / $l['medlemmar'] / Foretag::TAVLINGSPERIOD_DAGAR, "namn" => $l['lag_namn'] . "<br />från " . $l['foretag_namn'], "id" => $l['lag_id']); } } if (count($tl) != 0) { array_multisort($tl, SORT_DESC); } $tm = array(); $tmObjects = Tavling::getHallOfFameMedlemmar(); $ids = array(); $stegindex = array(); //print_r($tmObjects); //die(); foreach ($tmObjects as $m) { if (!empty($m)) { $ids[] = $m['medlem_id']; $stegindex[$m['medlem_id']] = $m['steg']; } } $medlemmar = Medlem::loadByIds($ids); // print_r($medlemmar); foreach ($medlemmar as $medlem) { if (!empty($medlem)) { $id = $medlem->getId();
$smarty->assign("GOOGLEMAPS_APIKEY", GOOGLEMAPS_APIKEY); $smarty->assign("avatarUrl", $USER->getAvatar()->getUrl()); // Usesr blogg data $smarty->assign("blogTitle", "Min Blogg"); // Copy USER to medlem $smarty->assign("medlem", $USER); // Check if user has registered enough steps to pass the medal limit $medaljLimitSilver = 49000; $medaljLimitGuld = 77000; $startDatum = date('Y-m-d', strtotime('last monday')); $slutDatum = date('Y-m-d', strtotime($startDatum . ' +7 days')); $antalSteg = $USER->getStegTotal($startDatum, $slutDatum); $medaljLimitReached = false; if ($antalSteg >= $medaljLimitSilver) { $medaljLimitReached = true; $smarty->assign('medaljNamn', 'silvermedalj'); $smarty->assign('medaljBild', '/img/icons/medalj_silver.gif'); $smarty->assign('medaljLimit', $medaljLimitSilver); } if ($antalSteg >= $medaljLimitGuld) { $medaljLimitReached = true; $smarty->assign('medaljNamn', 'guldmedalj'); $smarty->assign('medaljBild', '/img/icons/medalj_guld.gif'); $smarty->assign('medaljLimit', $medaljLimitGuld); } $smarty->assign('medaljLimitReached', $medaljLimitReached); $smarty->assign('selfProfile', true); //tavlingar $tavlingArray = Tavling::getMemberCompetitions($USER->getid()); $smarty->assign('tavlingArray', $tavlingArray); $smarty->display('minsida.tpl');
/** * This function ends and saves a competition. * The sql will only find ended competitions on tuesdays, it is supposed to run as a cron. * The competitions and all the calculated data are saved in tables: mm_tavling_save, mm_tavling, mm_lag_save * A tavling_id is created for each competition. * Actions are logged to /motiomera/log/motiomera.log * * All members will have some extra days added, see the FORETAGSMEDLEMS_EXTRA_DAYS * * @author krillo * * krillo 091026 changed the sql to only get the records that have a competition thats ending. * krillo 100420 changed to only save the competition to mm_tavling_save, mm_tavling, mm_lag_save * krillo 110511 changed to add extra days after closed competition FORETAGSMEDLEMS_EXTRA_DAYS * krillo 110817 changed to take a date parameter to be bale to run from admin. Please use only Tuesdays after finished competition */ public static function saveAndEndForetagsTavling($date = false) { Misc::logMotiomera("Start foretag::saveAndEndForetagsTavling() ", 'info'); global $db; $jDate = new JDate($date); $subDays = $jDate->subDays(3)->getDate(true); // today - 3 days in unixtime $sql = 'SELECT c.id as foretag_id, namn as foretag_namn, a.id, a.aNamn as user_anamn, a.epost as user_epost, c.startDatum, c.slutDatum FROM mm_medlem a, mm_foretagsnycklar b, mm_foretag c WHERE a.id = b.medlem_id AND b.foretag_id = c.id AND a.epostBekraftad = 1 AND UNIX_TIMESTAMP(c.slutDatum) BETWEEN ' . $subDays . ' AND ' . $jDate->getOrigDate(true); $users = $db->allValuesAsArray($sql); $tavling = new Tavling('0000-00-00', '0000-00-00'); $save = array(); $i = 1; if (count($users) == 0) { Misc::logMotiomera("No tavling ended this last sunday", 'info'); } else { //commence saving Misc::logMotiomera("End of tavling, saving data for " . count($users) . " members", 'info'); foreach ($users as $user) { $medlem = Medlem::loadById($user['id']); if (isset($medlem)) { $startDatum = $user['startDatum']; //$medlem->getForetag()->getStartDatum(); $slutDatum = $user['slutDatum']; //$medlem->getForetag()->getSlutdatum(); if ($tavling->getStartDatum() == '0000-00-00') { $tavling->setStartDatum($startDatum); // give the Tavling object a correct startdate as soon as we've got one (we only do this once) $tavling->setSlutDatum($slutDatum); $tavling->commit(); } if ($medlem->getForetag()) { if ($medlem->getLag()) { //members that are not in a lag, want also to be in the toplists set lagId to -1 $lagId = $medlem->getLag()->getId(); } else { $lagId = 0; } $steg = $medlem->getStegTotal($startDatum, $slutDatum); $antal_dagar = $medlem->getForetag()->getAntalTavlingsDagar(); if ($steg > 0) { //only save data for members who have more than 0 steg try { $save[] = array('medlem_id' => $medlem->getId(), 'foretag_id' => $medlem->getForetag()->getId(), 'lag_id' => $lagId, 'foretagsnyckel' => $medlem->getForetagsnyckel(), 'tavlings_id' => $tavling->getId(), 'steg' => $steg, 'start_datum' => $startDatum, 'stop_datum' => $slutDatum, 'antal_dagar' => $antal_dagar); Misc::logMotiomera(" " . $i++ . " tavling_id: " . $tavling->getId() . " | " . $medlem->getForetag()->getNamn() . ' | id: ' . $medlem->getId() . ' | ' . $medlem->getAnamn() . " | steg: {$steg}" . " | email: " . $medlem->getEpost(), 'ok'); $medlem->addPaidUntil(self::FORETAGSMEDLEMS_EXTRA_DAYS); //add some extra days after finished competition $medlem->commit(); } catch (Exception $e) { Misc::logMotiomera(" " . $i++ . " | something went wrong", 'error'); } } else { Misc::logMotiomera(" " . $i++ . " | Member is omitted due to 0 steps |" . $medlem->getForetag()->getNamn() . ' | id: ' . $medlem->getId() . ' | ' . $medlem->getAnamn() . " | steg: {$steg}" . " | email: " . $medlem->getEpost(), 'warning'); } } else { Misc::logMotiomera(" " . $i++ . " | Member is omitted due to member not in foretag | id: " . $medlem->getId() . ' | ' . $medlem->getAnamn() . " | email: " . $medlem->getEpost(), 'warning'); } } } $lag_save = array(); foreach ($save as $m) { //print_r($m); $i = 0; if (!isset($lag_save[$m['lag_id']]) and $m['lag_id'] > 0) { $lag_save[$m['lag_id']] = Lag::loadById($m['lag_id']); } $sql = "INSERT INTO " . Tavling::RELATION_TABLE . " SET "; foreach ($m as $field => $value) { $i++; if ($i == 9) { $sql .= $field . " = '" . $value . "'"; } else { $sql .= $field . " = '" . $value . "', "; } } //echo "<br />$sql"; $db->query($sql); } if (count($lag_save) != 0) { Tavling::saveLagList($lag_save); } } Misc::logMotiomera("End foretag::saveAndEndForetagsTavling() ", 'info'); }
$foretagMedlemArray = Tavling::getResultCompanyTeamMember($tid, $lag['lag_id']); array_push($allaLag, $foretagMedlemArray); } //print_r($allaLag); //get all members for the submitted company //Deltagartoppen no limit - all members (-1) $allCompMembArray = Tavling::getResultAllMembers($tid, -1, $fid); //print_r($allCompMembArray); //get all members for the whole contest Deltagartoppen //if the member ranks lower than DELTAGARTOPPEN_MAX then add her the the array $allMembArray = Tavling::getResultAllMembers($tid, DELTAGARTOPPEN_MAX); //print_r($allMembArray); $lagArray = Tavling::getResultTeam($tid); //get all the teams with median Lagtoppen //print_r($foretagLagArray); $allForetagArray = Tavling::getResultCompany($tid, FORETAGSTOPPEN_MAX); //get all companys average Foretagstoppen //print_r($allForetagArray); $foretag = Foretag::loadById($fid); break; default: throw new UserException('Något har gått fel', 'Prova igen senare eller rapportera felet till support@motiomera.se'); break; } } $smarty->assign("foretagArray", $foretagArray); $smarty->assign("allaLag", $allaLag); $smarty->assign("foretagLagArray", $foretagLagArray); $smarty->assign("allCompMembArray", $allCompMembArray); $smarty->assign("allMembArray", $allMembArray); $smarty->assign("lagArray", $lagArray);
<?php include $_SERVER["DOCUMENT_ROOT"] . "/php/init.php"; if (!empty($_GET["fid"]) && !(isset($FORETAG) && $FORETAG->getId() == $_GET["fid"])) { Security::demand(ADMIN); $foretag = Foretag::loadById($_GET["fid"]); } else { Security::demand(FORETAG); $foretag = $FORETAG; } $smarty = new MMSmarty(); $tid = Tavling::getTavlingsId($foretag->getId()); //echo $tid[tavlings_id]; $smarty->assign("tid", $tid[tavlings_id]); $smarty->assign("pagetitle", "Redigera företag"); $tabs = new TabBox("foretag", 590, null); $tabs->addTab("Lag", "lag"); $tabs->addTab("Inställningar", "installningar"); $tabs->addTab("Deltagare", "anstallda"); $tabs->addTab("Tilläggsbeställning", "tillaggsbest"); $tabs->addTab("Nycklar", "nycklar"); $tabs->addTab("Reklamation", "reklamation"); if (!empty($_GET["tab"]) && $_GET["tab"] < 6) { $tabs->setSelected($_GET["tab"]); } else { $tabs->setSelected("Lag"); } $smarty->assign("tabs", $tabs); $smarty->assign("foretaget", $foretag); $sel_kommun = $foretag->getKommunId(); $smarty->assign("sel_kommun", $sel_kommun);