/** * Run recalculations */ public function run() { $Query = $this->getQuery(); $Update = $this->prepareUpdate(); while ($Data = $Query->fetch()) { $Elevation = \Runalyze\Model\Object::explode($Data['elevations']); $Calculator = new Elevation\Calculation\Calculator($Elevation); $Calculator->calculate(); if ($Calculator->totalElevation() != $Data['elevation'] || $Calculator->elevationUp() != $Data['elevation_up']) { $Update->bindValue(':id', $Data['id']); $Update->bindValue(':elevation', $Calculator->totalElevation()); $Update->bindValue(':elevation_up', $Calculator->elevationUp()); $Update->bindValue(':elevation_down', $Calculator->elevationDown()); $Update->execute(); $this->NumberOfRoutes++; } $this->Results[$Data['id']] = array($Calculator->totalElevation(), $Calculator->elevationUp(), $Calculator->elevationDown()); } }