// Handle localized fractional hours.
global $user;
- $localizedPattern = '/^(\d{1,3})?['.$user->decimal_mark.'][0-9]{1,4}h?$/';
+ $localizedPattern = '/^(\d{1,3})?['.$user->getDecimalMark().'][0-9]{1,4}h?$/';
if (preg_match($localizedPattern, $duration )) { // decimal values like .5, 1.25h, ... .. 999.9999h (or with comma)
- if ($user->decimal_mark == ',')
+ if ($user->getDecimalMark() == ',')
$duration = str_replace (',', '.', $duration);
$minutes = (int)round(60 * floatval($duration));
}
// delete - deletes a record from tt_log table and its associated custom field values.
- static function delete($id, $user_id) {
+ static function delete($id) {
+ global $user;
$mdb2 = getConnection();
- $sql = "update tt_log set status = NULL where id = $id and user_id = $user_id";
+ $user_id = $user->getUser();
+ $group_id = $user->getGroup();
+ $org_id = $user->org_id;
+
+ $sql = "update tt_log set status = null".
+ " where id = $id and user_id = $user_id and group_id = $group_id and org_id = $org_id";
$affected = $mdb2->exec($sql);
if (is_a($affected, 'PEAR_Error'))
return false;
- $sql = "update tt_custom_field_log set status = NULL where log_id = $id";
+ $sql = "update tt_custom_field_log set status = null".
+ " where log_id = $id and group_id = $group_id and org_id = $org_id";
$affected = $mdb2->exec($sql);
if (is_a($affected, 'PEAR_Error'))
return false;
}
// getTimeForDay - gets total time for a user for a specific date.
- static function getTimeForDay($user_id, $date) {
+ static function getTimeForDay($date) {
+ global $user;
$mdb2 = getConnection();
- $sql = "select sum(time_to_sec(duration)) as sm from tt_log where user_id = $user_id and date = '$date' and status = 1";
+ $user_id = $user->getUser();
+ $group_id = $user->getGroup();
+ $org_id = $user->org_id;
+
+ $sql = "select sum(time_to_sec(duration)) as sm from tt_log".
+ " where user_id = $user_id and group_id = $group_id and org_id = $org_id and date = '$date' and status = 1";
$res = $mdb2->query($sql);
if (!is_a($res, 'PEAR_Error')) {
$val = $res->fetchRow();
}
// getTimeForWeek - gets total time for a user for a given week.
- static function getTimeForWeek($user_id, $date) {
+ static function getTimeForWeek($date) {
+ global $user;
import('Period');
$mdb2 = getConnection();
+ $user_id = $user->getUser();
+ $group_id = $user->getGroup();
+ $org_id = $user->org_id;
+
$period = new Period(INTERVAL_THIS_WEEK, $date);
- $sql = "select sum(time_to_sec(duration)) as sm from tt_log where user_id = $user_id and date >= '".$period->getStartDate(DB_DATEFORMAT)."' and date <= '".$period->getEndDate(DB_DATEFORMAT)."' and status = 1";
+ $sql = "select sum(time_to_sec(duration)) as sm from tt_log".
+ " where user_id = $user_id and group_id = $group_id and org_id = $org_id".
+ " and date >= '".$period->getStartDate(DB_DATEFORMAT)."' and date <= '".$period->getEndDate(DB_DATEFORMAT)."' and status = 1";
$res = $mdb2->query($sql);
if (!is_a($res, 'PEAR_Error')) {
$val = $res->fetchRow();
return sec_to_time_fmt_hm($val['sm']);
}
- return 0;
+ return false;
}
// getTimeForMonth - gets total time for a user for a given month.
- static function getTimeForMonth($user_id, $date){
+ static function getTimeForMonth($date) {
+ global $user;
import('Period');
$mdb2 = getConnection();
+ $user_id = $user->getUser();
+ $group_id = $user->getGroup();
+ $org_id = $user->org_id;
+
$period = new Period(INTERVAL_THIS_MONTH, $date);
- $sql = "select sum(time_to_sec(duration)) as sm from tt_log where user_id = $user_id and date >= '".$period->getStartDate(DB_DATEFORMAT)."' and date <= '".$period->getEndDate(DB_DATEFORMAT)."' and status = 1";
+ $sql = "select sum(time_to_sec(duration)) as sm from tt_log".
+ " where user_id = $user_id and group_id = $group_id and org_id = $org_id".
+ " and date >= '".$period->getStartDate(DB_DATEFORMAT)."' and date <= '".$period->getEndDate(DB_DATEFORMAT)."' and status = 1";
$res = $mdb2->query($sql);
if (!is_a($res, 'PEAR_Error')) {
$val = $res->fetchRow();
return sec_to_time_fmt_hm($val['sm']);
}
- return 0;
+ return false;
}
// getUncompleted - retrieves an uncompleted record for user, if one exists.
// getRecords - returns time records for a user for a given date.
static function getRecords($user_id, $date) {
global $user;
+ $mdb2 = getConnection();
+
+ $group_id = $user->getGroup();
+ $org_id = $user->org_id;
+
$sql_time_format = "'%k:%i'"; // 24 hour format.
- if ('%I:%M %p' == $user->time_format)
+ if ('%I:%M %p' == $user->getTimeFormat())
$sql_time_format = "'%h:%i %p'"; // 12 hour format for MySQL TIME_FORMAT function.
- $result = array();
- $mdb2 = getConnection();
-
$client_field = null;
if ($user->isPluginEnabled('cl'))
$client_field = ", c.name as client";
if ($user->isPluginEnabled('cl'))
$left_joins .= " left join tt_clients c on (l.client_id = c.id)";
+ $result = array();
$sql = "select l.id as id, TIME_FORMAT(l.start, $sql_time_format) as start,
TIME_FORMAT(sec_to_time(time_to_sec(l.start) + time_to_sec(l.duration)), $sql_time_format) as finish,
TIME_FORMAT(l.duration, '%k:%i') as duration, p.name as project, t.name as task, l.comment, l.billable, l.invoice_id $client_field
from tt_log l
$left_joins
- where l.date = '$date' and l.user_id = $user_id and l.status = 1
+ where l.date = '$date' and l.user_id = $user_id and l.group_id = $group_id and l.org_id = $org_id and l.status = 1
order by l.start, l.id";
$res = $mdb2->query($sql);
if (!is_a($res, 'PEAR_Error')) {
return $result;
}
+
+ // canAdd determines if we can add a record in case there is a limit.
+ static function canAdd() {
+ $mdb2 = getConnection();
+ $sql = "select param_value from tt_site_config where param_name = 'exp_date'";
+ $res = $mdb2->query($sql);
+ $val = $res->fetchRow();
+ if (!$val) return true; // No expiration date.
+
+ if (strtotime($val['param_value']) > time())
+ return true; // Expiration date exists but not reached.
+
+ return false;
+ }
}