X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2FttGroupExportHelper.class.php;h=fecfba8a83757894577cb4e2413863a864250c16;hb=56f1fd19f2c9c72878395b3275f03f192ccca082;hp=4a2eb7859ca1d0f060974c44f5a4e084c5100ef7;hpb=414ac81236ce044edc1ee194e58238d3a216c934;p=timetracker.git diff --git a/WEB-INF/lib/ttGroupExportHelper.class.php b/WEB-INF/lib/ttGroupExportHelper.class.php index 4a2eb785..fecfba8a 100644 --- a/WEB-INF/lib/ttGroupExportHelper.class.php +++ b/WEB-INF/lib/ttGroupExportHelper.class.php @@ -45,6 +45,8 @@ class ttGroupExportHelper { var $taskMap = array(); // Task ids. var $projectMap = array(); // Project ids. var $clientMap = array(); // Client ids. + var $invoiceMap = array(); // Invoice ids. + var $logMap = array(); // Time log ids. // Constructor. function __construct($group_id, $file, $indentation) { @@ -224,6 +226,11 @@ class ttGroupExportHelper { foreach ($clients as $key=>$client_item) $this->clientMap[$client_item['id']] = $key + 1; + // Prepare invoice map. + $invoices = ttTeamHelper::getAllInvoices(); + foreach ($invoices as $key=>$invoice_item) + $this->invoiceMap[$invoice_item['id']] = $key + 1; + // Write roles. fwrite($this->file, $this->indentation." \n"); foreach ($roles as $role) { @@ -309,6 +316,63 @@ class ttGroupExportHelper { } fwrite($this->file, $this->indentation." \n"); + // Write user to project binds. + fwrite($this->file, $this->indentation." \n"); + $user_binds = ttTeamHelper::getUserToProjectBinds($this->group_id); + foreach ($user_binds as $bind) { + $user_id = $this->userMap[$bind['user_id']]; + $project_id = $this->projectMap[$bind['project_id']]; + $bind_part = $this->indentation.' '."file, $bind_part); + } + fwrite($this->file, $this->indentation." \n"); + + // Write invoices. + fwrite($this->file, $this->indentation." \n"); + foreach ($invoices as $invoice_item) { + $invoice_part = $this->indentation.' '."invoiceMap[$invoice_item['id']]."\""; + $invoice_part .= " name=\"".htmlentities($invoice_item['name'])."\""; + $invoice_part .= " date=\"".$invoice_item['date']."\""; + $invoice_part .= " client_id=\"".$this->clientMap[$invoice_item['client_id']]."\""; + $invoice_part .= " status=\"".$invoice_item['status']."\""; + $invoice_part .= ">\n"; + fwrite($this->file, $invoice_part); + } + fwrite($this->file, $this->indentation." \n"); + + // Write time log entries and build logMap at the same time. + fwrite($this->file, $this->indentation." \n"); + $key = 0; + foreach ($users as $user_item) { + $records = ttTimeHelper::getAllRecords($user_item['id']); + foreach ($records as $record) { + $key++; + $this->logMap[$record['id']] = $key; + $log_part = $this->indentation.' '."userMap[$record['user_id']]."\""; + $log_part .= " date=\"".$record['date']."\""; + $log_part .= " start=\"".$record['start']."\""; + $log_part .= " finish=\"".$record['finish']."\""; + $log_part .= " duration=\"".($record['start']?"":$record['duration'])."\""; + $log_part .= " client_id=\"".$this->clientMap[$record['client_id']]."\""; + $log_part .= " project_id=\"".$this->projectMap[$record['project_id']]."\""; + $log_part .= " task_id=\"".$this->taskMap[$record['task_id']]."\""; + $log_part .= " invoice_id=\"".$this->invoiceMap[$record['invoice_id']]."\""; + $log_part .= " comment=\"".htmlentities($record['comment'])."\""; + $log_part .= " billable=\"".$record['billable']."\""; + $log_part .= " paid=\"".$record['paid']."\""; + $log_part .= " status=\"".$record['status']."\""; + $log_part .= ">\n"; + fwrite($this->file, $log_part); + } + } + fwrite($this->file, $this->indentation." \n"); + unset($records); + // Call self recursively for all subgroups. foreach ($this->subgroups as $subgroup) { $subgroup_helper = new ttGroupExportHelper($subgroup['id'], $this->file, $this->indentation.' ');