/**
  * the singleton pattern
  * @return Sales_Controller_Division
  */
 public static function getInstance()
 {
     if (self::$_instance === NULL) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
 /**
  * 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');
     $id = 1;
     // will throw duplicate exception, so it has been run already
     try {
         foreach ($ccs as $title) {
             $cc = new Sales_Model_CostCenter(array('remark' => $title, 'number' => $id));
             $record = $controller->create($cc);
             $this->_costcenters->addRecord($record);
             $id++;
         }
     } catch (Exception $e) {
         $this->_costcenters = $controller->search(new Sales_Model_CostCenterFilter(array()));
     }
     $divisionsArray = static::$_de ? array('Management', 'EDV', 'Marketing', 'Public Relations', 'Produktion', 'Verwaltung') : array('Management', 'IT', 'Marketing', 'Public Relations', 'Production', 'Administration');
     $this->_divisions = new Tinebase_Record_RecordSet('Sales_Model_Division');
     foreach ($divisionsArray as $divisionName) {
         $this->_divisions->addRecord(Sales_Controller_Division::getInstance()->create(new Sales_Model_Division(array('title' => $divisionName))));
     }
 }
 /**
  * loads all costcenters to this._costCenters property
  * 
  * @return Tinebase_Record_RecordSet
  */
 protected function _loadCostCentersAndDivisions()
 {
     $filter = new Sales_Model_CostCenterFilter(array());
     $this->_costCenters = Sales_Controller_CostCenter::getInstance()->search($filter)->sort('number');
     $this->_costCenterKeys[] = array();
     foreach ($this->_costCenters as $cc) {
         if ($cc->remark == 'Marketing') {
             $this->_marketingCostCenter = $cc;
         }
         if ($cc->remark == 'Development' || $cc->remark == 'Entwicklung') {
             $this->_developmentCostCenter = $cc;
         }
         $this->_costCenterKeys[] = $cc->getId();
     }
     $filter = new Sales_Model_DivisionFilter(array());
     $this->_divisions = Sales_Controller_Division::getInstance()->search($filter)->sort('number');
     return $this->_costCenters;
 }
 /**
  * Search for records matching given arguments
  *
  * @param  array $filter
  * @param  array $paging
  * @return array
  */
 public function searchDivisions($filter, $paging)
 {
     return $this->_search($filter, $paging, Sales_Controller_Division::getInstance(), 'Sales_Model_DivisionFilter');
 }
 /**
  * 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();
 }