[ 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 * Calendar Field Model Class 13 */ 14 class Calendar_Field_Model extends Vtiger_Field_Model { 15 16 /** 17 * Function returns special validator for fields 18 * @return <Array> 19 */ 20 function getValidator() { 21 $validator = array(); 22 $fieldName = $this->getName(); 23 24 switch($fieldName) { 25 case 'due_date': $funcName = array('name' => 'greaterThanDependentField', 26 'params' => array('date_start')); 27 array_push($validator, $funcName); 28 break; 29 case 'eventstatus': $funcName = array('name' => 'futureEventCannotBeHeld', 30 'params' => array('date_start')); 31 array_push($validator, $funcName); 32 break; 33 // NOTE: Letting user to add pre or post dated Event. 34 /*case 'date_start' : $funcName = array('name'=>'greaterThanToday'); 35 array_push($validator, $funcName); 36 break;*/ 37 default : $validator = parent::getValidator(); 38 break; 39 } 40 return $validator; 41 } 42 43 /** 44 * Function to get the Webservice Field data type 45 * @return <String> Data type of the field 46 */ 47 public function getFieldDataType() { 48 if($this->getName() == 'date_start' || $this->getName() == 'due_date') { 49 return 'datetime'; 50 } else if($this->get('uitype') == '30') { 51 return 'reminder'; 52 } else if($this->getName() == 'recurringtype') { 53 return 'recurrence'; 54 } 55 $webserviceField = $this->getWebserviceFieldObject(); 56 return $webserviceField->getFieldDataType(); 57 } 58 59 /** 60 * Customize the display value for detail view. 61 */ 62 public function getDisplayValue($value, $record = false, $recordInstance = false) { 63 if ($recordInstance) { 64 if ($this->getName() == 'date_start') { 65 $dateTimeValue = $value . ' '. $recordInstance->get('time_start'); 66 $value = $this->getUITypeModel()->getDisplayValue($dateTimeValue); 67 list($startDate, $startTime) = explode(' ', $value); 68 69 $currentUser = Users_Record_Model::getCurrentUserModel(); 70 if($currentUser->get('hour_format') == '12') 71 $startTime = Vtiger_Time_UIType::getTimeValueInAMorPM($startTime); 72 73 return $startDate . ' ' . $startTime; 74 } else if ($this->getName() == 'due_date') { 75 $dateTimeValue = $value . ' '. $recordInstance->get('time_end'); 76 $value = $this->getUITypeModel()->getDisplayValue($dateTimeValue); 77 list($startDate, $startTime) = explode(' ', $value); 78 79 $currentUser = Users_Record_Model::getCurrentUserModel(); 80 if($currentUser->get('hour_format') == '12') 81 $startTime = Vtiger_Time_UIType::getTimeValueInAMorPM($startTime); 82 83 return $startDate . ' ' . $startTime; 84 } 85 } 86 return parent::getDisplayValue($value, $record, $recordInstance); 87 } 88 89 /** 90 * Function to get Edit view display value 91 * @param <String> Data base value 92 * @return <String> value 93 */ 94 public function getEditViewDisplayValue($value) { 95 $fieldName = $this->getName(); 96 97 if ($fieldName == 'time_start' || $fieldName == 'time_end') { 98 return $this->getUITypeModel()->getDisplayTimeDifferenceValue($fieldName, $value); 99 } 100 101 //Set the start date and end date 102 if(empty($value)) { 103 if ($fieldName === 'date_start') { 104 return DateTimeField::convertToUserFormat(date('Y-m-d')); 105 } elseif ($fieldName === 'due_date') { 106 $currentUser = Users_Record_Model::getCurrentUserModel(); 107 $minutes = $currentUser->get('callduration'); 108 return DateTimeField::convertToUserFormat(date('Y-m-d', strtotime("+$minutes minutes"))); 109 } 110 } 111 return parent::getEditViewDisplayValue($value); 112 } 113 114 /** 115 * Function which will give the picklist values for a recurrence field 116 * @param type $fieldName -- string 117 * @return type -- array of values 118 */ 119 public static function getReccurencePicklistValues() { 120 $currentUser = Users_Record_Model::getCurrentUserModel(); 121 $fieldModel = Vtiger_Field_Model::getInstance('recurringtype', Vtiger_Module_Model::getInstance('Events')); 122 if($fieldModel->isRoleBased() && !$currentUser->isAdminUser()) { 123 $userModel = Users_Record_Model::getCurrentUserModel(); 124 $picklistValues = Vtiger_Util_Helper::getRoleBasedPicklistValues('recurringtype', $userModel->get('roleid')); 125 }else{ 126 $picklistValues = Vtiger_Util_Helper::getPickListValues('recurringtype'); 127 } 128 foreach($picklistValues as $value) { 129 $fieldPickListValues[$value] = vtranslate($value,'Events'); 130 } 131 return $fieldPickListValues; 132 } 133 134 /** 135 * Function to get the advanced filter option names by Field type 136 * @return <Array> 137 */ 138 public static function getAdvancedFilterOpsByFieldType() { 139 140 $filterOpsByFieldType = parent::getAdvancedFilterOpsByFieldType(); 141 $filterOpsByFieldType['O'] = array('e','n'); 142 143 return $filterOpsByFieldType; 144 } 145 146 /** 147 * Function which will check if empty piclist option should be given 148 */ 149 public function isEmptyPicklistOptionAllowed() { 150 if($this->getFieldName() == 'visibility') { 151 return false; 152 } 153 return true; 154 } 155 156 }
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 |