public function onRun() { if (!is_null($this->property('experienceInstance'))) { $instance = ExperienceModel::find($this->property('experienceInstance')); $maxExperiencePts = $instance->total_points; $exComp = new ExperienceComponent(); $exComp->initVariables($this->property('experienceInstance')); $points = $exComp->getUserPoints(); $roots = new Roots(); $standards = $roots->getGradingStandards(); $grading_scheme = $standards[0]->grading_scheme; $letterGrade = $this->getLetterGrade($points, $maxExperiencePts, $grading_scheme); $bonusPenaltiesObj = $exComp->calculateTotalBonusPenalties($this->property('experienceInstance')); $totalBonusPenalties = $bonusPenaltiesObj->bonus + $bonusPenaltiesObj->penalties; //penalties come with negative sign $this->page['XP'] = round($points, 2); $this->page['gradeBonus'] = round($totalBonusPenalties, 2); $this->page['letterGrade'] = $letterGrade; } else { $this->page['XP'] = 0; $this->page['gradeBonus'] = 0; $this->page['letterGrade'] = "F"; } //todo: get the bonus, etc from blade, not from experience $size = $this->property('size'); $this->page['gradeSize'] = $size; $this->addJs("/plugins/delphinium/blossom/assets/javascript/grade.js"); $this->addCss("/plugins/delphinium/blossom/assets/css/animate.css"); $this->addCss("/plugins/delphinium/blossom/assets/css/grade.css"); $this->addCss("/plugins/delphinium/blossom/assets/css/main.css"); }
public function getMilestoneClearanceInfo() { $this->submissions = $this->getSubmissions(); $instanceId = \Input::get('experienceInstanceId'); $expController = new ExperienceController(); $milestoneInfo = $expController->getMilestoneClearanceInfo($instanceId); return $milestoneInfo; }
private function getBonusPenalties($userId = null) { $experienceComp = new ExperienceComponent(); if (!is_null($this->property('Experience')) && $this->property('Experience') > 0) { return $experienceComp->calculateTotalBonusPenalties($this->property('Experience'), $userId); } else { $obj = new \stdClass(); $obj->bonus = 0; $obj->penalties = 0; } }
public function getMilestoneClearanceInfo() { try { $this->submissions = $this->getSubmissions(); $instanceId = \Input::get('experienceInstanceId'); $expController = new ExperienceController(); $milestoneInfo = $expController->getMilestoneClearanceInfo($instanceId); return $milestoneInfo; } catch (\GuzzleHttp\Exception\ClientException $e) { return []; } }
private function getBonusPenalties() { $experienceComp = new ExperienceComponent(); if (!is_null($this->property('experienceInstance')) && $this->property('experienceInstance') > 0) { return $experienceComp->calculateTotalBonusPenalties($this->property('experienceInstance')); } else { return 0; } }
public function onRun() { $instance = GradeModel::find($this->property('gradeInstance')); if (!is_null($this->property('experienceInstance'))) { $experienceInstance = ExperienceModel::find($this->property('experienceInstance')); $exComp = new ExperienceComponent(); //set class variables $stDate = new DateTime($experienceInstance->start_date); $endDate = new DateTime($experienceInstance->end_date); $ptsPerSecond = $exComp->getPtsPerSecond($stDate, $endDate, $experienceInstance->total_points); $exComp->setPtsPerSecond($ptsPerSecond); $exComp->setStartDate($stDate); $exComp->setBonusPerSecond($experienceInstance->bonus_per_day / 24 / 60 / 60); $exComp->setBonusSeconds($experienceInstance->bonus_days * 24 * 60 * 60); $exComp->setPenaltyPerSecond($experienceInstance->penalty_per_day / 24 / 60 / 60); $exComp->setPenaltySeconds($experienceInstance->penalty_days * 24 * 60 * 60); $points = $exComp->getUserPoints(); $milestonesDesc = Milestone::where('experience_id', '=', $experienceInstance->id)->orderBy('points', 'desc')->get(); $mileClearance = $exComp->getMilestoneClearanceInfo($milestonesDesc); $bonusPenalties = 0; foreach ($mileClearance as $item) { if ($item->cleared) { $bonusPenalties = $bonusPenalties + $item->bonusPenalty; } } $this->page['XP'] = round($points, 2); $this->page['gradeBonus'] = round($bonusPenalties, 2); } else { $this->page['XP'] = 0; $this->page['gradeBonus'] = 0; } //todo: get the bonus, etc from blade, not from experience $this->page['gradeSize'] = $instance->Size; $this->getGradeData(); $this->addJs("/plugins/delphinium/blossom/assets/javascript/grade.js"); $this->addCss("/plugins/delphinium/blossom/assets/css/animate.css"); $this->addCss("/plugins/delphinium/blossom/assets/css/grade.css"); $this->addCss("/plugins/delphinium/blossom/assets/css/main.css"); }
public function onRun() { $instance = GradeModel::find($this->property('gradeInstance')); if (!is_null($this->property('experienceInstance'))) { $exComp = new ExperienceComponent(); $exComp->initVariables($this->property('experienceInstance')); $points = $exComp->getUserPoints(); $bonusPenaltiesObj = $exComp->calculateTotalBonusPenalties($this->property('experienceInstance')); $totalBonusPenalties = $bonusPenaltiesObj->bonus + $bonusPenaltiesObj->penalties; //penalties come with negative sign $this->page['XP'] = round($points, 2); $this->page['gradeBonus'] = round($totalBonusPenalties, 2); } else { $this->page['XP'] = 0; $this->page['gradeBonus'] = 0; } //todo: get the bonus, etc from blade, not from experience $this->page['gradeSize'] = $instance->Size; $this->getGradeData(); $this->addJs("/plugins/delphinium/blossom/assets/javascript/grade.js"); $this->addCss("/plugins/delphinium/blossom/assets/css/animate.css"); $this->addCss("/plugins/delphinium/blossom/assets/css/grade.css"); $this->addCss("/plugins/delphinium/blossom/assets/css/main.css"); }
private function getBonusPenaltiesNew($experienceInstanceId, $userSubmissions, $ptsPerSecond, $stDateUTC, $bonusPerSecond, $bonusSeconds, $penaltyPerSecond, $penaltySeconds) { $experienceComp = new ExperienceComponent(); if (!is_null($experienceInstanceId) && $experienceInstanceId > 0) { return $experienceComp->calculateTotalBonusPenaltiesNew($experienceInstanceId, $userSubmissions, $ptsPerSecond, $stDateUTC, $bonusPerSecond, $bonusSeconds, $penaltyPerSecond, $penaltySeconds); } else { return 0; } }