public function testUserDateFormat() { $gmt_default_date_start = $this->time_date->get_gmt_db_datetime(); $date1 = $this->time_date->handle_offset($gmt_default_date_start, $GLOBALS['timedate']->get_date_time_format()); $date2 = $this->time_date->asUser($this->time_date->getNow()); $this->assertEquals($date1, $date2, "HandleOffset should be equaivalent to nowDb"); }
/** * Creates the string for the user's events and todos between the given start * and end times * * @param UserBean $user_bean the current UserBean * @param DateTime $start_date_time the start date to search from * @param DateTime $end_date_time the end date to search to * @param string $dtstamp the current timestamp * @return string the entries for events and todos */ protected function createSugarIcal(&$user_bean, &$start_date_time, &$end_date_time, $dtstamp) { $ical_array = array(); global $DO_USER_TIME_OFFSET, $sugar_config, $current_user, $timedate; $hide_calls = false; if (!empty($_REQUEST['hide_calls']) && $_REQUEST['hide_calls'] == "true") { $hide_calls = true; } $taskAsVTODO = true; if (!empty($_REQUEST['show_tasks_as_events']) && ($_REQUEST['show_tasks_as_events'] == "1" || $_REQUEST['show_tasks_as_events'] == "true")) { $taskAsVTODO = false; } $acts_arr = CalendarActivity::get_activities($user_bean->id, !$taskAsVTODO, $start_date_time, $end_date_time, 'month', !$hide_calls); // loop thru each activity, get start/end time in UTC, and return iCal strings foreach ($acts_arr as $act) { $event = $act->sugar_bean; if (!$hide_calls || $hide_calls && $event->object_name != "Call") { $ical_array[] = array("BEGIN", "VEVENT"); $ical_array[] = array("SUMMARY", $event->name); $ical_array[] = array("DTSTART;TZID=" . $user_bean->getPreference('timezone'), str_replace("Z", "", $timedate->tzUser($act->start_time, $current_user)->format(self::UTC_FORMAT))); $ical_array[] = array("DTEND;TZID=" . $user_bean->getPreference('timezone'), str_replace("Z", "", $timedate->tzUser($act->end_time, $current_user)->format(self::UTC_FORMAT))); $ical_array[] = array("DTSTAMP", $dtstamp); $ical_array[] = array("DESCRIPTION", $event->description); $ical_array[] = array("URL;VALUE=URI", $sugar_config['site_url'] . "/index.php?module=" . $event->module_dir . "&action=DetailView&record=" . $event->id); $ical_array[] = array("UID", $event->id); if ($event->object_name == "Meeting") { $ical_array[] = array("LOCATION", $event->location); $eventUsers = $event->get_meeting_users(); $query = "SELECT contact_id as id from meetings_contacts where meeting_id='{$event->id}' AND deleted=0"; $eventContacts = $event->build_related_list($query, new Contact()); $eventAttendees = array_merge($eventUsers, $eventContacts); if (is_array($eventAttendees)) { foreach ($eventAttendees as $attendee) { if ($attendee->id != $user_bean->id) { // Define the participant status $participant_status = ''; if (!empty($attendee->accept_status)) { switch ($attendee->accept_status) { case 'accept': $participant_status = ';PARTSTAT=ACCEPTED'; break; case 'decline': $participant_status = ';PARTSTAT=DECLINED'; break; case 'tentative': $participant_status = ';PARTSTAT=TENTATIVE'; break; } } $ical_array[] = array('ATTENDEE' . $participant_status . ';CN="' . $attendee->get_summary_text() . '"', 'mailto:' . (!empty($attendee->email1) ? $attendee->email1 : '*****@*****.**')); } } } } if ($event->object_name == "Call") { $eventUsers = $event->get_call_users(); $eventContacts = $event->get_contacts(); $eventAttendees = array_merge($eventUsers, $eventContacts); if (is_array($eventAttendees)) { foreach ($eventAttendees as $attendee) { if ($attendee->id != $user_bean->id) { // Define the participant status $participant_status = ''; if (!empty($attendee->accept_status)) { switch ($attendee->accept_status) { case 'accept': $participant_status = ';PARTSTAT=ACCEPTED'; break; case 'decline': $participant_status = ';PARTSTAT=DECLINED'; break; case 'tentative': $participant_status = ';PARTSTAT=TENTATIVE'; break; } } $ical_array[] = array('ATTENDEE' . $participant_status . ';CN="' . $attendee->get_summary_text() . '"', 'mailto:' . (!empty($attendee->email1) ? $attendee->email1 : '*****@*****.**')); } } } } if (isset($event->reminder_time) && $event->reminder_time > 0 && $event->status != "Held") { $ical_array[] = array("BEGIN", "VALARM"); $ical_array[] = array("TRIGGER", "-PT"); $ical_array[] = array("ACTION", "DISPLAY"); $ical_array[] = array("DESCRIPTION", $event->name); $ical_array[] = array("END", "VALARM"); } $ical_array[] = array("END", "VEVENT"); } } $str = vCal::create_ical_string_from_array($ical_array, true); require_once 'include/TimeDate.php'; $timedate = new TimeDate(); $today = gmdate("Y-m-d"); $today = $timedate->handle_offset($today, $timedate->dbDayFormat, false); require_once 'modules/ProjectTask/ProjectTask.php'; $where = "project_task.assigned_user_id='{$user_bean->id}' " . "AND (project_task.status IS NULL OR (project_task.status!='Deferred')) " . "AND (project_task.date_start IS NULL OR " . CalendarActivity::get_occurs_within_where_clause('project_task', '', $start_date_time, $end_date_time, 'date_start', 'month') . ")"; $seedProjectTask = new ProjectTask(); $projectTaskList = $seedProjectTask->get_full_list("", $where); if (is_array($projectTaskList)) { foreach ($projectTaskList as $projectTask) { $str .= $this->createSugarIcalTodo($user_bean, $projectTask, "ProjectTask", $dtstamp); } } if ($taskAsVTODO) { require_once 'modules/Tasks/Task.php'; $where = "tasks.assigned_user_id='{$user_bean->id}' " . "AND (tasks.status IS NULL OR (tasks.status!='Deferred')) " . "AND (tasks.date_start IS NULL OR " . CalendarActivity::get_occurs_within_where_clause('tasks', '', $start_date_time, $end_date_time, 'date_start', 'month') . ")"; $seedTask = new Task(); $taskList = $seedTask->get_full_list("", $where); if (is_array($taskList)) { foreach ($taskList as $task) { $str .= $this->createSugarIcalTodo($user_bean, $task, "Tasks", $dtstamp); } } } return $str; }
function GoogleCalls(&$bean, $event, $arguments) { $okev = true; $_SESSION["mass_upd_assigned"] = false; if (isset($_REQUEST["massupdate"])) { if ($_REQUEST["massupdate"] == true) { $okev = false; if ($_REQUEST['assigned_user_id'] != "" or $_REQUEST['date_start'] != "") { $okev = true; } if ($_REQUEST['assigned_user_id'] != "") { $_SESSION["mass_upd_assigned"] = true; } } } if ($okev == true) { if ($_SESSION["called_from_sync"] == false or $_SESSION["called_from_sync"] == "") { ### skip if called from sync.php logic hook global $timedate; $offset_val = ".000+02:00"; $td = new TimeDate(); $tablename = $bean->table_name; $a = $response['list'][$tn1]; $s = array(); # echo "<br>**********Event ******* id=$a[id] ***** name=$a[name]"; $s["title"] = $bean->name; if ($tablename == 'meetings') { $s["title"] = "Meeting: " . $s["title"]; } if ($tablename == 'calls') { $s["title"] = "Call: " . $s["title"]; } if ($tablename == 'tasks') { $s["title"] = "Task: " . $s["title"]; } $s["content"] = $bean->description; $s["where"] = $bean->location; $s["startDay"] = $bean->date_start; $s["startTime"] = $bean->time_start; $s["endDay"] = $bean->date_end; $s["reminder_time"] = $bean->reminder_time / 60; if ($s["reminder_time"] == '' or $s["reminder_time"] == 0) { $s["reminder_time"] = 10; } if ($bean->date_start == '' and $bean->date_due != "") { $s["startDay"] = $bean->date_due; #### for tasks if no start date } else { $s["startDay"] = $bean->date_start; } # print_r($s); global $current_user; $pd = $s["startDay"]; ####260608 #$pd= $td->handle_offset($td->get_date_time_format(true, $current_user), $td->get_date_time_format(true, $current_user), false,$current_user); $date_start_in_db_fmt = $td->swap_formats($s["startDay"], $td->get_date_time_format(true, $current_user), $td->get_db_date_time_format()); $date_end_in_db_fmt1 = $td->swap_formats($bean->date_due, $td->get_date_time_format(true, $current_user), $td->get_db_date_time_format()); $date_start_array = split(" ", trim($date_start_in_db_fmt)); $date_time_start = DateTimeUtil::get_time_start($date_start_array[0], $date_start_array[1]); $tt1 = $td->to_display_date_time($bean->date_start, true, true, false); $user = $current_user; $s["startTime"] = $td->handle_offset($date_start_in_db_fmt, "H:i:s", false, $current_user); $date_end_in_db_fmt1 = $td->handle_offset($date_end_in_db_fmt1, "Y-m-d H:i:s", false, $current_user); ###### problem with offset ... if record is at 23.15 gmt +2 .. date problem $ch = explode(" ", $s["startDay"]); if ($ch['1'] == "00:00" or $ch['1'] == "00.00") { #### 120608 bogdan if task and 12:00 goes to next day $s["startDay"] = $td->handle_offset($date_start_in_db_fmt, "Y-m-d", false,$current_user); $s["startDay"] = $td->handle_offset($date_start_in_db_fmt, "Y-m-d", false, $current_user); $s["startDay1"] = $td->handle_offset($date_start_in_db_fmt, "Y-m-d H:i:s", false, $current_user); } else { $s["startDay"] = $td->handle_offset($date_start_in_db_fmt, "Y-m-d", false, $current_user); $s["startDay1"] = $td->handle_offset($date_start_in_db_fmt, "Y-m-d H:i:s", false, $current_user); } $plugin_format = "d/m/Y H:i"; if ($td->get_date_time_format(true, $current_user) != $plugin_format) { ##260608 $plugin_date_start=$td->swap_formats($pd, $td->get_date_time_format(true, $current_user), $plugin_format); $plugin_date_due = $td->swap_formats($bean->date_due, $td->get_date_time_format(true, $current_user), $plugin_format); } else { ##260608 $plugin_date_start=$pd; $plugin_date_due = $bean->date_due; } $plugin_date_start = $td->swap_formats($s["startDay1"], "Y-m-d H:i:s", $plugin_format); $plugin_date_due1 = $td->swap_formats($date_end_in_db_fmt1, "Y-m-d H:i:s", $plugin_format); ################################################# $d1 = explode("/", $plugin_date_start); global $current_user; $d1[2] = explode(" ", $d1[2]); $d1[2] = $d1[2][0]; if ($bean->time_start != '' and 1 == 2) { $t1 = explode(":", $bean->time_start); } else { $fort1 = explode(" ", $plugin_date_start); $fort1 = $fort1[1]; $t1 = explode(":", $fort1); } $t1[1] = round($t1[1]); $untill = mktime($t1[0] + $bean->duration_hours, $t1[1] + $bean->duration_minutes, $t1[2], $d1[1], $d1[0], $d1[2]); if ($tablename == 'tasks') { if ($plugin_date_due == "" or $bean->date_due == "") { $forexp = $plugin_date_start; } else { $forexp = $plugin_date_due; $forexp = $plugin_date_due1; } $d1d = explode("/", $forexp); $d1d[2] = explode(" ", $d1d[2]); $d1d[2] = $d1d[2][0]; $fort1d = explode(" ", $forexp); $fort1d = $fort1d[1]; $t1d = explode(":", $fort1d); $untill = mktime($t1d[0], $t1d[1], $t1d[2], $d1d[1], $d1d[0], $d1d[2]); } $date_due = date("Y-m-d", $untill); $time_due = date("H:i:s", $untill); $s["endTime"] = $time_due; $s["endDay"] = $date_due; if ($bean->assigned_user_id == '') { $userid = $bean->created_by; } else { $userid = $bean->assigned_user_id; } ////////// dmc290609 if (isset($_REQUEST['allready_retrieved_user_acceptDecline'])) { $userid = $current_user->id; } ////////// dmc290609 $user = new User(); $user->retrieve($userid); $user_data = get_user_email_pass1($user->id); if ($user_data[0] != '' and $user_data[1] != '') { } else { } if ($user_data[0] != '' and $user_data[1] != '') { $assigned_link = $user->google_mcalendar_c; if ($assigned_link == "" or $assigned_link == "1") { $assigned_link = "nolinkfromhook"; $assigned_link = "http://www.google.com/calendar/feeds/default/private/full"; } $gc = new GoogleCalendarWrapper($user_data[0], $user_data[1], "", $assigned_link); global $current_user; $doevent = false; if ($tablename == "calls" and $user->google_mcalls_c == "on") { $doevent = true; if ($user->google_mplannedcalls_c == "on" and $bean->status != "Planned") { $doevent = false; } } if ($tablename == "meetings" and $user->google_mmeetings_c == "on") { $doevent = true; } if ($tablename == "tasks" and $user->google_mtasks_c == "on") { $doevent = true; } if ($doevent == true) { $add_notifications = $user->google_mnotifications_c; $gc->add_event_onl($s, $bean->id, $tablename, $user_data, $bean, $add_notifications); } $_SESSION["mass_upd_assigned"] = false; } } } }
function GoogleCalls(&$bean, $event, $arguments) { echo "<br>aa " . $bean->id; echo "<br>aa " . $bean->name; echo "<br>sess delete " . $_SESSION["mass_upd_assigned"]; echo "<br>sess delete" . $_REQUEST["massupdate"]; echo "<br>"; $okev = true; $_SESSION["mass_upd_assigned"] = false; if (isset($_REQUEST["massupdate"])) { if ($_REQUEST["massupdate"] == true) { $okev = false; if ($_REQUEST['assigned_user_id'] != "" or $_REQUEST['date_start'] != "") { $okev = true; } if ($_REQUEST['assigned_user_id'] != "") { $_SESSION["mass_upd_assigned"] = true; } } } if ($okev == true) { if ($_SESSION["called_from_sync"] == false or $_SESSION["called_from_sync"] == "") { ### skip if called from sync.php logic hook echo "<br>delete from sugar logic hook "; global $timedate; $offset_val = ".000+02:00"; $td = new TimeDate(); echo "<br>old bean id " . $bean->id; echo "<br>old bean name " . $bean->name; echo "<br>tablename "; $tablename = $bean->table_name; $a = $response['list'][$tn1]; $s = array(); $s["title"] = $bean->name; if ($tablename == 'meetings') { $s["title"] = "Meeting: " . $s["title"]; } if ($tablename == 'calls') { $s["title"] = "Call: " . $s["title"]; } if ($tablename == 'tasks') { $s["title"] = "Task: " . $s["title"]; } echo "<br>bean date start " . $bean->date_start; $s["content"] = $bean->description; $s["where"] = $bean->location; $s["startDay"] = $bean->date_start; $s["startTime"] = $bean->time_start; $s["endDay"] = $bean->date_end; $s["reminder_time"] = $bean->reminder_time / 60; if ($s["reminder_time"] == '' or $s["reminder_time"] == 0) { $s["reminder_time"] = 10; } if ($bean->date_start == '' and $bean->date_due != "") { $s["startDay"] = $bean->date_due; #### for tasks if no start date } else { $s["startDay"] = $bean->date_start; } # print_r($s); global $current_user; $pd = $s["startDay"]; ####260608 #$pd= $td->handle_offset($td->get_date_time_format(true, $current_user), $td->get_date_time_format(true, $current_user), false,$current_user); $date_start_in_db_fmt = $td->swap_formats($s["startDay"], $td->get_date_time_format(true, $current_user), $td->get_db_date_time_format()); $date_end_in_db_fmt1 = $td->swap_formats($bean->date_due, $td->get_date_time_format(true, $current_user), $td->get_db_date_time_format()); $date_start_array = split(" ", trim($date_start_in_db_fmt)); $date_time_start = DateTimeUtil::get_time_start($date_start_array[0], $date_start_array[1]); $tt1 = $td->to_display_date_time($bean->date_start, true, true, false); $user = $current_user; $s["startTime"] = $td->handle_offset($date_start_in_db_fmt, "H:i:s", false, $current_user); $date_end_in_db_fmt1 = $td->handle_offset($date_end_in_db_fmt1, "Y-m-d H:i:s", false, $current_user); echo "<br>bean date start1 " . $s["startTime"]; ##260806 $s["startTime"]=$date_start_array[1]; echo "<br>bean date start2 " . $s["startTime"]; $ch = explode(" ", $s["startDay"]); if ($ch['1'] == "00:00" or $ch['1'] == "00.00") { #### 120608 bogdan if task and 12:00 goes to next day $s["startDay"] = $td->handle_offset($date_start_in_db_fmt, "Y-m-d", false,$current_user); $s["startDay"] = $td->handle_offset($date_start_in_db_fmt, "Y-m-d", false, $current_user); $s["startDay1"] = $td->handle_offset($date_start_in_db_fmt, "Y-m-d H:i:s", false, $current_user); } else { $s["startDay"] = $td->handle_offset($date_start_in_db_fmt, "Y-m-d", false, $current_user); $s["startDay1"] = $td->handle_offset($date_start_in_db_fmt, "Y-m-d H:i:s", false, $current_user); } $plugin_format = "d/m/Y H:i"; if ($td->get_date_time_format(true, $current_user) != $plugin_format) { ##260608 $plugin_date_start=$td->swap_formats($pd, $td->get_date_time_format(true, $current_user), $plugin_format); $plugin_date_due = $td->swap_formats($bean->date_due, $td->get_date_time_format(true, $current_user), $plugin_format); } else { ##260608 $plugin_date_start=$pd; $plugin_date_due = $bean->date_due; } $plugin_date_start = $td->swap_formats($s["startDay1"], "Y-m-d H:i:s", $plugin_format); $plugin_date_due1 = $td->swap_formats($date_end_in_db_fmt1, "Y-m-d H:i:s", $plugin_format); echo "<br>plg date start " . $plugin_date_start; ################################################# $d1 = explode("/", $plugin_date_start); global $current_user; $d1[2] = explode(" ", $d1[2]); $d1[2] = $d1[2][0]; if ($bean->time_start != '' and 1 == 2) { $t1 = explode(":", $bean->time_start); } else { $fort1 = explode(" ", $plugin_date_start); $fort1 = $fort1[1]; $t1 = explode(":", $fort1); } $t1[1] = round($t1[1]); print_r($t1); $untill = mktime($t1[0] + $bean->duration_hours, $t1[1] + $bean->duration_minutes, $t1[2], $d1[1], $d1[0], $d1[2]); if ($tablename == 'tasks') { if ($plugin_date_due == "" or $bean->date_due == "") { $forexp = $plugin_date_start; echo "<br>date due " . $plugin_date_due . " " . $bean->date_due; } else { $forexp = $plugin_date_due; $forexp = $plugin_date_due1; } $d1d = explode("/", $forexp); $d1d[2] = explode(" ", $d1d[2]); $d1d[2] = $d1d[2][0]; $fort1d = explode(" ", $forexp); $fort1d = $fort1d[1]; $t1d = explode(":", $fort1d); $untill = mktime($t1d[0], $t1d[1], $t1d[2], $d1d[1], $d1d[0], $d1d[2]); } $date_due = date("Y-m-d", $untill); $time_due = date("H:i:s", $untill); $s["endTime"] = $time_due; $s["endDay"] = $date_due; echo "<br>start day " . $s["startDay"] . " " . $s["startTime"] . " " . $plugin_date_start; echo "<br>end day " . $s["endDay"] . " " . $s["endTime"] . " " . $plugin_date_due; if ($bean->assigned_user_id == '') { $userid = $bean->created_by; } else { $userid = $bean->assigned_user_id; } $user = new User(); $user->retrieve($userid); $user_data = get_user_email_pass1($user->id); if ($user_data[0] != '' and $user_data[1] != '') { echo "<br>**Got user " . $user_data[0]; $assigned_link = $user->google_mcalendar_c; if ($assigned_link == "" or $assigned_link == "1") { $assigned_link = "nolinkfromhook"; $assigned_link = "http://www.google.com/calendar/feeds/default/private/full"; } $gc = new GoogleCalendarWrapper($user_data[0], $user_data[1], "", $assigned_link); global $current_user; $add_notifications = $user->google_mnotifications_c; $gc->delete_event($s, $bean->id, $tablename, $user_data, $bean, $add_notifications); echo "<br>do event" . $doevent . " tb name " . $tablename; $_SESSION["mass_upd_assigned"] = false; ////////// dmc290609 #echo print_r($bean); # exit; if ($bean->table_name == "calls") { $mdname = "Calls"; } if ($bean->table_name == "meetings") { $mdname = "Meetings"; } if ($bean->table_name == "tasks") { $mdname = "Tasks"; } global $db; $_REQUEST['allready_retrieved_user_acceptDecline'] = true; $sq = "select * from google_calendar_rel where obj_id='" . $bean->id . "' and obj_type='" . $mdname . "' and deleted=0"; $res = $db->query($sq); while ($row_oldsaved = $db->fetchByAssoc($res)) { $user_data = get_user_email_pass1($row_oldsaved['user_id']); $_REQUEST['delete_invite_user_id'] = $row_oldsaved['user_id']; $_REQUEST['delete_invite_url'] = $row_oldsaved['old_link_edit_c']; if ($user_data[0] != '' and $user_data[1] != '') { $assigned_link = ""; $gc = new GoogleCalendarWrapper($user_data[0], $user_data[1], "", $assigned_link); $gc->delete_event($s, $bean->id, $tablename, $user_data, $bean, $add_notifications); #echo "<br>url ".$_REQUEST['delete_invite_url']; } } ////////// dmc290609 } } } }
/** * Creates the string for the user's events and todos between the given start * and end times * * @param UserBean $user_bean the current UserBean * @param DateTime $start_date_time the start date to search from * @param DateTime $end_date_time the end date to search to * @param string $dtstamp the current timestamp * @return string the entries for events and todos */ protected function createSugarIcal(&$user_bean, &$start_date_time, &$end_date_time, $dtstamp) { $str = ''; global $DO_USER_TIME_OFFSET, $sugar_config, $current_user, $timedate; $acts_arr = CalendarActivity::get_activities($user_bean->id, false, $start_date_time, $end_date_time, 'month'); $hide_calls = false; if (!empty($_REQUEST['hide_calls']) && $_REQUEST['hide_calls'] == "true") { $hide_calls = true; } // loop thru each activity, get start/end time in UTC, and return iCal strings foreach ($acts_arr as $act) { $event = $act->sugar_bean; if (!$hide_calls || $hide_calls && $event->object_name != "Call") { $str .= "BEGIN:VEVENT\n"; $str .= "SUMMARY:" . $event->name . "\n"; $str .= "DTSTART;TZID=" . $user_bean->getPreference('timezone') . ":" . str_replace("Z", "", $timedate->tzUser($act->start_time, $current_user)->format(self::UTC_FORMAT)) . "\n"; $str .= "DTEND;TZID=" . $user_bean->getPreference('timezone') . ":" . str_replace("Z", "", $timedate->tzUser($act->end_time, $current_user)->format(self::UTC_FORMAT)) . "\n"; $str .= "DTSTAMP:" . $dtstamp . "\n"; $str .= "DESCRIPTION:" . $this->escapeNls($event->description) . "\n"; $str .= "URL;VALUE=URI:" . $sugar_config['site_url'] . "/index.php?module=" . $event->module_dir . "&action=DetailView&record=" . $event->id . "\n"; $str .= "UID:" . $event->id . "\n"; if ($event->object_name == "Meeting") { $str .= "LOCATION:" . $event->location . "\n"; $eventUsers = $event->get_meeting_users(); $query = "SELECT contact_id as id from meetings_contacts where meeting_id='{$event->id}' AND deleted=0"; $eventContacts = $event->build_related_list($query, new Contact()); $eventAttendees = array_merge($eventUsers, $eventContacts); if (is_array($eventAttendees)) { foreach ($eventAttendees as $attendee) { if ($attendee->id != $user_bean->id) { $str .= 'ATTENDEE;CN="' . $attendee->get_summary_text() . '":mailto:' . $attendee->email1 . "\n"; } } } } if ($event->object_name == "Call") { $eventUsers = $event->get_call_users(); $eventContacts = $event->get_contacts(); $eventAttendees = array_merge($eventUsers, $eventContacts); if (is_array($eventAttendees)) { foreach ($eventAttendees as $attendee) { if ($attendee->id != $user_bean->id) { $str .= 'ATTENDEE;CN="' . $attendee->get_summary_text() . '":mailto:' . $attendee->email1 . "\n"; } } } } if ($event->reminder_time > 0 && $event->status != "Held") { $str .= "BEGIN:VALARM\n"; $str .= "TRIGGER:-PT" . $event->reminder_time / 60 . "M\n"; $str .= "ACTION:DISPLAY\n"; $str .= "DESCRIPTION:" . $event->name . "\n"; $str .= "END:VALARM\n"; } $str .= "END:VEVENT\n"; } } require_once 'include/TimeDate.php'; $timedate = new TimeDate(); $today = gmdate("Y-m-d"); $today = $timedate->handle_offset($today, $timedate->dbDayFormat, false); require_once 'modules/ProjectTask/ProjectTask.php'; $where = "project_task.assigned_user_id='{$user_bean->id}' " . "AND (project_task.status IS NULL OR (project_task.status!='Deferred')) " . "AND (project_task.date_start IS NULL OR project_task.date_start <= '{$today}')"; $seedProjectTask = new ProjectTask(); $projectTaskList = $seedProjectTask->get_full_list("", $where); if (is_array($projectTaskList)) { foreach ($projectTaskList as $projectTask) { $str .= $this->createSugarIcalTodo($user_bean, $projectTask, "ProjectTask", $dtstamp); } } require_once 'modules/Tasks/Task.php'; $where = "tasks.assigned_user_id='{$user_bean->id}' " . "AND (tasks.status IS NULL OR (tasks.status!='Deferred')) " . "AND (tasks.date_start IS NULL OR tasks.date_start <= '{$today}')"; $seedTask = new Task(); $taskList = $seedTask->get_full_list("", $where); if (is_array($taskList)) { foreach ($taskList as $task) { $str .= $this->createSugarIcalTodo($user_bean, $task, "Tasks", $dtstamp); } } return $str; }