function process(Vtiger_Request $request) { $branches = $request->get('branches'); $filter = $request->get('filter'); if (empty($branches)) { return; } $moduleName = $request->getModule(); $viewer = $this->getViewer($request); $baseModuleName = 'Accounts'; $multiReferenceFirld = Vtiger_MultiReferenceValue_UIType::getFieldsByModules($baseModuleName, $moduleName); if (count($multiReferenceFirld) === 0) { return; } $multiReferenceFirld = reset($multiReferenceFirld); $searchParams = [['columns' => [['columnname' => $multiReferenceFirld['tablename'] . ':' . $multiReferenceFirld['columnname'] . ':' . $multiReferenceFirld['fieldname'], 'value' => implode(',', $branches), 'column_condition' => '', 'comparator' => 'c']]]]; $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('limit', 'no_limit'); $listViewModel = Vtiger_ListView_Model::getInstance($baseModuleName, $filter); $listViewModel->set('search_key', $multiReferenceFirld['fieldname']); $listViewModel->set('search_params', $searchParams); $listEntries = $listViewModel->getListViewEntries($pagingModel, true); if (count($listEntries) === 0) { return; } $listHeaders = $listViewModel->getListViewHeaders(); $viewer->assign('ENTRIES', $listEntries); $viewer->assign('HEADERS', $listHeaders); $viewer->assign('MODULE', $baseModuleName); $viewer->view('TreeRecords.tpl', $moduleName); }
function process(Vtiger_Request $request) { $branches = $request->get('branches'); $filter = $request->get('filter'); if (empty($branches)) { return; } $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $treeViewModel = Vtiger_TreeView_Model::getInstance($moduleModel); $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('limit', 'no_limit'); $listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $filter); $listViewModel->set('search_params', $treeViewModel->getSearchParams($branches)); $listEntries = $listViewModel->getListViewEntries($pagingModel, true); if (count($listEntries) === 0) { return; } $listHeaders = $listViewModel->getListViewHeaders(); $viewer->assign('ENTRIES', $listEntries); $viewer->assign('HEADERS', $listHeaders); $viewer->assign('MODULE', $moduleName); $viewer->view('TreeRecords.tpl', $moduleName); }
public function getPagination(Vtiger_Request $request) { $viewer = $this->getViewer($request); $pageNumber = $request->get('page'); $searchResult = $request->get('searchResult'); $moduleName = $request->getModule(); $listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId); if (empty($pageNumber)) { $pageNumber = '1'; } $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $pageNumber); $pagingModel->set('viewid', $request->get('viewname')); $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); $operator = $request->get('operator'); if (!empty($operator)) { $listViewModel->set('operator', $operator); $viewer->assign('OPERATOR', $operator); $viewer->assign('ALPHABET_VALUE', $searchValue); } if (!empty($searchKey) && !empty($searchValue)) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } $searchParmams = $request->get('search_params'); if (empty($searchParmams) || !is_array($searchParmams)) { $searchParmams = []; } $transformedSearchParams = $this->transferListSearchParamsToFilterCondition($searchParmams, $listViewModel->getModule()); $listViewModel->set('search_params', $transformedSearchParams); if (!$this->listViewEntries) { $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel, $searchResult); } if (!$this->listViewCount) { $this->listViewCount = $listViewModel->getListViewCount(); } $noOfEntries = count($this->listViewEntries); $totalCount = $this->listViewCount; $pageLimit = $pagingModel->getPageLimit(); $pageCount = ceil((int) $totalCount / (int) $pageLimit); if ($pageCount == 0) { $pageCount = 1; } $viewer->assign('PAGE_COUNT', $pageCount); $startPaginFrom = $pageNumber - 2; if ($pageNumber == $totalCount && 1 != $pageNumber) { $startPaginFrom = $pageNumber - 4; } if ($startPaginFrom <= 0 || 1 == $pageNumber) { $startPaginFrom = 1; } $viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries); $viewer->assign('PAGE_NUMBER', $pageNumber); $viewer->assign('LISTVIEW_COUNT', $totalCount); $viewer->assign('START_PAGIN_FROM', $startPaginFrom); $viewer->assign('PAGING_MODEL', $pagingModel); echo $viewer->view('Pagination.tpl', $moduleName, true); }
/** * Function to get the list of listview links * @param <Array> $linkParams Parameters to be replaced in the link template * @return <Array> - an array of Vtiger_Link_Model instances */ public function getListViewLinks($linkParams) { $links = parent::getListViewLinks($linkParams); $quickLinks = array(array('linktype' => 'LISTVIEWQUICK', 'linklabel' => 'Tasks List', 'linkurl' => $this->getModule()->getDefaultUrl(), 'linkicon' => '')); foreach ($quickLinks as $quickLink) { $links['LISTVIEWQUICK'][] = Vtiger_Link_Model::getInstanceFromValues($quickLink); } return $links; }
/** * Function to get the list view entries * @param Vtiger_Paging_Model $pagingModel * @return <Array> - Associative array of record id mapped to Vtiger_Record_Model instance. */ public function getListViewEntries($pagingModel) { $queryGenerator = $this->get('query_generator'); // Added as Users module do not have custom filters and id column is added by querygenerator. $fields = $queryGenerator->getFields(); $fields[] = 'id'; $queryGenerator->setFields($fields); return parent::getListViewEntries($pagingModel); }
public function getBasicLinks() { $basicLinks = parent::getBasicLinks(); $createPermission = Users_Privileges_Model::isPermitted('Potentials', 'EditView'); if ($createPermission) { $basicLinks[] = array('linktype' => 'LISTVIEWBASIC', 'linklabel' => 'LBL_GENERATE_EXTENSION', 'linkurl' => 'javascript:Vtiger_List_Js.generatePotentials()', 'linkicon' => 'icon-star-empty', 'linkclass' => 'btn-success'); return $basicLinks; } }
public function getSettingLinks() { $settingsLinks = parent::getSettingLinks(); $currentUserModel = Users_Record_Model::getCurrentUserModel(); $moduleModel = $this->getModule(); if ($currentUserModel->isAdminUser()) { $settingsLinks[] = array('linktype' => 'LISTVIEWSETTING', 'linklabel' => 'LBL_EDIT_MAILSCANNER', 'linkurl' => 'index.php?module=MailScanner&parent=Settings&view=List', 'linkicon' => ''); return $settingsLinks; } }
/** * Function to get the list of Mass actions for the module * @param <Array> $linkParams * @return <Array> - Associative array of Link type to List of Vtiger_Link_Model instances for Mass Actions */ public function getListViewMassActions($linkParams) { $massActionLinks = parent::getListViewMassActions($linkParams); $currentUserModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); $emailModuleModel = Vtiger_Module_Model::getInstance('Emails'); if ($currentUserModel->hasModulePermission($emailModuleModel->getId())) { $massActionLink = array('linktype' => 'LISTVIEWMASSACTION', 'linklabel' => 'LBL_SEND_EMAIL', 'linkurl' => 'javascript:Vtiger_List_Js.triggerSendEmail("index.php?module=' . $this->getModule()->getName() . '&view=MassActionAjax&mode=showComposeEmailForm&step=step1","Emails");', 'linkicon' => ''); $massActionLinks['LISTVIEWMASSACTION'][] = Vtiger_Link_Model::getInstanceFromValues($massActionLink); } return $massActionLinks; }
/** * Function to get the list of listview links for the module * @param <Array> $linkParams * @return <Array> - Associate array of Link Type to List of Vtiger_Link_Model instances */ function getListViewLinks($linkParams) { $links = parent::getListViewLinks($linkParams); $index = 0; foreach ($links['LISTVIEWBASIC'] as $link) { if ($link->linklabel == 'Send SMS') { unset($links['LISTVIEWBASIC'][$index]); } $index++; } return $links; }
/** * Function to get the list of listview links for the module * @param <Array> $linkParams * @return <Array> - Associate array of Link Type to List of Vtiger_Link_Model instances */ function getListViewLinks($linkParams) { $currentUserModel = Users_Record_Model::getCurrentUserModel(); $links = parent::getListViewLinks($linkParams); $index = 0; foreach ($links['LISTVIEWBASIC'] as $link) { if ($link->linklabel == 'Send SMS') { unset($links['LISTVIEWBASIC'][$index]); } $index++; } return $links; }
/** * Function to get the list of listview links for the module * @param <Array> $linkParams * @return <Array> - Associate array of Link Type to List of Vtiger_Link_Model instances */ public function getListViewLinks($linkParams) { $links = parent::getListViewLinks($linkParams); $currentUserModel = Users_Record_Model::getCurrentUserModel(); $moduleModel = $this->getModule(); unset($links['LISTVIEW']); unset($links['LISTVIEWSETTING']); if ($currentUserModel->isAdminUser()) { $settingsLink = array('linktype' => 'LISTVIEWSETTING', 'linklabel' => 'LBL_EDIT_WORKFLOWS', 'linkurl' => 'index.php?parent=Settings&module=Workflow&sourceModule=' . $this->getName(), 'linkicon' => Vtiger_Theme::getImagePath('EditWorkflows.png')); $links['LISTVIEWSETTING'][] = Vtiger_Link_Model::getInstanceFromValues($settingsLink); } return $links; }
private function getRecords() { $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('limit', 'no_limit'); $listViewModel = Vtiger_ListView_Model::getInstance($this->getModuleName()); $listEntries = $listViewModel->getListViewEntries($pagingModel, true); $tree = []; foreach ($listEntries as $item) { $this->lastTreeId++; $parent = $item->get('pscategory'); $parent = (int) str_replace('T', '', $parent); $tree[] = ['id' => $this->lastTreeId, 'record_id' => $item->getId(), 'parent' => $parent == 0 ? '#' : $parent, 'text' => $item->getName(), 'isrecord' => true, 'state' => [], 'icon' => 'glyphicon glyphicon-file']; } return $tree; }
function process(Vtiger_Request $request) { $branches = $request->get('branches'); $filter = $request->get('filter'); $category = $request->get('category'); if (empty($branches) && empty($category)) { return; } $moduleName = $request->getModule(); $viewer = $this->getViewer($request); $baseModuleName = 'Accounts'; $multiReferenceFirld = Vtiger_MultiReferenceValue_UIType::getFieldsByModules($baseModuleName, $moduleName); $multiReferenceFirld = reset($multiReferenceFirld); if (count($multiReferenceFirld) === 0) { return; } $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('limit', 'no_limit'); $listViewModel = Vtiger_ListView_Model::getInstance($baseModuleName, $filter); $queryGenerator = $listViewModel->get('query_generator'); $glue = ''; if (!empty($branches)) { if (count($queryGenerator->getWhereFields()) > 0 && count($searchParams) > 0) { $glue = QueryGenerator::$AND; } $queryGenerator->addCondition($multiReferenceFirld['columnname'], implode(',', $branches), 'c'); } if (!empty($category)) { $baseModuleId = Vtiger_Functions::getModuleId($baseModuleName); $moduleId = Vtiger_Functions::getModuleId($moduleName); $query = 'SELECT crmid FROM u_yf_crmentity_rel_tree WHERE module = ' . $baseModuleId . ' AND relmodule = ' . $moduleId . ' AND tree IN (\'' . implode("','", $category) . '\')'; if (count($queryGenerator->getWhereFields()) > 0 && count($searchParams) > 0) { $glue = QueryGenerator::$AND; } $queryGenerator->addCondition($multiReferenceFirld['columnname'], $query, 'subQuery', 'OR', true); } $listViewModel->set('query_generator', $queryGenerator); $listEntries = $listViewModel->getListViewEntries($pagingModel, true); if (count($listEntries) === 0) { return; } $listHeaders = $listViewModel->getListViewHeaders(); $viewer->assign('ENTRIES', $listEntries); $viewer->assign('HEADERS', $listHeaders); $viewer->assign('MODULE', $baseModuleName); $viewer->view('TreeRecords.tpl', $moduleName); }
/** * Function to get the list of Mass actions for the module * @param <Array> $linkParams * @return <Array> - Associative array of Link type to List of Vtiger_Link_Model instances for Mass Actions */ public function getListViewMassActions($linkParams) { $links = parent::getListViewMassActions($linkParams); $moduleModel = $this->getModule(); $currentUserModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); $emailModuleModel = Vtiger_Module_Model::getInstance('Emails'); $massActionLinks = []; if ($currentUserModel->hasModulePermission($emailModuleModel->getId()) && $currentUserModel->hasModuleActionPermission($moduleModel->getId(), 'MassComposeEmail')) { $massActionLinks[] = array('linktype' => 'LISTVIEWMASSACTION', 'linklabel' => 'LBL_MASS_SEND_EMAIL', 'linkurl' => 'javascript:Vtiger_List_Js.triggerSendEmail("index.php?module=' . $moduleModel->getName() . '&view=MassActionAjax&mode=showComposeEmailForm&step=step1","Emails");', 'linkicon' => ''); } $SMSNotifierModuleModel = Vtiger_Module_Model::getInstance('SMSNotifier'); if (!empty($SMSNotifierModuleModel) && $currentUserModel->hasModulePermission($SMSNotifierModuleModel->getId()) && $currentUserModel->hasModuleActionPermission($moduleModel->getId(), 'MassSendSMS')) { $massActionLinks[] = array('linktype' => 'LISTVIEWMASSACTION', 'linklabel' => 'LBL_MASS_SEND_SMS', 'linkurl' => 'javascript:Vtiger_List_Js.triggerSendSms("index.php?module=' . $moduleModel->getName() . '&view=MassActionAjax&mode=showSendSMSForm","SMSNotifier");', 'linkicon' => ''); } foreach ($massActionLinks as $massActionLink) { $links['LISTVIEWMASSACTION'][] = Vtiger_Link_Model::getInstanceFromValues($massActionLink); } return $links; }
/** * Function to get listView count * @param Vtiger_Request $request */ function getListViewCount(Vtiger_Request $request) { $moduleName = $request->getModule(); $cvId = $request->get('viewname'); if (empty($cvId)) { $cvId = '0'; } $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); $listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId); $searchParmams = $request->get('search_params'); $listViewModel->set('search_params', $this->transferListSearchParamsToFilterCondition($searchParmams, $listViewModel->getModule())); $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); $listViewModel->set('operator', $request->get('operator')); $count = $listViewModel->getListViewCount(); return $count; }
/** * Function to get listView count * @param Vtiger_Request $request */ function getListViewCount(Vtiger_Request $request) { $moduleName = $this->getModule($request); $sourceModule = $request->get('src_module'); $sourceField = $request->get('src_field'); $sourceRecord = $request->get('src_record'); $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); $currencyId = $request->get('currency_id'); $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); $relatedParentModule = $request->get('related_parent_module'); $relatedParentId = $request->get('related_parent_id'); if (!empty($relatedParentModule) && !empty($relatedParentId)) { $parentRecordModel = Vtiger_Record_Model::getInstanceById($relatedParentId, $relatedParentModule); $listViewModel = Vtiger_RelationListView_Model::getInstance($parentRecordModel, $moduleName, $label); } else { $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName, $sourceModule); } if (!empty($sourceModule)) { $listViewModel->set('src_module', $sourceModule); $listViewModel->set('src_field', $sourceField); $listViewModel->set('src_record', $sourceRecord); $listViewModel->set('currency_id', $currencyId); } if (!empty($orderBy)) { $listViewModel->set('orderby', $orderBy); $listViewModel->set('sortorder', $sortOrder); } if (!empty($searchKey) && !empty($searchValue)) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } if (!empty($relatedParentModule) && !empty($relatedParentId)) { $count = $listViewModel->getRelatedEntriesCount(); } else { $count = $listViewModel->getListViewCount(); } return $count; }
public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { $request->set('src_module', $request->getModule()); // $moduleName = $this->getModule($request); $cvId = $request->get('cvid'); $pageNumber = $request->get('page'); $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); $sourceModule = $request->get('src_module'); $sourceField = $request->get('src_field'); $sourceRecord = $request->get('src_record'); $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); $currencyId = $request->get('currency_id'); $relatedParentModule = $request->get('related_parent_module'); $relatedParentId = $request->get('related_parent_id'); $potentialId = $request->get('potentialid'); //To handle special operation when selecting record from Popup $getUrl = $request->get('get_url'); //Check whether the request is in multi select mode $multiSelectMode = $request->get('multi_select'); if (empty($multiSelectMode)) { $multiSelectMode = false; } if (empty($cvId)) { $cvId = '0'; } if (empty($pageNumber)) { $pageNumber = '1'; } $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $pageNumber); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel); $isRecordExists = Vtiger_Util_Helper::checkRecordExistance($relatedParentId); if ($isRecordExists) { $relatedParentModule = ''; $relatedParentId = ''; } else { if ($isRecordExists === NULL) { $relatedParentModule = ''; $relatedParentId = ''; } } if (!empty($relatedParentModule) && !empty($relatedParentId)) { $parentRecordModel = Vtiger_Record_Model::getInstanceById($relatedParentId, $relatedParentModule); $listViewModel = Vtiger_RelationListView_Model::getInstance($parentRecordModel, $moduleName, $label); } else { $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName, $sourceModule); } if (empty($orderBy) && empty($sortOrder)) { $moduleInstance = CRMEntity::getInstance($moduleName); $orderBy = $moduleInstance->default_order_by; $sortOrder = $moduleInstance->default_sort_order; } if (!empty($orderBy)) { $listViewModel->set('orderby', $orderBy); $listViewModel->set('sortorder', $sortOrder); } if (!empty($sourceModule)) { $listViewModel->set('src_module', $sourceModule); $listViewModel->set('src_field', $sourceField); $listViewModel->set('src_record', $sourceRecord); } if (!empty($searchKey) && !empty($searchValue)) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } if (!empty($potentialId) && vglobal('inventory_popup_limited_from_potentials')) { $listViewModel->set('potential_id', $potentialId); $viewer->assign('INVENTORY_LIMITED_FROM_POTENTIALS', true); } if (!empty($relatedParentModule) && !empty($relatedParentId)) { $this->listViewHeaders = $listViewModel->getHeaders(); $models = $listViewModel->getEntries($pagingModel); $noOfEntries = count($models); foreach ($models as $recordId => $recordModel) { foreach ($this->listViewHeaders as $fieldName => $fieldModel) { $recordModel->set($fieldName, $recordModel->getDisplayValue($fieldName)); } $models[$recordId] = $recordModel; } $this->listViewEntries = $models; if (count($this->listViewEntries) > 0) { $parent_related_records = true; } } else { $this->listViewHeaders = $listViewModel->getListViewHeaders(); $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel); } // If there are no related records with parent module then, we should show all the records if (!$parent_related_records && !empty($relatedParentModule) && !empty($relatedParentId)) { $relatedParentModule = null; $relatedParentId = null; $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName, $sourceModule); if (!empty($orderBy)) { $listViewModel->set('orderby', $orderBy); $listViewModel->set('sortorder', $sortOrder); } if (!empty($sourceModule)) { $listViewModel->set('src_module', $sourceModule); $listViewModel->set('src_field', $sourceField); $listViewModel->set('src_record', $sourceRecord); } if (!empty($searchKey) && !empty($searchValue)) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } $this->listViewHeaders = $listViewModel->getListViewHeaders(); $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel); } // End $noOfEntries = count($this->listViewEntries); if (empty($sortOrder)) { $sortOrder = "ASC"; } if ($sortOrder == "ASC") { $nextSortOrder = "DESC"; $sortImage = "downArrowSmall.png"; } else { $nextSortOrder = "ASC"; $sortImage = "upArrowSmall.png"; } $viewer->assign('MODULE', $request->getModule()); // $viewer->assign('RELATED_MODULE', $moduleName); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('SOURCE_MODULE', $sourceModule); $viewer->assign('SOURCE_FIELD', $sourceField); $viewer->assign('SOURCE_RECORD', $sourceRecord); $viewer->assign('RELATED_PARENT_MODULE', $relatedParentModule); $viewer->assign('RELATED_PARENT_ID', $relatedParentId); $viewer->assign('SEARCH_KEY', $searchKey); $viewer->assign('SEARCH_VALUE', $searchValue); $viewer->assign('ORDER_BY', $orderBy); $viewer->assign('SORT_ORDER', $sortOrder); $viewer->assign('NEXT_SORT_ORDER', $nextSortOrder); $viewer->assign('SORT_IMAGE', $sortImage); $viewer->assign('GETURL', 'getTaxesURL'); // $viewer->assign('CURRENCY_ID', $currencyId); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('PAGING_MODEL', $pagingModel); $viewer->assign('PAGE_NUMBER', $pageNumber); $viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries); $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders); $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries); if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) { if (!$this->listViewCount) { $this->listViewCount = $listViewModel->getListViewCount(); } $totalCount = $this->listViewCount; $pageLimit = $pagingModel->getPageLimit(); $pageCount = ceil((int) $totalCount / (int) $pageLimit); if ($pageCount == 0) { $pageCount = 1; } $viewer->assign('PAGE_COUNT', $pageCount); $viewer->assign('LISTVIEW_COUNT', $totalCount); } $viewer->assign('MULTI_SELECT', $multiSelectMode); $viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('VIEW', 'ServicesPopup'); }
/** * Function which provides the records for the current view * @param <Boolean> $skipRecords - List of the RecordIds to be skipped * @return <Array> List of RecordsIds */ public function getRecordIds($skipRecords = false, $module = false) { $db = PearDatabase::getInstance(); $cvId = $this->getId(); $moduleModel = $this->getModule(); $moduleName = $moduleModel->get('name'); $baseTableName = $moduleModel->get('basetable'); $baseTableId = $moduleModel->get('basetableid'); $listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId); $queryGenerator = $listViewModel->get('query_generator'); $searchKey = $this->get('search_key'); $searchValue = $this->get('search_value'); $operator = $this->get('operator'); if (!empty($searchValue)) { $queryGenerator->addUserSearchConditions(array('search_field' => $searchKey, 'search_text' => $searchValue, 'operator' => $operator)); } $searchParams = $this->get('search_params'); if (empty($searchParams)) { $searchParams = array(); } $transformedSearchParams = Vtiger_Util_Helper::transferListSearchParamsToFilterCondition($searchParams, $moduleModel); $queryGenerator->parseAdvFilterList($transformedSearchParams); $listQuery = $queryGenerator->getQuery(); if ($module == 'RecycleBin') { $listQuery = preg_replace("/vtiger_crmentity.deleted\\s*=\\s*0/i", 'vtiger_crmentity.deleted = 1', $listQuery); } if ($skipRecords && !empty($skipRecords) && is_array($skipRecords) && count($skipRecords) > 0) { $listQuery .= ' AND ' . $baseTableName . '.' . $baseTableId . ' NOT IN (' . implode(',', $skipRecords) . ')'; } $result = $db->query($listQuery); $noOfRecords = $db->num_rows($result); $recordIds = array(); for ($i = 0; $i < $noOfRecords; ++$i) { $recordIds[] = $db->query_result($result, $i, $baseTableId); } return $recordIds; }
public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { //src_module value is added to just to stop showing inactive products $request->set('src_module', $request->getModule()); $moduleName = $this->getModule($request); $cvId = $request->get('cvid'); $pageNumber = $request->get('page'); $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); $sourceModule = $request->get('src_module'); $sourceField = $request->get('src_field'); $sourceRecord = $request->get('src_record'); $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); $currencyId = $request->get('currency_id'); $potentialId = $request->get('potentialid'); $searchParams = $request->get('search_params'); //To handle special operation when selecting record from Popup $getUrl = $request->get('get_url'); //Check whether the request is in multi select mode $multiSelectMode = $request->get('multi_select'); if (empty($multiSelectMode)) { $multiSelectMode = false; } if (empty($cvId)) { $cvId = '0'; } if (empty($pageNumber)) { $pageNumber = '1'; } $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $pageNumber); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName, $sourceModule); $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel); if (empty($orderBy) && empty($sortOrder)) { $moduleInstance = CRMEntity::getInstance($moduleName); $orderBy = $moduleInstance->default_order_by; $sortOrder = $moduleInstance->default_sort_order; } if (!empty($orderBy)) { $listViewModel->set('orderby', $orderBy); $listViewModel->set('sortorder', $sortOrder); } if (!empty($sourceModule)) { $listViewModel->set('src_module', $sourceModule); $listViewModel->set('src_field', $sourceField); $listViewModel->set('src_record', $sourceRecord); } if (!empty($searchKey) && !empty($searchValue)) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } $searchParmams = $request->get('search_params'); if (empty($searchParmams)) { $searchParmams = array(); } $transformedSearchParams = Vtiger_Util_Helper::transferListSearchParamsToFilterCondition($searchParmams, $moduleModel); $listViewModel->set('search_params', $transformedSearchParams); //To make smarty to get the details easily accesible foreach ($searchParmams as $fieldListGroup) { foreach ($fieldListGroup as $fieldSearchInfo) { $fieldSearchInfo['searchValue'] = $fieldSearchInfo[2]; $fieldSearchInfo['fieldName'] = $fieldName = $fieldSearchInfo[0]; $searchParmams[$fieldName] = $fieldSearchInfo; } } if (Settings_SalesProcesses_Module_Model::checkRelatedToPotentialsLimit() && Settings_SalesProcesses_Module_Model::isLimitForModule($sourceModule)) { if ($potentialId == '') { $potentialId = -1; } $listViewModel->set('potential_id', $potentialId); $viewer->assign('INVENTORY_LIMITED_FROM_POTENTIALS', true); } $productModel = Vtiger_Module_Model::getInstance('Products'); if (!$this->listViewHeaders) { $this->listViewHeaders = $listViewModel->getListViewHeaders(); } if (!$this->listViewEntries && $productModel->isActive()) { $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel); } if (!$productModel->isActive()) { $this->listViewEntries = array(); $viewer->assign('LBL_MODULE_DISABLED', true); } foreach ($this->listViewEntries as $key => $listViewEntry) { $productId = $listViewEntry->getId(); $subProducts = $listViewModel->getSubProducts($productId); if ($subProducts) { $listViewEntry->set('subProducts', $subProducts); } } $noOfEntries = count($this->listViewEntries); if (empty($sortOrder)) { $sortOrder = "ASC"; } if ($sortOrder == "ASC") { $nextSortOrder = "DESC"; $sortImage = "downArrowSmall.png"; } else { $nextSortOrder = "ASC"; $sortImage = "upArrowSmall.png"; } $viewer->assign('MODULE', $moduleName); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('RELATED_MODULE', $moduleName); $viewer->assign('SOURCE_MODULE', $sourceModule); $viewer->assign('SOURCE_FIELD', $sourceField); $viewer->assign('SOURCE_RECORD', $sourceRecord); $viewer->assign('SEARCH_KEY', $searchKey); $viewer->assign('SEARCH_VALUE', $searchValue); $viewer->assign('ORDER_BY', $orderBy); $viewer->assign('SORT_ORDER', $sortOrder); $viewer->assign('NEXT_SORT_ORDER', $nextSortOrder); $viewer->assign('SORT_IMAGE', $sortImage); $viewer->assign('GETURL', $getUrl); $viewer->assign('CURRENCY_ID', $currencyId); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('PAGING_MODEL', $pagingModel); $viewer->assign('PAGE_NUMBER', $pageNumber); $viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries); $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders); $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries); $viewer->assign('POPUPTYPE', vglobal('popupType')); if (AppConfig::performance('LISTVIEW_COMPUTE_PAGE_COUNT')) { if (!$this->listViewCount) { $this->listViewCount = $listViewModel->getListViewCount(); } $totalCount = $this->listViewCount; $pageLimit = $pagingModel->getPageLimit(); $pageCount = ceil((int) $totalCount / (int) $pageLimit); if ($pageCount == 0) { $pageCount = 1; } $viewer->assign('PAGE_COUNT', $pageCount); $viewer->assign('LISTVIEW_COUNT', $totalCount); } $viewer->assign('MULTI_SELECT', $multiSelectMode); $viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('TARGET_MODULE', $moduleName); $viewer->assign('MODULE', $request->getModule()); $viewer->assign('GETURL', 'getTaxesURL'); $viewer->assign('VIEW', 'ProductsPopup'); $viewer->assign('SEARCH_DETAILS', $searchParmams); }
public function getListViewCount() { $searchParams = $this->get('search_params'); if (is_array($searchParams) && count($searchParams[0]['columns']) < 1) { $this->set('search_params', []); } return parent::getListViewCount(); }
private function getRecords() { $selectedRecords = $this->getSelectedRecords(); $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('limit', 'no_limit'); $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($this->moduleName, $this->src_module); if (!empty($this->src_module)) { $listViewModel->set('src_module', $this->src_module); $listViewModel->set('src_record', $this->src_record); } $listEntries = $listViewModel->getListViewEntries($pagingModel, true); $tree = []; foreach ($listEntries as $item) { $this->lastIdinTree++; $parent = $item->get('pscategory'); $parent = (int) str_replace('T', '', $parent); $tree[] = ['id' => $this->lastIdinTree, 'record_id' => $item->getId(), 'parent' => $parent == 0 ? '#' : $parent, 'text' => $item->getName(), 'state' => ['selected' => in_array($item->getId(), $selectedRecords)], 'icon' => 'glyphicon glyphicon-file']; } return $tree; }
public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { $moduleName = $this->getModule($request); $cvId = $request->get('cvid'); $pageNumber = $request->get('page'); $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); $sourceModule = $request->get('src_module'); $sourceField = $request->get('src_field'); $sourceRecord = $request->get('src_record'); $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); $currencyId = $request->get('currency_id'); //To handle special operation when selecting record from Popup $getUrl = $request->get('get_url'); //Check whether the request is in multi select mode $multiSelectMode = $request->get('multi_select'); if(empty($multiSelectMode)) { $multiSelectMode = false; } if(empty($cvId)) { $cvId = '0'; } if(empty ($pageNumber)) { $pageNumber = '1'; } $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $pageNumber); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName); $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel); if(!empty($orderBy)) { $listViewModel->set('orderby', $orderBy); $listViewModel->set('sortorder', $sortOrder); } if(!empty($sourceModule)) { $listViewModel->set('src_module', $sourceModule); $listViewModel->set('src_field', $sourceField); $listViewModel->set('src_record', $sourceRecord); } if((!empty($searchKey)) && (!empty($searchValue))) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } if(!empty($currencyId)) { $listViewModel->set('currency_id', $currencyId); } if(!$this->listViewHeaders){ $this->listViewHeaders = $listViewModel->getListViewHeaders(); } //Added to support List Price $field = new Vtiger_Field_Model(); $field->set('name', 'listprice'); $field->set('column', 'listprice'); $field->set('label', 'List Price'); $this->listViewHeaders['listprice'] = $field; if(!$this->listViewEntries){ $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel); } foreach ($this->listViewEntries as $recordId => $recordModel) { $recordModel->set('listprice', $recordModel->getProductsListPrice($sourceRecord)); } $noOfEntries = count($this->listViewEntries); if(empty($sortOrder)) { $sortOrder = "ASC"; } if($sortOrder == "ASC") { $nextSortOrder = "DESC"; $sortImage = "downArrowSmall.png"; }else { $nextSortOrder = "ASC"; $sortImage = "upArrowSmall.png"; } $viewer->assign('MODULE', $moduleName); $viewer->assign('SOURCE_MODULE', $sourceModule); $viewer->assign('SOURCE_FIELD', $sourceField); $viewer->assign('SOURCE_RECORD', $sourceRecord); $viewer->assign('SEARCH_KEY', $searchKey); $viewer->assign('SEARCH_VALUE', $searchValue); $viewer->assign('ORDER_BY',$orderBy); $viewer->assign('SORT_ORDER',$sortOrder); $viewer->assign('NEXT_SORT_ORDER',$nextSortOrder); $viewer->assign('SORT_IMAGE',$sortImage); $viewer->assign('GETURL', $getUrl); $viewer->assign('CURRENCY_ID', $currencyId); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('PAGING_MODEL', $pagingModel); $viewer->assign('PAGE_NUMBER',$pageNumber); $viewer->assign('LISTVIEW_ENTRIES_COUNT',$noOfEntries); $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders); $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries); if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) { if(!$this->listViewCount){ $this->listViewCount = $listViewModel->getListViewCount(); } $totalCount = $this->listViewCount; $pageLimit = $pagingModel->getPageLimit(); $pageCount = ceil((int) $totalCount / (int) $pageLimit); if($pageCount == 0){ $pageCount = 1; } $viewer->assign('PAGE_COUNT', $pageCount); $viewer->assign('LISTVIEW_COUNT', $totalCount); } $viewer->assign('MULTI_SELECT', $multiSelectMode); $viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel()); }
public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { $moduleName = $request->getModule(); $cvId = $request->get('viewname'); $pageNumber = $request->get('page'); $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); if ($sortOrder == "ASC") { $nextSortOrder = "DESC"; $sortImage = "icon-chevron-down"; } else { $nextSortOrder = "ASC"; $sortImage = "icon-chevron-up"; } if (empty($pageNumber)) { $pageNumber = '1'; } $listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId); $linkParams = array('MODULE' => $moduleName, 'ACTION' => $request->get('view'), 'CVID' => $cvId); $linkModels = $listViewModel->getListViewMassActions($linkParams); $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $pageNumber); if (!empty($orderBy)) { $listViewModel->set('orderby', $orderBy); $listViewModel->set('sortorder', $sortOrder); } $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); $operator = $request->get('operator'); if (!empty($operator)) { $listViewModel->set('operator', $operator); $viewer->assign('OPERATOR', $operator); $viewer->assign('ALPHABET_VALUE', $searchValue); } if (!empty($searchKey) && !empty($searchValue)) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } $listViewModel->set('folder_id', $request->get('folder_id')); $listViewModel->set('folder_value', $request->get('folder_value')); if (!$this->listViewHeaders) { $this->listViewHeaders = $listViewModel->getListViewHeaders(); } if (!$this->listViewEntries) { $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel); } $noOfEntries = count($this->listViewEntries); $viewer->assign('VIEWID', $cvId); $viewer->assign('MODULE', $moduleName); if (!$this->listViewLinks) { $this->listViewLinks = $listViewModel->getListViewLinks($linkParams); } $viewer->assign('LISTVIEW_LINKS', $this->listViewLinks); $viewer->assign('LISTVIEW_MASSACTIONS', $linkModels['LISTVIEWMASSACTION']); $viewer->assign('PAGING_MODEL', $pagingModel); $viewer->assign('PAGE_NUMBER', $pageNumber); $viewer->assign('ORDER_BY', $orderBy); $viewer->assign('SORT_ORDER', $sortOrder); $viewer->assign('NEXT_SORT_ORDER', $nextSortOrder); $viewer->assign('SORT_IMAGE', $sortImage); $viewer->assign('COLUMN_NAME', $orderBy); $viewer->assign('FOLDER_NAME', $request->get('folder_value')); $viewer->assign('LISTVIEW_ENTIRES_COUNT', $noOfEntries); $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders); $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries); if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) { if (!$this->listViewCount) { $this->listViewCount = $listViewModel->getListViewCount(); } $totalCount = $this->listViewCount; $pageLimit = $pagingModel->getPageLimit(); $pageCount = ceil((int) $totalCount / (int) $pageLimit); if ($pageCount == 0) { $pageCount = 1; } $viewer->assign('PAGE_COUNT', $pageCount); $viewer->assign('LISTVIEW_COUNT', $totalCount); } $viewer->assign('IS_MODULE_EDITABLE', $listViewModel->getModule()->isPermitted('EditView')); $viewer->assign('IS_MODULE_DELETABLE', $listViewModel->getModule()->isPermitted('Delete')); }
/** * Function to get the list view entries * @param Vtiger_Paging_Model $pagingModel, $status (Active or Inactive User). Default false * @return <Array> - Associative array of record id mapped to Vtiger_Record_Model instance. */ public function getListViewEntries($pagingModel) { $queryGenerator = $this->get('query_generator'); // Added as Users module do not have custom filters and id column is added by querygenerator. $fields = $queryGenerator->getFields(); $fields[] = 'id'; $queryGenerator->setFields($fields); $userFieldsFix = $this->get('search_params'); if (empty($userFieldsFix)) { $userFieldsFix[0]['columns'] = array(); } $indexKey = ''; $indexValue = ''; $roleKey = ''; $roleValue = ''; $roleDataInfo = array(); foreach ($userFieldsFix[0]['columns'] as $key => $column) { if (strpos($column['columnname'], 'is_admin') !== false) { $indexKey = $key; $indexValue = $column['value'] == '0' ? 'off' : 'on'; } else { if (strpos($column['columnname'], 'roleid') !== false) { $roleKey = $key; $db = PearDatabase::getInstance(); $sql = "SELECT `roleid`, `rolename` FROM `vtiger_role`;"; $result = $db->query($sql, true); $roleNum = $db->num_rows($result); if ($roleNum > 0) { for ($i = 0; $i < $roleNum; $i++) { $roleid = $db->query_result($result, $i, 'roleid'); $rolename = $db->query_result($result, $i, 'rolename'); $translated = vtranslate($rolename); if ($translated == $column['value']) { $roleValue = $roleid; } } } } } } if ($indexValue !== '') { $userFieldsFix[0]['columns'][$indexKey]['value'] = $indexValue; } if ($roleValue !== '') { $userFieldsFix[0]['columns'][$roleKey]['value'] = $roleValue; } $this->set('search_params', $userFieldsFix); return parent::getListViewEntries($pagingModel); }
public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { $moduleName = $this->getModule($request); $cvId = $request->get('cvid'); $pageNumber = $request->get('page'); $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); $sourceModule = $request->get('src_module'); $sourceField = $request->get('src_field'); $sourceRecord = $request->get('src_record'); $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); $currencyId = $request->get('currency_id'); $selectedFields = $request->get('selectedFields'); if (!empty($selectedFields)) { foreach ($selectedFields as $key => $value) { $selectFields[$value] = $value; } } $view = $request->get('view'); //To handle special operation when selecting record from Popup $getUrl = $request->get('get_url'); //Enable multiselect mode for email related popup $multiSelectMode = true; if (empty($cvId)) { $cvId = '0'; } if (empty($pageNumber)) { $pageNumber = '1'; } $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $pageNumber); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName); $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel); $primaryEmailFieldName = 'email'; if ($moduleName == 'Accounts' || $moduleName == 'Users') { $primaryEmailFieldName = 'email1'; } $listViewModel->extendPopupFields(array($primaryEmailFieldName => $primaryEmailFieldName)); if (!empty($orderBy)) { $listViewModel->set('orderby', $orderBy); $listViewModel->set('sortorder', $sortOrder); } if (!empty($sourceModule)) { $listViewModel->set('src_module', $sourceModule); $listViewModel->set('src_field', $sourceField); $listViewModel->set('src_record', $sourceRecord); } if (!empty($searchKey) && !empty($searchValue)) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } if (!$this->listViewHeaders) { $this->listViewHeaders = $listViewModel->getListViewHeaders(); } if (!$this->listViewEntries) { $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel); } $noOfEntries = count($this->listViewEntries); if (empty($sortOrder)) { $sortOrder = "ASC"; } if ($sortOrder == "ASC") { $nextSortOrder = "DESC"; $sortImage = "downArrowSmall.png"; } else { $nextSortOrder = "ASC"; $sortImage = "upArrowSmall.png"; } $viewer->assign('MODULE', $moduleName); $viewer->assign('SELECT_FIELDS', $selectFields); $viewer->assign('SOURCE_MODULE', $sourceModule); $viewer->assign('SOURCE_FIELD', $sourceField); $viewer->assign('SOURCE_RECORD', $sourceRecord); $viewer->assign('VIEW', $view); $viewer->assign('SEARCH_KEY', $searchKey); $viewer->assign('SEARCH_VALUE', $searchValue); $viewer->assign('ORDER_BY', $orderBy); $viewer->assign('SORT_ORDER', $sortOrder); $viewer->assign('NEXT_SORT_ORDER', $nextSortOrder); $viewer->assign('SORT_IMAGE', $sortImage); $viewer->assign('GETURL', $getUrl); $viewer->assign('CURRENCY_ID', $currencyId); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('PAGING_MODEL', $pagingModel); $viewer->assign('PAGE_NUMBER', $pageNumber); $viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries); $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders); $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries); if (AppConfig::performance('LISTVIEW_COMPUTE_PAGE_COUNT')) { if (!$this->listViewCount) { $this->listViewCount = $listViewModel->getListViewCount(); } $totalCount = $this->listViewCount; $pageLimit = $pagingModel->getPageLimit(); $pageCount = ceil((int) $totalCount / (int) $pageLimit); if ($pageCount == 0) { $pageCount = 1; } $viewer->assign('PAGE_COUNT', $pageCount); $viewer->assign('LISTVIEW_COUNT', $totalCount); } $viewer->assign('MULTI_SELECT', $multiSelectMode); $viewer->assign('PRIMARY_EMAIL_FIELD_NAME', $primaryEmailFieldName); $viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel()); }
public function getAdvancedLinks() { $advancedLinks = parent::getAdvancedLinks(); $advancedLinks[] = array('linktype' => 'LISTVIEW', 'linklabel' => 'LBL_PAYMENTS_IMPORT', 'linkurl' => 'index.php?module=PaymentsIn&view=PaymentsImport', 'linkicon' => ''); return $advancedLinks; }
public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { $moduleName = $request->getModule(); $cvId = $request->get('cvid'); $pageNumber = $request->get('page'); $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); $sourceModule = $request->get('src_module'); $sourceField = $request->get('src_field'); $sourceRecord = $request->get('src_record'); $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); if (empty($cvId)) { $cvId = '0'; } if (empty($pageNumber)) { $pageNumber = '1'; } $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $pageNumber); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName, $sourceModule); $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel); if (empty($orderBy) && empty($sortOrder)) { $moduleInstance = CRMEntity::getInstance($moduleName); $orderBy = $moduleInstance->default_order_by; $sortOrder = $moduleInstance->default_sort_order; } if (!empty($orderBy)) { $listViewModel->set('orderby', $orderBy); $listViewModel->set('sortorder', $sortOrder); } if (!empty($sourceModule)) { $listViewModel->set('src_module', $sourceModule); $listViewModel->set('src_field', $sourceField); $listViewModel->set('src_record', $sourceRecord); $sourceRecordModel = Vtiger_Record_Model::getInstanceById($sourceRecord, $sourceModule); } if (!empty($searchKey) && !empty($searchValue)) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } if (!$this->listViewHeaders) { $this->listViewHeaders = $listViewModel->getListViewHeaders(); } if (!$this->listViewEntries) { $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel); } //get the unit prices for the pricebooks based on the product currency $productUnitPrice = Vtiger_Functions::getUnitPrice($sourceRecord, $sourceModule); $productPriceDetails = getPriceDetailsForProduct($sourceRecord, $productUnitPrice, 'available', $sourceModule); $productCurrencyPrice = array(); foreach ($productPriceDetails as $priceDetails) { $productCurrencyPrice[$priceDetails['curid']] = $priceDetails['curvalue']; } foreach ($this->listViewEntries as $recordId => $recordModel) { $recordDetails = $recordModel->getRawData(); $priceBookCurrencyId = $recordDetails['currency_id']; $recordModel->set('unit_price', $productCurrencyPrice[$priceBookCurrencyId]); } $noOfEntries = count($this->listViewEntries); if (empty($sortOrder)) { $sortOrder = "ASC"; } if ($sortOrder == "ASC") { $nextSortOrder = "DESC"; $sortImage = "downArrowSmall.png"; } else { $nextSortOrder = "ASC"; $sortImage = "upArrowSmall.png"; } $viewer->assign('MODULE', $moduleName); $viewer->assign('SOURCE_MODULE', $sourceModule); $viewer->assign('SOURCE_FIELD', $sourceField); $viewer->assign('SOURCE_RECORD', $sourceRecord); $viewer->assign('SOURCE_RECORD_MODEL', $sourceRecordModel); //PARENT_MODULE is used for only translations $viewer->assign('PARENT_MODULE', 'PriceBooks'); $viewer->assign('SEARCH_KEY', $searchKey); $viewer->assign('SEARCH_VALUE', $searchValue); $viewer->assign('ORDER_BY', $orderBy); $viewer->assign('SORT_ORDER', $sortOrder); $viewer->assign('NEXT_SORT_ORDER', $nextSortOrder); $viewer->assign('SORT_IMAGE', $sortImage); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('PAGING_MODEL', $pagingModel); $viewer->assign('PAGE_NUMBER', $pageNumber); $viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries); $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders); $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries); $viewer->assign('VIEW', 'ProductPriceBookPopup'); }
/** * Function to get listView count * @param Vtiger_Request $request */ function getListViewCount(Vtiger_Request $request) { $moduleName = $request->getModule(); $cvId = $request->get('viewname'); if (empty($cvId)) { $cvId = '0'; } $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); $listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId); $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); $listViewModel->set('operator', $request->get('operator')); $count = $listViewModel->getListViewCount(); return $count; }
/** * Function to get listView count * @param Vtiger_Request $request */ function getListViewCount(Vtiger_Request $request) { $moduleName = $this->getModule($request); $sourceModule = $request->get('src_module'); $sourceField = $request->get('src_field'); $sourceRecord = $request->get('src_record'); $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); $subProductsPopup = $request->get('subProductsPopup'); $parentProductId = $request->get('productid'); $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName); if (!empty($sourceModule)) { $listViewModel->set('src_module', $sourceModule); $listViewModel->set('src_field', $sourceField); $listViewModel->set('src_record', $sourceRecord); } if (!empty($orderBy)) { $listViewModel->set('orderby', $orderBy); $listViewModel->set('sortorder', $sortOrder); } if (!empty($searchKey) && !empty($searchValue)) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } if ($subProductsPopup && $parentProductId) { $listViewModel->set('subProductsPopup', true); $listViewModel->set('productId', $parentProductId); } $count = $listViewModel->getListViewCount(); return $count; }
/** * Returns child comments models for a comment * @return ModComment_Record_Model(s) */ public function getChildComments() { $db = PearDatabase::getInstance(); $parentCommentId = $this->get('modcommentsid'); if (empty($parentCommentId)) { return; } $parentRecordId = $this->get('related_to'); $listView = Vtiger_ListView_Model::getInstance('ModComments'); $queryGenerator = $listView->get('query_generator'); $queryGenerator->setFields(array('parent_comments', 'createdtime', 'modifiedtime', 'related_to', 'id', 'assigned_user_id', 'commentcontent', 'creator', 'reasontoedit', 'userid')); $query = $queryGenerator->getQuery(); //Condition are directly added as query_generator transforms the //reference field and searches their entity names $query = $query . ' AND parent_comments = ? AND related_to = ?'; $recordInstances = array(); $result = $db->pquery($query, array($parentCommentId, $parentRecordId)); $rows = $db->num_rows($result); for ($i = 0; $i < $rows; $i++) { $row = $db->query_result_rowdata($result, $i); $recordInstance = new self(); $recordInstance->setData($row); $recordInstances[] = $recordInstance; } return $recordInstances; }