/** * Repeat Activity instance till given limit. */ static function repeat($focus) { global $log; $repeat = getrecurringObjValue(); $frequency = $repeat->recur_freq; $repeattype = $repeat->recur_type; $base_focus = new Activity(); $base_focus->retrieve_entity_info($focus->id, 'Events'); $base_focus->id = $_REQUEST['record']; $base_focus_start = $base_focus->column_fields['date_start'] . ' ' . $base_focus->column_fields['time_start']; $base_focus_end = $base_focus->column_fields['due_date'] . ' ' . $base_focus->column_fields['time_end']; $repeat_limit = getDBInsertDateValue($_REQUEST['calendar_repeat_limit_date']) . ' ' . $base_focus->column_fields['time_start']; $repeatIntervals = self::getRepeatInterval($repeattype, $frequency, $repeat, $base_focus_start, $repeat_limit); $base_focus_start = self::mktime($base_focus_start); $base_focus_end = self::mktime($base_focus_end); $skip_focus_fields = array('record_id', 'createdtime', 'modifiedtime', 'recurringtype'); /** Create instance before and reuse */ $new_focus = new Activity(); foreach ($repeatIntervals as $interval) { $new_focus_start_timing = self::nexttime($base_focus_start, "+{$interval} days"); $new_focus_start_timing = self::splittime(self::formattime($new_focus_start_timing)); $new_focus_end_timing = self::nexttime($base_focus_end, "+{$interval} days"); $new_focus_end_timing = self::splittime(self::formattime($new_focus_end_timing)); // Reset the new_focus and prepare for reuse if (isset($new_focus->id)) { unset($new_focus->id); } foreach ($new_focus->column_fields as $key => $value) { $new_focus->column_fields[$key] = ''; } foreach ($base_focus->column_fields as $key => $value) { if (in_array($key, $skip_focus_fields)) { // skip copying few fields } else { if ($key == 'date_start') { $new_focus->column_fields['date_start'] = $new_focus_start_timing[0]; } else { if ($key == 'time_start') { $new_focus->column_fields['time_start'] = $new_focus_start_timing[1]; } else { if ($key == 'time_end') { $new_focus->column_fields['time_end'] = $new_focus_end_timing[1]; } else { if ($key == 'due_date') { $new_focus->column_fields['due_date'] = $new_focus_end_timing[0]; } else { $new_focus->column_fields[$key] = $value; } } } } } } $new_focus->save('Calendar'); } }
function UpdateClndr($username, $session, $clndrdtls) { if (!validateSession($username, $session)) { return null; } global $current_user; global $adb, $log; require_once 'modules/Users/Users.php'; require_once 'modules/Calendar/Activity.php'; $seed_user = new Users(); $user_id = $seed_user->retrieve_user_id($username); $current_user = $seed_user; $current_user->retrieve_entity_info($user_id, "Users"); require 'user_privileges/user_privileges_' . $current_user->id . '.php'; require 'user_privileges/sharing_privileges_' . $current_user->id . '.php'; if ($is_admin == true || $profileGlobalPermission[1] == 0 || $profileGlobalPermission[2] == 0) { $sql1 = "select fieldname,columnname from vtiger_field where tabid=16 and vtiger_field.presence in (0,2)"; $params1 = array(); } else { $profileList = getCurrentUserProfileList(); $sql1 = "select fieldname,columnname from vtiger_field inner join vtiger_profile2field on vtiger_profile2field.fieldid=vtiger_field.fieldid inner join vtiger_def_org_field on vtiger_def_org_field.fieldid=vtiger_field.fieldid where vtiger_field.tabid=16 and vtiger_field.displaytype in (1,2,4,3) and vtiger_profile2field.visible=0 and vtiger_def_org_field.visible=0 and vtiger_field.presence in (0,2)"; $params1 = array(); if (count($profileList) > 0) { $sql1 .= " and vtiger_profile2field.profileid in (" . generateQuestionMarks($profileList) . ")"; array_push($params1, $profileList); } } $result1 = $adb->pquery($sql1, $params1); for ($i = 0; $i < $adb->num_rows($result1); $i++) { $permitted_lists[] = $adb->query_result($result1, $i, 'fieldname'); } $clndr = new Activity(); foreach ($clndrdtls as $clndrow) { if (isset($clndrow)) { $astartdtm = explode(" ", $clndrow["startdate"]); $aduedtm = explode(" ", $clndrow["duedate"]); $atimestart = explode(":", trim($astartdtm[1])); $atimedue = explode(":", trim($aduedtm[1])); $stimestart = $atimestart[0] . ":" . $atimestart[1]; $stimeend = $atimedue[0] . ":" . $atimedue[1]; /*if( $diff=@get_time_difference($stimestart, $stimeend) ) { $stimeduehr = sprintf('%02d',$diff['hours']); $stimeduemin = sprintf('%02d',$diff['minutes']); }*/ $clndr->retrieve_entity_info($clndrow["id"], "Calendar"); $clndr->column_fields[subject] = in_array('subject', $permitted_lists) ? $clndrow["subject"] : ""; $clndr->column_fields[date_start] = in_array('date_start', $permitted_lists) ? getDisplayDate(trim($astartdtm[0])) : ""; $clndr->column_fields[due_date] = in_array('due_date', $permitted_lists) ? getDisplayDate(trim($aduedtm[0])) : ""; $clndr->column_fields[time_start] = in_array('time_start', $permitted_lists) ? $stimestart : ""; $clndr->column_fields[time_end] = in_array('time_end', $permitted_lists) ? $stimeend : ""; //$clndr->column_fields[duration_hours]= in_array('duration_hours',$permitted_lists) ? $stimeduehr : ""; //$clndr->column_fields[duration_minutes]= in_array('duration_minutes',$permitted_lists) ? $stimeduemin : ""; $clndr->column_fields[location] = in_array('location', $permitted_lists) ? $clndrow["location"] : ""; $clndr->column_fields[description] = in_array('description', $permitted_lists) ? $clndrow["description"] : ""; $clndr->column_fields[activitytype] = "Meeting"; $clndr->column_fields[assigned_user_id] = in_array('assigned_user_id', $permitted_lists) ? $user_id : ""; $clndr->id = $clndrow["id"]; $clndr->mode = "edit"; $clndr->save("Calendar"); } } return $clndr->id; }
$activity_mode = getEventActivityMode($record); } $tab_type = 'Calendar'; if ($activity_mode == 'Events') { $tab_type = 'Events'; } $search = vtlib_purify($_REQUEST['search_url']); $focus->column_fields["activitytype"] = 'Task'; if (isset($record)) { $focus->id = $_REQUEST['record']; $local_log->debug("id is " . $id); } if ($_REQUEST['mode'] == "event_drop" || $_REQUEST['mode'] == "event_resize") { $activityid = $focus->id; if (isPermitted("Calendar", "EditView", $activityid) == 'yes') { $focus->retrieve_entity_info($focus->id, $tab_type); $focus->mode = "edit"; $day_drop = $_REQUEST['day']; $minute_drop = $_REQUEST['minute']; $Act = $focus->column_fields; foreach ($focus->column_fields as $fieldname => $val) { $focus->column_fields[$fieldname] = decode_html($focus->column_fields[$fieldname]); } if ($day_drop > 0) { $d = "+"; } else { $d = "-"; } if ($minute_drop > 0) { $m = "+"; } else {