<?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)
	{
		if(count($this->projectList->SelectedValues) > 0
			&& count($this->resourceList->SelectedValues) >0)
		{
			$this->showReport();
		}
	}

	protected function showReport()
	{
		$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;
		}
	}
}