/** * returns the contracts for an employee sorted by the start_date * * @param string $employeeId * @return Tinebase_Record_RecordSet */ public function getContractsByEmployeeId($employeeId) { $filter = new HumanResources_Model_ContractFilter(array(), 'AND'); $pagination = new Tinebase_Model_Pagination(array('sort' => 'start_date')); $filter->addFilter(new Tinebase_Model_Filter_Text(array('field' => 'employee_id', 'operator' => 'equals', 'value' => $employeeId))); $recs = $this->search($filter, $pagination); return $recs; }
/** * delete linked objects (notes, relations, ...) of record * * @param Tinebase_Record_Interface $_record */ protected function _deleteLinkedObjects(Tinebase_Record_Interface $_record) { // use textfilter for employee_id $eFilter = new Tinebase_Model_Filter_Text(array('field' => 'employee_id', 'operator' => 'equals', 'value' => $_record->getId())); // delete free times $filter = new HumanResources_Model_FreeTimeFilter(array(), 'AND'); $filter->addFilter($eFilter); HumanResources_Controller_FreeTime::getInstance()->deleteByFilter($filter); // delete contracts $filter = new HumanResources_Model_ContractFilter(array(), 'AND'); $filter->addFilter($eFilter); HumanResources_Controller_Contract::getInstance()->deleteByFilter($filter); // delete costcenters if ($_record->has('costcenters')) { $filter = new HumanResources_Model_CostCenterFilter(array(), 'AND'); $filter->addFilter($eFilter); HumanResources_Controller_CostCenter::getInstance()->deleteByFilter($filter); } // delete accounts $filter = new HumanResources_Model_AccountFilter(array()); $filter->addFilter(new Tinebase_Model_Filter_Text(array('field' => 'employee_id', 'operator' => 'equals', 'value' => $_record->getId()))); HumanResources_Controller_Account::getInstance()->deleteByFilter($filter); parent::_deleteLinkedObjects($_record); }