Example #1
0
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     $source = $request->get('source');
     $sourceModule = $request->get('sourceModule');
     if ($sourceModule != '') {
         $source = Vtiger_Functions::getModuleId($sourceModule);
     }
     if ($source == '') {
         $source = 6;
     }
     $moduleModel = Settings_Widgets_Module_Model::getInstance($qualifiedModuleName);
     $RelatedModule = $moduleModel->getRelatedModule($source);
     $viewer = $this->getViewer($request);
     $viewer->assign('MODULE_MODEL', $moduleModel);
     $viewer->assign('SOURCE', $source);
     $viewer->assign('SOURCEMODULE', Vtiger_Functions::getModuleName($source));
     $viewer->assign('WIDGETS', $moduleModel->getWidgets($source));
     $viewer->assign('RELATEDMODULES', $RelatedModule);
     $viewer->assign('FILTERS', json_encode($moduleModel->getFiletrs($RelatedModule)));
     $viewer->assign('CHECKBOXS', json_encode($moduleModel->getCheckboxs($RelatedModule)));
     //$viewer->assign('EXCLUDEDTYPES', $moduleModel->excludedTypes($source) );
     $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
     $viewer->assign('MODULE', $moduleName);
     $viewer->view('Index.tpl', $qualifiedModuleName);
 }
 public function process(Vtiger_Request $request)
 {
     $recordId = $request->get('record');
     $qualifiedModuleName = $request->getModule(false);
     $sourceModule = $request->get('sourceModule');
     $viewer = $this->getViewer($request);
     $mode = '';
     $selectedFieldsList = array();
     if ($recordId) {
         $recordModel = Settings_Webforms_Record_Model::getInstanceById($recordId, $qualifiedModuleName);
         $mode = 'edit';
         if ($sourceModule === $recordModel->get('targetmodule')) {
             $selectedFieldsList = $recordModel->getSelectedFieldsList();
         }
     } else {
         $recordModel = Settings_Webforms_Record_Model::getCleanInstance($qualifiedModuleName);
     }
     $viewer->assign('MODE', $mode);
     $viewer->assign('SOURCE_MODULE', $sourceModule);
     $viewer->assign('MODULE', $qualifiedModuleName);
     $viewer->assign('SELECTED_FIELD_MODELS_LIST', $selectedFieldsList);
     $viewer->assign('ALL_FIELD_MODELS_LIST', $recordModel->getAllFieldsList($sourceModule));
     $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
     $viewer->view('FieldsEditView.tpl', $qualifiedModuleName);
 }
	public function process(Vtiger_Request $request)
	{
		$qualifiedModuleName = $request->getModule(false);
		$moduleModel = Settings_Vtiger_CompanyDetails_Model::getInstance();
		$status = false;

		if ($request->get('organizationname')) {
			$saveLogo = $status = true;
			if (!empty($_FILES['logo']['name'])) {
				$logoDetails = $_FILES['logo'];
				$fileType = explode('/', $logoDetails['type']);
				$fileType = $fileType[1];

				if (!$logoDetails['size'] || !in_array($fileType, Settings_Vtiger_CompanyDetails_Model::$logoSupportedFormats)) {
					$saveLogo = false;
				}

				//mime type check 
				$mimeType = Vtiger_Functions::getMimeContentType($logoDetails['tmp_name']);
				$mimeTypeContents = explode('/', $mimeType);
				if (!$logoDetails['size'] || $mimeTypeContents[0] != 'image' || !in_array($mimeTypeContents[1], Settings_Vtiger_CompanyDetails_Model::$logoSupportedFormats)) {
					$saveLogo = false;
				}

				// Check for php code injection
				$imageContents = file_get_contents($_FILES["logo"]["tmp_name"]);
				if (preg_match('/(<\?php?(.*?))/i', $imageContents) == 1) {
					$saveLogo = false;
				}
				if ($saveLogo) {
					$moduleModel->saveLogo();
				}
			} else {
				$saveLogo = true;
			}
			$fields = $moduleModel->getFields();
			foreach ($fields as $fieldName => $fieldType) {
				$fieldValue = $request->get($fieldName);
				if ($fieldName === 'logoname') {
					if (!empty($logoDetails['name'])) {
						$fieldValue = ltrim(basename(" " . $logoDetails['name']));
					} else {
						$fieldValue = $moduleModel->get($fieldName);
					}
				}
				$moduleModel->set($fieldName, $fieldValue);
			}
			$moduleModel->save();
		}

		$reloadUrl = $moduleModel->getIndexViewUrl();
		if ($saveLogo && $status) {
			
		} else if (!$saveLogo) {
			$reloadUrl .= '&error=LBL_INVALID_IMAGE';
		} else {
			$reloadUrl = $moduleModel->getEditViewUrl() . '&error=LBL_FIELDS_INFO_IS_EMPTY';
		}
		header('Location: ' . $reloadUrl);
	}
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $recordId = $request->get('record');
     $currencyName = $request->get('currency');
     if (!empty($recordId)) {
         $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName);
         $priceDetails = $recordModel->getPriceDetails();
     } else {
         $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
         $priceDetails = $recordModel->getPriceDetails();
         foreach ($priceDetails as $key => $currencyDetails) {
             if ($currencyDetails['curname'] === $currencyName) {
                 $baseCurrencyConversionRate = $currencyDetails['conversionrate'];
                 break;
             }
         }
         foreach ($priceDetails as $key => $currencyDetails) {
             if ($currencyDetails['curname'] === $currencyName) {
                 $currencyDetails['conversionrate'] = 1;
                 $currencyDetails['is_basecurrency'] = 1;
             } else {
                 $currencyDetails['conversionrate'] = $currencyDetails['conversionrate'] / $baseCurrencyConversionRate;
                 $currencyDetails['is_basecurrency'] = 0;
             }
             $priceDetails[$key] = $currencyDetails;
         }
     }
     $viewer = $this->getViewer($request);
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('PRICE_DETAILS', $priceDetails);
     $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
     $viewer->view('MoreCurrenciesList.tpl', 'Products');
 }
 public function process(Vtiger_Request $request)
 {
     $recordId = $request->get('record');
     $qualifiedModuleName = $request->getModule(false);
     if ($recordId) {
         $recordModel = Settings_MailConverter_Record_Model::getInstanceById($recordId);
     } else {
         $recordModel = Settings_MailConverter_Record_Model::getCleanInstance();
     }
     $recordModel->set('scannerOldName', $request->get('scannerOldName'));
     $fieldsList = $recordModel->getModule()->getFields();
     foreach ($fieldsList as $fieldName => $fieldModel) {
         $recordModel->set($fieldName, $request->get($fieldName));
     }
     $status = $recordModel->save();
     $response = new Vtiger_Response();
     if ($status) {
         $result = array('message' => vtranslate('LBL_SAVED_SUCCESSFULLY', $qualifiedModuleName));
         $result['id'] = $recordModel->getId();
         $response->setResult($result);
     } else {
         $response->setError(vtranslate('LBL_CONNECTION_TO_MAILBOX_FAILED', $qualifiedModuleName));
     }
     $response->emit();
 }
Example #6
0
 public function process(Vtiger_Request $request)
 {
     $db = PearDatabase::getInstance();
     $qualifiedModuleName = $request->getModule(false);
     $moduleName = $request->getModule();
     $baseModule = $request->get('base_module');
     $tpl_id = $request->get('tpl_id');
     if ($request->get('s') == '' || $request->get('s') == 'true') {
         $summary = $request->get('summary');
         $conditionAll = $request->getRaw('condition_all_json');
         $conditionOption = $request->getRaw('condition_option_json');
         if ($tpl_id != '') {
             $insertBaseRecord = "UPDATE vtiger_dataaccess SET module_name = ?, summary = ?  WHERE dataaccessid = ?";
             $db->pquery($insertBaseRecord, array($baseModule, $summary, $tpl_id), true);
             Settings_DataAccess_Module_Model::updateConditions($conditionAll, $tpl_id);
             Settings_DataAccess_Module_Model::updateConditions($conditionOption, $tpl_id, FALSE);
         } else {
             $insertBaseRecord = "INSERT INTO vtiger_dataaccess (module_name,summary) VALUES(?,?)";
             $db->pquery($insertBaseRecord, array($baseModule, $summary), true);
             $tpl_id = $db->getLastInsertID();
             Settings_DataAccess_Module_Model::addConditions($conditionAll, $tpl_id);
             Settings_DataAccess_Module_Model::addConditions($conditionOption, $tpl_id, FALSE);
         }
     }
     $DataAccess = Settings_DataAccess_Module_Model::getDataAccessInfo($tpl_id, false);
     $viewer = $this->getViewer($request);
     $viewer->assign('STEP', 3);
     $viewer->assign('TPL_ID', $tpl_id);
     $viewer->assign('MODULE_NAME', $moduleName);
     $viewer->assign('REQUEST', $request);
     $viewer->assign('BASE_MODULE', $baseModule);
     $viewer->assign('ACTIONS_SELECTED', $DataAccess['basic_info']['data']);
     $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
     echo $viewer->view('Step3.tpl', $qualifiedModuleName, true);
 }
Example #7
0
 /**
  * Function exports report in a CSV file
  * @param Vtiger_Request $request
  */
 function GetCSV(Vtiger_Request $request)
 {
     $recordId = $request->get('record');
     $reportModel = Reports_Record_Model::getInstanceById($recordId);
     $reportModel->set('advancedFilter', $request->get('advanced_filter'));
     $reportModel->getReportCSV();
 }
Example #8
0
 public function process(Vtiger_Request $request)
 {
     $recordId = $request->get('record');
     $modules = $request->get('modules');
     $assignId = $request->get('assigned_user_id');
     $currentUser = Users_Record_Model::getCurrentUserModel();
     $entityValues = array();
     $entityValues['transferRelatedRecordsTo'] = $request->get('transferModule');
     //■権限なぜか、エラーになるので権限を固定するinouchi
     //$entityValues['assignedTo'] = vtws_getWebserviceEntityId(vtws_getOwnerType($assignId), $assignId);
     $entityValues['assignedTo'] = vtws_getWebserviceEntityId(vtws_getOwnerType(1), 1);
     $entityValues['leadId'] = vtws_getWebserviceEntityId($request->getModule(), $recordId);
     $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $request->getModule());
     $convertLeadFields = $recordModel->getConvertLeadFields();
     $availableModules = array('Accounts', 'Contacts', 'Potentials');
     foreach ($availableModules as $module) {
         if (vtlib_isModuleActive($module) && in_array($module, $modules)) {
             $entityValues['entities'][$module]['create'] = true;
             $entityValues['entities'][$module]['name'] = $module;
             foreach ($convertLeadFields[$module] as $fieldModel) {
                 $fieldName = $fieldModel->getName();
                 $fieldValue = $request->get($fieldName);
                 //Potential Amount Field value converting into DB format
                 if ($fieldModel->getFieldDataType() === 'currency') {
                     $fieldValue = Vtiger_Currency_UIType::convertToDBFormat($fieldValue);
                 } elseif ($fieldModel->getFieldDataType() === 'date') {
                     $fieldValue = DateTimeField::convertToDBFormat($fieldValue);
                 } elseif ($fieldModel->getFieldDataType() === 'reference' && $fieldValue) {
                     $ids = vtws_getIdComponents($fieldValue);
                     if (count($ids) === 1) {
                         $fieldValue = vtws_getWebserviceEntityId(getSalesEntityType($fieldValue), $fieldValue);
                     }
                 }
                 $entityValues['entities'][$module][$fieldName] = $fieldValue;
             }
         }
     }
     try {
         $result = vtws_convertlead($entityValues, $currentUser);
     } catch (Exception $e) {
         $this->showError($request, $e);
         exit;
     }
     if (!empty($result['Accounts'])) {
         $accountIdComponents = vtws_getIdComponents($result['Accounts']);
         $accountId = $accountIdComponents[1];
     }
     if (!empty($result['Contacts'])) {
         $contactIdComponents = vtws_getIdComponents($result['Contacts']);
         $contactId = $contactIdComponents[1];
     }
     if (!empty($accountId)) {
         header("Location: index.php?view=Detail&module=Accounts&record={$accountId}");
     } elseif (!empty($contactId)) {
         header("Location: index.php?view=Detail&module=Contacts&record={$contactId}");
     } else {
         $this->showError($request);
         exit;
     }
 }
 function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $records = $request->get('records');
     $template = $request->get('template');
     $targetModuleName = $request->get('target');
     $method = $request->get('method');
     $success = [];
     if (!empty($template)) {
         $templateRecord = Vtiger_MappedFields_Model::getInstanceById($template);
         foreach ($records as $recordId) {
             if ($templateRecord->checkFiltersForRecord(intval($recordId))) {
                 if ($method == 0) {
                     $recordModel = Vtiger_Record_Model::getCleanInstance($targetModuleName);
                     $parentRecordModel = Vtiger_Record_Model::getInstanceById($recordId);
                     $recordModel->setRecordFieldValues($parentRecordModel);
                     if ($this->checkMandatoryFields($recordModel)) {
                         continue;
                     }
                     // TODO Add saving fields that exist in  advanced module
                     $recordModel->save();
                     if (isRecordExists($recordModel->getId())) {
                         $success[] = $recordId;
                     }
                 } else {
                     $success[] = $recordId;
                 }
             }
         }
     }
     $output = ['all' => count($records), 'ok' => $success, 'fail' => array_diff($records, $success)];
     $response = new Vtiger_Response();
     $response->setResult($output);
     $response->emit();
 }
Example #10
0
 function process(Vtiger_Request $request)
 {
     $username = $request->get('username');
     $password = $request->get('password');
     $user = CRMEntity::getInstance('Users');
     $user->column_fields['user_name'] = $username;
     if ($user->doLogin($password)) {
         $userid = $user->retrieve_user_id($username);
         Vtiger_Session::set('AUTHUSERID', $userid);
         // For Backward compatability
         // TODO Remove when switch-to-old look is not needed
         $_SESSION['authenticated_user_id'] = $userid;
         $_SESSION['app_unique_key'] = vglobal('application_unique_key');
         $_SESSION['authenticated_user_language'] = vglobal('default_language');
         //Enabled session variable for KCFINDER
         $_SESSION['KCFINDER'] = array();
         $_SESSION['KCFINDER']['disabled'] = false;
         $_SESSION['KCFINDER']['uploadURL'] = "test/upload";
         $_SESSION['KCFINDER']['uploadDir'] = "test/upload";
         $deniedExts = implode(" ", vglobal('upload_badext'));
         $_SESSION['KCFINDER']['deniedExts'] = $deniedExts;
         // End
         //Track the login History
         $moduleModel = Users_Module_Model::getInstance('Users');
         $moduleModel->saveLoginHistory($user->column_fields['user_name']);
         //End
         header('Location: index.php?module=Users&parent=Settings&view=SystemSetup');
         exit;
     } else {
         header('Location: index.php?module=Users&parent=Settings&view=Login&error=1');
         exit;
     }
 }
Example #11
0
 /**
  * Function to get activities
  * @param Vtiger_Request $request
  * @return <List of activity models>
  */
 public function getActivities(Vtiger_Request $request)
 {
     $moduleName = 'Calendar';
     $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
     $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
     if ($currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) {
         $moduleName = $request->getModule();
         $recordId = $request->get('record');
         $pageNumber = $request->get('page');
         if (empty($pageNumber)) {
             $pageNumber = 1;
         }
         $pagingModel = new Vtiger_Paging_Model();
         $pagingModel->set('page', $pageNumber);
         $pagingModel->set('limit', 10);
         if (!$this->record) {
             $this->record = Vtiger_DetailView_Model::getInstance($moduleName, $recordId);
         }
         $recordModel = $this->record->getRecord();
         $moduleModel = $recordModel->getModule();
         $relatedActivities = $moduleModel->getCalendarActivities('', $pagingModel, 'all', $recordId);
         $viewer = $this->getViewer($request);
         $viewer->assign('RECORD', $recordModel);
         $viewer->assign('MODULE_NAME', $moduleName);
         $viewer->assign('PAGING_MODEL', $pagingModel);
         $viewer->assign('PAGE_NUMBER', $pageNumber);
         $viewer->assign('ACTIVITIES', $relatedActivities);
         return $viewer->view('RelatedActivities.tpl', $moduleName, true);
     }
 }
Example #12
0
 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');
     } else {
         $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
         $modelData = $recordModel->getData();
         $recordModel->set('mode', '');
     }
     $fieldModelList = $moduleModel->getFields();
     foreach ($fieldModelList as $fieldName => $fieldModel) {
         if (in_array($fieldName, array('header_content', 'content', 'footer_content'))) {
             $fieldValue = $request->getRaw($fieldName, null);
         } else {
             $fieldValue = $request->get($fieldName, null);
         }
         $fieldDataType = $fieldModel->getFieldDataType();
         if ($fieldDataType == 'time') {
             $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue);
         }
         if ($fieldValue !== null) {
             if (!is_array($fieldValue)) {
                 $fieldValue = trim($fieldValue);
             }
             $recordModel->set($fieldName, $fieldValue);
         }
     }
     return $recordModel;
 }
Example #13
0
 function process(Vtiger_Request $request)
 {
     $log = vglobal('log');
     $log->debug('Entering ' . __CLASS__ . '::' . __METHOD__ . '() method ...');
     $moduleName = $request->getModule();
     $recordId = $request->get('record');
     $view = $request->get('fromview');
     $viewer = $this->getViewer($request);
     $handlerClass = Vtiger_Loader::getComponentClassName('Model', 'MappedFields', $moduleName);
     $mfModel = new $handlerClass();
     if ($view == 'List') {
         $allRecords = Vtiger_Mass_Action::getRecordsListFromRequest($request);
         $templates = $mfModel->getActiveTemplatesForModule($moduleName, $view);
         $viewer->assign('ALL_RECORDS', $allRecords);
     } else {
         $templates = $mfModel->getActiveTemplatesForRecord($recordId, $view, $moduleName);
         $viewer->assign('RECORD', $recordId);
     }
     $viewer->assign('TEMPLATES', $templates);
     $viewer->assign('VIEW', $view);
     $viewer->assign('MODULE_NAME', $moduleName);
     $viewer->assign('BASE_MODULE_NAME', 'Vtiger');
     $this->preProcess($request);
     $viewer->view('GenerateModal.tpl', $qualifiedModule);
     $this->postProcess($request);
     $log->debug('Exiting ' . __CLASS__ . '::' . __METHOD__ . ' method ...');
 }
Example #14
0
 public function deleteRecords(Vtiger_Request $request) {
     $searchValue = $request->get('search_value');
     $selectedIds = $request->get('selected_ids');
     $excludedIds = $request->get('excluded_ids');
     
     $db = PearDatabase::getInstance();
     
     $query = 'DELETE FROM vtiger_portal';
     $params = array();
     
     if(!empty($selectedIds) && $selectedIds != 'all' && count($selectedIds) > 0) {
         $query .= " WHERE portalid IN (".generateQuestionMarks($selectedIds).")";
         $params = $selectedIds;
     } else if($selectedIds == 'all') {
         if(empty($searchValue) && count($excludedIds) > 0) {
             $query .= " WHERE portalid NOT IN (".generateQuestionMarks($excludedIds).")";
             $params = $excludedIds;
         } else if(!empty($searchValue) && count($excludedIds) < 1) {
             $query .= " WHERE portalname LIKE '%".$searchValue."%'";
         } else if(!empty($searchValue) && count($excludedIds) > 0) {
             $query .= " WHERE portalname LIKE '%".$searchValue."%' AND portalid NOT IN (".generateQuestionMarks($excludedIds).")";
             $params = $excludedIds;
         }
     }
     $db->pquery($query, $params);
 }
Example #15
0
 public function changePassword($request)
 {
     $request = new Vtiger_Request($request);
     $viewer = Vtiger_Viewer::getInstance();
     $userName = $request->get('username');
     $newPassword = $request->get('password');
     $confirmPassword = $request->get('confirmPassword');
     $shortURLID = $request->get('shorturl_id');
     $secretHash = $request->get('secret_hash');
     $shortURLModel = Vtiger_ShortURL_Helper::getInstance($shortURLID);
     $secretToken = $shortURLModel->handler_data['secret_token'];
     $validateData = array('username' => $userName, 'secret_token' => $secretToken, 'secret_hash' => $secretHash);
     $valid = $shortURLModel->compareEquals($validateData);
     if ($valid) {
         $userId = getUserId_Ol($userName);
         $user = Users::getActiveAdminUser();
         $wsUserId = vtws_getWebserviceEntityId('Users', $userId);
         vtws_changePassword($wsUserId, '', $newPassword, $confirmPassword, $user);
     } else {
         $viewer->assign('ERROR', true);
     }
     $shortURLModel->delete();
     $viewer->assign('USERNAME', $userName);
     $viewer->assign('PASSWORD', $newPassword);
     $viewer->view('FPLogin.tpl', 'Users');
 }
Example #16
0
 /**
  * Function to get the record model based on the request parameters
  * @param Vtiger_Request $request
  * @return Vtiger_Record_Model or Module specific Record Model instance
  */
 public function getRecordModelFromRequest(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $recordId = $request->get('record');
     if (!empty($recordId)) {
         $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName);
         $recordModel->set('id', $recordId);
         $recordModel->set('mode', 'edit');
         $fieldModelList = $recordModel->getModule()->getFields();
         foreach ($fieldModelList as $fieldName => $fieldModel) {
             //For not converting craetedtime and modified time to user format
             $uiType = $fieldModel->get('uitype');
             if ($uiType == 70) {
                 $fieldValue = $recordModel->get($fieldName);
             } elseif (in_array($uiType, [71, 72])) {
                 // currency ui types
                 $fieldValue = $recordModel->get($fieldName);
             } else {
                 $fieldValue = $fieldModel->getUITypeModel()->getUserRequestValue($recordModel->get($fieldName), $recordId);
             }
             if ($fieldName === $request->get('field')) {
                 $fieldValue = $request->get('value');
             }
             $fieldDataType = $fieldModel->getFieldDataType();
             if ($fieldDataType == 'time') {
                 $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue);
             }
             if ($fieldValue !== null) {
                 if (!is_array($fieldValue)) {
                     $fieldValue = trim($fieldValue);
                 }
                 $recordModel->set($fieldName, $fieldValue);
             }
             $recordModel->set($fieldName, $fieldValue);
         }
     } else {
         $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
         $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
         $recordModel->set('mode', '');
         $fieldModelList = $moduleModel->getFields();
         foreach ($fieldModelList as $fieldName => $fieldModel) {
             if ($request->has($fieldName)) {
                 $fieldValue = $request->get($fieldName, null);
             } else {
                 $fieldValue = $fieldModel->getDefaultFieldValue();
             }
             $fieldDataType = $fieldModel->getFieldDataType();
             if ($fieldDataType == 'time') {
                 $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue);
             }
             if ($fieldValue !== null) {
                 if (!is_array($fieldValue)) {
                     $fieldValue = trim($fieldValue);
                 }
                 $recordModel->set($fieldName, $fieldValue);
             }
         }
     }
     return $recordModel;
 }
Example #17
0
 public function updateUserModuleStep3(Vtiger_Request $request)
 {
     $importModuleName = $request->get('module_import_name');
     $uploadFile = $request->get('module_import_file');
     $uploadDir = Settings_ModuleManager_Extension_Model::getUploadDirectory();
     $uploadFileName = "{$uploadDir}/{$uploadFile}";
     checkFileAccess($uploadFileName);
     $importType = $request->get('module_import_type');
     if (strtolower($importType) == 'language') {
         $package = new Vtiger_Language();
     } else {
         if (strtolower($importType) == 'layout') {
             $package = new Vtiger_Layout();
         } else {
             $package = new Vtiger_Package();
         }
     }
     if (strtolower($importType) == 'language' || strtolower($importType) == 'layout') {
         $package->import($uploadFileName);
     } else {
         $package->update(Vtiger_Module::getInstance($importModuleName), $uploadFileName);
     }
     checkFileAccessForDeletion($uploadFileName);
     unlink($uploadFileName);
     $result = array('success' => true, 'importModuleName' => $importModuleName);
     $response = new Vtiger_Response();
     $response->setResult($result);
     $response->emit();
 }
Example #18
0
 function process(Vtiger_Request $request)
 {
     $currentUser = Users_Record_Model::getCurrentUserModel();
     $moduleName = $request->getModule();
     $componentName = $request->get('name');
     $linkId = $request->get('linkid');
     if (!empty($componentName)) {
         $className = Vtiger_Loader::getComponentClassName('Dashboard', $componentName, $moduleName);
         if (!empty($className)) {
             $widget = NULL;
             if (!empty($linkId)) {
                 $widget = new Vtiger_Widget_Model();
                 $widget->set('linkid', $linkId);
                 $widget->set('userid', $currentUser->getId());
                 $widget->set('filterid', $request->get('filterid', NULL));
                 if ($request->has('data')) {
                     $widget->set('data', $request->get('data'));
                 }
                 $widget->add();
             }
             $classInstance = new $className();
             $classInstance->process($request, $widget);
             return;
         }
     }
     $response = new Vtiger_Response();
     $response->setResult(array('success' => false, 'message' => vtranslate('NO_DATA')));
     $response->emit();
 }
Example #19
0
 function process(Vtiger_Request $request)
 {
     $branches = $request->get('branches');
     $filter = $request->get('filter');
     if (empty($branches)) {
         return;
     }
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
     $treeViewModel = Vtiger_TreeView_Model::getInstance($moduleModel);
     $pagingModel = new Vtiger_Paging_Model();
     $pagingModel->set('limit', 'no_limit');
     $listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $filter);
     $listViewModel->set('search_params', $treeViewModel->getSearchParams($branches));
     $listEntries = $listViewModel->getListViewEntries($pagingModel, true);
     if (count($listEntries) === 0) {
         return;
     }
     $listHeaders = $listViewModel->getListViewHeaders();
     $viewer->assign('ENTRIES', $listEntries);
     $viewer->assign('HEADERS', $listHeaders);
     $viewer->assign('MODULE', $moduleName);
     $viewer->view('TreeRecords.tpl', $moduleName);
 }
 public function showAccountsList(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $selected = $request->get('selected');
     $sourceModule = $request->get('selectedModule');
     $filter = $request->get('selectedFilter');
     $records = [];
     if (empty($selected)) {
         return;
     }
     $multiReferenceFirld = Vtiger_MultiReferenceValue_UIType::getFieldsByModules($moduleName, $sourceModule);
     if (count($multiReferenceFirld) === 0) {
         return;
     }
     $multiReferenceFirld = reset($multiReferenceFirld);
     //var_dump($multiReferenceFirld);
     $searchParams = [['columns' => [['columnname' => $multiReferenceFirld['tablename'] . ':' . $multiReferenceFirld['columnname'] . ':' . $multiReferenceFirld['fieldname'], 'value' => implode(',', $selected), 'column_condition' => '', 'comparator' => 'c']]]];
     $pagingModel = new Vtiger_Paging_Model();
     $pagingModel->set('limit', 'no_limit');
     $listViewModel = Vtiger_ListView_Model::getInstance('Accounts', $filter);
     $listViewModel->set('search_key', $multiReferenceFirld['fieldname']);
     $listViewModel->set('search_params', $searchParams);
     $listEntries = $listViewModel->getListViewEntries($pagingModel, true);
     if (count($listEntries) === 0) {
         return;
     }
     $listHeaders = $listViewModel->getListViewHeaders();
     $viewer = $this->getViewer($request);
     $viewer->assign('ENTRIES', $listEntries);
     $viewer->assign('HEADERS', $listHeaders);
     $viewer->assign('MODULE', $moduleName);
     $viewer->view('AccountsList.tpl', $moduleName);
 }
Example #21
0
 public function process(Vtiger_Request $request)
 {
     $moduleSettingsName = $request->getModule(false);
     $moduleName = $request->getModule();
     $paymentsIn = array();
     $record = Vtiger_Record_Model::getCleanInstance($moduleName);
     $type = $request->get('type');
     $bank = $request->get('bank');
     $this->saveFile($_FILES);
     $recordParse = $record->getSummary($type, $bank, $_FILES["file"]["name"]);
     // only incomming records (C)
     $i = 0;
     $j = array();
     foreach ($recordParse->operations as $transfers) {
         foreach ($transfers as $key => $value) {
             if ($key == 'indicator' && $value == 'C') {
                 $paymentsIn[] = $transfers;
             }
             if ($key == 'third_letter_currency_code') {
                 $j[] = $i;
             }
         }
         $i++;
     }
     $json = json_encode($paymentsIn);
     $viewer = $this->getViewer($request);
     $viewer->assign('MODULENAME', $moduleName);
     $viewer->assign('PAYMENTSIN', $paymentsIn);
     $viewer->assign('COUNT', count($paymentsIn));
     $viewer->assign('JSON', $json);
     echo $viewer->view('step1.tpl', $moduleSettingsName, true);
 }
Example #22
0
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
     if ($request->get('selected_ids') == 'all' && $request->get('mode') == 'FindDuplicates') {
         $recordIds = Vtiger_FindDuplicate_Model::getMassDeleteRecords($request);
     } else {
         $recordIds = $this->getRecordsListFromRequest($request);
     }
     foreach ($recordIds as $recordId) {
         if (Users_Privileges_Model::isPermitted($moduleName, 'Delete', $recordId)) {
             $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleModel);
             $recordModel->delete();
         } else {
             $permission = 'No';
         }
     }
     if ($permission === 'No') {
         throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
     }
     $cvId = $request->get('viewname');
     $response = new Vtiger_Response();
     $response->setResult(array('viewname' => $cvId, 'module' => $moduleName));
     $response->emit();
 }
Example #23
0
 /**
  * Save date
  * @param <Object> $request
  * @return true if saved, false otherwise
  */
 public function save(Vtiger_Request $request)
 {
     $response = new Vtiger_Response();
     $moduleName = 'Settings:' . $request->getModule();
     try {
         $id = $request->get('holidayId');
         $date = DateTimeField::convertToDBFormat($request->get('holidayDate'));
         $name = $request->get('holidayName');
         $type = $request->get('holidayType');
         if (empty($name) || empty($date)) {
             $response->setResult(array('success' => false, 'message' => vtranslate('LBL_FILL_FORM_ERROR', $moduleName)));
         } else {
             if (!empty($id)) {
                 if (Settings_PublicHoliday_Module_Model::edit($id, $date, $name, $type)) {
                     $response->setResult(array('success' => true, 'message' => vtranslate('LBL_EDIT_DATE_OK', $moduleName)));
                 } else {
                     $response->setResult(array('success' => false, 'message' => vtranslate('LBL_EDIT_DATE_ERROR', $moduleName)));
                 }
             } else {
                 if (Settings_PublicHoliday_Module_Model::save($date, $name, $type)) {
                     $response->setResult(array('success' => true, 'message' => vtranslate('LBL_NEW_DATE_OK', $moduleName)));
                 } else {
                     $response->setResult(array('success' => false, 'message' => vtranslate('LBL_NEW_DATE_ERROR', $moduleName)));
                 }
             }
         }
     } catch (Exception $e) {
         $response->setError($e->getCode(), $e->getMessage());
     }
     $response->emit();
 }
 function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
     $records = $request->get('records');
     $primaryRecord = $request->get('primaryRecord');
     $primaryRecordModel = Vtiger_Record_Model::getInstanceById($primaryRecord, $moduleName);
     $fields = $moduleModel->getFields();
     foreach ($fields as $field) {
         $fieldValue = $request->get($field->getName());
         if ($field->isEditable()) {
             $primaryRecordModel->set($field->getName(), $fieldValue);
         }
     }
     $primaryRecordModel->set('mode', 'edit');
     $primaryRecordModel->save();
     $deleteRecords = array_diff($records, array($primaryRecord));
     foreach ($deleteRecords as $deleteRecord) {
         $recordPermission = Users_Privileges_Model::isPermitted($moduleName, 'Delete', $deleteRecord);
         if ($recordPermission) {
             $primaryRecordModel->transferRelationInfoOfRecords(array($deleteRecord));
             $record = Vtiger_Record_Model::getInstanceById($deleteRecord);
             $record->delete();
         }
     }
     $response = new Vtiger_Response();
     $response->setResult(true);
     $response->emit();
 }
Example #25
0
 public function process(Vtiger_Request $request)
 {
     $moduleSettingsName = $request->getModule(false);
     $moduleName = $request->getModule();
     $baseModule = $request->get('module_name');
     $idTpl = $request->get('tpl_id');
     $viewer = $this->getViewer($request);
     if ($idTpl) {
         $docInfo = Settings_OSSDocumentControl_Module_Model::getDocInfo($idTpl);
         $viewer->assign('BASE_INFO', $docInfo['basic_info']);
         //var_dump($docInfo['required_conditions']);
         for ($i = 0; $i < count($docInfo['required_conditions']); $i++) {
             $fieldModel = Vtiger_Field_Model::getInstance($docInfo['required_conditions'][$i]['fieldname'], Vtiger_Module_Model::getInstance($baseModule));
             $docInfo['required_conditions'][$i]['info'] = $fieldModel->getFieldInfo();
         }
         $viewer->assign('REQUIRED_CONDITIONS', $docInfo['required_conditions']);
         for ($i = 0; $i < count($docInfo['optional_conditions']); $i++) {
             $fieldModel = Vtiger_Field_Model::getInstance($docInfo['optional_conditions'][$i]['fieldname'], Vtiger_Module_Model::getInstance($baseModule));
             $docInfo['optional_conditions'][$i]['info'] = $fieldModel->getFieldInfo();
         }
         $viewer->assign('OPTIONAL_CONDITIONS', $docInfo['optional_conditions']);
         $viewer->assign('TPL_ID', $idTpl);
         //$fieldModel = Vtiger_Field_Model::getInstance($value->get('name'), $baseModuleModel);
     }
     $viewer->assign('MODULE_NAME', $moduleName);
     $viewer->assign('SUMMARY', $request->get('summary'));
     $viewer->assign('BASE_MODULE', $baseModule);
     $viewer->assign('QUALIFIED_MODULE', $moduleSettingsName);
     $viewer->assign('FIELD_LIST', Settings_OSSDocumentControl_Module_Model::getListBaseModuleField($baseModule));
     //$viewer->assign('FOLDER_LIST', Documents_Module_Model::getAllFolders());
     $viewer->assign('CONDITION_BY_TYPE', Settings_OSSDocumentControl_Module_Model::getConditionByType());
     echo $viewer->view('Edit2.tpl', $moduleSettingsName, true);
 }
Example #26
0
 public function process(Vtiger_Request $request)
 {
     $tpl_id = $request->get('tpl_id');
     $base_module = $request->get('base_module');
     Settings_DataAccess_Module_Model::saveActionConfig($tpl_id, $request->get('actions_list'), array());
     header("Location: index.php?module=DataAccess&parent=Settings&view=Step3&tpl_id={$tpl_id}&base_module={$base_module}&s=false");
 }
Example #27
0
 public function requestForgotPassword($request)
 {
     $request = new Vtiger_Request($request);
     $adb = PearDatabase::getInstance();
     $username = vtlib_purify($request->get('user_name'));
     $result = $adb->pquery('select id,email1 from vtiger_users where user_name = ? ', array($username));
     if ($adb->num_rows($result) > 0) {
         $email = $adb->query_result($result, 0, 'email1');
     }
     if (strcasecmp($request->get('emailId'), $email) === 0) {
         $userId = $adb->query_result($result, 0, 'id');
         $time = time();
         $options = array('handler_path' => 'modules/Users/handlers/ForgotPassword.php', 'handler_class' => 'Users_ForgotPassword_Handler', 'handler_function' => 'changePassword', 'handler_data' => array('username' => $username, 'email' => $email, 'time' => $time, 'hash' => md5($username . $time)));
         $trackURL = Vtiger_ShortURL_Helper::generateURL($options);
         $data = ['sysname' => 'UsersForgotPassword', 'to_email' => $email, 'module' => 'Users', 'record' => $userId, 'trackURL' => $trackURL];
         $recordModel = Vtiger_Record_Model::getCleanInstance('OSSMailTemplates');
         $status = $recordModel->sendMailFromTemplate($data);
         $site_URL = vglobal('site_URL') . 'index.php?modules=Users&view=Login';
         if ($status === 1) {
             header('Location:  ' . $site_URL . '&status=1');
         } else {
             header('Location:  ' . $site_URL . '&statusError=1');
         }
     } else {
         $site_URL = vglobal('site_URL') . 'index.php?modules=Users&view=Login';
         header('Location:  ' . $site_URL . '&fpError=1');
     }
 }
Example #28
0
 public function process(Vtiger_Request $request)
 {
     $recordId = $request->get('record');
     $qualifiedModuleName = $request->getModule(false);
     if ($recordId) {
         $recordModel = Settings_Webforms_Record_Model::getInstanceById($recordId, $qualifiedModuleName);
         $recordModel->set('mode', 'edit');
     } else {
         $recordModel = Settings_Webforms_Record_Model::getCleanInstance($qualifiedModuleName);
         $recordModel->set('mode', '');
     }
     $fieldsList = $recordModel->getModule()->getFields();
     foreach ($fieldsList as $fieldName => $fieldModel) {
         $fieldValue = $request->get($fieldName);
         if (!$fieldValue) {
             $fieldValue = $fieldModel->get('defaultvalue');
         }
         $recordModel->set($fieldName, $fieldValue);
     }
     $returnUrl = $recordModel->getModule()->getListViewUrl();
     $recordModel->set('selectedFieldsData', $request->get('selectedFieldsData'));
     if (!$recordModel->checkDuplicate()) {
         $recordModel->save();
         $returnUrl = $recordModel->getDetailViewUrl();
     }
     header("Location: {$returnUrl}");
 }
Example #29
0
 public function process(Vtiger_Request $request)
 {
     $recordId = $request->get('record');
     $qualifiedModuleName = $request->getModule(false);
     $mode = '';
     $selectedFieldsList = $allFieldsList = array();
     if ($recordId) {
         $recordModel = Settings_Webforms_Record_Model::getInstanceById($recordId, $qualifiedModuleName);
         $selectedFieldsList = $recordModel->getSelectedFieldsList();
         $allFieldsList = $recordModel->getAllFieldsList();
         $sourceModule = $recordModel->get('targetmodule');
         $mode = 'edit';
     } else {
         $recordModel = Settings_Webforms_Record_Model::getCleanInstance($qualifiedModuleName);
         $sourceModule = $request->get('sourceModule');
         if (!$sourceModule) {
             $sourceModule = reset(array_keys(Settings_Webforms_Module_Model::getSupportedModulesList()));
         }
         $allFieldsList = $recordModel->getAllFieldsList($sourceModule);
     }
     $recordStructure = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDIT);
     $viewer = $this->getViewer($request);
     $viewer->assign('MODE', $mode);
     $viewer->assign('RECORD_ID', $recordId);
     $viewer->assign('RECORD_MODEL', $recordModel);
     $viewer->assign('MODULE', $qualifiedModuleName);
     $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
     $viewer->assign('SOURCE_MODULE', $sourceModule);
     $viewer->assign('ALL_FIELD_MODELS_LIST', $allFieldsList);
     $viewer->assign('SELECTED_FIELD_MODELS_LIST', $selectedFieldsList);
     $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructure);
     $viewer->assign('RECORD_STRUCTURE', $recordStructure->getStructure());
     $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
     $viewer->view('EditView.tpl', $qualifiedModuleName);
 }
Example #30
0
 public function process(Vtiger_Request $request)
 {
     $adb = PearDatabase::getInstance();
     $limit = 10;
     $allBackups = Settings_BackUp_Module_Model::getBackupCount();
     if ($request->get('page') != '') {
         $page = $request->get('page');
         $offset = ($page - 1) * $limit;
         if ($request->get('page') == 1) {
             $prevPage = 0;
         } else {
             $prevPage = 1;
         }
     } else {
         $page = 1;
         $offset = 0;
         $prevPage = 0;
     }
     $nextPage = 1;
     $allPages = ceil($allBackups / $limit);
     if ($allPages == $page || $allBackups <= $limit) {
         $nextPage = 0;
     }
     $backups = Settings_BackUp_Module_Model::getBackupList($offset, $limit);
     $result = array('prevPage' => $prevPage, 'nextPage' => $nextPage, 'offset' => $offset, 'allPages' => $allPages, 'page' => $page, 'backups' => $backups);
     if ($request->get('ajaxCall') === '') {
         $json = json_encode($result);
         return $json;
     }
     $response = new Vtiger_Response();
     $response->setResult($result);
     $response->emit();
 }