aboutsummaryrefslogtreecommitdiffstats
path: root/en/about/reports
diff options
context:
space:
mode:
Diffstat (limited to 'en/about/reports')
-rw-r--r--en/about/reports/2010/index.php64
-rw-r--r--en/about/reports/2011/index.php30
-rw-r--r--en/about/reports/2011/index2.php67
-rw-r--r--en/about/reports/2011/mageia-accounts-2011.csv7
-rw-r--r--en/about/reports/2011/mageia-financial-report-2011.csv95
-rw-r--r--en/about/reports/2011/mageia-forecast-2011.csv16
-rw-r--r--en/about/reports/2011/mageia-report-2011.csv26
-rw-r--r--en/about/reports/2011/mageia_financial_report_2011_en.pdfbin0 -> 152023 bytes
-rw-r--r--en/about/reports/2011/mageia_rapport_financier_2011_fr.pdfbin0 -> 157807 bytes
-rw-r--r--en/about/reports/2012/index.php32
-rw-r--r--en/about/reports/2012/mageia-financial-report-2012.csv96
-rw-r--r--en/about/reports/2012/mageia_financial_report_2012_en.pdfbin0 -> 340173 bytes
-rw-r--r--en/about/reports/2012/mageia_rapport_financier_2012_fr.pdfbin0 -> 355922 bytes
-rw-r--r--en/about/reports/2013/index.php30
-rw-r--r--en/about/reports/2013/mageia-financial-report-2013.csv78
-rw-r--r--en/about/reports/README.md17
-rw-r--r--en/about/reports/index.php38
-rw-r--r--en/about/reports/template.php350
-rw-r--r--en/about/reports/template_lib.php169
19 files changed, 1115 insertions, 0 deletions
diff --git a/en/about/reports/2010/index.php b/en/about/reports/2010/index.php
new file mode 100644
index 000000000..e4bddf87d
--- /dev/null
+++ b/en/about/reports/2010/index.php
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html dir="ltr" lang="en">
+<head>
+ <meta charset="utf-8" />
+ <title>Mageia Financial Report (2010)</title>
+ <meta name="description" content="Mageia financial activity report for 2010." />
+ <meta name="keywords" content="mageia, financial report, 2010" />
+ <meta name="author" content="Mageia" />
+ <link rel="stylesheet" type="text/css" href="/g/style/all.css" />
+ <?php include '../../../../analytics.php'; ?>
+</head>
+<body class="about">
+ <?php include '../../../../langs.php'; ?>
+ <h1 id="mgnavt"><a href="../">Activity Reports</a> &raquo; 2010 Financial Report</h1>
+ <div id="doc" class="yui-t7">
+ <div id="bd" role="main">
+ <div class="yui-g">
+ <div class="para values">
+ <h2>Summary</h2>
+ <ul>
+ <li>Amount collected: EUR&nbsp;8 801.66</li>
+ <li>Amount spent: EUR&nbsp;1 277.77</li>
+ <li>Amount remaining: EUR&nbsp;7 523.96</li>
+ </ul>
+ <h2>Financial Report</h2>
+ <table id="fr-table"><thead><tr><th>Transaction description</th><th>Income</th><th>Outgoing</th></tr></thead><tbody><tr>
+ <tr><td colspan=3>Donations and Sales</td></tr>
+ <tr><td>Donations by Paypal/transfer/check/cash</td><td class="money">EUR&nbsp;8 801.42</td><td>&nbsp;</td></tr>
+ <tr><td>Paypal test to validate bank account</td><td class="money">EUR&nbsp;0.24</td><td>&nbsp;</td></tr>
+ <tr><td colspan=3>Hardware for servers</td></tr>
+ <tr><td>HDD for servers (dams)</td><td>&nbsp;</td><td class="money">EUR&nbsp;921.20</td></tr>
+ <tr><td>Cables and other stuff for servers (dams)</td><td>&nbsp;</td><td class="money">EUR&nbsp;17.50</td></tr>
+ <tr><td colspan=3>Trip to Marseille for hosting at Lost-Oasis</td></tr>
+ <tr><td>Car rent for going to Marseille (boklm)</td><td>&nbsp;</td><td class="money">EUR&nbsp;135.00</td></tr>
+ <tr><td>Gasoline for the car (dams)</td><td>&nbsp;</td><td class="money">EUR&nbsp;63.00</td></tr>
+ <tr><td>Croissants for the <em>ielo</em> team (dams)</td><td>&nbsp;</td><td class="money">EUR&nbsp;12.12</td></tr>
+ <tr><td>TGV for going back to Paris for 3 people (ennael)</td><td>&nbsp;</td><td class="money">EUR&nbsp;128.88</td></tr>
+ <tr><td colspan=3>&nbsp;</td></tr>
+ <tr><td>Total</td><td class="money">EUR&nbsp;8 801.66</td><td class="money">EUR&nbsp;1 277.77</td></tr>
+ <tr><td>Balance</td><td colspan=2 class="money">EUR&nbsp;7 523.96</td></tr>
+ </tbody></table>
+ <h2>Bank accounts situation</h2>
+ <ul>
+ <li>Paypal (non-for-profit organisation account): EUR&nbsp;63.51</li>
+ <li>Main account (with checkbook and no credit card): EUR&nbsp;1 310.24</li>
+ <li>Savings account (between 2% and 4% of interest): EUR&nbsp;4 000.00</li>
+ <li>AUFML account (part to be transfered to Mageia.Org): EUR&nbsp;2 150.21</li>
+ </ul>
+ <h2>Miscellaneous</h2>
+ <ul>
+ <li>Donations are mixed as at the beginning they were managed by AUFML. We had a bank transfert with all donations.</li>
+ <li>You can help Mageia.Org by <a href="/en/donate/" hreflang="en">doing a donation</a>.</li>
+ <li>You can see the <a href="/en/thank-you" hreflang="en">"thank you" page</a>.</li>
+ </ul>
+ <h2>Contact</h2>
+ Financial report published by Mageia.Org Treasurer on the 2010 Fiscal Year - Damien Lallement).<br>
+ You can contact us by sending an email to <em>treasurer[at]mageia[dot]org</em>.<br/>
+ Last update: Mar 18 12:18:53 CET 2011.
+ </div>
+ </div>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/en/about/reports/2011/index.php b/en/about/reports/2011/index.php
new file mode 100644
index 000000000..0af0ba638
--- /dev/null
+++ b/en/about/reports/2011/index.php
@@ -0,0 +1,30 @@
+<?php
+/** Mageia.org 2011 fi report. */
+
+$year = 2011;
+$source_csv = 'mageia-financial-report-2011.csv';
+$page_kw = 'mageia, financial report, 2011, revenues, expenses';
+
+$js_options_hAxis = '{title: "2011"}';
+$js_data2_values = <<<S
+ ['2010', 8801.66, 1277.77],
+ ['2011', 11154.02, 8327.25]
+S;
+
+$intro = <<<S
+ <p>Here is our financial report for 2011.</p>
+
+ <ul class="hl">
+ <li>Read the <a href="mageia_rapport_financier_2011_fr.pdf" hreflang="fr">French, original report</a>
+ or the <a href="mageia_financial_report_2011_en.pdf" hreflang="en">English translation</a>
+ (both are PDF documents).</li>
+ <li>Get the <a href="mageia-financial-report-2011.csv">raw report data</a>
+ (CSV document, licensed under <a href="http://opendatacommons.org/licenses/odbl/1.0/">ODbL 1.0</a>).
+ The rest of this page is built from this data.</li>
+ </ul>
+S;
+
+$last_known_account_title = sprintf('Account status on December 31<sup>st</sup>, %s', $year);
+
+include '../template.php';
+
diff --git a/en/about/reports/2011/index2.php b/en/about/reports/2011/index2.php
new file mode 100644
index 000000000..67f2a6b67
--- /dev/null
+++ b/en/about/reports/2011/index2.php
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html dir="ltr" lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>Mageia Financial Report (2011)</title>
+ <meta name="description" content="Mageia is new community-based Linux distribution.">
+ <meta name="keywords" content="mageia, financial report, 2011">
+ <meta name="author" content="Mageia">
+ <link rel="stylesheet" type="text/css" href="/g/style/all.css">
+ <?php include '../../../../analytics.php'; ?>
+</head>
+<body>
+ <?php include '../../../../langs.php'; ?>
+
+ <div id="doc" class="yui-t7">
+ <div id="hd" role="banner"><h1><a id="logo" href="/en/"><span>Mageia</span></a> <span class="lsep">|</span> <span class="subh">Financial Report (2011)</span></h1></div>
+ <div id="bd" role="main">
+ <div class="yui-g">
+ <div class="para values">
+ <p style="color: #fff; background: red; padding: 0.3em 0.4em 0.4em 0.6em; font-size: 85%;">
+ Being redesigned &ndash; Take with a grain of salt for now.</p>
+ <?php
+ include G_APP_ROOT . '/lib/fi-report.php';
+
+ $mfr = Mageia_Financial_Report::build(array(
+ 'accounts' => 'mageia-accounts-2011.csv',
+ 'report' => 'mageia-report-2011.csv',
+ 'forecast' => 'mageia-forecast-2011.csv'
+ ));
+
+ $hReport = $mfr->html_report();
+ $hForecast = $mfr->html_forecast();
+ $hAccounts = $mfr->html_accounts();
+ $hSummary = $mfr->html_summary();
+ ?>
+ <h2>Summary</h2>
+ <?php echo $hSummary; ?>
+ <hr>
+
+ <h2>Bank accounts situation</h2>
+ <?php echo $hAccounts; ?>
+ <hr>
+
+ <h2>Financial Report</h2>
+ <?php echo $hReport; ?>
+ <hr>
+
+ <h2>Forecast for 2011</h2>
+ <?php echo $hForecast; ?>
+ <hr>
+
+ <h2>Miscellaneous</h2>
+ <ul>
+ <li>You can <a href="#" hreflang="en">download this report</a> as a PDF file.</li>
+ <li>You can help Mageia.Org by <a href="/en/donate/" hreflang="en">doing a donation</a>.</li>
+ <li>You can see the <a href="/en/thank-you" hreflang="en">"thank you" page</a>.</li>
+ </ul>
+ <hr>
+ <h2>Contact</h2>
+ <p>Financial report published by Damien Lallement (Mageia Treasurer on the 2011 Fiscal Year).<br>
+ You can contact him by sending an email to <em>treasurer[at]mageia[dot]org</em>.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+</body>
+</html> \ No newline at end of file
diff --git a/en/about/reports/2011/mageia-accounts-2011.csv b/en/about/reports/2011/mageia-accounts-2011.csv
new file mode 100644
index 000000000..7952e8010
--- /dev/null
+++ b/en/about/reports/2011/mageia-accounts-2011.csv
@@ -0,0 +1,7 @@
+head;Bank accounts
+head;Current accounts positions
+head;http://www.mageia.org/
+head;Account;Amount
+;Paypal account (not-for-profit organisation account);308.13
+;Main account (with checkbook, no credit card);292.85
+;Savings account (between 2% and 4% of annual interest rate);8000
diff --git a/en/about/reports/2011/mageia-financial-report-2011.csv b/en/about/reports/2011/mageia-financial-report-2011.csv
new file mode 100644
index 000000000..7a030c948
--- /dev/null
+++ b/en/about/reports/2011/mageia-financial-report-2011.csv
@@ -0,0 +1,95 @@
+"# Head",,,,,,
+"title","Mageia.org financial report for year 2011",,,,,
+"org","mageia.org",,,,,
+"owner","mageia.org",,,,,
+"manager","mageia.org treasurer",,,,,
+"contact","See http://www.mageia.org/en/about/reports/",,,,,
+"type","financial report",,,,,
+"year",2011,,,,,
+"currency","EUR",,,,,
+"url","http://www.mageia.org/en/about/reports/",,,,,
+"licence","ODbL-1.0","This financial report data is made available under the Open Database License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in individual contents of the database are licensed under the Database Contents License: http://opendatacommons.org/licenses/dbcl/1.0/",,,,
+"last updated",2012/05/11,,,,,
+"comment","This is a first attempt to provide open and direct access to Mageia financial data. We will try to improve on it, feel free to suggest improvements in format, detail, presentation.",,,,,
+,,,,,,
+"",,,,,,
+"# Account balance on 2011/12/31",,,,,,
+"total","8166,37",,,,,
+"main account","413,13",,,,,
+"paypal","653,24",,,,,
+"savings account",7100,,,,,
+,,,,,,
+"# Income Statement",,,,,,
+,,,,,,
+"## Revenues",,,,,,
+"Donations","11150,96",,,,,
+"Bank interests","3,06",,,,,
+"Total of revenues","11154,02",,,,,
+,,,,,,
+"## Expenses",,,,,,
+"Hardware (servers)","5500,45",,,,,
+"Events (FOSDEM, Solutions Linux)","2091,39",,,,,
+"Trademark registration",280,,,,,
+"Transporation & accomodation","166,5",,,,,
+"Shipments","126,98",,,,,
+"Assoc. Membership",100,,,,,
+"Administrative fees",44,,,,,
+"Total of expenses","8327,25",,,,,
+,,,,,,
+"Net Income","2826,77",,,,,
+,,,,,,
+,,,,,,
+"# Balance Sheet (incomplete)",,,,,,
+,,,,,,
+"## Liabilities",,,,,,
+"Donations","11150,96",,,,,
+,,,,,,
+"## Assets",,,,,,
+"Trademark",280,,,,,
+"Hardware, servers","TBD",,,,,
+"Promotional materials","TBD",,,,,
+"Cash","8166,37",,,,,
+,,,,,,
+,,,,,,
+"# Income details",,,,,,
+"## Donations monthly summary",,,,,,
+"month","count","total amount","check","transfer","paypal","cash"
+1,,"161,15",30,50,"81,15",0
+2,,"3907,83",0,"2360,55","687,28",860
+3,,"109,51",0,100,"9,51",0
+4,,"283,73",0,60,"223,73",0
+5,,"549,3",0,0,"549,3",0
+6,,"907,9",80,"234,5","593,4",0
+7,,"435,13",25,6,"404,13",0
+8,,"263,84",0,30,"233,84",0
+9,,"707,96",0,50,"657,96",0
+10,,"1599,94",375,240,"984,94",0
+11,,"1341,34",300,0,"1041,34",0
+12,,"508,33",0,375,"508,33",0
+,,,,,,
+,,,,,,
+"# Expenses details",,,,,,
+,,,,,,
+"## More details",,,,,,
+"date","category","description","amount",
+2010-09-18,"trademark","Mageia, INPI",280,
+2010-10-20,"infra:hardware","HDD","242,7",
+2010-11-11,"admin","Administrative cost for Mageia.org",44,
+2011-01-04,"membership","April.org",100,
+2011-02-04,"marketing:promotional","Stickers & Tshirts FOSDEM 2011","1932,14",
+2011-02-04,"admin","Money box","17,93",
+2011-02-06,"transport/accomodation","FOSDEM 2011, 1 person","166,5",
+2011-03-01,"shipments","tshirts for Chemnitzer 2011","54,65",
+2011-04-10,"infra:hosting","SSL certificate","215,28",
+2011-05-09,"marketing:promotional","Posters, flyers, Solutions Linux 2011","159,25",
+2011-05-17,"shipments","tshirts for Solutions Linux 2011","12,3",
+2011-05-26,"shipments","tshirts",25,
+2011-05-30,"infra:hosting","Gandi hosting, RAM",250,
+2011-10-25,"infra:hardware","Dell server","2669,6",
+2011-10-26,"infra:hardware","ARM bs boards","294,05",
+2011-11-14,"infra:hardware","HDD (backup server)","1149,83",
+2011-11-17,"shipments","stickers, flyers","35,03",
+2011-11-29,"infra:hardware","buildsystem SSD","678,99",
+,,,,,,
+,,,,,,
+"# That's all folks!",,,,,,
diff --git a/en/about/reports/2011/mageia-forecast-2011.csv b/en/about/reports/2011/mageia-forecast-2011.csv
new file mode 100644
index 000000000..224496c27
--- /dev/null
+++ b/en/about/reports/2011/mageia-forecast-2011.csv
@@ -0,0 +1,16 @@
+head;2011 Forecast;
+head;
+head;http://www.mageia.org/
+head;Description of planned expediture;Unit price;Quantity;Recurrence;Total price;Status
+;Goodies;4500;1;1;;Pending
+;April;100;1;1;;Pending
+;Gandi (hosting: +1536MB of RAM);2.39;6;12;;Done (Wed Mar 30)
+;Dedibox (build ISO);14.99;1;12;;Pending
+;Internet domains;15;7;1;;Pending
+;Fiona (backup server);1500;1;1;;Pending
+;2 new nodes for BS;2500;2;1;;Pending
+;Event box;1500;1;1;;Pending
+;Event travel;1000;1;2;;Pending
+;HW for spare;3000;1;1;;Pending
+;Brand registration;250;1;1;;Pending
+;Reserve fund;4000;1;1;;Pending \ No newline at end of file
diff --git a/en/about/reports/2011/mageia-report-2011.csv b/en/about/reports/2011/mageia-report-2011.csv
new file mode 100644
index 000000000..9bd8230a8
--- /dev/null
+++ b/en/about/reports/2011/mageia-report-2011.csv
@@ -0,0 +1,26 @@
+head;Financial report
+head;Lists transactions that happened on Mageia.Org accounts
+head;http://www.mageia.org/
+head;Date;Transaction description;Outgoing;Income
+cat;Donations and sales
+;;Donations via Paypal/transfer/check;;1920.97;
+;;Sale of T-shirts;;1050;
+cat;Fees and Administrative costs
+;;Administrative costs for the birth of Mageia.Org (JO);44;
+;;April (annual fee);100;
+;;INPI brand registration for 10 years (rda);250;
+;;Annual interest of our savings account;;3.06
+cat;Goodies and accessories
+;;Posters and flyers for Solutions Linux (rda);159.25;
+;;Stickers and T-shirts for FOSDEM;1932.14;
+;;Money box (dams);17.93;
+cat;Shipments
+;;40 TS to wobo for Chemnitzer Linuxtage;54.65;
+;;3 TS to donors in France (dams);12.30;
+;;2 TS to saipo for Dijon event in France (dams);25;
+cat;Hardware and hosting
+;;RAM on Gandi.net hosting (for blog/planet/www);250;
+;;SSL for domains on Gandi.net;215.28;
+;;HDD for servers (boklm);242.70;
+cat;Travel and events
+;;Hotel + train for wobo (FOSDEM 2011);166.50; \ No newline at end of file
diff --git a/en/about/reports/2011/mageia_financial_report_2011_en.pdf b/en/about/reports/2011/mageia_financial_report_2011_en.pdf
new file mode 100644
index 000000000..e4ffcdb57
--- /dev/null
+++ b/en/about/reports/2011/mageia_financial_report_2011_en.pdf
Binary files differ
diff --git a/en/about/reports/2011/mageia_rapport_financier_2011_fr.pdf b/en/about/reports/2011/mageia_rapport_financier_2011_fr.pdf
new file mode 100644
index 000000000..c86f48eca
--- /dev/null
+++ b/en/about/reports/2011/mageia_rapport_financier_2011_fr.pdf
Binary files differ
diff --git a/en/about/reports/2012/index.php b/en/about/reports/2012/index.php
new file mode 100644
index 000000000..3cec931eb
--- /dev/null
+++ b/en/about/reports/2012/index.php
@@ -0,0 +1,32 @@
+<?php
+/** Mageia.org 2012 fi report. */
+
+$year = 2012;
+$source_csv = 'mageia-financial-report-2012.csv';
+$page_kw = 'mageia, financial report, 2012, revenues, expenses';
+
+$js_options_hAxis = '{title: "2012"}';
+
+// year, total revenues, total expenses
+$js_data2_values = <<<S
+ ['2010', 8801.66, 1277.77],
+ ['2011', 11154.02, 8327.25],
+ ['2012', 10072.08, 10766.69]
+S;
+
+$intro = <<<S
+ <ul>
+ <li>Read the <a href="mageia_rapport_financier_2012_fr.pdf" hreflang="fr">French, original report</a>
+ or the <a href="mageia_financial_report_2012_en.pdf" hreflang="en">English translation</a>
+ (both are PDF documents).</li>
+ <li>Get the <a href="mageia-financial-report-2012.csv">raw report data</a>
+ (CSV document, licensed under <a href="http://opendatacommons.org/licenses/odbl/1.0/">ODbL 1.0</a>).
+ The rest of this page is built from this data.</li>
+ <li>You may also want to check out our <a href="https://wiki.mageia.org/en/General_report_2012">general report for 2012</a>.</li>
+ </ul>
+S;
+
+$last_known_account_title = sprintf('Account status on December 31<sup>st</sup>, %s', $year);
+
+include '../template.php';
+
diff --git a/en/about/reports/2012/mageia-financial-report-2012.csv b/en/about/reports/2012/mageia-financial-report-2012.csv
new file mode 100644
index 000000000..c9963799c
--- /dev/null
+++ b/en/about/reports/2012/mageia-financial-report-2012.csv
@@ -0,0 +1,96 @@
+# Head
+title,Mageia.org financial report for year 2012,,,,,
+org,mageia.org,,,,,
+owner,mageia.org,,,,,
+manager,mageia.org treasurer,,,,,
+contact,See http://www.mageia.org/en/about/reports/,,,,,
+type,financial report,,,,,
+year,2012,,,,,
+currency,EUR,,,,,
+url,http://www.mageia.org/en/about/reports/,,,,,
+licence,ODbL-1.0,This financial report data is made available under the Open Database License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in individual contents of the database are licensed under the Database Contents License: http://opendatacommons.org/licenses/dbcl/1.0/,,,,
+last updated,2013/01/29,,,,,
+comment,This is a first attempt to provide open and direct access to Mageia financial data. We will try to improve on it, feel free to suggest improvements in format, detail, presentation.,,,,,
+,,,,,,
+,,,,,,
+# Account balance,,,,,,
+total,8423.07,,,,,
+main account,2191.13,,,,,
+paypal,828.81,,,,,
+savings account,5403.13,,,,,
+,,,,,,
+# Income Statement,,,,,,
+,,,,,,
+## Revenues,,,,,,
+Donations,0,,,,,
+Bank interests,0,,,,,
+Total of revenues,0,,,,,
+,,,,,,
+## Expenses,,,,,,
+Total of expenses,0,,,,,
+,,,,,,
+Net Income,0,,,,,
+,,,,,,
+,,,,,,
+# Balance Sheet (incomplete),,,,,,
+,,,,,,
+## Liabilities,,,,,,
+Donations,0,,,,,
+,,,,,,
+## Assets,,,,,,
+Hardware, servers,TBD,,,,,
+Promotional materials,TBD,,,,,
+Cash,0,,,,,
+,,,,,,
+,,,,,,
+# Income details,,,,,,
+## Donations monthly summary,,,,,,
+month,count,total amount,check,transfer,paypal,cash
+1,19,624.48,0,80.0,544.48,0
+2,15,630.00,0,200.00,430.00,0
+3,9,684.13,0,423.13,261.00,0
+4,10,610.00,0,100.00,510.00,0
+5,25,1374.00,100.00,555.00,719.00,0
+6,14,881.00,135.00,125.00,461.00,160.00
+7,13,692.67,0,430.67,262.00,0
+8,13,497.00,190.00,0,307.00,0
+9,28,1251.80,90.00,450.00,801.80,0
+10,24,1838.00,100.00,810.00,928.00,0
+11,9,257.00,0,0,257.00,0
+12,15,732.00,0,267.00,465.00,0
+,,,,,,
+,,,,,,
+# Expenses details,,,,,,
+,,,,,,
+## More details,,,,,,
+date,category,description,amount,
+2012-01-13,transport,Datacenter: train to Marseille,284.00,
+2012-01-13,asso,Cotisation April.org,100.00,
+2012-01-28,transport,FOSDEM: plane for Thomas/tmb,347.29,
+2012-01-30,infra:hardware,various purchases for ARM BS,129.59,
+2012-01-31,bank,Paypal fees,13.87,
+2012-02-13,marketing:merchandising,FOSDEM: refund for Patricia/Trish,767.66,
+2012-02-29,bank,Paypal fees,10.52,
+2012-03-12,bank,Transfer change fees,143.92,
+2012-03-31,bank,Paypal fees,6.51,
+2012-04-30,bank,Paypal fees,9.94,
+2012-05-31,bank,Paypal fees,17.4,
+2012-06-05,infra:hardware,2 routers,375.87,
+2012-06-31,bank,Paypal fees,9.72,
+2012-07-26,infra:hardware,2 servers,7613.14,
+2012-07-31,bank,Paypal fees,7.72,
+2012-08-01,infra:hosting,Gandi: domain names renewal,30.64,
+2012-08-03,transport,Marseille DC: train+hotel for 3 people,370.96,
+2012-08-25,transport,Marseille DC: hotel complement,30.00,
+2012-08-25,transport,Marseille DC: metro,12.80,
+2012-08-25,infra:hardware,wires,40.93,
+2012-08-26,infra:hosting,Gandi: hosting provision,100.00,
+2012-08-31,bank,Paypal fees,9.24,
+2012-09-27,infra:hosting,Online,279.82,
+2012-09-30,bank,Paypal fees,18.09,
+2012-10-31,bank,Paypal fees,20.21,
+2012-11-30,bank,Paypal fees,7.16,
+2012-12-31,bank,Paypal fees,9.69
+,,,,,,
+,,,,,,
+# That's all folks!,,,,,,
diff --git a/en/about/reports/2012/mageia_financial_report_2012_en.pdf b/en/about/reports/2012/mageia_financial_report_2012_en.pdf
new file mode 100644
index 000000000..4cbd91982
--- /dev/null
+++ b/en/about/reports/2012/mageia_financial_report_2012_en.pdf
Binary files differ
diff --git a/en/about/reports/2012/mageia_rapport_financier_2012_fr.pdf b/en/about/reports/2012/mageia_rapport_financier_2012_fr.pdf
new file mode 100644
index 000000000..5216f59f3
--- /dev/null
+++ b/en/about/reports/2012/mageia_rapport_financier_2012_fr.pdf
Binary files differ
diff --git a/en/about/reports/2013/index.php b/en/about/reports/2013/index.php
new file mode 100644
index 000000000..71046e497
--- /dev/null
+++ b/en/about/reports/2013/index.php
@@ -0,0 +1,30 @@
+<?php
+/** Mageia.org 2013 fi report. */
+
+$year = 2013;
+$source_csv = 'mageia-financial-report-2013.csv';
+$page_kw = 'mageia, financial report, 2013, revenues, expenses';
+
+$js_options_hAxis = '{title: "2013"}';
+
+// year, total revenues, total expenses
+$js_data2_values = <<<S
+ ['2010', 8801.66, 1277.77],
+ ['2011', 11154.02, 8327.25],
+ ['2012', 10072.08, 10766.69],
+ ['2013', 706.07, 2700.12]
+S;
+
+$intro = <<<S
+ <ul>
+ <li>Get the <a href="mageia-financial-report-2012.csv">raw report data</a>
+ (CSV document, licensed under <a href="http://opendatacommons.org/licenses/odbl/1.0/">ODbL 1.0</a>).
+ The rest of this page is built from this data.</li>
+ </ul>
+S;
+
+$last_known_account_title = sprintf('Account status on December 31<sup>st</sup>, %s', $year);
+$last_known_account_title = sprintf('Account status');
+
+include '../template.php';
+
diff --git a/en/about/reports/2013/mageia-financial-report-2013.csv b/en/about/reports/2013/mageia-financial-report-2013.csv
new file mode 100644
index 000000000..a90ef0aa6
--- /dev/null
+++ b/en/about/reports/2013/mageia-financial-report-2013.csv
@@ -0,0 +1,78 @@
+# Head
+title,Mageia.org financial report for year 2012,,,,,
+org,mageia.org,,,,,
+owner,mageia.org,,,,,
+manager,mageia.org treasurer,,,,,
+contact,See http://www.mageia.org/en/about/reports/,,,,,
+type,financial report,,,,,
+year,2013,,,,,
+currency,EUR,,,,,
+url,http://www.mageia.org/en/about/reports/,,,,,
+licence,ODbL-1.0,This financial report data is made available under the Open Database License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in individual contents of the database are licensed under the Database Contents License: http://opendatacommons.org/licenses/dbcl/1.0/,,,,
+last updated,2013/01/29,,,,,
+comment,This is a first attempt to provide open and direct access to Mageia financial data. We will try to improve on it, feel free to suggest improvements in format, detail, presentation.,,,,,
+,,,,,,
+,,,,,,
+# Account balance,,,,,,
+total,8660.87,,,,,
+main account,1997.26,,,,,
+paypal,1125.12,,,,,
+savings account,5538.49,,,,,
+,,,,,,
+# Income Statement,,,,,,
+,,,,,,
+## Revenues,,,,,,
+Donations,0,,,,,
+Bank interests,0,,,,,
+Total of revenues,0,,,,,
+,,,,,,
+## Expenses,,,,,,
+Total of expenses,0,,,,,
+,,,,,,
+Net Income,0,,,,,
+,,,,,,
+,,,,,,
+# Balance Sheet (incomplete),,,,,,
+,,,,,,
+## Liabilities,,,,,,
+Donations,0,,,,,
+,,,,,,
+## Assets,,,,,,
+Hardware, servers,TBD,,,,,
+Promotional materials,TBD,,,,,
+Cash,0,,,,,
+,,,,,,
+,,,,,,
+# Income details,,,,,,
+## Donations monthly summary,,,,,,
+month,count,total amount,check,transfer,paypal,cash
+1,10,706.07,50.0,350.0,306.07,0,
+2,0,0.0,0.0,0.0,0.0,0.0,
+3,0,0.0,0.0,0.0,0.0,0.0,
+4,0,0.0,0.0,0.0,0.0,0.0,
+5,0,0.0,0.0,0.0,0.0,0.0,
+6,0,0.0,0.0,0.0,0.0,0.0,
+7,0,0.0,0.0,0.0,0.0,0.0,
+8,0,0.0,0.0,0.0,0.0,0.0,
+9,0,0.0,0.0,0.0,0.0,0.0,
+10,0,0.0,0.0,0.0,0.0,0.0,
+11,0.0,0.0,0.0,0.0,0.0,0.0,
+12,0.0,0.0,0.0,0.0,0.0,0.0,
+
+## Other revenues
+date,description,amount
+2013-01-01,2012 saving interests,135.36
+
+,,,,,,
+,,,,,,
+# Expenses details,,,,,,
+,,,,,,
+## More details,,,,,,
+date,category,description,amount,
+2013-01-24,infra:hardware,upgrade storage disks,563.87,
+2013-01-31,bank,Paypal fees,9.76,
+2013-02-01,marketing:tshirts,T-Shirts,2126.49,
+
+,,,,,,
+,,,,,,
+# That's all folks!,,,,,,
diff --git a/en/about/reports/README.md b/en/about/reports/README.md
new file mode 100644
index 000000000..b47918444
--- /dev/null
+++ b/en/about/reports/README.md
@@ -0,0 +1,17 @@
+
+
+
+
+1) go to bank account
+
+ - note current level
+ - note all operations in the past months
+ - count all donations, by chq, cash or transfer
+ - note names of all donators
+
+2) go to paypal account
+
+ - note current level
+ - note all operations in the past months
+ - count all donations, by paypal or by transfer
+ - note names of all donators \ No newline at end of file
diff --git a/en/about/reports/index.php b/en/about/reports/index.php
new file mode 100644
index 000000000..406e11ab7
--- /dev/null
+++ b/en/about/reports/index.php
@@ -0,0 +1,38 @@
+<?php
+define('HLANG', true);
+require '../../../langs.php';
+$dictionary = read_translation_file($locale, 'about/reports');
+
+?><!DOCTYPE html>
+<html dir="ltr" lang="<?php echo $locale; ?>">
+<head>
+ <meta charset="utf-8">
+ <title><?php _g('Mageia activity &amp; financial reports')?></title>
+ <meta name="description" content="<?php _g('Mageia reports, every year.')?>">
+ <meta name="keywords" content="<?php _g('mageia, reports, activity, financial')?>">
+ <meta name="author" content="Mageia">
+ <link rel="stylesheet" type="text/css" href="/g/style/all.css">
+ <?php include '../../../analytics.php'; ?>
+</head>
+<body class="about">
+ <?php echo $hsnav; ?>
+ <h1 id="mgnavt"><?php _g('Activity Reports')?></h1>
+ <div id="doc" class="yui-t7">
+ <div id="bd" role="main">
+ <div class="yui-g">
+ <div class="para values">
+ <p><?php _g('Here you will find our various activity and financial reports for every year.')?></p>
+
+ <ul>
+ <li>2014: <?php _g('%sFinancial report</a>%s.', array('<a href="https://treasurer.mageia.org/y_2014.html">', ' ' . _r('(in progress)')));?></li>
+ <li>2013: <?php _g('%sFinancial report</a>%s.', array('<a href="https://treasurer.mageia.org/y_2013.html">', ''));?></li>
+ <li>2012: <?php _g('%sFinancial report</a>%s.', array('<a href="2012/">', ''));?></li>
+ <li>2011: <?php _g('<a href="https://wiki.mageia.org/en/Rapport_moral_2011">Moral report</a> (in French &amp; English), <a href="2011/">financial report</a>.')?></li>
+ <li>2010: <?php _g('Moral report, <a href="2010/">financial report</a>.')?></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/en/about/reports/template.php b/en/about/reports/template.php
new file mode 100644
index 000000000..2cd6e6aeb
--- /dev/null
+++ b/en/about/reports/template.php
@@ -0,0 +1,350 @@
+<?php
+/**
+ * Template for financial reports.
+ * See 201?/index.php scripts including it.
+ *
+ * TODO rewrite this properly, of course. Still use a CSV? Use a clean template anyway.
+*/
+$_months = array(
+ 1 => 'January', 2 => 'February', 3 => 'March',
+ 4 => 'April', 5 => 'May', 6 => 'June',
+ 7 => 'July', 8 => 'August', 9 => 'September',
+ 10 => 'October', 11 => 'November', 12 => 'December'
+);
+
+/**
+ * Format numbers after ISO_31 recommandation,
+ * using the comma as decimal sep.
+ * See http://en.wikipedia.org/wiki/ISO_31-0#Numbers
+ *
+ * @param float $n decimal number
+ * @param char $dec_sep
+ *
+ * @return string
+*/
+function _report_number_format($n, $dec_sep = ',')
+{
+ return str_replace('#', '&nbsp;', number_format($n, 2, $dec_sep, '#'));
+}
+
+$data = file($source_csv);
+$parsed = array();
+
+foreach ($data as $l) {
+ if (trim($l) == ',,,,,,')
+ continue;
+
+ $l = str_getcsv(str_replace(array(',,,', ",\n"), '', $l));
+ if (substr($l[0], 0, 2) == '# ') {
+ $tag = $l[0];
+ $parent = $tag;
+ } elseif (substr($l[0], 0, 2) == '##') {
+ $tag = $parent . ' > ' . $l[0];
+ } else {
+ $parsed[$tag][] = $l;
+ }
+}
+
+foreach ($parsed as $tag => $values) {
+ $val2 = array();
+ $tag2 = strtolower($tag);
+ $teststr = strlen($tag) > 12 ? substr($tag2, 0, 13) : null;
+ foreach ($values as $v) {
+ if ($tag2 == "# head"
+ || $teststr == "# account bal"
+ || $teststr == "# income stat"
+ || $teststr == "# balance she"
+ || $tag2 == '## expenses'
+ || $tag2 == '## revenues'
+ || $tag2 == '## liabilities'
+ || $tag2 == '## assets') {
+ $val2[$v[0]] = $v[1];
+ } else {
+ $val2[] = $v;
+ }
+ }
+
+ $parsed[$tag] = $val2;
+}
+$flow = array();
+
+$list = array_fill(1, 12, 0);
+$count = array_fill(1, 12, 0);
+$tmp = $parsed['# Expenses details > ## More details'];
+array_shift($tmp);
+foreach ($tmp as $line) {
+ if (count($line) < 4)
+ continue;
+
+ $month = date('n', strtotime($line[0]));
+ $list[$month] += $line[3]; // amount
+ $count[$month] += 1;
+}
+$expenses_monthly_summary = array($list, $count);
+
+$flow = array(
+ 'expenses' => $list,
+ 'expenses_op' => $count,
+ 'revenue' => null,
+ 'revenue_op' => null
+);
+
+$list = array();
+$count = array();
+
+// FIXME take ## Other revenues lines into account.
+foreach ($parsed['# Income details > ## Donations monthly summary'] as $line) {
+ if (count($line) < 3)
+ continue;
+
+ $list[] = $line[2];
+ $count[] = $line[1];
+}
+
+unset($list[0]);
+unset($list[13]);
+unset($count[0]);
+unset($count[13]);
+
+$flow['revenue'] = $list;
+$flow['revenue_op'] = $count;
+
+include 'template_lib.php';
+
+$R = get_revenues($parsed['# Income details > ## Donations monthly summary'], $_months);
+$expenses_total = array_sum($expenses_monthly_summary[0]);
+
+
+?><!DOCTYPE html>
+<html dir="ltr" lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>Mageia.org <?php echo $year; ?> Financial Report</title>
+ <meta name="description" content="Financial report for Mageia.org activity in <?php echo $year?>">
+ <meta name="keywords" content="<?php echo $page_kw;?>">
+ <meta name="author" content="Mageia.org">
+ <link rel="stylesheet" type="text/css" href="/g/style/all.css">
+ <?php include '../../../../analytics.php'; ?>
+ <!--Load the AJAX API-->
+ <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+ <script type="text/javascript">
+ google.load('visualization', '1', {packages: ['corechart']});
+ </script>
+ <script type="text/javascript">
+ function drawVisualization() {
+ // Some raw data (not necessarily accurate)
+ var data = google.visualization.arrayToDataTable([
+ ['Month', 'Revenues', 'Expenses'],
+ <?php
+ $arr = array();
+ $qRevenues = 0;
+ $qExpenses = 0;
+ $i = 1;
+ $j = 1;
+ $qarr = array();
+ foreach ($flow['revenue'] as $month => $val) {
+
+ // save monthly data
+ $arr[] = sprintf("['%s', %s, %s]", $_months[$month], str_replace(',', '.', $val), str_replace(',', '.', $flow['expenses'][$month]));
+
+ // sum quarterly data
+ $qRevenues += str_replace(',', '.', $val);
+ $qExpenses += str_replace(',', '.', $flow['expenses'][$month]);
+
+ // save quarterly data
+ if ($i % 3 == 0) {
+ $qarr[] = sprintf("['%s', %s, %s]", 'Q' . $j, $qRevenues, $qExpenses);
+
+ $qRevenues = 0;
+ $qExpenses = 0;
+ $j += 1;
+ }
+
+ $i += 1;
+ }
+ echo implode(', ', $arr);
+ ?>
+ ]);
+
+ var options = {
+ title : 'Monthly Cash Flow',
+ vAxis: {title: "Amount (€)"},
+ hAxis: {title: "<?php echo $year?>"},
+ seriesType: "bars",
+ };
+
+ var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
+ chart.draw(data, options);
+
+ var data2 = google.visualization.arrayToDataTable([
+ ['Year', 'Revenues', 'Expenses'],
+ <?php echo $js_data2_values; ?>
+ ]);
+ var options2 = {
+ title : 'Yearly Cash Flow',
+ vAxis: {title: "Amount (€)"},
+ hAxis: {title: "Years"},
+ seriesType: "bars"
+ };
+
+ var chart2 = new google.visualization.ComboChart(document.getElementById('chart2'));
+ chart2.draw(data2, options2);
+
+ var data3 = google.visualization.arrayToDataTable([
+ ['Quarter', 'Revenues', 'Expenses'],
+ <?php echo implode(', ', $qarr); ?>
+ ]);
+ var options3 = {
+ title : 'Quarterly Cash Flow',
+ vAxis: {title: "Amount (€)"},
+ hAxis: {title: "<?php echo $year?>"},
+ seriesType: "bars"
+ };
+
+ var chart3 = new google.visualization.ComboChart(document.getElementById('chart3'));
+ chart3.draw(data3, options3);
+ }
+ google.setOnLoadCallback(drawVisualization);
+ </script>
+</head>
+<body class="about reports">
+ <?php include '../../../../langs.php'; ?>
+ <header id="mgnavt">
+ <h1><a href="../">Activity Reports</a> &raquo; <?php echo $year; ?> Financial Report</h1>
+ <ul>
+ </ul>
+ </header>
+ <style>
+ #summary { width: 300px; float: left; text-align: left; background: #fff; border-bottom: 1px solid #ddd; }
+ #report { text-align: left; width: 800px; float: left; border: 1px solid #ddd; border-top: 0; }
+ #links { width: 150px; float: left; background: #fff; text-align: left; border-right: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 1em;}
+ .accounts tr.total { font-weight: 600; }
+ </style>
+ <aside id="summary">
+ <div class="para">
+ <h2><?php echo $last_known_account_title?></h2>
+ <p>All amounts are in EURO.</p>
+ <p>Last updated on <?php echo $parsed['# Head']['last updated']; ?>.</p>
+ <?php
+ $k = sprintf('# Account balance on %d/12/31', $year);
+ $k = array_key_exists($k, $parsed) ? $k : '# Account balance';
+ $v = $parsed[$k];
+ $s = '<table class="fr-table accounts">';
+ foreach ($v as $k => $w) {
+ $s .= sprintf('<tr class="%s"><td>%s</td><td class="money">%s</td></tr>',
+ str_replace(' ', '-', $k),
+ $k,
+ _report_number_format($w));
+ }
+ $s .= '</table>';
+ echo $s;
+ ?>
+ </div>
+ <div class="para">
+ <?php echo $intro; ?>
+ <p>Feel free to <a href="/en/contact/">contact us</a> regarding this report.</p>
+ </div>
+ </aside>
+
+ <article id="report">
+ <section class="para values" id="flow">
+ <h2>Cash flow</h2>
+ <div id="chart_div" style="width: 650px; height: 280px;"></div>
+ <div id="chart3" style="width: 650px; height: 200px;"></div>
+ <div id="chart2" style="width: 650px; height: 200px;"></div>
+ <hr>
+ </section>
+ <section class="para values" id="inc-state">
+ <h2>Income statement</h2>
+ <!-- <mark>full income statement. For now, check details below.</mark>-->
+ <table summary="Income statement" class="fr-table">
+ <tbody>
+ <tr>
+ <th>Revenues</th>
+ <td></td>
+ <td class="money"><?php echo _report_number_format($R['data']['total']);?></td>
+ </tr>
+ <tr>
+ <th>Expenses</th>
+ <td class="money"><?php echo _report_number_format($expenses_total);?></td>
+ <td></td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <?php
+ $result = $R['data']['total'] - $expenses_total;
+ if ($result > 0):
+ ?>
+ <td>Net Income</td>
+ <td></td>
+ <td class="money"><?php echo _report_number_format($result); ?></td>
+ <?php else: ?>
+ <td>Net Loss</td>
+ <td class="money"><?php echo _report_number_format(-$result); ?></td>
+ <td></td>
+ <?php endif; ?>
+ </tr>
+ </tfoot>
+ </table>
+ </section>
+ <hr>
+ <!--
+ <section class="para values" id="balance">
+ <h2>Balance sheet</h2>
+ <table class="fr-table">
+ <thead><tr><th colspan="2">Assets</th>
+ <th colspan="2">Liabilities</th></tr></thead>
+ <tbody><tr><td colspan="2">
+ <table class="fr-table">
+ <?php
+ $s = '';
+ foreach ($parsed['# Balance Sheet (incomplete) > ## Assets'] as $k => $v) {
+ $v = str_replace(',', '.', $v);
+ $v = is_numeric($v) ? _report_number_format($v) : $v;
+ $s .= sprintf('<tr><td>%s</td><td class="money">%s</td></tr>', $k, $v);
+ }
+ echo $s;
+ ?>
+ </table>
+ </td><td colspan="2">
+ <table class="fr-table">
+ <?php
+ $s = '';
+ foreach ($parsed['# Balance Sheet (incomplete) > ## Liabilities'] as $k => $v) {
+ $v = str_replace(',', '.', $v);
+ $v = is_numeric($v) ? _report_number_format($v) : $v;
+ $s .= sprintf('<tr><td>%s</td><td class="money">%s</td></tr>', $k, $v);
+ }
+ echo $s;
+ ?>
+ </table>
+ </td></tr></tbody>
+ <tfoot><tr><td>Total Assets</td><td></td>
+ <td>Total Liabilities</td><td></td></tr></tfoot>
+ </table>
+ </section>
+ <hr>
+ -->
+ <section class="para values" id="expenses">
+ <h2>Expenses</h2>
+ <?php $E = get_expenses($parsed['# Expenses details > ## More details']); echo $E['html']; ?>
+ </section>
+ <hr>
+ <section class="para values" id="revenues">
+ <h2>Income, donations</h2>
+ <?php echo $R['html']; ?>
+ </section>
+ <p class="para"><a href="#top">Return to top</a></p>
+ </article>
+
+ <nav id="links">
+ <ul class="hl">
+ <li><a href="#flow">Cash flow</a></li>
+ <li><a href="#inc-state">Income statement</a></li>
+ <li><a href="#balance">Balance sheet</a></li>
+ <li><a href="#expenses">Expenses</a></li>
+ <li><a href="#revenues">Revenues</a></li>
+ </nav>
+</body>
+</html>
diff --git a/en/about/reports/template_lib.php b/en/about/reports/template_lib.php
new file mode 100644
index 000000000..419ff103c
--- /dev/null
+++ b/en/about/reports/template_lib.php
@@ -0,0 +1,169 @@
+<?php
+
+
+function get_expenses($v)
+{
+ $html = '<div id="expenses-cats-pie"></div>';
+ $html .= '<table class="fr-table">';
+
+ $line = array_shift($v);
+ $sums = array();
+
+ $html .= sprintf('<thead><tr><th>%s</th><th>%s</th><th>%s</th><th class="money">%s</th></tr></thead><tbody>',
+ $line[0], $line[1],
+ $line[2], $line[3],
+ $line[4],
+ $line[5]);
+
+ foreach ($v as $line) {
+ if (count($line) < 2)
+ continue;
+
+ $html .= sprintf('<tr><td>%s</td><td>%s</td><td>%s</td><td class="money">%s</td></tr>',
+ date('Y-M-d', strtotime($line[0])), $line[1],
+ $line[2],
+ _report_number_format($line[3]));
+
+ $cat = explode(':', $line[1]);
+ $sums[$cat[0]] += $line[3];
+ $sums['total'] += $line[3];
+ }
+
+ $html .= '</tbody>
+ <tfoot><tr>
+ <td colspan="3">Total:</td>
+ <td class="money">' . _report_number_format($sums['total']) . '</td>
+ </tr></tfoot>
+</table>';
+
+ unset($sums['total']);
+ arsort($sums);
+ foreach ($sums as $k => $v)
+ $sums[$k] = "['{$k}', $v]";
+
+ $values = implode(', ', $sums);
+ $html .= <<<H
+<script type="text/javascript">
+ google.setOnLoadCallback(drawChartExpenses);
+ function drawChartExpenses() {
+ var data = new google.visualization.DataTable();
+ data.addColumn('string', 'Source');
+ data.addColumn('number', 'Amount');
+ data.addRows([{$values}]);
+ var options = {'title':'Expenses by category',
+ 'width':400,
+ 'height':300};
+
+ var chart = new google.visualization.PieChart(document.getElementById('expenses-cats-pie'));
+ chart.draw(data, options);
+ }
+</script>
+H;
+
+ return array('html' => $html);
+}
+
+/**
+ * @param string $v
+ *
+ * @return array('html' => string, 'data' => mixed)
+*/
+function get_revenues($v, $_months)
+{
+ $html = '<div id="income-pie"></div>';
+ $html .= '<table class="fr-table">';
+
+ $line = array_shift($v);
+ $html .= sprintf('<thead><tr><th>%s</th><th>%s</th>
+ <th>%s</th><th>%s</th><th>%s</th><th>%s</th>
+ <th>%s</th><th>average</th></tr></thead>',
+ $line[0], $line[1], $line[2],
+ $line[3],
+ $line[4],
+ $line[5], $line[6]);
+
+ $html .= '<tbody>';
+
+ $sums = array(
+ 'count' => 0,
+ 'total' => 0,
+ 'check' => 0,
+ 'xfer' => 0,
+ 'paypal' => 0,
+ 'cash' => 0
+ );
+
+ foreach ($v as $line) {
+ if (count($line) < 2)
+ continue;
+
+ $html .= sprintf('<tr><td>%s</td><td>%s</td>
+ <td class="money">%s</td>
+ <td class="money">%s</td>
+ <td class="money">%s</td>
+ <td class="money">%s</td>
+ <td class="money">%s</td>
+ <td class="money">%s</td></tr>',
+ $_months[$line[0]],
+ $line[1],
+ _report_number_format($line[2]),
+ _report_number_format($line[3]),
+ _report_number_format($line[4]),
+ _report_number_format($line[5]),
+ _report_number_format($line[6]),
+ $line[1] > 0 ? _report_number_format($line[2] / $line[1]) : ''
+ );
+
+ $sums['count'] += $line[1];
+ $sums['total'] += $line[2];
+ $sums['check'] += $line[3];
+ $sums['xfer'] += $line[4];
+ $sums['paypal'] += $line[5];
+ $sums['cash'] += $line[6];
+ }
+ $html .= '</tbody><tfoot>';
+ $html .= sprintf('<tr><th>Total</th>
+ <td class="money">%s</td>
+ <td class="money">%s</td>
+ <td class="money">%s</td>
+ <td class="money">%s</td>
+ <td class="money">%s</td>
+ <td class="money">%s</td>
+ <td class="money">%s</td></tr>',
+ $sums['count'],
+ _report_number_format($sums['total']),
+ _report_number_format($sums['check']),
+ _report_number_format($sums['xfer']),
+ _report_number_format($sums['paypal']),
+ _report_number_format($sums['cash']),
+ $sums['count'] > 0 ? _report_number_format($sums['total'] / $sums['count']) : ''
+ );
+ $total_revenues = $sums['total'];
+ $html .= '</tfoot></table>';
+
+ $html .= <<<S
+ <script type="text/javascript">
+ google.setOnLoadCallback(drawChart);
+ function drawChart() {
+ var data = new google.visualization.DataTable();
+ data.addColumn('string', 'Source');
+ data.addColumn('number', 'Amount');
+ data.addRows([
+ ['Paypal', {$sums['paypal']}],
+ ['Bank transfer', {$sums['xfer']}],
+ ['Check', {$sums['check']}],
+ ['Cash', {$sums['cash']}],
+ ]);
+
+ var options = {'title':'Donations by source',
+ 'width':400,
+ 'height':300};
+
+ var chart = new google.visualization.PieChart(document.getElementById('income-pie'));
+ chart.draw(data, options);
+ }
+ </script>
+S;
+
+ return array('html' => $html, 'data' => array('total' => $total_revenues));
+} \ No newline at end of file