*/
require_once 'DB/DataObject.php';
-class Pman_Documents_DataObjects_ProjectDirectory extends DB_DataObject
+class Pman_Core_DataObjects_ProjectDirectory extends DB_DataObject
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
public $project_id; // int(11) not_null
public $person_id; // int(11) not_null
public $ispm; // int(11) not_null
- public $office_id; // int(11)
- public $company_id; // int(11)
public $role; // string(16) not_null
###END_AUTOCODE
- function toEventString() {
+ function person()
+ {
$p = DB_DataObject::factory('Person');
$p->get($this->person_id);
+ return $p;
+ }
+
+ function toEventString() {
+ $p = $this->person();
+ // this is weird... company is in the person.. - effieciency??
+ // for seaching??
$c = DB_DataObject::factory('Companies');
$c->get($this->company_id);
$pr = DB_DataObject::factory('Projects');
$this->office_id = $pe->office_id;
$this->role = $pe->role;
$this->insert();
+
+ }
+ /**
+ * project id's for a user.
+ * @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);
+ 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');
-
-
+
}
+
+
function checkPerm($lvl, $au)
{
return $au->hasPerm('Documents.Project_Directory', $lvl);
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;
$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,
));