[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Settings/MailConverter/models/ -> RuleRecord.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  vimport('~~modules/Settings/MailConverter/handlers/MailScannerAction.php');
  12  vimport('~~modules/Settings/MailConverter/handlers/MailScannerRule.php');
  13  
  14  class Settings_MailConverter_RuleRecord_Model extends Settings_Vtiger_Record_Model {
  15  
  16      var $assignedTo = false;
  17      var $cc = false;
  18      var $bcc = false;
  19  
  20      /**
  21       * Function to get Id of this record instance
  22       * @return <Integer> Id
  23       */
  24  	public function getId() {
  25          return $this->get('ruleid');
  26      }
  27  
  28      /**
  29       * Function to get Name
  30       */
  31  	public function getName() {
  32          return '';
  33      }
  34  
  35      /**
  36       * Function to get List of fields for this record
  37       * @return <Array> List of fields
  38       */
  39  	public function getFields() {
  40          return array('fromaddress', 'toaddress', 'cc', 'bcc', 'subjectop', 'subject', 'bodyop', 'body', 'matchusing');
  41      }
  42  
  43      /**
  44       * Function to get Scanner id of this record
  45       * @return <Integer> Scanner id
  46       */
  47  	public function getScannerId() {
  48          return $this->get('scannerid');
  49      }
  50  
  51      /**
  52       * Function to get Default url of this record
  53       * @return <String> Url
  54       */
  55  	public function getDefaultUrl() {
  56          return 'index.php?module=MailConverter&parent=Settings&record='. $this->getId() .'&scannerId='. $this->getScannerId();
  57      }
  58  
  59      /**
  60       * Function to get Edit view url of this record
  61       * @return <String> Url
  62       */
  63  	public function getEditViewUrl() {
  64          $url = $this->getDefaultUrl(). '&view=EditRule';
  65          return 'javascript:Settings_MailConverter_Index_Js.triggerRuleEdit("'.$url.'")';
  66      }
  67  
  68      /**
  69       * Function to get Delete Url
  70       * @return <String> Url
  71       */
  72  	public function getDeleteUrl() {
  73          $url = $this->getDefaultUrl(). '&action=DeleteRule';
  74          return 'javascript:Settings_MailConverter_Index_Js.triggerDeleteRule(this,"'.$url.'")';
  75      }
  76  
  77      /**
  78       * Function to get record links
  79       * @return <Array> List of link models <Vtiger_Link_Model>
  80       */
  81  	public function getRecordLinks() {
  82          $qualifiedModuleName = 'Settings::MailConverter';
  83          $recordLinks = array(
  84                  array(
  85                          'linktype' => 'LISTVIEW',
  86                          'linklabel' => vtranslate('LBL_EDIT', $qualifiedModuleName). ' ' .vtranslate('RULE', $qualifiedModuleName),
  87                          'linkurl' => $this->getEditViewUrl(),
  88                          'linkicon' => 'icon-pencil'
  89                  ),
  90                  array(
  91                          'linktype' => 'LISTVIEW',
  92                          'linklabel' => vtranslate('LBL_DELETE', $qualifiedModuleName). ' ' .vtranslate('RULE', $qualifiedModuleName),
  93                          'linkurl' => $this->getDeleteUrl(),
  94                          'linkicon' => 'icon-trash'
  95                  )
  96          );
  97          foreach($recordLinks as $recordLink) {
  98              $links[] = Vtiger_Link_Model::getInstanceFromValues($recordLink);
  99          }
 100  
 101          return $links;
 102      }
 103  
 104      /**
 105       * Function to get Actions of this record
 106       * @return <Array> List of actions <Vtiger_MailScannerAction>
 107       */
 108  	public function getActions() {
 109          $ruleId = $this->getId();
 110          if (!$this->actions && $ruleId) {
 111              $db = PearDatabase::getInstance();
 112              $result = $db->pquery("SELECT actionid FROM vtiger_mailscanner_ruleactions WHERE ruleid = ?", array($ruleId));
 113              $numOfRows = $db->num_rows($result);
 114  
 115              for($i=0; $i<$numOfRows; $i++) {
 116                  $actionId = $db->query_result($result, $i, 'actionid');
 117                  $this->actions[$actionId] = new Vtiger_MailScannerAction($actionId);
 118              }
 119          }
 120          return $this->actions;
 121      }
 122  
 123      /**
 124       * Function to Delete this record
 125       */
 126  	public function delete() {
 127          $rule = new Vtiger_MailScannerRule($this->getId());
 128          $rule->delete();
 129      }
 130  
 131      /**
 132       * Function to save the record
 133       */
 134  	public function save() {
 135          $recordId = $this->getId();
 136          $ruleModel = new Vtiger_MailScannerRule($recordId);
 137          $fieldsList = $this->getFields();
 138          $ruleModel->scannerid = $this->get('scannerid');
 139          $ruleModel->assigned_to = $this->assignedTo;
 140          $ruleModel->cc = $this->cc;
 141          $ruleModel->bcc = $this->bcc;
 142          foreach ($fieldsList as $fieldName) {
 143              $ruleModel->$fieldName = $this->get($fieldName);
 144          }
 145          //Saving the Rule data
 146          $ruleModel->update();
 147          $this->set('ruleid', $ruleModel->ruleid);
 148  
 149          $actionString = $this->get('action');
 150          $newActionString = $this->get('newAction');
 151          if ($actionString != $newActionString) {
 152              $actionId = '';
 153              $actions = $this->getActions();
 154              if ($actions) {
 155                  $actionModel = reset($this->getActions());
 156                  $actionId = $actionModel->actionid;
 157              }
 158              //Svaing the Action info
 159              $ruleModel->updateAction($actionModel->actionid, str_replace('_', ',', $newActionString));
 160          }
 161          return $ruleModel->ruleid;
 162      }
 163  
 164      //Static functions Started
 165  
 166      /**
 167       * Function to get Clean instance
 168       * @param <Integer> $scannerId
 169       * @return <Settings_MailConverter_RuleRecord_Model>
 170       */
 171  	public static function getCleanInstance($scannerId) {
 172          $recordModel = new self();
 173          return $recordModel->set('scannerid', $scannerId);
 174      }
 175  
 176      /**
 177       * Function to get Instance of this class using by record id
 178       * @param <Integer> $recordId
 179       * @return <Settings_MailConverter_RuleRecord_Model>
 180       */
 181  	public static function getInstanceById($recordId) {
 182          $db = PearDatabase::getInstance();
 183          $result = $db->pquery('SELECT * FROM vtiger_mailscanner_rules WHERE ruleid = ', array($recordId));
 184          if ($db->num_rows($result)) {
 185              $recordModel = new self();
 186              $recordModel->setData($db->query_result_rowdata($result));
 187              $action = reset($recordModel->getActions());
 188              return $recordModel->set('action', str_replace(',', '_', $action->actiontext));
 189          }
 190          return false;
 191      }
 192  
 193      /**
 194       * Function to get List of mail scanner rule records
 195       * @param <Integer> $scannerId
 196       * @return <Array> List of rule record models <Settings_MailConverter_RuleRecord_Model>
 197       */
 198  	public static function getAll($scannerId) {
 199          $db = PearDatabase::getInstance();
 200          $ruleModelsList = array();
 201  
 202          $result = $db->pquery("SELECT * FROM vtiger_mailscanner_rules WHERE scannerid = ? ORDER BY sequence", array($scannerId));
 203          $numOfRows = $db->num_rows($result);
 204          for($i=0; $i<$numOfRows; $i++) {
 205              $rowData = $db->query_result_rowdata($result,$i);
 206              $ruleModel = new self();
 207              $ruleModel->setData($rowData);
 208              $action = reset($ruleModel->getActions());
 209              $ruleModel->set('action', str_replace(',', '_', $action->actiontext));
 210              $assignedTo = Settings_MailConverter_RuleRecord_Model::getAssignedTo($rowData['scannerid'], $rowData['ruleid']);
 211              $ruleModel->set('assigned_to', $assignedTo[1]);
 212              $ruleModelsList[$rowData['ruleid']] = $ruleModel;
 213          }
 214          return $ruleModelsList;
 215      }
 216  
 217      /**
 218       * Function to get mail scanner rule record
 219       * @param <Integer> $scannerId
 220       * @return <Array> List of rule record models <Settings_MailConverter_RuleRecord_Model>
 221       */
 222  	public static function getRule($scannerId, $ruleId) {
 223          $db = PearDatabase::getInstance();
 224  
 225          $result = $db->pquery("SELECT * FROM vtiger_mailscanner_rules WHERE scannerid = ? AND ruleid = ?", array($scannerId, $ruleId));
 226          if ($db->num_rows($result)) {
 227              $rowData = $db->query_result_rowdata($result);
 228              $ruleModel = new self();
 229              $ruleModel->setData($rowData);
 230              $assignedTo = Settings_MailConverter_RuleRecord_Model::getAssignedTo($scannerId, $ruleId);
 231              $ruleModel->set('assigned_to', $assignedTo[1]);
 232              $action = reset($ruleModel->getActions());
 233               return $ruleModel->set('action', str_replace(',', '_', $action->actiontext));
 234          }
 235          return false;
 236      }
 237      
 238      /**
 239       * Function to get Default conditions
 240       * @return <Array> List of default conditions
 241       */
 242  	public static function getDefaultConditions() {
 243          return array('Contains', 'Not Contains', 'Equals', 'Not Equals', 'Begins With', 'Ends With', 'Regex');
 244      }
 245  
 246      /**
 247       * Function to get Default actions
 248       * @return <Array> List of default actions
 249       */
 250  	public static function getDefaultActions() {
 251          return array('CREATE_HelpDesk_FROM', 'UPDATE_HelpDesk_SUBJECT', 'LINK_Contacts_FROM', 'LINK_Contacts_TO', 'LINK_Leads_FROM', 'LINK_Leads_TO', 'LINK_Accounts_FROM', 'LINK_Accounts_TO');
 252      }
 253  
 254  	public function getAssignedTo($scannerId, $ruleId) {
 255          $db = PearDatabase::getInstance();
 256          $result = $db->pquery("SELECT assigned_to FROM vtiger_mailscanner_rules WHERE scannerid = ? AND ruleid = ?", array($scannerId, $ruleId));
 257          $id = $db->query_result($result, 0, 'assigned_to');
 258          if (empty($id)) {
 259              global $current_user;
 260              $id = $current_user->id;
 261          }
 262          $assignedUserName = getUserFullName($id);
 263          if (empty($assignedUserName)) {
 264              $groupInfo = getGroupName($id);
 265              $assignedUserName = $groupInfo[0];
 266          }
 267          return array($id, $assignedUserName);
 268      }
 269  }


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