user = Users_Record_Model::getCurrentUserModel(); $this->db = PearDatabase::getInstance(); } public function getAllSettings() { $list = array(); $res = $this->db->pquery("SELECT * FROM vtiger_finreports_settings", array()); if ($this->db->num_rows($res)) { while ($row = $this->db->fetchByAssoc($res)) { $list[$row['name']] = $row['value']; } } return $list; } public function getOrgField() { $settingsArray = $this->getAllSettings(); if (array_key_exists('org_field', $settingsArray)) { return $settingsArray['org_field']; } else { return false; } } public function getVendorField() { $settingsArray = $this->getAllSettings(); if (array_key_exists('del_field', $settingsArray)) { return $settingsArray['del_field']; } else { return false; } } public function getAPI() { $settingsArray = $this->getAllSettings(); if (array_key_exists('api', $settingsArray)) { return $settingsArray['api']; } else { return false; } } /** * Function to get relation query for particular module with function name * @param $recordId * @param $functionName * @param Vtiger_Module_Model $relatedModule * @return */ public function getRelationQuery($recordId, $functionName, $relatedModule, $relationId) { if ($functionName === 'get_activities') { $focus = CRMEntity::getInstance($this->getName()); $focus->id = $recordId; $userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users'); $query = "SELECT CASE WHEN (vtiger_users.user_name not like '') THEN $userNameSql ELSE vtiger_groups.groupname END AS user_name, vtiger_crmentity.*, vtiger_activity.activitytype, vtiger_activity.subject, vtiger_activity.date_start, vtiger_activity.time_start, vtiger_activity.recurringtype, vtiger_activity.due_date, vtiger_activity.time_end, vtiger_activity.visibility, vtiger_seactivityrel.crmid AS parent_id, CASE WHEN (vtiger_activity.activitytype = 'Task') THEN (vtiger_activity.status) ELSE (vtiger_activity.eventstatus) END AS status FROM vtiger_activity INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_activity.activityid LEFT JOIN vtiger_seactivityrel ON vtiger_seactivityrel.activityid = vtiger_activity.activityid LEFT JOIN vtiger_cntactivityrel ON vtiger_cntactivityrel.activityid = vtiger_activity.activityid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid WHERE vtiger_crmentity.deleted = 0 AND vtiger_activity.activitytype <> 'Emails' AND (vtiger_seactivityrel.crmid = ".$recordId; $query .= ")"; $relatedModuleName = $relatedModule->getName(); $query .= $this->getSpecificRelationQuery($relatedModuleName); $nonAdminQuery = $this->getNonAdminAccessControlQueryForRelation($relatedModuleName); if ($nonAdminQuery) { $query = appendFromClauseToQuery($query, $nonAdminQuery); } // There could be more than one contact for an activity. $query .= ' GROUP BY vtiger_activity.activityid'; } else { $query = parent::getRelationQuery($recordId, $functionName, $relatedModule, $relationId); } return $query; } public function getModuleIcon() { $moduleName = $this->getName(); $lowerModuleName = strtolower($moduleName); $title = vtranslate($moduleName, $moduleName); $moduleIcon = ""; return $moduleIcon; } }