X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FProjectDirectory.php;h=f494e3c6f44545e40574c068904516fa24ea0ad4;hp=50c059c300597dff391d289737e69a6f77908752;hb=HEAD;hpb=cf8ffdfca646b0e2f756316d201e5428ea9fa09d diff --git a/DataObjects/ProjectDirectory.php b/DataObjects/ProjectDirectory.php index 50c059c3..f494e3c6 100644 --- a/DataObjects/ProjectDirectory.php +++ b/DataObjects/ProjectDirectory.php @@ -1,8 +1,11 @@ get($this->person_id); return $p; } @@ -32,9 +35,9 @@ class Pman_Core_DataObjects_ProjectDirectory extends DB_DataObject $p = $this->person(); // this is weird... company is in the person.. - effieciency?? // for seaching?? - $c = DB_DataObject::factory('Companies'); + $c = DB_DataObject::factory('core_company'); $c->get($this->company_id); - $pr = DB_DataObject::factory('Projects'); + $pr = DB_DataObject::factory('core_project'); $pr->get($this->project_id); return $pr->code . ' '. $p->name . '('. $c->name .')'; @@ -68,12 +71,22 @@ class Pman_Core_DataObjects_ProjectDirectory extends DB_DataObject */ function projects($au) { + if (empty($au)) { + $p = DB_DataObject::Factory('core_project'); + $p->get('code', '*PUBLIC'); + return array($p->id); + + } $c = clone ($this); + if (is_array($au)) { $c->whereAddIn('person_id', $au, 'int'); } else { $c->person_id = $au->id; } + $c->selectAdd(); + // people may have multiple roles for a project.. + $c->selectAdd("distinct({$this->tableName()}.project_id) as project_id"); return $c->fetchAll('project_id'); } /** @@ -84,11 +97,15 @@ class Pman_Core_DataObjects_ProjectDirectory extends DB_DataObject function people($pr) { $c = clone ($this); + //echo '
';print_R($this);exit; + if (is_array($pr)) { - $c->whereAddIn('project_id', $pr, 'int'); + $c->whereAddIn("{$this->tableName()}.project_id", $pr, 'int'); } else { $c->project_id = $pr->id; } + $c->selectAdd(); + $c->selectAdd("{$this->tableName()}.person_id as person_id"); return $c->fetchAll('person_id'); @@ -105,7 +122,7 @@ class Pman_Core_DataObjects_ProjectDirectory extends DB_DataObject if ($this->id && ($this->project_id == $roo->old->project_id) && - ($this->person_id == $roo->old->person_id) && + ($this->person_id == $roo->old->person_id) && ($this->company_id == $roo->old->company_id) ) { return true; @@ -114,7 +131,7 @@ class Pman_Core_DataObjects_ProjectDirectory extends DB_DataObject $xx = DB_Dataobject::factory('ProjectDirectory'); $xx->setFrom(array( 'project_id' => $this->project_id, - 'person_id' => $this->person_id, + 'person_id' => $this->person_id, 'company_id' => $this->company_id, )); @@ -152,13 +169,13 @@ class Pman_Core_DataObjects_ProjectDirectory extends DB_DataObject } - $pr = DB_DataObject::factory('Projects'); + $pr = DB_DataObject::factory('core_project'); $pr->whereAdd("Projects.type IN ('N','X')"); $prjs = $pr->fetchAll('id'); $pd = DB_DataObject::factory('ProjectDirectory'); - $pd->joinAdd(DB_DataObject::factory('Projects'), 'LEFT'); + $pd->joinAdd(DB_DataObject::factory('core_project'), 'LEFT'); $pd->whereAdd("Projects.type NOT IN ('N','X')"); $pd->person_id = $au->id;