/** * Insert object to database */ public function insert() { $Route = $this->newRouteObject(); $Trackdata = $this->newTrackdataObject(); $Swimdata = $this->newSwimObject(); if ($Route->name() != '' || $Route->hasPositionData() || $Route->hasElevations()) { $InserterRoute = new Runalyze\Model\Route\Inserter(DB::getInstance(), $Route); $InserterRoute->setAccountID(SessionAccountHandler::getId()); $InserterRoute->insert(); $this->forceToSet('routeid', $InserterRoute->insertedID()); if ($this->getElevation() == 0) { $this->setElevation($Route->elevation()); } } $Activity = $this->newActivityObject(); $InserterActivity = new Runalyze\Model\Activity\Inserter(DB::getInstance(), $Activity); $InserterActivity->setAccountID(SessionAccountHandler::getId()); $InserterActivity->setRoute($Route); $InserterActivity->setTrackdata($Trackdata); $InserterActivity->setSwimdata($Swimdata); $InserterActivity->insert(); $this->id = $InserterActivity->insertedID(); if ($this->hasArrayTime() || $this->hasArrayDistance() || $this->hasArrayHeartrate()) { $Trackdata->set(Runalyze\Model\Trackdata\Object::ACTIVITYID, $this->id()); $InserterTrack = new Runalyze\Model\Trackdata\Inserter(DB::getInstance(), $Trackdata); $InserterTrack->setAccountID(SessionAccountHandler::getId()); $InserterTrack->insert(); } if ($this->hasArrayStroke() || $this->hasArrayStrokeType()) { $Swimdata->set(Runalyze\Model\Swimdata\Object::ACTIVITYID, $this->id()); $InserterSwim = new Runalyze\Model\Swimdata\Inserter(DB::getInstance(), $Swimdata); $InserterSwim->setAccountID(SessionAccountHandler::getId()); $InserterSwim->insert(); } if ($this->hasArrayHRV()) { $HRV = $this->newHRVObject(); $HRV->set(Runalyze\Model\HRV\Object::ACTIVITYID, $this->id()); $InserterHRV = new Runalyze\Model\HRV\Inserter(DB::getInstance(), $HRV); $InserterHRV->setAccountID(SessionAccountHandler::getId()); $InserterHRV->insert(); } }
/** * 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(); } }