public function process(Vtiger_Request $request) { $adb = PearDatabase::getInstance(); //$params = $request->getAll(); $value = $request->get('value'); $cron = array('name' => 'SWVTTool GoogleCalSync', 'handler_file' => 'modules/SwVtTools/cron/gcal_sync.service.php', 'frequency' => '600', 'module' => 'SwVtTools', 'desc' => 'Check every 10 minutes if Calendar needs to be synced'); if ($value == 'false') { Vtiger_Cron::deregister($cron['name']); } else { $sql = 'SELECT * FROM vtiger_cron_task WHERE name = ?'; $result = $adb->pquery($sql, array($cron['name'])); if ($adb->num_rows($result) > 0) { $sql = 'UPDATE vtiger_cron_task SET status = 1, handler_file = "' . $cron['handler_file'] . '" WHERE id = ' . $adb->query_result($result, 0, 'id'); $adb->query($sql); } else { Vtiger_Cron::register($cron['name'], $cron['handler_file'], $cron['frequency'], $cron['module'], 1, Vtiger_Cron::nextSequence(), $cron['desc']); } } }
function undoChange() { if ($this->isBlocked()) { return true; } if ($this->hasError()) { $this->sendError(); } if ($this->isSystemUpdate()) { $this->sendMsg('Changeset ' . get_class($this) . ' is a system update, it cannot be undone!'); } else { if ($this->isApplied()) { Vtiger_Cron::deregister('UpdateExchangeRate'); $this->sendMsg('Changeset ' . get_class($this) . ' undone!'); $this->markUndone(); // this should not be done if changeset is Continuous } else { $this->sendMsg('Changeset ' . get_class($this) . ' not applied!'); } } $this->finishExecution(); }
function update_CronTasks($modulenode) { if (empty($modulenode->crons) || empty($modulenode->crons->cron)) { return; } $cronTasks = Vtiger_Cron::listAllInstancesByModule($modulenode->name); foreach ($modulenode->crons->cron as $importCronTask) { foreach ($cronTasks as $cronTask) { if ($cronTask->getName() == $importCronTask->name && $importCronTask->handler == $cronTask->getHandlerFile()) { Vtiger_Cron::deregister($importCronTask->name); } } if (empty($importCronTask->status)) { $cronTask->status = Vtiger_Cron::$STATUS_DISABLED; } else { $cronTask->status = Vtiger_Cron::$STATUS_ENABLED; } if (empty($importCronTask->sequence)) { $importCronTask->sequence = Vtiger_Cron::nextSequence(); } Vtiger_Cron::register("{$importCronTask->name}", "{$importCronTask->handler}", "{$importCronTask->frequency}", "{$modulenode->name}", "{$importCronTask->status}", "{$importCronTask->sequence}", "{$importCronTask->description}"); } }
} } $dropflds = array('com_vtiger_workflows.schtypeid', 'com_vtiger_workflows.schtime', 'com_vtiger_workflows.schdayofmonth', 'com_vtiger_workflows.schdayofweek', 'com_vtiger_workflows.schannualdates', 'com_vtiger_workflows.nexttrigger_time', 'vtiger_mailmanager_mailattachments.cid', 'vtiger_mailscanner_rules.assigned_to', 'vtiger_mailscanner_rules.cc', 'vtiger_mailscanner_rules.bcc', 'vtiger_recurringevents.recurringenddate', 'vtiger_mailscanner.time_zone', 'vtiger_portal.createdtime', 'vtiger_mail_accounts.sent_folder', 'vtiger_organizationdetails.vatid', 'vtiger_tab.trial'); foreach ($dropflds as $fqfn) { list($table, $field) = explode('.', $fqfn); ExecuteQuery("ALTER TABLE {$table} DROP {$field}"); } $droptable = array('vtiger_feedback', 'vtiger_shareduserinfo', 'vtiger_schedulereports', 'vtiger_calendar_default_activitytypes', 'vtiger_calendar_user_activitytypes', 'vtiger_reporttype'); foreach ($droptable as $table) { ExecuteQuery("DROP TABLE {$table}"); } //Schema changes for vtiger_troubletickets hours & days column ExecuteQuery('ALTER TABLE vtiger_troubletickets MODIFY hours varchar(200)', array()); ExecuteQuery('ALTER TABLE vtiger_troubletickets MODIFY days varchar(200)', array()); ExecuteQuery('UPDATE vtiger_field set typeofdata=? WHERE fieldname IN(?,?) AND tablename = ?', array('I~O', 'hours', 'days', 'vtiger_troubletickets')); Vtiger_Cron::deregister('ScheduleReports'); //Updating actions for PriceBooks related list in Products and Services $productsTabId = getTabId('Products'); ExecuteQuery('UPDATE vtiger_relatedlists SET actions=? WHERE label=? and tabid=?', array('ADD', 'PriceBooks', $productsTabId)); $eventsManager = new VTEventsManager($adb); $eventsManager->unregisterHandler('Vtiger_RecordLabelUpdater_Handler'); //Start: Customer - Feature #17656 Allow users to add/remove date format with the date fields in workflow send mail task. $fieldResult = $adb->pquery('SELECT fieldname, name, typeofdata FROM vtiger_field INNER JOIN vtiger_tab ON vtiger_tab.tabid = vtiger_field.tabid WHERE typeofdata LIKE ?', array('D%')); $dateFieldsList = $dateTimeFieldsList = array(); while ($rowData = $adb->fetch_array($fieldResult)) { $moduleName = $rowData['name']; $fieldName = $rowData['fieldname']; $pos = stripos($rowData['typeofdata'], 'DT'); if ($pos !== false) { $dateTimeFieldsList[$moduleName][$fieldName] = $fieldName;
function update_CronTasks($modulenode) { if (empty($modulenode->crons) || empty($modulenode->crons->cron)) { return; } $cronTasks = Vtiger_Cron::listAllInstancesByModule($modulenode->name); foreach ($modulenode->crons->cron as $importCronTask) { foreach ($cronTasks as $cronTask) { if ($cronTask->getName() == $importCronTask->name && $importCronTask->handler == $cronTask->getHandlerFile()) { Vtiger_Cron::deregister($importCronTask->name); } } if (empty($importCronTask->status)) { $cronTask->status = Vtiger_Cron::$STATUS_DISABLED; } else { $cronTask->status = Vtiger_Cron::$STATUS_ENABLED; } if (empty($importCronTask->sequence)) { $importCronTask->sequence = Vtiger_Cron::nextSequence(); } // SalesPlatform.ru begin added support laststart/lastend Vtiger_Cron::register("{$importCronTask->name}", "{$importCronTask->handler}", "{$importCronTask->frequency}", "{$modulenode->name}", "{$importCronTask->status}", "{$importCronTask->sequence}", "{$cronTask->description}", "{$importCronTask->laststart}", "{$importCronTask->lastend}"); //Vtiger_Cron::register("$importCronTask->name","$importCronTask->handler", "$importCronTask->frequency", "$modulenode->name","$importCronTask->status","$importCronTask->sequence","$cronTask->description"); // SalesPlatform.ru end } }
public function cron() { global $log, $adb; $log->debug("Entering VT620_to_YT::cron() method ..."); $removeCrons = array(); $removeCrons[] = 'MailScanner'; $addCrons = array(); $addCrons[] = array('Backup', 'cron/backup.service', '43200', '', '', '0', 'BackUp', '11', NULL); $addCrons[] = array('CardDav', 'modules/API/cron/CardDav.php', 300, NULL, NULL, 1, 'Contacts', 12, NULL); $addCrons[] = array('CalDav', 'modules/API/cron/CalDav.php', 300, NULL, NULL, 1, 'Calendar', 13, NULL); foreach ($removeCrons as $cron) { Vtiger_Cron::deregister($cron); } foreach ($addCrons as $cron) { Vtiger_Cron::register($cron[0], $cron[1], $cron[2], $cron[6], $cron[5], 0, $cron[8]); } $adb->pquery('UPDATE `vtiger_cron_task` SET `status` = ? WHERE `name` = ?;', [1, 'Scheduled Import']); $log->debug("Exiting VT620_to_YT::cron() method ..."); }