import('ttCustomFieldHelper');
import('ttFavReportHelper');
import('ttExpenseHelper');
+import('ttRoleHelper');
// ttImportHelper - this class is used to import team data from a file.
class ttImportHelper {
|| $name == 'INVOICE_HEADER'
|| $name == 'USER_PROJECT_BIND'
|| $name == 'EXPENSE_ITEM'
- || $name == 'FAV_REPORT') {
+ || $name == 'FAV_REPORT'
+ || $name == 'ROLE') {
$this->currentElement = $attrs;
}
$this->currentTag = $name;
if ($this->canImport) {
$team_id = ttTeamHelper::insert(array(
'name' => $this->teamData['NAME'],
- 'address' => $this->teamData['ADDRESS'],
'currency' => $this->teamData['CURRENCY'],
- 'lock_spec' => $this->teamData['LOCK_SPEC'],
- 'workday_hours' => $this->teamData['WORKDAY_HOURS'],
- 'lang' => $this->teamData['LANG'],
'decimal_mark' => $this->teamData['DECIMAL_MARK'],
+ 'lang' => $this->teamData['LANG'],
'date_format' => $this->teamData['DATE_FORMAT'],
'time_format' => $this->teamData['TIME_FORMAT'],
'week_start' => $this->teamData['WEEK_START'],
- 'plugins' => $this->teamData['PLUGINS'],
'tracking_mode' => $this->teamData['TRACKING_MODE'],
+ 'project_required' => $this->teamData['PROJECT_REQUIRED'],
'task_required' => $this->teamData['TASK_REQUIRED'],
- 'record_type' => $this->teamData['RECORD_TYPE']));
+ 'record_type' => $this->teamData['RECORD_TYPE'],
+ 'bcc_email' => $this->teamData['BCC_EMAIL'],
+ 'plugins' => $this->teamData['PLUGINS'],
+ 'lock_spec' => $this->teamData['LOCK_SPEC'],
+ '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) {
'invoice' => $this->invoiceMap[$this->currentElement['INVOICE_ID']],
'note' => (isset($this->currentElement['COMMENT']) ? $this->currentElement['COMMENT'] : ''),
'billable' => $this->currentElement['BILLABLE'],
+ 'paid' => $this->currentElement['PAID'],
'status' => $this->currentElement['STATUS']));
}
'name' => $this->currentElement['NAME'],
'cost' => $this->currentElement['COST'],
'invoice_id' => $this->invoiceMap[$this->currentElement['INVOICE_ID']],
+ 'paid' => $this->currentElement['PAID'],
'status' => $this->currentElement['STATUS']));
}
'period' => $this->currentElement['PERIOD'],
'from' => $this->currentElement['PERIOD_START'],
'to' => $this->currentElement['PERIOD_END'],
- 'chclient' => $this->currentElement['SHOW_CLIENT'],
- 'chinvoice' => $this->currentElement['SHOW_INVOICE'],
- 'chproject' => $this->currentElement['SHOW_PROJECT'],
- 'chstart' => $this->currentElement['SHOW_START'],
- 'chduration' => $this->currentElement['SHOW_DURATION'],
- 'chcost' => $this->currentElement['SHOW_COST'],
- 'chtask' => $this->currentElement['SHOW_TASK'],
- 'chfinish' => $this->currentElement['SHOW_END'],
- 'chnote' => $this->currentElement['SHOW_NOTE'],
- 'chcf_1' => $this->currentElement['SHOW_CUSTOM_FIELD_1'],
+ 'chclient' => (int) $this->currentElement['SHOW_CLIENT'],
+ 'chinvoice' => (int) $this->currentElement['SHOW_INVOICE'],
+ 'chpaid' => (int) $this->currentElement['SHOW_PAID'],
+ 'chproject' => (int) $this->currentElement['SHOW_PROJECT'],
+ 'chstart' => (int) $this->currentElement['SHOW_START'],
+ 'chduration' => (int) $this->currentElement['SHOW_DURATION'],
+ 'chcost' => (int) $this->currentElement['SHOW_COST'],
+ 'chtask' => (int) $this->currentElement['SHOW_TASK'],
+ 'chfinish' => (int) $this->currentElement['SHOW_END'],
+ 'chnote' => (int) $this->currentElement['SHOW_NOTE'],
+ 'chcf_1' => (int) $this->currentElement['SHOW_CUSTOM_FIELD_1'],
'group_by' => $this->currentElement['GROUP_BY'],
- 'chtotalsonly' => $this->currentElement['SHOW_TOTALS_ONLY']));
+ 'chtotalsonly' => (int) $this->currentElement['SHOW_TOTALS_ONLY']));
+ }
+
+ if ($name == 'ROLE' && $this->canImport) {
+ ttRoleHelper::insert(array(
+ 'team_id' => $this->team_id,
+ 'name' => $this->currentElement['NAME'],
+ 'rank' => $this->currentElement['RANK'],
+ 'rights' => $this->currentElement['RIGHTS'],
+ 'status' => $this->currentElement['STATUS']));
}
$this->currentTag = '';
}
|| $this->currentTag == 'LABEL'
|| $this->currentTag == 'VALUE'
|| $this->currentTag == 'COMMENT'
- || $this->currentTag == 'ADDRESS'
- || $this->currentTag == 'CLIENT_NAME'
- || $this->currentTag == 'CLIENT_ADDRESS') {
+ || $this->currentTag == 'ADDRESS') {
if (isset($this->currentElement[$this->currentTag]))
$this->currentElement[$this->currentTag] .= trim($data);
else
// startElement, endElement, and dataElement functions are called as many times as necessary.
// Actual import occurs in the endElement handler.
function importXml() {
+ global $i18n;
+
// Do we have a compressed file?
$compressed = false;
$file_ext = substr($_FILES['xmlfile']['name'], strrpos($_FILES['xmlfile']['name'], '.') + 1);
// If the file is compressed - uncompress it.
if ($compressed) {
if (!$this->uncompress($_FILES['xmlfile']['tmp_name'], $filename)) {
- $this->errors->add($GLOBALS['I18N']->getKey('error.sys'));
+ $this->errors->add($i18n->getKey('error.sys'));
return;
}
unlink($_FILES['xmlfile']['tmp_name']);
} else {
if (!move_uploaded_file($_FILES['xmlfile']['tmp_name'], $filename)) {
- $this->errors->add($GLOBALS['I18N']->getKey('error.upload'));
+ $this->errors->add($i18n->getKey('error.upload'));
return;
}
}
xml_get_current_line_number($parser)));
}
if (!$this->canImport) {
- $this->errors->add($GLOBALS['I18N']->getKey('error.user_exists'));
+ $this->errors->add($i18n->getKey('error.user_exists'));
break;
}
}
}
// 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'));
}