[ 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_SaveAjax_Action extends Vtiger_Save_Action { 12 13 public function process(Vtiger_Request $request) { 14 $recordModel = $this->saveRecord($request); 15 16 $fieldModelList = $recordModel->getModule()->getFields(); 17 $result = array(); 18 foreach ($fieldModelList as $fieldName => $fieldModel) { 19 $recordFieldValue = $recordModel->get($fieldName); 20 if(is_array($recordFieldValue) && $fieldModel->getFieldDataType() == 'multipicklist') { 21 $recordFieldValue = implode(' |##| ', $recordFieldValue); 22 } 23 $fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordFieldValue); 24 if ($fieldModel->getFieldDataType() !== 'currency' && $fieldModel->getFieldDataType() !== 'datetime' && $fieldModel->getFieldDataType() !== 'date') { 25 $displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId()); 26 } 27 28 $result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue); 29 } 30 31 //Handling salutation type 32 if ($request->get('field') === 'firstname' && in_array($request->getModule(), array('Contacts', 'Leads'))) { 33 $salutationType = $recordModel->getDisplayValue('salutationtype'); 34 $firstNameDetails = $result['firstname']; 35 $firstNameDetails['display_value'] = $salutationType. " " .$firstNameDetails['display_value']; 36 if ($salutationType != '--None--') $result['firstname'] = $firstNameDetails; 37 } 38 39 $result['_recordLabel'] = $recordModel->getName(); 40 $result['_recordId'] = $recordModel->getId(); 41 42 $response = new Vtiger_Response(); 43 $response->setEmitType(Vtiger_Response::$EMIT_JSON); 44 $response->setResult($result); 45 $response->emit(); 46 } 47 48 /** 49 * Function to get the record model based on the request parameters 50 * @param Vtiger_Request $request 51 * @return Vtiger_Record_Model or Module specific Record Model instance 52 */ 53 public function getRecordModelFromRequest(Vtiger_Request $request) { 54 $moduleName = $request->getModule(); 55 $recordId = $request->get('record'); 56 57 if(!empty($recordId)) { 58 $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); 59 $recordModel->set('id', $recordId); 60 $recordModel->set('mode', 'edit'); 61 62 $fieldModelList = $recordModel->getModule()->getFields(); 63 foreach ($fieldModelList as $fieldName => $fieldModel) { 64 //For not converting craetedtime and modified time to user format 65 $uiType = $fieldModel->get('uitype'); 66 if ($uiType == 70) { 67 $fieldValue = $recordModel->get($fieldName); 68 } else { 69 $fieldValue = $fieldModel->getUITypeModel()->getUserRequestValue($recordModel->get($fieldName)); 70 } 71 72 73 if ($fieldName === $request->get('field')) { 74 $fieldValue = $request->get('value'); 75 } 76 $fieldDataType = $fieldModel->getFieldDataType(); 77 if ($fieldDataType == 'time') { 78 $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); 79 } 80 if ($fieldValue !== null) { 81 if (!is_array($fieldValue)) { 82 $fieldValue = trim($fieldValue); 83 } 84 $recordModel->set($fieldName, $fieldValue); 85 } 86 $recordModel->set($fieldName, $fieldValue); 87 } 88 } else { 89 $moduleModel = Vtiger_Module_Model::getInstance($moduleName); 90 91 $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); 92 $recordModel->set('mode', ''); 93 94 $fieldModelList = $moduleModel->getFields(); 95 foreach ($fieldModelList as $fieldName => $fieldModel) { 96 if ($request->has($fieldName)) { 97 $fieldValue = $request->get($fieldName, null); 98 } else { 99 $fieldValue = $fieldModel->getDefaultFieldValue(); 100 } 101 $fieldDataType = $fieldModel->getFieldDataType(); 102 if ($fieldDataType == 'time') { 103 $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); 104 } 105 if ($fieldValue !== null) { 106 if (!is_array($fieldValue)) { 107 $fieldValue = trim($fieldValue); 108 } 109 $recordModel->set($fieldName, $fieldValue); 110 } 111 } 112 } 113 114 return $recordModel; 115 } 116 }
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 |