Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Static Function to get the list of records matching the search key
- * @param <String> $searchKey
- * @return <Array> - List of Vtiger_Record_Model or Module Specific Record Model instances
- */
- public static function getSearchResult($searchKey, $module=false) {
- $db = PearDatabase::getInstance();
- $query = 'SELECT label, crmid, setype, createdtime FROM vtiger_crmentity WHERE label LIKE ? AND vtiger_crmentity.deleted = 0';
- $params = array("%$searchKey%");
- if($module !== false) {
- $query .= ' AND setype = ?';
- $params[] = $module;
- }
- /*TOTHOMweb search Leads*/
- if ($module == false || $module == "Leads" ) {
- $query = $query ." UNION ALL " . 'select CONCAT(vtiger_leaddetails.firstname, " ", vtiger_leaddetails.lastname) as label, vtiger_leaddetails.leadid as crmid, "Leads" as setype, vtiger_crmentity.createdtime as createdtime from vtiger_leaddetails, vtiger_crmentity where vtiger_leaddetails.leadid = vtiger_crmentity.crmid AND vtiger_crmentity.deleted = 0 AND
- (vtiger_leaddetails.email like ?
- OR vtiger_leaddetails.company like ?
- OR vtiger_leaddetails.leadid in (select leadaddressid from vtiger_leadaddress where city LIKE ? OR code LIKE ? OR state LIKE ? OR pobox LIKE ? OR country LIKE ? OR phone LIKE ? OR mobile LIKE ? OR fax LIKE ? OR lane LIKE ? OR leadaddresstype LIKE ?)
- OR vtiger_leaddetails.leadid in (select leadid from vtiger_leadscf where cf_714 like ? ))';
- $params = array_merge($params ,array("%$searchKey%","%$searchKey%","%$searchKey%","%$searchKey%","%$searchKey%","%$searchKey%","%$searchKey%","%$searchKey%","%$searchKey%","%$searchKey%","%$searchKey%","%$searchKey%","%$searchKey%")); //$query .= ' ORDER BY createdtime DESC';
- }
- //Remove the ordering for now to improve the speed
- //$query .= ' ORDER BY createdtime DESC';
- $result = $db->pquery($query, $params);
- /*End TOTHOMweb search Leads*/ $noOfRows = $db->num_rows($result);
- $moduleModels = $matchingRecords = $leadIdsList = array();
- for($i=0; $i<$noOfRows; ++$i) {
- $row = $db->query_result_rowdata($result, $i);
- if ($row['setype'] === 'Leads') {
- $leadIdsList[] = $row['crmid'];
- }
- }
- $convertedInfo = Leads_Module_Model::getConvertedInfo($leadIdsList);
- for($i=0, $recordsCount = 0; $i<$noOfRows && $recordsCount<100; ++$i) {
- $row = $db->query_result_rowdata($result, $i);
- if ($row['setype'] === 'Leads' && $convertedInfo[$row['crmid']]) {
- continue;
- }
- if(Users_Privileges_Model::isPermitted($row['setype'], 'DetailView', $row['crmid'])) {
- $row['id'] = $row['crmid'];
- $moduleName = $row['setype'];
- if(!array_key_exists($moduleName, $moduleModels)) {
- $moduleModels[$moduleName] = Vtiger_Module_Model::getInstance($moduleName);
- }
- $moduleModel = $moduleModels[$moduleName];
- $modelClassName = Vtiger_Loader::getComponentClassName('Model', 'Record', $moduleName);
- $recordInstance = new $modelClassName();
- $matchingRecords[$moduleName][$row['id']] = $recordInstance->setData($row)->setModuleFromInstance($moduleModel);
- $recordsCount++;
- }
- }
- return $matchingRecords;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement