874 lines
35 KiB
PHP
874 lines
35 KiB
PHP
|
|
<?
|
||
|
|
global $timedate;
|
||
|
|
global $current_user;
|
||
|
|
global $mod_strings;
|
||
|
|
class Calendar
|
||
|
|
{
|
||
|
|
var $day_name=array();
|
||
|
|
var $day_name_short=array();
|
||
|
|
|
||
|
|
var $year;
|
||
|
|
var $month;
|
||
|
|
var $day;
|
||
|
|
|
||
|
|
var $act_status;
|
||
|
|
var $act_user;
|
||
|
|
var $act_type;
|
||
|
|
|
||
|
|
var $box_width=150;
|
||
|
|
var $hour_height=60;
|
||
|
|
var $hour_label_height=20;
|
||
|
|
|
||
|
|
function Calendar()
|
||
|
|
{
|
||
|
|
require_once("modules/EcmCalendars/language/en_us.lang.php");
|
||
|
|
$this->day_name[0]=$GLOBALS['mod_strings']['LBL_MONDAY'];
|
||
|
|
$this->day_name[1]=$GLOBALS['mod_strings']['LBL_TUESDAY'];
|
||
|
|
$this->day_name[2]=$GLOBALS['mod_strings']['LBL_WEDNESDAY'];
|
||
|
|
$this->day_name[3]=$GLOBALS['mod_strings']['LBL_THURSDAY'];
|
||
|
|
$this->day_name[4]=$GLOBALS['mod_strings']['LBL_FRIDAY'];
|
||
|
|
$this->day_name[5]=$GLOBALS['mod_strings']['LBL_SATURDAY'];
|
||
|
|
$this->day_name[6]=$GLOBALS['mod_strings']['LBL_SUNDAY'];
|
||
|
|
//print_r($this->day_name);
|
||
|
|
$this->day_name_short[0]=$GLOBALS['mod_strings']['LBL_SHORT_MONDAY'];
|
||
|
|
$this->day_name_short[1]=$GLOBALS['mod_strings']['LBL_SHORT_TUESDAY'];
|
||
|
|
$this->day_name_short[2]=$GLOBALS['mod_strings']['LBL_SHORT_WEDNESDAY'];
|
||
|
|
$this->day_name_short[3]=$GLOBALS['mod_strings']['LBL_SHORT_THURSDAY'];
|
||
|
|
$this->day_name_short[4]=$GLOBALS['mod_strings']['LBL_SHORT_FRIDAY'];
|
||
|
|
$this->day_name_short[5]=$GLOBALS['mod_strings']['LBL_SHORT_SATURDAY'];
|
||
|
|
$this->day_name_short[6]=$GLOBALS['mod_strings']['LBL_SHORT_SUNDAY'];
|
||
|
|
}
|
||
|
|
function navArray()
|
||
|
|
{
|
||
|
|
if($this->month==12)
|
||
|
|
{
|
||
|
|
$year=$this->year+1;
|
||
|
|
$arr['next']=$year."-01";
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
$month=$this->month+1;
|
||
|
|
$arr['next']=$this->year."-".$month;
|
||
|
|
}
|
||
|
|
if($this->month==1)
|
||
|
|
{
|
||
|
|
$year=$this->year-1;
|
||
|
|
$arr['prev']=$year."-12";
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
$month=$this->month-1;
|
||
|
|
$arr['prev']=$this->year."-".$month;
|
||
|
|
}
|
||
|
|
return $arr;
|
||
|
|
}
|
||
|
|
function showNav()
|
||
|
|
{
|
||
|
|
$arr=$this->navArray();
|
||
|
|
$html='<table cellspacing="0" cellpadding="0" border="0" width="100%"><tr><td align="left" valign="bottom"><button onClick="mintajaxget(\'index.php?to_pdf=1&module=EcmCalendars&action=ShowCalendar&date='.$arr['prev'].'&act_user='.$this->act_user.'&act_status='.$this->act_status.'\',\'calendar_dashlet\');" type="button" class="button"><img src="themes/Sugar/images/previous.gif" width="8" height="11" border="0" align="absmiddle"></button></td>';
|
||
|
|
$html.='<td align="center" class="monthDashlet">';
|
||
|
|
$html.=$this->monthByNo((int)$this->month).' '.$this->year;
|
||
|
|
$html.='</td>';
|
||
|
|
$html.='<td align="right" valign="bottom"><button onClick="mintajaxget(\'index.php?to_pdf=1&module=EcmCalendars&action=ShowCalendar&date='.$arr['next'].'&act_user='.$this->act_user.'&act_status='.$this->act_status.'\',\'calendar_dashlet\');" type="button" class="button"><img src="themes/Sugar/images/next.gif" width="8" height="11" border="0" align="absmiddle"></button></td></tr></table><br>';
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function showNavDay()
|
||
|
|
{
|
||
|
|
$tomorrow=date("Y-m-d",@mktime(0,0,0,$this->month,$this->day,$this->year)+24*3600);
|
||
|
|
$yesterday=date("Y-m-d",@mktime(0,0,0,$this->month,$this->day,$this->year)-24*3600);
|
||
|
|
$html='<table cellspacing="0" cellpadding="0" border="0" width="100%"><tr><td align="left" valign="bottom"><button onClick="document.getElementById(\'calendar\').src=\'index.php?module=EcmCalendars&action=ShowBigCalendar&to_pdf=1&date='.$yesterday.'\';mintajaxget(\'index.php?module=EcmCalendars&action=ShovNav&date='.$yesterday.'&to_pdf=1\',\'navDay\');" type="button" class="button" ><img src="themes/Sugar/images/previous.gif" width="8" height="11" border="0" align="absmiddle"></button></td>';
|
||
|
|
$html.='<td align="center" class="monthDashlet">';
|
||
|
|
$html.=$this->day.' '.$this->monthByNo((int)$this->month).' '.$this->year;
|
||
|
|
$html.='</td>';
|
||
|
|
$html.='<td align="right" valign="bottom"><button onClick="document.getElementById(\'calendar\').src=\'index.php?module=EcmCalendars&action=ShowBigCalendar&to_pdf=1&date='.$tomorrow.'\';mintajaxget(\'index.php?module=EcmCalendars&action=ShovNav&date='.$tomorrow.'&to_pdf=1\',\'navDay\');" type="button" class="button"><img src="themes/Sugar/images/next.gif" width="8" height="11" border="0" align="absmiddle"></button></td></tr></table><br>';
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function showNavMiniCalendar()
|
||
|
|
{
|
||
|
|
$arr=$this->navArray();
|
||
|
|
$html='<table cellspacing="0" cellpadding="0" border="0" width="100%"><tr><td align="left" valign="bottom"><button onClick="mintajaxget(\'index.php?to_pdf=1&module=EcmCalendars&action=ShowMiniCalendar&date='.$arr['prev'].'&act_user='.$this->act_user.'&act_status='.$this->act_status.'\',\'mini_calendar\');" type="button" class="button" title="Previous" ><img src="themes/Sugar/images/previous.gif" width="8" height="11" alt="Previous" border="0" align="absmiddle"></button></td>';
|
||
|
|
$html.='<td align="center" class="monthDashlet">';
|
||
|
|
$html.=$this->monthByNo((int)$this->month).' '.$this->year;
|
||
|
|
$html.='</td>';
|
||
|
|
$html.='<td align="right" valign="bottom"><button onClick="mintajaxget(\'index.php?to_pdf=1&module=EcmCalendars&action=ShowMiniCalendar&date='.$arr['next'].'&act_user='.$this->act_user.'&act_status='.$this->act_status.'\',\'mini_calendar\');" type="button" class="button" title="Next" ><img src="themes/Sugar/images/next.gif" width="8" height="11" alt="Next" border="0" align="absmiddle"></button></td></tr></table><br>';
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function showFooter()
|
||
|
|
{
|
||
|
|
$html='<br><table cellspacing="0" cellpadding="0" border="0" width="100%"><tr>';
|
||
|
|
$html.='<td align="left">';
|
||
|
|
$html.=$GLOBALS['mod_strings']['LBL_USER'].': <select id="act_user" name="act_user" onchange="mintajaxget(\'index.php?to_pdf=1&module=EcmCalendars&action=ShowCalendar&date='.$_REQUEST['date'].'&act_user=\'+this.value+\'&act_status='.$this->act_status.'&act_type='.$this->act_type.'\',\'calendar_dashlet\');">';
|
||
|
|
$html.='<option value="All"';
|
||
|
|
if($this->act_user=='All')$html.=' selected';
|
||
|
|
$html.='>'.$GLOBALS['mod_strings']['LBL_ALL'].'</option>';
|
||
|
|
$w=$GLOBALS['db']->query("select user_name,id, first_name, last_name from users where deleted='0' order by user_name asc");
|
||
|
|
while($r=$GLOBALS['db']->fetchByAssoc($w))
|
||
|
|
{
|
||
|
|
$html.='<option value="'.$r['id'].'"';
|
||
|
|
if($this->act_user==$r['id'])$html.=' selected';
|
||
|
|
$html.='>'.$r['first_name'].' '.$r['last_name'].'</option>';
|
||
|
|
}
|
||
|
|
$html.='</select></td>';
|
||
|
|
|
||
|
|
$html.='<td align="left">'.$GLOBALS['mod_strings']['LBL_ACTIVITIES'].': <select id="act_type" name="act_type" onchange="mintajaxget(\'index.php?to_pdf=1&module=EcmCalendars&action=ShowCalendar&date='.$_REQUEST['date'].'&act_user='.$this->act_user.'&act_status='.$this->act_status.'&act_type=\'+this.value,\'calendar_dashlet\');">';
|
||
|
|
$html.='<option value="All"';
|
||
|
|
if($this->act_type=="All")$html.=" selected";
|
||
|
|
$html.='>'.$GLOBALS['mod_strings']['LBL_ALL'].'</option><option value="Calls"';
|
||
|
|
if($this->act_type=="Calls")$html.=" selected";
|
||
|
|
$html.='>'.$GLOBALS['mod_strings']['LBL_CALLS'].'</option><option value="Meetings"';
|
||
|
|
if($this->act_type=="Meetings")$html.=" selected";
|
||
|
|
$html.='>'.$GLOBALS['mod_strings']['LBL_MEETINGS'].'</option><option value="Tasks"';
|
||
|
|
if($this->act_type=="Tasks")$html.=" selected";
|
||
|
|
$html.='>'.$GLOBALS['mod_strings']['LBL_TASKS'].'</option></select>';
|
||
|
|
$html.='</td>';
|
||
|
|
|
||
|
|
|
||
|
|
global $app_list_strings;
|
||
|
|
$html.='<td align="right">'.$GLOBALS['mod_strings']['LBL_STATUS'].': <select id="act_status" name="act_status" onchange="mintajaxget(\'index.php?to_pdf=1&module=EcmCalendars&action=ShowCalendar&date='.$_REQUEST['date'].'&act_user='.$this->act_user.'&act_status=\'+this.value+\'&act_type='.$this->act_type.'\',\'calendar_dashlet\');">';
|
||
|
|
$html.='<option value="All"';
|
||
|
|
$html.=" selected";
|
||
|
|
$html.='>Wszystkie</option>';
|
||
|
|
foreach ($app_list_strings['activity_status_dom'] as $k=>$v) {
|
||
|
|
$html.='<option value="'.$k.'"';
|
||
|
|
if($this->act_status==$k)$html.=" selected";
|
||
|
|
$html.='>'.$v.'</option>';
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
$html.='</td>';
|
||
|
|
$html.='</tr></table><br>';
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function showFooterMiniCalendar()
|
||
|
|
{
|
||
|
|
$html='<br><table cellspacing="0" cellpadding="0" border="0" width="100%"><tr>';
|
||
|
|
$html.='<td align="left">';
|
||
|
|
$html.=$GLOBALS['mod_strings']['LBL_USER'].': <select id="act_user" name="act_user" onchange="mintajaxget(\'index.php?to_pdf=1&module=EcmCalendars&action=ShowMiniCalendar&date='.$_REQUEST['date'].'&act_user=\'+this.value+\'&act_status='.$this->act_status.'&act_type='.$this->act_type.'\',\'mini_calendar\');">';
|
||
|
|
$html.='<option value="All"';
|
||
|
|
if($this->act_user=='All')$html.=' selected';
|
||
|
|
$html.='>'.$GLOBALS['mod_strings']['LBL_ALL'].'</option>';
|
||
|
|
$active_users = get_user_array(FALSE, "Active");
|
||
|
|
foreach ($active_users as $id=>$name)
|
||
|
|
{
|
||
|
|
$html.='<option value="'.$id.'"';
|
||
|
|
if($this->act_user==$id)$html.=' selected';
|
||
|
|
$html.='>'.$name.'</option>';
|
||
|
|
}
|
||
|
|
$html.='</select></td>';
|
||
|
|
|
||
|
|
$html.='<td align="left">'.$GLOBALS['mod_strings']['LBL_ACTIVITIES'].': <select id="act_type" name="act_type" onchange="mintajaxget(\'index.php?to_pdf=1&module=EcmCalendars&action=ShowMiniCalendar&date='.$_REQUEST['date'].'&act_user='.$this->act_user.'&act_status='.$this->act_status.'&act_type=\'+this.value,\'mini_calendar\');">';
|
||
|
|
$html.='<option value="All"';
|
||
|
|
if($this->act_type=="All")$html.=" selected";
|
||
|
|
$html.='>'.$GLOBALS['mod_strings']['LBL_ALL'].'</option><option value="Calls"';
|
||
|
|
if($this->act_type=="Calls")$html.=" selected";
|
||
|
|
$html.='>'.$GLOBALS['mod_strings']['LBL_CALLS'].'</option><option value="Meetings"';
|
||
|
|
if($this->act_type=="Meetings")$html.=" selected";
|
||
|
|
$html.='>'.$GLOBALS['mod_strings']['LBL_MEETINGS'].'</option><option value="Tasks"';
|
||
|
|
if($this->act_type=="Tasks")$html.=" selected";
|
||
|
|
$html.='>'.$GLOBALS['mod_strings']['LBL_TASKS'].'</option></select>';
|
||
|
|
$html.='</td>';
|
||
|
|
|
||
|
|
$html.='<td align="right">'.$GLOBALS['mod_strings']['LBL_STATUS'].': <select id="act_status" name="act_status" onchange="mintajaxget(\'index.php?to_pdf=1&module=EcmCalendars&action=ShowMiniCalendar&date='.$_REQUEST['date'].'&act_user='.$this->act_user.'&act_status=\'+this.value+\'&act_type='.$this->act_type.'\',\'mini_calendar\');">';
|
||
|
|
$html.='<option value="All"';
|
||
|
|
if($this->act_status=="All")$html.=" selected";
|
||
|
|
$html.='>'.$GLOBALS['mod_strings']['LBL_ALL'].'</option>';
|
||
|
|
global $app_list_strings;
|
||
|
|
foreach ($app_list_strings['activity_status_dom'] as $k=>$v) {
|
||
|
|
$html.='<option value="'.$k.'"';
|
||
|
|
if($this->act_status==$k)$html.=" selected";
|
||
|
|
$html.='>'.$v.'</option>';
|
||
|
|
}
|
||
|
|
$html.='</td>';
|
||
|
|
$html.='</tr></table><br>';
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function daysInMonth($month,$year)
|
||
|
|
{
|
||
|
|
$days = 31;
|
||
|
|
while (!checkdate($month, $days, $year)) $days--;
|
||
|
|
return $days;
|
||
|
|
}
|
||
|
|
function getNoOfWeek($month,$year,$day)
|
||
|
|
{
|
||
|
|
$no=strftime("%W",mktime(0,0,0,$month,$day,$year))+1;
|
||
|
|
return $no;
|
||
|
|
}
|
||
|
|
function noDayInWeek($month,$year,$day=1)
|
||
|
|
{
|
||
|
|
$d = date("w", mktime(0,0,0,$month,$day,$year));
|
||
|
|
$nod=array(
|
||
|
|
0=>6,
|
||
|
|
1=>0,
|
||
|
|
2=>1,
|
||
|
|
3=>2,
|
||
|
|
4=>3,
|
||
|
|
5=>4,
|
||
|
|
6=>5,
|
||
|
|
);
|
||
|
|
$dayd=$nod[$d];
|
||
|
|
return $dayd;
|
||
|
|
}
|
||
|
|
function dayByNo($no)
|
||
|
|
{
|
||
|
|
$days = $this->day_name;
|
||
|
|
return $days[$no];
|
||
|
|
}
|
||
|
|
function monthByNo($no)
|
||
|
|
{
|
||
|
|
|
||
|
|
$months = array(1=>$GLOBALS['mod_strings']['LBL_JANUARY'],2=>$GLOBALS['mod_strings']['LBL_FEBRUARY'],3=>$GLOBALS['mod_strings']['LBL_MARCH'],4=>$GLOBALS['mod_strings']['LBL_APRIL'],5=>$GLOBALS['mod_strings']['LBL_MAY'],6=>$GLOBALS['mod_strings']['LBL_JUNE'],7=>$GLOBALS['mod_strings']['LBL_JULY'],8=>$GLOBALS['mod_strings']['LBL_AUGUST'],9=>$GLOBALS['mod_strings']['LBL_SEPTEMBER'],10=>$GLOBALS['mod_strings']['LBL_OCTOBER'],11=>$GLOBALS['mod_strings']['LBL_NOVEMBER'],12=>$GLOBALS['mod_strings']['LBL_DECEMBER']);
|
||
|
|
return $months[$no];
|
||
|
|
}
|
||
|
|
function headerTableDashlet($days="")
|
||
|
|
{
|
||
|
|
if(!$days)$days=$this->day_name_short;
|
||
|
|
$html= '<script type="text/javascript" src="modules/EcmProducts/mintajax.js"></script>';
|
||
|
|
$html.=$this->showNav();
|
||
|
|
$html.='<table cellspacing="0" cellpadding="1" border="0" width="100%" align="center"><tr valign="top">';
|
||
|
|
$html.='<th class="headerDashlet" width="1%">'.$GLOBALS['mod_strings']['LBL_WEEK'].'</th>';
|
||
|
|
|
||
|
|
foreach($days as $dn)
|
||
|
|
{
|
||
|
|
$html.='<th class="headerDashlet" width="14%">'.$dn.'</th>';
|
||
|
|
}
|
||
|
|
$html.='</tr><tr>';
|
||
|
|
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function headerTableMiniCalendar($days="")
|
||
|
|
{
|
||
|
|
if(!$days)$days=$this->day_name_short;
|
||
|
|
$html=$this->showNavMiniCalendar();
|
||
|
|
$html.='<table cellspacing="0" cellpadding="1" border="0" width="100%" align="center"><tr valign="top">';
|
||
|
|
$html.='<th class="headerDashlet" width="1%">'.$GLOBALS['mod_strings']['LBL_WEEK'].'</th>';
|
||
|
|
|
||
|
|
foreach($days as $dn)
|
||
|
|
{
|
||
|
|
$html.='<th class="headerDashlet" width="14%">'.$dn.'</th>';
|
||
|
|
}
|
||
|
|
$html.='</tr><tr>';
|
||
|
|
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function headerTableMonth($days="")
|
||
|
|
{
|
||
|
|
if(!$days)$days=$this->day_name_short;
|
||
|
|
$html='<table style="'.$this->table_style.'" cellspacing="0" cellpadding="1" border="0" width="100%" class="monthBox"><tr valign="top">';
|
||
|
|
$html.='<th width="1%" class="monthCalBodyTHWeek">'.$GLOBALS['mod_strings']['LBL_WEEK'].'</th>';
|
||
|
|
|
||
|
|
foreach($days as $dn)
|
||
|
|
{
|
||
|
|
$html.='<th width="14%" class="monthCalBodyTHDay">'.$dn.'</th>';
|
||
|
|
}
|
||
|
|
$html.='</tr><tr class="monthViewDayHeight">';
|
||
|
|
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function headerTableWeek($days="")
|
||
|
|
{
|
||
|
|
if(!$days)$days=$this->day_name;
|
||
|
|
$html='<table style="'.$this->table_style.'" cellspacing="3" cellpadding="3" border="0" width="100%"><tr valign="top">';
|
||
|
|
$html.='<td width="1%">'.$GLOBALS['mod_strings']['LBL_WEEK'].'</td>';
|
||
|
|
|
||
|
|
foreach($days as $dn)
|
||
|
|
{
|
||
|
|
$html.='<td class="monthCalBodyTHDay">'.$dn.'</td>';
|
||
|
|
}
|
||
|
|
$html.='</tr><tr valign="top">';
|
||
|
|
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function headerTableDay()
|
||
|
|
{
|
||
|
|
if(!$days)$days=$this->day_name;
|
||
|
|
$html='<table style="'.$this->table_style.'" cellspacing="3" cellpadding="3" border="0" width="100%"><tr valign="top">';
|
||
|
|
$html.='<td width="1%">'.$GLOBALS['mod_strings']['LBL_WEEK'].'</td>';
|
||
|
|
|
||
|
|
foreach($days as $dn)
|
||
|
|
{
|
||
|
|
$html.='<td class="monthCalBodyTHDay">'.$dn.'</td>';
|
||
|
|
}
|
||
|
|
$html.='</tr><tr valign="top">';
|
||
|
|
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
|
||
|
|
function showTableMiniCalendar($month,$year)
|
||
|
|
{
|
||
|
|
global $timedate;
|
||
|
|
$html=$this->headerTableMiniCalendar();
|
||
|
|
|
||
|
|
if($this->noDayInWeek($month,$year)>0)$html.='<td class="weekDashlet">'.$this->getNoOfWeek($month,$year,1).'</td>';
|
||
|
|
for($i=0;$i<$this->noDayInWeek($month,$year);$i++)$html.='<td class="dayDashlet"> </td>';
|
||
|
|
|
||
|
|
for($i=1;$i<$this->daysInMonth($month,$year)+1;$i++)
|
||
|
|
{
|
||
|
|
if(($this->noDayInWeek($month,$year)+$i-1)%7==0)$html.='</tr><tr><td class="weekDashlet">'.$this->getNoOfWeek($month,$year,$i).'</td>';
|
||
|
|
|
||
|
|
if($i<10)$ni='0'.$i;
|
||
|
|
else $ni=$i;
|
||
|
|
|
||
|
|
if(($this->noDayInWeek($month,$year)+$i)%7==0)$class="sundayDashlet";
|
||
|
|
elseif(date("d")==$i && date("m")==$month && date("Y")==$year)$class="headerDashlet";
|
||
|
|
else $class="dayDashlet";
|
||
|
|
|
||
|
|
if($this->act_type=="All")
|
||
|
|
{
|
||
|
|
$num_act=count($this->getActivities($month,$year,$ni,"calls","Calls","date_start"))+count($this->getActivities($month,$year,$ni,"meetings","Meetings","date_start"))+count($this->getActivities($month,$year,$ni,"tasks","Tasks","date_start"));
|
||
|
|
$actt=array();
|
||
|
|
if($this->showActivities($month,$year,$ni,"calls","Calls","date_start"))$actt[]=$this->showActivities($month,$year,$ni,"calls","Calls","date_start");
|
||
|
|
if($this->showActivities($month,$year,$ni,"meetings","Meetings","date_start"))$actt[]=$this->showActivities($month,$year,$ni,"meetings","Meetings","date_start");
|
||
|
|
if($this->showActivities($month,$year,$ni,"tasks","Tasks","date_start"))$actt[]=$this->showActivities($month,$year,$ni,"tasks","Tasks","date_start");
|
||
|
|
$act=htmlspecialchars('<div class="divDashlet">').implode("<br>",$actt).htmlspecialchars('</div>');
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
$num_act=count($this->getActivities($month,$year,$ni,strtolower($this->act_type),$this->act_type,"date_start"));
|
||
|
|
$actt=array();
|
||
|
|
if($this->showActivities($month,$year,$ni,strtolower($this->act_type),$this->act_type,"date_start"))$ac=$this->showActivities($month,$year,$ni,strtolower($this->act_type),$this->act_type,"date_start");
|
||
|
|
$act=htmlspecialchars('<div class="divDashlet">').$ac.htmlspecialchars('</div>');
|
||
|
|
}
|
||
|
|
|
||
|
|
if($num_act>0)
|
||
|
|
{
|
||
|
|
if(date("d")==$i && date("m")==$month && date("Y")==$year)$class="headerDashlet";
|
||
|
|
elseif(($this->noDayInWeek($month,$year)+$i)%7==0)$class="actsundayDashlet";
|
||
|
|
else $class="actDashlet";
|
||
|
|
$mouse=' onclick="
|
||
|
|
if(!document.getElementById(\'desc\'))
|
||
|
|
{
|
||
|
|
showdescriptionCalendar(\''.$GLOBALS['mod_strings']['LBL_ACTIVITIES'].' '.$timedate->to_display($year.'-'.$month.'-'.$ni, "Y-m-d", $timedate->get_date_format()).'\',\''.$act.'\',this,1);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
hidedescriptionCalendar();
|
||
|
|
};"';
|
||
|
|
$img='<br><img'.$mouse.' style="float:right;margin:3px;" src="modules/EcmSales/images/search.gif" border="0">';
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
$mouse=' onmouseout="this.style.fontWeight=\'\';" onmouseover="this.style.fontWeight=\'bold\';hidedescriptionCalendar();"';
|
||
|
|
$img='';
|
||
|
|
}
|
||
|
|
|
||
|
|
$html.='<td style="position:relative;cursor:pointer;" class="'.$class.'"><span onmouseout="this.style.fontWeight=\'\';" onmouseover="this.style.fontWeight=\'bold\';" onclick="document.getElementById(\'calendar\').src=\'index.php?module=EcmCalendars&action=ShowBigCalendar&to_pdf=1&date='.$year.'-'.$month.'-'.$ni.'\';mintajaxget(\'index.php?module=EcmCalendars&action=ShovNav&date='.$year.'-'.$month.'-'.$ni.'&to_pdf=1\',\'navDay\');">'.$ni.'</span> '.$img.'</td>';
|
||
|
|
}
|
||
|
|
|
||
|
|
$html.='</tr></table>';
|
||
|
|
$html.=$this->showFooterMiniCalendar();
|
||
|
|
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function showTableDashlet($month,$year)
|
||
|
|
{
|
||
|
|
global $timedate;
|
||
|
|
$html=$this->headerTableDashlet();
|
||
|
|
|
||
|
|
if($this->noDayInWeek($month,$year)>0)$html.='<td class="weekDashlet">'.$this->getNoOfWeek($month,$year,1).'</td>';
|
||
|
|
for($i=0;$i<$this->noDayInWeek($month,$year);$i++)$html.='<td class="dayDashlet"> </td>';
|
||
|
|
|
||
|
|
for($i=1;$i<$this->daysInMonth($month,$year)+1;$i++)
|
||
|
|
{
|
||
|
|
if(($this->noDayInWeek($month,$year)+$i-1)%7==0)$html.='</tr><tr><td class="weekDashlet">'.$this->getNoOfWeek($month,$year,$i).'</td>';
|
||
|
|
|
||
|
|
if($i<10)$ni='0'.$i;
|
||
|
|
else $ni=$i;
|
||
|
|
|
||
|
|
if(($this->noDayInWeek($month,$year)+$i)%7==0)$class="sundayDashlet";
|
||
|
|
elseif(date("d")==$i && date("m")==$month && date("Y")==$year)$class="headerDashlet";
|
||
|
|
else $class="dayDashlet";
|
||
|
|
|
||
|
|
if($this->act_type=="All")
|
||
|
|
{
|
||
|
|
$num_act=count($this->getActivities($month,$year,$ni,"calls","Calls","date_start"))+count($this->getActivities($month,$year,$ni,"meetings","Meetings","date_start"))+count($this->getActivities($month,$year,$ni,"tasks","Tasks","date_start"));
|
||
|
|
$actt=array();
|
||
|
|
if($this->showActivities($month,$year,$ni,"calls","Calls","date_start"))$actt[]=$this->showActivities($month,$year,$ni,"calls","Calls","date_start");
|
||
|
|
if($this->showActivities($month,$year,$ni,"meetings","Meetings","date_start"))$actt[]=$this->showActivities($month,$year,$ni,"meetings","Meetings","date_start");
|
||
|
|
if($this->showActivities($month,$year,$ni,"tasks","Tasks","date_start"))$actt[]=$this->showActivities($month,$year,$ni,"tasks","Tasks","date_start");
|
||
|
|
$act=htmlspecialchars('<div class="divDashlet"><div class="outTable">').implode("<br>",$actt).htmlspecialchars('</div></div>');
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
$num_act=count($this->getActivities($month,$year,$ni,strtolower($this->act_type),$this->act_type,"date_start"));
|
||
|
|
$actt=array();
|
||
|
|
if($this->showActivities($month,$year,$ni,strtolower($this->act_type),$this->act_type,"date_start"))$ac=$this->showActivities($month,$year,$ni,strtolower($this->act_type),$this->act_type,"date_start");
|
||
|
|
$act=htmlspecialchars('<div class="divDashlet">').$ac.htmlspecialchars('</div>');
|
||
|
|
}
|
||
|
|
|
||
|
|
if($num_act>0)
|
||
|
|
{
|
||
|
|
if(date("d")==$i && date("m")==$month && date("Y")==$year)$class="headerDashlet";
|
||
|
|
elseif(($this->noDayInWeek($month,$year)+$i)%7==0)$class="actsundayDashlet";
|
||
|
|
else $class="actDashlet";
|
||
|
|
$mouse=' onclick="
|
||
|
|
if(!document.getElementById(\'desc\'))
|
||
|
|
{
|
||
|
|
showdescriptionCalendar(\''.$GLOBALS['mod_strings']['LBL_ACTIVITIES'].' '.$timedate->to_display($year.'-'.$month.'-'.$ni, "Y-m-d", $timedate->get_date_format()).'\',\''.$act.'\',this,1);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
hidedescriptionCalendar();
|
||
|
|
};"';
|
||
|
|
$img='<br><img'.$mouse.' style="float:right;margin:3px;" src="modules/EcmSales/images/search.gif" border="0">';
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
$mouse=' onmouseout="this.style.fontWeight=\'\';" onmouseover="this.style.fontWeight=\'bold\';hidedescriptionCalendar();"';
|
||
|
|
$img='';
|
||
|
|
}
|
||
|
|
|
||
|
|
$html.='<td style="position:relative;cursor:pointer;" class="'.$class.'"><span onmouseout="this.style.fontWeight=\'\';" onmouseover="this.style.fontWeight=\'bold\';" onclick="location.href=\'index.php?module=EcmCalendars&action=index&date='.$year.'-'.$month.'-'.$ni.'\';">'.$ni.'</span> '.$img.'</td>';
|
||
|
|
}
|
||
|
|
|
||
|
|
$html.='</tr></table>';
|
||
|
|
$html.=$this->showFooter();
|
||
|
|
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function showTableMonth($month,$year)
|
||
|
|
{
|
||
|
|
$html=$this->headerTableMonth();
|
||
|
|
|
||
|
|
$html.='<td class="monthCalBodyWeek" style="'.$this->cell_style.'">'.$this->getNoOfWeek($month,$year,1).'</td>';
|
||
|
|
for($i=0;$i<$this->noDayInWeek($month,$year);$i++)$html.='<td style="'.$this->cell_style.'"> </td>';
|
||
|
|
|
||
|
|
for($i=1;$i<$this->daysInMonth($month,$year)+1;$i++)
|
||
|
|
{
|
||
|
|
if(($this->noDayInWeek($month,$year)+$i-1)%7==0)$html.='</tr><tr class="monthViewDayHeight"><td class="monthCalBodyWeek" align="center" valign="top" style="'.$this->cell_style.'">'.$this->getNoOfWeek($month,$year,$i).'</td>';
|
||
|
|
|
||
|
|
if($i<10)$ni='0'.$i;
|
||
|
|
else $ni=$i;
|
||
|
|
$html.='<td class="monthCalBodyWeekDay" style="'.$this->cell_style.';height:10px;" align="right" valign="top"><a href="#" class="monthCalBodyWeekDayDateLink">'.$ni.'</a><br>';
|
||
|
|
$html.=$this->showActivities($month,$year,$ni,"calls","Calls","date_start").'<br>';
|
||
|
|
$html.=$this->showActivities($month,$year,$ni,"meetings","Meetings","date_start");
|
||
|
|
$html.='</td>';
|
||
|
|
}
|
||
|
|
|
||
|
|
$html.='</tr></table>';
|
||
|
|
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function showTableWeek($month,$year,$day)
|
||
|
|
{
|
||
|
|
$html=$this->headerTableWeek($this->day_name);
|
||
|
|
|
||
|
|
$days=$this->getDaysWeek($month,$year,$day);
|
||
|
|
$html.='<td height="40" valign="top">'.$this->getNoOfWeek($month,$year,$day).'</td>';
|
||
|
|
foreach($days as $d)
|
||
|
|
{
|
||
|
|
$exp=explode("-",$d);
|
||
|
|
$html.='<td height="40" valign="top">'.$d.'<br>';
|
||
|
|
$html.=$this->showActivities($month,$year,$exp[2],"calls","Calls","date_start").'<br>';
|
||
|
|
$html.=$this->showActivities($month,$year,$exp[2],"meetings","Meetings","date_start");
|
||
|
|
$html.="</td>";
|
||
|
|
}
|
||
|
|
|
||
|
|
$html.='</tr></table>';
|
||
|
|
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function showTableDay($month,$year,$day)
|
||
|
|
{
|
||
|
|
$html='<table id="table_day" cellspacing="0" cellpadding="0" border="0" width="100%">';
|
||
|
|
|
||
|
|
for($i=6;$i<=24;$i++){
|
||
|
|
if($i<10)$h='0'.$i;
|
||
|
|
else $h=$i;
|
||
|
|
$html.='<tr class="hourDayView"><td class="hourLabelDayView" id="hour'.$i.'">'.$h.':00</td><td width="100%" class="hourDayView"> </td></tr>';
|
||
|
|
}
|
||
|
|
|
||
|
|
$html.='</table>';
|
||
|
|
$html.=$this->showActivitiesDay($month,$year,$day,array("meetings","calls","tasks"),array("Meetings","Calls","Tasks"),array("date_start","date_start","date_start"));
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function matchTime($time1,$duration1,$time2,$duration2)
|
||
|
|
{
|
||
|
|
$exp1=explode(":",$time1);
|
||
|
|
$date1=date("H:i:s",@mktime($exp1[0],$exp1[1],$exp1[2],0,0,0)+$duration1);
|
||
|
|
|
||
|
|
$exp2=explode(":",$time2);
|
||
|
|
$date2=date("H:i:s",@mktime($exp2[0],$exp2[1],$exp2[2],0,0,0));
|
||
|
|
|
||
|
|
if($date1>$date2)return true;
|
||
|
|
}
|
||
|
|
function getActivityHours($time,$duration)
|
||
|
|
{
|
||
|
|
$exp=explode(":",$time);
|
||
|
|
$hours=ceil($duration/3600);
|
||
|
|
for($i=0;$i<=$hours;$i++)
|
||
|
|
{
|
||
|
|
$n=$i*3600;
|
||
|
|
$arr[date("H",mktime($exp[0],$exp[1],$exp[2],0,0,0)+$n)]=date("H",mktime($exp[0],$exp[1],$exp[2],0,0,0)+$n);
|
||
|
|
}
|
||
|
|
//print_r($arr);
|
||
|
|
return $arr;
|
||
|
|
}
|
||
|
|
function getAllActivityHours($arr)
|
||
|
|
{
|
||
|
|
foreach($arr as $r)
|
||
|
|
{
|
||
|
|
$time=explode(" ",$r['date']);
|
||
|
|
$exp=explode(":",$time[1]);
|
||
|
|
for($i=0;$i<(int)$r['duration'];$i++)
|
||
|
|
{
|
||
|
|
$arrr[date("H",@mktime($exp[0],$exp[1],$exp[2],0,0,0)+$i)]=date("H",@mktime($exp[0],$exp[1],$exp[2],0,0,0)+$i);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return $arrr;
|
||
|
|
}
|
||
|
|
function resizeHours($arr)
|
||
|
|
{
|
||
|
|
$html='';
|
||
|
|
foreach($arr as $a)$html.='resizeHours("'.(int)$a.'","'.$this->hour_height.'");';
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function getHourPosition($hour,$resized_hours)
|
||
|
|
{
|
||
|
|
$v=0;
|
||
|
|
for($i=0;$i<=(int)$hour;$i++)$arr[$i]=$this->hour_label_height;
|
||
|
|
foreach($resized_hours as $a)$arr[(int)$a]=$this->hour_height;
|
||
|
|
for($i=0;$i<=(int)$hour;$i++)$v+=$arr[$i];
|
||
|
|
return $v;
|
||
|
|
}
|
||
|
|
|
||
|
|
function multisort($data,$keys)
|
||
|
|
{
|
||
|
|
if(count($data)>0)
|
||
|
|
{
|
||
|
|
foreach($data as $key => $row)
|
||
|
|
{
|
||
|
|
foreach($keys as $k)
|
||
|
|
{
|
||
|
|
$cols[$k['key']][$key] = $row[$k['key']];
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$idkeys=@array_keys($data);
|
||
|
|
$i=0;
|
||
|
|
foreach($keys as $k)
|
||
|
|
{
|
||
|
|
if($i>0)$sort.=',';
|
||
|
|
$sort.='$cols['.$k['key'].']';
|
||
|
|
if($k['sort'])$sort.=',SORT_'.strtoupper($k['sort']);
|
||
|
|
if($k['type'])$sort.=',SORT_'.strtoupper($k['type']);
|
||
|
|
$i++;
|
||
|
|
}
|
||
|
|
$sort.=',$idkeys';
|
||
|
|
$sort='@array_multisort('.$sort.');';
|
||
|
|
eval($sort);
|
||
|
|
foreach($idkeys as $idkey)
|
||
|
|
{
|
||
|
|
$result[$idkey]=$data[$idkey];
|
||
|
|
}
|
||
|
|
return $result;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function ca($position,$boxes_defs,$time,$duration){
|
||
|
|
foreach($boxes_defs as $bd){
|
||
|
|
if($this->matchTime($bd['box_time'],$bd['box_duration'],$time,$duration) && $position==$bd['box_position'])return false;
|
||
|
|
}
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
function setBoxesPositions($b,$positions){
|
||
|
|
$b=$this->multisort($b,array(array('key'=>'box_time','sort'=>'asc')));
|
||
|
|
for($i=count($b)-1;$i>=0;$i--){
|
||
|
|
for($j=0;$j<count($b);$j++){
|
||
|
|
foreach($positions as $position){
|
||
|
|
if($i!=$j && $position==$b[$j]['box_position'] && !$this->matchTime($b[$j]['box_time'],$b[$j]['box_duration'],$b[$i]['box_time'],$b[$i]['box_duration'])){
|
||
|
|
if($this->ca($position,$b,$b[$i]['box_time'],$b[$i]['box_duration']))$b[$i]['box_position']=$b[$j]['box_position'];
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//print_r($b);
|
||
|
|
return $b;
|
||
|
|
}
|
||
|
|
function showActivitiesDay($month,$year,$day,$table,$module,$date_field)
|
||
|
|
{
|
||
|
|
$calls=$this->getActivities($month,$year,$day,"calls","Calls","date_start");
|
||
|
|
$meetings=$this->getActivities($month,$year,$day,"meetings","Meetings","date_start");
|
||
|
|
$tasks=$this->getActivities($month,$year,$day,"tasks","Tasks","date_start");
|
||
|
|
|
||
|
|
if(count($calls)>0)foreach($calls as $call)$arr[]=$call;
|
||
|
|
if(count($meetings)>0)foreach($meetings as $meeting)$arr[]=$meeting;
|
||
|
|
if(count($tasks)>0)foreach($tasks as $task)$arr[]=$task;
|
||
|
|
|
||
|
|
$arr=$this->multisort($arr,array(array('key'=>'date','sort'=>'asc')));
|
||
|
|
//print_r($arr);
|
||
|
|
if(count($arr)>0)
|
||
|
|
{
|
||
|
|
$cc=0;
|
||
|
|
$mn=$this->hour_height/60;
|
||
|
|
|
||
|
|
foreach($arr as $r)
|
||
|
|
{
|
||
|
|
$o++;
|
||
|
|
$exp=explode(" ",$r['date']);
|
||
|
|
$hour=explode(":",$exp[1]);
|
||
|
|
$y=$hour[1]*$mn;//by id
|
||
|
|
|
||
|
|
$height=$this->hour_height;
|
||
|
|
|
||
|
|
if($time_temp && $duration_temp && $this->matchTime($time_temp,$duration_temp,$exp[1],$r['duration']))$cc+=$this->box_width;
|
||
|
|
else $cc=0;
|
||
|
|
$maxcc+=$this->box_width;
|
||
|
|
|
||
|
|
$boxes_defs[]=array(
|
||
|
|
'box_position'=>$cc,
|
||
|
|
'box_height'=>$height,
|
||
|
|
'box_time'=>$exp[1],
|
||
|
|
'box_id'=>$r['id'],
|
||
|
|
'box_duration'=>$r['duration'],
|
||
|
|
);
|
||
|
|
|
||
|
|
if($r['status']=="Held" || $r['status']=="Not Held")$activityClass="activityBoxHeld";
|
||
|
|
elseif(date("Y-m-d H:i:s")>$r['date'])$activityClass="activityBoxExpired";
|
||
|
|
else $activityClass="activityBox";
|
||
|
|
|
||
|
|
if($r['status']=="Held" || $r['status']=="Not Held")
|
||
|
|
{
|
||
|
|
$linkClass="boxLink";
|
||
|
|
$linkClassName="boxLinkNameHeld";
|
||
|
|
$hourClass="";
|
||
|
|
}
|
||
|
|
elseif(date("Y-m-d H:i:s")>$r['date'])
|
||
|
|
{
|
||
|
|
$linkClass="boxLink";
|
||
|
|
$linkClassName="boxLinkExpired";
|
||
|
|
$hourClass="";
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
$linkClass="boxLink";
|
||
|
|
$linkClassName="boxLink";
|
||
|
|
$hourClass="";
|
||
|
|
}
|
||
|
|
|
||
|
|
$u = new User();
|
||
|
|
$u -> retrieve($r['user_id']);
|
||
|
|
$user = $u->first_name.PHP_EOL.$u->last_name;
|
||
|
|
unset($u);
|
||
|
|
|
||
|
|
$html.='<div id="activity'.$r['id'].'" class="'.$activityClass.' olFgClass" style="height:'.$height.';width:'.$this->box_width.'px;overflow:none;">';
|
||
|
|
$html.='<div class="rowTable">';
|
||
|
|
$html.='<div class="cellTable'.$hourClass.'" style="width:70px;"><img src="themes/Sugar/images/'.$r['module'].'.gif" border="0"> '.substr($exp[1],0,5).'</div>';
|
||
|
|
$html.='<div class="cellTable" style="width:80px;text-align:right;"><a target="_top" class="'.$linkClass.'" href="index.php?module=Employees&action=DetailView&record='.$r['user_id'].'">'.$user.'</a></div>';
|
||
|
|
$html.='</div>';
|
||
|
|
|
||
|
|
if(strlen($r['name'])>24)$name=mb_substr($r['name'],0,23,"UTF-8")." ...";
|
||
|
|
else $name=$r['name'];
|
||
|
|
//$html.='<div class="rowTable">';
|
||
|
|
$html.='<div style="width:150px;"><a target="_top" class="'.$linkClassName.'" href="index.php?module='.$r['module'].'&action=DetailView&record='.$r['id'].'">'.$r['name'].'</a></div>';
|
||
|
|
//$html.='</div>';
|
||
|
|
|
||
|
|
if($r['account_name'] && $r['account_id'])
|
||
|
|
{
|
||
|
|
if(strlen($r['account_name'])>24)$account_name=mb_substr($r['account_name'],0,23,"UTF-8")." ...";
|
||
|
|
else $account_name=$r['account_name'];
|
||
|
|
//$html.='<div class="rowTable">';
|
||
|
|
$html.='<div style="width:150px;"><a target="_top" class="'.$linkClass.'" href="index.php?module=Accounts&action=DetailView&record='.$r['account_id'].'">'.$account_name.'</a></div>';
|
||
|
|
//$html.='</div>';
|
||
|
|
}
|
||
|
|
for($i=0;$i<count($r['contact_id']);$i++)
|
||
|
|
{
|
||
|
|
if($r['contact_id'][$i] && $r['contact_name'][$i])
|
||
|
|
{
|
||
|
|
if(strlen($r['contact_name'])>24)$contact_name=mb_substr($r['contact_name'][$i],0,23,"UTF-8")." ...";
|
||
|
|
else $contact_name=$r['contact_name'][$i];
|
||
|
|
//$html.='<div class="rowTable">';
|
||
|
|
$html.='<div style="width:150px;"><a target="_top" class="'.$linkClass.'" href="index.php?module=Contacts&action=DetailView&record='.$r['contact_id'][$i].'">'.$contact_name.'</a></div><br>';
|
||
|
|
//$html.='</div>';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
$html.='</div>';
|
||
|
|
$html.='<script language="javascript">'.$this->resizeHours($this->getActivityHours($exp[1],$r['duration'])).'</script>';
|
||
|
|
//$html.='<script language="javascript">setBoxStyle('.$hour[0].','.$y.','.$cc.',"'.$r['id'].'");</script>';
|
||
|
|
$time_temp=$exp[1];
|
||
|
|
$duration_temp=$r['duration'];
|
||
|
|
}
|
||
|
|
$pos=0;
|
||
|
|
$i=0;
|
||
|
|
$row=0;
|
||
|
|
$maxhour=$this->hour_height;
|
||
|
|
foreach($arr as $r){
|
||
|
|
$exp=explode(" ",$r['date']);
|
||
|
|
$hour=explode(":",$exp[1]);
|
||
|
|
|
||
|
|
if($temp_hour==(int)$hour[0] && $i<3){
|
||
|
|
$pos+=$this->box_width;
|
||
|
|
$i++;
|
||
|
|
}
|
||
|
|
elseif($temp_hour==(int)$hour[0] && $i>=3){
|
||
|
|
$pos=0;
|
||
|
|
$i=0;
|
||
|
|
$row++;
|
||
|
|
$bd_hours[(int)$hour[0]]=($row+1)*$this->hour_height;
|
||
|
|
}
|
||
|
|
else{
|
||
|
|
$pos=0;
|
||
|
|
$i=0;
|
||
|
|
$row=0;
|
||
|
|
$maxhour=$this->hour_height;
|
||
|
|
}
|
||
|
|
|
||
|
|
$b[(int)$hour[0]][]=array("id"=>$r['id'],"time"=>$exp[1],"pos"=>$pos,"i"=>$i,"row"=>$row);
|
||
|
|
$temp_hour=(int)$hour[0];
|
||
|
|
$temp_pos=$pos;
|
||
|
|
$temp_id=$r['id'];
|
||
|
|
$temp_row=$row;
|
||
|
|
|
||
|
|
}
|
||
|
|
//print_r($b);
|
||
|
|
if(count($bd_hours)>0){
|
||
|
|
foreach($bd_hours as $key=>$value){
|
||
|
|
$html.='<script language="javascript">document.getElementById("hour'.$key.'").style.height="'.$value.'px";</script>';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if(count($b)>0){
|
||
|
|
foreach($b as $bdd){
|
||
|
|
foreach($bdd as $bd){
|
||
|
|
$hour=explode(":",$bd['time']);
|
||
|
|
$y=$this->hour_height*$bd['row'];
|
||
|
|
$html.='<script language="javascript">setBoxStyle('.(int)$hour[0].','.$y.','.$bd['pos'].',"'.$bd['id'].'");</script>';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function showActivities($month,$year,$day,$table,$module,$date_field)
|
||
|
|
{
|
||
|
|
|
||
|
|
$arr=$this->getActivities($month,$year,$day,$table,$module,$date_field);
|
||
|
|
if(count($arr)>0)
|
||
|
|
{
|
||
|
|
$html='';
|
||
|
|
foreach($arr as $r)
|
||
|
|
{
|
||
|
|
if($r['status']=="Held" || $r['status']=="Not Held")
|
||
|
|
{
|
||
|
|
$linkClass="dashletLink";
|
||
|
|
$linkClassName="dashletLinkNameHeld";
|
||
|
|
$hourClass="";
|
||
|
|
}
|
||
|
|
elseif(date("Y-m-d H:i:s")>$r['date'])
|
||
|
|
{
|
||
|
|
$linkClass="dashletLink";
|
||
|
|
$linkClassName="dashletLinkExpired";
|
||
|
|
$hourClass="";
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
$linkClass="dashletLink";
|
||
|
|
$linkClassName="dashletLink";
|
||
|
|
$hourClass="";
|
||
|
|
}
|
||
|
|
$exp=explode(" ",$r['date']);
|
||
|
|
|
||
|
|
$u = new User();
|
||
|
|
$u -> retrieve($r['user_id']);
|
||
|
|
$user = $u->first_name.PHP_EOL.$u->last_name;
|
||
|
|
unset($u);
|
||
|
|
|
||
|
|
$html.='<div class="rowTable">';
|
||
|
|
$html.='<div class="cellTable'.$hourClass.'" style="width:70px;"><img src="themes/Sugar/images/'.$r['module'].'.gif" border="0"> '.substr($exp[1],0,5).'</div>';
|
||
|
|
$html.='<div class="cellTable" style="width:140px;"><a class="'.$linkClassName.'" href="index.php?module='.$r['module'].'&action=DetailView&record='.$r['id'].'">'.$r['name'].'</a></div>';
|
||
|
|
$html.='<div class="cellTable" style="width:70px;"><a class="'.$linkClass.'" href="index.php?module=Employees&action=DetailView&record='.$r['user_id'].'">'.$user.'</a></div>';
|
||
|
|
$html.='</div>';
|
||
|
|
if($r['account_name'] && $r['account_id'])
|
||
|
|
{
|
||
|
|
$html.='<div class="rowTable">';
|
||
|
|
$html.='<div class="cellTable" style="width:70px;"></div>';
|
||
|
|
$html.='<div class="cellTable" style="width:210px;"><a class="'.$linkClass.'" href="index.php?module=Accounts&action=DetailView&record='.$r['account_id'].'">'.$r['account_name'].'</a></div>';
|
||
|
|
$html.='</div>';
|
||
|
|
}
|
||
|
|
for($i=0;$i<=0;$i++)
|
||
|
|
{
|
||
|
|
if($r['contact_id'][$i] && $r['contact_name'][$i])
|
||
|
|
{
|
||
|
|
$html.='<div class="rowTable">';
|
||
|
|
$html.='<div class="cellTable" style="width:70px;"></div>';
|
||
|
|
$html.='<div class="cellTable" style="width:210px;"><a class="'.$linkClass.'" href="index.php?module=Contacts&action=DetailView&record='.$r['contact_id'][$i].'">'.$r['contact_name'][$i].'</a></div><br>';
|
||
|
|
$html.='</div>';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
$html=str_replace("<","<",$html);
|
||
|
|
$html=str_replace(">",">",$html);
|
||
|
|
$html=str_replace("'","´",$html);
|
||
|
|
$html=str_replace('"',""",$html);
|
||
|
|
$html=str_replace("\n","",$html);
|
||
|
|
return $html;
|
||
|
|
}
|
||
|
|
function getDaysWeek($month,$year,$day)
|
||
|
|
{
|
||
|
|
$no=$this->noDayInWeek($month,$year,$day);
|
||
|
|
for($i=0;$i<$no;$i++)
|
||
|
|
{
|
||
|
|
$days[$i]=date("Y-m-d",mktime(0,0,0,$month,$day,$year)-($no-$i)*24*3600);
|
||
|
|
}
|
||
|
|
$days[$no]=$year."-".$month."-".$day;
|
||
|
|
for($i=0;$i<7-$no;$i++)
|
||
|
|
{
|
||
|
|
$days[$i+$no]=date("Y-m-d",mktime(0,0,0,$month,$day,$year)+$i*24*3600);
|
||
|
|
}
|
||
|
|
|
||
|
|
return $days;
|
||
|
|
}
|
||
|
|
function getActivities($month,$year,$day,$table,$module,$date_field,$status="")
|
||
|
|
{
|
||
|
|
if($month<10 && strlen($month)<2)$month="0".$month;
|
||
|
|
global $timedate,$current_user;
|
||
|
|
if($this->act_status=="All" || !$this->act_status)$status="";
|
||
|
|
else $status= " and ".$table.".status='".$this->act_status."'";
|
||
|
|
if($this->act_user=="All" || !$this->act_user)$assigned_user="";
|
||
|
|
else $assigned_user= " and ".$table.".assigned_user_id='".$this->act_user."'";
|
||
|
|
|
||
|
|
$q="select ".$table.".*,users.user_name as user,users.id as user_id from ".$table." inner join users on users.id=".$table.".assigned_user_id where ".$table.".deleted='0' and ".$table.".".$date_field." like '".$year."-".$month."-".$day."%'".$status.$assigned_user." order by ".$table.".".$date_field." asc";
|
||
|
|
//print $q;
|
||
|
|
$query=$GLOBALS['db']->query($q);
|
||
|
|
while($row=$GLOBALS['db']->fetchByAssoc($query))
|
||
|
|
{
|
||
|
|
$exp=explode(" ",$row[$date_field]);
|
||
|
|
$expp=explode(":",$exp[1]);
|
||
|
|
$expd=explode("-",$exp[0]);
|
||
|
|
if((int)$expp[0]>3){
|
||
|
|
|
||
|
|
$r=$GLOBALS['db']->fetchByAssoc($GLOBALS['db']->query("select name from accounts where id='".$row['parent_id']."'"));
|
||
|
|
$account_name=$r['name'];
|
||
|
|
if($table!="tasks")
|
||
|
|
{
|
||
|
|
$w=$GLOBALS['db']->query("select contacts.first_name as first_name,contacts.last_name as last_name,contacts.id as id from ".$table."_contacts inner join contacts on contacts.id=".$table."_contacts.contact_id where ".$table."_contacts.deleted='0' and ".substr($table,0,strlen($table)-1)."_id='".$row['id']."' and contacts.deleted='0'");
|
||
|
|
$contact_name=array();
|
||
|
|
$contact_id=array();
|
||
|
|
while($r=$GLOBALS['db']->fetchByAssoc($w))
|
||
|
|
{
|
||
|
|
$contact_name[]=$r['first_name']." ".$r['last_name'];
|
||
|
|
$contact_id[]=$r['id'];
|
||
|
|
}
|
||
|
|
}
|
||
|
|
$duration=($row['duration_hours']*60+$row['duration_minutes'])*60;
|
||
|
|
$ddate=date("Y-m-d H:i:s",mktime($expp[0],$expp[1],$expp[2],$expd[1],$expd[2],$expd[0]));
|
||
|
|
|
||
|
|
$arr[]=array(
|
||
|
|
"id"=>$row['id'],
|
||
|
|
"name"=>$row['name'],
|
||
|
|
"date"=>$timedate->handle_offset($ddate, "Y-m-d H:i:s", true, $current_user),
|
||
|
|
"module"=>$module,
|
||
|
|
"user"=>$row['user'],
|
||
|
|
"user_id"=>$row['user_id'],
|
||
|
|
"duration"=>$duration,
|
||
|
|
"account_id"=>$row['parent_id'],
|
||
|
|
"account_name"=>$account_name,
|
||
|
|
"contact_id"=>$contact_id,
|
||
|
|
"contact_name"=>$contact_name,
|
||
|
|
"status"=>$row['status'],
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return $arr;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
?>
|