Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protected function getRecordModelFromRequest(Vtiger_Request $request) {
- $moduleName = $request->getModule();
- $recordId = $request->get('record');
- $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
- if(!empty($recordId)) {
- $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName);
- $modelData = $recordModel->getData();
- $recordModel->set('id', $recordId);
- $recordModel->set('mode', 'edit');
- //Due to dependencies on the activity_reminder api in Activity.php(5.x)
- $_REQUEST['mode'] = 'edit';
- } else {
- $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
- $modelData = $recordModel->getData();
- $recordModel->set('mode', '');
- }
- $fieldModelList = $moduleModel->getFields();
- foreach ($fieldModelList as $fieldName => $fieldModel) {
- $fieldValue = $request->get($fieldName, null);
- // For custom time fields in Calendar, it was not converting to db insert format(sending as 10:00 AM/PM)
- $fieldDataType = $fieldModel->getFieldDataType();
- if($fieldDataType == 'time' && $fieldValue !== null){
- $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue);
- }
- // End
- if ($fieldName === $request->get('field')) {
- $fieldValue = $request->get('value');
- }
- //SalesPlatform.ru begin
- if($fieldModel->isCKEEnabled()) {
- $fieldValue = vtlib_purify(decode_html($fieldValue));
- }
- //SalesPlatform.ru end
- if($fieldValue !== null) {
- if(!is_array($fieldValue)) {
- $fieldValue = trim($fieldValue);
- }
- $recordModel->set($fieldName, $fieldValue);
- }
- }
- //Start Date and Time values
- // Sergey Emelyanov - fixed empty date format
- if (!$request->get('time_start')) {
- $request->set('time_start', $recordModel->get('time_start'));
- }
- if (!$request->get('date_start')) {
- $request->set('date_start', $recordModel->get('date_start'));
- }
- if (!$request->get('due_date')) {
- $request->set('due_date', $recordModel->get('due_date'));
- }
- if (!$request->get('time_end')) {
- $request->set('time_end', $recordModel->get('time_end'));
- }
- // Sergey Emelyanov - end fixing empty date format
- $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($request->get('time_start'));
- $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('date_start')." ".$startTime);
- list($startDate, $startTime) = explode(' ', $startDateTime);
- $recordModel->set('date_start', $startDate);
- $recordModel->set('time_start', $startTime);
- //End Date and Time values
- $endTime = $request->get('time_end');
- $endDate = Vtiger_Date_UIType::getDBInsertedValue($request->get('due_date'));
- if ($endTime) {
- $endTime = Vtiger_Time_UIType::getTimeValueWithSeconds($endTime);
- $endDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('due_date')." ".$endTime);
- list($endDate, $endTime) = explode(' ', $endDateTime);
- }
- $recordModel->set('time_end', $endTime);
- $recordModel->set('due_date', $endDate);
- $activityType = $request->get('activitytype');
- if(empty($activityType)) {
- $recordModel->set('activitytype', 'Task');
- $recordModel->set('visibility', 'Private');
- }
- //Due to dependencies on the older code
- $setReminder = $request->get('set_reminder');
- if($setReminder) {
- $_REQUEST['set_reminder'] = 'Yes';
- } else {
- $_REQUEST['set_reminder'] = 'No';
- }
- return $recordModel;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement