return false;
}
+ // getActiveRolesForUser - returns an array of relevant active roles for user with rank less than self.
+ // "Relevant" means that client roles are filtered out if Client plugin is disabled.
+ static function getActiveRolesForUser()
+ {
+ global $user;
+ $result = array();
+ $mdb2 = getConnection();
+
+ $sql = "select id, name, description, rank, rights from tt_roles where team_id = $user->team_id and rank < $user->rank and status = 1 order by rank";
+ $res = $mdb2->query($sql);
+ $result = array();
+ if (!is_a($res, 'PEAR_Error')) {
+ while ($val = $res->fetchRow()) {
+ $val['is_client'] = in_array('data_entry', explode(',', $val['rights'])) ? 0 : 1; // Clients do not have data entry right.
+ if ($val['is_client'] && !$user->isPluginEnabled('cl'))
+ continue; // Skip adding a client role/
+ $result[] = $val;
+ }
+ }
+ return $result;
+ }
+
+ // getActiveRoles - returns an array of active roles for team.
+ static function getActiveRoles($team_id)
+ {
+ $result = array();
+ $mdb2 = getConnection();
+
+ $sql = "select id, name, description, rank, rights from tt_roles where team_id = $team_id and status = 1 order by rank";
+ $res = $mdb2->query($sql);
+ $result = array();
+ if (!is_a($res, 'PEAR_Error')) {
+ while ($val = $res->fetchRow()) {
+ $val['is_client'] = in_array('data_entry', explode(',', $val['rights'])) ? 0 : 1; // Clients do not have data entry right.
+ $result[] = $val;
+ }
+ }
+ return $result;
+ }
+
+ // getInactiveRoles - returns an array of inactive roles for team.
+ static function getInactiveRoles($team_id)
+ {
+ $result = array();
+ $mdb2 = getConnection();
+
+ $sql = "select id, name, rank, description from tt_roles
+ where team_id = $team_id and status = 0 order by rank";
+ $res = $mdb2->query($sql);
+ $result = array();
+ if (!is_a($res, 'PEAR_Error')) {
+ while ($val = $res->fetchRow()) {
+ $result[] = $val;
+ }
+ }
+ return $result;
+ }
+
+ // getAllRoles - obtains all roles defined for team.
+ static function getAllRoles($team_id) {
+ $mdb2 = getConnection();
+
+ $result = array();
+ $sql = "select * from tt_roles where team_id = $team_id";
+ $res = $mdb2->query($sql);
+ $result = array();
+ if (!is_a($res, 'PEAR_Error')) {
+ while ($val = $res->fetchRow()) {
+ $result[] = $val;
+ }
+ return $result;
+ }
+ return false;
+ }
+
// The getActiveClients returns an array of active clients for team.
static function getActiveClients($team_id, $all_fields = false)
{
$mdb2 = getConnection();
$result = array();
- $sql = "select year, month, quota from tt_monthly_quotas where team_id = $team_id";
+ $sql = "select year, month, minutes from tt_monthly_quotas where team_id = $team_id";
$res = $mdb2->query($sql);
$result = array();
if (!is_a($res, 'PEAR_Error')) {
$mdb2 = getConnection();
- $decimal_mark = $fields['decimal_mark'];
- if ($decimal_mark !== null) {
- $decimal_mark_f = ', decimal_mark';
- $decimal_mark_v = ', ' . $mdb2->quote($decimal_mark);
- } else {
- $decimal_mark_f = '';
- $decimal_mark_v = '';
+ // Start with team name and currency.
+ $columns = 'name, currency';
+ $values = $mdb2->quote(trim($fields['name'])).', '.$mdb2->quote(trim($fields['currency']));
+
+ if ($fields['decimal_mark']) {
+ $columns .= ', decimal_mark';
+ $values .= ', '.$mdb2->quote($fields['decimal_mark']);
}
$lang = $fields['lang'];
global $i18n;
$lang = $i18n->lang;
}
+ $columns .= ', lang';
+ $values .= ', '.$mdb2->quote($lang);
- $date_format = $fields['date_format'];
- if ($date_format !== null) {
- $date_format_f = ', date_format';
- $date_format_v = ', ' . $mdb2->quote($date_format);
- } elseif (defined('DATE_FORMAT_DEFAULT')) {
- $date_format_f = ', date_format';
- $date_format_v = ', ' . $mdb2->quote(DATE_FORMAT_DEFAULT);
- } else {
- $date_format_f = '';
- $date_format_v = '';
+ if ($fields['date_format'] || defined('DATE_FORMAT_DEFAULT')) {
+ $date_format = $fields['date_format'] ? $fields['date_format'] : DATE_FORMAT_DEFAULT;
+ $columns .= ', date_format';
+ $values .= ', '.$mdb2->quote($date_format);
}
- $time_format = $fields['time_format'];
- if ($time_format !== null) {
- $time_format_f = ', time_format';
- $time_format_v = ', ' . $mdb2->quote($time_format);
- } elseif (defined('TIME_FORMAT_DEFAULT')) {
- $time_format_f = ', time_format';
- $time_format_v = ', ' . $mdb2->quote(TIME_FORMAT_DEFAULT);
- } else {
- $time_format_f = '';
- $time_format_v = '';
+ if ($fields['time_format'] || defined('TIME_FORMAT_DEFAULT')) {
+ $time_format = $fields['time_format'] ? $fields['time_format'] : TIME_FORMAT_DEFAULT;
+ $columns .= ', time_format';
+ $values .= ', '.$mdb2->quote($time_format);
}
- $week_start = $fields['week_start'];
- if ($week_start !== null) {
- $week_start_f = ', week_start';
- $week_start_v = ', ' . (int)$week_start;
- } elseif (defined('WEEK_START_DEFAULT')) {
- $week_start_f = ', week_start';
- $week_start_v = ', ' . (int)WEEK_START_DEFAULT;
- } else {
- $week_start_f = '';
- $week_start_v = '';
+ if ($fields['week_start'] || defined('WEEK_START_DEFAULT')) {
+ $week_start = $fields['week_start'] ? $fields['week_start'] : WEEK_START_DEFAULT;
+ $columns .= ', week_start';
+ $values .= ', '.(int)$week_start;
}
- $tracking_mode = $fields['tracking_mode'];
- if ($tracking_mode !== null) {
- $tracking_mode_f = ', tracking_mode';
- $tracking_mode_v = ', ' . (int)$tracking_mode;
- } else {
- $tracking_mode_f = '';
- $tracking_mode_v = '';
+ if ($fields['tracking_mode']) {
+ $columns .= ', tracking_mode';
+ $values .= ', '.(int)$fields['tracking_mode'];
}
- $project_required = $fields['project_required'];
- if ($project_required !== null) {
- $project_required_f = ', project_required';
- $project_required_v = ', ' . (int)$project_required;
- } else {
- $project_required_f = '';
- $project_required_v = '';
+ if ($fields['project_required']) {
+ $columns .= ', project_required';
+ $values .= ', '.(int)$fields['project_required'];
}
- $task_required = $fields['task_required'];
- if ($task_required !== null) {
- $task_required_f = ', task_required';
- $task_required_v = ', ' . (int)$task_required;
- } else {
- $task_required_f = '';
- $task_required_v = '';
+ if ($fields['task_required']) {
+ $columns .= ', task_required';
+ $values .= ', '.(int)$fields['task_required'];
}
- $record_type = $fields['record_type'];
- if ($record_type !== null) {
- $record_type_f = ', record_type';
- $record_type_v = ', ' . (int)$record_type;
- } else {
- $record_type_f = '';
- $record_type_v = '';
+ if ($fields['record_type']) {
+ $columns .= ', record_type';
+ $values .= ', '.(int)$fields['record_type'];
}
- $uncompleted_indicators = $fields['uncompleted_indicators'];
- if ($uncompleted_indicators !== null) {
- $uncompleted_indicators_f = ', uncompleted_indicators';
- $uncompleted_indicators_v = ', ' . (int)$uncompleted_indicators;
- } else {
- $uncompleted_indicators_f = '';
- $uncompleted_indicators_v = '';
+ if ($fields['bcc_email']) {
+ $columns .= ', bcc_email';
+ $values .= ', '.$mdb2->quote($fields['bcc_email']);
}
- $bcc_email = $fields['bcc_email'];
- if ($bcc_email !== null) {
- $bcc_email_f = ', bcc_email';
- $bcc_email_v = ', ' . $mdb2->quote($bcc_email);
- } else {
- $bcc_email_f = '';
- $bcc_email_v = '';
+ if ($fields['plugins']) {
+ $columns .= ', plugins';
+ $values .= ', '.$mdb2->quote($fields['plugins']);
}
- $plugins = $fields['plugins'];
- if ($plugins !== null) {
- $plugins_f = ', plugins';
- $plugins_v = ', ' . $mdb2->quote($plugins);
- } else {
- $plugins_f = '';
- $plugins_v = '';
+ if ($fields['lock_spec']) {
+ $columns .= ', lock_spec';
+ $values .= ', '.$mdb2->quote($fields['lock_spec']);
}
- $lock_spec = $fields['lock_spec'];
- if ($lock_spec !== null) {
- $lockspec_f = ', lock_spec';
- $lockspec_v = ', ' . $mdb2->quote($lock_spec);
- } else {
- $lockspec_f = '';
- $lockspec_v = '';
+ if ($fields['workday_minutes']) {
+ $columns .= ', workday_minutes';
+ $values .= ', '.(int)$fields['workday_minutes'];
}
- $workday_hours = $fields['workday_hours'];
- if ($workday_hours !== null) {
- $workday_hours_f = ', workday_hours';
- $workday_hours_v = ', ' . (int)$workday_hours;
- } else {
- $workday_hours_f = '';
- $workday_hours_v = '';
+ if ($fields['config']) {
+ $columns .= ', config';
+ $values .= ', '.$mdb2->quote($fields['config']);
}
- $sql = "insert into tt_teams (name, currency $decimal_mark_f, lang $date_format_f $time_format_f $week_start_f $tracking_mode_f $project_required_f $task_required_f $record_type_f $uncompleted_indicators_f $bcc_email_f $plugins_f $lockspec_f $workday_hours_f)
- values(".$mdb2->quote(trim($fields['name'])).
- ", ".$mdb2->quote(trim($fields['currency']))." $decimal_mark_v, ".$mdb2->quote($lang).
- "$date_format_v $time_format_v $week_start_v $tracking_mode_v $project_required_v $task_required_v $record_type_v $uncompleted_indicators_v $bcc_email_v $plugins_v $lockspec_v $workday_hours_v)";
+ $sql = "insert into tt_teams ($columns) values($values)";
$affected = $mdb2->exec($sql);
if (!is_a($affected, 'PEAR_Error')) {
$tracking_mode_part = '';
$task_required_part = ' , task_required = '.(int) $fields['task_required'];
$record_type_part = '';
- $uncompleted_indicators_part = '';
$bcc_email_part = '';
$plugins_part = '';
$config_part = '';
$lock_spec_part = '';
- $workday_hours_part = '';
+ $workday_minutes_part = '';
if (isset($fields['currency'])) $currency_part = ', currency = '.$mdb2->quote($fields['currency']);
if (isset($fields['lang'])) $lang_part = ', lang = '.$mdb2->quote($fields['lang']);
if (isset($fields['week_start'])) $week_start_part = ', week_start = '.(int) $fields['week_start'];
if (isset($fields['tracking_mode'])) $tracking_mode_part = ', tracking_mode = '.(int) $fields['tracking_mode'];
if (isset($fields['record_type'])) $record_type_part = ', record_type = '.(int) $fields['record_type'];
- if (isset($fields['uncompleted_indicators'])) $uncompleted_indicators_part = ', uncompleted_indicators = '.(int) $fields['uncompleted_indicators'];
if (isset($fields['bcc_email'])) $bcc_email_part = ', bcc_email = '.$mdb2->quote($fields['bcc_email']);
if (isset($fields['plugins'])) $plugins_part = ', plugins = '.$mdb2->quote($fields['plugins']);
if (isset($fields['config'])) $config_part = ', config = '.$mdb2->quote($fields['config']);
if (isset($fields['lock_spec'])) $lock_spec_part = ', lock_spec = '.$mdb2->quote($fields['lock_spec']);
- if (isset($fields['workday_hours'])) $workday_hours_part = ', workday_hours = '.$mdb2->quote($fields['workday_hours']);
+ if (isset($fields['workday_minutes'])) $workday_minutes_part = ', workday_minutes = '.$mdb2->quote($fields['workday_minutes']);
$sql = "update tt_teams set $name_part $currency_part $lang_part $decimal_mark_part
$date_format_part $time_format_part $week_start_part $tracking_mode_part $task_required_part $record_type_part
- $uncompleted_indicators_part $bcc_email_part $plugins_part $config_part $lock_spec_part $workday_hours_part where id = $team_id";
+ $bcc_email_part $plugins_part $config_part $lock_spec_part $workday_minutes_part where id = $team_id";
$affected = $mdb2->exec($sql);
if (is_a($affected, 'PEAR_Error')) return false;
// Delete custom fields.
if (!ttTeamHelper::deleteCustomFields($team_id)) return false;
+ // Delete roles.
+ $sql = "delete from tt_roles where team_id = $team_id";
+ $affected = $mdb2->exec($sql);
+ if (is_a($affected, 'PEAR_Error')) return false;
+
// Delete team.
$sql = "delete from tt_teams where id = $team_id";
$affected = $mdb2->exec($sql);