$this->current_group_id = $this->createGroup(array(
'parent_id' => $this->current_group_id, // Note: after insert current_group_id changes.
'org_id' => $this->org_id,
+ 'group_key' => $attrs['GROUP_KEY'],
'name' => $attrs['NAME'],
'description' => $attrs['DESCRIPTION'],
'currency' => $attrs['CURRENCY'],
'project_id' => $this->currentGroupProjectMap[$attrs['PROJECT_ID']],
'name' => $attrs['NAME'],
'comment' => $attrs['COMMENT'],
- // TODO: add handling of these.
- //`start_date` date NOT NULL, # timesheet start date
- //`end_date` date NOT NULL, # timesheet end date
+ 'start_date' => $attrs['START_DATE'],
+ 'end_date' => $attrs['END_DATE'],
'submit_status' => $attrs['SUBMIT_STATUS'],
'approve_status' => $attrs['APPROVE_STATUS'],
'approve_comment' => $attrs['APPROVE_COMMENT'],
return;
}
+ if ($name == 'TEMPLATE') {
+ if (!$this->insertTemplate(array(
+ 'group_id' => $this->current_group_id,
+ 'org_id' => $this->org_id,
+ 'name' => $attrs['NAME'],
+ 'description' => $attrs['DESCRIPTION'],
+ 'content' => $attrs['CONTENT'],
+ 'status' => $attrs['STATUS']))) {
+ $this->errors->add($i18n->get('error.db'));
+ }
+ return;
+ }
+
if ($name == 'MONTHLY_QUOTA') {
if (!$this->insertMonthlyQuota(array(
'group_id' => $this->current_group_id,
global $i18n;
$mdb2 = getConnection();
- $columns = '(parent_id, org_id, name, description, currency, decimal_mark, lang, date_format, time_format'.
- ', week_start, tracking_mode, project_required, task_required, record_type, bcc_email'.
- ', allow_ip, password_complexity, plugins, lock_spec'.
- ', workday_minutes, config, created, created_ip, created_by)';
+ $columns = '(parent_id, org_id, group_key, name, description, currency, decimal_mark, lang, date_format, time_format,'.
+ ' week_start, tracking_mode, project_required, task_required, record_type, bcc_email,'.
+ ' allow_ip, password_complexity, plugins, lock_spec,'.
+ ' workday_minutes, config, created, created_ip, created_by)';
$values = ' values (';
$values .= $mdb2->quote($fields['parent_id']);
$values .= ', '.$mdb2->quote($fields['org_id']);
+ $values .= ', '.$mdb2->quote(trim($fields['group_key']));
$values .= ', '.$mdb2->quote(trim($fields['name']));
$values .= ', '.$mdb2->quote(trim($fields['description']));
$values .= ', '.$mdb2->quote(trim($fields['currency']));
return (!is_a($affected, 'PEAR_Error'));
}
+ // insertTemplate - a helper function to insert a template.
+ private function insertTemplate($fields) {
+ $mdb2 = getConnection();
+
+ $group_id = (int) $fields['group_id'];
+ $org_id = (int) $fields['org_id'];
+ $name = $mdb2->quote($fields['name']);
+ $description = $mdb2->quote($fields['description']);
+ $content = $mdb2->quote($fields['content']);
+ $status = $mdb2->quote($fields['status']);
+
+ $sql = "INSERT INTO tt_templates (group_id, org_id, name, description, content, status)".
+ " values ($group_id, $org_id, $name, $description, $content, $status)";
+ $affected = $mdb2->exec($sql);
+ return (!is_a($affected, 'PEAR_Error'));
+ }
+
// insertExpense - a helper function to insert an expense item.
private function insertExpense($fields) {
global $user;
$user_id = (int) $fields['user_id'];
$client_id = $fields['client_id'];
$project_id = $fields['project_id'];
- $timesheet_id = $fields['timesheet_id'];
$name = $fields['name'];
$cost = str_replace(',', '.', $fields['cost']);
$invoice_id = $fields['invoice_id'];
$created = ', now(), '.$mdb2->quote($_SERVER['REMOTE_ADDR']).', '.$user->id;
$sql = "insert into tt_expense_items".
- " (date, user_id, group_id, org_id, client_id, project_id, timesheet_id, name,".
+ " (date, user_id, group_id, org_id, client_id, project_id, name,".
" cost, invoice_id, approved, paid, created, created_ip, created_by, status)".
" values (".$mdb2->quote($date).", $user_id, $group_id, $org_id, ".$mdb2->quote($client_id).", ".$mdb2->quote($project_id).
- ", ".$mdb2->quote($timesheet_id).", ".$mdb2->quote($name).", ".$mdb2->quote($cost).", ".$mdb2->quote($invoice_id).
+ ", ".$mdb2->quote($name).", ".$mdb2->quote($cost).", ".$mdb2->quote($invoice_id).
", $approved, $paid $created, ".$mdb2->quote($status).")";
$affected = $mdb2->exec($sql);
return (!is_a($affected, 'PEAR_Error'));
$group_id = (int) $fields['group_id'];
$org_id = (int) $fields['org_id'];
$client_id = $fields['client_id'];
+ $project_id = $fields['project_id'];
$name = $fields['name'];
+ $comment = $fields['comment'];
+ $start_date = $fields['start_date'];
+ $end_date = $fields['end_date'];
$submit_status = $fields['submit_status'];
- $submitter_comment = $fields['submitter_comment'];
- $approval_status = $fields['approval_status'];
- $manager_comment = $fields['manager_comment'];
+ $approve_status = $fields['approve_status'];
+ $approve_comment = $fields['approve_comment'];
$status = $fields['status'];
// Insert a new timesheet record.
- $sql = "insert into tt_timesheets (user_id, group_id, org_id, client_id, name,".
- " submit_status, submitter_comment, approval_status, manager_comment, status)".
- " values($user_id, $group_id, $org_id, ".$mdb2->quote($client_id).", ".$mdb2->quote($name).", ".
- $mdb2->quote($fields['submit_status']).", ".$mdb2->quote($fields['submiter_comment']).", ".
- $mdb2->quote($fields['approval_status']).", ".$mdb2->quote($fields['manager_comment']).", ".$mdb2->quote($fields['status']).")";
+ $sql = "insert into tt_timesheets (user_id, group_id, org_id, client_id, project_id, name,".
+ " comment, start_date, end_date, submit_status, approve_status, approve_comment, status)".
+ " values($user_id, $group_id, $org_id, ".$mdb2->quote($client_id).", ".$mdb2->quote($project_id).", ".$mdb2->quote($name).", ".
+ $mdb2->quote($comment).", ".$mdb2->quote($start_date).", ".$mdb2->quote($end_date).", ".
+ $mdb2->quote($submit_status).", ".$mdb2->quote($approve_status).", ".
+ $mdb2->quote($approve_comment).", ".$mdb2->quote($status).")";
$affected = $mdb2->exec($sql);
if (is_a($affected, 'PEAR_Error')) return false;