menu($args['year']); } if (empty($args['year'])) { ?>
Nie wybrano roku.
getCostsByYear($args['year']); if (empty($costs)) { ?>
Brak danych na wybrany rok.
buildProjectTree($costs); //$orderby = V::get('orderby', '', $_GET); //$view_type = V::get('view_type', '', $_GET); //$budgetAnalyticsRouter->cyfrowe($projekty, $grupyKosztow, $costs, $orderby, $view_type); $budgetAnalyticsRouter->printCostsForYear($projTree, $costs, $args['year']); } class BudgetAnalyticsRouter { function menu($selectedYear) { //SE_Layout::menu(); $year = ($selectedYear)? $selectedYear : date("Y"); ?>
css(); //echo'
';print_r($costs);echo'
'; ?>

Zestawienie kosztów projektów na rok

$projId) : ?> costsByMonth)) : ?> costsByMonth); ?> COST_CHILD > 0) : ?> COST_SELF} / koszt podprojektów {$vCost->COST_CHILD}"; ?> COST_SELF > 0) : ?>
pokaż tylko zaznaczone miesiąc
path; ?> M_DIST_DESC; ?> COST_TOTAL; ?> COST_TOTAL; ?> COST_TOTAL; ?>  
query($sql); while ($r = $db->fetch($res)) { if (!array_key_exists($r->ID_PROJECT, $costs)) { $projectInfo = new stdClass(); $projectInfo->ID_PROJECT = $r->ID_PROJECT; $projectInfo->M_DIST_DESC = $r->M_DIST_DESC; $projectInfo->path = $r->path; $projectInfo->costsByMonth = array(); $costs[$r->ID_PROJECT] = $projectInfo; } $cost = new stdClass(); $cost->MONTH = $r->MONTH; $cost->COST_SELF = $r->COST_SELF; $cost->COST_CHILD = $r->COST_CHILD; $cost->COST_TOTAL = $r->COST_TOTAL; $cost->INCOME_SELF = $r->INCOME_SELF; $cost->INCOME_CHILD = $r->INCOME_CHILD; $cost->INCOME_TOTAL = $r->INCOME_TOTAL; $monthNum = intval(substr($r->MONTH, 5, 2)); $costs[$r->ID_PROJECT]->costsByMonth[$monthNum] = $cost; } return $costs; } public function buildProjectTree($costs) { $projPaths = array(); foreach ($costs as $idProject => $projectInfo) { $projPaths[$projectInfo->path] = $projectInfo->ID_PROJECT; } //echo'
projPaths: ';print_r($projPaths);echo'
'; uksort($projPaths, array($this, 'sortPathsCallback')); //echo'
projPaths sorted: ';print_r($projPaths);echo'
'; return $projPaths; } public function sortPathsCallback($a, $b) { $ea = explode('-', $a); $eb = explode('-', $b); $la = count($ea); $lb = count($eb); $lmin = min($la, $lb); for ($i = 0; $i < $lmin; $i++) { if ($ea[$i] < $eb[$i]) { return -1; } else if ($ea[$i] > $eb[$i]) { return 1; } } return $la - $lb; } public function installView() { $sql = " CREATE VIEW `test_budget_project_analytics_view` AS select `IN7_DZIENNIK_KORESP`.`ID_PROJECT` AS `ID_PROJECT` , date_format(`IN7_DZIENNIK_KORESP`.`K_DATA_OTRZYMANEJ_KORESP`,'%Y-%m') AS `MONTH` , sum(`IN7_DZIENNIK_KORESP`.`COST_VALUE`) AS `COST` , sum(`IN7_DZIENNIK_KORESP`.`INCOME_VALUE`) AS `INCOME` , 'SELF' AS `TYPE` from `IN7_DZIENNIK_KORESP` where ((`IN7_DZIENNIK_KORESP`.`COST_VALUE` > 0) or (`IN7_DZIENNIK_KORESP`.`INCOME_VALUE` > 0)) group by `IN7_DZIENNIK_KORESP`.`ID_PROJECT` , date_format(`IN7_DZIENNIK_KORESP`.`K_DATA_OTRZYMANEJ_KORESP`,'%Y-%m') union select `p`.`ID` AS `ID_PROJECT` , date_format(`k`.`K_DATA_OTRZYMANEJ_KORESP`,'%Y-%m') AS `MONTH` , sum(`k`.`COST_VALUE`) AS `COST`,sum(`k`.`INCOME_VALUE`) AS `INCOME` , 'CHILD' AS `TYPE` from (`IN7_MK_BAZA_DYSTRYBUCJI` `p` join `IN7_DZIENNIK_KORESP` `k` on((((`k`.`COST_VALUE` > 0) or (`k`.`INCOME_VALUE` > 0)) and (`k`.`path` like concat('%-',`p`.`ID`,'-%'))))) group by `p`.`ID`, date_format(`k`.`K_DATA_OTRZYMANEJ_KORESP`, '%Y-%m') "; $sql = " CREATE VIEW `test_budget_project_synthetics_view` AS select `t1`.`ID_PROJECT` AS `ID_PROJECT` , `p`.`M_DIST_DESC` AS `M_DIST_DESC` , `p`.`P_ID` AS `P_ID` , `p`.`path` AS `path` , `t1`.`MONTH` AS `MONTH` , cast(sum(if((`t1`.`TYPE` = 'SELF'),`t1`.`COST`,'0')) as decimal(10,2)) AS `COST_SELF` , cast(sum(if((`t1`.`TYPE` = 'CHILD'),`t1`.`COST`,'0')) as decimal(10,2)) AS `COST_CHILD` , sum(`t1`.`COST`) AS `COST_TOTAL` , cast(sum(if((`t1`.`TYPE` = 'SELF'),`t1`.`INCOME`,'0')) as decimal(10,2)) AS `INCOME_SELF` , cast(sum(if((`t1`.`TYPE` = 'CHILD'),`t1`.`INCOME`,'0')) as decimal(10,2)) AS `INCOME_CHILD` , sum(`t1`.`INCOME`) AS `INCOME_TOTAL` from (`test_budget_project_analytics_view` `t1` join `IN7_MK_BAZA_DYSTRYBUCJI` `p` on((`t1`.`ID_PROJECT` = `p`.`ID`)) ) group by `t1`.`ID_PROJECT`, `t1`.`MONTH` "; } }