function vtlib_handler($moduleName, $eventType) { $registerLink = false; $adb = PearDatabase::getInstance(); if ($eventType == 'module.postinstall') { $this->turn_on($moduleName); $adb->query("UPDATE vtiger_tab SET customized=0 WHERE name='OSSMailScanner'"); $adb->pquery("INSERT INTO vtiger_ossmailscanner_config (conf_type,parameter) VALUES (?,?)", array('folders', 'Received')); $adb->pquery("INSERT INTO vtiger_ossmailscanner_config (conf_type,parameter) VALUES (?,?)", array('folders', 'Sent')); $adb->pquery("INSERT INTO vtiger_ossmailscanner_config (conf_type,parameter) VALUES (?,?)", array('folders', 'Spam')); $adb->pquery("INSERT INTO vtiger_ossmailscanner_config (conf_type,parameter) VALUES (?,?)", array('folders', 'Trash')); $adb->pquery("INSERT INTO vtiger_ossmailscanner_config (conf_type,parameter) VALUES (?,?)", array('folders', 'All')); $adb->pquery("INSERT INTO vtiger_ossmailscanner_config (conf_type,parameter) VALUES (?,?)", array('emailsearch', 'fields')); $adb->pquery("INSERT INTO vtiger_ossmailscanner_config (conf_type,parameter,value) VALUES (?,?,?)", array('cron', 'email', '')); $adb->pquery("INSERT INTO vtiger_ossmailscanner_config (conf_type,parameter,value) VALUES (?,?,?)", array('cron', 'time', '')); $adb->pquery("INSERT INTO vtiger_ossmailscanner_config (conf_type,parameter,value) VALUES (?,?,?)", array('emailsearch', 'change_ticket_status', 'false')); $moduleModel = Settings_Picklist_Module_Model::getInstance('HelpDesk'); $fieldModel = Settings_Picklist_Field_Model::getInstance('ticketstatus', $moduleModel); $id = $moduleModel->addPickListValues($fieldModel, 'Answered'); $Module = Vtiger_Module::getInstance($moduleName); $user_id = Users_Record_Model::getCurrentUserModel()->get('user_name'); $adb->pquery("INSERT INTO vtiger_ossmails_logs (`action`, `info`, `user`) VALUES (?, ?, ?);", array('Action_InstallModule', $moduleName . ' ' . $Module->version, $user_id), false); } else { if ($eventType == 'module.disabled') { $this->turn_off($moduleName); $adb->pquery('UPDATE vtiger_cron_task SET status=0 WHERE module=?', array('OSSMailScanner')); $user_id = Users_Record_Model::getCurrentUserModel()->get('user_name'); $adb->pquery("INSERT INTO vtiger_ossmails_logs (`action`, `info`, `user`) VALUES (?, ?, ?);", array('Action_DisabledModule', $moduleName, $user_id), false); // TODO Handle actions when this module is disabled. } else { if ($eventType == 'module.enabled') { $adb->pquery('UPDATE vtiger_cron_task SET status=1 WHERE module=?', array('OSSMailScanner')); $this->turn_on($moduleName); $user_id = Users_Record_Model::getCurrentUserModel()->get('user_name'); $adb->pquery("INSERT INTO vtiger_ossmails_logs (`action`, `info`, `user`) VALUES (?, ?, ?);", array('Action_EnabledModule', $moduleName, $user_id), false); // TODO Handle actions when this module is enabled. } else { if ($eventType == 'module.preuninstall') { // TODO Handle actions when this module is about to be deleted. } else { if ($eventType == 'module.preupdate') { // TODO Handle actions before this module is updated. } else { if ($eventType == 'module.postupdate') { $adb = PearDatabase::getInstance(); $Module = Vtiger_Module::getInstance($moduleName); if (version_compare($Module->version, '1.21', '>')) { $user_id = Users_Record_Model::getCurrentUserModel()->get('user_name'); $adb->pquery("INSERT INTO vtiger_ossmails_logs (`action`, `info`, `user`) VALUES (?, ?, ?);", array('Action_UpdateModule', $moduleName . ' ' . $Module->version, $user_id), false); } } } } } } } }
public function getPickListDetailsForModule(Vtiger_Request $request) { $sourceModule = $request->get('source_module'); $moduleModel = Settings_Picklist_Module_Model::getInstance($sourceModule); //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')); $qualifiedName = $request->getModule(false); $viewer = $this->getViewer($request); $viewer->assign('PICKLIST_FIELDS', $pickListFields); $viewer->assign('SELECTED_MODULE_NAME', $sourceModule); $viewer->assign('QUALIFIED_MODULE', $qualifiedName); $viewer->view('ModulePickListDetail.tpl', $qualifiedName); }
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); }
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 ..."); }
public function enableOrDisable(Vtiger_Request $request) { $pickListFieldName = $request->get('picklistName'); $enabledValues = $request->get('enabled_values', array()); $disabledValues = $request->get('disabled_values', array()); $roleSelected = $request->get('rolesSelected'); $moduleModel = new Settings_Picklist_Module_Model(); $response = new Vtiger_Response(); try { $moduleModel->enableOrDisableValuesForRole($pickListFieldName, $enabledValues, $disabledValues, array($roleSelected)); $response->setResult(array('success', true)); } catch (Exception $e) { $response->setError($e->getCode(), $e->getMessage()); } $response->emit(); }
Migration_Index_View::ExecuteQuery('INSERT INTO vtiger_profile2utility(profileid,tabid,activityid,permission) VALUES (' . $profileId . ',19,6,0)', array()); Migration_Index_View::ExecuteQuery('INSERT INTO vtiger_profile2utility(profileid,tabid,activityid,permission) VALUES (' . $profileId . ',19,10,0)', array()); for ($i = 1; $i < $adb->num_rows($result); $i++) { $profileId = $adb->query_result($result, $i, 'profileid'); Migration_Index_View::ExecuteQuery('INSERT INTO vtiger_profile2utility(profileid,tabid,activityid,permission) VALUES (' . $profileId . ',40,5,1)', array()); Migration_Index_View::ExecuteQuery('INSERT INTO vtiger_profile2utility(profileid,tabid,activityid,permission) VALUES (' . $profileId . ',40,6,1)', array()); Migration_Index_View::ExecuteQuery('INSERT INTO vtiger_profile2utility(profileid,tabid,activityid,permission) VALUES (' . $profileId . ',40,10,0)', array()); Migration_Index_View::ExecuteQuery('INSERT INTO vtiger_profile2utility(profileid,tabid,activityid,permission) VALUES (' . $profileId . ',19,5,1)', array()); Migration_Index_View::ExecuteQuery('INSERT INTO vtiger_profile2utility(profileid,tabid,activityid,permission) VALUES (' . $profileId . ',19,6,1)', array()); Migration_Index_View::ExecuteQuery('INSERT INTO vtiger_profile2utility(profileid,tabid,activityid,permission) VALUES (' . $profileId . ',19,10,0)', array()); } } chdir(dirname(__FILE__) . '/../../../'); require_once 'includes/main/WebUI.php'; $pickListFieldName = 'no_of_currency_decimals'; $moduleModel = Settings_Picklist_Module_Model::getInstance('Users'); $fieldModel = Vtiger_Field_Model::getInstance($pickListFieldName, $moduleModel); if ($fieldModel) { $moduleModel->addPickListValues($fieldModel, 0); $moduleModel->addPickListValues($fieldModel, 1); $pickListValues = Vtiger_Util_Helper::getPickListValues($pickListFieldName); $moduleModel->updateSequence($pickListFieldName, $pickListValues); } // SalesPlatform.ru begin global $adb; //Unlink unwanted resources $unWanted = array("modules/Project/BURAK_Gantt.class.php", "modules/Settings/EmailTemplates/views/ListUI5.php", "modules/Vtiger/resources/validator/EmailValidator.js"); for ($i = 0; $i <= count($unWanted); $i++) { if (file_exists($unWanted[$i])) { unlink($unWanted[$i]); }
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 ..."); }
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 ..."); }
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 ..."); }