exposeMethod('getRelatedRecordsCount'); } function checkPermission(Vtiger_Request $request) { } public function process(Vtiger_Request $request) { $mode = $request->get('mode'); if (!empty($mode)) { $this->invokeExposedMethod($mode, $request); return; } } /** * Function to get count of all related module records of a given record * @param type $request */ function getRelatedRecordsCount($request) { $parentRecordId = $request->get("recordId"); $parentModule = $request->get("module"); $parentModuleModel = Vtiger_Module_Model::getInstance($parentModule); $parentRecordModel = Vtiger_Record_Model::getInstanceById($parentRecordId, $parentModuleModel); $relationModels = $parentModuleModel->getRelations(); $relatedRecordsCount = array(); foreach ($relationModels as $relation) { $relationId = $relation->getId(); $relatedModuleName = $relation->get('relatedModuleName'); $relationListView = Vtiger_RelationListView_Model::getInstance($parentRecordModel, $relatedModuleName, $relation->get('label')); $count = $relationListView->getRelatedEntriesCount(); $relatedRecordsCount[$relationId] = $count; } $response = new Vtiger_Response(); $response->setResult($relatedRecordsCount); $response->emit(); } }