Example #1
0
 /**
  * Update power
  */
 protected function updatePower()
 {
     if ($this->hasChanged(Entity::SPORTID)) {
         if (\Runalyze\Context::Factory()->sport($this->NewObject->sportid())->hasPower() && null !== $this->Trackdata && $this->Trackdata->has(Model\Trackdata\Entity::TIME) && $this->Trackdata->has(Model\Trackdata\Entity::DISTANCE)) {
             $Calculator = new \Runalyze\Calculation\Power\Calculator($this->Trackdata, $this->Route);
             $Calculator->calculate();
             $this->updatePowerForTrackdata($Calculator->powerData());
             $this->NewObject->set(Entity::POWER, $Calculator->average());
         } else {
             $this->updatePowerForTrackdata(array());
             $this->NewObject->set(Entity::POWER, 0);
         }
     }
 }
Example #2
0
 /**
  * Calculate trimp
  * @return int
  */
 public function calculateTrimp()
 {
     if ($this->knowsTrackdata() && $this->Trackdata->has(Model\Trackdata\Object::HEARTRATE)) {
         $Collector = new Trimp\DataCollector($this->Trackdata->heartRate(), $this->Trackdata->time());
         $data = $Collector->result();
     } elseif ($this->Activity->hrAvg() > 0) {
         $data = array($this->Activity->hrAvg() => $this->Activity->duration());
     } else {
         $Factory = Context::Factory();
         if ($this->Activity->typeid() > 0) {
             $data = array($Factory->type($this->Activity->typeid())->hrAvg() => $this->Activity->duration());
         } else {
             $data = array($Factory->sport($this->Activity->sportid())->avgHR() => $this->Activity->duration());
         }
     }
     $Athlete = Context::Athlete();
     $Calculator = new Trimp\Calculator($Athlete, $data);
     return round($Calculator->value());
 }
Example #3
0
 /**
  * Calculate power
  */
 protected function calculatePower()
 {
     if (\Runalyze\Context::Factory()->sport($this->Object->sportid())->hasPower() && Configuration::ActivityForm()->computePower() && NULL !== $this->Trackdata) {
         $Calculator = new \Runalyze\Calculation\Power\Calculator($this->Trackdata, $this->Route);
         $Calculator->calculate();
         $this->Trackdata->set(Model\Trackdata\Object::POWER, $Calculator->powerData());
         $this->Object->set(Object::POWER, $Calculator->average());
     }
 }
 /**
  * Update object in database
  */
 public function update()
 {
     $OldData = isset($_POST['old-data']) ? unserialize(base64_decode($_POST['old-data'])) : array();
     if (!is_array($OldData)) {
         $OldData = array();
     }
     $UpdaterActivity = new \Runalyze\Model\Activity\Updater(DB::getInstance(), $this->newActivityObject(), new \Runalyze\Model\Activity\Object($OldData));
     if (isset($OldData['routeid'])) {
         $UpdaterActivity->setRoute(\Runalyze\Context::Factory()->route($OldData['routeid']));
     }
     $UpdaterActivity->setTrackdata(\Runalyze\Context::Factory()->trackdata($this->id()));
     $UpdaterActivity->setAccountID(SessionAccountHandler::getId());
     $UpdaterActivity->update();
     if (isset($OldData['routeid']) && isset($OldData['route'])) {
         $UpdaterRoute = new \Runalyze\Model\Route\Updater(DB::getInstance(), new Runalyze\Model\Route\Object(array('id' => $OldData['routeid'], Runalyze\Model\Route\Object::NAME => $this->get('route'), Runalyze\Model\Route\Object::CITIES => $this->get('route'))), new Runalyze\Model\Route\Object(array('id' => $OldData['routeid'], Runalyze\Model\Route\Object::NAME => $OldData['route'], Runalyze\Model\Route\Object::CITIES => $OldData['route'])));
         $UpdaterRoute->setAccountID(SessionAccountHandler::getId());
         $UpdaterRoute->update();
     }
 }
Example #5
0
 /**
  * Update power
  */
 protected function updatePower()
 {
     if ($this->hasChanged(Object::SPORTID)) {
         if (\Runalyze\Context::Factory()->sport($this->NewObject->sportid())->hasPower()) {
             $Calculator = new \Runalyze\Calculation\Power\Calculator($this->Trackdata, $this->Route);
             $Calculator->calculate();
             $this->updatePowerForTrackdata($Calculator->powerData());
             $this->NewObject->set(Object::POWER, $Calculator->average());
         } else {
             $this->updatePowerForTrackdata(array());
             $this->NewObject->set(Object::POWER, 0);
         }
     }
 }
Example #6
0
 /**
  * Construct preview
  * @param \Runalyze\Model\Activity\Object $activity
  */
 public function __construct(Activity\Object $activity)
 {
     $this->Activity = $activity;
     $this->Dataview = new Dataview($activity);
     $this->Sport = Context::Factory()->sport($this->Activity->sportid());
 }
Example #7
0
 /**
  * Update object in database
  */
 public function update()
 {
     $DB = DB::getInstance();
     $AccountID = SessionAccountHandler::getId();
     $OldData = isset($_POST['old-data']) ? unserialize(base64_decode($_POST['old-data'])) : array();
     if (!is_array($OldData)) {
         $OldData = array();
     }
     $NewActivity = $this->newActivityObject();
     $UpdaterActivity = new \Runalyze\Model\Activity\Updater($DB, $NewActivity, new \Runalyze\Model\Activity\Object($OldData));
     if (isset($OldData['routeid']) && $OldData['routeid'] > 0) {
         $UpdaterActivity->setRoute(\Runalyze\Context::Factory()->route($OldData['routeid']));
     } elseif ($this->get('route') != '') {
         $InserterRoute = new Runalyze\Model\Route\Inserter($DB, new Runalyze\Model\Route\Object(array(Runalyze\Model\Route\Object::NAME => $this->get('route'), Runalyze\Model\Route\Object::CITIES => $this->get('route'), Runalyze\Model\Route\Object::DISTANCE => $this->get('distance'))));
         $InserterRoute->setAccountID($AccountID);
         $InserterRoute->insert();
         $NewActivity->set(Runalyze\Model\Activity\Object::ROUTEID, $InserterRoute->insertedID());
     }
     $UpdaterActivity->setTrackdata(\Runalyze\Context::Factory()->trackdata($this->id()));
     $UpdaterActivity->setEquipmentIDs(TrainingFormular::readEquipmentFromPost($NewActivity->sportid()), isset($_POST['equipment_old']) ? explode(',', $_POST['equipment_old']) : array());
     $UpdaterActivity->setAccountID($AccountID);
     $UpdaterActivity->update();
     if (isset($OldData['routeid']) && isset($OldData['route'])) {
         $UpdaterRoute = new \Runalyze\Model\Route\Updater($DB, new Runalyze\Model\Route\Object(array('id' => $OldData['routeid'], Runalyze\Model\Route\Object::NAME => $this->get('route'), Runalyze\Model\Route\Object::CITIES => $this->get('route'))), new Runalyze\Model\Route\Object(array('id' => $OldData['routeid'], Runalyze\Model\Route\Object::NAME => $OldData['route'], Runalyze\Model\Route\Object::CITIES => $OldData['route'])));
         $UpdaterRoute->setAccountID($AccountID);
         $UpdaterRoute->update();
     }
 }
<?php

/**
 * File for correction the elevation data of this training.
 * Call:   call/call.Training.elevationCorrection.php?id=
 */
require '../inc/class.Frontend.php';
use Runalyze\Context;
use Runalyze\Model\Activity;
use Runalyze\Model\Route;
use Runalyze\Calculation\Route\Calculator;
use Runalyze\View\Activity\Linker;
use Runalyze\Data\Elevation\Correction\NoValidStrategyException;
$Frontend = new Frontend();
$Factory = Context::Factory();
$Activity = $Factory->activity(Request::sendId());
$ActivityOld = clone $Activity;
$Route = $Factory->route($Activity->get(Activity\Object::ROUTEID));
$RouteOld = clone $Route;
try {
    $Calculator = new Calculator($Route);
    $result = $Calculator->tryToCorrectElevation(Request::param('strategy'));
} catch (NoValidStrategyException $Exception) {
    $result = false;
}
if ($result) {
    $Calculator->calculateElevation();
    $Activity->set(Activity\Object::ELEVATION, $Route->elevation());
    $UpdaterRoute = new Route\Updater(DB::getInstance(), $Route, $RouteOld);
    $UpdaterRoute->setAccountID(SessionAccountHandler::getId());
    $UpdaterRoute->update();