From: Nik Okuntseff Date: Sat, 17 Nov 2018 15:40:55 +0000 (+0000) Subject: Added predefined expenses to export-import. X-Git-Tag: timetracker_1.19-1~632 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=c13d7023d283bda30121b8c9be56f982feeed89c;p=timetracker.git Added predefined expenses to export-import. --- diff --git a/WEB-INF/lib/ttGroupExportHelper.class.php b/WEB-INF/lib/ttGroupExportHelper.class.php index 4e6daad2..0e4777a2 100644 --- a/WEB-INF/lib/ttGroupExportHelper.class.php +++ b/WEB-INF/lib/ttGroupExportHelper.class.php @@ -174,6 +174,24 @@ class ttGroupExportHelper { return false; } + // getPredefinedExpenses - obtains all predefined expenses for group. + function getPredefinedExpenses() { + global $user; + $mdb2 = getConnection(); + + $result = array(); + $sql = "select * from tt_predefined_expenses where group_id = $this->group_id"; // TODO: add " and org_id = $user->org_id" when possible. + $res = $mdb2->query($sql); + $result = array(); + if (!is_a($res, 'PEAR_Error')) { + while ($val = $res->fetchRow()) { + $result[] = $val; + } + return $result; + } + return false; + } + // writeData writes group data into file. function writeData() { @@ -467,6 +485,19 @@ class ttGroupExportHelper { unset($expense_items); unset($expense_item_part); + // Write predefined expenses. + $predefined_expenses = $this->getPredefinedExpenses(); + fwrite($this->file, $this->indentation." \n"); + foreach ($predefined_expenses as $predefined_expense) { + $predefined_expense_part = $this->indentation.' '."file, $predefined_expense_part); + } + fwrite($this->file, $this->indentation." \n"); + unset($predefined_expenses); + unset($predefined_expense_part); + // Write monthly quotas. $quotas = ttTeamHelper::getMonthlyQuotas($this->group_id); fwrite($this->file, $this->indentation." \n"); diff --git a/WEB-INF/lib/ttOrgImportHelper.class.php b/WEB-INF/lib/ttOrgImportHelper.class.php index 3afe2694..9f5dd788 100644 --- a/WEB-INF/lib/ttOrgImportHelper.class.php +++ b/WEB-INF/lib/ttOrgImportHelper.class.php @@ -431,12 +431,24 @@ class ttOrgImportHelper { return; } + if ($name == 'PREDEFINED_EXPENSE') { + if (!$this->insertPredefinedExpense(array( + 'group_id' => $this->current_group_id, + 'org_id' => $this->org_id, + 'name' => $attrs['NAME'], + 'cost' => $attrs['COST']))) { + $this->errors->add($i18n->get('error.db')); + } + return; + } + if ($name == 'MONTHLY_QUOTA') { - if (!$this->insertMonthlyQuota($this->current_group_id, - // 'org_id' => $this->org_id, TODO: add this when org_id field is added to the table. - $attrs['YEAR'], - $attrs['MONTH'], - $attrs['MINUTES'])) { + if (!$this->insertMonthlyQuota(array( + 'group_id' => $this->current_group_id, + 'org_id' => $this->org_id, + 'year' => $attrs['YEAR'], + 'month' => $attrs['MONTH'], + 'minutes' => $attrs['MINUTES']))) { $this->errors->add($i18n->get('error.db')); } return; @@ -640,9 +652,30 @@ class ttOrgImportHelper { } // insertMonthlyQuota - a helper function to insert a monthly quota. - private function insertMonthlyQuota($group_id, $year, $month, $minutes) { + private function insertMonthlyQuota($fields) { + $mdb2 = getConnection(); + $group_id = (int) $fields['group_id']; + $org_id = (int) $fields['org_id']; + $year = (int) $fields['year']; + $month = (int) $fields['month']; + $minutes = (int) $fields['minutes']; + + $sql = "INSERT INTO tt_monthly_quotas (group_id, org_id, year, month, minutes)". + " values ($group_id, $org_id, $year, $month, $minutes)"; + $affected = $mdb2->exec($sql); + return (!is_a($affected, 'PEAR_Error')); + } + + // insertPredefinedExpense - a helper function to insert a predefined expense. + private function insertPredefinedExpense($fields) { $mdb2 = getConnection(); - $sql = "INSERT INTO tt_monthly_quotas (group_id, year, month, minutes) values ($group_id, $year, $month, $minutes)"; + $group_id = (int) $fields['group_id']; + $org_id = (int) $fields['org_id']; + $name = $mdb2->quote($fields['name']); + $cost = $mdb2->quote($fields['cost']); + + $sql = "INSERT INTO tt_predefined_expenses (group_id, org_id, name, cost)". + " values ($group_id, $org_id, $name, $cost)"; $affected = $mdb2->exec($sql); return (!is_a($affected, 'PEAR_Error')); } diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index a7e71cff..60ca1c16 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
-
 Anuko Time Tracker 1.18.16.4439 | Copyright © Anuko | +  Anuko Time Tracker 1.18.16.4440 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve}