Ejemplo n.º 1
0
 /**
  * Function to get the page count for reltedlist
  * @return total number of pages
  */
 function getRelatedListPageCount(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $relatedModuleName = $request->get('relatedModule');
     $parentId = $request->get('record');
     $label = $request->get('tab_label');
     $totalCount = 0;
     $relModules = [$relatedModuleName];
     if (in_array('ProductsAndServices', $relModules)) {
         $label = '';
         $relModules = ['Products', 'OutsourcedProducts', 'Assets', 'Services', 'OSSOutsourcedServices', 'OSSSoldServices'];
     }
     if (in_array('Comments', $relModules)) {
         $totalCount = ModComments_Record_Model::getCommentsCount($parentId);
     } else {
         $pagingModel = new Vtiger_Paging_Model();
         $parentRecordModel = Vtiger_Record_Model::getInstanceById($parentId, $moduleName);
         foreach ($relModules as $relatedModuleName) {
             $relationListView = Vtiger_RelationListView_Model::getInstance($parentRecordModel, $relatedModuleName, $label);
             if (!vtlib_isModuleActive($relatedModuleName) || !$relationListView->getRelationModel()) {
                 continue;
             }
             $totalCount += (int) $relationListView->getRelatedEntriesCount();
             $pageLimit = $pagingModel->getPageLimit();
             $pageCount = ceil((int) $totalCount / (int) $pageLimit);
         }
     }
     if ($pageCount == 0) {
         $pageCount = 1;
     }
     $result = array();
     $result['numberOfRecords'] = $totalCount;
     $result['page'] = $pageCount;
     $response = new Vtiger_Response();
     $response->setResult($result);
     $response->emit();
 }