From: Nik Okuntseff Date: Sat, 20 Jan 2018 23:59:36 +0000 (+0000) Subject: Fixed export-import to accommodate new fields. X-Git-Tag: timetracker_1.19-1~1357 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/timetracker.git/commitdiff_plain/a0b1d0a4dfd23d96f60c2fe03c9b3682df2fe88f?hp=2bfbf9aa34b4e672ceba72003e294a0a6c5c7972 Fixed export-import to accommodate new fields. --- diff --git a/WEB-INF/lib/ttExportHelper.class.php b/WEB-INF/lib/ttExportHelper.class.php index aa8f6c76..a3f6485d 100644 --- a/WEB-INF/lib/ttExportHelper.class.php +++ b/WEB-INF/lib/ttExportHelper.class.php @@ -61,11 +61,12 @@ class ttExportHelper { fwrite($file, "\n"); // Write team info. - fwrite($file, "currency."\" lock_spec=\"".$user->lock_spec."\" lang=\"".$user->lang. - "\" decimal_mark=\"".$user->decimal_mark."\" date_format=\"".$user->date_format."\" time_format=\"".$user->time_format. - "\" week_start=\"".$user->week_start."\" workday_hours=\"".$user->workday_hours. - "\" plugins=\"".$user->plugins."\" tracking_mode=\"".$user->tracking_mode."\" task_required=\"".$user->task_required. - "\" record_type=\"".$user->record_type."\">\n"); + fwrite($file, "currency."\" decimal_mark=\"".$user->decimal_mark."\" lang=\"".$user->lang. + "\" date_format=\"".$user->date_format."\" time_format=\"".$user->time_format."\" week_start=\"".$user->week_start. + "\" tracking_mode=\"".$user->tracking_mode."\" project_required=\"".$user->project_required."\" task_required=\"".$user->task_required. + "\" record_type=\"".$user->record_type."\" uncompleted_indicators=\"".$user->uncompleted_indicators."\" bcc_email=\"".$user->bcc_email. + "\" plugins=\"".$user->plugins."\" lock_spec=\"".$user->lock_spec."\" workday_hours=\"".$user->workday_hours. + "\">\n"); fwrite($file, " team."]]>\n"); fwrite($file, "\n"); @@ -217,7 +218,7 @@ class ttExportHelper { foreach ($records as $record) { $key++; $this->logMap[$record['id']] = $key; - fwrite($file, " userMap[$record['user_id']]."\" date=\"".$record['date']."\" start=\"".$record['start']."\" finish=\"".$record['finish']."\" duration=\"".($record['start']?"":$record['duration'])."\" client_id=\"".$this->clientMap[$record['client_id']]."\" project_id=\"".$this->projectMap[$record['project_id']]."\" task_id=\"".$this->taskMap[$record['task_id']]."\" invoice_id=\"".$this->invoiceMap[$record['invoice_id']]."\" billable=\"".$record['billable']."\" status=\"".$record['status']."\">\n"); + fwrite($file, " userMap[$record['user_id']]."\" date=\"".$record['date']."\" start=\"".$record['start']."\" finish=\"".$record['finish']."\" duration=\"".($record['start']?"":$record['duration'])."\" client_id=\"".$this->clientMap[$record['client_id']]."\" project_id=\"".$this->projectMap[$record['project_id']]."\" task_id=\"".$this->taskMap[$record['task_id']]."\" invoice_id=\"".$this->invoiceMap[$record['invoice_id']]."\" billable=\"".$record['billable']."\" paid=\"".$record['paid']."\" status=\"".$record['status']."\">\n"); fwrite($file, " \n"); fwrite($file, " \n"); } diff --git a/WEB-INF/lib/ttImportHelper.class.php b/WEB-INF/lib/ttImportHelper.class.php index 99b35e41..753dc165 100644 --- a/WEB-INF/lib/ttImportHelper.class.php +++ b/WEB-INF/lib/ttImportHelper.class.php @@ -117,17 +117,20 @@ class ttImportHelper { $team_id = ttTeamHelper::insert(array( 'name' => $this->teamData['NAME'], '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'], + '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'])); if ($team_id) { $this->team_id = $team_id; foreach ($this->users as $key=>$user_item) { @@ -231,6 +234,7 @@ class ttImportHelper { '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'])); } diff --git a/WEB-INF/lib/ttTeamHelper.class.php b/WEB-INF/lib/ttTeamHelper.class.php index 0f3358f6..61271237 100644 --- a/WEB-INF/lib/ttTeamHelper.class.php +++ b/WEB-INF/lib/ttTeamHelper.class.php @@ -636,21 +636,6 @@ class ttTeamHelper { $mdb2 = getConnection(); - $lock_spec = $fields['lock_spec']; - if ($lock_spec !== null) { - $lockspec_f = ', lock_spec'; - $lockspec_v = ', ' . $mdb2->quote($lock_spec); - } else { - $lockspec_f = ''; - $lockspec_v = ''; - } - - $lang = $fields['lang']; - if (!$lang) { - global $i18n; - $lang = $i18n->lang; - } - $decimal_mark = $fields['decimal_mark']; if ($decimal_mark !== null) { $decimal_mark_f = ', decimal_mark'; @@ -660,6 +645,12 @@ class ttTeamHelper { $decimal_mark_v = ''; } + $lang = $fields['lang']; + if (!$lang) { + global $i18n; + $lang = $i18n->lang; + } + $date_format = $fields['date_format']; if ($date_format !== null) { $date_format_f = ', date_format'; @@ -696,15 +687,6 @@ class ttTeamHelper { $week_start_v = ''; } - $plugins = $fields['plugins']; - if ($plugins !== null) { - $plugins_f = ', plugins'; - $plugins_v = ', ' . $mdb2->quote($plugins); - } else { - $plugins_f = ''; - $plugins_v = ''; - } - $tracking_mode = $fields['tracking_mode']; if ($tracking_mode !== null) { $tracking_mode_f = ', tracking_mode'; @@ -714,6 +696,15 @@ class ttTeamHelper { $tracking_mode_v = ''; } + $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 = ''; + } + $task_required = $fields['task_required']; if ($task_required !== null) { $task_required_f = ', task_required'; @@ -741,6 +732,33 @@ class ttTeamHelper { $uncompleted_indicators_v = ''; } + $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 = ''; + } + + $plugins = $fields['plugins']; + if ($plugins !== null) { + $plugins_f = ', plugins'; + $plugins_v = ', ' . $mdb2->quote($plugins); + } else { + $plugins_f = ''; + $plugins_v = ''; + } + + $lock_spec = $fields['lock_spec']; + if ($lock_spec !== null) { + $lockspec_f = ', lock_spec'; + $lockspec_v = ', ' . $mdb2->quote($lock_spec); + } else { + $lockspec_f = ''; + $lockspec_v = ''; + } + $workday_hours = $fields['workday_hours']; if ($workday_hours !== null) { $workday_hours_f = ', workday_hours'; @@ -750,10 +768,10 @@ class ttTeamHelper { $workday_hours_v = ''; } - $sql = "insert into tt_teams (name, currency $lockspec_f, lang $decimal_mark_f $date_format_f $time_format_f $week_start_f $plugins_f $tracking_mode_f $task_required_f $record_type_f $uncompleted_indicators_f $workday_hours_f) + $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']))." $lockspec_v, ".$mdb2->quote($lang). - "$decimal_mark_v $date_format_v $time_format_v $week_start_v $plugins_v $tracking_mode_v $task_required_v $record_type_v $uncompleted_indicators_v $workday_hours_v)"; + ", ".$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)"; $affected = $mdb2->exec($sql); if (!is_a($affected, 'PEAR_Error')) { diff --git a/WEB-INF/lib/ttTimeHelper.class.php b/WEB-INF/lib/ttTimeHelper.class.php index 9d3f8bbe..44a1a8cf 100644 --- a/WEB-INF/lib/ttTimeHelper.class.php +++ b/WEB-INF/lib/ttTimeHelper.class.php @@ -370,6 +370,7 @@ class ttTimeHelper { $invoice = $fields['invoice']; $note = $fields['note']; $billable = $fields['billable']; + $paid = $fields['paid']; if (array_key_exists('status', $fields)) { // Key exists and may be NULL during migration of data. $status_f = ', status'; $status_v = ', '.$mdb2->quote($fields['status']); @@ -390,10 +391,11 @@ class ttTimeHelper { } if (!$billable) $billable = 0; + if (!$paid) $paid = 0; if ($duration) { - $sql = "insert into tt_log (timestamp, user_id, date, duration, client_id, project_id, task_id, invoice_id, comment, billable $status_f) ". - "values ('$timestamp', $user_id, ".$mdb2->quote($date).", '$duration', ".$mdb2->quote($client).", ".$mdb2->quote($project).", ".$mdb2->quote($task).", ".$mdb2->quote($invoice).", ".$mdb2->quote($note).", $billable $status_v)"; + $sql = "insert into tt_log (timestamp, user_id, date, duration, client_id, project_id, task_id, invoice_id, comment, billable, paid $status_f) ". + "values ('$timestamp', $user_id, ".$mdb2->quote($date).", '$duration', ".$mdb2->quote($client).", ".$mdb2->quote($project).", ".$mdb2->quote($task).", ".$mdb2->quote($invoice).", ".$mdb2->quote($note).", $billable, $paid $status_v)"; $affected = $mdb2->exec($sql); if (is_a($affected, 'PEAR_Error')) return false; @@ -403,7 +405,7 @@ class ttTimeHelper { if (!$duration && ttTimeHelper::getUncompleted($user_id)) return false; $sql = "insert into tt_log (timestamp, user_id, date, start, duration, client_id, project_id, task_id, invoice_id, comment, billable $status_f) ". - "values ('$timestamp', $user_id, ".$mdb2->quote($date).", '$start', '$duration', ".$mdb2->quote($client).", ".$mdb2->quote($project).", ".$mdb2->quote($task).", ".$mdb2->quote($invoice).", ".$mdb2->quote($note).", $billable $status_v)"; + "values ('$timestamp', $user_id, ".$mdb2->quote($date).", '$start', '$duration', ".$mdb2->quote($client).", ".$mdb2->quote($project).", ".$mdb2->quote($task).", ".$mdb2->quote($invoice).", ".$mdb2->quote($note).", $billable, $paid $status_v)"; $affected = $mdb2->exec($sql); if (is_a($affected, 'PEAR_Error')) return false; @@ -625,7 +627,7 @@ class ttTimeHelper { $sql = "select l.id, l.timestamp, l.user_id, l.date, TIME_FORMAT(l.start, '%k:%i') as start, TIME_FORMAT(sec_to_time(time_to_sec(l.start) + time_to_sec(l.duration)), '%k:%i') as finish, TIME_FORMAT(l.duration, '%k:%i') as duration, - l.client_id, l.project_id, l.task_id, l.invoice_id, l.comment, l.billable, l.status + l.client_id, l.project_id, l.task_id, l.invoice_id, l.comment, l.billable, l.paid, l.status from tt_log l where l.user_id = $user_id order by l.id"; $res = $mdb2->query($sql); if (!is_a($res, 'PEAR_Error')) { diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index 2c504cff..c02ed1e1 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
-
 Anuko Time Tracker 1.15.0.3762 | Copyright © Anuko | +  Anuko Time Tracker 1.15.1.3763 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} diff --git a/WEB-INF/templates/profile_edit.tpl b/WEB-INF/templates/profile_edit.tpl index 4a05bb0a..e766ffb8 100644 --- a/WEB-INF/templates/profile_edit.tpl +++ b/WEB-INF/templates/profile_edit.tpl @@ -172,8 +172,8 @@ function handlePluginCheckboxes() { {/if} {* initialize preview text *}