diff --git a/modules/PriceBooks/views/Popup.php b/modules/PriceBooks/views/Popup.php index 3beef1487d8c6433cd892cbe5b3f43d0a42b1bb3..af72b20191bf4ef7f61b9dcbd7d8e6baff9ede2a 100644 --- a/modules/PriceBooks/views/Popup.php +++ b/modules/PriceBooks/views/Popup.php @@ -10,161 +10,157 @@ class PriceBooks_Popup_View extends Vtiger_Popup_View { - /* - * Function to initialize the required data in smarty to display the List View Contents - */ - 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'); - $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($getUrl) && !empty($sourceField) && !$multiSelectMode) { - $getUrl = 'getProductListPriceURL'; - } - - 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($sourceRecord)) { - $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(!empty($searchParams)) { - $transformedSearchParams = $this->transferListSearchParamsToFilterCondition($searchParams, $listViewModel->getModule()); - $listViewModel->set('search_params',$transformedSearchParams); - } - - 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($searchParams)) { - $searchParams = array(); - } - //To make smarty to get the details easily accesible - foreach($searchParams as $fieldListGroup){ - foreach($fieldListGroup as $fieldSearchInfo){ - $fieldSearchInfo['searchValue'] = $fieldSearchInfo[2]; - $fieldSearchInfo['fieldName'] = $fieldName = $fieldSearchInfo[0]; - $fieldSearchInfo['comparator'] = $fieldSearchInfo[1]; - $searchParams[$fieldName] = $fieldSearchInfo; - } - } - 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); - $viewer->assign('SEARCH_DETAILS', $searchParams); - $viewer->assign('MODULE_MODEL', $moduleModel); - - 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()); - } + /* + * Function to initialize the required data in smarty to display the List View Contents + */ + 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'); + $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); + $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($sourceRecord)) { + $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(!empty($searchParams)) { + $transformedSearchParams = $this->transferListSearchParamsToFilterCondition($searchParams, $listViewModel->getModule()); + $listViewModel->set('search_params',$transformedSearchParams); + } + + 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($searchParams)) { + $searchParams = array(); + } + //To make smarty to get the details easily accesible + foreach($searchParams as $fieldListGroup){ + foreach($fieldListGroup as $fieldSearchInfo){ + $fieldSearchInfo['searchValue'] = $fieldSearchInfo[2]; + $fieldSearchInfo['fieldName'] = $fieldName = $fieldSearchInfo[0]; + $fieldSearchInfo['comparator'] = $fieldSearchInfo[1]; + $searchParams[$fieldName] = $fieldSearchInfo; + } + } + 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); + $viewer->assign('SEARCH_DETAILS', $searchParams); + $viewer->assign('MODULE_MODEL', $moduleModel); + + 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()); + } }