* fix bug 011,012.

This commit is contained in:
wangchunsheng
2010-01-05 02:23:56 +00:00
parent 942850b178
commit 047f08f5b9
3 changed files with 44 additions and 23 deletions

View File

@@ -196,11 +196,16 @@ class project extends control
$position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $project->name);
$position[] = $this->lang->project->burn;
/* 生成图表。*/
$dataXML = $this->report->createSingleXML($this->project->getBurnData($project->id), $this->lang->project->charts->burn->graph);
$charts = $this->report->createJSChart('line', $dataXML, 800);
/* 赋值。*/
$this->assign('header', $header);
$this->assign('position', $position);
$this->assign('tabID', 'burn');
$this->assign('charts', $this->report->createChart('line', $this->createLink('project', 'burnData', "project=$projectID", 'xml')));
$this->assign('charts', $charts);
$this->display();
}

View File

@@ -231,37 +231,52 @@ class projectModel extends model
{
$project = $this->findById($projectID);
$sql = $this->dao->select('date AS name, `left` AS value')->from(TABLE_BURN)->where('project')->eq((int)$projectID);
/* 没有指定结束日期的情况。*/
if($project->end == '0000-00-00')
{
$sets = $sql->orderBy('date|desc')->limit(14)->fetchAll('name');
$sets = array_reverse($sets);
/* 如果没有记录,手工补齐。*/
if(!$sets)
{
$current = time();
for($i = 0; $i < 14; $i ++)
{
$nextDay = date('Y-m-d', $current + 60 * 60 * 24 * $i);
$set = array('name' => $nextDay, 'value' => '');
$sets[] = (object)$set;
}
}
foreach($sets as $set) $set->name = substr($set->name, 5);
return $sets;
}
else
{
$sets = $sql->orderBy('date')->fetchAll('name');
}
/* 取得burn表中最大的日期和project的结束时间。*/
end($sets);
$current = key($sets);
$end = $project->end;
/* 根据当前日期和项目最后结束的日期,补足后续日期。*/
if($end != '0000-00-00' and helper::diffDate($end, $current) > 0)
{
while(true)
$sets = $sql->orderBy('date')->fetchAll('name');
$current = $project->begin;
$end = $project->end;
if($sets)
{
$nextDay = date('Y-m-d', strtotime('next day', strtotime($current)));
$current = $nextDay;
$sets[$current]->name = $current;
$sets[$current]->value = ''; // value为空这样fushioncharts不会打印节点。
if($nextDay == $end) break;
end($sets);
$current = key($sets);
}
/* 根据当前日期和项目最后结束的日期,补足后续日期。*/
if(helper::diffDate($end, $current) > 0)
{
while(true)
{
$nextDay = date('Y-m-d', strtotime('next day', strtotime($current)));
$current = $nextDay;
$sets[$current]->name = $current;
$sets[$current]->value = '1'; // value为空这样fushioncharts不会打印节点。
if($nextDay == $end) break;
}
}
foreach($sets as $set) $set->name = substr($set->name, 5);
return $sets;
}
foreach($sets as $set)
{
$set->name = substr($set->name, 5);
}
return $sets;
}
}

View File

@@ -24,4 +24,5 @@
?>
<?php include '../../common/header.html.php';?>
<div class='yui-d0 a-center'><?php echo $charts; ?></div>
<script language='Javascript'>createChart1();</script>
<?php include '../../common/footer.html.php';?>