import('ttCustomFieldHelper');
import('ttFavReportHelper');
import('ttExpenseHelper');
+import('ttRoleHelper');
// ttImportHelper - this class is used to import team data from a file.
class ttImportHelper {
// The following arrays are maps between entity ids in the file versus the database.
// In the file they are sequential (1,2,3...) while in the database the entities have different ids.
var $userMap = array(); // User ids.
+ var $roleMap = array(); // Role ids.
var $projectMap = array(); // Project ids.
var $taskMap = array(); // Task ids.
var $clientMap = array(); // Client ids.
|| $name == 'INVOICE_HEADER'
|| $name == 'USER_PROJECT_BIND'
|| $name == 'EXPENSE_ITEM'
- || $name == 'FAV_REPORT') {
+ || $name == 'FAV_REPORT'
+ || $name == 'ROLE') {
$this->currentElement = $attrs;
}
$this->currentTag = $name;
'project_required' => $this->teamData['PROJECT_REQUIRED'],
'task_required' => $this->teamData['TASK_REQUIRED'],
'record_type' => $this->teamData['RECORD_TYPE'],
- 'uncompleted_indicators' => $this->teamData['UNCOMPLETED_INDICATORS'],
'bcc_email' => $this->teamData['BCC_EMAIL'],
'plugins' => $this->teamData['PLUGINS'],
'lock_spec' => $this->teamData['LOCK_SPEC'],
- 'workday_hours' => $this->teamData['WORKDAY_HOURS']));
+ 'workday_minutes' => $this->teamData['WORKDAY_MINUTES'],
+ 'config' => $this->teamData['CONFIG']));
if ($team_id) {
$this->team_id = $team_id;
foreach ($this->users as $key=>$user_item) {
}
if ($name == 'MONTHLY_QUOTA' && $this->canImport) {
- $this->insertMonthlyQuota($this->team_id, $this->currentElement['YEAR'], $this->currentElement['MONTH'], $this->currentElement['QUOTA']);
+ $this->insertMonthlyQuota($this->team_id, $this->currentElement['YEAR'], $this->currentElement['MONTH'], $this->currentElement['MINUTES']);
}
if ($name == 'LOG_ITEM' && $this->canImport) {
'group_by' => $this->currentElement['GROUP_BY'],
'chtotalsonly' => (int) $this->currentElement['SHOW_TOTALS_ONLY']));
}
+
+ if ($name == 'ROLE' && $this->canImport) {
+ $this->roleMap[$this->currentElement['ID']] = ttRoleHelper::insert(array(
+ 'team_id' => $this->team_id,
+ 'name' => $this->currentElement['NAME'],
+ 'rank' => $this->currentElement['RANK'],
+ 'rights' => $this->currentElement['RIGHTS'],
+ 'status' => $this->currentElement['STATUS']));
+
+ // Update role_id for tt_users to a mapped value.
+ // We did not do it during user insertion because roleMap was not ready then.
+ // TODO: write setMappedRole function.
+ /*
+ if ($this->currentElement['ID'] != $this->roleMap[$this->currentElement['ID']])
+ ttRoleHelper::setMappedRole($this->team_id, $this->currentElement['ID'], $this->roleMap[$this->currentElement['ID']]);
+ */
+ }
$this->currentTag = '';
}
}
// insertMonthlyQuota - a helper function to insert a monthly quota.
- private function insertMonthlyQuota($team_id, $year, $month, $quota) {
+ private function insertMonthlyQuota($team_id, $year, $month, $minutes) {
$mdb2 = getConnection();
- $sql = "INSERT INTO tt_monthly_quotas (team_id, year, month, quota) values ($team_id, $year, $month, $quota)";
+ $sql = "INSERT INTO tt_monthly_quotas (team_id, year, month, minutes) values ($team_id, $year, $month, $minutes)";
$affected = $mdb2->exec($sql);
return (!is_a($affected, 'PEAR_Error'));
}