[ 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 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 }
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 |