/** * 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(); }