X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=DataObjects%2FProjectDirectory.php;h=471269a81a6342bba7632c871fee1ed002a5dcba;hb=5a4e5c1dc7b96c1d46cb0be649648c104ecb50a9;hp=b00bd5b41ce2e1fb5bba9eaf3ce37ee7a98643a3;hpb=708e7fe254e0abad605e4d3e73cdb33aa280ee2b;p=Pman.Core diff --git a/DataObjects/ProjectDirectory.php b/DataObjects/ProjectDirectory.php index b00bd5b4..471269a8 100644 --- a/DataObjects/ProjectDirectory.php +++ b/DataObjects/ProjectDirectory.php @@ -63,14 +63,49 @@ class Pman_Core_DataObjects_ProjectDirectory extends DB_DataObject } /** * project id's for a user. - * @param DB_DataObject_Core_Person - who + * @param DB_DataObject_Core_Person|array - who, or list of people. * @return array id's of the project they are a member of.. */ function projects($au) { + if (empty($au)) { + $p = DB_DataObject::Factory('Projects'); + $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(project_id) as project_id'); + return $c->fetchAll('project_id'); + } + /** + * project id's for a user. + * @param DB_DataObject_Core_Person - who + * @return array id's of the project they are a member of.. + */ + function people($pr) + { + $c = clone ($this); + echo '
';print_R($this);exit; + $c->autoJoin(); + if (is_array($pr)) { + $c->whereAddIn('project_id', $pr, 'int'); + } else { + $c->project_id = $pr->id; + } + $c->selectAdd(); + $c->selectAdd('person_id'); + return $c->fetchAll('person_id'); - - + } @@ -84,7 +119,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; @@ -93,7 +128,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, ));