public function handleEvent($handlerType, $entityData) { $moduleName = $entityData->getModuleName(); if ($handlerType == 'vtiger.entity.beforesave' && in_array($moduleName, ['Calendar', 'Events', 'Activity'])) { $data = $entityData->getData(); $state = Calendar_Module_Model::getCalendarState($data); if ($state) { $entityData->set('activitystatus', $state); } } }
<?php /* {[The file is published on the basis of YetiForce Public License that can be found in the following directory: licenses/License.html]} */ require_once 'include/main/WebUI.php'; $user = new Users(); $current_user = $user->retrieveCurrentUserInfoFromFile("1"); $adb = PearDatabase::getInstance(); $statusActivity = Calendar_Module_Model::getComponentActivityStateLabel(); $query = 'SELECT vtiger_activity.`activityid`, vtiger_activity.`due_date`,vtiger_activity.`time_end`,vtiger_activity.`date_start`,vtiger_activity.`time_start`,vtiger_activity.`state` FROM vtiger_activity INNER JOIN vtiger_crmentity AS crm ON crm.crmid = vtiger_activity.`activityid` WHERE vtiger_activity.`status` IN (?,?) AND crm.`deleted` = ?'; $result = $adb->pquery($query, [$statusActivity['not_started'], $statusActivity['in_realization'], 0]); while ($row = $adb->fetch_array($result)) { $state = Calendar_Module_Model::getCalendarState($row); if ($state) { $recordModel = Vtiger_Record_Model::getInstanceById($row['activityid']); $recordModel->set('id', $row['activityid']); $recordModel->set('activitystatus', $state); $recordModel->set('mode', 'edit'); $recordModel->save(); } }
/** Function to insert values in vtiger_activity_reminder_popup table for the specified module * @param $cbmodule -- module:: Type varchar */ function insertIntoActivityReminderPopup($cbmodule) { $adb = PearDatabase::getInstance(); $cbrecord = $this->id; unset($_SESSION['next_reminder_time']); if (isset($cbmodule) && isset($cbrecord)) { $cbdate = getValidDBInsertDateValue($this->column_fields['date_start']); $cbtime = $this->column_fields['time_start']; $reminderQuery = 'SELECT reminderid FROM vtiger_activity_reminder_popup WHERE semodule = ? and recordid = ?'; $reminderParams = [$cbmodule, $cbrecord]; $reminderidres = $adb->pquery($reminderQuery, $reminderParams); $reminderid = null; if ($reminderidres->rowCount() > 0) { $reminderid = $adb->query_result($reminderidres, 0, 'reminderid'); } $currentStates = Calendar_Module_Model::getComponentActivityStateLabel('current'); $state = Calendar_Module_Model::getCalendarState($this->column_fields); if (in_array($state, $currentStates)) { $status = 0; } else { $status = 1; } if (isset($reminderid)) { $adb->update('vtiger_activity_reminder_popup', ['date_start' => $cbdate, 'time_start' => $cbtime, 'status' => $status], 'reminderid = ?', [$reminderid]); } else { $adb->insert('vtiger_activity_reminder_popup', ['recordid' => $cbrecord, 'semodule' => $cbmodule, 'date_start' => $cbdate, 'time_start' => $cbtime, 'status' => $status]); } } }