/** * @param Position $position * @return Position */ public function savePosition(Position $position) { $id = $position->getPositionId(); $data = $position->getArrayCopy(); if ($id > 0) { $this->update($data, array('positionId' => $id)); } else { unset($data['positionId']); $this->insert($data); } if (!$position->getPositionId()) { $position->setPositionId($this->getLastInsertValue()); } return $position; }