Make the tag result list scrollable so long tags can be read
[ajatus.git] / plugins / openpsa / export-expenses.php
blob9c8b8babf3fc3cdec924a45e73e84f52238a2d5e
1 <?php
2 require('CouchDb/Couch.php');
3 $couch = new Couch(array('host' => 'localhost', 'port' => 5984));
4 if (!$couch->running())
6 die("Cannot connect to CouchDB in {$couch->host()}:{$coudh->port()}\n");
9 $couchdb = $couch->database('ajatus_db_content', $couch);
10 if(!$couchdb->exists())
12 die("CouchDB database {$couchdb->name()} does not exist\n");
15 $expenses = array();
16 $total_expenses = array();
18 // Construct the view
19 $view = $couchdb->newView();
20 $view->function = "function(doc) { if (doc.value._type == 'expense') { map(null, doc); }}";
21 $results = $view->documents();
23 foreach ($results as $result)
25 $document = $result->value;
26 $creator = $document->value->metadata->creator->val;
27 if (!isset($expenses[$creator]))
29 $expenses[$creator] = array();
32 /*if ($document->value->date->val < '2008-06-16T00:00:00')
34 continue;
35 }*/
37 $month = substr($document->value->date->val, 0, 7);
38 if (!isset($expenses[$creator][$month]))
40 $expenses[$creator][$month] = array();
42 if (!isset($total_expenses[$month]))
44 $total_expenses[$month] = array();
45 $total_expenses[$month]['all'] = 0;
47 if (!isset($total_expenses[$month][$creator]))
49 $total_expenses[$month][$creator] = 0;
52 $expenses[$creator][$month][] = array
54 'date' => $document->value->date->val,
55 'amount' => $document->value->amount->val,
56 'vat' => $document->value->vat->val,
57 'description' => $document->value->description->val,
60 $total_expenses[$month]['all'] += $document->value->amount->val;
61 $total_expenses[$month][$creator] += $document->value->amount->val;
63 ksort($total_expenses);
65 foreach ($total_expenses as $month => $type)
67 echo "{$month}\n-------\n";
68 foreach ($type as $reporter => $expenses_sum)
70 echo "{$reporter}: {$expenses_sum} EUR\n";
72 echo "\n";