Exemple #1
0
 public function testCRUD()
 {
     $salesproject = $this->create_object('org_openpsa_sales_salesproject_dba');
     $person1 = $this->create_object('midcom_db_person');
     $person2 = $this->create_object('midcom_db_person');
     midcom::get('auth')->request_sudo('org.openpsa.contacts');
     $member1 = new org_openpsa_contacts_role_dba();
     $member1->objectGuid = $salesproject->guid;
     $member1->person = $person1->id;
     $member1->role = ORG_OPENPSA_OBTYPE_SALESPROJECT_MEMBER;
     $stat = $member1->create();
     $this->assertTrue($stat);
     $this->register_object($member1);
     $this->assertEquals(ORG_OPENPSA_OBTYPE_SALESPROJECT_MEMBER, $member1->role);
     $this->assertEquals(array($person1->id => true), $salesproject->contacts);
     $stat = $member1->delete();
     $this->assertTrue($stat);
     $stat = org_openpsa_contacts_role_dba::add($salesproject->guid, $person2->id, ORG_OPENPSA_OBTYPE_SALESPROJECT_MEMBER);
     $this->assertTrue($stat);
     $qb = org_openpsa_contacts_role_dba::new_query_builder();
     $qb->add_constraint('objectGuid', '=', $salesproject->guid);
     $this->assertEquals(1, $qb->count());
     $members = $qb->execute();
     $member2 = $members[0];
     $this->assertEquals(ORG_OPENPSA_OBTYPE_SALESPROJECT_MEMBER, $member2->role);
     $this->assertEquals($person2->id, $member2->person);
     $salesproject->refresh();
     $this->assertEquals(array($person2->id => true), $salesproject->contacts);
     $stat = $member2->delete();
     $this->assertTrue($stat);
     midcom::get('auth')->drop_sudo();
 }
Exemple #2
0
 /**
  * Helper function that adds a member to parents if necessary
  *
  * @param org_openpsa_projects_task_dba $object The object for which we search the parent
  */
 function add_resource_to_parent(&$object)
 {
     $parent = $object->get_parent();
     if (!$parent) {
         return;
     }
     if (is_a($parent, 'org_openpsa_projects_project')) {
         org_openpsa_contacts_role_dba::add($parent->guid, $this->person, $this->orgOpenpsaObtype);
         return;
     }
     $mc = self::new_collector('task', $parent->id);
     $mc->add_constraint('orgOpenpsaObtype', '=', $this->orgOpenpsaObtype);
     $mc->add_constraint('person', '=', $this->person);
     $mc->execute();
     if ($mc->count() > 0) {
         //Resource is already present, aborting
         return;
     }
     $new_resource = new org_openpsa_projects_task_resource_dba();
     $new_resource->person = $this->person;
     $new_resource->orgOpenpsaObtype = $this->orgOpenpsaObtype;
     $new_resource->task = $parent->id;
     $new_resource->create();
 }