$cur_time)) { echo ""; return; } $log = LoggerManager::getLogger('Activity_Reminder'); $smarty = new vtigerCRM_Smarty; if(isPermitted('Calendar','index') == 'yes'){ $active = $adb->pquery("select * from vtiger_users where id=?",array($current_user->id)); $active_res = $adb->query_result($active,0,'reminder_interval'); if($active_res == 'None') { $_SESSION['next_reminder_time'] = 'None'; } if($active_res!='None'){ $interval=$adb->query_result($active,0,"reminder_interval"); $intervalInMinutes = ConvertToMinutes($interval); // check for reminders every minute $time = time(); $_SESSION['next_reminder_time'] = $time + ($intervalInMinutes * 60); $date = date('Y-m-d', strtotime("+$intervalInMinutes minutes", $time)); $time = date('H:i', strtotime("+$intervalInMinutes minutes", $time)); $callback_query = "SELECT * FROM vtiger_activity_reminder_popup inner join vtiger_crmentity where " . " vtiger_activity_reminder_popup.status = 0 and " . " vtiger_activity_reminder_popup.recordid = vtiger_crmentity.crmid " . " and vtiger_crmentity.smownerid = ".$current_user->id." and vtiger_crmentity.deleted = 0 " . " and ((DATE_FORMAT(vtiger_activity_reminder_popup.date_start,'%Y-%m-%d') <= '" . $date . "')" . " AND (TIME_FORMAT(vtiger_activity_reminder_popup.time_start,'%H:%i') <= '" . $time . "'))"; $result = $adb->query($callback_query); $cbrows = $adb->num_rows($result); if($cbrows > 0) { for($index = 0; $index < $cbrows; ++$index) { $reminderid = $adb->query_result($result, $index, "reminderid"); $cbrecord = $adb->query_result($result, $index, "recordid"); $cbmodule = $adb->query_result($result, $index, "semodule"); $focus = CRMEntity::getInstance($cbmodule); if($cbmodule == 'Calendar') { $focus->retrieve_entity_info($cbrecord,$cbmodule); $cbsubject = $focus->column_fields['subject']; $cbactivitytype = $focus->column_fields['activitytype']; $cbdate = $focus->column_fields["date_start"]; $cbtime = $focus->column_fields["time_start"]; } else { // For non-calendar records. $cbsubject = array_values(getEntityName($cbmodule, $cbrecord)); $cbsubject = $cbsubject[0]; $cbactivitytype = getTranslatedString($cbmodule, $cbmodule); $cbdate = $adb->query_result($result, $index, 'date_start'); $cbtime = $adb->query_result($result, $index, 'time_start'); } if($cbtime != ''){ $date = new DateTimeField($cbdate.' '.$cbtime); $cbtime = $date->getDisplayTime(); $cbdate = $date->getDisplayDate(); $cbtimeArr = getaddEventPopupTime($cbtime, '', 'am/pm'); $cbtime = $cbtimeArr['starthour'].':'.$cbtimeArr['startmin'].''.$cbtimeArr['startfmt']; } if($cbactivitytype=='Task') $cbstatus = $focus->column_fields["taskstatus"]; else $cbstatus = $focus->column_fields["eventstatus"]; $cbstatus = getTranslatedString($cbstatus, $currentModule); $cbactivitytype = getTranslatedString($cbactivitytype, $currentModule); // Appending recordid we can get unique callback dom id for that record. $popupid = "ActivityReminder_$cbrecord"; if($cbdate <= date('Y-m-d')){ if($cbdate == date('Y-m-d') && $cbtime > date('H:i')) $cbcolor = ''; else $cbcolor= '#FF1515'; } $smarty->assign("THEME", $theme); $smarty->assign("popupid", $popupid); $smarty->assign("APP", $app_strings); $smarty->assign("cbreminderid", $reminderid); $smarty->assign("cbdate", $cbdate); $smarty->assign("cbtime", $cbtime); $smarty->assign("cbsubject", $cbsubject); $smarty->assign("cbmodule", $cbmodule); $smarty->assign("cbrecord", $cbrecord); $smarty->assign("cbstatus", $cbstatus); $smarty->assign("cbcolor", $cbcolor); $smarty->assign("cblinkdtl", $cblinkdtl); $smarty->assign("activitytype", $cbactivitytype); $smarty->display("ActivityReminderCallback.tpl"); $mark_reminder_as_read = "UPDATE vtiger_activity_reminder_popup set status = 1 where reminderid = ?"; $adb->pquery($mark_reminder_as_read, array($reminderid)); echo ""; } } else { $callback_query = "SELECT * FROM vtiger_activity_reminder_popup inner join vtiger_crmentity where " . " vtiger_activity_reminder_popup.status = 0 and " . " vtiger_activity_reminder_popup.recordid = vtiger_crmentity.crmid " . " and vtiger_crmentity.smownerid = ".$current_user->id." and vtiger_crmentity.deleted = 0 ". "AND vtiger_activity_reminder_popup.reminderid > 0 ORDER BY date_start DESC , ". "TIME_FORMAT(vtiger_activity_reminder_popup.time_start,'%H:%i') DESC LIMIT 1"; $result = $adb->query($callback_query); $it = new SqlResultIterator($adb, $result); $nextReminderTime = null; foreach ($it as $row) { $nextReminderTime = strtotime($row->date_start.' '.$row->time_start); } $_SESSION['next_reminder_time'] = $nextReminderTime - ($intervalInMinutes * 60); } echo ""; } } ?>