[ Index ] |
|
Code source de vtiger CRM 5.0.2 |
1 <?php 2 /********************************************************************************* 3 ** The contents of this file are subject to the vtiger CRM Public License Version 1.0 4 * ("License"); You may not use this file except in compliance with the License 5 * The Original Code is: vtiger CRM Open Source 6 * The Initial Developer of the Original Code is vtiger. 7 * Portions created by vtiger are Copyright (C) vtiger. 8 * All Rights Reserved. 9 * 10 ********************************************************************************/ 11 require_once ('modules/Calendar/CalendarCommon.php'); 12 require_once ('include/utils/CommonUtils.php'); 13 require_once ('include/utils/UserInfoUtil.php'); 14 require_once ('include/database/PearDatabase.php'); 15 require_once ('modules/Calendar/Activity.php'); 16 class Appointment 17 { 18 var $start_time; 19 var $end_time; 20 var $subject; 21 var $participant; 22 var $participant_state; 23 var $contact_name; 24 var $account_id; 25 var $account_name; 26 var $creatorid; 27 var $creator; 28 var $owner; 29 var $ownerid; 30 var $assignedto; 31 var $eventstatus; 32 var $priority; 33 var $activity_type; 34 var $description; 35 var $record; 36 var $image_name; 37 var $formatted_datetime; 38 var $duration_min; 39 var $duration_hour; 40 var $shared = false; 41 42 function Appointment() 43 { 44 $this->participant = Array(); 45 $this->participant_state = Array(); 46 $this->description = ""; 47 } 48 49 /** To get the events of the specified user and shared events 50 * @param $userid -- The user Id:: Type integer 51 * @param $from_datetime -- The start date Obj :: Type Array 52 * @param $to_datetime -- The end date Obj :: Type Array 53 * @param $view -- The calendar view :: Type String 54 * @returns $list :: Type Array 55 */ 56 57 function readAppointment($userid, &$from_datetime, &$to_datetime, $view) 58 { 59 global $current_user,$adb; 60 require('user_privileges/user_privileges_'.$current_user->id.'.php'); 61 require('user_privileges/sharing_privileges_'.$current_user->id.'.php'); 62 $shared_ids = getSharedCalendarId($current_user->id); 63 $q= "select vtiger_activity.*, vtiger_crmentity.*, vtiger_activitygrouprelation.groupname FROM vtiger_activity inner join vtiger_crmentity on vtiger_activity.activityid = vtiger_crmentity.crmid left join vtiger_recurringevents on vtiger_activity.activityid=vtiger_recurringevents.activityid left outer join vtiger_activitygrouprelation on vtiger_activitygrouprelation.activityid=vtiger_activity.activityid left join vtiger_groups on vtiger_groups.groupname = vtiger_activitygrouprelation.groupname WHERE vtiger_crmentity.deleted = 0 and vtiger_activity.activitytype in ('Call','Meeting') AND (vtiger_activity.date_start < '". $to_datetime->get_formatted_date() ."' AND vtiger_activity.date_start >= '". $from_datetime->get_formatted_date()."') "; 64 if($is_admin==false && $profileGlobalPermission[1] == 1 && $profileGlobalPermission[2] == 1 && $defaultOrgSharingPermission[16] == 3) 65 { 66 $sec_parameter=getListViewSecurityParameter('Calendar'); 67 $q .= $sec_parameter; 68 } 69 70 $q .= " AND vtiger_recurringevents.activityid is NULL "; 71 $q .= " group by vtiger_activity.activityid ORDER by vtiger_activity.date_start,vtiger_activity.time_start"; 72 $r = $adb->query($q); 73 $n = $adb->getRowCount($r); 74 $a = 0; 75 $list = Array(); 76 while ( $a < $n ) 77 { 78 $obj = &new Appointment(); 79 $result = $adb->fetchByAssoc($r); 80 $obj->readResult($result, $view); 81 $a++; 82 $list[] = $obj; 83 unset($obj); 84 } 85 //Get Recurring events 86 $q = "SELECT vtiger_activity.activityid, vtiger_activity.subject, vtiger_activity.activitytype, vtiger_crmentity.description, vtiger_activity.time_start,vtiger_activity.time_end, vtiger_activity.duration_hours, vtiger_activity.duration_minutes,vtiger_activity.due_date, vtiger_activity.priority, vtiger_activity.location,vtiger_activity.eventstatus, vtiger_crmentity.*, vtiger_recurringevents.recurringid, vtiger_recurringevents.recurringdate as date_start ,vtiger_recurringevents.recurringtype,vtiger_activitygrouprelation.groupname from vtiger_activity inner join vtiger_crmentity on vtiger_activity.activityid = vtiger_crmentity.crmid inner join vtiger_recurringevents on vtiger_activity.activityid=vtiger_recurringevents.activityid left outer join vtiger_activitygrouprelation on vtiger_activitygrouprelation.activityid=vtiger_activity.activityid left join vtiger_groups on vtiger_groups.groupname = vtiger_activitygrouprelation.groupname "; 87 88 $q.=" where vtiger_crmentity.deleted = 0 and vtiger_activity.activitytype in ('Call','Meeting') AND (recurringdate < '".$to_datetime->get_formatted_date()."' AND recurringdate >= '".$from_datetime->get_formatted_date(). "') "; 89 90 if($is_admin==false && $profileGlobalPermission[1] == 1 && $profileGlobalPermission[2] == 1 && $defaultOrgSharingPermission[16] == 3) 91 { 92 $sec_parameter=getListViewSecurityParameter('Calendar'); 93 $q .= $sec_parameter; 94 } 95 96 $q .= " ORDER by vtiger_recurringevents.recurringid"; 97 $r = $adb->query($q); 98 $n = $adb->getRowCount($r); 99 $a = 0; 100 while ( $a < $n ) 101 { 102 $obj = &new Appointment(); 103 $result = $adb->fetchByAssoc($r); 104 $obj->readResult($result,$view); 105 $a++; 106 $list[] = $obj; 107 unset($obj); 108 } 109 110 111 usort($list,'compare'); 112 return $list; 113 } 114 115 116 /** To read and set the events value in Appointment Obj 117 * @param $act_array -- The vtiger_activity array :: Type Array 118 * @param $view -- The calendar view :: Type String 119 */ 120 function readResult($act_array, $view) 121 { 122 global $adb,$current_user; 123 $format_sthour=''; 124 $format_stmin=''; 125 $this->description = $act_array["description"]; 126 //$this->account_name = $act_array["accountname"]; 127 //$this->account_id = $act_array["accountid"]; 128 $this->eventstatus = $act_array["eventstatus"]; 129 $this->priority = $act_array["priority"]; 130 $this->subject = $act_array["subject"]; 131 $this->activity_type = $act_array["activitytype"]; 132 $this->duration_hour = $act_array["duration_hours"]; 133 $this->duration_minute = $act_array["duration_minutes"]; 134 $this->creatorid = $act_array["smcreatorid"]; 135 $this->creator = getUserName($act_array["smcreatorid"]); 136 if($act_array["smownerid"]==0) 137 { 138 $this->assignedto ="group"; 139 $this->owner = $act_array["groupname"]; 140 } 141 else 142 { 143 $this->assignedto ="user"; 144 $this->ownerid = $act_array["smownerid"]; 145 if(!is_admin($current_user)) 146 { 147 if($act_array["smownerid"] != $current_user->id) 148 $this->shared = true; 149 } 150 $this->owner = getUserName($act_array["smownerid"]); 151 $query="SELECT cal_color FROM vtiger_users where id = ".$this->ownerid; 152 $result=$adb->query($query); 153 if($adb->getRowCount($result)!=0) 154 { 155 $res = $adb->fetchByAssoc($result, -1, false); 156 $this->color = $res['cal_color']; 157 } 158 } 159 if($act_array["activitytype"] == 'Call') 160 { 161 $this->image_name = 'Call.gif'; 162 } 163 if($act_array["activitytype"] == 'Meeting') 164 { 165 $this->image_name = 'Meeting.gif'; 166 } 167 $this->record = $act_array["activityid"]; 168 list($styear,$stmonth,$stday) = explode("-",$act_array["date_start"]); 169 if($act_array["time_start"] != null) 170 { 171 list($st_hour,$st_min,$st_sec) = split(":",$act_array["time_start"]); 172 if($st_hour <= 9 && strlen(trim($st_hour)) < 2) 173 { 174 $format_sthour= '0'.$st_hour; 175 } 176 else 177 { 178 $format_sthour= $st_hour; 179 } 180 if($st_min <= 9 && strlen(trim($st_min)) < 2) 181 { 182 $format_stmin= '0'.$st_min; 183 } 184 else 185 { 186 $format_stmin = $st_min; 187 } 188 $st_hour= $format_sthour; 189 } 190 else 191 { 192 $st_hour = 'notime'; 193 $format_stmin = '00'; 194 $format_sthour= '00'; 195 } 196 list($eyear,$emonth,$eday) = explode("-",$act_array["due_date"]); 197 if($act_array["time_end"] != '') 198 { 199 list($end_hour,$end_min,$end_sec) = split(":",$act_array["time_end"]); 200 if($end_hour <= 9 && strlen(trim($end_hour)) < 2) 201 { 202 $format_endhour= '0'.$end_hour; 203 } 204 else 205 { 206 $format_endhour= $end_hour; 207 } 208 if($end_min <= 9 && strlen(trim($end_min)) < 2) 209 { 210 $format_endmin= '0'.$end_min; 211 } 212 else 213 { 214 $format_endmin = $end_min; 215 } 216 $end_hour= $format_endhour; 217 } 218 else 219 { 220 $end_min = '50'; 221 $end_hour= '23'; 222 } 223 224 $start_date_arr = Array( 225 'min' => $format_stmin, 226 'hour' => $format_sthour, 227 'day' => $stday, 228 'month' => $stmonth, 229 'year' => $styear 230 ); 231 $end_date_arr = Array( 232 'min' => $end_min, 233 'hour' => $end_hour, 234 'day' => $eday, 235 'month' => $emonth, 236 'year' => $eyear 237 ); 238 $this->start_time = new DateTime($start_date_arr,true); 239 $this->end_time = new DateTime($end_date_arr,true); 240 if($view == 'day' || $view == 'week') 241 { 242 $this->formatted_datetime= $act_array["date_start"].":".$st_hour; 243 } 244 elseif($view == 'year') 245 { 246 list($year,$month,$date) = explode("-",$act_array["date_start"]); 247 $this->formatted_datetime = $month; 248 } 249 else 250 { 251 $this->formatted_datetime= $act_array["date_start"]; 252 } 253 return; 254 } 255 256 257 } 258 259 /** To two array values 260 * @param $a -- The vtiger_activity array :: Type Array 261 * @param $b -- The vtiger_activity array :: Type Array 262 * @returns value 0 or 1 or -1 depends on comparision result 263 */ 264 function compare($a,$b) 265 { 266 if ($a->start_time->ts == $b->start_time->ts) 267 { 268 return 0; 269 } 270 return ($a->start_time->ts < $b->start_time->ts) ? -1 : 1; 271 } 272 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 10:22:19 2007 | par Balluche grâce à PHPXref 0.7 |