Ejemplo n.º 1
0
 public function process(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     $record = $request->get('record');
     $parentRoleId = $request->get('parent_roleid');
     $roleDirectlyRelated = false;
     if (!empty($record)) {
         $recordModel = Settings_Roles_Record_Model::getInstanceById($record);
         $viewer->assign('MODE', 'edit');
     } else {
         $recordModel = new Settings_Roles_Record_Model();
         $recordModel->setParent(Settings_Roles_Record_Model::getInstanceById($parentRoleId));
         $viewer->assign('MODE', '');
         $roleDirectlyRelated = true;
     }
     $profileId = $recordModel->getDirectlyRelatedProfileId();
     if ($profileId) {
         $viewer->assign('PROFILE_ID', $profileId);
         $roleDirectlyRelated = true;
     }
     $viewer->assign('PROFILE_DIRECTLY_RELATED_TO_ROLE', $roleDirectlyRelated);
     $viewer->assign('ALL_PROFILES', Settings_Profiles_Record_Model::getAll());
     $viewer->assign('ROLE_USERS', $recordModel->getUsers());
     $viewer->assign('RECORD_MODEL', $recordModel);
     $viewer->assign('RECORD_ID', $record);
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
     $viewer->view('EditView.tpl', $qualifiedModuleName);
 }
Ejemplo n.º 2
0
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     $recordId = $request->get('record');
     $roleName = $request->get('rolename');
     $allowassignedrecordsto = $request->get('allowassignedrecordsto');
     $moduleModel = Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName);
     if (!empty($recordId)) {
         $recordModel = Settings_Roles_Record_Model::getInstanceById($recordId);
     } else {
         $recordModel = new Settings_Roles_Record_Model();
     }
     if ($request->get('profile_directly_related_to_role') == '1') {
         $profileId = $request->get('profile_directly_related_to_role_id');
         $profileName = $request->get('profilename');
         if (empty($profileName)) {
             $profileName = $roleName . '+' . vtranslate('LBL_PROFILE', $qualifiedModuleName);
         }
         if ($profileId) {
             $profileRecordModel = Settings_Profiles_Record_Model::getInstanceById($profileId);
         } else {
             $profileRecordModel = Settings_Profiles_Record_Model::getInstanceByName($profileName, true);
             if (empty($profileRecordModel)) {
                 $profileRecordModel = new Settings_Profiles_Record_Model();
             }
         }
         $profileRecordModel->set('directly_related_to_role', '1');
         $profileRecordModel->set('profilename', $profileName)->set('profile_permissions', $request->get('permissions'));
         $profileRecordModel->set('viewall', $request->get('viewall'));
         $profileRecordModel->set('editall', $request->get('editall'));
         $savedProfileId = $profileRecordModel->save();
         $roleProfiles = array($savedProfileId);
     } else {
         $roleProfiles = $request->get('profiles');
     }
     $parentRoleId = $request->get('parent_roleid');
     if ($recordModel && !empty($parentRoleId)) {
         $parentRole = Settings_Roles_Record_Model::getInstanceById($parentRoleId);
         if (!empty($allowassignedrecordsto)) {
             $recordModel->set('allowassignedrecordsto', $allowassignedrecordsto);
         }
         // set the value of assigned records to
         if ($parentRole && !empty($roleName) && !empty($roleProfiles)) {
             $recordModel->set('rolename', $roleName);
             $recordModel->set('profileIds', $roleProfiles);
             $parentRole->addChildRole($recordModel);
         }
         //After role updation recreating user privilege files
         if ($roleProfiles) {
             foreach ($roleProfiles as $profileId) {
                 $profileRecordModel = Settings_Profiles_Record_Model::getInstanceById($profileId);
                 $profileRecordModel->recalculate(array($recordId));
             }
         }
     }
     $redirectUrl = $moduleModel->getDefaultUrl();
     header("Location: {$redirectUrl}");
 }
Ejemplo n.º 3
0
 /**
  * Function to get display value
  * @param <String> $value
  * @param <Number> $recordId
  * @return <String> display value
  */
 public function getDisplayValue($value, $recordId)
 {
     $displayValue = $this->getEditViewDisplayValue($value);
     $currentUserModel = Users_Record_Model::getCurrentUserModel();
     if ($currentUserModel->isAdminUser()) {
         $roleRecordModel = new Settings_Roles_Record_Model();
         $roleRecordModel->set('roleid', $value);
         return '<a href="' . $roleRecordModel->getEditViewUrl() . '">' . textlength_check($displayValue) . '</a>';
     }
     return $displayValue;
 }
Ejemplo n.º 4
0
	function process(Vtiger_Request $request)
	{
		$viewer = $this->getViewer($request);
		$moduleName = $request->getModule();
		$qualifiedModuleName = $request->getModule(false);

		$sourceRecord = $request->get('src_record');

		$companyDetails = Vtiger_CompanyDetails_Model::getInstanceById();
		$companyLogo = $companyDetails->getLogo();

		$sourceRole = Settings_Roles_Record_Model::getInstanceById($sourceRecord);
		$rootRole = Settings_Roles_Record_Model::getBaseRole();
		$allRoles = Settings_Roles_Record_Model::getAll();

		$viewer->assign('SOURCE_ROLE', $sourceRole);
		$viewer->assign('ROOT_ROLE', $rootRole);
		$viewer->assign('ROLES', $allRoles);
		$viewer->assign('VIEW', $request->get('view'));
		$viewer->assign('TYPE', $request->get('type'));
		$viewer->assign('MODULE_NAME', $moduleName);
		$viewer->assign('COMPANY_LOGO', $companyLogo);

		$viewer->view('Popup.tpl', $qualifiedModuleName);
	}
Ejemplo n.º 5
0
 public function process(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $qualifiedModuleName = $request->getModule(false);
     $rootRole = Settings_Roles_Record_Model::getBaseRole();
     $allRoles = Settings_Roles_Record_Model::getAll();
     $viewer->assign('ROOT_ROLE', $rootRole);
     $viewer->assign('ROLES', $allRoles);
     $viewer->view('Index.tpl', $qualifiedModuleName);
 }
Ejemplo n.º 6
0
 public function process(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     $recordId = $request->get('record');
     $recordModel = Settings_Roles_Record_Model::getInstanceById($recordId);
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
     $viewer->assign('RECORD_MODEL', $recordModel);
     echo $viewer->view('DeleteTransferForm.tpl', $qualifiedModuleName, true);
 }
Ejemplo n.º 7
0
 public function checkDuplicate(Vtiger_Request $request)
 {
     $roleName = $request->get('rolename');
     $recordId = $request->get('record');
     $recordModel = Settings_Roles_Record_Model::getInstanceByName($roleName, array($recordId));
     $response = new Vtiger_Response();
     if (!empty($recordModel)) {
         $response->setResult(array('success' => true, 'message' => vtranslate('LBL_DUPLICATES_EXIST', $request->getModule(false))));
     } else {
         $response->setResult(array('success' => false));
     }
     $response->emit();
 }
Ejemplo n.º 8
0
 /**
  * A function to generating menu files after deleting the module
  */
 static function generateMenuAfterModuleDelete()
 {
     self::log(__CLASS__ . '::' . __METHOD__ . ' | Start');
     $menuRecordModel = new Settings_Menu_Record_Model();
     $allRoles = Settings_Roles_Record_Model::getAll();
     $menuRecordModel->generateFileMenu(0);
     foreach ($allRoles as $role) {
         $roleId = str_replace('H', '', $role->getId());
         if (file_exists('user_privileges/menu_' . $roleId . '.php')) {
             $menuRecordModel->generateFileMenu($roleId);
         }
     }
     self::log(__CLASS__ . '::' . __METHOD__ . ' | End');
 }
Ejemplo n.º 9
0
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     $recordId = $request->get('record');
     $transferRecordId = $request->get('transfer_record');
     $moduleModel = Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName);
     $recordModel = Settings_Roles_Record_Model::getInstanceById($recordId);
     $transferToRole = Settings_Roles_Record_Model::getInstanceById($transferRecordId);
     if ($recordModel && $transferToRole) {
         $recordModel->delete($transferToRole);
     }
     $redirectUrl = $moduleModel->getDefaultUrl();
     header("Location: {$redirectUrl}");
 }
Ejemplo n.º 10
0
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $recordId = $request->get('record');
     $parentRoleId = $request->get('parent_roleid');
     $parentRole = Settings_Roles_Record_Model::getInstanceById($parentRoleId);
     $recordModel = Settings_Roles_Record_Model::getInstanceById($recordId);
     $response = new Vtiger_Response();
     $response->setEmitType(Vtiger_Response::$EMIT_JSON);
     try {
         $recordModel->moveTo($parentRole);
     } catch (AppException $e) {
         $response->setError('Move Role Failed');
     }
     $response->emit();
 }
Ejemplo n.º 11
0
 public function process(Vtiger_Request $request)
 {
     $log = vglobal('log');
     $log->debug("Entering Settings_WidgetsManagement_Configuration_View::process() method ...");
     $currentUser = Users_Record_Model::getCurrentUserModel();
     $sourceModule = $request->get('sourceModule');
     $dashboardModules = Settings_WidgetsManagement_Module_Model::getSelectableDashboard();
     if (empty($sourceModule)) {
         $sourceModule = 'Home';
     }
     $moduleName = $request->getModule();
     $viewer = $this->getViewer($request);
     // get widgets list
     $widgets = $dashboardModules[$sourceModule];
     $dashboardStored = Settings_WidgetsManagement_Module_Model::getDashboardForModule($sourceModule);
     $defaultValues = Settings_WidgetsManagement_Module_Model::getDefaultValues();
     $size = Settings_WidgetsManagement_Module_Model::getSize();
     $widgetsWithLimit = Settings_WidgetsManagement_Module_Model::getWidgetsWithLimit();
     $authorization = Settings_Roles_Record_Model::getAll();
     $bloks = Settings_WidgetsManagement_Module_Model::getBlocksId();
     $specialWidgets = Settings_WidgetsManagement_Module_Model::getSpecialWidgets($sourceModule);
     $filterSelect = Settings_WidgetsManagement_Module_Model::getFilterSelect();
     $filterSelectDefault = Settings_WidgetsManagement_Module_Model::getFilterSelectDefault();
     $widgetsWithFilterUsers = Settings_WidgetsManagement_Module_Model::getWidgetsWithFilterUsers();
     $restrictFilter = Settings_WidgetsManagement_Module_Model::getRestrictFilter();
     $viewer->assign('FILTER_SELECT', $filterSelect);
     $viewer->assign('FILTER_SELECT_DEFAULT', $filterSelectDefault);
     $viewer->assign('WIDGETS_WITH_FILTER_USERS', $widgetsWithFilterUsers);
     $viewer->assign('ALL_AUTHORIZATION', $authorization);
     $viewer->assign('SELECTED_MODULE_NAME', $sourceModule);
     $viewer->assign('SUPPORTED_MODULES', array_keys($dashboardModules));
     $viewer->assign('DASHBOARD_AUTHORIZATION_BLOCKS', $bloks[$sourceModule]);
     $viewer->assign('WIDGETS_AUTHORIZATION_INFO', $dashboardStored);
     $viewer->assign('SPECIAL_WIDGETS', $specialWidgets);
     $viewer->assign('CURRENTUSER', $currentUser);
     $viewer->assign('WIDGETS', $widgets);
     $viewer->assign('SIZE', $size);
     $viewer->assign('DEFAULTVALUES', $defaultValues);
     $viewer->assign('TITLE_OF_LIMIT', $widgetsWithLimit);
     $viewer->assign('QUALIFIED_MODULE', $request->getModule(false));
     $viewer->assign('RESTRICT_FILTER', $restrictFilter);
     echo $viewer->view('Configuration.tpl', $request->getModule(false), true);
     $log->debug("Exiting Settings_WidgetsManagement_Configuration_View::process() method ...");
 }
Ejemplo n.º 12
0
 function getGroupsList(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $currentUser = Users_Record_Model::getCurrentUserModel();
     $roleInstance = Settings_Roles_Record_Model::getInstanceById($currentUser->get('roleid'));
     $clendarallorecords = $roleInstance->get('clendarallorecords');
     switch ($clendarallorecords) {
         case 1:
             $groups = [];
             break;
         case 2:
         case 3:
         default:
             $groups = $currentUser->getAccessibleGroups();
             break;
     }
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('ALL_ACTIVEGROUP_LIST', $groups);
     $viewer->view('RightPanel.tpl', $moduleName);
 }
Ejemplo n.º 13
0
 public function process(Vtiger_Request $request)
 {
     $sourceModule = $request->get('source_module');
     $pickListSupportedModules = Settings_Picklist_Module_Model::getPicklistSupportedModules();
     if (empty($sourceModule)) {
         //take the first module as the source module
         $sourceModule = $pickListSupportedModules[0]->name;
     }
     $moduleModel = Settings_Picklist_Module_Model::getInstance($sourceModule);
     $viewer = $this->getViewer($request);
     $qualifiedName = $request->getModule(FALSE);
     $viewer->assign('PICKLIST_MODULES', $pickListSupportedModules);
     //TODO: see if you needs to optimize this , since its will gets all the fields and filter picklist fields
     $pickListFields = $moduleModel->getFieldsByType(array('picklist', 'multipicklist'));
     if (count($pickListFields) > 0) {
         $selectedPickListFieldModel = reset($pickListFields);
         $selectedFieldAllPickListValues = Vtiger_Util_Helper::getPickListValues($selectedPickListFieldModel->getName());
         $viewer->assign('PICKLIST_FIELDS', $pickListFields);
         $viewer->assign('SELECTED_PICKLIST_FIELDMODEL', $selectedPickListFieldModel);
         $viewer->assign('SELECTED_PICKLISTFIELD_ALL_VALUES', $selectedFieldAllPickListValues);
         $viewer->assign('ROLES_LIST', Settings_Roles_Record_Model::getAll());
     } else {
         $viewer->assign('NO_PICKLIST_FIELDS', true);
         $createPicklistUrl = '';
         $settingsLinks = $moduleModel->getSettingLinks();
         foreach ($settingsLinks as $linkDetails) {
             if ($linkDetails['linklabel'] == 'LBL_EDIT_FIELDS') {
                 $createPicklistUrl = $linkDetails['linkurl'];
                 break;
             }
         }
         $viewer->assign('CREATE_PICKLIST_URL', $createPicklistUrl);
     }
     $viewer->assign('SELECTED_MODULE_NAME', $sourceModule);
     $viewer->assign('QUALIFIED_NAME', $qualifiedName);
     $viewer->view('Index.tpl', $qualifiedName);
 }
Ejemplo n.º 14
0
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     $recordId = $request->get('record');
     $roleName = $request->get('rolename');
     $allowassignedrecordsto = $request->get('allowassignedrecordsto');
     $moduleModel = Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName);
     if (!empty($recordId)) {
         $recordModel = Settings_Roles_Record_Model::getInstanceById($recordId);
     } else {
         $recordModel = new Settings_Roles_Record_Model();
     }
     $roleProfiles = $request->get('profiles');
     $parentRoleId = $request->get('parent_roleid');
     if ($recordModel && !empty($parentRoleId)) {
         $parentRole = Settings_Roles_Record_Model::getInstanceById($parentRoleId);
         $recordModel->set('change_owner', $request->get('change_owner'))->set('searchunpriv', $request->get('searchunpriv'))->set('listrelatedrecord', $request->get('listRelatedRecord'))->set('previewrelatedrecord', $request->get('previewRelatedRecord'))->set('editrelatedrecord', $request->get('editRelatedRecord'))->set('permissionsrelatedfield', $request->get('permissionsRelatedField'))->set('globalsearchadv', $request->get('globalSearchAdvanced'))->set('clendarallorecords', $request->get('clendarallorecords'));
         if (!empty($allowassignedrecordsto)) {
             $recordModel->set('allowassignedrecordsto', $allowassignedrecordsto);
         }
         // set the value of assigned records to
         if ($parentRole && !empty($roleName) && !empty($roleProfiles)) {
             $recordModel->set('rolename', $roleName);
             $recordModel->set('profileIds', $roleProfiles);
             $parentRole->addChildRole($recordModel);
         }
         //After role updation recreating user privilege files
         if ($roleProfiles) {
             foreach ($roleProfiles as $profileId) {
                 $profileRecordModel = Settings_Profiles_Record_Model::getInstanceById($profileId);
                 $profileRecordModel->recalculate(array($recordId));
             }
         }
     }
     $redirectUrl = $moduleModel->getDefaultUrl();
     header("Location: {$redirectUrl}");
 }
Ejemplo n.º 15
0
 /**
  * Function returns all the User Roles
  * @return
  */
 public function getAllRoles()
 {
     $roleModels = Settings_Roles_Record_Model::getAll();
     $roles = array();
     foreach ($roleModels as $roleId => $roleModel) {
         $roleName = $roleModel->getName();
         $roles[$roleName] = $roleId;
     }
     return $roles;
 }
Ejemplo n.º 16
0
 /**
  * Function which will assign existing values to the roles
  * @param Vtiger_Request $request
  */
 public function showAssignValueToRoleView(Vtiger_Request $request)
 {
     $sourceModule = $request->get('source_module');
     $pickFieldId = $request->get('pickListFieldId');
     $fieldModel = Settings_Picklist_Field_Model::getInstance($pickFieldId);
     $moduleName = $request->getModule();
     $qualifiedName = $request->getModule(false);
     $selectedFieldAllPickListValues = Vtiger_Util_Helper::getPickListValues($fieldModel->getName());
     $selectedFieldAllPickListValues = array_map('Vtiger_Util_Helper::toSafeHTML', $selectedFieldAllPickListValues);
     $viewer = $this->getViewer($request);
     $viewer->assign('SELECTED_PICKLIST_FIELDMODEL', $fieldModel);
     $viewer->assign('SELECTED_MODULE_NAME', $sourceModule);
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('QUALIFIED_MODULE', $qualifiedName);
     $viewer->assign('ROLES_LIST', Settings_Roles_Record_Model::getAll());
     $viewer->assign('SELECTED_PICKLISTFIELD_ALL_VALUES', $selectedFieldAllPickListValues);
     $viewer->view('AssignValueToRole.tpl', $qualifiedName);
 }
Ejemplo n.º 17
0
 public function picklists()
 {
     global $log, $adb;
     $log->debug("Entering VT620_to_YT::picklists() method ...");
     $addPicklists = array();
     $addPicklists['Assets'][] = array('name' => 'assetstatus', 'uitype' => '15', 'add_values' => array('PLL_DRAFT', 'PLL_WARRANTY_SUPPORT', 'PLL_POST_WARRANTY_SUPPORT', 'PLL_NO_SUPPORT'), 'remove_values' => array('Out-of-service', 'In Service'));
     $addPicklists['HelpDesk'][] = array('name' => 'ticketstatus', 'uitype' => '15', 'add_values' => array('Answered', 'Rejected'), 'remove_values' => array());
     $addPicklists['Users'][] = array('name' => 'date_format', 'uitype' => '16', 'add_values' => array('dd.mm.yyyy', 'mm.dd.yyyy', 'yyyy.mm.dd', 'dd/mm/yyyy', 'mm/dd/yyyy', 'yyyy/mm/dd'), 'remove_values' => array());
     $addPicklists['Users'][] = array('name' => 'end_hour', 'add_values' => array("00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00", "21:00", "22:00", "23:00"), 'remove_values' => array());
     $addPicklists['Invoice'][] = array('name' => 'invoicestatus', 'uitype' => '15', 'add_values' => array("Derecognized", "Invoice entered"), 'remove_values' => array('Sent', 'Credit Invoice', 'Paid'));
     $addPicklists['Leads'][] = array('name' => 'leadsource', 'uitype' => '15', 'add_values' => array(), 'remove_values' => array('Existing Customer', 'Employee', 'Partner', 'Public Relations', 'Direct Mail'));
     $addPicklists['Leads'][] = array('name' => 'leadstatus', 'uitype' => '15', 'add_values' => array('LBL_TO_REALIZE', 'LBL_REQUIRES_VERIFICATION', 'LBL_PRELIMINARY_ANALYSIS_OF', 'LBL_ADVANCED_ANALYSIS', 'LBL_INITIAL_ACQUISITION', 'LBL_CONTACTS_IN_THE_FUTURE', 'LBL_LEAD_UNTAPPED', 'LBL_LEAD_ACQUIRED'), 'remove_values' => array('Attempted to Contact', 'Cold', 'Contact in Future', 'Contacted', 'Hot', 'Junk Lead', 'Lost Lead', 'Not Contacted', 'Pre Qualified', 'Qualified', 'Warm'));
     $addPicklists['Leads'][] = array('name' => 'salutationtype', 'uitype' => '15', 'add_values' => array(), 'remove_values' => array('--None--'));
     $addPicklists['Leads'][] = array('name' => 'industry', 'uitype' => '15', 'add_values' => array('Administration', 'Construction Industry', 'Power Industry', 'Trade', 'Hotels and Restaurants', 'Health Care', 'Industry / Manufacturing', 'Uniformed Services', 'Transport & Logistics', 'Technologies'), 'remove_values' => array('--None--', 'Apparel', 'Banking', 'Biotechnology', 'Chemicals', 'Communications', 'Construction', 'Consulting', 'Electronics', 'Energy', 'Engineering', 'Entertainment', 'Environmental', 'Food & Beverage', 'Government', 'Healthcare', 'Hospitality', 'Insurance', 'Machinery', 'Manufacturing', 'Media', 'Not For Profit', 'Recreation', 'Retail', 'Shipping', 'Technology', 'Telecommunications', 'Transportation', 'Utilities', 'Other'));
     $addPicklists['Project'][] = array('name' => 'projecttype', 'uitype' => '15', 'add_values' => array('PLL_INTERNAL', 'PLL_EXTERNAL', 'PLL_COMMON'), 'remove_values' => array('administrative', 'operative', 'other'));
     $addPicklists['SalesOrder'][] = array('name' => 'payment_duration', 'uitype' => '16', 'add_values' => array('payment:+0 day', 'payment:+1 day', 'payment:+7 days', 'payment:+14 days', 'payment:+21 days', 'payment:+30 days', 'payment:+60 days', 'payment:+90 days', 'payment:+180 days', 'payment:+360 days', 'payment:+1 month', 'payment:+3 months', 'payment:+6 months', 'payment:+1 year', 'payment:monday next week', 'payment:friday next week', 'payment:first day of next month', 'payment:last day of next month', 'payment:first day of +3 months', 'payment:last day of +3 months'), 'remove_values' => array('Net 30 days', 'Net 45 days', 'Net 60 days'));
     $addPicklists['SalesOrder'][] = array('name' => 'recurring_frequency', 'uitype' => '16', 'add_values' => array('+1 day', '+7 days', '+14 days', '+21 days', '+30 days', '+60 days', '+90 days', '+180 days', '+360 days', '+1 month', '+3 months', '+6 months', '+1 year', 'monday next week', 'friday next week', 'first day of next month', 'last day of next month', 'first day of +3 months', 'last day of +3 months'), 'remove_values' => array('Daily', 'Weekly', 'Monthly', 'Quarterly', 'Yearly'));
     $addPicklists['Quotes'][] = array('name' => 'quotestage', 'uitype' => '15', 'add_values' => array('PLL_WAITING_FOR_PREPARATION', 'PLL_INTERNAL_CONSULTATION_REQUIRED', 'PLL_EXTERNAL_CONSULTATION_REQUIRED', 'PLL_WAITING_FOR_CUSTOMERS_REPLY', 'PLL_IN_PREPARATION', 'PLL_DECLINED', 'PLL_ACCEPTED'), 'remove_values' => array('Created', 'Delivered', 'Reviewed', 'Accepted', 'Rejected'));
     $addPicklists['Calendar'][] = array('name' => 'activitytype', 'uitype' => '15', 'add_values' => array(), 'remove_values' => array('Mobile Call'));
     $addPicklists['Users'][] = array('name' => 'defaulteventstatus', 'uitype' => '15', 'add_values' => array(), 'remove_values' => array('Planned'));
     $addPicklists['Calendar'][] = array('name' => 'eventstatus', 'uitype' => '15', 'add_values' => array(), 'remove_values' => array('Planned'));
     $addPicklists['Potentials'][] = array('name' => 'sales_stage', 'uitype' => '15', 'add_values' => array('Accepted for processing', 'Data verification', 'Customer internal analysis', 'First contact with a customer', 'Advanced business analysis', 'Perception Analysis', 'Preparation of calculations', 'Preparation of offers', 'Awaiting a decision', 'Negotiations', 'Order and contract', 'Documentation verification', 'Closed Lost', 'Closed Waiting for processing', 'Closed Order/contract processing', 'Closed Presale activities', 'Closed Won'), 'remove_values' => array('Prospecting', 'Qualification', 'Needs Analysis', 'Value Proposition', 'Id. Decision Makers', 'Proposal or Price Quote', 'Negotiation or Review'));
     $addPicklists['Calendar'][] = array('name' => 'taskstatus', 'uitype' => '15', 'add_values' => array('Cancelled'), 'remove_values' => array('Planned'));
     $addPicklists['ProjectMilestone'][] = array('name' => 'projectmilestonetype', 'uitype' => '15', 'add_values' => array('PLL_INTERNAL', 'PLL_EXTERNAL', 'PLL_SHARED'), 'remove_values' => array('administrative', 'operative', 'other'));
     $roleRecordList = Settings_Roles_Record_Model::getAll();
     $rolesSelected = array();
     foreach ($roleRecordList as $roleRecord) {
         $rolesSelected[] = $roleRecord->getId();
     }
     foreach ($addPicklists as $moduleName => $piscklists) {
         $moduleModel = Settings_Picklist_Module_Model::getInstance($moduleName);
         if (!$moduleModel) {
             continue;
         }
         foreach ($piscklists as $piscklist) {
             $fieldModel = Settings_Picklist_Field_Model::getInstance($piscklist['name'], $moduleModel);
             if (!$fieldModel) {
                 continue;
             }
             $pickListValues = Vtiger_Util_Helper::getPickListValues($piscklist['name']);
             foreach ($piscklist['add_values'] as $newValue) {
                 if (!in_array($newValue, $pickListValues)) {
                     //$moduleModel->addPickListValues($fieldModel, $newValue);
                     $moduleModel->addPickListValues($fieldModel, $newValue, $rolesSelected);
                 }
             }
             foreach ($piscklist['remove_values'] as $newValue) {
                 if (!in_array($newValue, $pickListValues)) {
                     continue;
                 }
                 if ($piscklist['uitype'] == '15') {
                     $deletePicklistValueId = self::getPicklistId($piscklist['name'], $newValue);
                     if ($deletePicklistValueId) {
                         $adb->pquery("DELETE FROM `vtiger_role2picklist` WHERE picklistvalueid = ? ", array($deletePicklistValueId));
                     }
                 }
                 $adb->pquery("DELETE FROM `vtiger_" . $piscklist['name'] . "` WHERE " . $piscklist['name'] . " = ? ", array($newValue));
                 if ($piscklist['name'] == 'Net 30 days') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `payment_duration` = ? WHERE `payment_duration` = ? ;", array($piscklist['name'], 'payment:+30 days'));
                 }
                 if ($piscklist['name'] == 'Net 60 days') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `payment_duration` = ? WHERE `payment_duration` = ? ;", array($piscklist['name'], 'payment:+60 days'));
                 }
                 if ($piscklist['name'] == 'Daily') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `recurring_frequency` = ? WHERE `recurring_frequency` = ? ;", array($piscklist['name'], '+1 day'));
                 }
                 if ($piscklist['name'] == 'Weekly') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `recurring_frequency` = ? WHERE `recurring_frequency` = ? ;", array($piscklist['name'], '+7 days'));
                 }
                 if ($piscklist['name'] == 'Monthly') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `recurring_frequency` = ? WHERE `recurring_frequency` = ? ;", array($piscklist['name'], '+1 month'));
                 }
                 if ($piscklist['name'] == 'Quarterly') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `recurring_frequency` = ? WHERE `recurring_frequency` = ? ;", array($piscklist['name'], '+3 months'));
                 }
                 if ($piscklist['name'] == 'Yearly') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `recurring_frequency` = ? WHERE `recurring_frequency` = ? ;", array($piscklist['name'], '+1 year'));
                 }
                 if ($piscklist['name'] == 'defaulteventstatus' && $moduleName == 'Users') {
                     $adb->pquery("UPDATE `vtiger_users` SET `defaulteventstatus` = ? WHERE `defaulteventstatus` = ? ;", array($piscklist['name'], 'Not Held'));
                 }
                 if ($piscklist['name'] == 'administrative' && $moduleName == 'ProjectMilestone') {
                     $adb->pquery("UPDATE `vtiger_projectmilestone` SET `projectmilestonetype` = ? WHERE `projectmilestonetype` = ? ;", array($piscklist['name'], 'PLL_INTERNAL'));
                 }
                 if ($piscklist['name'] == 'operative' && $moduleName == 'ProjectMilestone') {
                     $adb->pquery("UPDATE `vtiger_projectmilestone` SET `projectmilestonetype` = ? WHERE `projectmilestonetype` = ? ;", array($piscklist['name'], 'PLL_EXTERNAL'));
                 }
                 if ($piscklist['name'] == 'other' && $moduleName == 'ProjectMilestone') {
                     $adb->pquery("UPDATE `vtiger_projectmilestone` SET `projectmilestonetype` = ? WHERE `projectmilestonetype` = ? ;", array($piscklist['name'], 'PLL_SHARED'));
                 }
                 //$moduleModel->remove($piscklist['name'], $deletePicklistId, '', $moduleName); // remove and replace in records
             }
         }
         $adb->pquery("UPDATE `vtiger_projecttaskstatus` SET `projecttaskstatus` = ? WHERE `projecttaskstatus` = ? ;", array('Cancelled', 'Canceled'));
     }
     $log->debug("Exiting VT620_to_YT::picklists() method ...");
 }
Ejemplo n.º 18
0
 /**
  * Function to get all the rule members
  * @return <Array> - Array of Settings_SharingAccess_RuleMember_Model instances
  */
 public static function getAll()
 {
     $rules = [];
     $allGroups = Settings_Groups_Record_Model::getAll();
     foreach ($allGroups as $groupId => $groupModel) {
         $qualifiedId = self::getQualifiedId(self::RULE_MEMBER_TYPE_GROUPS, $groupId);
         $rule = new self();
         $rules[self::RULE_MEMBER_TYPE_GROUPS][$qualifiedId] = $rule->set('id', $qualifiedId)->set('name', $groupModel->getName());
     }
     $allRoles = Settings_Roles_Record_Model::getAll();
     foreach ($allRoles as $roleId => $roleModel) {
         $qualifiedId = self::getQualifiedId(self::RULE_MEMBER_TYPE_ROLES, $roleId);
         $rule = new self();
         $rules[self::RULE_MEMBER_TYPE_ROLES][$qualifiedId] = $rule->set('id', $qualifiedId)->set('name', $roleModel->getName());
         $qualifiedId = self::getQualifiedId(self::RULE_MEMBER_TYPE_ROLE_AND_SUBORDINATES, $roleId);
         $rule = new self();
         $rules[self::RULE_MEMBER_TYPE_ROLE_AND_SUBORDINATES][$qualifiedId] = $rule->set('id', $qualifiedId)->set('name', $roleModel->getName());
     }
     $allUsers = Users_Record_Model::getAll();
     foreach ($allUsers as $userId => $userModel) {
         $qualifiedId = self::getQualifiedId(self::RULE_MEMBER_TYPE_USERS, $userId);
         $rule = new self();
         $rules[self::RULE_MEMBER_TYPE_USERS][$qualifiedId] = $rule->set('id', $qualifiedId)->set('name', $userModel->getDisplayName());
     }
     return $rules;
 }
Ejemplo n.º 19
0
 /**
  * Function to get all the groups
  * @return <Array> - Array of Settings_Groups_Record_Model instances
  */
 public static function getAll($onlyActive = true)
 {
     $members = array();
     $allUsers = Users_Record_Model::getAll($onlyActive);
     foreach ($allUsers as $userId => $userModel) {
         $qualifiedId = self::getQualifiedId(self::MEMBER_TYPE_USERS, $userId);
         $member = new self();
         $members[self::MEMBER_TYPE_USERS][$qualifiedId] = $member->set('id', $qualifiedId)->set('name', $userModel->getName());
     }
     $allGroups = Settings_Groups_Record_Model::getAll();
     foreach ($allGroups as $groupId => $groupModel) {
         $qualifiedId = self::getQualifiedId(self::MEMBER_TYPE_GROUPS, $groupId);
         $member = new self();
         $members[self::MEMBER_TYPE_GROUPS][$qualifiedId] = $member->set('id', $qualifiedId)->set('name', $groupModel->getName());
     }
     $allRoles = Settings_Roles_Record_Model::getAll();
     foreach ($allRoles as $roleId => $roleModel) {
         $qualifiedId = self::getQualifiedId(self::MEMBER_TYPE_ROLES, $roleId);
         $member = new self();
         $members[self::MEMBER_TYPE_ROLES][$qualifiedId] = $member->set('id', $qualifiedId)->set('name', $roleModel->getName());
         $qualifiedId = self::getQualifiedId(self::MEMBER_TYPE_ROLE_AND_SUBORDINATES, $roleId);
         $member = new self();
         $members[self::MEMBER_TYPE_ROLE_AND_SUBORDINATES][$qualifiedId] = $member->set('id', $qualifiedId)->set('name', $roleModel->getName());
     }
     return $members;
 }
Ejemplo n.º 20
0
 public function picklists()
 {
     global $log, $adb;
     $log->debug("Entering YetiForceUpdate::picklists() method ...");
     $addPicklists = array();
     $addPicklists['SalesOrder'][] = array('name' => 'payment_duration', 'uitype' => '16', 'add_values' => array('payment:+0 day', 'payment:+1 day', 'payment:+7 days', 'payment:+14 days', 'payment:+21 days', 'payment:+30 days', 'payment:+60 days', 'payment:+90 days', 'payment:+180 days', 'payment:+360 days', 'payment:+1 month', 'payment:+3 months', 'payment:+6 months', 'payment:+1 year', 'payment:monday next week', 'payment:friday next week', 'payment:first day of next month', 'payment:last day of next month', 'payment:first day of +3 months', 'payment:last day of +3 months'), 'remove_values' => array('Net 30 days', 'Net 45 days', 'Net 60 days'));
     $addPicklists['SalesOrder'][] = array('name' => 'recurring_frequency', 'uitype' => '16', 'add_values' => array('+1 day', '+7 days', '+14 days', '+21 days', '+30 days', '+60 days', '+90 days', '+180 days', '+360 days', '+1 month', '+3 months', '+6 months', '+1 year', 'monday next week', 'friday next week', 'first day of next month', 'last day of next month', 'first day of +3 months', 'last day of +3 months'), 'remove_values' => array('Daily', 'Weekly', 'Monthly', 'Quarterly', 'Yearly'));
     $addPicklists['Calculations'][] = array('name' => 'calculationsstatus', 'uitype' => '15', 'add_values' => array('PLL_WAITING_FOR_VERIFICATION', 'PLL_VERIFICATION_PROCESS', 'PLL_INTERNAL_CONSULTATION_REQUIRED', 'PLL_EXTERNAL_CONSULTATION_REQUIRED', 'PLL_WAITING_FOR_VENDORS_QUOTE', 'PLL_WAITING_FOR_CUSTOMERS_REPLY', 'PLL_IN_PREPARATION', 'LBL_DECLINED', 'LBL_ACCEPTED'), 'remove_values' => array('LBL_IN_PREPARATION', 'Waiting for valuation', 'Waiting for acceptance', 'Accepted', 'Rejected', 'LBL_OBJECTIONS_ARE_RAISED'));
     $addPicklists['Quotes'][] = array('name' => 'quotestage', 'uitype' => '15', 'add_values' => array('PLL_WAITING_FOR_PREPARATION', 'PLL_INTERNAL_CONSULTATION_REQUIRED', 'PLL_EXTERNAL_CONSULTATION_REQUIRED', 'PLL_WAITING_FOR_CUSTOMERS_REPLY', 'PLL_IN_PREPARATION', 'PLL_DECLINED', 'PLL_ACCEPTED'), 'remove_values' => array('Created', 'Delivered', 'Reviewed', 'Accepted', 'Rejected'));
     $addPicklists['Calendar'][] = array('name' => 'activitytype', 'uitype' => '15', 'add_values' => array(), 'remove_values' => array('Mobile Call'));
     $addPicklists['Calendar'][] = array('name' => 'eventstatus', 'uitype' => '15', 'add_values' => array(), 'remove_values' => array('Planned'));
     $addPicklists['Users'][] = array('name' => 'defaulteventstatus', 'uitype' => '15', 'add_values' => array(), 'remove_values' => array('Planned'));
     $roleRecordList = Settings_Roles_Record_Model::getAll();
     $rolesSelected = array();
     foreach ($roleRecordList as $roleRecord) {
         $rolesSelected[] = $roleRecord->getId();
     }
     foreach ($addPicklists as $moduleName => $piscklists) {
         $moduleModel = Settings_Picklist_Module_Model::getInstance($moduleName);
         if (!$moduleModel) {
             continue;
         }
         foreach ($piscklists as $piscklist) {
             $fieldModel = Settings_Picklist_Field_Model::getInstance($piscklist['name'], $moduleModel);
             if (!$fieldModel) {
                 continue;
             }
             $pickListValues = Vtiger_Util_Helper::getPickListValues($piscklist['name']);
             foreach ($piscklist['add_values'] as $newValue) {
                 if (!in_array($newValue, $pickListValues)) {
                     //$moduleModel->addPickListValues($fieldModel, $newValue);
                     $moduleModel->addPickListValues($fieldModel, $newValue, $rolesSelected);
                 }
             }
             foreach ($piscklist['remove_values'] as $newValue) {
                 if (!in_array($newValue, $pickListValues)) {
                     continue;
                 }
                 if ($piscklist['uitype'] == '15') {
                     $deletePicklistValueId = self::getPicklistId($piscklist['name'], $newValue);
                     if ($deletePicklistValueId) {
                         $adb->pquery("DELETE FROM `vtiger_role2picklist` WHERE picklistvalueid = ? ", array($deletePicklistValueId));
                     }
                 }
                 $adb->pquery("DELETE FROM `vtiger_" . $piscklist['name'] . "` WHERE " . $piscklist['name'] . " = ? ", array($newValue));
                 if ($piscklist['name'] == 'Net 30 days') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `payment_duration` = ? WHERE `payment_duration` = ? ;", array($piscklist['name'], 'payment:+30 days'));
                 }
                 if ($piscklist['name'] == 'Net 60 days') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `payment_duration` = ? WHERE `payment_duration` = ? ;", array($piscklist['name'], 'payment:+60 days'));
                 }
                 if ($piscklist['name'] == 'Daily') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `recurring_frequency` = ? WHERE `recurring_frequency` = ? ;", array($piscklist['name'], '+1 day'));
                 }
                 if ($piscklist['name'] == 'Weekly') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `recurring_frequency` = ? WHERE `recurring_frequency` = ? ;", array($piscklist['name'], '+7 days'));
                 }
                 if ($piscklist['name'] == 'Monthly') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `recurring_frequency` = ? WHERE `recurring_frequency` = ? ;", array($piscklist['name'], '+1 month'));
                 }
                 if ($piscklist['name'] == 'Quarterly') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `recurring_frequency` = ? WHERE `recurring_frequency` = ? ;", array($piscklist['name'], '+3 months'));
                 }
                 if ($piscklist['name'] == 'Yearly') {
                     $adb->pquery("UPDATE `vtiger_invoice_recurring_info` SET `recurring_frequency` = ? WHERE `recurring_frequency` = ? ;", array($piscklist['name'], '+1 year'));
                 }
                 if ($piscklist['name'] == 'Accepted' && $moduleName == 'Calculations') {
                     $adb->pquery("UPDATE `vtiger_calculations` SET `calculationsstatus` = ? WHERE `calculationsstatus` = ? ;", array($piscklist['name'], 'LBL_ACCEPTED'));
                 }
                 if ($piscklist['name'] == 'Rejected' && $moduleName == 'Calculations') {
                     $adb->pquery("UPDATE `vtiger_calculations` SET `calculationsstatus` = ? WHERE `calculationsstatus` = ? ;", array($piscklist['name'], 'LBL_DECLINED'));
                 }
                 if ($piscklist['name'] == 'Accepted' && $moduleName == 'Quotes') {
                     $adb->pquery("UPDATE `vtiger_calculations` SET `calculationsstatus` = ? WHERE `calculationsstatus` = ? ;", array($piscklist['name'], 'PLL_ACCEPTED'));
                 }
                 if ($piscklist['name'] == 'Rejected' && $moduleName == 'Quotes') {
                     $adb->pquery("UPDATE `vtiger_quotes` SET `quotestage` = ? WHERE `quotestage` = ? ;", array($piscklist['name'], 'PLL_DECLINED'));
                 }
                 //$moduleModel->remove($piscklist['name'], $deletePicklistId, '', $moduleName); // remove and replace in records
             }
         }
     }
     $log->debug("Exiting YetiForceUpdate::picklists() method ...");
 }
Ejemplo n.º 21
0
 function picklists()
 {
     global $log, $adb;
     $log->debug("Entering YetiForceUpdate::picklists() method ...");
     $addPicklists = [];
     $addPicklists['OSSMailTemplates'][] = ['name' => 'ossmailtemplates_type', 'uitype' => '16', 'add_values' => ['PLL_MAIL', 'PLL_LIST'], 'remove_values' => []];
     $addPicklists['Calculations'][] = ['name' => 'calculations_cons', 'uitype' => '33', 'add_values' => ['PLL_LONGTERM_REALIZATION'], 'remove_values' => []];
     $addPicklists['Calculations'][] = ['name' => 'calculations_pros', 'uitype' => '33', 'add_values' => [], 'remove_values' => ['PLL_LONGTERM_REALIZATION']];
     $roleRecordList = Settings_Roles_Record_Model::getAll();
     $rolesSelected = array();
     foreach ($roleRecordList as $roleRecord) {
         $rolesSelected[] = $roleRecord->getId();
     }
     foreach ($addPicklists as $moduleName => $piscklists) {
         $moduleModel = Settings_Picklist_Module_Model::getInstance($moduleName);
         if (!$moduleModel) {
             continue;
         }
         foreach ($piscklists as $piscklist) {
             $fieldModel = Settings_Picklist_Field_Model::getInstance($piscklist['name'], $moduleModel);
             if (!$fieldModel) {
                 continue;
             }
             $pickListValues = Vtiger_Util_Helper::getPickListValues($piscklist['name']);
             foreach ($piscklist['add_values'] as $newValue) {
                 if (!in_array($newValue, $pickListValues)) {
                     $moduleModel->addPickListValues($fieldModel, $newValue, $rolesSelected);
                 }
             }
             foreach ($piscklist['remove_values'] as $newValue) {
                 if (!in_array($newValue, $pickListValues)) {
                     continue;
                 }
                 if ($piscklist['uitype'] != '16') {
                     $deletePicklistValueId = self::getPicklistId($piscklist['name'], $newValue);
                     if ($deletePicklistValueId) {
                         $adb->pquery("DELETE FROM `vtiger_role2picklist` WHERE picklistvalueid = ? ", array($deletePicklistValueId));
                     }
                 }
                 $adb->pquery("DELETE FROM `vtiger_" . $piscklist['name'] . "` WHERE " . $piscklist['name'] . " = ? ", array($newValue));
             }
         }
     }
     $log->debug("Exiting YetiForceUpdate::picklists() method ...");
 }
Ejemplo n.º 22
0
 /**
  * Function to get all users related to this group
  * @param <Boolean> $nonAdmin true/false
  * @return <Array> Users models list <Users_Record_Model>
  */
 public function getUsersList($nonAdmin = false)
 {
     $userIdsList = $usersList = array();
     $members = $this->getMembers();
     foreach ($members['Users'] as $memberModel) {
         $userId = $memberModel->get('userId');
         $userIdsList[$userId] = $userId;
     }
     foreach ($members['Groups'] as $memberModel) {
         $groupModel = Settings_Groups_Record_Model::getInstance($memberModel->get('groupId'));
         $groupMembers = $groupModel->getMembers();
         foreach ($groupMembers['Users'] as $groupMemberModel) {
             $userId = $groupMemberModel->get('userId');
             $userIdsList[$userId] = $userId;
         }
     }
     foreach ($members['Roles'] as $memberModel) {
         $roleModel = new Settings_Roles_Record_Model();
         $roleModel->set('roleid', $memberModel->get('roleId'));
         $roleUsers = $roleModel->getUsers();
         foreach ($roleUsers as $userId => $userRecordModel) {
             $userIdsList[$userId] = $userId;
         }
     }
     foreach ($members['RoleAndSubordinates'] as $memberModel) {
         $roleModel = new Settings_Roles_Record_Model();
         $roleModel->set('roleid', $memberModel->get('roleId'));
         $roleUsers = $roleModel->getUsers();
         foreach ($roleUsers as $userId => $userRecordModel) {
             $userIdsList[$userId] = $userId;
         }
     }
     if (array_key_exists(1, $userIdsList)) {
         unset($userIdsList[1]);
     }
     foreach ($userIdsList as $userId) {
         $userRecordModel = Users_Record_Model::getInstanceById($userId, 'Users');
         if ($nonAdmin && $userRecordModel->isAdminUser()) {
             continue;
         }
         $usersList[$userId] = $userRecordModel;
     }
     return $usersList;
 }
Ejemplo n.º 23
0
 /**
  * Function which will assign existing values to the roles
  * @param Vtiger_Request $request
  */
 public function assignValueToRole(Vtiger_Request $request)
 {
     $pickListFieldName = $request->get('picklistName');
     $valueToAssign = $request->get('assign_values');
     $userSelectedRoles = $request->get('rolesSelected');
     $roleIdList = array();
     //selected all roles option
     if (in_array('all', $userSelectedRoles)) {
         $roleRecordList = Settings_Roles_Record_Model::getAll();
         foreach ($roleRecordList as $roleRecord) {
             $roleIdList[] = $roleRecord->getId();
         }
     } else {
         $roleIdList = $userSelectedRoles;
     }
     $moduleModel = new Settings_Picklist_Module_Model();
     $response = new Vtiger_Response();
     try {
         $moduleModel->enableOrDisableValuesForRole($pickListFieldName, $valueToAssign, array(), $roleIdList);
         $response->setResult(array('success', true));
     } catch (Exception $e) {
         $response->setError($e->getCode(), $e->getMessage());
     }
     $response->emit();
 }
Ejemplo n.º 24
0
 /**
  * Static Function to get the list of records matching the search key
  * @param <String> $searchKey
  * @return <Array> - List of Vtiger_Record_Model or Module Specific Record Model instances
  */
 public static function getSearchResult($searchKey, $module = false, $limit = false)
 {
     global $max_number_search_result;
     $db = PearDatabase::getInstance();
     $query = 'SELECT label, searchlabel, crmid, setype, createdtime, smownerid FROM vtiger_crmentity crm INNER JOIN vtiger_entityname e ON crm.setype = e.modulename WHERE searchlabel LIKE ? AND turn_off = ? AND crm.deleted = 0';
     $params = array("%{$searchKey}%", 1);
     if ($module !== false) {
         $query .= ' AND setype = ?';
         $params[] = $module;
     }
     $query .= ' ORDER BY sequence ASC, createdtime DESC';
     $result = $db->pquery($query, $params);
     $noOfRows = $db->num_rows($result);
     $moduleModels = $matchingRecords = $leadIdsList = array();
     for ($i = 0; $i < $noOfRows; ++$i) {
         $row = $db->query_result_rowdata($result, $i);
         if ($row['setype'] === 'Leads') {
             $leadIdsList[] = $row['crmid'];
         }
     }
     $convertedInfo = Leads_Module_Model::getConvertedInfo($leadIdsList);
     $user = Users_Record_Model::getCurrentUserModel();
     $roleInstance = Settings_Roles_Record_Model::getInstanceById($user->get('roleid'));
     $searchunpriv = $roleInstance->get('searchunpriv');
     for ($i = 0, $recordsCount = 0; $i < $noOfRows && $recordsCount < $max_number_search_result; ++$i) {
         $row = $db->query_result_rowdata($result, $i);
         if ($row['setype'] === 'Leads' && $convertedInfo[$row['crmid']]) {
             continue;
         }
         $recordPermitted = $permitted = Users_Privileges_Model::isPermitted($row['setype'], 'DetailView', $row['crmid']);
         if (!empty($searchunpriv)) {
             if (in_array($row['setype'], explode(',', $searchunpriv))) {
                 $recordPermitted = true;
             }
         }
         if ($recordPermitted) {
             $row['id'] = $row['crmid'];
             $row['permitted'] = $permitted;
             $moduleName = $row['setype'];
             if (!array_key_exists($moduleName, $moduleModels)) {
                 $moduleModels[$moduleName] = Vtiger_Module_Model::getInstance($moduleName);
             }
             $moduleModel = $moduleModels[$moduleName];
             $modelClassName = Vtiger_Loader::getComponentClassName('Model', 'Record', $moduleName);
             $recordInstance = new $modelClassName();
             $matchingRecords[$moduleName][$row['id']] = $recordInstance->setData($row)->setModuleFromInstance($moduleModel);
             $recordsCount++;
         }
         if ($limit && $limit == $recordsCount) {
             return $matchingRecords;
         }
     }
     return $matchingRecords;
 }
Ejemplo n.º 25
0
	/**
	 * A function used to refresh menu files
	 */
	public function refreshMenuFiles()
	{	
		$allRoles = Settings_Roles_Record_Model::getAll();
		$this->generateFileMenu(0);
		foreach ($allRoles as $role) {
			$roleId = str_replace('H', '', $role->getId());
			if (file_exists('user_privileges/menu_' . $roleId . '.php'))
				$this->generateFileMenu($roleId);
		}
	}
Ejemplo n.º 26
0
 public function picklists()
 {
     global $log, $adb;
     $log->debug("Entering YetiForceUpdate::picklists() method ...");
     $addPicklists = [];
     $addPicklists['ProjectMilestone'][] = array('name' => 'projectmilestonetype', 'uitype' => '15', 'add_values' => array('PLL_INTERNAL', 'PLL_EXTERNAL', 'PLL_SHARED'), 'remove_values' => array('administrative', 'operative', 'other'));
     $addPicklists['LettersOut'][] = array('name' => 'lout_status', 'uitype' => '16', 'add_values' => array('PLL_NEW', 'PLL_SETTLED'), 'remove_values' => array('PLL_A', 'PLL_B'));
     $addPicklists['Assets'][] = array('name' => 'assetstatus', 'uitype' => '15', 'add_values' => array('PLL_DRAFT', 'PLL_WARRANTY_SUPPORT', 'PLL_POST_WARRANTY_SUPPORT', 'PLL_NO_SUPPORT'), 'remove_values' => array('Draft', 'Realization proceeding', 'Warranty proceeding', 'Delivered to Organization'));
     $addPicklists['Calculations'][] = array('name' => 'calculationsstatus', 'uitype' => '15', 'add_values' => array('PLL_DRAFT', 'PLL_IN_REALIZATION', 'PLL_WAITING_FOR_QUOTATION', 'PLL_WAITING_FOR_ACCEPTANCE', 'PLL_ACCEPTED', 'PLL_REQUIRES_AMENDMENTS'), 'remove_values' => array('PLL_WAITING_FOR_VERIFICATION', 'PLL_VERIFICATION_PROCESS', 'PLL_INTERNAL_CONSULTATION_REQUIRED', 'PLL_EXTERNAL_CONSULTATION_REQUIRED', 'PLL_WAITING_FOR_VENDORS_QUOTE', 'PLL_WAITING_FOR_CUSTOMERS_REPLY', 'PLL_IN_PREPARATION', 'LBL_DECLINED', 'LBL_ACCEPTED'));
     $addPicklists['OSSMailView'][] = array('name' => 'ossmailview_sendtype', 'uitype' => '15', 'add_values' => array(), 'remove_values' => array('Sent'));
     $roleRecordList = Settings_Roles_Record_Model::getAll();
     $rolesSelected = array();
     foreach ($roleRecordList as $roleRecord) {
         $rolesSelected[] = $roleRecord->getId();
     }
     foreach ($addPicklists as $moduleName => $piscklists) {
         $moduleModel = Settings_Picklist_Module_Model::getInstance($moduleName);
         if (!$moduleModel) {
             continue;
         }
         foreach ($piscklists as $piscklist) {
             $fieldModel = Settings_Picklist_Field_Model::getInstance($piscklist['name'], $moduleModel);
             if (!$fieldModel) {
                 continue;
             }
             $pickListValues = Vtiger_Util_Helper::getPickListValues($piscklist['name']);
             foreach ($piscklist['add_values'] as $newValue) {
                 if (!in_array($newValue, $pickListValues)) {
                     $moduleModel->addPickListValues($fieldModel, $newValue, $rolesSelected);
                 }
             }
             foreach ($piscklist['remove_values'] as $newValue) {
                 if (!in_array($newValue, $pickListValues)) {
                     continue;
                 }
                 if ($piscklist['uitype'] == '15') {
                     $deletePicklistValueId = self::getPicklistId($piscklist['name'], $newValue);
                     if ($deletePicklistValueId) {
                         $adb->pquery("DELETE FROM `vtiger_role2picklist` WHERE picklistvalueid = ? ", array($deletePicklistValueId));
                     }
                 }
                 $adb->pquery("DELETE FROM `vtiger_" . $piscklist['name'] . "` WHERE " . $piscklist['name'] . " = ? LIMIT 1", array($newValue));
                 if ($piscklist['name'] == 'administrative' && $moduleName == 'ProjectMilestone') {
                     $adb->pquery("UPDATE `vtiger_projectmilestone` SET `projectmilestonetype` = ? WHERE `projectmilestonetype` = ? ;", array($piscklist['name'], 'PLL_INTERNAL'));
                 }
                 if ($piscklist['name'] == 'operative' && $moduleName == 'ProjectMilestone') {
                     $adb->pquery("UPDATE `vtiger_projectmilestone` SET `projectmilestonetype` = ? WHERE `projectmilestonetype` = ? ;", array($piscklist['name'], 'PLL_EXTERNAL'));
                 }
                 if ($piscklist['name'] == 'other' && $moduleName == 'ProjectMilestone') {
                     $adb->pquery("UPDATE `vtiger_projectmilestone` SET `projectmilestonetype` = ? WHERE `projectmilestonetype` = ? ;", array($piscklist['name'], 'PLL_SHARED'));
                 }
                 // replace ?
                 /*if($piscklist['name'] == 'PLL_A' && $moduleName == 'LettersOut'){
                 			$adb->pquery("UPDATE `vtiger_lettersout` SET `lout_status` = ? WHERE `lout_status` = ? ;", array($piscklist['name'], 'PLL_NEW'));
                 		}if($piscklist['name'] == 'PLL_B' && $moduleName == 'LettersOut'){
                 			$adb->pquery("UPDATE `vtiger_lettersout` SET `lout_status` = ? WHERE `lout_status` = ? ;", array($piscklist['name'], 'PLL_SETTLED'));
                 		}*/
                 if ($piscklist['name'] == 'Draft' && $moduleName == 'Assets') {
                     $adb->pquery("UPDATE `vtiger_assets` SET `assetstatus` = ? WHERE `assetstatus` = ? ;", array($piscklist['name'], 'PLL_DRAFT'));
                 }
                 // replace ?
                 /*
                 if($piscklist['name'] == 'Realization proceeding' && $moduleName == 'Assets'){
                 	$adb->pquery("UPDATE `vtiger_assets` SET `assetstatus` = ? WHERE `assetstatus` = ? ;", array($piscklist['name'], 'PLL_WARRANTY_SUPPORT'));
                 }if($piscklist['name'] == 'Warranty proceeding' && $moduleName == 'Assets'){
                 	$adb->pquery("UPDATE `vtiger_assets` SET `assetstatus` = ? WHERE `assetstatus` = ? ;", array($piscklist['name'], 'PLL_POST_WARRANTY_SUPPORT'));
                 }if($piscklist['name'] == 'Delivered to Organization' && $moduleName == 'Assets'){
                 	$adb->pquery("UPDATE `vtiger_assets` SET `assetstatus` = ? WHERE `assetstatus` = ? ;", array($piscklist['name'], 'PLL_NO_SUPPORT'));
                 }
                 */
             }
         }
     }
     $log->debug("Exiting YetiForceUpdate::picklists() method ...");
 }
Ejemplo n.º 27
0
 /** Function to save the user information into the database
  * @param $module -- module name:: Type varchar
  *
  */
 function saveentity($module)
 {
     global $current_user;
     //$adb added by raju for mass mailing
     $insertion_mode = $this->mode;
     if (empty($this->column_fields['time_zone'])) {
         $dbDefaultTimeZone = DateTimeField::getDBTimeZone();
         $this->column_fields['time_zone'] = $dbDefaultTimeZone;
         $this->time_zone = $dbDefaultTimeZone;
     }
     if (empty($this->column_fields['currency_id'])) {
         $this->column_fields['currency_id'] = CurrencyField::getDBCurrencyId();
     }
     if (empty($this->column_fields['date_format'])) {
         $this->column_fields['date_format'] = 'yyyy-mm-dd';
     }
     if (empty($this->column_fields['start_hour'])) {
         $this->column_fields['start_hour'] = '08:00';
     }
     if (empty($this->column_fields['dayoftheweek'])) {
         $this->column_fields['dayoftheweek'] = 'Monday';
     }
     if (empty($this->column_fields['callduration'])) {
         $this->column_fields['callduration'] = 5;
     }
     if (empty($this->column_fields['othereventduration'])) {
         $this->column_fields['othereventduration'] = 5;
     }
     if (empty($this->column_fields['hour_format'])) {
         $this->column_fields['hour_format'] = 24;
     }
     if (empty($this->column_fields['activity_view'])) {
         $this->column_fields['activity_view'] = 'This Month';
     }
     if (empty($this->column_fields['calendarsharedtype'])) {
         $this->column_fields['calendarsharedtype'] = 'public';
     }
     if (empty($this->column_fields['default_record_view'])) {
         $this->column_fields['default_record_view'] = 'Summary';
     }
     if (empty($this->column_fields['status'])) {
         $this->column_fields['status'] = 'Active';
     }
     if (empty($this->column_fields['currency_decimal_separator']) && $this->column_fields['currency_decimal_separator'] != ' ') {
         $this->column_fields['currency_decimal_separator'] = '.';
     }
     if (empty($this->column_fields['currency_grouping_separator']) && $this->column_fields['currency_grouping_separator'] != ' ') {
         $this->column_fields['currency_grouping_separator'] = ' ';
     }
     $this->db->println("TRANS saveentity starts {$module}");
     $this->db->startTransaction();
     foreach ($this->tab_name as $table_name) {
         if ($table_name == 'vtiger_attachments') {
             $this->insertIntoAttachment($this->id, $module);
         } else {
             $this->insertIntoEntityTable($table_name, $module);
         }
     }
     if (Settings_Roles_Record_Model::getInstanceById($this->column_fields['roleid']) == null) {
         $roleid = Settings_Roles_Record_Model::getInstanceByName($this->column_fields['roleid']);
         if ($roleid) {
             $this->column_fields['roleid'] = $roleid->getId();
         } else {
             $roles = Settings_Roles_Record_Model::getAll();
             $this->column_fields['roleid'] = key($roles);
         }
     }
     require_once 'modules/Users/CreateUserPrivilegeFile.php';
     createUserPrivilegesfile($this->id);
     unset($_SESSION['next_reminder_interval']);
     unset($_SESSION['next_reminder_time']);
     if ($insertion_mode != 'edit') {
         $this->createAccessKey();
     }
     $this->db->completeTransaction();
     $this->db->println("TRANS saveentity ends");
 }
Ejemplo n.º 28
0
 /**
  * Static Function to get the list of records matching the search key
  * @param <String> $searchKey
  * @return <Array> - List of Vtiger_Record_Model or Module Specific Record Model instances
  */
 public static function getSearchResult($searchKey, $module = false, $limit = false)
 {
     $db = PearDatabase::getInstance();
     $params = ["%{$searchKey}%"];
     $sortColumns = $join = $where = '';
     if ($module !== false) {
         $where .= ' AND vtiger_crmentity.setype = ?';
         $params[] = $module;
     } else {
         $join = 'INNER JOIN vtiger_entityname ON vtiger_crmentity.setype = vtiger_entityname.modulename';
         $where .= ' AND vtiger_entityname.turn_off = ?';
         $sortColumns .= 'vtiger_entityname.sequence ASC,';
         $params[] = 1;
     }
     if (PerformancePrefs::getBoolean('SORT_SEARCH_RESULTS')) {
         $sortColumns .= 'vtiger_crmentity.label ASC,';
     }
     $query = 'SELECT label, searchlabel, crmid, setype, createdtime, smownerid FROM vtiger_crmentity ' . $join . ' WHERE vtiger_crmentity.searchlabel LIKE ? AND vtiger_crmentity.deleted = 0' . $where;
     if (!empty($sortColumns)) {
         $query .= ' ORDER BY ' . $sortColumns;
         $query = rtrim($query, ',');
     }
     $result = $db->pquery($query, $params);
     $noOfRows = $db->num_rows($result);
     $moduleModels = $matchingRecords = $leadIdsList = array();
     for ($i = 0; $i < $noOfRows; ++$i) {
         $row = $db->query_result_rowdata($result, $i);
         if ($row['setype'] === 'Leads') {
             $leadIdsList[] = $row['crmid'];
         }
     }
     $convertedInfo = Leads_Module_Model::getConvertedInfo($leadIdsList);
     $user = Users_Record_Model::getCurrentUserModel();
     $roleInstance = Settings_Roles_Record_Model::getInstanceById($user->get('roleid'));
     $searchunpriv = $roleInstance->get('searchunpriv');
     for ($i = 0, $recordsCount = 0; $i < $noOfRows && $recordsCount < vglobal('max_number_search_result'); ++$i) {
         $row = $db->query_result_rowdata($result, $i);
         if ($row['setype'] === 'Leads' && $convertedInfo[$row['crmid']]) {
             continue;
         }
         $recordPermitted = $permitted = Users_Privileges_Model::isPermitted($row['setype'], 'DetailView', $row['crmid']);
         if (!empty($searchunpriv)) {
             if (in_array($row['setype'], explode(',', $searchunpriv))) {
                 $recordPermitted = true;
             }
         }
         if ($recordPermitted) {
             $row['id'] = $row['crmid'];
             $row['permitted'] = $permitted;
             $moduleName = $row['setype'];
             if (!array_key_exists($moduleName, $moduleModels)) {
                 $moduleModels[$moduleName] = Vtiger_Module_Model::getInstance($moduleName);
             }
             $moduleModel = $moduleModels[$moduleName];
             $modelClassName = Vtiger_Loader::getComponentClassName('Model', 'Record', $moduleName);
             $recordInstance = new $modelClassName();
             $matchingRecords[$moduleName][$row['id']] = $recordInstance->setData($row)->setModuleFromInstance($moduleModel);
             $recordsCount++;
         }
         if ($limit && $limit == $recordsCount) {
             return $matchingRecords;
         }
     }
     return $matchingRecords;
 }
Ejemplo n.º 29
0
 /**
  * Function to get subordinates Users
  * @return <array> Users
  */
 public function getRoleBasedSubordinateUsers()
 {
     $currentUserRoleModel = Settings_Roles_Record_Model::getInstanceById($this->getRole());
     $childernRoles = $currentUserRoleModel->getAllChildren();
     $users = $this->getAllUsersOnRoles($childernRoles);
     $currentUserDetail = array($this->getId() => $this->get('first_name') . ' ' . $this->get('last_name'));
     $users = $currentUserDetail + $users;
     return $users;
 }
Ejemplo n.º 30
0
 function step1(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $reportModel = Reports_Record_Model::getCleanInstance($record);
     if (!$reportModel->has('folderid')) {
         $reportModel->set('folderid', $request->get('folder'));
     }
     $data = $request->getAll();
     foreach ($data as $name => $value) {
         $reportModel->set($name, $value);
     }
     $modulesList = $reportModel->getModulesList();
     if (!empty($record)) {
         $viewer->assign('MODE', 'edit');
     } else {
         $firstModuleName = reset($modulesList);
         if ($firstModuleName) {
             $reportModel->setPrimaryModule($firstModuleName);
         }
         $viewer->assign('MODE', '');
     }
     $reportModuleModel = $reportModel->getModule();
     $reportFolderModels = $reportModuleModel->getFolders();
     $relatedModules = $reportModel->getReportRelatedModules();
     foreach ($relatedModules as $primaryModule => $relatedModuleList) {
         $translatedRelatedModules = array();
         foreach ($relatedModuleList as $relatedModuleName) {
             $translatedRelatedModules[$relatedModuleName] = vtranslate($relatedModuleName, $relatedModuleName);
         }
         $relatedModules[$primaryModule] = $translatedRelatedModules;
     }
     $currentUserModel = Users_Record_Model::getCurrentUserModel();
     $viewer->assign('SCHEDULEDREPORTS', $reportModel->getScheduledReport());
     $viewer->assign('MODULELIST', $modulesList);
     $viewer->assign('RELATED_MODULES', $relatedModules);
     $viewer->assign('REPORT_MODEL', $reportModel);
     $viewer->assign('REPORT_FOLDERS', $reportFolderModels);
     $viewer->assign('RECORD_ID', $record);
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('CURRENT_USER', $currentUserModel);
     $viewer->assign('ROLES', Settings_Roles_Record_Model::getAll());
     $admin = Users::getActiveAdminUser();
     $viewer->assign('ACTIVE_ADMIN', $admin);
     if ($request->get('isDuplicate')) {
         $viewer->assign('IS_DUPLICATE', true);
     }
     $viewer->view('Step1.tpl', $moduleName);
 }