/**
  * create new cost center
  *
  */
 public function testCreateCostCenter()
 {
     $cc = $this->_getCostCenter();
     $created = $this->_backend->create($cc);
     $this->assertEquals($created->number, $cc->number);
     $this->assertEquals($created->remark, $cc->remark);
     $this->_backend->delete($cc);
 }
 /**
  * tests CostCenter CRUD Methods
  */
 public function testAllCostCenterMethods()
 {
     $remark = Tinebase_Record_Abstract::generateUID(10);
     $number = Tinebase_DateTime::now()->getTimestamp();
     $cc = $this->_instance->saveCostCenter(array('number' => $number, 'remark' => $remark));
     $this->assertEquals(40, strlen($cc['id']));
     $cc = $this->_instance->getCostCenter($cc['id']);
     $this->assertEquals($number, $cc['number']);
     $this->assertEquals($remark, $cc['remark']);
     $cc['remark'] = $cc['remark'] . '_unittest';
     $cc['number'] = $number - 5000;
     $cc = $this->_instance->saveCostCenter($cc);
     $this->assertEquals($remark . '_unittest', $cc['remark']);
     $this->assertEquals($number - 5000, $cc['number']);
     $accountId = Tinebase_Core::getUser()->getId();
     $this->assertEquals($accountId, $cc['created_by']['accountId']);
     $this->assertEquals($accountId, $cc['last_modified_by']['accountId']);
     $this->assertEquals(NULL, $cc['deleted_by']);
     $this->assertEquals(NULL, $cc['deleted_time']);
     $this->assertEquals(2, $cc['seq']);
     $this->assertEquals(0, $cc['is_deleted']);
     $ccs = $this->_instance->searchCostCenters(array(array('field' => 'remark', 'operator' => 'equals', 'value' => $remark . '_unittest')), array());
     $this->assertEquals(1, $ccs['totalcount']);
     $this->assertEquals($remark . '_unittest', $ccs['results'][0]['remark']);
     $this->_instance->deleteCostCenters($cc['id']);
     $ccs = $this->_instance->searchCostCenters(array(array('field' => 'number', 'operator' => 'equals', 'value' => $number - 5000)), array());
     $this->assertEquals(0, $ccs['totalcount']);
     $be = new Sales_Backend_CostCenter();
     $be->setModlogActive(FALSE);
     $filter = new Sales_Model_CostCenterFilter(array(array('field' => 'number', 'operator' => 'equals', 'value' => $number - 5000)), array());
     $result = $be->search($filter);
     $this->assertEquals(1, $result->count());
     $this->assertEquals(1, $result->getFirstRecord()->is_deleted);
 }
 /**
  * create some costcenters
  *
  * @see Tinebase_Setup_DemoData_Abstract
  */
 protected function _onCreate()
 {
     $controller = Sales_Controller_CostCenter::getInstance();
     $this->_costCenters = new Tinebase_Record_RecordSet('Sales_Model_CostCenter');
     $ccs = static::$_de ? array('Management', 'Marketing', 'Entwicklung', 'Produktion', 'Verwaltung', 'Controlling') : array('Management', 'Marketing', 'Development', 'Production', 'Administration', 'Controlling');
     $be = new Sales_Backend_CostCenter();
     $be->setModlogActive(FALSE);
     $allCC = $be->getAll();
     $id = 1;
     foreach ($ccs as $title) {
         $cc = new Sales_Model_CostCenter(array('remark' => $title, 'number' => $id));
         try {
             $record = $controller->create($cc);
             $this->_costCenters->addRecord($record);
         } catch (Zend_Db_Statement_Exception $e) {
             $cc = $allCC->filter('number', $id)->getFirstRecord();
             $cc->is_deleted = 0;
             $this->_costCenters->addRecord($be->update($cc));
         } catch (Tinebase_Exception_Duplicate $e) {
             $cc = $allCC->filter('number', $e->getClientRecord()->number)->getFirstRecord();
             $cc->is_deleted = 0;
             $this->_costCenters->addRecord($be->update($cc));
         }
         $id++;
     }
     $divisionsArray = static::$_de ? array('Management', 'EDV', 'Marketing', 'Public Relations', 'Produktion', 'Verwaltung') : array('Management', 'IT', 'Marketing', 'Public Relations', 'Production', 'Administration');
     foreach ($divisionsArray as $divisionName) {
         Sales_Controller_Division::getInstance()->create(new Sales_Model_Division(array('title' => $divisionName)));
     }
     $this->_loadCostCentersAndDivisions();
 }