<?php
// Declare everything to be output before the table
$before = <<<BEFORE
BEFORE;
// Declare everything to be output after the table
$after = <<<AFTER
<div class="table-legend">
<h4>Activity Codes key:</h4>
<ol class="legend-list three-col">
<li>Civil engineering and buildings</li>
<li>Electrical engineering and energy</li>
<li>Electronics (including radiofrequency equipment)</li>
<li>Computer systems and communication, including rental and maintenance</li>
<li>Mechanical structures - Supplies & manufacturing techniques</li>
<li>Vacuum and low-temperature technology</li>
<li>Particle detectors</li>
<li>Miscellaneous (insurances, photoequipment, gases, vehicles, petrol, tools, furniture, office supplies, publications)</li>
<li>Design studies - Miscellaneous supplies</li>
</ol>
<ul><li><sup>1</sup> Including commitments carried forward from previous years and excluding commitments for future years.
Ratio between the percentage of expenditure in an individual Member State for the above-mentioned period and that Member State's percentage contribution to the Budget <em>(TARGET for 2013: 0.91)</em>.</li>
<li><sup>2</sup> Additional special contributions from France (excluding in-kind) and Switzerland were included in the calculation. Excluding individual purchase orders < 1 000 CHF from 1 July 2013</li>
<!--<li><sup>3</sup> See Table V of document <em>CERN/FC/5722/RA</em></li>--></ul>
</div>
AFTER;
// fixme: this formats are obsolete, since data transform has been moved to 'body'
// Formats for numbers. ### is a wildcard for 'current column'
$to_french_number = "TO_CHAR(###, '999G999G999', 'NLS_NUMERIC_CHARACTERS = '', ''')";
$to_percent = "TO_CHAR(ROUND(###, 2), '90.00')";
$table_template = array(
'db' => array(
'from' => 'PURCHASING_REPORT_TABLE_0',
'select' => array(
'MS' => FALSE,
'COUNTRY_ISO' => FALSE,
'COUNTRY_NAME' => NULL,
'SUPPLIES_1' => '###',
'SUPPLIES_2' => '###',
'SUPPLIES_3' => '###',
'SUPPLIES_4' => '###',
'SUPPLIES_5' => '###',
'SUPPLIES_6' => '###',
'SUPPLIES_7' => '###',
'SUPPLIES_8' => '###',
'SUPPLIES_9' => '###',
'SUPPLIES_TOTAL' => '###',
'SUPPLIES_RATIO' => '###',
'IR_PREV_YEAR' => '###',
),
'where' => array(
'MS' => array('LIKE', '%'),
'COUNTRY_ISO' => array('LIKE', '%')
),
),
'filters' => array(
'country_iso' => array(
'type' => 'country',
'description' => 'Country',
'where' => array(
'COUNTRY_ISO' => array('LIKE', '%'),
),
),
'ms' => array(
'type' => 'ms',
'description' => 'Member State',
'where' => array(
'MS' => array('LIKE', '%'),
),
),
),
'dynamic' => TRUE,
'editable' => FALSE,
'number' => 1,
'title' => "Payments and oustanding commitments in 2013 for Supplies<br><small>(Excluding visiting research teams and collaborations)</small>",
'subtitle' => "by country and by category of supplies",
'graph' => array(
'dynamic' => FALSE,
),
'headers' => array(
array(
'from_db' => FALSE, // fixme: UNUSED
'layout' => array(
0 => array( 'colspan' => 11, 'class' => "text-center" ),
1 => array( 'rowspan' => 2, 'class' => "text-center border-left" ),
2 => array( 'rowspan' => 2, 'class' => "text-center border-left" ),
),
'data' => array(
0 => "<h3>Payments per activity code <small>(rounded kCHF)</small></h3>",
1 => "<h4>Industrial return<sup>2</sup><br><small>2013</small></h4>",
2 => "<h4>Return coefficient<br><small>2009 – 2012<!--<sup>3</sup>--></small></h4>",
),
),
array(
// fixme: unused
'from_db' => TRUE,
'layout' => array(
'SUPPLIES_1' => array( 'class' => "text-center" ),
'SUPPLIES_2' => array( 'class' => "text-center" ),
'SUPPLIES_3' => array( 'class' => "text-center" ),
'SUPPLIES_4' => array( 'class' => "text-center" ),
'SUPPLIES_5' => array( 'class' => "text-center" ),
'SUPPLIES_6' => array( 'class' => "text-center" ),
'SUPPLIES_7' => array( 'class' => "text-center" ),
'SUPPLIES_8' => array( 'class' => "text-center" ),
'SUPPLIES_9' => array( 'class' => "text-center" ),
'SUPPLIES_TOTAL' => array( 'class' => "text-center" ),
'SUPPLIES_RATIO' => array( 'class' => "text-center border-left" ),
'IR_PREV_YEAR' => array( 'class' => "text-center border-left" ),
),
'data' => array(
'MS' => FALSE,
'COUNTRY_ISO' => FALSE,
'COUNTRY_NAME' => "",
'SUPPLIES_1' => "1",
'SUPPLIES_2' => "2",
'SUPPLIES_3' => "3",
'SUPPLIES_4' => "4",
'SUPPLIES_5' => "5",
'SUPPLIES_6' => "6",
'SUPPLIES_7' => "7",
'SUPPLIES_8' => "8",
'SUPPLIES_9' => "9",
'SUPPLIES_TOTAL' => "Total",
'SUPPLIES_RATIO' => FALSE,
'IR_PREV_YEAR' => FALSE,
),
),
),
'body' => array(
'layout' => array(
'COUNTRY_NAME' => array( 'class' => "text-left" ),
'SUPPLIES_1' => array( 'class' => "text-right no-wrap" ),
'SUPPLIES_2' => array( 'class' => "text-right no-wrap" ),
'SUPPLIES_3' => array( 'class' => "text-right no-wrap" ),
'SUPPLIES_4' => array( 'class' => "text-right no-wrap" ),
'SUPPLIES_5' => array( 'class' => "text-right no-wrap" ),
'SUPPLIES_6' => array( 'class' => "text-right no-wrap" ),
'SUPPLIES_7' => array( 'class' => "text-right no-wrap" ),
'SUPPLIES_8' => array( 'class' => "text-right no-wrap" ),
'SUPPLIES_9' => array( 'class' => "text-right no-wrap" ),
'SUPPLIES_TOTAL' => array( 'class' => "text-center no-wrap" ),
'SUPPLIES_RATIO' => array( 'class' => "text-center border-left" ),
'IR_PREV_YEAR' => array( 'class' => "text-center border-left" ),
),
'format' => array(
'SUPPLIES_1' => array('format_french_number', 'format_no_decimals'),
'SUPPLIES_2' => array('format_french_number', 'format_no_decimals'),
'SUPPLIES_3' => array('format_french_number', 'format_no_decimals'),
'SUPPLIES_4' => array('format_french_number', 'format_no_decimals'),
'SUPPLIES_5' => array('format_french_number', 'format_no_decimals'),
'SUPPLIES_6' => array('format_french_number', 'format_no_decimals'),
'SUPPLIES_7' => array('format_french_number', 'format_no_decimals'),
'SUPPLIES_8' => array('format_french_number', 'format_no_decimals'),
'SUPPLIES_9' => array('format_french_number', 'format_no_decimals'),
'SUPPLIES_TOTAL' => array('format_french_number', 'format_no_decimals'),
'SUPPLIES_RATIO' => 'format_french_number',
'IR_PREV_YEAR' => 'format_french_number',
),
),
// TODO: Implement footers with custom queries and formatting
'footers' => array(
array(
// fixme: unused
'from_db' => TRUE,
// fixme: this is not used, and should go
'exclude' => array( 'MS' => "Others" ),
'layout' => array(
'COUNTRY_NAME' => array( 'class' => "text-right" )
),
'data' => array(
'COUNTRY_NAME' => array( 'text' => "Sub-Total member states" ),
'SUPPLIES_1' => array( 'SUM' => "SUPPLIES_1" ),
'SUPPLIES_2' => array( 'SUM' => "SUPPLIES_2" ),
'SUPPLIES_3' => array( 'SUM' => "SUPPLIES_3" ),
'SUPPLIES_4' => array( 'SUM' => "SUPPLIES_4" ),
'SUPPLIES_5' => array( 'SUM' => "SUPPLIES_5" ),
'SUPPLIES_6' => array( 'SUM' => "SUPPLIES_6" ),
'SUPPLIES_7' => array( 'SUM' => "SUPPLIES_7" ),
'SUPPLIES_8' => array( 'SUM' => "SUPPLIES_8" ),
'SUPPLIES_9' => array( 'SUM' => "SUPPLIES_9" ),
'SUPPLIES_TOTAL' => array( 'SUM' => "SUPPLIES_TOTAL" ),
'SUPPLIES_RATIO' => false,
'IR_PREV_YEAR' => false,
),
),
array(
'from_db' => TRUE,
'exclude' => array( 'MS' => "Others" ),
'layout' => array(
'*' => array( 'class' => "text-italic text-bold" )
),
'data' => array(
'COUNTRY_NAME' => "",
'SUPPLIES_1' => array( 'PERCENT' => array( 'SUPPLIES_1', 'SUPPLIES_TOTAL' )),
'SUPPLIES_2' => array( 'PERCENT' => array( 'SUPPLIES_2', 'SUPPLIES_TOTAL' )),
'SUPPLIES_3' => array( 'PERCENT' => array( 'SUPPLIES_3', 'SUPPLIES_TOTAL' )),
'SUPPLIES_4' => array( 'PERCENT' => array( 'SUPPLIES_4', 'SUPPLIES_TOTAL' )),
'SUPPLIES_5' => array( 'PERCENT' => array( 'SUPPLIES_5', 'SUPPLIES_TOTAL' )),
'SUPPLIES_6' => array( 'PERCENT' => array( 'SUPPLIES_6', 'SUPPLIES_TOTAL' )),
'SUPPLIES_7' => array( 'PERCENT' => array( 'SUPPLIES_7', 'SUPPLIES_TOTAL' )),
'SUPPLIES_8' => array( 'PERCENT' => array( 'SUPPLIES_8', 'SUPPLIES_TOTAL' )),
'SUPPLIES_9' => array( 'PERCENT' => array( 'SUPPLIES_9', 'SUPPLIES_TOTAL' )),
'SUPPLIES_TOTAL' => array( 'PERCENT' => array( 'SUPPLIES_TOTAL', 'SUPPLIES_TOTAL' )),
'SUPPLIES_RATIO' => false,
'IR_PREV_YEAR' => false,
),
),
array(
'from_db' => TRUE,
'exclude' => array(
'MS' => "Member States",
),
'layout' => array(
'COUNTRY_NAME' => array( 'class' => "text-right" )
),
'data' => array(
'COUNTRY_NAME' => array( 'text' => "Sub-Total other" ),
'SUPPLIES_1' => array( 'SUM' => "SUPPLIES_1" ),
'SUPPLIES_2' => array( 'SUM' => "SUPPLIES_2" ),
'SUPPLIES_3' => array( 'SUM' => "SUPPLIES_3" ),
'SUPPLIES_4' => array( 'SUM' => "SUPPLIES_4" ),
'SUPPLIES_5' => array( 'SUM' => "SUPPLIES_5" ),
'SUPPLIES_6' => array( 'SUM' => "SUPPLIES_6" ),
'SUPPLIES_7' => array( 'SUM' => "SUPPLIES_7" ),
'SUPPLIES_8' => array( 'SUM' => "SUPPLIES_8" ),
'SUPPLIES_9' => array( 'SUM' => "SUPPLIES_9" ),
'SUPPLIES_TOTAL' => array( 'SUM' => "SUPPLIES_TOTAL" ),
'SUPPLIES_RATIO' => false,
'IR_PREV_YEAR' => false,
),
),
array(
'from_db' => TRUE,
'layout' => array(
'COUNTRY_NAME' => array( 'class' => "text-right" )
),
'data' => array(
'COUNTRY_NAME' => array( 'text' => "Total" ),
'SUPPLIES_1' => array( 'SUM' => "SUPPLIES_1" ),
'SUPPLIES_2' => array( 'SUM' => "SUPPLIES_2" ),
'SUPPLIES_3' => array( 'SUM' => "SUPPLIES_3" ),
'SUPPLIES_4' => array( 'SUM' => "SUPPLIES_4" ),
'SUPPLIES_5' => array( 'SUM' => "SUPPLIES_5" ),
'SUPPLIES_6' => array( 'SUM' => "SUPPLIES_6" ),
'SUPPLIES_7' => array( 'SUM' => "SUPPLIES_7" ),
'SUPPLIES_8' => array( 'SUM' => "SUPPLIES_8" ),
'SUPPLIES_9' => array( 'SUM' => "SUPPLIES_9" ),
'SUPPLIES_TOTAL' => array( 'SUM' => "SUPPLIES_TOTAL" ),
'SUPPLIES_RATIO' => false,
'IR_PREV_YEAR' => false,
),
),
),
'html' => array(
'before' => $before,
'after' => $after,
),
);
echo json_encode($table_template);
preferences:
37.63 ms | 402 KiB | 5 Q