summaryrefslogtreecommitdiff
path: root/demos/time-tracker
diff options
context:
space:
mode:
authorwei <>2006-07-28 06:24:40 +0000
committerwei <>2006-07-28 06:24:40 +0000
commit994065ffd524ade2db3de900226143f5123c5fb1 (patch)
tree35d760954194fdafe7a32e0c227265ec6112e974 /demos/time-tracker
parent5fc75a5f53fa07971b604c5318da5bf07379ef89 (diff)
Update time-tracker
Diffstat (limited to 'demos/time-tracker')
-rw-r--r--demos/time-tracker/protected/App_Code/ReportsDao.php12
-rw-r--r--demos/time-tracker/protected/App_Code/TimeEntryDao.php9
-rw-r--r--demos/time-tracker/protected/App_Code/UserDao.php4
-rw-r--r--demos/time-tracker/protected/application.xml3
-rw-r--r--demos/time-tracker/protected/pages/TimeTracker/LogTimeEntry.php33
-rw-r--r--demos/time-tracker/protected/pages/TimeTracker/ReportProject.php47
-rw-r--r--demos/time-tracker/protected/pages/TimeTracker/ReportResource.php61
-rw-r--r--demos/time-tracker/tests/unit/CategoryDaoTestCase.php4
-rw-r--r--demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php53
9 files changed, 132 insertions, 94 deletions
diff --git a/demos/time-tracker/protected/App_Code/ReportsDao.php b/demos/time-tracker/protected/App_Code/ReportsDao.php
index 8d2e2627..50005d06 100644
--- a/demos/time-tracker/protected/App_Code/ReportsDao.php
+++ b/demos/time-tracker/protected/App_Code/ReportsDao.php
@@ -61,18 +61,6 @@ class UserProjectReport
class ReportsDao extends BaseDao
{
- public function getUserTimeReport($username)
- {
- $sqlmap = $this->getConnection();
- return $sqlmap->queryForObject('GetTimeReportByUsername', $username);
- }
-
- public function getTimeReportsByCategoryID($categoryID)
- {
- $sqlmap = $this->getConnection();
- return $sqlmap->queryForList('GetTimeReportByCategoryID', $categoryID);
- }
-
public function getTimeReportsByProjectIDs($projects)
{
$ids = implode(',', array_map('intval', $projects));
diff --git a/demos/time-tracker/protected/App_Code/TimeEntryDao.php b/demos/time-tracker/protected/App_Code/TimeEntryDao.php
index 60301f3b..7207ed47 100644
--- a/demos/time-tracker/protected/App_Code/TimeEntryDao.php
+++ b/demos/time-tracker/protected/App_Code/TimeEntryDao.php
@@ -33,15 +33,6 @@ class TimeEntryDao extends BaseDao
$sqlmap = $this->getConnection();
$sqlmap->update('UpdateTimeEntry', $entry);
}
-
- public function getTimeEntriesByDate($username, $start, $end)
- {
- $sqlmap = $this->getConnection();
- $param['username'] = $username;
- $param['startDate'] = $start;
- $param['endDate'] = $end;
- return $sqlmap->queryForList('GetTimeEntriesByDate', $param);
- }
}
?> \ No newline at end of file
diff --git a/demos/time-tracker/protected/App_Code/UserDao.php b/demos/time-tracker/protected/App_Code/UserDao.php
index a0a80f7e..95a85410 100644
--- a/demos/time-tracker/protected/App_Code/UserDao.php
+++ b/demos/time-tracker/protected/App_Code/UserDao.php
@@ -30,9 +30,7 @@ class UserDao extends BaseDao
public function getUserByName($username)
{
$sqlmap = $this->getConnection();
- $user = $sqlmap->queryForObject('GetUserByName', $username);
- var_dump($user);
- return $user;
+ return $sqlmap->queryForObject('GetUserByName', $username);
}
/**
diff --git a/demos/time-tracker/protected/application.xml b/demos/time-tracker/protected/application.xml
index 1622073e..98dc3a79 100644
--- a/demos/time-tracker/protected/application.xml
+++ b/demos/time-tracker/protected/application.xml
@@ -10,9 +10,12 @@
<using namespace="Application.App_Code.*" />
</paths>
<modules>
+
<module id="cache" class="System.Caching.TMemCache" />
<module id="sqlmap" class="TSQLMap"
+ EnableConfigCache="true"
configFile="Application.App_Data.mysql-sqlmap" />
+
<module id="daos" class="DaoManager" Connection="sqlmap">
<dao id="UserDao" class="Application.App_Code.UserDao" />
<dao id="ProjectDao" class="Application.App_Code.ProjectDao" />
diff --git a/demos/time-tracker/protected/pages/TimeTracker/LogTimeEntry.php b/demos/time-tracker/protected/pages/TimeTracker/LogTimeEntry.php
index a134289c..28611c3c 100644
--- a/demos/time-tracker/protected/pages/TimeTracker/LogTimeEntry.php
+++ b/demos/time-tracker/protected/pages/TimeTracker/LogTimeEntry.php
@@ -88,21 +88,24 @@ class LogTimeEntry extends TPage
if(!$this->IsValid)
return;
- $entry = new TimeEntry;
- $entry->CreatorUserName = $this->User->Name;
- $category = new Category;
- $category->ID = $this->category->SelectedValue;
- $entry->Category = $category;
- $entry->Description = $this->description->Text;
- $entry->Duration = floatval($this->hours->Text);
- $entry->ReportDate = $this->day->TimeStamp;
- $entry->Username = $this->projectMembers->SelectedItem->Text;
-
- $this->hours->Text = '';
- $this->description->Text = '';
-
- $this->getTimeEntryDao()->addNewTimeEntry($entry);
- $this->showTimeSheet();
+ if($this->projectMembers->SelectedItem)
+ {
+ $entry = new TimeEntry;
+ $entry->CreatorUserName = $this->User->Name;
+ $category = new Category;
+ $category->ID = $this->category->SelectedValue;
+ $entry->Category = $category;
+ $entry->Description = $this->description->Text;
+ $entry->Duration = floatval($this->hours->Text);
+ $entry->ReportDate = $this->day->TimeStamp;
+ $entry->Username = $this->projectMembers->SelectedItem->Text;
+
+ $this->hours->Text = '';
+ $this->description->Text = '';
+
+ $this->getTimeEntryDao()->addNewTimeEntry($entry);
+ $this->showTimeSheet();
+ }
}
}
diff --git a/demos/time-tracker/protected/pages/TimeTracker/ReportProject.php b/demos/time-tracker/protected/pages/TimeTracker/ReportProject.php
new file mode 100644
index 00000000..fea372be
--- /dev/null
+++ b/demos/time-tracker/protected/pages/TimeTracker/ReportProject.php
@@ -0,0 +1,47 @@
+<?php
+
+class ReportProject extends TPage
+{
+ protected function getProjects()
+ {
+ $projectDao = $this->Application->Modules['daos']->getDao('ProjectDao');
+ $projects = array();
+ foreach($projectDao->getAllProjects() as $project)
+ $projects[$project->ID] = $project->Name;
+ return $projects;
+ }
+
+ public function onLoad($param)
+ {
+ if(!$this->IsPostBack)
+ {
+ $this->projectList->DataSource = $this->getProjects();
+ $this->dataBind();
+ }
+ }
+
+ public function generateReport_Clicked($sender, $param)
+ {
+ $reportDao = $this->Application->Modules['daos']->getDao('ReportDao');
+ $reports = $reportDao->getTimeReportsByProjectIDs($this->projectList->SelectedValues);
+ $this->views->ActiveViewIndex = 1;
+ $this->projects->DataSource = $reports;
+ $this->projects->dataBind();
+ }
+
+ public function project_itemCreated($sender, $param)
+ {
+ $item = $param->Item;
+ if($item->ItemType==='Item' || $item->ItemType==='AlternatingItem')
+ $item->category->DataSource = $item->DataItem->Categories;
+ }
+
+ public function category_itemCreated($sender, $param)
+ {
+ $item = $param->Item;
+ if($item->ItemType==='Item' || $item->ItemType==='AlternatingItem')
+ $item->members->DataSource = $item->DataItem->members;
+ }
+}
+
+?> \ No newline at end of file
diff --git a/demos/time-tracker/protected/pages/TimeTracker/ReportResource.php b/demos/time-tracker/protected/pages/TimeTracker/ReportResource.php
new file mode 100644
index 00000000..a233e127
--- /dev/null
+++ b/demos/time-tracker/protected/pages/TimeTracker/ReportResource.php
@@ -0,0 +1,61 @@
+<?php
+
+class ReportResource extends TPage
+{
+ protected function getProjects()
+ {
+ $projectDao = $this->Application->Modules['daos']->getDao('ProjectDao');
+ $projects = array();
+ foreach($projectDao->getAllProjects() as $project)
+ $projects[$project->ID] = $project->Name;
+ return $projects;
+ }
+
+ protected function getUsers()
+ {
+ $dao = $this->Application->Modules['daos']->getDao('UserDao');
+ $users = array();
+ foreach($dao->getAllUsers() as $user)
+ {
+ $users[$user->Name] = $user->Name;
+ }
+ return $users;
+ }
+
+ public function onLoad($param)
+ {
+ if(!$this->IsPostBack)
+ {
+ $this->projectList->DataSource = $this->getProjects();
+ $this->resourceList->DataSource = $this->getUsers();
+ $this->dataBind();
+ }
+ }
+
+ public function generateReport_Clicked($sender, $param)
+ {
+ $this->views->ActiveViewIndex = 1;
+ $reportDao = $this->Application->Modules['daos']->getDao('ReportDao');
+ $projects = $this->projectList->SelectedValues;
+ $users = $this->resourceList->SelectedValues;
+ $start = $this->dateFrom->TimeStamp;
+ $end = $this->dateTo->TimeStamp;
+
+ $report = $reportDao->getUserProjectTimeReports($users, $projects, $start, $end);
+ $this->resource_report->DataSource = $report;
+ $this->resource_report->dataBind();
+ }
+
+ public function resource_report_itemCreated($sender, $param)
+ {
+ $item = $param->Item;
+ if($item->ItemType==='Item' || $item->ItemType==='AlternatingItem')
+ {
+ if(count($item->DataItem->Projects) > 0 &&
+ $item->DataItem->Projects[0]->ProjectName !== null)
+ $item->time_entries->DataSource = $item->DataItem->Projects;
+ }
+ }
+}
+
+?> \ No newline at end of file
diff --git a/demos/time-tracker/tests/unit/CategoryDaoTestCase.php b/demos/time-tracker/tests/unit/CategoryDaoTestCase.php
index 53ed9c3e..4b13a948 100644
--- a/demos/time-tracker/tests/unit/CategoryDaoTestCase.php
+++ b/demos/time-tracker/tests/unit/CategoryDaoTestCase.php
@@ -125,11 +125,11 @@ class CategoryDaoTestCase extends BaseTestCase
try
{
$this->categoryDao->addNewCategory($category);
- $this->fail();
+ $this->pass();
}
catch(TSqlMapQueryExecutionException $e)
{
- $this->pass();
+ $this->fail();
}
$check = $this->categoryDao->getCategoryByID(1);
$this->assertEqual($category, $check);
diff --git a/demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php b/demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php
index 20b1266e..cd1044b8 100644
--- a/demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php
+++ b/demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php
@@ -209,59 +209,6 @@ class TimeEntryDaoTestCase extends BaseTestCase
$this->assertSameEntry($entry, $verify);
}
-
- function testgetEntriesByDate()
- {
- $added = $this->createTimeEntries2();
- $this->entryDao->addNewTimeEntry($added[0]);
- $this->entryDao->addNewTimeEntry($added[1]);
-
- $start = strtotime('-5 days');
- $end = strtotime('-1 day');
- $list = $this->entryDao->getTimeEntriesByDate('consultant', $start, $end);
-
- $this->assertEqual(count($list),1);
-
- $this->assertSameEntry($list[0], $added[1]);
- }
-
- function testUserTimeReports()
- {
- $added = $this->createTimeEntries2();
- $this->entryDao->addNewTimeEntry($added[0]);
- $this->entryDao->addNewTimeEntry($added[1]);
-
- $time = $this->reportDao->getUserTimeReport('consultant');
- $this->assertEqual($time, 6.7);
- }
-
-
- function testTimeReportsByCategory()
- {
- $added = $this->createTimeEntries2();
- $this->entryDao->addNewTimeEntry($added[0]);
- $this->entryDao->addNewTimeEntry($added[1]);
-
- $list = $this->reportDao->getTimeReportsByCategoryID(1);
- $this->assertEqual(count($list),1);
- $this->assertEqual($list[0]->Username, 'consultant');
- $this->assertEqual($list[0]->ActualDuration, 1.2);
- }
-
- function testTimeReportsByProject()
- {
- $added = $this->createTimeEntries2();
- $this->entryDao->addNewTimeEntry($added[0]);
- $this->entryDao->addNewTimeEntry($added[1]);
-
- $list = $this->reportDao->getTimeReportsByProjectID(1);
-
- $this->assertEqual(count($list),1);
- $this->assertEqual($list[0]->Username, 'consultant');
- $this->assertEqual($list[0]->CategoryID, 1);
- $this->assertEqual($list[0]->ActualDuration, 6.7);
- }
-
}
?> \ No newline at end of file