/**
  * 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();
 }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 6
0
 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);
 }
Ejemplo n.º 8
0
 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;
     }
 }
Ejemplo n.º 9
0
 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);
         }
     }
 }