$time_a = explode(':', $value);
if ($time_a[0] > 12)
$res = (string)((int)$time_a[0] - 12).':'.$time_a[1].' PM';
- else if ($time_a[0] == 12)
+ elseif ($time_a[0] == 12)
$res = $value.' PM';
- else if ($time_a[0] == 0)
+ elseif ($time_a[0] == 0)
$res = '12:'.$time_a[1].' AM';
else
$res = $value.' AM';
$duration = ttTimeHelper::normalizeDuration($duration);
if (!$timestamp) {
- $timestamp = date('YmdHis');//yyyymmddhhmmss
+ $timestamp = date('YmdHis'); //yyyymmddhhmmss
+ // TODO: this timestamp could be illegal if we hit inside DST switch deadzone, such as '2016-03-13 02:30:00'
+ // Anything between 2am and 3am on DST introduction date will not work if we run on a system with DST on.
+ // We need to address this properly to avoid potential complications.
}
if (!$billable) $billable = 0;
static function getUncompleted($user_id) {
$mdb2 = getConnection();
- $sql = "select id from tt_log
+ $sql = "select id, start from tt_log
where user_id = $user_id and start is not null and time_to_sec(duration) = 0 and status = 1";
$res = $mdb2->query($sql);
if (!is_a($res, 'PEAR_Error')) {
// $finish - new record finish time, may be null
// $record_id - optional record id we may be editing, excluded from overlap set
static function overlaps($user_id, $date, $start, $finish, $record_id = null) {
+ // Do not bother checking if we allow overlaps.
+ if (defined('ALLOW_OVERLAP') && ALLOW_OVERLAP == true)
+ return false;
+
$mdb2 = getConnection();
$start = ttTimeHelper::to24HourFormat($start);
$mdb2 = getConnection();
$client_field = null;
- if (in_array('cl', explode(',', $user->plugins)))
+ if ($user->isPluginEnabled('cl'))
$client_field = ", c.name as client";
$left_joins = " left join tt_projects p on (l.project_id = p.id)".
" left join tt_tasks t on (l.task_id = t.id)";
- if (in_array('cl', explode(',', $user->plugins)))
+ if ($user->isPluginEnabled('cl'))
$left_joins .= " left join tt_clients c on (l.client_id = c.id)";
$sql = "select l.id as id, TIME_FORMAT(l.start, $sql_time_format) as start,
}
}
-?>
\ No newline at end of file