Hello,
Take backup of modules/Calendar/DateTimeUtil.php and modules/Calendar/Calendar.php then,
Replace function get_time_start in modules/Calendar/DateTimeUtil.php
PHP Code:
function get_time_start( $date_start, $time_start)
{
$match=array();
preg_match("/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/",$date_start,$match);
$time_arr = array();
$time_arr['year'] = $match[1];
$time_arr['month'] = $match[2];
$time_arr['day'] = $match[3];
if ( empty( $time_start) )
{
$time_arr['hour'] = 0;
$time_arr['min'] = 0;
}
else
{
if (preg_match("/^(\d\d*):(\d\d*):(\d\d*)$/",$time_start,$match))
{
$time_arr['hour'] = $match[1];
$time_arr['min'] = $match[2];
}
else if ( preg_match("/^(\d\d*):(\d\d*)$/",$time_start,$match))
{
$time_arr['hour'] = $match[1];
$time_arr['min'] = $match[2];
}
}
return new DateTimeUtil($time_arr,true);
}
And replace function in modules/Calendar/Calendar.php
PHP Code:
function CalendarActivity($args)
{
// if we've passed in an array, then this is a free/busy slot
// and does not have a sugarbean associated to it
global $DO_USER_TIME_OFFSET;
if ( is_array ( $args ))
{
$this->start_time = $args[0];
$this->end_time = $args[1];
$this->sugar_bean = null;
return;
}
// else do regular constructor..
$sugar_bean = $args;
global $timedate;
$this->sugar_bean = $sugar_bean;
if ($sugar_bean->object_name == 'Task')
{
$newdate = $timedate->merge_date_time($this->sugar_bean->date_due, $this->sugar_bean->time_due);
$tempdate = $timedate->to_db_date($newdate,$DO_USER_TIME_OFFSET);
if($newdate != $tempdate){
$this->sugar_bean->date_due = $tempdate;
}
$temptime = $timedate->to_db_time($newdate, $DO_USER_TIME_OFFSET);
if($newdate != $temptime){
$this->sugar_bean->time_due = $temptime;
}
$this->start_time =DateTimeUtil::get_time_start(
$this->sugar_bean->date_due,
$this->sugar_bean->time_due
);
if ( empty($this->start_time))
{
return null;
}
$this->end_time = $this->start_time;
}
else
{
// Convert it back to database time so we can properly manage it for getting the proper start and end dates
list($dbDate,$dbTime) = $timedate->to_db_date_time($this->sugar_bean->date_start, $this->sugar_bean->time_start);
$this->sugar_bean->time_start = $dbTime;
$this->start_time =DateTimeUtil::get_time_start($dbDate,$dbTime);
$this->end_time =DateTimeUtil::get_time_end(
$this->start_time,
$this->sugar_bean->duration_hours,
$this->sugar_bean->duration_minutes
);
}
}
Do let me know if it works!
Bookmarks