[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Calendar/models/ -> Field.php (source)

   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  }


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1