[ Index ]
 

Code source de vtiger CRM 5.0.2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/modules/Calendar/ -> Appointment.php (source)

   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  ?>


Généré le : Sun Feb 25 10:22:19 2007 par Balluche grâce à PHPXref 0.7