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");
16 $total_expenses = array();
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')
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";