function testAllReturnsCollectionOfProjects() { $http_response = dummyObject(['status' => '200', 'body' => '{"data":[{"id":2,"account_id":1,"active":true,"name":"Project","overdue":false,"text_direction":"ltr"}]}']); $request = $this->getMockBuilder('\\Test\\Request')->getMock(); $request->method('get')->with($this->equalTo('projects'), $this->equalTo(['account_id' => 1]))->willReturn(new \GatherContent\Response($http_response)); $subject = new ProjectCollection($request); $projects = $subject->forAccountId(1); $this->assertCount(1, $projects); $project = $projects[0]; $this->assertInstanceOf('\\GatherContent\\Model\\Project', $project); $this->assertSame(2, $project->id); $this->assertSame(1, $project->account_id); $this->assertEquals('Project', $project->name); $this->assertEquals('ltr', $project->text_direction); $this->assertTrue($project->active); $this->assertFalse($project->overdue); }
function populate() { $project = DataObjectFactory::Factory('Project'); $project->setDefaultDisplayFields(array('name', 'status')); $projects_do = new ProjectCollection($project); $projects_do->setParams(); $db = DB::Instance(); $query = 'SELECT p.id, p.name, p.status '; $c_query = 'SELECT count(*)'; $rest = ' FROM projects p LEFT JOIN project_resources r ON (p.id=r.project_id) LEFT JOIN users u ON (r.person_id=u.person_id) WHERE p.usercompanyid=' . $db->qstr(EGS_COMPANY_ID) . ' AND ( u.username = '******' OR p.owner=' . $db->qstr(EGS_USERNAME) . ") AND p.status IN ('N', 'A')"; $query .= $rest; $c_query .= $rest; $projects_do->load($query, $c_query); $projects_do->clickcontroller = 'projects'; $projects_do->editclickaction = 'view'; $this->contents = $projects_do; }
/** * @return \yii\db\ActiveQuery */ public function getProjectCollections() { return $this->hasMany(ProjectCollection::className(), ['project_id' => 'id']); }
public function getHourTotals() { $projects = new ProjectCollection(new Project()); $sh = new SearchHandler($projects, false); $projects->getProjectHourTotals($sh, $this->id); $projects->load($sh); $costs = array('total_hours' => 0, 'total_costs' => 0); foreach ($projects as $project) { $time = explode(':', $project->total_hours); $hours = $time[0] + $time[1] / 60 + $time[2] / 3600; $costs['total_hours'] += $hours; $costs['total_costs'] += $hours * $project->resource_rate; } //echo '<pre>'.print_r($costs, true).'</pre><br>'; return $costs; }