87 lines
3.0 KiB
PHP
Executable File
87 lines
3.0 KiB
PHP
Executable File
<?php
|
|
/*+***********************************************************************************
|
|
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
|
* ("License"); You may not use this file except in compliance with the License
|
|
* The Original Code is: vtiger CRM Open Source
|
|
* The Initial Developer of the Original Code is vtiger.
|
|
* Portions created by vtiger are Copyright (C) vtiger.
|
|
* All Rights Reserved.
|
|
*************************************************************************************/
|
|
|
|
class Settings_Leads_Module_Model extends Vtiger_Module_Model {
|
|
|
|
/**
|
|
* Function to get fields of this model
|
|
* @return <Array> list of field models <Settings_Leads_Field_Model>
|
|
*/
|
|
public function getFields() {
|
|
if (!$this->fields) {
|
|
$fieldModelsList = array();
|
|
$fieldIds = $this->getMappingSupportedFieldIdsList();
|
|
|
|
foreach ($fieldIds as $fieldId) {
|
|
$fieldModel = Settings_Leads_Field_Model::getInstance($fieldId, $this);
|
|
$fieldModelsList[$fieldModel->getFieldDataType()][$fieldId] = $fieldModel;
|
|
}
|
|
$this->fields = $fieldModelsList;
|
|
}
|
|
return $this->fields;
|
|
}
|
|
|
|
/**
|
|
* Function to get mapping supported field ids list
|
|
* @return <Array> list of field ids
|
|
*/
|
|
public function getMappingSupportedFieldIdsList() {
|
|
if (!$this->supportedFieldIdsList) {
|
|
$selectedTabidsList[] = getTabid($this->getName());
|
|
$restrictedFieldNames = array('campaignrelstatus');
|
|
$restrictedUitypes = $this->getRestrictedUitypes();
|
|
$selectedGeneratedTypes = array(1, 2);
|
|
|
|
$db = PearDatabase::getInstance();
|
|
$query = 'SELECT fieldid FROM vtiger_field
|
|
WHERE tabid IN ('. generateQuestionMarks($selectedTabidsList) .')
|
|
AND uitype NOT IN ('. generateQuestionMarks($restrictedUitypes) .')
|
|
AND fieldname NOT IN ('. generateQuestionMarks($restrictedFieldNames) .')
|
|
AND generatedtype IN ('.generateQuestionMarks($selectedGeneratedTypes).')';
|
|
|
|
$params = array_merge($selectedTabidsList, $restrictedUitypes,$restrictedFieldNames, $selectedGeneratedTypes);
|
|
|
|
$result = $db->pquery($query, $params);
|
|
$numOfRows = $db->num_rows($result);
|
|
|
|
$fieldIdsList = array();
|
|
for ($i=0; $i<$numOfRows; $i++) {
|
|
$fieldIdsList[] = $db->query_result($result, $i, 'fieldid');
|
|
}
|
|
$this->supportedFieldIdsList = $fieldIdsList;
|
|
}
|
|
return $this->supportedFieldIdsList;
|
|
}
|
|
|
|
/**
|
|
* Function to get the Restricted Ui Types
|
|
* @return <array> Restricted ui types
|
|
*/
|
|
public function getRestrictedUitypes() {
|
|
return array(4, 51, 52, 53, 57, 58, 70);
|
|
}
|
|
|
|
/**
|
|
* Function to get instance of module
|
|
* @param <String> $moduleName
|
|
* @return <Settings_Leads_Module_Model>
|
|
*/
|
|
public static function getInstance($moduleName) {
|
|
$moduleModel = parent::getInstance($moduleName);
|
|
$objectProperties = get_object_vars($moduleModel);
|
|
|
|
$moduleModel = new self();
|
|
foreach ($objectProperties as $properName => $propertyValue) {
|
|
$moduleModel->$properName = $propertyValue;
|
|
}
|
|
return $moduleModel;
|
|
}
|
|
}
|