You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							409 lines
						
					
					
						
							16 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							409 lines
						
					
					
						
							16 KiB
						
					
					
				| <?php | |
| /********************************************************************************* | |
| ** The contents of this file are subject to the vtiger CRM Public License Version 1.0 | |
|  * ("License"); You may not use this file except in compliance with the License | |
|  * The Original Code is:  vtiger CRM Open Source | |
|  * The Initial Developer of the Original Code is vtiger. | |
|  * Portions created by vtiger are Copyright (C) vtiger. | |
|  * All Rights Reserved. | |
| * | |
|  ********************************************************************************/ | |
| 
 | |
| require_once('include/RelatedListView.php'); | |
| require_once('modules/Contacts/Contact.php'); | |
| require_once('modules/Products/Product.php'); | |
| require_once('modules/Users/UserInfoUtil.php'); | |
| //$availbale_images_path="include/images/"; | |
|  | |
| function getHiddenValues($id) | |
| {   | |
|   $hidden .= '<form border="0" action="index.php" method="post" name="form" id="form">'; | |
|   $hidden .= '<input type="hidden" name="module">'; | |
|   $hidden .= '<input type="hidden" name="mode">'; | |
|   $hidden .= '<input type="hidden" name="activity_mode" value="Events">'; | |
|   $hidden .= '<input type="hidden" name="return_module" value="Activities">'; | |
|   $hidden .= '<input type="hidden" name="return_action" value="DetailView">'; | |
|   $hidden .= '<input type="hidden" name="return_id" value="'.$id.'">'; | |
|   $hidden .= '<input type="hidden" name="parent_id" value="'.$id.'">'; | |
|   $hidden .= '<input type="hidden" name="action">'; | |
|   return $hidden; | |
| } | |
| 
 | |
| function renderRelatedContacts($query,$id) | |
| { | |
|         global $mod_strings; | |
|         global $app_strings; | |
| 
 | |
|         $hidden = getHiddenValues($id); | |
|         echo $hidden; | |
| 
 | |
|         $focus = new Contact(); | |
| 	 | |
| 	$button = ''; | |
| 
 | |
|         if(isPermitted("Contacts",3,"") == 'yes') | |
|         { | |
| 		$button .= '<input title="Change" accessKey="" tabindex="2" type="button" class="button" value="'.$app_strings['LBL_SELECT_CONTACT_BUTTON_LABEL'].'" name="Button" LANGUAGE=javascript onclick=\'return window.open("index.php?module=Contacts&return_module=Activities&action=Popup&popuptype=detailview&form=EditView&form_submit=false&recordid='.$_REQUEST["record"].'","test","width=600,height=400,resizable=1,scrollbars=1");\'> '; | |
| 	} | |
| 	$returnset = '&return_module=Activities&return_action=DetailView&activity_mode=Events&return_id='.$id; | |
| 
 | |
| 	$list = GetRelatedList('Activities','Contacts',$focus,$query,$button,$returnset); | |
| 	echo '</form>';	 | |
| } | |
| 
 | |
| function renderRelatedProducts($query,$id) | |
| { | |
| 	global $mod_strings; | |
| 	global $app_strings; | |
| 	 | |
| 	$hidden = getHiddenValues($id); | |
|         echo $hidden; | |
| 
 | |
| 	$focus = new Product(); | |
|   | |
| 	$button = ''; | |
| 
 | |
|         if(isPermitted("Products",3,"") == 'yes') | |
|         {  | |
| 		$button .= '<input title="Change" accessKey="" tabindex="2" type="button" class="button" value="'.$app_strings['LBL_SELECT_PRODUCT_BUTTON_LABEL'].'" name="Button" LANGUAGE=javascript onclick=\'return window.open("index.php?module=Products&action=Popup&return_module=Activities&popuptype=detailview&form=EditView&form_submit=false&recordid='.$_REQUEST["record"].'","test","width=600,height=400,resizable=1,scrollbars=1");\'> '; | |
| 	} | |
| 	$returnset = '&return_module=Activities&return_action=DetailView&activity_mode=Events&return_id='.$id; | |
| 
 | |
| 	$list = GetRelatedList('Activities','Products',$focus,$query,$button,$returnset); | |
| 	echo '</form>'; | |
| } | |
| // functions added for group calendar	-Jaguar | |
| 	function get_duration($time_start,$duration_hours,$duration_minutes) | |
| 	{ | |
| 		$time=explode(":",$time_start); | |
|                 $time_mins = $time[1]; | |
|                 $time_hrs = $time[0]; | |
|                 $mins = ($time_mins + $duration_minutes) % 60; | |
|                 $hrs_min = floor(($time_mins + $duration_minutes) / 60); | |
|                 if(!isset($hrs)) | |
|                         $hrs=0; | |
| 		$hrs = $duration_hours + $hrs_min + $time_hrs; | |
| 		if($hrs<10) | |
| 			$hrs=$hrs; | |
| 		if($mins<10) | |
| 			$mins="0".$mins;	 | |
| 
 | |
| 		$end_time = $hrs .$mins; | |
| 		return $end_time; | |
| 	}	 | |
| 
 | |
| 	function time_to_number($time_start) | |
| 	{ | |
| 		$start_time_array = explode(":",$time_start); | |
| 		if(ereg("^[0]",$start_time_array[0])) | |
| 		{ | |
| 			$time_start_hrs=str_replace('0',"",$start_time_array[0]); | |
| 		} | |
| 		else | |
| 		{ | |
| 			$time_start_hrs=$start_time_array[0]; | |
| 		} | |
| 		$start_time= $time_start_hrs .$start_time_array[1]; | |
| 
 | |
| 		return $start_time; | |
| 	} | |
| 
 | |
| 	function status_availability($owner,$userid,$activity_id,$avail_date,$activity_start_time,$activity_end_time)	 | |
| 	{ | |
| 		global $adb,$image_path,$vtlog; | |
| 		$avail_flag="false"; | |
| 		if( $owner != $userid) | |
| 		{ | |
| 			 | |
| 			$usr_query="select activityid,activity.date_start,activity.due_date, activity.time_start,activity.duration_hours,activity.duration_minutes,crmentity.smownerid from activity,crmentity where crmentity.crmid=activity.activityid and ('".$avail_date."' like date_start) and crmentity.smownerid=".$userid." and activity.activityid !=".$activity_id." group by crmid;"; | |
| 		} | |
| 		else | |
| 		{ | |
| 			$usr_query="select activityid,activity.date_start,activity.due_date, activity.time_start,activity.duration_hours,activity.duration_minutes,crmentity.smownerid from activity,crmentity where crmentity.crmid=activity.activityid and ('".$avail_date."' like date_start) and crmentity.smownerid=".$userid." and activity.activityid !=".$activity_id." group by crmid;"; | |
| 		} | |
| 		$result_cal=$adb->query($usr_query);    | |
| 		$noofrows_cal = $adb->num_rows($result_cal); | |
| 		$avail_flag="false"; | |
| 
 | |
| 		if($noofrows_cal!=0) | |
| 		{ | |
| 			while($row_cal = $adb->fetch_array($result_cal))  | |
| 			{ | |
| 				$usr_date_start=$row_cal['date_start']; | |
| 				$usr_due_date=$row_cal['due_date']; | |
| 				$usr_time_start=$row_cal['time_start']; | |
| 				$usr_hour_dur=$row_cal['duration_hours']; | |
| 				$usr_mins_dur=$row_cal['duration_minutes']; | |
| 				$user_start_time=time_to_number($usr_time_start);	 | |
| 				$user_end_time=get_duration($usr_time_start,$usr_hour_dur,$usr_mins_dur); | |
| 
 | |
| 				if( ( ($user_start_time > $activity_start_time) && ( $user_start_time < $activity_end_time) ) || ( ( $user_end_time > $activity_start_time) && ( $user_end_time < $activity_end_time) ) || ( ( $activity_start_time == $user_start_time ) || ($activity_end_time == $user_end_time) ) ) | |
| 				{ | |
| 					$availability= 'busy'; | |
| 					$avail_flag="true"; | |
| 					$vtlog->logthis("user start time-- ".$user_start_time."user end time".$user_end_time,'info'); | |
| 					$vtlog->logthis("Availability ".$availability,'info'); | |
| 				} | |
| 			} | |
| 		} | |
| 	 	if($avail_flag == "true") | |
|                 { | |
|                         $availability=' <IMG SRC="'.$image_path.'/busy.gif">'; | |
|                 } | |
|                 else | |
|                 { | |
|                         $availability=' <IMG SRC="'.$image_path.'/free.gif">'; | |
|                 } | |
| 		return $availability; | |
| 		 | |
| 	} | |
| 
 | |
| // | |
|  | |
| function renderRelatedUsers($query,$id) | |
| { | |
| 	 | |
| 
 | |
|   global $theme; | |
|   $theme_path="themes/".$theme."/"; | |
|   $image_path=$theme_path."images/"; | |
|   require_once ($theme_path."layout_utils.php"); | |
|   $activity_id=$id; | |
|   global $adb,$vtlog; | |
|   global $mod_strings; | |
|   global $app_strings; | |
| 
 | |
|   $result=$adb->query($query);    | |
| 
 | |
|   $list .= '<br><br>'; | |
|   $list .= '<table width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr>'; | |
| 
 | |
|   $hidden = getHiddenValues($id); | |
|   echo $hidden; | |
|    | |
|   $list .= '<td>'; | |
|   $list .= '<table cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="formHeader" vAlign="top" align="left" height="20"> <img src="' .$image_path. '/left_arc.gif" border="0"></td><td class="formHeader" vAlign="middle" background="' . $image_path. '/header_tile.gif" align="left" noWrap height="20">'.$app_strings['LBL_USER_TITLE'].'</td><td  class="formHeader" vAlign="top" align="right" height="20"><img src="' .$image_path. '/right_arc.gif" border="0"></td> '; | |
|   $list .= '<td> </td>'; | |
| //  $list .= '<td> </td>'; | |
| //  $list .= '<td valign="bottom" align="right"><input title="Attach File" accessyKey="F" class="button" onclick="this.form.action.value=\'EditView\';this.form.module.value=\'Users\'" type="submit" name="button" value="'.$mod_strings['LBL_NEW_USER'].'"> </td>'; | |
|   $list .= '<td valign="bottom" align="left"><input title="Change" accessKey="" tabindex="2" type="button" class="button" value="'.$app_strings['LBL_SELECT_USER_BUTTON_LABEL'].'" name="Button" LANGUAGE=javascript onclick=\'return window.open("index.php?module=Users&return_module=Activities&return_action=DetailView&activity_mode=Events&action=Popup&popuptype=detailview&form=EditView&form_submit=true&return_id='.$_REQUEST["record"].'&recordid='.$_REQUEST["record"].'","test","width=600,height=400,resizable=1,scrollbars=1");\'> </td>'; | |
| 
 | |
|   $list .= '</td></tr></form></tbody></table>'; | |
| 
 | |
|   $list .= '<table border="0" cellpadding="0" cellspacing="0" class="formHeaderULine" width="100%">'; | |
|   $list .= '<tr height=1><td height=1></td></tr></table>'; | |
| 
 | |
|   $list .= '<table border="0" cellpadding="0" cellspacing="0" class="FormBorder" width="100%">'; | |
|   $list .= '<tr class="ModuleListTitle" height=20>'; | |
| 
 | |
|   $list .= '<td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
|   $list .= '<td class="moduleListTitle">'; | |
| 
 | |
|   $list .= $app_strings['LBL_LIST_NAME'].'</td>'; | |
|   $list .= '<td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
|   $list .= '<td class="moduleListTitle">'; | |
| 
 | |
|   $list .= $app_strings['LBL_LIST_USER_NAME'].'</td>'; | |
|   $list .= '<td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
|   $list .= '<td class="moduleListTitle">'; | |
| 
 | |
|   $list .= $app_strings['LBL_EMAIL'].'</td>'; | |
|   $list .= '<td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
|   $list .= '<td class="moduleListTitle">'; | |
| 
 | |
|   $list .= $app_strings['LBL_PHONE'].'</td>'; | |
|   $list .= '<td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
|   $list .= '<td class="moduleListTitle" height="21">'; | |
| 
 | |
|   $list .= $app_strings['LBL_ACTION'].'</td>'; | |
|   $list .= '<td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
|   $list .= '<td class="moduleListTitle">'; | |
| 
 | |
|  // $list .= $app_strings['LBL_AVAILABLE'].'</td>'; | |
|   //$list .= '<td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
|   //$list .= '<td class="moduleListTitle">';	 | |
|  | |
|   // To display the dates for the Group calendar starts -Jaguar | |
| 	$recur_dates_qry='select distinct(recurringdate) from recurringevents where activityid='.$activity_id; | |
| 	$recur_result=$adb->query($recur_dates_qry); | |
| 	$noofrows_recur = $adb->num_rows($recur_result); | |
| 	if($noofrows_recur==0) | |
| 	{ | |
| 		$recur_dates_qry='select activity.date_start,recurringevents.* from activity left outer join recurringevents on activity.activityid=recurringevents.activityid where recurringevents.activityid is NULL and activity.activityid='.$activity_id .' group by activity.activityid'; | |
| 		$recur_result=$adb->query($recur_dates_qry); | |
| 		$noofrows_recur = $adb->num_rows($recur_result); | |
| 
 | |
| 	} | |
| 
 | |
| 	 | |
| 	$recur_table="<table border=0 cellspacing=0 cellpadding=2> | |
| 		     <tr><td colspan=".$noofrows_recur." align=center>".$app_strings['LBL_AVAILABLE']."</td></tr>"; | |
| 	if($noofrows_recur !=0) | |
| 	{ | |
| 		while($row_recur = $adb->fetch_array($recur_result)) | |
|                 { | |
| 			global $current_user; | |
| 			$dat_fmt = $current_user->date_format; | |
| 			if($dat_fmt == 'yyyy-mm-dd' || $dat_fmt == 'mm-dd-yyyy') | |
| 			{ | |
| 				$date_display="m/d"; | |
| 			} | |
| 			else if($dat_fmt == 'dd-mm-yyyy') | |
| 			{ | |
| 				$date_display="d/m"; | |
| 			} | |
| 
 | |
| 			$recur_dates=$row_recur['recurringdate']; | |
| 			if($recur_dates=="") | |
| 			{ | |
| 				$recur_dates=$row_recur['date_start']; | |
| 			} | |
| 
 | |
| 			$st=explode("-",$recur_dates); | |
| 			$date_val = date($date_display,mktime(0,0,0,date("$st[1]"),(date("$st[2]")),date("$st[0]"))); | |
| 			$recur_table.="<td>$date_val</td> "; | |
|                 } | |
| 		$recur_table.="</tr>"; | |
| 	} | |
| 	$recur_table.="</table>"; | |
| 	$list .= $recur_table; | |
|   	// To display the dates for the Group calendar Ends -Jaguar | |
| 	$list .= '</td><td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
| 	$list .= '<td class="moduleListTitle">'; | |
| 
 | |
|   $list .= '</td>'; | |
|   $list .= '</tr>'; | |
|   $list .= '<tr><td COLSPAN="10" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif"></td></tr>'; | |
| 
 | |
|   $i=1; | |
| 
 | |
| 
 | |
|   while($row = $adb->fetch_array($result)) | |
|   { | |
| 	 | |
|     global $current_user; | |
| 
 | |
|     if ($i%2==0) | |
|       $trowclass = 'evenListRow'; | |
|     else | |
|       $trowclass = 'oddListRow'; | |
|     $list .= '<tr class="'. $trowclass.'">'; | |
| 
 | |
|     $list .= '<td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
|     if(is_admin($current_user)) | |
|     { | |
|     	$list .= '<td width="30%"><a href="index.php?module=Users&action=DetailView&return_module=Activities&return_action=DetailView&record='.$row["id"].'&return_id='.$_REQUEST['record'].'">'.$row['last_name'].' '.$row['first_name'].'</td>'; | |
|     } | |
|     else | |
|     { | |
|     	$list .= '<td width="30%">'.$row['last_name'].' '.$row['first_name'].'</td>'; | |
|     }	 | |
| 
 | |
|     $list .= '<td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
|     $list .= '<td width="20%" height="21" style="padding:0px 3px 0px 3px;">'; | |
|     $list .= $row['user_name']; | |
| 
 | |
| 	$email = $row['email1']; | |
| 	if($email == '')	$email = $row['email2']; | |
| 	if($email == '')	$email = $row['yahoo_id']; | |
| 
 | |
|     $list .= '<td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
|     $list .= '<td width="20%" height="21" style="padding:0px 3px 0px 3px;">'; | |
|     $list .= '<a href=mailto:'.$email.'>'.$email.'</a>'; | |
| 
 | |
| 	$phone = $row['phone_home']; | |
| 	if($phone == '')	$phone = $row['phone_work']; | |
|         if($phone == '')        $phone = $row['phone_other']; | |
|         if($phone == '')	$phone = $row['phone_fax']; | |
| 
 | |
|     $list .= '<td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
|     $list .= '<td width="20%" height="21" style="padding:0px 3px 0px 3px;">'; | |
|     $list .= $phone; | |
| 
 | |
|     $list .= '</td>'; | |
| 
 | |
|     $list .= '<td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
|     $list .= '<td width="10%" height="21" style="padding:0px 3px 0px 3px;">'; | |
|     if(is_admin($current_user)) | |
|     {		 | |
|     $list .= '<a href="index.php?module=Users&action=EditView&return_module=Activities&return_action=DetailView&activity_mode=Events&record='.$row["id"].'&return_id='.$_REQUEST['record'].'">'.$app_strings['LNK_EDIT'].'</a>  | '; | |
|     } | |
| 
 | |
|     $list .= '<a href="index.php?module=Users&action=Delete&return_module=Activities&return_action=DetailView&activity_mode=Events&record='.$row["id"].'&return_id='.$_REQUEST['record'].'">'.$app_strings['LNK_DELETE'].'</a>'; | |
| 
 | |
| 	//Added for Group Calendar -Jaguar | |
| 	 | |
| 
 | |
|         $list .= '</td><td WIDTH="1" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif">'; | |
| 	$list .= '<td width="20%" height="21" style="padding:0px 3px 0px 3px;" nowrap>'; | |
| 
 | |
| 	//$act_date_start=$row['date_start']; | |
| 	//$act_due_date=$row['due_date']; | |
| 	$act_date_start= getDBInsertDateValue($row['date_start']); //getting the Date format - Jaguar | |
| 	$act_due_date= getDBInsertDateValue($row['due_date']); | |
| 
 | |
| 	$act_time_start=$row['time_start']; | |
| 	$act_hour_dur=$row['duration_hours']; | |
| 	$act_mins_dur=$row['duration_minutes']; | |
| 
 | |
| 	$activity_start_time=time_to_number($act_time_start);	 | |
| 	$activity_end_time=get_duration($act_time_start,$act_hour_dur,$act_mins_dur);	 | |
| 
 | |
| 	$activity_owner_qry='select users.user_name,users.id  userid from users,crmentity where users.id=crmentity.smownerid and crmentity.crmid='.$id; | |
| 	$result_owner=$adb->query($activity_owner_qry); | |
| 
 | |
|         while($row_owner = $adb->fetch_array($result_owner)) | |
|         { | |
| 		$owner=$row_owner['userid']; | |
| 	} | |
| 	 | |
| 	$recur_dates_qry='select recurringdate from recurringevents where activityid ='.$activity_id; | |
| 	$recur_result=$adb->query($recur_dates_qry); | |
| 	$noofrows_recur = $adb->num_rows($recur_result); | |
| 	$userid=$row['id']; | |
| 	if($noofrows_recur !=0) | |
| 	{ | |
| 		$avail_table="<table border=0 cellspacing=0 cellpadding=0 width='100%'>"; | |
| 		$avail_table.="<tr>"; | |
| 		while($row_recur = $adb->fetch_array($recur_result)) | |
| 		{ | |
| 			$recur_dates=$row_recur['recurringdate']; | |
| 			$availability=status_availability($owner,$userid,$activity_id,$recur_dates,$activity_start_time,$activity_end_time);	 | |
| 			$vtlog->logthis("activity start time ".$activity_start_time."activity end time".$activity_end_time."Available date".$recur_dates,'info'); | |
| 			$avail_table.="<td>$availability</td>"; | |
| 			//$list .= $availability; | |
| 			 | |
| 		} | |
| 		$avail_table.="</tr>"; | |
| 		$avail_table.="</table>"; | |
| 	       $list .= $avail_table; | |
| 	} | |
| 	else | |
| 	{ | |
| 		$recur_dates=$act_date_start; | |
| 		$availability=status_availability($owner,$userid,$activity_id,$recur_dates,$activity_start_time,$activity_end_time);	 | |
| 		$vtlog->logthis("activity start time ".$activity_start_time."activity end time".$activity_end_time."Available  date".$recur_dates,'info'); | |
| 		$list .= $availability; | |
| 	} | |
| 	// Group Calendar coding	 | |
| 	$list .= '</td>';	 | |
| 		 | |
| 	 | |
| 
 | |
|     $list .= '</tr>'; | |
|     $i++; | |
|   } | |
| 
 | |
|   $list .= '<tr><td COLSPAN="10" class="blackLine"><IMG SRC="themes/'.$theme.'/images/blank.gif"></td></tr>'; | |
|   $list .= '</table>'; | |
|   $list .= '</td></tr></table>'; | |
| 
 | |
|   echo $list; | |
| 
 | |
|   echo "<BR>\n"; | |
| } | |
| 
 | |
| echo get_form_footer(); | |
| 
 | |
| 
 | |
| ?>
 | |
| 
 |