olap/olap_config.php

157 lines
5.9 KiB
PHP
Raw Permalink Normal View History

2010-07-27 08:51:32 +04:00
<?php
OLAP::$sources = array(
2013-02-19 14:51:29 +04:00
'mediawiki_history' => array(
'id' => 'mediawiki_history',
'name' => 'Ревизии MediaWiki',
'tables' => array('r' => 'revision'),
'fields' => 't.rev_timestamp',
'where' => array(),
'fielddescs' => array(
'rev_timestamp' => array(
'name' => 'Время',
'le_ge' => true,
'is_time' => true,
'format' => TS_MW,
),
),
),
2010-07-27 08:51:32 +04:00
'v2tags' => array(
'id' => 'v2tags',
'name' => 'VitaphotoV2, статистика по тегам',
'tables' => array('t' => 'stats_tag_all'),
'fields' => 't.ts, t.tag',
'where' => array(),
'fielddescs' => array(
2010-07-27 09:39:12 +04:00
'ts' => array(
2010-07-27 08:51:32 +04:00
'name' => 'Время',
'le_ge' => true,
'is_time' => true,
'format' => TS_UNIX,
),
2010-07-27 09:39:12 +04:00
'tag' => array(
2010-07-27 08:51:32 +04:00
'name' => 'Тег',
2017-12-07 17:11:40 +03:00
'options' => function($olap)
{
return $olap->mysql()->select('tags', 'id, name', array('type' => 0));
}
),
),
),
'chk' => array(
'id' => 'chk',
'db' => array('chk', 'localhost', 'chk', 'chk'),
'name' => 'Чеки', // date, price, seller, comment, count, each
'tables' => array('t' => 'chk'),
'fields' => 't.date, t.price, t.seller, t.comment, t.count, t.each',
'where' => array(),
'fielddescs' => array(
'date' => array(
'name' => 'Дата',
'le_ge' => true,
'is_time' => true,
'format' => TS_DB,
),
'price' => array(
'name' => 'Цена',
'le_ge' => true,
),
'seller' => array(
'name' => 'Где',
),
'comment' => array(
'name' => 'Комментарий',
),
'count' => array(
'name' => 'Количество',
),
'each' => array(
'name' => 'Цена за каждый',
'sql' => '`each`',
2010-07-27 08:51:32 +04:00
),
),
),
'bugzilla' => array(
'id' => 'bugzilla',
'name' => 'Время Bugzilla',
2017-12-07 17:11:40 +03:00
'tables' => array(
't' => 'bugs3.longdescs',
'p' => [ 'INNER', 'bugs3.profiles', [ 'p.userid=t.who' ] ],
'b' => [ 'INNER', 'bugs3.bugs', [ 'b.bug_id=t.bug_id' ] ],
'pr' => [ 'INNER', 'bugs3.products', [ 'pr.id=b.product_id' ] ],
'c' => [ 'INNER', 'bugs3.components', [ 'c.id=b.component_id' ] ],
'bt' => [ 'LEFT', 'bugs3.cf_bug_type', [ 'bt.id=b.cf_bug_type' ] ],
),
'fields' => 'p.login_name, t.bug_when, t.work_time',
2017-12-07 17:11:40 +03:00
'where' => array(
'p.login_name like "%@custis.ru"',
),
'fielddescs' => array(
2017-12-07 17:11:40 +03:00
'group' => array(
'name' => 'Группа',
'join' => [
'ug' => [ 'INNER', 'bugs3.user_group_map', [ 'ug.user_id=t.who', 'ug.isbless=0' ] ],
'g' => [ 'INNER', 'bugs3.groups', [ 'g.id=ug.group_id' ] ],
],
'sql' => 'g.id',
'options' => function($olap)
{
return $olap->mysql()->select('bugs3.groups', 'id, name', array('isbuggroup=1'), array('ORDER BY' => 'name'));
}
),
'who' => array(
'name' => 'Логин',
'sql' => 'p.login_name',
/* 'options' => function($olap)
{
return $olap->mysql()->select('bugs3.profiles', 'userid id, login_name name', array('login_name like "%@custis.ru" and realname not like \'Группа%\''));
}*/
),
'bug_when' => array(
2017-12-07 17:11:40 +03:00
'name' => 'Момент времени',
'le_ge' => true,
'is_time' => true,
'format' => TS_DB,
),
'work_time' => array(
'name' => 'Часы',
'le_ge' => true,
),
2017-12-07 17:11:40 +03:00
'bug_id' => array(
'name' => 'ID бага',
'sql' => 't.bug_id',
'le_ge' => true,
),
'product' => array(
'name' => 'Продукт',
'sql' => 'pr.name',
),
'component' => array(
'name' => 'Компонент',
'sql' => 'c.name',
),
'cf_bug_type' => array(
'name' => 'Тип бага',
'sql' => 'bt.value',
),
'da_type' => array(
'name' => 'Время ДА',
'sql' => function($olap)
{
$arch_product = $olap->mysql()->select('bugs3.products', 'id', [ 'name' => '-Arch_Other' ], NULL, MS_VALUE);
$arch_components = $olap->mysql()->select('bugs3.components', 'id', [ 'name LIKE ?' => 'arch%' ], NULL, MS_COL);
$arch_bug_types = $olap->mysql()->select('bugs3.cf_bug_type', 'id', [ 'value LIKE ?' => 'arch%' ], NULL, MS_COL);
return '(CASE'.
($arch_product ? ' WHEN b.product_id='.$arch_product.' THEN \'ДА\'' : '').
($arch_components || $arch_bug_types ? ' WHEN '.
($arch_components ? 'b.component_id IN ('.implode(',', $arch_components).')' : '').
($arch_components && $arch_bug_types ? ' OR ' : '').
($arch_bug_types ? 'b.cf_bug_type IN ('.implode(',', $arch_bug_types).')' : '').
' THEN \'Арх\'' : '').
' ELSE \'Другое\' END)';
}
),
),
),
2010-07-27 08:51:32 +04:00
);