[ 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 class Vtiger_MassSave_Action extends Vtiger_Mass_Action { 12 13 function checkPermission(Vtiger_Request $request) { 14 $moduleName = $request->getModule(); 15 $moduleModel = Vtiger_Module_Model::getInstance($moduleName); 16 $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); 17 18 if(!$currentUserPriviligesModel->hasModuleActionPermission($moduleModel->getId(), 'Save')) { 19 throw new AppException(vtranslate($moduleName).' '.vtranslate('LBL_NOT_ACCESSIBLE')); 20 } 21 } 22 23 public function process(Vtiger_Request $request) { 24 $moduleName = $request->getModule(); 25 $moduleModel = Vtiger_Module_Model::getInstance($moduleName); 26 $recordModels = $this->getRecordModelsFromRequest($request); 27 foreach($recordModels as $recordId => $recordModel) { 28 if(Users_Privileges_Model::isPermitted($moduleName, 'Save', $recordId)) { 29 $recordModel->save(); 30 } 31 } 32 33 $response = new Vtiger_Response(); 34 $response->setResult(true); 35 $response->emit(); 36 } 37 38 /** 39 * Function to get the record model based on the request parameters 40 * @param Vtiger_Request $request 41 * @return Vtiger_Record_Model or Module specific Record Model instance 42 */ 43 function getRecordModelsFromRequest(Vtiger_Request $request) { 44 45 $moduleName = $request->getModule(); 46 $moduleModel = Vtiger_Module_Model::getInstance($moduleName); 47 $recordIds = $this->getRecordsListFromRequest($request); 48 $recordModels = array(); 49 50 $fieldModelList = $moduleModel->getFields(); 51 foreach($recordIds as $recordId) { 52 $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleModel); 53 $recordModel->set('id', $recordId); 54 $recordModel->set('mode', 'edit'); 55 56 foreach ($fieldModelList as $fieldName => $fieldModel) { 57 $fieldValue = $request->get($fieldName, null); 58 $fieldDataType = $fieldModel->getFieldDataType(); 59 if($fieldDataType == 'time'){ 60 $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); 61 } 62 if(isset($fieldValue) && $fieldValue != null) { 63 if(!is_array($fieldValue)) { 64 $fieldValue = trim($fieldValue); 65 } 66 $recordModel->set($fieldName, $fieldValue); 67 } else { 68 $uiType = $fieldModel->get('uitype'); 69 if($uiType == 70) { 70 $recordModel->set($fieldName, $recordModel->get($fieldName)); 71 } else { 72 $uiTypeModel = $fieldModel->getUITypeModel(); 73 $recordModel->set($fieldName, $uiTypeModel->getUserRequestValue($recordModel->get($fieldName))); 74 } 75 } 76 } 77 $recordModels[$recordId] = $recordModel; 78 } 79 return $recordModels; 80 } 81 }
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 |