[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /*+******************************************************************************* 3 * The contents of this file are subject to the vtiger CRM Public License Version 1.0 4 * ("License"); You may not use this file except in compliance with the License 5 * The Original Code is: vtiger CRM Open Source 6 * The Initial Developer of the Original Code is vtiger. 7 * Portions created by vtiger are Copyright (C) vtiger. 8 * All Rights Reserved. 9 * 10 *********************************************************************************/ 11 12 /** 13 * Description of VtigerLineItemMeta 14 */ 15 class VtigerLineItemMeta extends VtigerCRMActorMeta { 16 17 protected function getTableFieldList($tableName) { 18 $tableFieldList = array(); 19 20 $factory = WebserviceField::fromArray($this->pearDB, array('tablename'=>$tableName)); 21 $dbTableFields = $factory->getTableFields(); 22 foreach ($dbTableFields as $dbField) { 23 if($dbField->primary_key){ 24 if($this->idColumn === null){ 25 $this->idColumn = $dbField->name; 26 }else{ 27 throw new WebServiceException(WebServiceErrorCode::$UNKOWNENTITY, 28 "Entity table with multi column primary key is not supported"); 29 } 30 } 31 $field = $this->getFieldArrayFromDBField($dbField,$tableName); 32 if(preg_match('/tax\d+/', $dbField->name) != 0){ 33 $taxLabel = $this->getTaxLabelFromName($dbField->name); 34 if(!empty($taxLabel)) { 35 $field['fieldlabel'] = $taxLabel; 36 } 37 } 38 $webserviceField = WebserviceField::fromArray($this->pearDB,$field); 39 $fieldDataType = $this->getFieldType($dbField,$tableName); 40 if($fieldDataType === null){ 41 $fieldDataType = $this->getFieldDataTypeFromDBType($dbField->type); 42 } 43 $webserviceField->setFieldDataType($fieldDataType); 44 if(strcasecmp($fieldDataType,'reference') === 0){ 45 if ($webserviceField->getFieldName() == 'parent_id') { 46 $webserviceField->setReferenceList(getInventoryModules()); 47 } else { 48 $webserviceField->setReferenceList(array('Products','Services')); 49 } 50 } 51 array_push($tableFieldList,$webserviceField); 52 } 53 return $tableFieldList; 54 } 55 56 private function getTaxLabelFromName($name){ 57 $db = PearDatabase::getInstance(); 58 $sql = 'SELECT * FROM vtiger_inventorytaxinfo WHERE taxname=? AND deleted=0'; 59 $params = array($name); 60 $result = $db->pquery($sql, $params); 61 $it = new SqlResultIterator($db, $result); 62 foreach ($it as $row) { 63 return $row->taxlabel; 64 } 65 return null; 66 } 67 68 protected function getFieldArrayFromDBField($dbField, $tableName) { 69 $mandatoryFieldList = array('parent_id', 'productid', 'quantity'); 70 $field = array(); 71 $field['fieldname'] = $dbField->name; 72 $field['columnname'] = $dbField->name; 73 $field['tablename'] = $tableName; 74 $field['fieldlabel'] = str_replace('_', ' ',$dbField->name); 75 $field['displaytype'] = 1; 76 $field['uitype'] = 1; 77 78 if($dbField->name == 'id') { 79 $field['fieldname'] = 'parent_id'; 80 $field['fieldlabel'] = 'parent id'; 81 } 82 83 $fieldDataType = $this->getFieldType($dbField,$tableName); 84 if($fieldDataType !== null){ 85 $fieldType = $this->getTypeOfDataForType($fieldDataType); 86 }else{ 87 $fieldType = $this->getTypeOfDataForType($dbField->type); 88 } 89 $typeOfData = null; 90 $fieldName = $dbField->name; 91 92 if(in_array($fieldName,$mandatoryFieldList)){ 93 $typeOfData = $fieldType.'~M'; 94 }else if(($dbField->not_null == 1 && $fieldName != 'incrementondel' 95 && $dbField->primary_key != 1) || $dbField->unique_key == 1){ 96 $typeOfData = $fieldType.'~M'; 97 }else{ 98 $typeOfData = $fieldType.'~O'; 99 } 100 $field['typeofdata'] = $typeOfData; 101 $field['tabid'] = null; 102 $field['fieldid'] = null; 103 $field['masseditable'] = 0; 104 return $field; 105 } 106 107 } 108 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |