olap/olap_config.php

157 lines
5.9 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
OLAP::$sources = array(
'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,
),
),
),
'v2tags' => array(
'id' => 'v2tags',
'name' => 'VitaphotoV2, статистика по тегам',
'tables' => array('t' => 'stats_tag_all'),
'fields' => 't.ts, t.tag',
'where' => array(),
'fielddescs' => array(
'ts' => array(
'name' => 'Время',
'le_ge' => true,
'is_time' => true,
'format' => TS_UNIX,
),
'tag' => array(
'name' => 'Тег',
'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`',
),
),
),
'bugzilla' => array(
'id' => 'bugzilla',
'name' => 'Время Bugzilla',
'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',
'where' => array(
'p.login_name like "%@custis.ru"',
),
'fielddescs' => array(
'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(
'name' => 'Момент времени',
'le_ge' => true,
'is_time' => true,
'format' => TS_DB,
),
'work_time' => array(
'name' => 'Часы',
'le_ge' => true,
),
'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)';
}
),
),
),
);