|
|
@@ -53,10 +53,9 @@ class Route_Budget extends RouteBase {
|
|
|
<?php
|
|
|
return;
|
|
|
}
|
|
|
- echo'<pre style="border:1px solid red;overflow:auto;max-height:400px">';print_r($costs);echo'</pre>';
|
|
|
+ //echo'<pre style="border:1px solid red;overflow:auto;max-height:400px">$costs: ';print_r($costs);echo'</pre>';
|
|
|
|
|
|
- $projTree = $this->buildProjectTree($costs);
|
|
|
- $this->printCostsForYear($projTree, $costs, $args['year']);
|
|
|
+ $this->printCostsForYear($args['year']);
|
|
|
|
|
|
SE_Layout::dol();
|
|
|
}
|
|
|
@@ -114,10 +113,10 @@ jQuery(document).ready(function () {
|
|
|
.showOnlySelected tr { display:none; }
|
|
|
.showOnlySelected tr.row-selected { display:table-row; }
|
|
|
|
|
|
- .cost { padding:0 2px; min-width:30px; text-align:right; }
|
|
|
- .cost-only_child { color:#777; }
|
|
|
- .cost-only_self { color:red; }
|
|
|
- .cost-self_and_child { color:orange; }
|
|
|
+ .cell-cost { padding:0 2px; min-width:30px; text-align:right; }
|
|
|
+ .cell-cost-only_child { color:#777; }
|
|
|
+ .cell-cost-only_self { color:red; }
|
|
|
+ .cell-cost-self_and_child { color:orange; }
|
|
|
|
|
|
/* print table background colors */
|
|
|
table td, table th { -webkit-print-color-adjust:exact; }
|
|
|
@@ -130,13 +129,14 @@ jQuery(document).ready(function () {
|
|
|
<?php
|
|
|
}
|
|
|
|
|
|
- function printCostsForYear($projOrder, $costs, $year) {
|
|
|
+ function printCostsForYear($year) {
|
|
|
+ $this->_costs = $this->_costs;
|
|
|
$months = array();
|
|
|
for ($i = 0; $i < 12; $i++) {
|
|
|
$months[] = $i + 1;
|
|
|
}
|
|
|
$this->css();
|
|
|
- if(V::get('DBG','',$_GET)){echo'<pre style="width:600px;border:1px solid red;max-height:300px;overflow:auto;display:none">';print_r($costs);echo'</pre>';}
|
|
|
+ if(V::get('DBG','',$_GET)){echo'<pre style="width:600px;border:1px solid red;max-height:300px;overflow:auto;display:none">';print_r($this->_costs);echo'</pre>';}
|
|
|
?>
|
|
|
<div class="container">
|
|
|
<div style="float:right;color:#aaa;"><?php echo date("Y-m-d"); ?></div>
|
|
|
@@ -148,19 +148,23 @@ jQuery(document).ready(function () {
|
|
|
<span class="pull-left">
|
|
|
<input type="checkbox" onclick="return showHideAll(this);"/> pokaż tylko zaznaczone
|
|
|
</span>
|
|
|
- <span class="pull-right">miesiąc</span>
|
|
|
+ <span class="pull-right"><b>miesiąc</b></span>
|
|
|
</td>
|
|
|
<?php foreach ($months as $month) { ?>
|
|
|
- <th class="c"><?php echo $month; ?></th>
|
|
|
+ <th class="c"><?php echo sprintf("%02d", $month); ?></th>
|
|
|
<?php } ?>
|
|
|
</tr>
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
<?php $t = 1; ?>
|
|
|
- <?php foreach ($projOrder as $projPath => $projId) : ?>
|
|
|
- <?php $projectInfo = $costs[$projId]; ?>
|
|
|
+ <?php foreach ($this->_projectPathsOrder as $projPath => $projId) : ?>
|
|
|
+ <?php $projectInfo = $this->_costs[$projId]; ?>
|
|
|
+ <?php if (empty($projectInfo)) {
|
|
|
+ //echo'<tr><td colspan="10"><pre>ERROR:EMPTY: Path('.$projPath.') id('.$projId.')</pre></td></tr>';
|
|
|
+ continue;
|
|
|
+ } ?>
|
|
|
<tr class="row-<?php echo ($t = 1 - $t); ?>"
|
|
|
- data-projId="<?php echo $projectInfo->ID_PROJECT; ?>"
|
|
|
+ data-proj_id="<?php echo $projectInfo->ID_PROJECT; ?>"
|
|
|
data-path="<?php echo $projectInfo->path; ?>">
|
|
|
<td class="p2 r nr">
|
|
|
<input type="checkbox" name="selectedProject" onclick="return selectProject(this);" value="<?php echo $projectInfo->ID_PROJECT; ?>" />
|
|
|
@@ -176,12 +180,27 @@ jQuery(document).ready(function () {
|
|
|
<?php if ($vCost->COST_CHILD > 0) : ?>
|
|
|
<?php $title = "Koszt projektu {$vCostSelfOut} / koszt podprojektów $vCostChildOut"; ?>
|
|
|
<?php if ($vCost->COST_SELF > 0) : ?>
|
|
|
- <td class="cost cost-self_and_child"><span class="ttip" title="<?php echo $title; ?>"><?php echo $vCostTotalOut; ?></span></td>
|
|
|
+ <td class="cell-cost cell-cost-self_and_child"
|
|
|
+ data-month_num="<?php echo $month; ?>"
|
|
|
+ data-proj_path="<?php echo $projectInfo->path; ?>"
|
|
|
+ data-proj_id="<?php echo $projectInfo->ID_PROJECT; ?>">
|
|
|
+ <span class="ttip" title="<?php echo $title; ?>"><?php echo $vCostTotalOut; ?></span>
|
|
|
+ </td>
|
|
|
<?php else : ?>
|
|
|
- <td class="cost cost-only_child"><span class="ttip" title="<?php echo $title; ?>"><?php echo $vCostTotalOut; ?></span></td>
|
|
|
+ <td class="cell-cost cell-cost-only_child"
|
|
|
+ data-month_num="<?php echo $month; ?>"
|
|
|
+ data-proj_path="<?php echo $projectInfo->path; ?>"
|
|
|
+ data-proj_id="<?php echo $projectInfo->ID_PROJECT; ?>">
|
|
|
+ <span class="ttip" title="<?php echo $title; ?>"><?php echo $vCostTotalOut; ?></span>
|
|
|
+ </td>
|
|
|
<?php endif; ?>
|
|
|
<?php else : ?>
|
|
|
- <td class="cost cost-only_self"><?php echo $vCostTotalOut; ?></td>
|
|
|
+ <td class="cell-cost cell-cost-only_self"
|
|
|
+ data-month_num="<?php echo $month; ?>"
|
|
|
+ data-proj_path="<?php echo $projectInfo->path; ?>"
|
|
|
+ data-proj_id="<?php echo $projectInfo->ID_PROJECT; ?>">
|
|
|
+ <?php echo $vCostTotalOut; ?>
|
|
|
+ </td>
|
|
|
<?php endif; ?>
|
|
|
<?php else : ?>
|
|
|
<td style="min-width:30px"> </td>
|
|
|
@@ -191,6 +210,47 @@ jQuery(document).ready(function () {
|
|
|
<?php endforeach; ?>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
+ <script>
|
|
|
+jQuery(document).ready(function() {
|
|
|
+ jQuery('#zestawienie-kosztow-projektow')
|
|
|
+ .find('.cell-cost')
|
|
|
+ .on('click', function(e) {
|
|
|
+ var $n = jQuery(this);
|
|
|
+ console.log('node', $n, 'data', $n.data());
|
|
|
+ })
|
|
|
+})
|
|
|
+ </script>
|
|
|
+ <table id="proj-koresp-info" style="display:none">
|
|
|
+ <?php foreach ($this->_costs as $projId => $projectInfo) : ?>
|
|
|
+ <?php if (!empty($projectInfo->korespByMonth)) : ?>
|
|
|
+ <?php foreach ($projectInfo->korespByMonth as $kMonth => $vKorespMonthList) : ?>
|
|
|
+ <tbody id="row-proj-<?php echo $projectInfo->ID_PROJECT; ?>-koresp-by-month-<?php echo $kMonth; ?>">
|
|
|
+ <tr>
|
|
|
+ <td colspan="10">
|
|
|
+ Projekt nr <?php echo $projectInfo->ID_PROJECT; ?>
|
|
|
+ - miesiąc <?php echo $year; ?>-<?php echo sprintf("%02d", $kMonth); ?>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <?php foreach ($vKorespMonthList as $kKorespIdx => $vKorespInfo) : ?>
|
|
|
+ <?php /*
|
|
|
+ [ID] => 41235
|
|
|
+ [MONTH] => 2015-02
|
|
|
+ [K_ZAWARTOS] => Faktura za pomiar powykonawczy sieci telekomunikacyjnej
|
|
|
+ [COST] => 1000.00
|
|
|
+ [INCOME] => 0.00
|
|
|
+ */ ?>
|
|
|
+ <tr>
|
|
|
+ <td class="p2 l nr"><?php echo $vKorespInfo->ID; ?></td>
|
|
|
+ <td class="p2" style="max-width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;" title="<?php echo $projectInfo->M_DIST_DESC; ?>"><?php echo $vKorespInfo->K_ZAWARTOS; ?></td>
|
|
|
+ <?php $vKorespCostOut = number_format($vKorespInfo->COST, 2); ?>
|
|
|
+ <td class="cell-cost cell-cost-only_self"><?php echo $vKorespCostOut; ?></td>
|
|
|
+ </tr>
|
|
|
+ <?php endforeach; ?>
|
|
|
+ </tbody>
|
|
|
+ <?php endforeach; ?>
|
|
|
+ <?php endif; ?>
|
|
|
+ <?php endforeach; ?>
|
|
|
+ </table>
|
|
|
</div>
|
|
|
<script>
|
|
|
jQuery(document).ready(function(){
|
|
|
@@ -282,13 +342,22 @@ jQuery(document).ready(function () {
|
|
|
|
|
|
public function getCostsByYear($year) {
|
|
|
$db = DB::getDB();
|
|
|
- $costs = array();
|
|
|
+ $this->_costs = array();
|
|
|
$sql = "
|
|
|
- select k.`ID_PROJECT` AS `ID_PROJECT`
|
|
|
+ select k.`ID`
|
|
|
+ , k.`ID_PROJECT` AS `ID_PROJECT`
|
|
|
, date_format(k.`K_DATA_OTRZYMANEJ_KORESP`,'%Y-%m') AS `MONTH`
|
|
|
, k.`COST_VALUE` AS `COST`
|
|
|
, k.`INCOME_VALUE` AS `INCOME`
|
|
|
, k.`TRANSFER_OPPOSITE_ID_PROJECT`
|
|
|
+ , k.`path`
|
|
|
+ , IF(k.`TRANSFER_OPPOSITE_ID_PROJECT`>0
|
|
|
+ , (select p.`path`
|
|
|
+ from `IN7_MK_BAZA_DYSTRYBUCJI` p
|
|
|
+ where p.`ID`=k.`TRANSFER_OPPOSITE_ID_PROJECT`
|
|
|
+ limit 1
|
|
|
+ )
|
|
|
+ , '') as TRANSFER_OPPOSITE_PROJECT_PATH
|
|
|
, k.`K_ZAWARTOS`
|
|
|
from `IN7_DZIENNIK_KORESP` k
|
|
|
where ((k.`COST_VALUE` > 0) or (k.`INCOME_VALUE` > 0))
|
|
|
@@ -297,21 +366,52 @@ jQuery(document).ready(function () {
|
|
|
//echo'<pre style="border:1px solid red;overflow:auto;max-height:400px">';print_r($sql);echo'</pre>';
|
|
|
$res = $db->query($sql);
|
|
|
while ($r = $db->fetch($res)) {
|
|
|
- $vProjIds = array();
|
|
|
- if ($r->ID_PROJECT > 0) $vProjIds[] = $r->ID_PROJECT;
|
|
|
- if ($r->TRANSFER_OPPOSITE_ID_PROJECT > 0) $vProjIds[] = $r->TRANSFER_OPPOSITE_ID_PROJECT;
|
|
|
- foreach ($vProjIds as $vProjId) {
|
|
|
- if (!array_key_exists($vProjId, $costs)) {
|
|
|
+ $vProjId = ($r->ID_PROJECT > 0)? $r->ID_PROJECT : 0;
|
|
|
+ $vProjPaths = array();
|
|
|
+ $vProjIds = array(0 => true);
|
|
|
+ if ($r->ID_PROJECT > 0) {
|
|
|
+ $vProjPaths[] = $r->ID_PROJECT;
|
|
|
+ if (!empty($r->path)) {
|
|
|
+ $vProjPaths[] = $r->path;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($r->TRANSFER_OPPOSITE_ID_PROJECT > 0) {
|
|
|
+ $vProjPaths[] = $r->TRANSFER_OPPOSITE_ID_PROJECT;
|
|
|
+ if (!empty($r->TRANSFER_OPPOSITE_PROJECT_PATH)) {
|
|
|
+ $vProjPaths[] = $r->TRANSFER_OPPOSITE_PROJECT_PATH;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!empty($vProjPaths)) {
|
|
|
+ //echo'<p>DBG:$r->ID_PROJECT['.$r->ID_PROJECT.']: $vProjPaths = ' . json_encode($vProjPaths) . '</p>';
|
|
|
+ $vProjPaths = implode('-', $vProjPaths);
|
|
|
+ $projIds = explode('-', $vProjPaths);
|
|
|
+ //echo'<p>DBG:$r->ID_PROJECT['.$r->ID_PROJECT.']: $projIds = ' . json_encode($projIds) . '</p>';
|
|
|
+ foreach ($projIds as $vProjId) {
|
|
|
+ if ($vProjId > 0) $vProjIds[$vProjId] = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ {
|
|
|
+ $projectZeroInfo = new stdClass();
|
|
|
+ $projectZeroInfo->ID_PROJECT = 0;
|
|
|
+ $projectZeroInfo->M_DIST_DESC = 'Wszystkie projekty';
|
|
|
+ $projectZeroInfo->path = '0';
|
|
|
+ $projectZeroInfo->costsByMonth = array();
|
|
|
+ $projectZeroInfo->korespByMonth = array();
|
|
|
+ $this->_costs[0] = $projectZeroInfo;
|
|
|
+ }
|
|
|
+ foreach ($vProjIds as $vProjId => $vBool) {
|
|
|
+ if (!array_key_exists($vProjId, $this->_costs)) {
|
|
|
$projectInfo = new stdClass();
|
|
|
$projectInfo->ID_PROJECT = $vProjId;
|
|
|
$projectInfo->M_DIST_DESC = '';
|
|
|
$projectInfo->path = '';
|
|
|
$projectInfo->costsByMonth = array();
|
|
|
$projectInfo->korespByMonth = array();
|
|
|
- $costs[$vProjId] = $projectInfo;
|
|
|
+ $this->_costs[$vProjId] = $projectInfo;
|
|
|
}
|
|
|
}
|
|
|
$korespInfo = new stdClass();
|
|
|
+ $korespInfo->ID = $r->ID;
|
|
|
$korespInfo->MONTH = $r->MONTH;
|
|
|
$korespInfo->K_ZAWARTOS = $r->K_ZAWARTOS;
|
|
|
$monthNum = intval(substr($r->MONTH, 5, 2));
|
|
|
@@ -319,63 +419,98 @@ jQuery(document).ready(function () {
|
|
|
$korespInfo->COST = $r->INCOME;
|
|
|
$korespInfo->INCOME = $r->COST;
|
|
|
$korespInfo->TRANSFER_OPPOSITE_ID_PROJECT = $r->TRANSFER_OPPOSITE_ID_PROJECT;
|
|
|
- $costs[$r->TRANSFER_OPPOSITE_ID_PROJECT]->korespByMonth[$monthNum][] = $korespInfo;
|
|
|
+ $this->_costs[$r->TRANSFER_OPPOSITE_ID_PROJECT]->korespByMonth[$monthNum][] = $korespInfo;
|
|
|
+ } else if ($r->ID_PROJECT) {
|
|
|
+ $korespInfo->COST = $r->COST;
|
|
|
+ $korespInfo->INCOME = $r->INCOME;
|
|
|
+ $this->_costs[$r->ID_PROJECT]->korespByMonth[$monthNum][] = $korespInfo;
|
|
|
} else {
|
|
|
$korespInfo->COST = $r->COST;
|
|
|
$korespInfo->INCOME = $r->INCOME;
|
|
|
- $costs[$r->ID_PROJECT]->korespByMonth[$monthNum][] = $korespInfo;
|
|
|
+ $this->_costs[0]->korespByMonth[$monthNum][] = $korespInfo;
|
|
|
}
|
|
|
}
|
|
|
- $this->_fetchProjectInfo($costs);
|
|
|
- $this->_reacountCostsFromKoresp($costs);
|
|
|
- return $costs;
|
|
|
+ $this->_fetchProjectInfo();
|
|
|
+ $this->_buildProjectTree();
|
|
|
+ $this->_reacountCostsFromKoresp();
|
|
|
+ return $this->_costs;
|
|
|
}
|
|
|
|
|
|
- private function _fetchProjectInfo(&$costs) {
|
|
|
+ private function _fetchProjectInfo() {
|
|
|
$db = DB::getDB();
|
|
|
- $projectIds = array_keys($costs);
|
|
|
+ $projectIds = array_keys($this->_costs);
|
|
|
$sqlProjIds = "'" . implode("','", $projectIds) . "'";
|
|
|
- $sql = "select p.`ID`, p.`path`, p.`M_DIST_DESC`
|
|
|
+ $sql = "select p.`ID`, p.`P_ID`, p.`path`, p.`M_DIST_DESC`
|
|
|
from `IN7_MK_BAZA_DYSTRYBUCJI` p
|
|
|
where p.`ID` in({$sqlProjIds})
|
|
|
";
|
|
|
$res = $db->query($sql);
|
|
|
while ($r = $db->fetch($res)) {
|
|
|
- $costs[$r->ID]->path = $r->path;
|
|
|
- $costs[$r->ID]->M_DIST_DESC = $r->M_DIST_DESC;
|
|
|
+ $this->_costs[$r->ID]->path = $r->path;
|
|
|
+ $this->_costs[$r->ID]->M_DIST_DESC = $r->M_DIST_DESC;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private function _reacountCostsFromKoresp(&$costs) {
|
|
|
- foreach ($costs as $vProjId => $vProjInfo) {
|
|
|
- foreach ($vProjInfo->korespByMonth as $monthNum => $vKorespList) {
|
|
|
- $vCostInfo = new stdClass();
|
|
|
- $vCostInfo->COST_SELF = 0;
|
|
|
- $vCostInfo->COST_CHILD = 0;
|
|
|
- $vCostInfo->COST_TOTAL = 0;
|
|
|
- $vCostInfo->INCOME_SELF = 0;
|
|
|
- $vCostInfo->INCOME_CHILD = 0;
|
|
|
- $vCostInfo->INCOME_TOTAL = 0;
|
|
|
- $costs[$vProjId]->costsByMonth[$monthNum] = $vCostInfo;
|
|
|
+ private function _reacountCostsFromKoresp() {
|
|
|
+ $projMonthHasCostSelfIds = array();
|
|
|
+ foreach ($this->_costs as $kProjId => $vProjInfo) {
|
|
|
+ foreach ($vProjInfo->korespByMonth as $kMonthNum => $vKorespList) {
|
|
|
+ $this->_createCostIfNotDefined($kProjId, $kMonthNum);
|
|
|
foreach ($vKorespList as $vKoresp) {
|
|
|
- $costs[$vProjId]->costsByMonth[$monthNum]->COST_SELF += $vKoresp->COST;
|
|
|
- $costs[$vProjId]->costsByMonth[$monthNum]->INCOME_SELF += $vKoresp->INCOME;
|
|
|
+ $this->_costs[$kProjId]->costsByMonth[$kMonthNum]->COST_SELF += $vKoresp->COST;
|
|
|
+ $this->_costs[$kProjId]->costsByMonth[$kMonthNum]->INCOME_SELF += $vKoresp->INCOME;
|
|
|
+ }
|
|
|
+ $projHasCostSelfIds[$kProjId][$kMonthNum] = $vProjInfo->path;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //echo'<pre style="width:600px;border:1px solid red;max-height:300px;overflow:auto;">$projHasCostSelfIds: ';print_r($projHasCostSelfIds);echo'</pre>';
|
|
|
+ foreach ($projHasCostSelfIds as $kProjId => $vProjMonthsList) {
|
|
|
+ if ($kProjId <= 0) continue;
|
|
|
+ foreach ($vProjMonthsList as $kMonthNum => $vProjPath) {
|
|
|
+ $vProjPathIds = explode('-', $vProjPath);
|
|
|
+ $vProjPathIds = array_reverse($vProjPathIds);
|
|
|
+ $vProjMonthCostSelf = $this->_costs[$kProjId]->costsByMonth[$kMonthNum]->COST_SELF;
|
|
|
+ $vProjMonthIncomeSelf = $this->_costs[$kProjId]->costsByMonth[$kMonthNum]->INCOME_SELF;
|
|
|
+ foreach ($vProjPathIds as $vProjId) {
|
|
|
+ if ($vProjId == $kProjId) continue;
|
|
|
+ $this->_createCostIfNotDefined($vProjId, $kMonthNum);
|
|
|
+ $this->_costs[$vProjId]->costsByMonth[$kMonthNum]->COST_CHILD += $vProjMonthCostSelf;
|
|
|
+ $this->_costs[$vProjId]->costsByMonth[$kMonthNum]->INCOME_CHILD += $vProjMonthIncomeSelf;
|
|
|
}
|
|
|
- $costs[$vProjId]->costsByMonth[$monthNum]->COST_TOTAL += $costs[$vProjId]->costsByMonth[$monthNum]->COST_SELF;
|
|
|
- $costs[$vProjId]->costsByMonth[$monthNum]->INCOME_TOTAL += $costs[$vProjId]->costsByMonth[$monthNum]->INCOME_SELF;
|
|
|
}
|
|
|
}
|
|
|
+ // recount total
|
|
|
+ foreach ($this->_costs as $vProjId => $vProjInfo) {
|
|
|
+ foreach ($vProjInfo->costsByMonth as $kMonthNum => $vCost) {
|
|
|
+ $this->_createCostIfNotDefined($vProjId, $kMonthNum);
|
|
|
+ $this->_costs[$vProjId]->costsByMonth[$kMonthNum]->COST_TOTAL = $vCost->COST_SELF + $vCost->COST_CHILD;
|
|
|
+ $this->_costs[$vProjId]->costsByMonth[$kMonthNum]->INCOME_TOTAL = $vCost->INCOME_SELF + $vCost->INCOME_CHILD;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private function _createCostIfNotDefined($projId, $monthNum) {
|
|
|
+ if (empty($this->_costs[$projId]->costsByMonth[$monthNum])) {
|
|
|
+ $vEmptyCost = new stdClass();
|
|
|
+ $vEmptyCost->COST_SELF = 0;
|
|
|
+ $vEmptyCost->INCOME_SELF = 0;
|
|
|
+ $vEmptyCost->COST_CHILD = 0;
|
|
|
+ $vEmptyCost->INCOME_CHILD = 0;
|
|
|
+ $vEmptyCost->COST_TOTAL = 0;
|
|
|
+ $vEmptyCost->INCOME_TOTAL = 0;
|
|
|
+ $this->_costs[$projId]->costsByMonth[$monthNum] = $vEmptyCost;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- public function buildProjectTree($costs) {
|
|
|
- $projPaths = array();
|
|
|
- foreach ($costs as $idProject => $projectInfo) {
|
|
|
- $projPaths[$projectInfo->path] = $projectInfo->ID_PROJECT;
|
|
|
+ public function _buildProjectTree() {
|
|
|
+ $this->_projectPathsOrder = array();
|
|
|
+ foreach ($this->_costs as $idProject => $projectInfo) {
|
|
|
+ $this->_projectPathsOrder[$projectInfo->path] = $projectInfo->ID_PROJECT;
|
|
|
}
|
|
|
- //echo'<pre style="width:600px;border:1px solid red;max-height:300px;overflow:auto;">projPaths: ';print_r($projPaths);echo'</pre>';
|
|
|
- uksort($projPaths, array($this, 'sortPathsCallback'));
|
|
|
- //echo'<pre style="width:600px;border:1px solid red;max-height:300px;overflow:auto;">projPaths sorted: ';print_r($projPaths);echo'</pre>';
|
|
|
- return $projPaths;
|
|
|
+ //echo'<pre style="width:600px;border:1px solid red;max-height:300px;overflow:auto;">projPaths: ';print_r($this->_projectPathsOrder);echo'</pre>';
|
|
|
+ uksort($this->_projectPathsOrder, array($this, 'sortPathsCallback'));
|
|
|
+ //echo'<pre style="width:600px;border:1px solid red;max-height:300px;overflow:auto;">projPaths sorted: ';print_r($this->_projectPathsOrder);echo'</pre>';
|
|
|
+ return $this->_projectPathsOrder;
|
|
|
}
|
|
|
|
|
|
public function sortPathsCallback($a, $b) {
|