Files
crm.clientright.ru/modules/Settings/Leads/models/Module.php

87 lines
3.0 KiB
PHP
Raw Normal View History

<?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;
}
}