/** * Tarsform Vtiger Records to Google Records * @param <array> $vtEvents * @return <array> tranformed vtiger Records */ public function transformToTargetRecord($vtEvents) { $records = array(); foreach ($vtEvents as $vtEvent) { $newEvent = new Google_Service_Calendar_Event(); if ($vtEvent->getMode() == WSAPP_SyncRecordModel::WSAPP_DELETE_MODE) { $newEvent->setId($vtEvent->get('_id')); } elseif ($vtEvent->getMode() == WSAPP_SyncRecordModel::WSAPP_UPDATE_MODE && $vtEvent->get('_id')) { if ($this->apiConnection->isTokenExpired()) { $this->apiConnection->refreshToken(); $this->client->setAccessToken($this->apiConnection->getAccessToken()); $this->service = new Google_Service_Calendar($this->client); } $newEvent = $this->service->events->get('primary', $vtEvent->get('_id')); } $newEvent->setSummary($vtEvent->get('subject')); $newEvent->setLocation($vtEvent->get('location')); $newEvent->setDescription($vtEvent->get('description')); $newEvent->setVisibility(strtolower($vtEvent->get('visibility'))); $startDate = $vtEvent->get('date_start'); $startTime = $vtEvent->get('time_start'); $endDate = $vtEvent->get('due_date'); $endTime = $vtEvent->get('time_end'); if (empty($endTime)) { $endTime = "00:00"; } $start = new Google_Service_Calendar_EventDateTime(); $start->setDateTime($this->googleFormat($startDate . ' ' . $startTime)); $newEvent->setStart($start); $end = new Google_Service_Calendar_EventDateTime(); $end->setDateTime($this->googleFormat($endDate . ' ' . $endTime)); $newEvent->setEnd($end); $recordModel = Google_Calendar_Model::getInstanceFromValues(array('entity' => $newEvent)); $recordModel->setType($this->getSynchronizeController()->getSourceType())->setMode($vtEvent->getMode())->setSyncIdentificationKey($vtEvent->get('_syncidentificationkey')); $recordModel = $this->performBasicTransformations($vtEvent, $recordModel); $recordModel = $this->performBasicTransformationsToTargetRecords($recordModel, $vtEvent); $records[] = $recordModel; } return $records; }
/** * Tarsform Vtiger Records to Google Records * @param <array> $vtEvents * @return <array> tranformed vtiger Records */ public function transformToTargetRecord($vtEvents) { $records = array(); foreach ($vtEvents as $vtEvent) { $gcalendar = new Zend_Gdata_Calendar($this->apiInstance); if ($vtEvent->getMode() == WSAPP_SyncRecordModel::WSAPP_UPDATE_MODE || $vtEvent->getMode() == WSAPP_SyncRecordModel::WSAPP_DELETE_MODE) { try { $newEntry = $gcalendar->getCalendarEventEntry($vtEvent->get('_id')); } catch (Exception $e) { continue; } } else { $newEntry = $gcalendar->newEventEntry(); } $newEntry->title = $gcalendar->newTitle($vtEvent->get('subject')); $newEntry->where = array($gcalendar->newWhere($vtEvent->get('location'))); $newEntry->content = $gcalendar->newContent($vtEvent->get('description')); $newEntry->content->type = 'text'; $oldtz = date_default_timezone_get(); date_default_timezone_set('GMT'); $startDate = $vtEvent->get('date_start'); $startTime = $vtEvent->get('time_start'); $endDate = $vtEvent->get('due_date'); $endTime = $vtEvent->get('time_end'); if (empty($endTime)) { $endTime = "00:00"; } $when = $gcalendar->newWhen(); $when->startTime = date('c', strtotime("{$startDate} {$startTime}")); if (!empty($endDate)) { $when->endTime = date('c', strtotime("{$endDate} {$endTime}")); } date_default_timezone_set($oldtz); $newEntry->when = array($when); $recordModel = Google_Calendar_Model::getInstanceFromValues(array('entity' => $newEntry)); $recordModel->setType($this->getSynchronizeController()->getSourceType())->setMode($vtEvent->getMode())->setSyncIdentificationKey($vtEvent->get('_syncidentificationkey')); $recordModel = $this->performBasicTransformations($vtEvent, $recordModel); $recordModel = $this->performBasicTransformationsToTargetRecords($recordModel, $vtEvent); $records[] = $recordModel; } return $records; }