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);
 }
Example #2
0
    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;
    }
Example #3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getProjectCollections()
 {
     return $this->hasMany(ProjectCollection::className(), ['project_id' => 'id']);
 }
Example #4
0
 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;
 }