/** * Function to update record with sequence number * @param Vtiger_Request $request */ public function updateRecordsWithSequenceNumber(Vtiger_Request $request) { $sourceModule = $request->get('sourceModule'); $moduleModel = Settings_Vtiger_CustomRecordNumberingModule_Model::getInstance($sourceModule); $result = $moduleModel->updateRecordsWithSequence(); $response = new Vtiger_Response(); $response->setResult($result); $response->emit(); }
/** * Function to ger Supported modules for Custom record numbering * @return <Array> list of supported modules <Vtiger_Module_Model> */ public static function getSupportedModules() { $db = PearDatabase::getInstance(); $sql = "SELECT tabid, name FROM vtiger_tab WHERE isentitytype = ? AND presence = ? AND tabid IN (SELECT DISTINCT tabid FROM vtiger_field WHERE uitype = ?)"; $result = $db->pquery($sql, array(1, 0, 4)); $numOfRows = $db->num_rows($result); for ($i = 0; $i < $numOfRows; $i++) { $tabId = $db->query_result($result, $i, 'tabid'); $modulesModels[$tabId] = Settings_Vtiger_CustomRecordNumberingModule_Model::getInstance($db->query_result($result, $i, 'name'), $tabId); } return $modulesModels; }
/** * Function to update record with sequence number * @param Vtiger_Request $request */ public function updateRecordsWithSequenceNumber(Vtiger_Request $request) { $sourceModule = $request->get('sourceModule'); $moduleModel = Settings_Vtiger_CustomRecordNumberingModule_Model::getInstance($sourceModule); // SalesPlatform.ru begin: Added separate numbering for self organizations $result = $moduleModel->updateRecordsWithSequence($request->get('spCompany')); //$result = $moduleModel->updateRecordsWithSequence(); //SalesPlatform.ru end $response = new Vtiger_Response(); $response->setResult($result); $response->emit(); }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $OSSMail_active = Vtiger_Functions::getModuleId('OSSMail'); if ($OSSMail_active) { $mailRecordModel = Vtiger_Record_Model::getCleanInstance('OSSMail'); $accountsList = $mailRecordModel->getAccountsList(); $mailboxes = $mailRecordModel->get_default_mailboxes(); } $mailScannerRecordModel = Vtiger_Record_Model::getCleanInstance('OSSMailScanner'); $identityList = []; if ($accountsList) { foreach ($accountsList as $key => $account) { $identityList[$account['user_id']] = $mailScannerRecordModel->getIdentities($account['user_id']); $mbox = $mailRecordModel->imapConnect($account['username'], $account['password'], $account['mail_host'], 'INBOX', false); $accountsList[$key]['status'] = $mbox ? 'LBL_ACTIVE_MAIL' : 'LBL_INACTIVE_MAIL'; } } $EmailActionsList = $mailScannerRecordModel->getEmailActionsList(); $EmailActionsListName = $mailScannerRecordModel->getEmailActionsListName($EmailActionsList); $ConfigFolderList = $mailScannerRecordModel->getConfigFolderList(); $EmailSearch = $mailScannerRecordModel->getEmailSearch(); $EmailSearchList = $mailScannerRecordModel->getEmailSearchList(); $widgetCfg = $mailScannerRecordModel->getConfig(false); $supportedModules = Settings_Vtiger_CustomRecordNumberingModule_Model::getSupportedModules(); foreach ($supportedModules as $supportedModule) { if (in_array($supportedModule->name, $this->prefixesForModules)) { $moduleModel = Settings_Vtiger_CustomRecordNumberingModule_Model::getInstance($supportedModule->name); $moduleData = $moduleModel->getModuleCustomNumberingData(); $RecordNumbering[$supportedModule->name] = $moduleData; } } $check_cron = $mailScannerRecordModel->get_cron(); $viewer = $this->getViewer($request); $viewer->assign('RECORD_MODEL', $mailScannerRecordModel); $viewer->assign('ACCOUNTLIST', $accountsList); $viewer->assign('EMAILACTIONSLIST', $EmailActionsList); $viewer->assign('EMAILACTIONSLISTNAME', $EmailActionsListName); $viewer->assign('FOLDERMAILBOXES', $mailboxes); $viewer->assign('CONFIGFOLDERLIST', $ConfigFolderList); $viewer->assign('WIDGET_CFG', $widgetCfg); $viewer->assign('EMAILSEARCH', $EmailSearch); $viewer->assign('EMAILSEARCHLIST', $EmailSearchList); $viewer->assign('RECORDNUMBERING', $RecordNumbering); $viewer->assign('ERRORNOMODULE', !$OSSMail_active); $viewer->assign('MODULENAME', $moduleName); $viewer->assign('IDENTITYLIST', $identityList); $viewer->assign('CHECKCRON', $check_cron); echo $viewer->view('Index.tpl', $request->getModule(false), true); }
public function process(Vtiger_Request $request) { $qualifiedModuleName = $request->getModule(false); $supportedModules = Settings_Vtiger_CustomRecordNumberingModule_Model::getSupportedModules(); $sourceModule = $request->get('sourceModule'); if ($sourceModule) { $defaultModuleModel = $supportedModules[getTabid($sourceModule)]; } else { $defaultModuleModel = reset($supportedModules); } $viewer = $this->getViewer($request); $viewer->assign('SUPPORTED_MODULES', $supportedModules); $viewer->assign('DEFAULT_MODULE_MODEL', $defaultModuleModel); $viewer->view('CustomRecordNumbering.tpl', $qualifiedModuleName); }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $OSSMail_active = Vtiger_Functions::getModuleId('OSSMail'); if ($OSSMail_active) { $OSSMail_Record_Model = Vtiger_Record_Model::getCleanInstance('OSSMail'); $AccountsList = $OSSMail_Record_Model->getAccountsList(); $mailboxes = $OSSMail_Record_Model->get_default_mailboxes(); } $OSSMailScanner_Record_Model = Vtiger_Record_Model::getCleanInstance('OSSMailScanner'); $identityList = array(); for ($i = 0; $i < count($AccountsList); $i++) { $identityList[$AccountsList[$i]['user_id']] = $OSSMailScanner_Record_Model->getIdentities($AccountsList[$i]['user_id']); } $EmailActionsList = $OSSMailScanner_Record_Model->getEmailActionsList(); $EmailActionsListName = $OSSMailScanner_Record_Model->getEmailActionsListName($EmailActionsList); $ConfigFolderList = $OSSMailScanner_Record_Model->getConfigFolderList(); $EmailSearch = $OSSMailScanner_Record_Model->getEmailSearch(); $EmailSearchList = $OSSMailScanner_Record_Model->getEmailSearchList(); $WidgetCfg = $OSSMailScanner_Record_Model->getConfig(false); $supportedModules = Settings_Vtiger_CustomRecordNumberingModule_Model::getSupportedModules(); foreach ($supportedModules as $supportedModule) { if (in_array($supportedModule->name, $this->prefixesForModules)) { $moduleModel = Settings_Vtiger_CustomRecordNumberingModule_Model::getInstance($supportedModule->name); $moduleData = $moduleModel->getModuleCustomNumberingData(); $RecordNumbering[$supportedModule->name] = $moduleData; } } $check_cron = $OSSMailScanner_Record_Model->get_cron(); $viewer = $this->getViewer($request); $viewer->assign('RecordModel', $OSSMailScanner_Record_Model); $viewer->assign('ACCOUNTLIST', $AccountsList); $viewer->assign('EMAILACTIONSLIST', $EmailActionsList); $viewer->assign('EMAILACTIONSLISTNAME', $EmailActionsListName); $viewer->assign('FOLDERMAILBOXES', $mailboxes); $viewer->assign('CONFIGFOLDERLIST', $ConfigFolderList); $viewer->assign('WIDGET_CFG', $WidgetCfg); $viewer->assign('EMAILSEARCH', $EmailSearch); $viewer->assign('EMAILSEARCHLIST', $EmailSearchList); $viewer->assign('RECORDNUMBERING', $RecordNumbering); $viewer->assign('ERRORNOMODULE', !$OSSMail_active); $viewer->assign('MODULENAME', $moduleName); $viewer->assign('IDENTITYLIST', $identityList); $viewer->assign('CHECKCRON', $check_cron); echo $viewer->view('index.tpl', $moduleName, true); }
public function process(Vtiger_Request $request) { $qualifiedModuleName = $request->getModule(false); $supportedModules = Settings_Vtiger_CustomRecordNumberingModule_Model::getSupportedModules(); $sourceModule = $request->get('sourceModule'); if ($sourceModule) { $defaultModuleModel = $supportedModules[getTabid($sourceModule)]; } else { $defaultModuleModel = reset($supportedModules); } $viewer = $this->getViewer($request); $viewer->assign('SUPPORTED_MODULES', $supportedModules); $viewer->assign('DEFAULT_MODULE_MODEL', $defaultModuleModel); $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName); $viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel()); // SalesPlatform.ru begin: Added separate numbering for self organizations $viewer->assign('HIDE_SP_COMPANY_ROW', Settings_Vtiger_CompanyDetails_Model::hideCompanyRow($defaultModuleModel)); $viewer->assign('SP_PDF_COMPANIES', Settings_Vtiger_CompanyDetails_Model::getCompanies()); // SalesPlatform.ru end $viewer->view('CustomRecordNumbering.tpl', $qualifiedModuleName); }
public static function findEmailNumPrefix($ModuleName, $subject) { $moduleModel = Settings_Vtiger_CustomRecordNumberingModule_Model::getInstance($ModuleName); $moduleData = $moduleModel->getModuleCustomNumberingData(); $redex = '/' . $moduleData['prefix'] . '([0-9]*)/'; preg_match($redex, $subject, $match); //var_dump($subject,$match);echo '<br/>'; if ($match[0] != NULL) { return $match[0]; } else { return false; } }
function setModuleSeqNumber($mode, $module, $req_str = '', $req_no = '', $reqPostfix = '') { $adb = PearDatabase::getInstance(); //when we configure the invoice number in Settings this will be used if ($mode == 'configure' && $req_no != '') { $query = 'SELECT cur_id FROM vtiger_modentity_num WHERE semodule = ? AND prefix = ? AND postfix = ?;'; $check = $adb->pquery($query, [$module, $req_str, $reqPostfix]); $numRows = $adb->num_rows($check); if ($numRows == 0) { $numid = $adb->getUniqueId('vtiger_modentity_num'); $active = $adb->pquery('SELECT num_id FROM vtiger_modentity_num WHERE semodule = ? AND active = 1;', [$module]); $adb->pquery('UPDATE vtiger_modentity_num SET active = 0 WHERE num_id = ?;', [$adb->query_result($active, 0, 'num_id')]); $adb->pquery('INSERT INTO vtiger_modentity_num VALUES(?,?,?,?,?,?,?);', [$numid, $module, $req_str, $reqPostfix, $req_no, $req_no, 1]); return true; } else { if ($numRows != 0) { $num_check = $adb->query_result($check, 0, 'cur_id'); if ($req_no < $num_check) { return false; } else { $adb->pquery('UPDATE vtiger_modentity_num SET active = 0 WHERE active = 1 AND semodule = ?;', [$module]); $query = 'UPDATE vtiger_modentity_num SET cur_id = ?, active = 1 WHERE prefix = ? AND postfix = ? AND semodule = ?;'; $adb->pquery($query, [$req_no, $req_str, $reqPostfix, $module]); return true; } } } } else { if ($mode == "increment") { //when we save new invoice we will increment the invoice id and write $check = $adb->pquery('SELECT cur_id, prefix, postfix FROM vtiger_modentity_num WHERE semodule = ? AND active = 1;', [$module]); $prefix = $adb->query_result($check, 0, 'prefix'); $postfix = $adb->query_result($check, 0, 'postfix'); $curid = $adb->query_result($check, 0, 'cur_id'); $fullPrefix = Settings_Vtiger_CustomRecordNumberingModule_Model::parseNumberingVariables($prefix . $curid . $postfix); $strip = strlen($curid) - strlen($curid + 1); if ($strip < 0) { $strip = 0; } $temp = str_repeat('0', $strip); $req_no .= $temp . ($curid + 1); $adb->pquery('UPDATE vtiger_modentity_num SET cur_id = ? WHERE cur_id = ? AND active = 1 AND semodule = ?;', [$req_no, $curid, $module]); return decode_html($fullPrefix); } } }