diff options
Diffstat (limited to 'en/about/reports')
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> » 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 8 801.66</li> + <li>Amount spent: EUR 1 277.77</li> + <li>Amount remaining: EUR 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 8 801.42</td><td> </td></tr> + <tr><td>Paypal test to validate bank account</td><td class="money">EUR 0.24</td><td> </td></tr> + <tr><td colspan=3>Hardware for servers</td></tr> + <tr><td>HDD for servers (dams)</td><td> </td><td class="money">EUR 921.20</td></tr> + <tr><td>Cables and other stuff for servers (dams)</td><td> </td><td class="money">EUR 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> </td><td class="money">EUR 135.00</td></tr> + <tr><td>Gasoline for the car (dams)</td><td> </td><td class="money">EUR 63.00</td></tr> + <tr><td>Croissants for the <em>ielo</em> team (dams)</td><td> </td><td class="money">EUR 12.12</td></tr> + <tr><td>TGV for going back to Paris for 3 people (ennael)</td><td> </td><td class="money">EUR 128.88</td></tr> + <tr><td colspan=3> </td></tr> + <tr><td>Total</td><td class="money">EUR 8 801.66</td><td class="money">EUR 1 277.77</td></tr> + <tr><td>Balance</td><td colspan=2 class="money">EUR 7 523.96</td></tr> + </tbody></table> + <h2>Bank accounts situation</h2> + <ul> + <li>Paypal (non-for-profit organisation account): EUR 63.51</li> + <li>Main account (with checkbook and no credit card): EUR 1 310.24</li> + <li>Savings account (between 2% and 4% of interest): EUR 4 000.00</li> + <li>AUFML account (part to be transfered to Mageia.Org): EUR 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 – 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 Binary files differnew file mode 100644 index 000000000..e4ffcdb57 --- /dev/null +++ b/en/about/reports/2011/mageia_financial_report_2011_en.pdf diff --git a/en/about/reports/2011/mageia_rapport_financier_2011_fr.pdf b/en/about/reports/2011/mageia_rapport_financier_2011_fr.pdf Binary files differnew file mode 100644 index 000000000..c86f48eca --- /dev/null +++ b/en/about/reports/2011/mageia_rapport_financier_2011_fr.pdf 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 Binary files differnew file mode 100644 index 000000000..4cbd91982 --- /dev/null +++ b/en/about/reports/2012/mageia_financial_report_2012_en.pdf diff --git a/en/about/reports/2012/mageia_rapport_financier_2012_fr.pdf b/en/about/reports/2012/mageia_rapport_financier_2012_fr.pdf Binary files differnew file mode 100644 index 000000000..5216f59f3 --- /dev/null +++ b/en/about/reports/2012/mageia_rapport_financier_2012_fr.pdf 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 & 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 & 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('#', ' ', 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> » <?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 |