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() {
unset($expense_items);
unset($expense_item_part);
+ // Write predefined expenses.
+ $predefined_expenses = $this->getPredefinedExpenses();
+ fwrite($this->file, $this->indentation." <predefined_expenses>\n");
+ foreach ($predefined_expenses as $predefined_expense) {
+ $predefined_expense_part = $this->indentation.' '."<predefined_expense name=\"".htmlspecialchars($predefined_expense['name'])."\"";
+ $predefined_expense_part .= " cost=\"".$predefined_expense['cost']."\"";
+ $predefined_expense_part .= "></predefined_expense>\n";
+ fwrite($this->file, $predefined_expense_part);
+ }
+ fwrite($this->file, $this->indentation." </predefined_expenses>\n");
+ unset($predefined_expenses);
+ unset($predefined_expense_part);
+
// Write monthly quotas.
$quotas = ttTeamHelper::getMonthlyQuotas($this->group_id);
fwrite($this->file, $this->indentation." <monthly_quotas>\n");
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;
}
// 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'));
}