[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Settings/CronTasks/models/ -> Record.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  class Settings_CronTasks_Record_Model extends Settings_Vtiger_Record_Model {
  12  
  13      static $STATUS_DISABLED = 0;
  14      static $STATUS_ENABLED = 1;
  15      static $STATUS_RUNNING = 2;
  16      static $STATUS_COMPLETED = 3;
  17  
  18      /**
  19       * Function to get Id of this record instance
  20       * @return <Integer> id
  21       */
  22  	public function getId() {
  23          return $this->get('id');
  24      }
  25  
  26      /**
  27       * Function to get Name of this record
  28       * @return <String>
  29       */
  30  	public function getName() {
  31          return $this->get('name');
  32      }
  33  
  34      /**
  35       * Function to get module instance of this record
  36       * @return <type>
  37       */
  38  	public function getModule() {
  39          return $this->module;
  40      }
  41  
  42      /**
  43       * Function to set module to this record instance
  44       * @param <Settings_CronTasks_Module_Model> $moduleModel
  45       * @return <Settings_CronTasks_Record_Model> record model
  46       */
  47  	public function setModule($moduleModel) {
  48          $this->module = $moduleModel;
  49          return $this;
  50      }
  51  
  52      public function isDisabled() {
  53          if($this->get('status') == self::$STATUS_DISABLED){
  54              return true;
  55          }
  56          return false;
  57      }
  58      
  59      public function isRunning() {
  60          if($this->get('status') == self::$STATUS_RUNNING){
  61              return true;
  62          }
  63          return false;
  64      }
  65      
  66      public function isCompleted() {
  67          if($this->get('status') == self::$STATUS_COMPLETED){
  68              return true;
  69          }
  70          return false;
  71      }
  72      
  73      public function isEnabled() {
  74          if($this->get('status') == self::$STATUS_ENABLED){
  75              return true;
  76          }
  77          return false;
  78      }
  79      
  80      /**
  81       * Detect if the task was started by never finished.
  82       */
  83      function hadTimedout() {
  84          if($this->get('lastend') === 0 && $this->get('laststart') != 0)
  85          return intval($this->get('lastend'));
  86      }
  87      
  88      /**
  89       * Get the user datetimefeild
  90       */
  91      function getLastEndDateTime() {
  92          if($this->get('lastend') != NULL) {
  93              $lastScannedTime = Vtiger_Datetime_UIType::getDisplayDateTimeValue(date('Y-m-d H:i:s', $this->get('lastend')));
  94              $userModel = Users_Record_Model::getCurrentUserModel();
  95              $hourFormat = $userModel->get('hour_format');
  96              if($hourFormat == '24') {
  97                  return $lastScannedTime;
  98              } else {
  99                  $dateTimeList = explode(" ", $lastScannedTime);
 100                  return $dateTimeList[0]." ".date('g:i:sa', strtotime($dateTimeList[1]));
 101              }
 102          } else {
 103              return '';
 104          }
 105      }
 106      
 107      /**
 108       * Get Time taken to complete task
 109       */
 110      function getTimeDiff() {
 111          $lastStart = intval($this->get('laststart'));
 112          $lastEnd   = intval($this->get('lastend'));
 113          $timeDiff  = $lastEnd - $lastStart;
 114          return $timeDiff;
 115      }
 116  
 117      /**
 118       * Function to get display value of every field from this record
 119       * @param <String> $fieldName
 120       * @return <String>
 121       */
 122  	public function getDisplayValue($fieldName) {
 123          $fieldValue = $this->get($fieldName);
 124          switch ($fieldName) {
 125              case 'frequency'    : $fieldValue = intval($fieldValue);
 126                                    $hours    = str_pad((int)(($fieldValue/(60*60))),2,0,STR_PAD_LEFT);
 127                                    $minutes    = str_pad((int)(($fieldValue%(60*60))/60),2,0,STR_PAD_LEFT);
 128                                    $fieldValue = $hours.':'.$minutes;
 129                                    break;
 130              case 'status'        : $fieldValue = intval($fieldValue);
 131                                    $moduleModel = $this->getModule();
 132                                    if ($fieldValue === Settings_CronTasks_Record_Model::$STATUS_COMPLETED) {
 133                                        $fieldLabel = 'LBL_COMPLETED';
 134                                    } else if ($fieldValue === Settings_CronTasks_Record_Model::$STATUS_RUNNING) {
 135                                        $fieldLabel = 'LBL_RUNNING';
 136                                    } else if ($fieldValue === Settings_CronTasks_Record_Model::$STATUS_ENABLED) {
 137                                        $fieldLabel = 'LBL_ACTIVE';
 138                                    } else {
 139                                        $fieldLabel = 'LBL_INACTIVE';
 140                                    }
 141                                    $fieldValue = vtranslate($fieldLabel, $moduleModel->getParentName().':'.$moduleModel->getName());
 142                                    break;
 143              case 'laststart'    :
 144              case 'lastend'        : $fieldValue = intval($fieldValue);
 145                                    if ($fieldValue) {
 146                                        $fieldValue = dateDiffAsString($fieldValue, time());
 147                                    } else {
 148                                        $fieldValue = '';
 149                                    }
 150                                    break;
 151          }
 152          return $fieldValue;
 153      }
 154      
 155      /*
 156       * Function to get Edit view url 
 157       */
 158  	public function getEditViewUrl() {
 159          return 'module=CronTasks&parent=Settings&view=EditAjax&record='.$this->getId();
 160      }
 161  
 162      /**
 163       * Function to save the record
 164       */
 165  	public function save() {
 166          $db = PearDatabase::getInstance();
 167  
 168          $updateQuery = "UPDATE vtiger_cron_task SET frequency = ?, status = ? WHERE id = ?";
 169          $params = array($this->get('frequency'), $this->get('status'), $this->getId());
 170          $db->pquery($updateQuery, $params);
 171      }
 172  
 173      /**
 174       * Function to get record instance by using id and moduleName
 175       * @param <Integer> $recordId
 176       * @param <String> $qualifiedModuleName
 177       * @return <Settings_CronTasks_Record_Model> RecordModel
 178       */
 179  	static public function getInstanceById($recordId, $qualifiedModuleName) {
 180          $db = PearDatabase::getInstance();
 181  
 182          $result = $db->pquery("SELECT * FROM vtiger_cron_task WHERE id = ?", array($recordId));
 183          if ($db->num_rows($result)) {
 184              $recordModelClass = Vtiger_Loader::getComponentClassName('Model', 'Record', $qualifiedModuleName);
 185              $moduleModel = Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName);
 186              $rowData = $db->query_result_rowdata($result, 0);
 187              $recordModel = new $recordModelClass();
 188              $recordModel->setData($rowData)->setModule($moduleModel);
 189              return $recordModel;
 190          }
 191          return false;
 192      }
 193      
 194      public static function getInstanceByName($name) {
 195          $db = PearDatabase::getInstance();
 196  
 197          $result = $db->pquery("SELECT * FROM vtiger_cron_task WHERE name = ?", array($name));
 198          if ($db->num_rows($result)) {
 199              $moduleModel = new Settings_CronTasks_Module_Model();
 200              $rowData = $db->query_result_rowdata($result, 0);
 201              $recordModel = new self();
 202              $recordModel->setData($rowData)->setModule($moduleModel);
 203              return $recordModel;
 204          }
 205          return false;
 206      }
 207  
 208  
 209          /**
 210       * Function to get the list view actions for the record
 211       * @return <Array> - Associate array of Vtiger_Link_Model instances
 212       */
 213  	public function getRecordLinks() {
 214  
 215          $links = array();
 216  
 217          $recordLinks = array(
 218              array(
 219                  'linktype' => 'LISTVIEWRECORD',
 220                  'linklabel' => 'LBL_EDIT_RECORD',
 221                  'linkurl' => "javascript:Settings_CronTasks_List_Js.triggerEditEvent('".$this->getEditViewUrl()."')",
 222                  'linkicon' => 'icon-pencil'
 223              )
 224          );
 225          foreach($recordLinks as $recordLink) {
 226              $links[] = Vtiger_Link_Model::getInstanceFromValues($recordLink);
 227          }
 228  
 229          return $links;
 230      }
 231      
 232  	public function getMinimumFrequency() {
 233          return getMinimumCronFrequency()*60;
 234      }
 235  }


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