예제 #1
0
파일: Import.php 프로젝트: KaneoGmbH/glpi
   /**
    * Import of CommonTreeDropdown
    */
   public function testImportTree() {

      $ent0 = $this->sharedFixture['entity'][0];
      $ent1 = $this->sharedFixture['entity'][1];
      $ent2 = $this->sharedFixture['entity'][2];

      $obj = new ITILCategory();
      $fk = 'itilcategories_id';

      // root entity - A - new
      $id[0] = $obj->import(array('name'         => 'A',
                                  'is_recursive' => 1,
                                  'entities_id'  => $ent0));
      $this->assertGreaterThan(0, $id[0]);
      $this->assertTrue($obj->getFromDB($id[0]));
      $this->assertEquals(1, $obj->fields['is_recursive']);

      // root entity - B - new
      $id[1] = $obj->import(array('name'         => 'B',
                                  'entities_id'  => $ent0));
      $this->assertGreaterThan(0, $id[1]);
      $this->assertTrue($obj->getFromDB($id[1]));
      $this->assertEquals(0, $obj->fields['is_recursive']);

      // child entity - A - existing
      $id[2] = $obj->import(array('name'         => 'A',
                                  'entities_id'  => $ent1));
      $this->assertEquals($id[0],$id[2]);

      // child entity - B - new
      $id[3] = $obj->import(array('name'         => 'B',
                                  'entities_id'  => $ent1));
      $this->assertGreaterThan($id[1], $id[3]);

      // child entity - B > C - exiting B + new C
      $id[4] = $obj->import(array('completename' => 'B > C',
                                  'entities_id'  => $ent1));
      $this->assertGreaterThan($id[3], $id[4]);
      $this->assertTrue($obj->getFromDB($id[4]));
      $this->assertEquals('C', $obj->fields['name']);
      $this->assertEquals($id[3], $obj->fields[$fk]);

      // child entity - >B>>C>D - clean completename
      $id[5] = $obj->import(array('completename' => '>B>> C>D',
                                  'entities_id'  => $ent1));
      $this->assertGreaterThan($id[4], $id[5]);
      $this->assertTrue($obj->getFromDB($id[5]));
      $this->assertEquals('D', $obj->fields['name']);
      $this->assertEquals($id[4], $obj->fields[$fk]);
      $this->assertEquals('B > C > D', $obj->fields['completename']);
   }
예제 #2
0
 /**
  * Transfer ticket/problem infos
  *
  * @param $data ticket data fields
  **/
 function transferTicketAdditionalInformations($data)
 {
     $input = array();
     $suppliers_id_assign = 0;
     //       if ($data['suppliers_id_assign'] > 0) {
     //          $suppliers_id_assign = $this->transferSingleSupplier($data['suppliers_id_assign']);
     //       }
     // Transfer ticket category
     $catid = 0;
     if ($data['itilcategories_id'] > 0) {
         $categ = new ITILCategory();
         if ($categ->getFromDB($data['itilcategories_id'])) {
             $inputcat['entities_id'] = $this->to;
             $inputcat['completename'] = addslashes($categ->fields['completename']);
             $catid = $categ->findID($inputcat);
             if ($catid < 0) {
                 $catid = $categ->import($inputcat);
             }
         }
     }
     $input['itilcategories_id'] = $catid;
     return $input;
 }